Email & Productivity
✉️ Gmail integration
Access levels: Read-only · Read + send · Full access · Verified
Email & Productivity
Access levels: Read-only · Read + send · Full access · Verified
Connect Gmail once and every agent in your squad can work in it for you, with exactly as much access as you decide to give, and a receipt for every call it makes.
You can change an account's access level any time under Manage. It applies instantly, no re-authorization. If the connection ever expires, the card shows Reconnect; one click re-authorizes the same account with the same settings.
Multiple accounts: connect as many as you need (say, yours and a client's). One is primary. Agents use it unless a mission says otherwise.
The level you pick at connect time is enforced on our side for every agent call: an agent can never do more than the level allows, no matter what it's asked.
| Level | What it allows | |
|---|---|---|
| Read-only | Read your inbox and search emails. Cannot send, modify, or delete. | |
| Read + send | Read inbox and send new emails. Cannot delete or modify existing. | |
| Full access | Read, send, delete, manage labels and drafts. | Recommended |
On top of the connection's level, every agent can be individually allowed, scoped down, or denied for this app from the Integrations page. Deny an agent and it doesn't even see the connection.
The 63 tools agents use in Gmail through Mission Control, and the lowest access level that includes each. Agents discover these themselves. You never have to name a tool; asking in plain language is enough.
| Tool | What it does | Access level |
|---|---|---|
Add label to emailGMAIL_ADD_LABEL_TO_EMAIL | Adds and/or removes specified Gmail labels for a message; ensure message_id and all label_ids are valid (use 'listLabels' for custom label IDs). | Read + send, Full access |
Batch delete messagesGMAIL_BATCH_DELETE_MESSAGES | Permanently delete multiple Gmail messages in bulk, bypassing Trash with no recovery possible. | Full access |
Batch modify messagesGMAIL_BATCH_MODIFY_MESSAGES | Modify labels on multiple Gmail messages in one efficient API call. | Read + send, Full access |
Create email draftGMAIL_CREATE_EMAIL_DRAFT | Creates a Gmail email draft. While all fields are optional per the Gmail API, practical validation requires at least one of recipient_email, cc, or bcc and at least one of subject or body. Supports To/Cc/Bcc recipients,… | Read + send, Full access |
Create filterGMAIL_CREATE_FILTER | Create a new Gmail filter with specified criteria and actions. | Read + send, Full access |
Create labelGMAIL_CREATE_LABEL | Creates a new label with a unique name in the specified user's Gmail account. | Read + send, Full access |
Create prompt postGMAIL_CREATE_PROMPT_POST | Send a one-shot prompt to the Sanity Content Agent. | All levels |
Delete draftGMAIL_DELETE_DRAFT | Permanently deletes a specific Gmail draft using its ID with no recovery possible; verify the correct draft_id and obtain explicit user confirmation before calling. | Full access |
Delete filterGMAIL_DELETE_FILTER | Permanently delete a Gmail filter by its ID. | Full access |
Delete labelGMAIL_DELETE_LABEL | Permanently DELETES a user-created Gmail label from the account (not from a message). | Full access |
Delete messageGMAIL_DELETE_MESSAGE | Permanently deletes a specific email message by its ID from a Gmail mailbox; for user_id, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access. | Full access |
Delete threadGMAIL_DELETE_THREAD | Immediately and permanently delete a specified thread and all its messages. | Full access |
Fetch emailsGMAIL_FETCH_EMAILS | Fetches a list of email messages from a Gmail account, supporting filtering, pagination, and optional full content retrieval. | All levels |
Fetch message by message idGMAIL_FETCH_MESSAGE_BY_MESSAGE_ID | Fetches a specific email message by its ID, provided the message_id exists and is accessible to the authenticated user_id. | All levels |
Fetch message by thread idGMAIL_FETCH_MESSAGE_BY_THREAD_ID | Retrieves messages from a Gmail thread using its thread_id, where the thread must be accessible by the specified user_id. | All levels |
Forward messageGMAIL_FORWARD_MESSAGE | Forward an existing Gmail message to specified recipients, preserving original body and attachments. | Read + send, Full access |
Get attachmentGMAIL_GET_ATTACHMENT | Retrieves a specific attachment by ID from a message in a user's Gmail mailbox, requiring valid message and attachment IDs. | All levels |
Get auto forwardingGMAIL_GET_AUTO_FORWARDING | Get the auto-forwarding setting for the specified account. | All levels |
Get contactsGMAIL_GET_CONTACTS | Fetches contacts (connections) for the authenticated Google account, allowing selection of specific data fields and pagination. | All levels |
Get draftGMAIL_GET_DRAFT | Retrieves a single Gmail draft by its ID. Use this to fetch and inspect draft content before sending via GMAIL_SEND_DRAFT. The format parameter controls the level of detail returned. | All levels |
Get filterGMAIL_GET_FILTER | Retrieve a specific Gmail filter by its ID. | All levels |
Get labelGMAIL_GET_LABEL | Gets details for a specified Gmail label. Use this to retrieve label information including name, type, visibility settings, message/thread counts, and color. | All levels |
Get language settingsGMAIL_GET_LANGUAGE_SETTINGS | Retrieve the language settings for a Gmail user. | All levels |
Get peopleGMAIL_GET_PEOPLE | Retrieves either a specific person's details (using resource_name) or lists 'Other Contacts' (if other_contacts is true), with person_fields specifying the data to return. | All levels |
Get profileGMAIL_GET_PROFILE | Retrieves Gmail profile information (email address, aggregate messagesTotal/threadsTotal, historyId) for a user. | All levels |
Get vacation settingsGMAIL_GET_VACATION_SETTINGS | Retrieve vacation responder settings for a Gmail user. | All levels |
Import messageGMAIL_IMPORT_MESSAGE | Import a message into the user's mailbox with standard email delivery scanning and classification. | Read + send, Full access |
Insert messageGMAIL_INSERT_MESSAGE | Insert a message into the user's mailbox similar to IMAP APPEND. | Read + send, Full access |
List cse identitiesGMAIL_LIST_CSE_IDENTITIES | List client-side encrypted identities for an authenticated user. | All levels |
List cse keypairsGMAIL_LIST_CSE_KEYPAIRS | List client-side encryption key pairs for an authenticated user. | All levels |
List draftsGMAIL_LIST_DRAFTS | Retrieves a paginated list of email drafts from a user's Gmail account. | All levels |
List filtersGMAIL_LIST_FILTERS | List all Gmail filters (rules) in the mailbox. | All levels |
List forwarding addressesGMAIL_LIST_FORWARDING_ADDRESSES | List all forwarding addresses for the specified Gmail account. | All levels |
List historyGMAIL_LIST_HISTORY | List Gmail mailbox change history since a known startHistoryId. | All levels |
List labelsGMAIL_LIST_LABELS | Retrieves all system and user-created labels for a Gmail account in a single unpaginated response. | All levels |
List messagesGMAIL_LIST_MESSAGES | DEPRECATED: Use GMAIL_FETCH_EMAILS instead. | All levels |
List send asGMAIL_LIST_SEND_AS | Lists the send-as aliases for a Gmail account, including the primary address and custom 'from' aliases. | All levels |
List smime infoGMAIL_LIST_SMIME_INFO | Lists S/MIME configs for the specified send-as alias. | All levels |
List threadsGMAIL_LIST_THREADS | Retrieves a list of email threads from a Gmail account, identified by user_id (email address or 'me'), supporting filtering and pagination. | All levels |
Modify thread labelsGMAIL_MODIFY_THREAD_LABELS | Adds or removes specified existing label IDs from a Gmail thread, affecting all its messages; ensure the thread ID is valid. | Read + send, Full access |
Move thread to trashGMAIL_MOVE_THREAD_TO_TRASH | Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash. | Read + send, Full access |
Move to trashGMAIL_MOVE_TO_TRASH | Moves an existing, non-deleted email message to the trash for the specified user. | Read + send, Full access |
Patch labelGMAIL_PATCH_LABEL | Patches the specified user-created label. System labels (e.g., INBOX, SENT, SPAM) cannot be modified and will be rejected. | Read + send, Full access |
Patch send asGMAIL_PATCH_SEND_AS | Patch the specified send-as alias for a Gmail user. | Read + send, Full access |
Remove labelGMAIL_REMOVE_LABEL | DEPRECATED: Use GMAIL_DELETE_LABEL instead. | Full access |
Reply to threadGMAIL_REPLY_TO_THREAD | Sends a reply within a specific Gmail thread using the original thread's subject; do not provide a custom subject as it will start a new conversation instead of replying in-thread. | Read + send, Full access |
Search peopleGMAIL_SEARCH_PEOPLE | Searches contacts by matching the query against names, nicknames, emails, phone numbers, and organizations, optionally including 'Other Contacts'. | All levels |
Send draftGMAIL_SEND_DRAFT | Sends an existing draft email AS-IS to recipients already defined within the draft. | Full access |
Send emailGMAIL_SEND_EMAIL | Sends an email via Gmail API using the authenticated user's Google profile display name. | Read + send, Full access |
Settings get imapGMAIL_SETTINGS_GET_IMAP | Retrieves the IMAP settings for a Gmail user account, including whether IMAP is enabled, auto-expunge behavior, expunge behavior, and maximum folder size. | All levels |
Settings get popGMAIL_SETTINGS_GET_POP | Retrieve POP settings for a Gmail account. | All levels |
Settings send as getGMAIL_SETTINGS_SEND_AS_GET | Retrieve a specific send-as alias configuration for a Gmail user. | All levels |
Stop watchGMAIL_STOP_WATCH | Stop receiving push notifications for a Gmail mailbox. | Full access |
Untrash messageGMAIL_UNTRASH_MESSAGE | Remove a message from trash in Gmail. Use when you need to restore a previously trashed email message. | Read + send, Full access |
Untrash threadGMAIL_UNTRASH_THREAD | Remove a thread from trash in Gmail. Use when you need to restore a deleted thread and its messages. | Read + send, Full access |
Update draftGMAIL_UPDATE_DRAFT | Updates (replaces) an existing Gmail draft's content in-place by draft ID. | Read + send, Full access |
Update imap settingsGMAIL_UPDATE_IMAP_SETTINGS | Update IMAP settings for a Gmail account. Use when you need to modify IMAP configuration such as enabling/disabling IMAP, setting auto-expunge behavior, or configuring folder size limits. | Read + send, Full access |
Update labelGMAIL_UPDATE_LABEL | Update the properties of an existing Gmail label. | Read + send, Full access |
Update language settingsGMAIL_UPDATE_LANGUAGE_SETTINGS | Update the language settings for a Gmail user. | Read + send, Full access |
Update pop settingsGMAIL_UPDATE_POP_SETTINGS | Update POP settings for a Gmail account. Use when you need to configure POP access window or message disposition behavior. | Read + send, Full access |
Update send asGMAIL_UPDATE_SEND_AS | Update a send-as alias for a Gmail user. Use when you need to modify display name, signature, reply-to address, or SMTP settings for a send-as email address. Gmail sanitizes HTML signatures before saving. Addresses othe… | Read + send, Full access |
Update user attributes valuesGMAIL_UPDATE_USER_ATTRIBUTES_VALUES | Update user attribute values for a resource. | Read + send, Full access |
Update vacation settingsGMAIL_UPDATE_VACATION_SETTINGS | Update vacation responder settings for a Gmail user. | Read + send, Full access |
Real asks that work well:
| Agent says | What's happening | Fix |
|---|---|---|
| "Gmail isn't connected" | No active connection (or this agent is denied) | Connect on the Integrations page; check the agent's per-app policy |
| "The connection has expired" | Gmail ended the authorization (they all do periodically) | Click Reconnect on the account, same settings, one click |
| "I'm not allowed to do that" | The action is above the account's access level, or the agent is scoped down | Raise the level under Manage, or adjust that agent's policy |
| It did something unexpected | The ask was ambiguous (e.g. matched an existing item) | Be explicit, "create a NEW …", and give agents a working folder where relevant |