Connect the SaaS integrations end to end
The Integrations hub connects in two lanes. The OAuth cohort — Zendesk, Calendly, DocuSign, and Jira — opens the provider’s consent screen in a popup. The credential cohort — PostHog, Mixpanel, Freshdesk, Resend, ElevenLabs, Google Gemini, and People Data Labs — takes an API key or service-account credential in Nango’s hosted Connect UI form, with no redirect to the provider. Both lanes share one lifecycle after connect: per-provider setup, health monitoring, pause and resume, rotate, and revoke. Each provider feeds a different Orbit surface: Zendesk tickets into the inbox, Calendly bookings into reminder flows, DocuSign envelopes into tracked conversations, Jira issues into the inbox CRM panel, PostHog and Mixpanel events into CDP segments, Freshdesk tickets next to the conversations that spawned them, Resend as a transactional email lane, and ElevenLabs voices into the voice pickers.Step 1 — Find the cards in the Integrations hub
Open Settings → Integrations. The card grid is loaded at runtime from the integration server’s provider registry viaGET /api/v1/integrations/catalog, so providers your platform admin wires up appear without a code change. Orbit layers marketing copy, icons, and feature tags on top of what the registry returns; a provider the registry does not expose renders with a generic icon and automation category until the admin wires it.
Each catalog entry carries the fields the card renders:
status is available for live providers and coming_soon for roadmap entries.
Two roadmap entries remain: Google Sheets and AWS S3 show with a Coming soon badge and go live when the platform wires them; no action on your side until then. Every other card on the grid is connectable today, including the seven credential-cohort providers, which connect through the Connect UI credential form (Step 3b) instead of an OAuth popup.
Step 2 — What each integration does
Pick the integration for the capability you need. Zapier, n8n, and Make are separate connectors (see the connector downloads guide); the four below are direct OAuth connections.Zendesk, Salesforce, and HubSpot are the CRM-context providers — the inbox contact panel shows synced records from whichever you connect. Connect only the systems you use.
The credential cohort
Step 3 — Connect via the OAuth popup
These integrations use the generic connect flow — not the bespoke install routes that Bridge, Intercom, Slack, and WooCommerce carry. You can trigger it either from the dashboard or from the API; both open the same provider consent screen. API-key providers skip this popup entirely; connect them with the credential form in Step 3b. From the dashboard: click Connect on the integration card, sign in at the provider’s consent screen, and grant the requested scopes. When consent completes, the card status flips to Connected and the drawer opens with the integration’s settings tabs. From the API: request theauth_url and redirect the operator there:
200 with the consent-screen URL to send the operator to:
connect_session_token inside auth_url is short-lived (Nango issues it for a single consent session, on the order of minutes). Generate it right before the operator is redirected and do not cache or reuse it. Typical failures at this step: 404 INTEGRATION_NOT_CONFIGURED when the provider has no OAuth credentials set up on the integration server, and 503 NANGO_UNAVAILABLE when the integration server is unreachable; both return { "error": { "code", "message", "status" } } with the same meta envelope.
Owner or admin role required, plus the integrations:write scope on the API key. Valid integration_id values for the popup flow are zendesk, calendly, docusign, and jira; the wider OAuth cohort (Salesforce, HubSpot, and the rest of the OAuth providers) uses the same popup. Provider credentials are encrypted at rest and token refresh is handled for you.
After consent, check
GET /api/v1/integrations — the row for your provider reports a connected state.GET /api/v1/integrations returns the catalog rows with your organization’s connection state layered on. Each row carries id, name, provider, category, a connected flag, and the sync names the provider exposes — a worked page for the four popup-flow providers:
"connected": true once the operator finishes the consent screen. For per-sync detail (last run, next run, SUCCESS / ERROR state), use GET /api/v1/integrations/{id}/status.
Run the connect → poll → confirm loop from your code:
- cURL
- Node.js
Step 3b — Connect API-key providers via the credential form
Click Connect on a credential-cohort card and Nango’s hosted Connect UI opens in place of a provider consent screen: a short form that asks for the credential the provider issues. There is no redirect to the provider and no OAuth grant to scope — paste the key once, submit, and the card flips to Connected when the form validates. The credential is encrypted at rest, and the dashboard never echoes it back. The same role gate applies: owner or admin in the dashboard, plusintegrations:write on the API key for API-driven calls. The status, sync, data, and disconnect endpoints in this guide take the same shape for credential connections, with integration_id set to the provider key — posthog, mixpanel, freshdesk, resend, elevenlabs, google-gemini, or peopledatalabs.
What the form asks for, per provider:
If the form rejects a credential, the card reports the failed validation and nothing is stored — correct the prerequisite (a key without project read access, a missing verified domain) and connect again.
Step 4 — Finish the per-integration setup
The popup gets the account connected; each integration then has its own short setup step in the card drawer:
Pull records on demand any time with
POST /api/v1/integrations/{id}/sync and read the synced record set with GET /api/v1/integrations/{id}/data?model=….
What lands in Orbit for credential providers
Put the new providers to work
Product events into segments and automations (PostHog, Mixpanel). Once events sync, they join the CDP event stream. Build a segment on a product event — trial started, feature adopted, plan limit reached — and attach it to a flow the same way you would for a messaging event: a reminder, an upgrade nudge, a win-back. Membership stays live as each sync lands new events. On-demand enrichment (People Data Labs). The CDP console’s enrichment tab lists People Data Labs beside the other enrichment providers (GET /api/v1/cdp/enrichment-catalog), and a lookup against a contact runs through POST /api/v1/cdp/enrichment-catalog/:provider_id/broker-enrich. Each lookup draws on your People Data Labs plan, and returned fields land on the profile only when you apply them — an unused lookup copies nothing. The CDP console overview tours the tab.
Ticket-to-conversation matching (Freshdesk). Synced tickets surface in the inbox contact panel next to the conversations that spawned them, so an agent answering a message sees the open ticket’s state without leaving Orbit.
Transactional email (Resend). With a sending key and a verified domain connected, transactional email — receipts, one-off agent replies, notifications — leaves through your Resend account, with its delivery and engagement reporting, alongside your SMS and WhatsApp channels.
Voices in the voice pickers (ElevenLabs). Synced voices appear in the voice pickers across the voice surfaces — pick the brand voice once and every voice agent uses it.
Step 5 — Monitor connection health
The card badge reports the live health of the connection: Connected (healthy) or Errored (revoked token or provider outage). The drawer’s Settings tab shows the connected timestamp and the sync log, andGET /api/v1/integrations/{id}/status exposes the same signal over the API — a connected Zendesk reports:
syncs[].status is one of RUNNING, PAUSED, STOPPED, SUCCESS, or ERROR; last_sync_date is when the named sync last completed. A provider whose token was revoked — or that was never connected — answers "connected": false with "syncs": [] rather than an error, so you can poll this endpoint to confirm a connect before building on the integration.
Credential connections report through the same endpoints. A synced provider — PostHog, Mixpanel, Freshdesk, ElevenLabs, Google Gemini — shows one row per synced model in syncs; a paused sync reports PAUSED and resumes on its next scheduled window or on a manual POST /api/v1/integrations/{id}/sync. An on-demand provider such as People Data Labs carries no scheduled syncs, so "connected": true with an empty syncs array is its expected steady state, not an error. A key revoked at the provider shows as Errored until you reconnect with a fresh credential.
A revoked token or an expired grant shows as errored until you reconnect; reconnecting runs the same popup and refreshes the stored credentials in place.
Revoke or rotate the connection
From the dashboard: open the integration’s drawer and use Revoke in the Settings tab — Orbit disconnects and asks the provider to delete the grant. From the API, revoke with the disconnect endpoint (owner or admin role plus theintegrations:write scope, same as connect):
200:
GET /api/v1/integrations/{id}/data?model=…. If the integration server cannot complete the revoke, the endpoint answers 502 so you know to retry — the call is safe to repeat until it confirms:
GET /api/v1/integrations/{id}/status reports "connected": false with an empty syncs array.
The provider-side permissions are narrow — ticket, user, calendar, or document scopes — so revoking on the Orbit side is enough; rotate a leaked provider credential in the provider’s own admin panel and reconnect.
The credential lane rotates the same way: rotate the key in the provider’s console first, then reconnect from the card so the stored credential is replaced — Orbit keeps the old key in effect until the new one validates. The same DELETE /api/v1/integrations/{id}/disconnect revokes a credential connection, with integration_id set to posthog, mixpanel, freshdesk, resend, elevenlabs, google-gemini, or peopledatalabs.
Feature matrix — what each tag unlocks
The cards carry feature tags that name the Orbit capability the integration feeds. The complete matrix for the OAuth-popup cohort:
Read the tags as: CRM context — synced providers surface in the inbox contact panel and customer 360; Agent tools — AI agents can act on the provider’s records mid-flow; Automation — inbound events drive Orbit flows (tickets, reminders, envelope updates); Engagement — outbound SMS/WhatsApp touches tied to the provider’s lifecycle (bookings, envelopes).
Where the data lands — cross-references
- Settings → Integrations: OAuth and credential connections — the two connect modes, WorkOS, and the complete credential-provider prerequisite table.
- Connector hub — the separate Developer → Connectors catalog and credential lifecycle.
- Connect HubSpot & Salesforce end to end — the CRM-context providers with deeper data models, covered in their own walkthrough.
- Connect Intercom end to end — the bespoke OAuth install (signed-state round-trip), for comparison with the popup flow documented here.
- CDP integration console overview — the enrichment tab and segment surfaces the PostHog, Mixpanel, and People Data Labs connections feed.
- Build your first flow — wire the inbound ticket/booking/envelope events into channel flows.
- Integrations API reference — connect, status, sync, data, and disconnect endpoints with worked examples.
- Webhook consumer guide — how Orbit treats inbound provider webhooks generally (signature verification, retry windows, idempotency).
- Downloadable connectors for Zapier, n8n, and Make — when the workflow engine lives outside Orbit.