Skip to main content

Connector Overview

Production connector logic lives in Supabase Edge Functions because Supabase holds the relevant secrets.

Status

ConnectorStatusFunction/RouteWrite Risk
FathomLivefathom-sync, fathom-webhookWrites only to Supabase spine/approvals
GranolaBuilt, needs client keygranola-syncRead-only gap-filler; skipped when Fathom already has the meeting
Email BCCLiveemail-webhook, email-syncIngests BCC'd/forwarded emails and attachments into Supabase; no mailbox send scope
Gmail mailboxBuilt, approval requiredgmail-syncBounded, idempotent gmail.readonly mirror; only confidently project-matched activity is exposed to CMA
Asana mirrorLiveasana-syncReads Asana into Supabase
Asana actGatedasana-actExternal writes only when approved and armed
TogglLivetoggl-syncUpdates additive project-hour columns
DrivePaused by decisiondrive-syncCode intact; scheduled refresh retired (#217) in favor of manual Library uploads
HubSpotBuilt, gatedhubspot-syncConservative until match decisions are made
Calendar mirrorLivecalendar-syncReads availability + internal event details into Supabase
Calendar actGatedcalendar-actExternal writes only when approved and armed

Common Rules

  • Connector secrets are never committed.
  • External writes require explicit operator switches.
  • Read connectors should report partial failures rather than hiding them.
  • All connector writes to Supabase must preserve org boundaries.
  • Every action proposal should preserve provenance.