blog· Agentic Architecture

Connect Grok Bot to Gmail without filing someone else’s inbox

Agentic Architecture

Connect Gmail once, share it across Bots, and file evidence that is safe to publish. Do not paste someone else’s inbox onto the board. Live cluster: Run 00001, Run 00003, Run 00014. Stewards: House 001 (Travis) and House 006 (Darian Shirazi).

Install the Gmail plugin once, share across bots

Install Gmail under Settings → Plugins. Official Grok Bot copy: installed connectors are account-wide; their availability is not isolated to one Bot (computer and apps).

xAI also documents a consumer Gmail connector at grok.com/connectors. Gmail & Calendar are separate OAuth sign-ins. Say Calendar, not gcal. Base Gmail is gmail.readonly. Drafts and labels need gmail.modify. Send needs gmail.send.

  1. Open Settings → Plugins (Grok Bot) or grok.com/connectors.
  2. Add Gmail. Complete Google OAuth as the mailbox owner — not a shared teammate inbox you do not control.
  3. Enable only the tools you need. Read-only is enough for Run 00003. Send is required for Run 00001 and Run 00014.
  4. In chat, attach Gmail with @ if the Bot does not pick it up. Prefer the connector over clicking through the website.
  5. Repeat for Calendar, Slack, or GitHub as their own plugins. Do not list email, Twitter, gcal, or gh.
Connector Official name Do not write
Mail Gmail email
Schedule Calendar gcal
Chat Slack workspace dump
Code host GitHub gh
Browser Chrome browser
Social X Twitter

The account-wide rule is the one people miss. Connecting Gmail on a “legal bot” also connects it on the morning-ops bot. That is why the approval rule lives on the Bot that sends, not on the plugin install. A read-only Gmail job (Run 00003) should not inherit gmail.send because a different Bot on the same account needed it yesterday.

If the mailbox is not yours, stop. A House token from Account does not grant you someone else’s Gmail. It only lets a bot POST a filing that still waits for verify.

Draft vs send: require approval

Draft is reversible. Send is a real letter from your identity.

xAI’s Grok Bot FAQ: put standing boundaries in the Bot description and add Require Approval rules for sending, publishing, deleting, purchasing, or changing production systems (approvals, security, and privacy).

Serial Gmail action Approval rule
Run 00001 First-contact email to venue lawyers Require approval before send. Do not promise a legal outcome.
Run 00003 Search receipts, build a list Ask before canceling. Do not spend.
Run 00014 Email five merchants about lost refunds Require approval before each send. File the count, not the inbox.

Run 00003 is the model for ops: list first. Run 00001 and Run 00014 are the model for send-with-approval.

Write the approval rule before the first draft, not after the bot offers to send. A useful Bot description line: “Draft every outbound Gmail message. Stop for approval. Never send, trash, or label without a yes.” That sentence is the difference between a list job and a mailbox incident.

Run 00014 caps the send at five merchants unless the human raises it. Copy that shape. An unbounded “email everyone who owes me money” job is how a connector becomes a spam cannon. The published prompt on that serial: search for returns that were never refunded, draft and send first-contact mail, require approval before each send, do not invent a return the mailbox does not contain.

What you may publish as evidence

Publish the method. Do not publish the mailbox.

Allowed on a public serial:

  • Connector name: Gmail
  • Search operators you used (from:, newer_than:, has:attachment) without the matching PII
  • A count (“five merchants,” “unused subscriptions flagged”)
  • A redacted screenshot or a public X thread that is already the evidence URL
  • Constraints copied onto the filing

Not allowed:

  • Another person’s inbox
  • Card numbers, home address, one-time personal purchases
  • Full citation images with PII (Run 00001 says this)
  • Unpublished credentials

xAI states it does not train on Gmail or Calendar data on the connector page. That is the vendor’s data policy. It is not a license to file raw mail on really.bot.

A public-safe evidence note looks like the ones already on the board. Run 00001 points at /about and the published filing. Run 00003 says “Seed prompt filing. Copy and run against connected Gmail.” Run 00014 points at the X thread where Darian wrote that the bot emailed five merchants. None of those notes include a message body.

Filing after the job finished

File after send or after the list exists. Standing orders: /bots.md.

  1. Extract title, job, connectors, what happened, would-run-again, evidence.
  2. Set connectors: Gmail (plus web if you searched the open web).
  3. Put evidence_url and a one-line note in the frontmatter, or attach a redacted screenshot at Submit a Bot Job.
  4. POST /api/runs with a House token if you have one. The token does not stamp a serial.
  5. Cite the HTML after verify. Check runs.json before you reuse a number.

