Gmail
Ingests Gmail threads, messages, attachments, and contacts using the Gmail API history ID mechanism for incremental sync. Can also send mail from the workspace.
variant=info text="Email" variant=success text="OAuth" variant=success text="Maps ACLs" variant=primary text="Can send"
What gets ingested
| Element | Mapped to |
|---|---|
| Thread | _Thread |
| Message | _Message (subject, body, headers, labels) |
| Attachment | _FileEntry + _Blob |
| Folder / label | _Folder |
| Sender / recipient address books | _Contact |
Authentication
- Type: OAuth 2.0 against Google (per-user).
- Scopes requested:
https://www.googleapis.com/auth/gmail.modify(read + label management)https://www.googleapis.com/auth/contacts.readonlyhttps://www.googleapis.com/auth/contacts.other.readonlyhttps://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/userinfo.profile
Access control mapping
| Source | Carried into the graph? |
|---|---|
| Per-user mailbox | Yes — each connected user is the sole owner of their messages and attachments. |
| Shared mailboxes | Not supported — each user connects independently. |
Sync cadence
- Default cron: every 15 minutes.
- Incremental sync: Gmail History API (
users.history.list?startHistoryId=...). The connector tracks two cursors per user:historyIdfor messages/labels- A separate sync token for the contact directory
Notable
- Implements
IEmailTaskso the workspace can use Gmail as the outbound mailer (chosen per-user). - Token expiry is tracked centrally; users with expired credentials get a re-auth prompt in the integrations UI.