All connectors
Implemented
Messaging, collaboration & support
Gmail logo

Gmail

Read Gmail messages, threads, labels and mailbox history; manage labels; create and update drafts for a person to review. Nexra never sends email from Gmail.

Route incoming mail into CRM, support and finance flows, label it automatically and prepare reply drafts for human review.

Source actions

12

Destination actions

6

Data types

10

Validation status

Implemented · fixture tested.

Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.

What you can map

drafts
  • Create draft
    Destination
    Not retried automatically
    Approval before production

    Creates a draft (new message or reply in a thread) for a person to review and send. Nexra never sends it.

    drafts.create
  • Get draft
    Source

    One draft with recipients, subject and body.

    drafts.get
  • List drafts
    Source

    Drafts in the mailbox with their message and thread IDs.

    drafts.list
  • Update draft
    Destination
    Provider duplicate protection
    Approval before production

    Replaces a draft's recipients, subject and body. The draft is not sent.

    drafts.update
filters
  • List mail filters
    Source

    The mailbox's filter rules (criteria and actions). Read-only.

    filters.list
history
  • List mailbox changes
    Source
    Incremental

    Messages added or deleted and labels added or removed since a history ID, for incremental sync.

    history.list
labels
  • Create label
    Destination
    Provider duplicate protection
    Approval before production

    Creates a user label; nest labels with a slash, for example Clients/Acme.

    labels.create
  • Get label
    Source

    One label with its message and thread counts.

    labels.get
  • List labels
    Source

    System and user labels in the mailbox.

    labels.list
  • Update label
    Destination
    Provider duplicate protection
    Approval before production

    Renames a user label or changes its visibility and colour.

    labels.update
message labels
  • Change message labels
    Destination
    Provider duplicate protection
    Approval before production

    Adds or removes labels on a message, for example to mark it read, star it or archive it.

    message_labels.update
messages
  • Get message
    Source

    One message with headers, labels, decoded text and HTML bodies and attachment metadata.

    messages.get
  • List messages
    Source
    Incremental

    Message and thread IDs by label, received time, unread state, attachment or inbox category.

    messages.list
profile
  • Get mailbox profile
    Source

    The authorised address, message and thread counts and current history ID.

    profile.get
send as
  • List send-as addresses
    Source

    Addresses and aliases the mailbox can send as, with display names and signatures.

    send_as.list
thread labels
  • Change thread labels
    Destination
    Provider duplicate protection
    Approval before production

    Adds or removes labels on every message in a conversation.

    thread_labels.update
threads
  • Get thread
    Source

    A conversation with every message's headers, labels and bodies.

    threads.get
  • List threads
    Source
    Incremental

    Conversation IDs and snippets by label, received time, unread state or category.

    threads.list

Authentication

Google OAuth client and refresh token

Plans and access

Personal Google accounts and all Google Workspace editions. Requires a customer-owned Google Cloud OAuth client. Gmail read and modify scopes are restricted: apps for external users need Google verification and a security assessment.

Test environment

Use a test Google account and an OAuth client in testing mode.

Rate limits

6,000 quota units per user per minute and 1,200,000 per project per minute (messages.list 5 units, messages.get 20, threads.get 40); HTTP 429 or 403 rate-limit reasons with backoff.

Pagination

nextPageToken cursors.

Provider events

Gmail push notifications through Cloud Pub/Sub (users.watch). Nexra event triggers are not yet available; flows run on demand or on a schedule.

Before you build a flow

  • Sending is intentionally not implemented: messages.send and drafts.send are excluded, and drafts are left for a person to review and send. The gmail.compose scope technically allows sending, but Nexra never calls a send endpoint.
  • Deleting, trashing and marking messages or threads as spam are not implemented; label changes refuse the TRASH and SPAM labels.
  • Free-text Gmail search (sender, subject, words) is not exposed because Gmail takes the search in the URL query string; filters are limited to label, received time, unread, attachment and inbox category.
  • Message list results contain only IDs; use messages.get or threads.get for headers and bodies. Bodies are truncated at 100,000 characters and attachments are returned as metadata only.
  • messages.list incremental reads filter by received time; to detect label changes and deletions use history.list with the last historyId. Gmail returns HTTP 404 when the history ID is too old, which requires a full read.
  • Draft creation has no idempotency key; uncertain creates are not repeated automatically. Draft updates replace the whole draft.
  • Label names are unique per mailbox; creating an existing name is rejected (HTTP 409).
  • Mail settings (filters, forwarding, vacation responder, send-as) are read-only.

Developer reference

  1. Create the Google credentials described above with the narrowest permissions your flows need.
  2. In Nexra, open Connect, then Connections, then New connection, choose Gmail, enter its settings and credentials, and tick only the write actions you need. Connection guide
  3. Test the connection, then use its actions as flow sources and destinations. Flow guide

Machine-readable detail: GET /api/public/connect/connectors/gmail and the Connections API.