v5

latestOpenAPI 3.0.0MIT2026-08-041554551.6 MB
Channel Connections

Create a channel connection

Create a new channel connection for a resource for given integration. Only one channel connection is allowed per resource and integration.

post/v1/channel-connections

Request body

identifierstring

The unique identifier for the channel connection. If not provided, one will be generated automatically.

subscriberIdstring

The subscriber ID to link the channel connection to

contextobject
connectionMode'subscriber' | 'shared'

Connection mode that determines how the channel connection is scoped. Use "subscriber" (default) to associate the connection with a specific subscriber. Use "shared" to associate the connection with a context instead of a subscriber — subscriberId will not be stored on the connection.

integrationIdentifierstring required

The identifier of the integration to use for this channel connection.

Example request

{
  "identifier": "slack-prod-user123-abc4",
  "subscriberId": "subscriber-123",
  "connectionMode": "shared",
  "integrationIdentifier": "slack-prod",
  "workspace": {
    "id": "T123456",
    "name": "Acme HQ",
    "botUserId": "U0123456789"
  },
  "auth": {
    "accessToken": "Workspace access token",
    "refreshToken": "Workspace refresh token",
    "expiresAt": "2026-06-15T12:00:00.000Z",
    "refreshTokenExpiresAt": "2026-09-15T12:00:00.000Z"
  }
}

Response

Created

identifierstring required

The unique identifier of the channel endpoint.

channel'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool' nullable required

The channel type (email, sms, push, chat, etc.).

providerId'anypost' | 'emailjs' | 'mailgun' | 'mailjet' | 'mandrill' | 'nodemailer' | 'postmark' | 'sendgrid' | 'sendinblue' | 'ses' | 'netcore' | 'infobip-email' | 'resend' | 'plunk' | 'mailersend' | 'mailtrap' | 'clickatell' | 'outlook365' | 'novu-email' | 'sparkpost' | 'email-webhook' | 'braze' | 'novu-email-agent' | 'nexmo' | 'plivo' | 'sms77' | 'sms-central' | 'sns' | 'telnyx' | 'twilio' | 'gupshup' | 'firetext' | 'infobip-sms' | 'burst-sms' | 'bulk-sms' | 'isend-sms' | 'forty-six-elks' | 'kannel' | 'maqsam' | 'termii' | 'africas-talking' | 'novu-sms' | 'sendchamp' | 'generic-sms' | 'clicksend' | 'bandwidth' | 'messagebird' | 'simpletexting' | 'azure-sms' | 'ring-central' | 'brevo-sms' | 'eazy-sms' | 'mobishastra' | 'afro-message' | 'unifonic' | 'smsmode' | 'imedia' | 'sinch' | 'isendpro-sms' | 'cm-telecom' | 'ruach-sms' | 'fcm' | 'apns' | 'expo' | 'one-signal' | 'pushpad' | 'push-webhook' | 'pusher-beams' | 'appio' | 'novu' | 'slack' | 'discord' | 'msteams' | 'webex-messaging' | 'mattermost' | 'ryver' | 'zulip' | 'grafana-on-call' | 'getstream' | 'rocket-chat' | 'whatsapp-business' | 'line' | 'chat-webhook' | 'novu-slack' | 'telegram' | 'sendblue' | 'novu-web-chat' | 'anthropic' | 'novu-anthropic' | 'anthropic-aws' | 'pagerduty' | 'opsgenie' | 'grafana' | 'tool-webhook' nullable required

The provider identifier (e.g., sendgrid, twilio, slack, etc.).

integrationIdentifierstring nullable required

The identifier of the integration to use for this channel endpoint.

subscriberIdstring nullable required

The subscriber ID to which the channel connection is linked

contextKeysstring[] required

The context of the channel connection

createdAtstring required

The timestamp indicating when the channel endpoint was created, in ISO 8601 format.

updatedAtstring required

The timestamp indicating when the channel endpoint was last updated, in ISO 8601 format.

Example response

{
  "providerId": "slack",
  "integrationIdentifier": "slack-prod",
  "subscriberId": "subscriber-123",
  "contextKeys": [
    "tenant:org-123",
    "region:us-east-1"
  ],
  "workspace": {
    "id": "T123456",
    "name": "Acme HQ",
    "botUserId": "U0123456789"
  },
  "auth": {
    "accessToken": "Workspace access token",
    "refreshToken": "Workspace refresh token",
    "expiresAt": "2026-06-15T12:00:00.000Z",
    "refreshTokenExpiresAt": "2026-09-15T12:00:00.000Z"
  }
}