Overview
The Integrations page (/integrations in the workspace nav) is the single place to manage connections to outside systems — messaging platforms, spreadsheets, calendars, payments, CRMs, and any HTTP endpoint. A connection is created once at the workspace level, then referenced from INTEGRATION nodes inside the Automation Studio.
The page has a hero status row (total connections, healthy vs needs-attention), a search box, filter chips, and a categorized catalog grid.
Catalog categories
- Messaging — WhatsApp transports, SMS, voice, Telegram.
- Social DM — Instagram, TikTok, Facebook Messenger, LinkedIn, X, Threads. Outbound messages target
contact.socials.<platform>. - Productivity — Notion, Slack, Microsoft Teams.
- Spreadsheets — Google Sheets (read & append).
- Calendar & files — Google Calendar, Google Drive.
- Payments — Midtrans Snap (already wired for plan billing; reused for customer payments).
- AI — OpenAI, Anthropic — for nodes that draft replies or classify intent.
- Developer — Generic HTTP, Webhooks (inbound & outbound).
- CRM — HubSpot, Salesforce (catalog entries; auth flows are roadmapped).
Shipped providers
| Provider | Category | Auth | Used by |
|---|---|---|---|
| Google Sheets | Spreadsheets | OAuth 2.0 (workspace-scoped) | INTEGRATION node — Append Row / Read Range |
| HTTP | Developer | None / BASIC / API_KEY | INTEGRATION node — Method + URL + Headers + Body |
| WhatsApp Cloud API | Messaging | Meta system-user token | SEND_MESSAGE on channel WHATSAPP |
| WhatsApp Baileys | Messaging | QR pairing | SEND_MESSAGE (multi-device personal numbers) |
| Telegram MTProto | Messaging | QR pairing | SEND_MESSAGE on channel TELEGRAM |
| Instagram DM | Social DM | Meta Graph (Sender ID) — wiring in W6 | SEND_MESSAGE on channel SOCIAL_INSTAGRAM |
| X DM | Social DM | X DM API token — wiring in W6 | SEND_MESSAGE on channel SOCIAL_X |
| Threads DM | Social DM | Meta Graph (Threads) — wiring in W6 | SEND_MESSAGE on channel SOCIAL_THREADS |
| TikTok DM | Social DM | TikTok DM API — wiring in W6 | SEND_MESSAGE on channel SOCIAL_TIKTOK |
| Facebook Messenger | Social DM | Meta Graph (Page-scoped) — wiring in W6 | SEND_MESSAGE on channel SOCIAL_FACEBOOK_MESSENGER |
| LinkedIn DM | Social DM | Sales Navigator seat — wiring in W6 | SEND_MESSAGE on channel SOCIAL_LINKEDIN |
| AWS SES | Messaging | SMTP credentials | Platform transactional email (welcome, reset, KC actions) |
| Gmail send | Messaging | OAuth — gmail.send scope | INTEGRATION node — Send 1:1 mail from the user's Gmail account |
| Google Calendar | Calendar & files | OAuth — calendar.events scope | INTEGRATION node — CREATE_EVENT / LIST_EVENTS |
| Cal.com | Calendar & files | API key (optional self-hosted base URL) | INTEGRATION node — CREATE_BOOKING / LIST_BOOKINGS / CANCEL_BOOKING; inbound webhooks via G4 |
| Midtrans Snap | Payments | Server + client keys | Workspace plan billing; reusable for customer flows |
Everything else in the catalog (Notion, Slack, Teams, Calendar, Drive, OpenAI, Anthropic, HubSpot, Salesforce, Webhooks-inbound) renders as Available — connection flows ship per provider as we close design partners.
Connecting a provider
- OAuth providers — click Connect on the card → browser redirect → consent → return to
/integrations. The connection card moves to Connected with the account email/handle. - Key/token providers — click Connect → modal with the required fields → save. The token is encrypted at rest with the workspace key and never returned to the browser after save.
- QR-pairing providers (Baileys, Telegram MTProto) — click Connect → modal renders a QR; scan from the phone app.
Using a connection in the Studio
Drag an INTEGRATION node from the Actions group in the palette. The inspector lets you pick:
- Provider — only providers the workspace has connected appear here.
- Operation — provider-specific (Sheets: Append Row / Read Range; HTTP: Request).
- Inputs — provider-specific. All inputs accept
{{contact.<field>}}and{{step.<id>.<field>}}templates.
On success, the node writes its response into the per-step output bag so downstream nodes can render {{step.<id>.<field>}}. On failure, the run halts with FAILED and the provider error lands in the run trace.
Requesting a provider
Catalog cards that aren't shipped yet show a Request button. We prioritise based on demand and how cleanly the provider auth flow drops into the existing connection registry. Reach out via [email protected] if you need a provider that isn't in the catalog at all.