Channel APIs

Overview

Manage channels (integrations) in a workspace. Channels are the integrations that connect Bread Crumbs with external messaging providers. Each channel has its own setup flow and integration properties, you can setup a new channel in the Channels (opens in a new tab) page.

ℹ️

Most of the channels require to be created from the Channels (opens in a new tab) page visually while it needs some steps to be completed from the provider's website. For now you can only use the API to create Telegram and Custom Channel.

Channel properties

PropertyTypeDescription
workspaceIdnumber

The workspace ID.

idstring

The channel ID.

namestring

The channel name.

identifierstring

The channel identifier (Business phone nuumber for WhatsApp and business/page name for Instagram).

typeIntegrationType

The channel type, it can be 'WHATSAPP', 'INSTAGRAM', 'TELEGRAM' or 'CUSTOM'.

createdAtDateTime

The created timestamp.

patchedAtDateTime

The last updated timestamp.

propertiesjson

The channel properties, it's explained in the next section.

Channel assignment properties (properties)

PropertyTypeDescription
startWithStartWithType

The conversation assignment strategy. Possible values: AUTO, AI, AGENT, AI_BY_COUNTRY_CODE, AGENT_BY_COUNTRY_CODE.

assigneeIdstring

The default assignee ID used by assignment rules, it can be a live agent or an AI assistant.

byCountryCodeConfigjson

Array of assignment rules by country code.

byCountryCodeConfig[].codestring

The country code used in the routing rule.

byCountryCodeConfig[].assigneeIdstring

The assignee ID for that country code rule, it can be a live agent or AI assistant.

List Channels API

List the channels in a workspace. Next are the available filters to list the channels.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

namestring

Name filter.

stateIntegrationState

State filter.

typeIntegrationType

Type filter, it can be 'WHATSAPP', 'INSTAGRAM', 'TELEGRAM' or 'CUSTOM'.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
query integrations($input: IntegrationsInput!) {
  integrations(input: $input) {
    nodes {
      id
      name
      type
      state
      identifier
      createdAt
    }
  }
}
 
input IntegrationsInput {
  workspaceId: Int! # Workspace ID.
  name: String # Name filter.
  state: IntegrationState # State filter.
  type: IntegrationType # Type filter.
}

The query above returns JSON structured like this:

{
  "data": {
    "integrations": {
      "nodes": [
        {
          "id": "id_123",
          "name": "sample",
          "type": "whatsapp",
          "state": "active",
          "identifier": "sample",
          "createdAt": "2026-03-16T00:00:00.000Z"
        }
      ]
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"integrations","variables":{"input":{"workspaceId":12,"name":"sample","state":"VALUE","type":"VALUE"}},"query":"query integrations($input: IntegrationsInput!) {\\n  integrations(input: $input) {\\n    nodes {\\n      id\\n      name\\n      type\\n      state\\n      identifier\\n      createdAt\\n    }\\n  }\\n}"}'

Create Channel API

Create a channel. You can only create Telegram and Custom Channel through the API.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

integrationPropertiesjson

Required. Provider-specific channel properties.

namestring

Required. The name of the channel.

typestring

Required. Channel type, it can be 'TELEGRAM' or 'CUSTOM'.

integrationProperties by channel type

Telegram channel (type: TELEGRAM)

PropertyTypeDescription
accessTokenstring

Required. Telegram bot token.

Custom channel (type: CUSTOM)

PropertyTypeDescription
endpointstring

Required. Custom channel endpoint URL.

validateTokenstring

Required. Verification token used for validating callbacks/webhooks.

accessTokenstring

Required. Access token used when communicating with the custom endpoint.

externalIdstring

Required. External identifier for the custom channel.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
mutation createIntegration($input: IntegrationCreateInput!) {
  createIntegration(input: $input) {
    id
    name
    type
    state
    identifier
    createdAt
  }
}
 
input IntegrationCreateInput {
  workspaceId: Int! # Workspace ID.
  integrationProperties: JSON! # Provider-specific channel properties.
  name: String! # Channel name.
  type: IntegrationType! # Channel type.
}

The mutation above returns JSON structured like this:

{
  "data": {
    "createIntegration": {
      "id": "id_123",
      "name": "sample",
      "type": "whatsapp",
      "state": "active",
      "identifier": "sample",
      "createdAt": "2026-03-16T00:00:00.000Z"
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"createIntegration","variables":{"input":{"workspaceId":12,"integrationProperties":{"key":"value"},"name":"sample","type":"VALUE"}},"query":"mutation createIntegration($input: IntegrationCreateInput!) {\\n  createIntegration(input: $input) {\\n    id\\n    name\\n    type\\n    state\\n    identifier\\n    createdAt\\n  }\\n}"}'

Patch Channel API

Patch a channel. You should have the MANAGE_WORKSPACE permission to patch a channel.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

idstring

Required. The ID.

propertiesJSON

Partial channel properties update.

namestring

The name.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
mutation patchIntegration($input: IntegrationPatchInput!) {
  patchIntegration(input: $input) {
    id
    name
    type
    state
    identifier
    patchedAt
  }
}
 
input IntegrationPatchInput {
  workspaceId: Int! # Workspace ID.
  id: ID! # Channel ID.
  properties: JSON # Partial channel properties update.
  name: String # New channel name.
}

The mutation above returns JSON structured like this:

{
  "data": {
    "patchIntegration": {
      "id": "id_123",
      "name": "sample",
      "type": "whatsapp",
      "state": "active",
      "identifier": "sample",
      "patchedAt": "2026-03-16T00:00:00.000Z"
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"patchIntegration","variables":{"input":{"workspaceId":12,"id":"id_123","properties":{"key":"value"},"name":"sample"}},"query":"mutation patchIntegration($input: IntegrationPatchInput!) {\\n  patchIntegration(input: $input) {\\n    id\\n    name\\n    type\\n    state\\n    identifier\\n    patchedAt\\n  }\\n}"}'

Waba Message Templates API

Get the WhatsApp message templates for a channel.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

integrationIdstring

Required. The channel ID.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
query wabaMessageTemplates($input: WabaMessageTemplatesInput!) {
  wabaMessageTemplates(input: $input) {
    nodes {
      id
      name
      language
      status
      category
      library_template_name
    }
  }
}
 
input WabaMessageTemplatesInput {
  workspaceId: Int! # Workspace ID.
  integrationId: ID! # WhatsApp channel ID.
}

The query above returns JSON structured like this:

{
  "data": {
    "wabaMessageTemplates": {
      "nodes": [
        {
          "id": "tmpl_123",
          "name": "sample",
          "language": "en_US",
          "status": "APPROVED",
          "category": "UTILITY",
          "library_template_name": "sample_template"
        }
      ]
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"wabaMessageTemplates","variables":{"input":{"workspaceId":12,"integrationId":"id_123"}},"query":"query wabaMessageTemplates($input: WabaMessageTemplatesInput!) {\\n  wabaMessageTemplates(input: $input) {\\n    nodes {\\n      id\\n      name\\n      language\\n      status\\n      category\\n      library_template_name\\n    }\\n  }\\n}"}'