Skip to main content
Version: 1.13.x

Google components

tip

Basic Google support is available in all Langflow installations through the core Language Model component. This bundle adds an enhanced Google component with additional provider-specific parameters.

If you installed lfx directly (not as part of langflow), install the Google bundle separately:

  1. Run uv pip install lfx-google.
  2. Restart Langflow.
  3. To confirm the bundle loaded, run lfx extension list.

If you installed Langflow with uv pip install langflow, these bundle components are already included.

For more information, see Install LFX with bundle components.

Bundles contain custom components that support specific third-party integrations with Langflow.

This page describes the components that are available in the Google bundle.

BigQuery​

Langflow integrates with Google BigQuery through the BigQuery component in the Google bundle, allowing you to execute SQL queries and retrieve data from your BigQuery datasets.

Use the BigQuery component in a flow​

To use the BigQuery component in a flow, you need the following:

Create a service account with BigQuery access​

  1. Select and enable your Google Cloud project. For more information, see Create a Google Cloud project.
  2. Create a service account in your Google Cloud project. For more information, see Create a service account.
  3. Assign the BigQuery Job User role to your new account. This role allows Langflow to access BigQuery resources with the service account. You may also need to allow access to your BigQuery dataset. For more information, see BigQuery access control with IAM.
  4. To generate a new JSON key for the service account, navigate to your service account.
  5. Click Add Key, and then click Create new key.
  6. Under Key type, select JSON, and then click Create. A JSON private key file is downloaded to your machine. Now that you have a service account and a JSON private key, you need to configure the credentials in the Langflow BigQuery component.

Configure credentials in the Langflow component​

With your service account configured and your credentials JSON file created, follow these steps to authenticate the Langflow application.

  1. Create a new flow in Langflow.
  2. In Bundles, find the Google BigQuery component, and then add it to your flow.
  3. In the BigQuery component's Upload Service Account JSON field, click Select file.
  4. In the My Files pane, select Click or drag files here. Your file browser opens.
  5. In your file browser, select the service account JSON file, and then click Open.
  6. In the My Files pane, select your service account JSON file, and then click Select files. The BigQuery component can now query your datasets and tables using your service account JSON file.

Query a BigQuery dataset​

With your component credentials configured, query your BigQuery datasets and tables to confirm connectivity.

  1. Connect Chat Input and Chat Output components to the BigQuery component.

    BigQuery component connected to chat input and output

  2. Open the Playground, and then submit a valid SQL query.

    This example queries a table of Oscar winners stored within a BigQuery dataset called the_oscar_award:

    SELECT film, category, year_film
    FROM `big-query-langflow-project.the_oscar_award.oscar_winners`
    WHERE winner = TRUE
    LIMIT 10
    Result
    film category year_film
    The Last Command ACTOR 1927
    7th Heaven ACTRESS 1927
    The Dove; ART DIRECTION 1927
    Sunrise CINEMATOGRAPHY 1927
    Sunrise CINEMATOGRAPHY 1927
    Two Arabian Knights DIRECTING (Comedy Picture) 1927
    7th Heaven DIRECTING (Dramatic Picture) 1927
    Wings ENGINEERING EFFECTS 1927
    Wings OUTSTANDING PICTURE 1927
    Sunrise UNIQUE AND ARTISTIC PICTURE 1927

    A successful chat confirms the component can access the BigQuery table.

Google Generative AI​

This component generates text using Google Generative AI models.

Supported models include the Gemini 1.5, 2.0, 2.5, and 3.0 series. The latest Gemini 3.0 models (gemini-3-pro-preview, gemini-3-flash-preview, and gemini-3-pro-image-preview) offer advanced reasoning and multimodal capabilities.

Google Generative AI parameters​

NameTypeDescription
Google API KeySecretStringInput parameter. Your Google API key to use for the Google Generative AI.
ModelStringInput parameter. The name of the model to use, such as "gemini-2.5-flash" or "gemini-3-pro-preview".
Max Output TokensIntegerInput parameter. The maximum number of tokens to generate.
TemperatureFloatInput parameter. Run inference with this temperature.
Top KIntegerInput parameter. Consider the set of top K most probable tokens.
Top PFloatInput parameter. The maximum cumulative probability of tokens to consider when sampling.
NIntegerInput parameter. Number of chat completions to generate for each prompt.
modelLanguageModelOutput parameter. An instance of ChatGoogleGenerativeAI configured with the specified parameters.

Google Generative AI Embeddings​

