- a typed registry entry with connection + auth field definitions (drives the UI form automatically),
- a real executor in
lib/connector-executors/with test-connection, send, and pull methods where appropriate, - deterministic error mapping via the shared
ConnectorResponseenvelope ({ ok, status, latencyMs, body, error }), - rate-limit / circuit-breaker integration via the existing pipeline runner.
What shipped in the expansion (22 integrations)
Messaging destinations (7)
| Connector | Auth | Notes |
|---|---|---|
| Slack | Webhook URL | Posts JSON payloads; rejects non-hooks.slack.com URLs. |
| Microsoft Teams | Webhook URL | Wraps plain text in MessageCard schema when card isn’t set. |
| WhatsApp Business | System user access token | Meta Graph API v20, /messages. |
| PagerDuty | Integration Routing Key | Events API v2 /enqueue with optional dedup_key from idempotency key. |
| Twilio SMS | Account SID + Auth Token | Form-encoded /Messages.json, Basic auth. |
| SendGrid | API Key | /v3/mail/send, Bearer auth, personalizations schema. |
| Postmark | Server Token | /email, X-Postmark-Server-Token header, configurable message stream. |
CDP / Support (6)
| Connector | Auth | Notes |
|---|---|---|
| Intercom | Access Token | /events for track, /contacts for upsert. |
| Zendesk | email / token | Basic auth email/token:APITOKEN, creates tickets by default. |
| Iterable | API Key | /api/events/track with Api-Key header. |
| Klaviyo | Private Key | /api/events/ JSON:API envelope, revision 2024-10-15. |
| Segment | Write Key | Supports track / identify / group; Base64 Basic auth. |
| Braze (was coming-soon) | API Key + REST Host | /users/track batch endpoint. |
Commerce sources (3)
| Connector | Auth | Notes |
|---|---|---|
| Shopify | Access Token | Admin REST, /orders.json pagination with updated_at_min. |
| Stripe | API Key | /v1/charges with created[gte] filter. |
| Mailchimp | API Key (format: key-dcN) | DC-aware endpoint; /lists/{id}/members?since_last_changed=…. |
Reverse-ETL / data movement (6)
| Connector | Auth | Notes |
|---|---|---|
| Snowpipe | Keypair JWT | /v1/data/pipes/{pipe}/insertFiles. |
| Fivetran | API key + secret | /connectors list + /connectors/{id}/sync trigger. |
| Hightouch | Workspace API Key | /syncs/{id}/trigger with optional fullResync. |
| Census | Workspace API Key | /syncs/{id}/trigger. |
| Databricks (was coming-soon) | Host + token | Statement Execution API v2; requires warehouseId. |
| Amazon Kinesis (was coming-soon) | SigV4 | Caller signs upstream; PutRecord via Kinesis_20131202 JSON RPC. |
UI wiring
Every connector appears automatically in the Data → Connectors page because the UI readsconnectorRegistry from
src/domain/connector-registry.ts. Each entry declares
connectionFields + authFields for each auth method; the dynamic
form builder renders the right inputs (text / password / textarea /
select / number) without any per-connector UI code.
Executor interface
All executors implementConnectorExecutor:
AbortController; the default is 10 s.
Testing + auth hygiene
All 22 new executors ship with 26 unit tests that mockglobal.fetch
and assert:
- URL validation (Slack rejects non-hooks.slack.com; Teams requires webhook.office.com).
- Body shape (Teams MessageCard, Klaviyo JSON:API envelope, Twilio form-encoded Basic auth, SendGrid Bearer).
- Auth-required paths fail-closed when required secrets are absent (WhatsApp, Zendesk, Snowpipe, Kinesis).
- Pull-shape normalization (Shopify orders[], Stripe data[], Mailchimp members[]).
- Idempotency-key plumbing (PagerDuty dedup_key, Twilio Idempotency-Key).
src/lib/connector-executors/__tests__/executors.test.ts.
See also: Connectors | Pipelines