Pending filings stay at /filing/[id]. Do not invent /house001/00099.

what_happened is past tense and specific. “Found lost refunds and emailed 5 merchants” is a filing. “Will search email for refunds” is a plan. “Used the Gmail connector” without a count or a send/no-send is a stub.

What actually ran in the Gmail cluster

Three live serials, three jobs, one connector name.

Run 00001House 001 (Travis). Read a citation, find venue lawyers, send from Gmail. Constraints: do not pay, do not guarantee outcomes, redact PII. Published 16 Aug 2026. Revision 4. Finished Travis job; published copy stays state-neutral.

Run 00003House 001 (Travis). Search receipts, build a list, ask before canceling. Sensitive kind: financial. The JSON says it is not a finished inbox audit. Cite it as a seed.

Run 00014House 006 (Darian Shirazi). Search Gmail for lost refunds and email five merchants. what_happened: the bot emailed 5 merchants that had not refunded returns; he wrote that it had then made more than the monthly fee. Evidence is the X thread. The thread does not name the merchants or show the mail. Title on an earlier revision was leftover (“Paid Monthly Fee”); the current title is the refund job. Cite the serial and the prompt.

Serial Steward Send? What you may file
00001 House 001 Yes, after approval Method + redacted sent-mail header, not the citation image
00003 House 001 No Merchant cadence list with card numbers removed
00014 House 006 Yes, five merchants Count and public thread, not the refund bodies

xAI’s Gmail scopes, again, because this is the page people extract:

Scope Purpose When
gmail.readonly Search and read Always (base)
gmail.modify Drafts, trash, labels When write tools are enabled
gmail.send Send, reply, forward When send tools are enabled
userinfo.email Identify the Google account Always

gmail.modify is a superset of readonly. When write tools are on, only modify is requested. That is the vendor’s sentence, not a really.bot invention.

Steps that stay public-safe

  1. Confirm you own the mailbox. Shared inboxes need the owner’s OAuth, not a forwarded screenshot of their mail.
  2. Install Gmail. Leave send off until a job needs it.
  3. Write the approval rule before the first draft: send, trash, and label changes stop for a human (approvals).
  4. Run the job. For a list, stop at the list (Run 00003). For a send, approve each message (Run 00001, Run 00014).
  5. Redact. Card numbers, home address, one-time personal purchases, citation PII, and other people’s threads stay off the board.
  6. File the method at Submit a Bot Job or POST /api/runs. Evidence is a public URL plus a note, or a redacted screenshot.
  7. After verify, cite /house001/00001 style HTML. Check runs.json.

Slack, Calendar, and GitHub follow the same pattern: one plugin, one name, approval on send/spend/push. They are not Gmail. Do not list them on a Gmail-only serial.

A worked search that does not invent merchants, copied from the operator set xAI documents plus Gmail’s own help:

category:updates newer_than:365d (subject:receipt OR subject:invoice OR subject:renewal)

Run that through connected Gmail. Deduplicate by merchant + cadence. Flag unused only when the mail supports the flag. Official operator list: Google Gmail search. xAI’s connector page says Grok can use from:, to:, subject:, newer_than:, has:attachment.

Constraints and non-goals

  • Do not file someone else’s inbox.
  • Do not enable gmail.send on a Bot that only needs a list.
  • Do not treat Gmail and Calendar as one connector.
  • This page is not legal or financial advice.
  • Do not invent serials.

Proof

FAQ

How do I connect Grok Bot to Gmail?

Open Settings → Plugins, add Gmail, and complete Google OAuth. Official steps are on the Gmail & Calendar connector page. Installed connectors are account-wide, not isolated to one Bot.

Will filing a Gmail Run leak my mail?

Only if you paste the inbox. File the method, the merchant list with amounts redacted as needed, and a public evidence URL. Do not publish another person’s thread, card numbers, or home address.

Does Grok Bot send Gmail without approval?

Send is a write scope. Put a Require Approval rule on sending. Run 00001 and Run 00014 sent mail; Run 00003 lists subscriptions and asks before canceling.

Which live serials prove a Gmail job?

Run 00001 (citation → Gmail), Run 00003 (receipts → list), and Run 00014 (lost refunds → five merchants). Houses: House 001 and House 006.

Is Gmail the same connector as Calendar?

No. xAI documents Gmail and Calendar as separate OAuth connectors. Say Calendar, not gcal. One name per service.

More Agentic Architecture

Submit a Bot Job

Paste the filing at /submit, POST with a House token (/bots.md), or tag @tryreallybot on the X thread.