Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.
Per-app Google setup is deprecated. All Google apps now share one Google OAuth client and one Redirect URI. To use your own client, follow the Google setup guide. Credentials saved for one Google app apply to all of them.
OneCLI connects AI agents to Gmail through Google’s OAuth flow. Agents can search your inbox, read messages, draft and send emails, and manage labels. The gateway injects OAuth credentials into requests to the Gmail API automatically.This is useful for agents that need to process incoming messages, send notifications, or automate email workflows on your behalf.
This is for self-hosted OneCLI, and for OneCLI Cloud when you choose Custom credentials instead of one-click. One Google client serves every Google app in OneCLI, so you set it up once. If you already did it for another Google app, skip to step 2.
1. Set up your Google client
Follow the Google setup guide. It enables the Google APIs, sets up the consent screen, creates the OAuth client, and adds the Redirect URI.You paste the client into Connections > Gmail > Custom credentials, under the Redirect URI the guide asks you to register:
Custom credentials for Gmail in OneCLI.
2. Connect Gmail
Open Connections > Gmail, select Connect Gmail, pick your Google account, and click Allow.
The Gmail connect window before a Google client is set up.
The dashboard lets you control exactly what agents can do with Gmail. Each action can be set to Allow (green), Ask (yellow, requires human approval), or Block (red).Read-only actions:
Action
Description
Search email threads
Find threads matching a query (sender, subject, date, labels)
Read email thread
View a full conversation thread
Read email message
Read individual message content and attachments
List labels
Browse available Gmail labels and folders
Write / delete actions:
Action
Description
Send email
Send a new email on your behalf
Create draft
Draft an email without sending
Modify message
Change labels, mark as read/unread, archive
Trash message
Move a message to trash
Use the Read-only preset to let agents search and read but never send, or Block all write actions and configure individually.
Access is per agent: grant the Gmail connection to each agent that needs it, choosing per tool what runs freely, what needs human approval, and what stays blocked — for example, allow search_messages but require approval for send_email. Organization rules add guardrails on top, like rate-limiting sends or requiring approval for emails matching a body condition. Everything is checked before credential injection, so a blocked request never reaches Gmail.
If your agent uses an MCP server that needs Gmail credentials locally, see the Gmail credential stubs guide to set up placeholder files that the gateway fills in at request time.
Can an agent read Gmail without being able to send?
Yes. Use the Read-only preset, or set Send email to Block or Ask so a person approves each send. See Per-action permissions.
Does the agent see my Gmail OAuth token?
No. The token stays in OneCLI, and the gateway adds it to Gmail API requests at the proxy. The agent makes plain HTTP calls and never holds the credential. See How it works.
How do I reconnect Gmail or switch accounts?
Open Connections > Gmail and connect again with the account you want. Agents with access use the new connection automatically.
Can I require approval for emails that match certain content?
Yes. Organization rules can rate-limit sends or require approval when the request body matches a condition.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneCLI","colors":{"primary":"#19BA5D","light":"#34D474","dark":"#128A45"},"logo":{"light":"https://mintcdn.com/chartdbinc/3IvBQeNyWpN0X2ob/logo/logo-full-light.svg?fit=max\u0026auto=format\u0026n=3IvBQeNyWpN0X2ob\u0026q=85\u0026s=630ee6bb5c7441548135c690b3e18d35","dark":"https://mintcdn.com/chartdbinc/3IvBQeNyWpN0X2ob/logo/logo-full-dark.svg?fit=max\u0026auto=format\u0026n=3IvBQeNyWpN0X2ob\u0026q=85\u0026s=c80db357e121f4676dba423c01304258","href":"/"},"favicon":"https://mintcdn.com/chartdbinc/wh8636A1-I7XVdgP/favicon.png?fit=max\u0026auto=format\u0026n=wh8636A1-I7XVdgP\u0026q=85\u0026s=71b6d9b7afc7659e690354e389db9da8","appearance":{"default":"light"},"background":{"color":{"light":"#FAFAF9","dark":"#1A1918"}},"navbar":{"links":[{"href":"https://github.com/onecli/onecli","label":"GitHub"},{"href":"https://onecli.sh","label":"Install"}]},"footer":{"socials":{"github":"https://github.com/onecli"}},"fonts":{"heading":{"family":"Overused Grotesk","weight":600,"source":"fonts/OverusedGroteskRoman-VF.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/chartdbinc/images/github.svg","href":"https://github.com/onecli"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chartdbinc","hasAudioNarration":false,"actualSubdomain":"chartdbinc","customDomains":["onecli.sh"],"gitSource":{"type":"github","owner":"onecli","repo":"onecli-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae93dff859b9b27a0220555","collectionId":"4253288a-7e3f-4857-a015-60ff48e38182","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae93dff859b9b27a0220555"},"entitlements":{},"buildId":"6aed6ecd1adb743cd28e52b5","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":240},{"language":"default","tag":"Workspace","count":105},{"language":"default","tag":"Integrations","count":88},{"language":"default","tag":"All app connections","count":64},{"language":"default","tag":"Enterprise","count":57},{"language":"default","tag":"Organization","count":52},{"language":"default","tag":"Apps","count":29},{"language":"default","tag":"Channels","count":28},{"language":"default","tag":"Platform","count":21},{"language":"default","tag":"Guides","count":17}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a.nav-anchor div.mr-4.rounded-md{--tw-ring-color: transparent !important;--tw-ring-shadow: 0 0 0 0 transparent !important;--tw-ring-offset-shadow: 0 0 0 0 transparent !important;box-shadow:none!important;background:transparent!important;filter:none!important;transition:opacity 0.15s ease!important}a.nav-anchor:hover div.mr-4.rounded-md{--tw-ring-color: transparent !important;--tw-ring-shadow: 0 0 0 0 transparent !important;--tw-ring-offset-shadow: 0 0 0 0 transparent !important;box-shadow:none!important;background:transparent!important;filter:none!important;opacity:0.7!important}a.nav-anchor div.mr-4.rounded-md img{opacity:1!important;filter:none!important;background:transparent!important}a.nav-anchor:hover div.mr-4.rounded-md img{opacity:1!important;filter:none!important;background:transparent!important}.dark a.nav-anchor div.mr-4.rounded-md img,[data-theme=\"dark\"] a.nav-anchor div.mr-4.rounded-md img{filter:invert(1)!important}"}],"page":{"pagePath":"integrations/gmail","slug":"/integrations/gmail","pageMetadata":{"title":"Let AI Agents Search, Draft, and Send Gmail","sidebarTitle":"Gmail","description":"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.","canonical":"https://onecli.sh/docs/integrations/gmail","href":"/integrations/gmail"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Frame,Heading,Info,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Per-app Google setup is deprecated.`}),` All Google apps now share one Google OAuth client and one Redirect URI. To use your own client, follow the `,_jsx(_components.a,{href:`/integrations/google`,children:`Google setup guide`}),`. Credentials saved for one Google app apply to all of them.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`OneCLI connects AI agents to Gmail through Google’s OAuth flow. Agents can search your inbox, read messages, draft and send emails, and manage labels. The gateway injects OAuth credentials into requests to the Gmail API automatically.`}),`\n`,_jsx(_components.p,{children:`This is useful for agents that need to process incoming messages, send notifications, or automate email workflows on your behalf.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-will-set-up`,children:`What you will set up`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A Gmail connection through Google OAuth, in one click on OneCLI Cloud or with your own Google client`}),`\n`,_jsx(_components.li,{children:`Automatic token injection on requests to the Gmail API`}),`\n`,_jsx(_components.li,{children:`Per-action permissions: allow, ask, or block each Gmail action per agent`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`connect-on-onecli-cloud-one-click`,children:`Connect on OneCLI Cloud (one click)`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Go to Connections`,children:_jsxs(_components.p,{children:[`Open the OneCLI dashboard and navigate to `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Gmail`}),`.`]})}),_jsxs(Step,{title:`Authorize`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect Gmail`}),`. You’ll go straight to Google: pick your account, review the permissions, and click `,_jsx(_components.strong,{children:`Allow`}),`. No Google Cloud setup needed.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=400005b446600fe9e6988b2504145fe2`,alt:`OneCLI dashboard showing the Gmail connection page with per-action read and write permissions`,\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1201`,height:`1201`,\"data-path\":`images/integrations/gmail-connection.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?w=280\u0026fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=933578b2149439171cb957c96d61225a 280w, https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?w=560\u0026fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=a51deb2aad4998c89bafc8c63f679f83 560w, https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?w=840\u0026fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=05984b622b0fc32538a90938f4be68ea 840w, https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?w=1100\u0026fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=528b954e97e16ded853d0848edd763d4 1100w, https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?w=1650\u0026fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=a26e47ff1f40eb960f5a54181a592d42 1650w, https://mintcdn.com/chartdbinc/7PEMo_l0oXWo2kux/images/integrations/gmail-connection.png?w=2500\u0026fit=max\u0026auto=format\u0026n=7PEMo_l0oXWo2kux\u0026q=85\u0026s=2d12c1ec9bf60ead4ebc2b2895b22c40 2500w`})})]})]}),`\n`,_jsxs(_components.p,{children:[`On self-hosted OneCLI, or to use your own Google client on Cloud, see `,_jsx(_components.a,{href:`#self-hosted`,children:`Use your own Google client`}),`.`]}),`\n`,_jsx(`a`,{id:`self-hosted`,style:{scrollMarginTop:`8rem`}}),`\n`,_jsx(Heading,{level:`2`,id:`use-your-own-google-client`,children:`Use your own Google client`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`This is for self-hosted OneCLI, and for OneCLI Cloud when you choose `,_jsx(_components.strong,{children:`Custom credentials`}),` instead of one-click. One Google client serves every Google app in OneCLI, so you set it up once. If you already did it for another Google app, skip to step 2.`]})}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`1. Set up your Google client`,defaultOpen:true,id:`1-set-up-your-google-client`,children:[_jsxs(_components.p,{children:[`Follow the `,_jsx(_components.a,{href:`/integrations/google`,children:`Google setup guide`}),`. It enables the Google APIs, sets up the consent screen, creates the OAuth client, and adds the Redirect URI.`]}),_jsxs(_components.p,{children:[`You paste the client into `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Gmail`}),` > `,_jsx(_components.strong,{children:`Custom credentials`}),`, under the Redirect URI the guide asks you to register:`]}),_jsx(Frame,{caption:`Custom credentials for Gmail in OneCLI.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=a11446dc0d1b110792468010a40d7fbc`,alt:`OneCLI Custom credentials card for Gmail with the setup guide link, the Redirect URI and its copy button, and the Client ID and Client Secret fields.`,\"data-og-width\":`1932`,width:`1932`,\"data-og-height\":`1172`,height:`1172`,\"data-path\":`images/integrations/gmail/onecli-custom-credentials-gmail.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?w=280\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=ca64bd48fb6e6286b3c734268860d0fd 280w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?w=560\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=6b3b27adcb97e733d129c88ab68106ea 560w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?w=840\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=2f69a2ae9dcbde4a5907a997d31b9576 840w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?w=1100\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=1b5f354f123bee1a01807b3e48ccd080 1100w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?w=1650\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=91b4e053c69154521b569c2214da435f 1650w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-custom-credentials-gmail.png?w=2500\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=af477b67355e5bb089cb08e5fc6fd050 2500w`})})]}),_jsxs(Accordion,{title:`2. Connect Gmail`,id:`2-connect-gmail`,children:[_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Gmail`}),`, select `,_jsx(_components.strong,{children:`Connect Gmail`}),`, pick your Google account, and click `,_jsx(_components.strong,{children:`Allow`}),`.`]}),_jsx(Frame,{caption:`The Gmail connect window before a Google client is set up.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=e73474b1743fa3a8db759043cc4a88f1`,alt:`OneCLI connect window for Gmail showing Configuration required and the Configure credentials button.`,\"data-og-width\":`1056`,width:`1056`,\"data-og-height\":`1154`,height:`1154`,\"data-path\":`images/integrations/gmail/onecli-connect-gmail.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?w=280\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=f7960ca7ad898e40c4ec50e5de064e9e 280w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?w=560\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=461627fc2cbd7065f5d9e75c0756435f 560w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?w=840\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=cf213d2e68092ead78345a84f22ba7c2 840w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?w=1100\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=86e13d09f47eebfffe0f110209910de0 1100w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?w=1650\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=1bc617d258fd1d82ae44a5c996a1d312 1650w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/gmail/onecli-connect-gmail.png?w=2500\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=2140975b33cdc747c67dc5788cccce0d 2500w`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-agents-can-do`,children:`What agents can do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Search your inbox for messages matching a query (sender, subject, date range, labels)`}),`\n`,_jsx(_components.li,{children:`Read the full content of individual emails, including attachments`}),`\n`,_jsx(_components.li,{children:`Draft new emails with specified recipients, subject, and body`}),`\n`,_jsx(_components.li,{children:`Send emails on your behalf`}),`\n`,_jsx(_components.li,{children:`Reply to or forward existing messages`}),`\n`,_jsx(_components.li,{children:`Create, rename, and delete labels`}),`\n`,_jsx(_components.li,{children:`Move messages between labels (e.g., archive, mark as read, move to a folder)`}),`\n`,_jsx(_components.li,{children:`List and filter threads by label or search criteria`}),`\n`,_jsx(_components.li,{children:`Batch modify messages (mark as read, add/remove labels)`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`per-action-permissions`,children:`Per-action permissions`}),`\n`,_jsxs(_components.p,{children:[`The dashboard lets you control exactly what agents can do with Gmail. Each action can be set to `,_jsx(_components.strong,{children:`Allow`}),` (green), `,_jsx(_components.strong,{children:`Ask`}),` (yellow, requires human approval), or `,_jsx(_components.strong,{children:`Block`}),` (red).`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Read-only actions:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Search email threads`}),_jsx(_components.td,{children:`Find threads matching a query (sender, subject, date, labels)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Read email thread`}),_jsx(_components.td,{children:`View a full conversation thread`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Read email message`}),_jsx(_components.td,{children:`Read individual message content and attachments`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`List labels`}),_jsx(_components.td,{children:`Browse available Gmail labels and folders`})]})]})]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Write / delete actions:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Send email`}),_jsx(_components.td,{children:`Send a new email on your behalf`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Create draft`}),_jsx(_components.td,{children:`Draft an email without sending`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Modify message`}),_jsx(_components.td,{children:`Change labels, mark as read/unread, archive`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Trash message`}),_jsx(_components.td,{children:`Move a message to trash`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.strong,{children:`Read-only`}),` preset to let agents search and read but never send, or `,_jsx(_components.strong,{children:`Block`}),` all write actions and configure individually.`]}),`\n`,_jsx(Heading,{level:`2`,id:`controlling-access`,children:`Controlling access`}),`\n`,_jsxs(_components.p,{children:[`Access is per agent: `,_jsx(_components.a,{href:`/guides/agent-access`,children:`grant`}),` the Gmail connection to each agent that needs it, choosing per tool what runs freely, what needs human approval, and what stays blocked — for example, allow `,_jsx(_components.code,{children:`search_messages`}),` but require approval for `,_jsx(_components.code,{children:`send_email`}),`. Organization `,_jsx(_components.a,{href:`/guides/rules`,children:`rules`}),` add guardrails on top, like rate-limiting sends or requiring approval for emails matching a body `,_jsx(_components.a,{href:`/guides/rules#conditions`,children:`condition`}),`. Everything is checked before credential injection, so a blocked request never reaches Gmail.`]}),`\n`,_jsx(Heading,{level:`2`,id:`using-with-mcp-servers`,children:`Using with MCP servers`}),`\n`,_jsxs(_components.p,{children:[`If your agent uses an MCP server that needs Gmail credentials locally, see the `,_jsx(_components.a,{href:`/guides/credential-stubs/gmail`,children:`Gmail credential stubs`}),` guide to set up placeholder files that the gateway fills in at request time.`]}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Can an agent read Gmail without being able to send?`,id:`can-an-agent-read-gmail-without-being-able-to-send`,children:_jsxs(_components.p,{children:[`Yes. Use the `,_jsx(_components.strong,{children:`Read-only`}),` preset, or set `,_jsx(_components.strong,{children:`Send email`}),` to `,_jsx(_components.strong,{children:`Block`}),` or `,_jsx(_components.strong,{children:`Ask`}),` so a person approves each send. See `,_jsx(_components.a,{href:`#per-action-permissions`,children:`Per-action permissions`}),`.`]})}),_jsx(Accordion,{title:`Does the agent see my Gmail OAuth token?`,id:`does-the-agent-see-my-gmail-oauth-token`,children:_jsxs(_components.p,{children:[`No. The token stays in OneCLI, and the gateway adds it to Gmail API requests at the proxy. The agent makes plain HTTP calls and never holds the credential. See `,_jsx(_components.a,{href:`/how-it-works`,children:`How it works`}),`.`]})}),_jsx(Accordion,{title:`How do I reconnect Gmail or switch accounts?`,id:`how-do-i-reconnect-gmail-or-switch-accounts`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Gmail`}),` and connect again with the account you want. Agents with access use the new connection automatically.`]})}),_jsx(Accordion,{title:`Can I require approval for emails that match certain content?`,id:`can-i-require-approval-for-emails-that-match-certain-content`,children:_jsxs(_components.p,{children:[`Yes. Organization `,_jsx(_components.a,{href:`/guides/rules`,children:`rules`}),` can rate-limit sends or require approval when the request body matches a `,_jsx(_components.a,{href:`/guides/rules#conditions`,children:`condition`}),`.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Let AI Agents Search, Draft, and Send Gmail","sidebarTitle":"Gmail","description":"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.","canonical":"https://onecli.sh/docs/integrations/gmail","href":"/integrations/gmail"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"What you will set up","slug":"what-you-will-set-up","depth":2,"children":[]},{"title":"Connect on OneCLI Cloud (one click)","slug":"connect-on-onecli-cloud-one-click","depth":2,"children":[]},{"title":"Use your own Google client","slug":"use-your-own-google-client","depth":2,"children":[]},{"title":"What agents can do","slug":"what-agents-can-do","depth":2,"children":[]},{"title":"Per-action permissions","slug":"per-action-permissions","depth":2,"children":[]},{"title":"Controlling access","slug":"controlling-access","depth":2,"children":[]},{"title":"Using with MCP servers","slug":"using-with-mcp-servers","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/chartdbinc/e8c5fc0faf4d8de9/infra/cloudfront/docs-response-headers.js"],"subdomain":"chartdbinc","siteName":"OneCLI","title":"Let AI Agents Search, Draft, and Send Gmail - OneCLI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T01:51:11.676Z","originalFileLocation":"integrations/gmail.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneCLI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Let AI Agents Search, Draft, and Send Gmail - OneCLI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneCLI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://onecli.sh/docs/integrations/gmail\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chartdbinc.mintlify.site/docs/_mintlify/api/og/v2?division=All+app+connections\u0026amp;title=Let+AI+Agents+Search%2C+Draft%2C+and+Send+Gmail\u0026amp;description=Connect+Gmail+so+agents+can+search%2C+read%2C+and+draft+email%2C+with+sending+behind+approval.+The+gateway+handles+OAuth%2C+so+agents+never+see+your+tokens.\u0026amp;theme=4d31f9e8e68b774b9a2b22f5\u0026amp;signature=1817795b14d56f3ef39466eced9585495da4a04e44de597bdeda2ebc6f74c65b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Let AI Agents Search, Draft, and Send Gmail - OneCLI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chartdbinc.mintlify.site/docs/_mintlify/api/og/v2?division=All+app+connections\u0026amp;title=Let+AI+Agents+Search%2C+Draft%2C+and+Send+Gmail\u0026amp;description=Connect+Gmail+so+agents+can+search%2C+read%2C+and+draft+email%2C+with+sending+behind+approval.+The+gateway+handles+OAuth%2C+so+agents+never+see+your+tokens.\u0026amp;theme=4d31f9e8e68b774b9a2b22f5\u0026amp;signature=1817795b14d56f3ef39466eced9585495da4a04e44de597bdeda2ebc6f74c65b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneCLI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#19BA5D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://onecli.sh/docs/integrations/gmail\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/integrations/gmail.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://onecli.sh/#organization\",\"name\":\"OneCLI\",\"url\":\"https://onecli.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chartdbinc/3IvBQeNyWpN0X2ob/logo/logo-full-light.svg?fit=max\u0026auto=format\u0026n=3IvBQeNyWpN0X2ob\u0026q=85\u0026s=630ee6bb5c7441548135c690b3e18d35\"}},{\"@type\":\"WebSite\",\"@id\":\"https://onecli.sh/docs#website\",\"name\":\"OneCLI\",\"url\":\"https://onecli.sh/docs\",\"publisher\":{\"@id\":\"https://onecli.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://onecli.sh/docs/integrations/gmail#webpage\",\"url\":\"https://onecli.sh/docs/integrations/gmail\",\"name\":\"Let AI Agents Search, Draft, and Send Gmail\",\"description\":\"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.\",\"dateModified\":\"2026-11-03T01:51:11.676Z\",\"isPartOf\":{\"@id\":\"https://onecli.sh/docs#website\"},\"breadcrumb\":{\"@id\":\"https://onecli.sh/docs/integrations/gmail#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://onecli.sh/docs/integrations/gmail#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"All app connections\",\"item\":\"https://onecli.sh/docs/integrations/affinity\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Let AI Agents Search, Draft, and Send Gmail\",\"item\":\"https://onecli.sh/docs/integrations/gmail\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://onecli.sh/docs/integrations/gmail#article\",\"headline\":\"Let AI Agents Search, Draft, and Send Gmail\",\"name\":\"Let AI Agents Search, Draft, and Send Gmail\",\"description\":\"Connect Gmail so agents can search, read, and draft email, with sending behind approval. The gateway handles OAuth, so agents never see your tokens.\",\"url\":\"https://onecli.sh/docs/integrations/gmail\",\"mainEntityOfPage\":{\"@id\":\"https://onecli.sh/docs/integrations/gmail#webpage\"},\"dateModified\":\"2026-11-03T01:51:11.676Z\",\"publisher\":{\"@id\":\"https://onecli.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://onecli.sh/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneCLI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneCLI","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/chartdbinc/images/github.svg","href":"https://github.com/onecli"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Integrations","groups":[{"group":"Integrations","root":{"title":"Integrations: Connect Agents to External Services","sidebarTitle":"Overview","href":"/integrations"},"pages":[{"title":"App Connections: How OAuth \u0026 API Keys Work","sidebarTitle":"App Connections","href":"/integrations/app-connections"},{"title":"Custom Connections: Connect Any API With a Key","sidebarTitle":"Custom connections","href":"/integrations/custom-connections"},{"title":"Chat With AI Agents and Approve Actions in Slack","sidebarTitle":"Slack","href":"/integrations/slack"},{"title":"Keep LLM API Keys Out of Your AI Agents","sidebarTitle":"LLMs","href":"/integrations/llms"},{"title":"External Vaults: Connect Password Managers","sidebarTitle":"External Vaults","href":"/vaults/overview"}]},{"group":"Cloud integrations","pages":[{"title":"Prospect and Enrich Leads in Apollo.io With Agents","sidebarTitle":"Apollo.io","href":"/integrations/apollo-io"},{"title":"Use AWS From AI Agents Without Exposing Keys","sidebarTitle":"AWS","href":"/integrations/aws"},{"title":"Let AI Agents Open PRs and Issues on GitHub","sidebarTitle":"GitHub","href":"/integrations/github"},{"title":"Org-Approved GitHub Repo Access for AI Agents","sidebarTitle":"GitHub App","href":"/integrations/github-app"},{"title":"Let AI Agents Query Datadog Metrics and Monitors","sidebarTitle":"Datadog","href":"/integrations/datadog"},{"title":"Let AI Agents Update HubSpot CRM Records","sidebarTitle":"HubSpot","href":"/integrations/hubspot"},{"title":"Let AI Agents Triage Sentry Errors","sidebarTitle":"Sentry","href":"/integrations/sentry"},{"title":"Let AI Agents Read and Write OneNote Notebooks","sidebarTitle":"Microsoft OneNote","href":"/integrations/microsoft-onenote"},{"title":"Connect AI Agents to Outlook Mail in Microsoft 365","sidebarTitle":"Outlook Mail","href":"/integrations/outlook-mail"},{"title":"Let AI Agents Book Meetings in Outlook Calendar","sidebarTitle":"Outlook Calendar","href":"/integrations/outlook-calendar"}]},{"group":"All app connections","pages":[{"title":"Connect AI Agents to Affinity CRM With an API Key","sidebarTitle":"Affinity","href":"/integrations/affinity"},{"title":"Let AI Agents Manage Attio CRM Records","sidebarTitle":"Attio","href":"/integrations/attio"},{"title":"Run Clay Enrichment From AI Agents","sidebarTitle":"Clay","href":"/integrations/clay"},{"title":"Query PostHog Analytics and Flags From Agents","sidebarTitle":"PostHog","href":"/integrations/posthog"},{"title":"Connect AI Agents to Salesforce With an External App","sidebarTitle":"Salesforce","href":"/integrations/salesforce"},{"title":"Turn Timeless Meetings Into Agent Follow-Ups","sidebarTitle":"Timeless","href":"/integrations/timeless"},{"title":"Let Agents Search Circleback Meeting Notes","sidebarTitle":"Circleback","href":"/integrations/circleback"},{"title":"Run HeyReach LinkedIn Campaigns From AI Agents","sidebarTitle":"HeyReach","href":"/integrations/heyreach"},{"title":"Automate Dripify LinkedIn Outreach With Agents","sidebarTitle":"Dripify","href":"/integrations/dripify"},{"title":"Let On-Call Agents Triage PagerDuty Incidents","sidebarTitle":"PagerDuty","href":"/integrations/pagerduty"},{"title":"Query Coralogix Logs and Metrics From Agents","sidebarTitle":"Coralogix","href":"/integrations/coralogix"},{"title":"Search Company Knowledge in Onyx From Agents","sidebarTitle":"Onyx","href":"/integrations/onyx"},{"title":"Scoped Cloudflare API Tokens for AI Agents","sidebarTitle":"Cloudflare","href":"/integrations/cloudflare"},{"title":"Set Up One Google OAuth Client for All Google Apps","sidebarTitle":"Google (setup)","description":"Create one Google OAuth client for Gmail, Drive, Calendar, Sheets, and every Google app in OneCLI. Enable the APIs, set the consent screen, and connect.","href":"/integrations/google"},{"title":"Let AI Agents Search, Draft, and Send Gmail","sidebarTitle":"Gmail","href":"/integrations/gmail"},{"title":"Let AI Agents Schedule Meetings in Google Calendar","sidebarTitle":"Google Calendar","description":"Let agents check availability, create events, and manage RSVPs in Google Calendar. Connect in one click, and the gateway keeps OAuth tokens hidden.","href":"/integrations/google-calendar"},{"title":"Give AI Agents Access to Google Drive Files","sidebarTitle":"Google Drive","href":"/integrations/google-drive"},{"title":"Let AI Agents Draft and Edit Google Docs","sidebarTitle":"Google Docs","href":"/integrations/google-docs"},{"title":"Let AI Agents Read and Update Google Sheets","sidebarTitle":"Google Sheets","href":"/integrations/google-sheets"},{"title":"Generate Google Slides Decks With AI Agents","sidebarTitle":"Google Slides","href":"/integrations/google-slides"},{"title":"Build Google Forms and Read Responses With Agents","sidebarTitle":"Google Forms","href":"/integrations/google-forms"},{"title":"Create Google Meet Links From AI Agents","sidebarTitle":"Google Meet","href":"/integrations/google-meet"},{"title":"Search and Organize Google Photos With AI Agents","sidebarTitle":"Google Photos","href":"/integrations/google-photos"},{"title":"Track To-Dos in Google Tasks From AI Agents","sidebarTitle":"Google Tasks","href":"/integrations/google-tasks"},{"title":"Automate Google Workspace User Admin With Agents","sidebarTitle":"Google Admin","href":"/integrations/google-admin"},{"title":"Pull GA4 Reports Into AI Agents","sidebarTitle":"Google Analytics","href":"/integrations/google-analytics"},{"title":"Let AI Agents Check Indexing in Search Console","sidebarTitle":"Google Search Console","href":"/integrations/google-search-console"},{"title":"Automate Google Classroom Coursework With Agents","sidebarTitle":"Google Classroom","href":"/integrations/google-classroom"},{"title":"Manage YouTube Playlists and Analytics With Agents","sidebarTitle":"YouTube","href":"/integrations/youtube"},{"title":"Let AI Agents Search and Update Notion Pages","sidebarTitle":"Notion","href":"/integrations/notion"},{"title":"Let AI Agents Create and Triage Jira Issues","sidebarTitle":"Jira","href":"/integrations/jira"},{"title":"Give AI Agents Search and Edit Access to Confluence","sidebarTitle":"Confluence","href":"/integrations/confluence"},{"title":"Let AI Agents Manage Your Todoist Tasks","sidebarTitle":"Todoist","href":"/integrations/todoist"},{"title":"Give AI Agents Safe Access to Your Dropbox Files","sidebarTitle":"Dropbox","href":"/integrations/dropbox"},{"title":"Deploy to Fly.io From an Agent Without Exposing Tokens","sidebarTitle":"Fly.io","href":"/integrations/flyio"},{"title":"Let AI Agents Post to LinkedIn on Your Behalf","sidebarTitle":"LinkedIn","href":"/integrations/linkedin"},{"title":"Connect AI Agents to Monday.com Boards","sidebarTitle":"Monday.com","href":"/integrations/monday"},{"title":"Administer MongoDB Atlas Clusters With Agents","sidebarTitle":"MongoDB Atlas","href":"/integrations/mongodb-atlas"},{"title":"Sync Navan Bookings and Expenses With AI Agents","sidebarTitle":"Navan","href":"/integrations/navan"},{"title":"Let AI Agents Send Email With Resend","sidebarTitle":"Resend","href":"/integrations/resend"},{"title":"Send SMS and WhatsApp From AI Agents With Twilio","sidebarTitle":"Twilio","href":"/integrations/twilio"},{"title":"Zendesk Integration: Tickets and Help Center","sidebarTitle":"Zendesk","href":"/integrations/zendesk"},{"title":"Manage Supabase Projects With AI Agents","sidebarTitle":"Supabase","href":"/integrations/supabase"},{"title":"Call Claude and Gemini on Vertex AI From Agents","sidebarTitle":"Vertex AI","href":"/integrations/vertex-ai"},{"title":"Let AI Agents Edit Webflow CMS and Publish Sites","sidebarTitle":"Webflow","href":"/integrations/webflow"},{"title":"Let AI Agents Schedule Zoom Meetings and Get Recordings","sidebarTitle":"Zoom","href":"/integrations/zoom"},{"title":"Give Agents AWS Access With an IAM Role, Not Keys","sidebarTitle":"AWS Role","href":"/integrations/aws-role"},{"title":"Bitbucket Repos, Pull Requests, and Pipelines","sidebarTitle":"Bitbucket","href":"/integrations/bitbucket"},{"title":"Manage Docker Hub Repositories From AI Agents","sidebarTitle":"Docker Hub","href":"/integrations/docker"},{"title":"Read Fathom Meeting Summaries From AI Agents","sidebarTitle":"Fathom","href":"/integrations/fathom"},{"title":"Give AI Agents Access to Fireflies Transcripts","sidebarTitle":"Fireflies","href":"/integrations/fireflies"},{"title":"Let AI Agents Work With GitLab Merge Requests","sidebarTitle":"GitLab","href":"/integrations/gitlab"},{"title":"Send Google Chat Messages From AI Agents","sidebarTitle":"Google Chat","href":"/integrations/google-chat"},{"title":"Let AI Agents Look Up and Update Google Contacts","sidebarTitle":"Google Contacts","href":"/integrations/google-contacts"},{"title":"Let AI Agents Read Your Granola Meeting Notes","sidebarTitle":"Granola","href":"/integrations/granola"},{"title":"Route Agent Package Installs Through JFrog","sidebarTitle":"JFrog Artifactory","href":"/integrations/jfrog-artifactory"},{"title":"Let AI Agents File and Update Linear Issues","sidebarTitle":"Linear","href":"/integrations/linear"},{"title":"Run Snowflake SQL From an Agent, Token Hidden","sidebarTitle":"Snowflake","href":"/integrations/snowflake"},{"title":"Use a Restricted Stripe Key With AI Agents","sidebarTitle":"Stripe","href":"/integrations/stripe"},{"title":"Let AI Agents Manage Trello Boards and Cards","sidebarTitle":"Trello","href":"/integrations/trello"},{"title":"Let AI Agents Deploy and Manage Vercel Projects","sidebarTitle":"Vercel","href":"/integrations/vercel"},{"title":"Let AI Agents Post and Read on X (Twitter)","sidebarTitle":"X","href":"/integrations/x"},{"title":"Let AI Agents Work Zoho CRM Leads and Deals","sidebarTitle":"Zoho CRM","href":"/integrations/zoho-crm"},{"title":"Let AI Agents Draft Word Docs in OneDrive","sidebarTitle":"Microsoft Word","href":"/integrations/microsoft-word"}]},{"group":"LLMs","pages":[{"title":"Connect Claude to Agents With a Token or API Key","sidebarTitle":"Anthropic","href":"/integrations/anthropic"},{"title":"Use OpenAI API Keys and Codex OAuth With AI Agents","sidebarTitle":"OpenAI","href":"/integrations/openai"}]},{"group":"External Vaults","pages":[{"title":"Bitwarden Vault: Sync Secrets to the Gateway","sidebarTitle":"Bitwarden","href":"/vaults/bitwarden"},{"title":"1Password Vault: Service Account Integration","sidebarTitle":"1Password","href":"/vaults/1password"}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks"}]}]},"basePath":"","title":"Let AI Agents Search, Draft, and Send Gmail - OneCLI","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BDAj7nBh.js","DynamicMarkdown-Bq09mRwR.js","zoom-image-lightbox-CypZe82l.js","lightbox-handle-r17bVUz3.js"]}