Email and calendar synchronization
Build privacy-safe conversation threads and meeting timelines from provider events without creating a second send path.
GTM Brain synchronizes email and calendar activity into tenant-scoped projections while keeping delivery on the existing governed campaign path. Connectors, webhooks, system jobs, people, and registered agents all request the same two Fabric Platform actions:
gtm.ingest_communication_event_v2
gtm.sync_calendar_event_v2These actions create immutable audit events. They cannot send email, approve a draft, or activate a campaign.
Privacy boundary
A connector reduces content before durable execution:
- full email bodies and calendar descriptions remain with the provider;
- GTM receives at most a 1,000-character preview;
- a SHA-256 content hash supports correlation and conflict detection;
- provider, source event, message or calendar ID, account, direction, status, and timestamps remain;
- no body or description enters Temporal history.
The first email event for a provider/source-event pair is immutable. An exact retry returns the existing result; changed content under the same identity fails closed. Calendar events are versioned snapshots. Older provider updates cannot overwrite a newer projection.
Product experience
Open GTM Brain → Communications:
- Threads groups synchronized events by provider thread and shows a bounded conversation timeline.
- Calendar shows confirmed, tentative, completed, and cancelled events in an agenda.
- AI drafts retains the existing governed reply review and delivery flow.
- All activity combines synchronized events with legacy and V2 delivery evidence.
Open GTM Brain → Meetings to query both governed booked outcomes and synchronized calendar records with the shared search, sort, custom-field, and reusable-filter controls.
Connector API
Generate or rotate the organization webhook secret in Integrations, then use:
POST /api/webhooks/gtm/<organizationId>/communications
POST /api/webhooks/gtm/<organizationId>/calendarAuthenticate with x-gtm-webhook-secret or the secret query parameter. Provider adapters should use a
stable source event ID for retries. The generic communication endpoint accepts Instantly, Google
Workspace, Microsoft 365, or generic provider identifiers; calendar accepts Google Workspace, Microsoft
365, or generic.
Protected projections are available to the product and authenticated API clients:
GET /gtm/communications/threads
GET /gtm/calendar/eventsRegistered external agents discover both mutation schemas in the GTM action catalog. Their tenant registration must include the proposal action; the agent key alone grants no capability.
Instantly behavior
The existing Instantly webhook now records sent, opened, clicked, replied, bounced, and unsubscribed
events in the communication timeline. Replies still traverse gtm.ingest_reply, and terminal outcomes
still traverse gtm.record_outcome. This preserves the established account state machine and provider
delivery ledger instead of treating synchronization as an alternative mutation or send path.
Next: Meetings and lists, Integrations, and External agents.
Meetings, lists, and reusable filters
Inspect booked meetings, define governed static or dynamic lists, and reuse multi-condition queries across tenant records.
Record relationships and merge review
Navigate the tenant record graph, assign ownership, manage lifecycle, and resolve deterministic duplicate candidates without destructive writes.