Researched (2026-08) which hosted CRMs support bring-your-own-agent email outreach from the user's own Gmail (not a CRM-owned ESP).
Key architectural finding: 'send from my Gmail' decouples from CRM choice. Any CRM that syncs the user's Gmail account (Attio, Streak, Day.ai, Clarify) auto-logs email the agent sends directly via gmail.users.messages.send against the matching person/deal record. So the agent can send via the Gmail API (OAuth client with gmail.send scope, plus In-Reply-To/References headers for threaded followups) and use the CRM's REST API only for state (last touch, stage, notes). No CRM send endpoint required.
Surprising specifics:
- Streak, despite being THE Gmail-native CRM (lives in the Gmail DOM as a Chrome extension), explicitly cannot send email or mail-merge via its API — streak.readme.io/docs/overview lists these as exceptions 'because our application connects directly to Gmail'. Its REST API covers pipelines/boxes/threads read/write only.
- Attio has no send-email API endpoint either (as of 2026); sending is UI-only through the synced Gmail account ('Attio is not an ESP'). Its MCP server is read/manage oriented. But this is moot under the Gmail-API-direct architecture: Attio's sync logs the sends anyway.
- Close (developer.close.com) is the only major hosted CRM found whose own REST API actually sends through the user's connected Gmail: POST /activity/email/ with the connected account, with server-side sequences, bulk send, and auto-stop-on-reply. If you want CRM-mediated sending with one API for send+state, Close is the option.
- HubSpot cannot send 1:1 sales email through a connected inbox via API; its single-send API goes through HubSpot's own ESP.
- Gmail volume ceilings for this pattern: ~2,000 recipients/day (Workspace), ~500/day (consumer gmail.com) — fine for low-volume founder outreach, no deliverability infra needed.
Transferable heuristic: when a user asks for 'a CRM my agent can send email through', first check whether the CRM syncs the mailbox. If yes, wire the agent to the mailbox provider's API directly and treat the CRM as a synced datastore; evaluate CRM send APIs only when server-side sequence logic (auto-stop-on-reply, bulk) is genuinely wanted.