The Google Generative AI Embeddings component connects to Google's generative AI embedding service using the GoogleGenerativeAIEmbeddings class from the langchain-google-genai package.

For more information about using embedding model components in flows, see Embedding model components.

Google Generative AI Embeddings parameters​

NameDisplay NameInfo
api_keyAPI KeyInput parameter. The secret API key for accessing Google's generative AI service. Required.
model_nameModel NameInput parameter. The name of the embedding model to use. Default: "models/text-embedding-004".
embeddingsEmbeddingsOutput parameter. The built GoogleGenerativeAIEmbeddings object.

Google Search API​

Deprecated

Google closed the Custom Search JSON API to new customers, and it stops working for existing customers on January 1, 2027. The Google Search API component calls this API, so it is now a legacy component and is hidden from the component menu. Flows that already use it still load, but their searches fail after Google shuts the API down.

Replace it with a component that returns Google search results:

This component allows you to call the Google Search API.

Google Search API parameters​

NameTypeDescription
google_api_keySecretStringInput parameter. A Google API key for authentication.
google_cse_idSecretStringInput parameter. A Google Custom Search Engine ID.
input_valueStringInput parameter. The search query input.
kIntegerInput parameter. The number of search results to return.
resultsList[Data]Output parameter. A list of search results.
toolToolOutput parameter. A Google Search tool for use in LangChain.

Other Google Search components​

Langflow includes multiple components that support Google Search, such as the following:

Google Workspace actions​

The Google Workspace action components run Gmail, Drive, and Calendar operations against a managed connection instead of a pasted token. The connection stores the OAuth credential in encrypted server-side storage, refreshes it in the worker that uses it, and never places a token in flow JSON.

ComponentActionScope requested
Gmail: Send Emailusers.messages.send from the connected mailboxhttps://www.googleapis.com/auth/gmail.send
Drive: List Files (app files)files.listhttps://www.googleapis.com/auth/drive.file
Drive: Fetch File (app files)files.get plus files.export for Google-native documentshttps://www.googleapis.com/auth/drive.file
Calendar: List Eventsevents.listhttps://www.googleapis.com/auth/calendar.events.readonly
Calendar: Create Eventevents.inserthttps://www.googleapis.com/auth/calendar.events

Each action component requests exactly one scope, the one its action needs. These actions do not request restricted scopes. Gmail source triggers have separate customer-owned OAuth requirements described below.

Select the account in the component's Google Connection field. For how to create and authorize that connection, see Connections.

Google Workspace source triggers​

Add Google Calendar: On Event, Google Drive: On File, or Gmail: On Message at the start of a Flow. Save the Flow, then enable its trigger through the Triggers API. The connection must belong to the Flow owner and have Allow background runs enabled; shared and instance connections cannot arm these sources.

TriggerScopeReach
Google Calendar: On Eventhttps://www.googleapis.com/auth/calendar.events.readonlyThe selected calendar, or primary by default
Google Drive: On Filehttps://www.googleapis.com/auth/drive.fileFiles created or explicitly opened with this app
Gmail: On Messagehttps://www.googleapis.com/auth/gmail.readonlyInbox messages through a customer-owned Gmail watch

In advanced Delivery Mode, auto uses Google push channels when ingress is enabled and the OAuth registration advertises a public HTTPS callback; otherwise Calendar and Drive use polling. Select poll to use a listener even when ingress is enabled, or push to require push configuration. Hosted deployments require push. Push notifications only wake a change-feed scan, and Langflow also schedules backup scans after five minutes in case a notification is missed; backlog and provider delays can extend this interval. The Flow receives the changed item. Enabling starts from the current state, so existing items do not fire the Flow. A rejected sync token causes a fresh snapshot comparison against stored item versions.

Gmail customer setup​

Gmail triggers are unavailable on hosted Langflow. On a customer deployment, use a customer-owned OAuth registration and a public HTTPS ingress. Create a Pub/Sub topic in the customer's Google Cloud project, grant Gmail permission to publish to it, and configure an authenticated push subscription to the trigger's URL. Use GET /api/v1/triggers/{trigger_id}/ingress to get that URL after saving the Flow. Set Customer Pub/Sub Topic to the full projects/.../topics/... name and Pub/Sub Push Service Account to the service account email whose Google-signed identity token Pub/Sub sends. Configure the push subscription's audience as that exact ingress URL. Langflow verifies the token and audience before recording a delivery, renews the Gmail watch daily, and acknowledges only after the hint is in the ledger. Gmail's restricted gmail.readonly scope must be approved for the customer's OAuth app.

All Gmail triggers for the same mailbox must use the same Pub/Sub topic, even across separate connections. Configure a push subscription to each trigger URL. Disabling one trigger preserves the mailbox watch while another local trigger uses it.

If Gmail history expires before Langflow reads it, Langflow resumes from the current watermark; changes in the expired gap cannot be recovered.

Drive reach on the drive.file scope​

drive.file is a non-sensitive scope that grants access only to files this application created, or that the user explicitly opened with it. The rest of the user's Drive is invisible to the listing and fetch components, so an empty listing is a normal result for a correctly configured connection rather than an error. Google Picker file selection is not available in this release, and entering a file ID cannot grant the app access to a file it has not created or opened. Reaching arbitrary Drive content requires a restricted scope, which is deliberately out of scope for this release.

Connect a Google account​

In the visual editor, create the connection in Settings and select it on the component. See Connections.

To create the same connection through the API:

  1. Configure a Google registration on the server. See Configure connection OAuth.

  2. Create the connection record:

    POST /api/v1/connections
    Content-Type: application/json

    {"provider_key":"google","name":"work","display_name":"Google (work)",
    "ownership_mode":"user","executing_identity":{"identity":"user_delegated"},
    "allow_non_interactive":false}
  3. Start consent from the same authenticated browser, requesting only the scopes the actions in your flow need:

    POST /api/v1/connections/CONNECTION_ID/oauth/start
    Content-Type: application/json

    {"registration_id":"google-work",
    "scopes":["https://www.googleapis.com/auth/gmail.send"]}
  4. Navigate to the returned authorization_url and complete consent.

  5. In the flow JSON, set the component's connection field to the handle google/work.

Verify the grant with POST /api/v1/connections/CONNECTION_ID/test. A connection that is missing a scope fails the action with a scope-missing error rather than a partial result.

Sending attachments​

Gmail: Send Email attaches local files by path. On a deployment that sets LANGFLOW_RESTRICT_LOCAL_FILE_ACCESS, an attachment path must resolve inside the authenticated user's or executing flow's storage directory, the same containment the built-in file components apply; a path outside it is refused before the file is read.

warning

On a single-tenant deployment, where LANGFLOW_RESTRICT_LOCAL_FILE_ACCESS is off by default, any readable path can be attached.

Replying to an email​

Set Thread ID to the Gmail conversation ID and In Reply To to the original email's Message-ID header, including angle brackets. Keep Subject the same as the original message. If available, provide the conversation's space-separated message IDs in References; otherwise it defaults to In Reply To. These fields satisfy Gmail's threading requirements. The component uses the send-only scope, so it cannot fetch these headers for you.

Creating recurring events​

For recurring events, set Time Zone to an IANA time zone such as America/Los_Angeles. Google requires this zone to expand the recurrence. Enter each recurrence rule on its own line; comma-separated values within a rule are preserved, for example RRULE:FREQ=WEEKLY;BYDAY=MO,WE.

See the Google Calendar event API for supported recurrence fields. Conference Data Version controls conference-data processing; setting it to 1 does not create a Google Meet link.

Error behavior​

Every action maps provider failures onto a stable, sanitized vocabulary: auth-expired when the credential is rejected (retried once against a freshly minted token before surfacing), scope-missing for explicit missing-scope reasons, connection-not-authorized for other permission failures, resource-not-found for missing or inaccessible resources, invalid-request for bad inputs and export limits, rate-limited on 429 and 403 quota reasons, and provider-unavailable on server failures. Unsupported methods use action-unsupported. Invalid requests are not retryable; correct the inputs first. Google response bodies are never passed through verbatim.

Drive outcomes name the drive.file boundary. A file Google reports as not authorized for this app fails with connection-not-authorized, and a Drive file that is not found fails with resource-not-found whose hint also says to check the file ID. Both hints explain that only files created by or opened with this app are reachable.

Fetching Drive content​

Drive: Fetch File (app files) returns at most 25 MiB of content before text decoding or base64 encoding. Larger files fail without producing partial flow data. The component checks available file-size metadata before downloading and bounds accumulated content while downloading in chunks. Google-native documents require Export MIME Type; Google also imposes a 10 MB export limit.

Knowledge-base ingestion from Drive​

The Google Drive knowledge-base ingestion source reads the same drive.file scope through the same managed connection, so a knowledge base can be kept in sync with the files this application created or the user opened with it. Start an ingestion with a connection handle through POST /api/v1/knowledge_bases/KB_NAME/ingest/connector:

{"source_type": "google_drive", "source_config": {"connection": "google/work", "folder_id": "FOLDER_ID"}}

The knowledge-base UI does not offer connector sources yet, so this request is the way to start a Drive ingestion in this release.

Google-native documents are exported on the way in: Docs and Slides as plain text, Sheets as CSV. Folders, Forms, Sites, and shortcuts are skipped because they carry no text to ingest.

Because ingestion runs as a background job rather than an interactive request, the connection must have been created with allow_non_interactive set. Without it the request fails with connection-not-authorized (HTTP 403), which is the intended behavior: a scheduled job acting on a user's Drive is something that user opts into explicitly. The connection is checked before the job is created, so this and other connection errors, such as scope-missing, are returned with their code and hint rather than as a failed job.

Swapping an action to a different substrate​

All five actions run on the Google Python SDK today. When a Google Workspace MCP server reaches general availability, an action can move to it without changing saved flows, by following the GA-swap procedure in design/dedicated-integrations/ga-swap-procedure.md. That record names Calendar: List Events as the first Google candidate and lists every file the swap touches.

The compatibility surface is fixed:

  1. The component class name, display name, input and output names, and the capability's id, policy_keys, component_ref, risk, and required_scopes do not change. Only the capability's substrate changes, and it gains mcp_tool and mcp_pin.
  2. An action whose MCP server would need a broader scope than the one it requests today does not move. Gmail and Drive are in that position: their preview servers request restricted scopes.
  3. The swap ships as a bundle version bump with swap-equivalence and drift tests. No Langflow release is required.

Google Vertex AI​

For information about Vertex AI components, see the Vertex AI bundle.

Legacy Google components​

Legacy components are no longer supported and can be removed in a future release. You can continue to use them in existing flows, but it is recommended that you replace them with supported components as soon as possible. Suggested replacements are included in the Legacy banner on components in your flows. They are also given in release notes and Langflow documentation whenever possible.

If you aren't sure how to replace a legacy component, Search for components by provider, service, or component name. The component may have been deprecated in favor of a completely new component, a similar component, or a new version of the same component in a different category.

If there is no obvious replacement, consider whether another component can be adapted to your use case. For example, many Core components provide generic functionality that can support multiple providers and use cases, such as the API Request component.

If neither of these options are viable, you could use the legacy component's code to create your own custom component, or start a discussion about the legacy component.

To discourage use of legacy components in new flows, these components are hidden by default. In the visual editor, you can click Component settings to toggle the Legacy filter.

The following Google components are in legacy status:

Google OAuth Token

The Google OAuth Token component was deprecated in Langflow 1.4.0 and is hidden from the component palette. It runs a local-server OAuth flow, which cannot complete on a server deployment, and it puts a long-lived credential into flow data. Running it logs a deprecation warning. The component declares the five Google Workspace action components as its replacements, so the editor's update hint on an existing node points at the connection-backed path.

To connect your flows to Google services, use a managed connection with the Google Workspace action components, or Composio components.

Gmail Loader

This component loads emails from Gmail using label ID filters and authorized-user OAuth token JSON in OAuth Token JSON. Service-account keys are not supported.

This component does not accept a managed connection. Reading a mailbox requires the restricted gmail.readonly scope, which Langflow 1.13 managed connections do not use.

This release changed the component's code, so a flow saved before Langflow 1.13 shows the ordinary "update available" prompt on the loader node. The checker classifies the update as outdated_safe, never breaking, and the flow runs unchanged whether or not you take it.

As an alternative, you can use Composio components to connect your flows to Google services.

Google Drive Loader

This component loads a single document from Google Drive using a document ID and either a managed connection or authorized-user OAuth token JSON in OAuth Token JSON. Service-account keys are not supported. Set exactly one of the two. A managed connection resolves on drive.file, so it reaches only files this application created or the user opened with it. The visual editor has no control for the connection field yet, so set it in the flow JSON.

For new flows, use Drive: Fetch File (app files).

Google Drive Search

This component searches Google Drive using Service Account JSON credentials and various query strings and filters.

The connection-backed replacement is Drive: List Files (app files). It runs on drive.file, which is a narrower reach than a pasted token may have had: it lists only files this application created or the user opened with it.

Google Search API

This component calls Google's Custom Search JSON API, which stops working on January 1, 2027. For the replacement components, see Google Search API.

See also​

Was this page helpful?

Support
Search