Skip to main content

Channels

Refer to our channel definition for more information.

List#

POST /channels.list

Sample request

{
"source": "source to filter on" // optional
}

Sample response

{
"data": [
{
"id": "channel-uuid-1",
"source": "facebook",
"source_channel_id": "fb-page-id-1",
"metadata": {
"name": "my page 1",
// optional
"image_url": "http://example.org/avatar.jpeg"
},
"connected": true
},
{
"id": "channel-uuid-2",
"source": "facebook",
"source_channel_id": "fb-page-id-2",
"metadata": {
"name": "my page 2"
},
"connected": true
}
]
}

Info#

POST /channels.info

Sample request

{
"channel_id": "channel-uuid"
}

Sample response

{
"id": "channel-uuid",
"source": "facebook",
"source_channel_id": "fb-page-id-1",
"metadata": {
"name": "my page 1",
// optional
"image_url": "http://example.org/avatar.jpeg"
},
"connected": true
}

Update#

POST /channels.update

Update a channel's name or image URL.

Sample request

{
"channel_id": "channel-uuid",
"name": "new name for this channel", // optional
"image_url": "http://example.org/avatar_redesign.jpeg" // optional
}

Sample response

{
"id": "channel-uuid",
"source": "facebook",
"source_channel_id": "fb-page-id-1",
"metadata": {
"name": "new name for this channel",
"image_url": "http://example.org/avatar_redesign.jpeg"
},
"connected": true
}

Connecting channels#

Airy Live Chat Plugin#

Connects a Chat Plugin source to Airy Core.

POST /channels.chatplugin.connect
  • name is a unique identifier of your choice.
{
"name": "website-identifier-42",
"image_url": "http://example.org/plugin_icon.jpeg" // optional
}

Sample response

{
"id": "1f679227-76c2-4302-bb12-703b2adb0f66",
"source": "chatplugin",
"source_channel_id": "website-identifier-42",
"metadata": {
"name": "website-identifier-42",
"image_url": "http://example.org/plugin_icon.jpeg" // optional
},
"connected": true
}

Facebook#

Connects a Facebook page to Airy Core.

POST /channels.facebook.connect
  • page_id is the Facebook page ID
  • page_token is the page Access Token
  • name is the custom name for the connected page
  • image_url is the custom image URL

Sample request

{
"page_id": "fb-page-id-1",
"page_token": "authentication token",
"name": "My custom name for this page",
"image_url": "https://example.org/custom-image.jpg" // optional
}

Sample response

{
"id": "channel-uuid-1",
"source": "facebook",
"source_channel_id": "fb-page-id-1",
"metadata": {
"name": "My custom name for this page",
// optional
"image_url": "https://example.org/custom-image.jpg"
}
}

Instagram#

Connects an Instagram account to Airy Core.

POST /channels.instagram.connect
  • page_id is ID of the Facebook page connected to the Instagram account
  • page_token is the Access Token of the Facebook page
  • account_id is the ID of the Instagram account
  • name is the custom name for the connected page
  • image_url (optional) is the custom image URL

Sample request

{
"page_id": "fb-page-id-1",
"account_id": "ig-account-id",
"page_token": "authentication token",
"name": "My custom name for this account",
"image_url": "https://example.org/custom-image.jpg" // optional
}

Sample response

{
"id": "channel-uuid-1",
"source": "instagram",
"source_channel_id": "ig-account-id",
"metadata": {
"name": "My custom name for this account",
// optional
"image_url": "https://example.org/custom-image.jpg"
}
}

Facebook#

Connects a Whatsapp cloud phone number to Airy.

POST /channels.whatsapp.connect
  • phone_number_id the whatsapp phone number connected to your business account
  • user_token your user access token
  • name is the custom name for the connected page
  • image_url is a custom image url for displaying this channel on the UI

Sample request

{
"phone_number_id": "1234567",
"user_token": "user access token",
"name": "Customer support hotline",
"image_url": "https://example.org/custom-image.jpg" // optional
}

Sample response

{
"id": "channel-uuid",
"source": "whatsapp",
"source_channel_id": "1234567",
"metadata": {
"name": "Customer support hotline",
"image_url": "https://example.org/custom-image.jpg" // optional
}
}

Google#

Connects a Google Business Account to Airy Core.

POST /channels.google.connect
  • gbm_id is the ID of your Google Business Message agent
  • name is the custom name for the connected business
  • image_url is the custom image URL
{
"gbm_id": "gbm-id",
"name": "My custom name for this location",
"image_url": "https://example.com/custom-image.jpg" // optional
}

Sample response

{
"id": "channel-uuid-1",
"metadata": {"name": "My custom name for this location", "image_url": "https://example.com/custom-image.jpg"},
"source": "google",
"source_channel_id": "gbm-id"
}

SMS#

POST /channels.twilio.sms.connect
  • phone_number The phone number as listed in your Twilio dashboard. It must not contain spaces and must include the country code.
  • name is the custom name for the connected phone number
  • image_url is the custom image URL

Sample request

{
phone_number: '+491234567',
name: 'SMS for receipts',
image_url: 'https://example.com/custom-image.jpg', // optional
}

Sample response

{
id: 'channel-uuid-1',
metadata: {name: 'SMS for receipts', image_url: 'https://example.com/custom-image.jpg'},
source: 'twilio.sms',
source_channel_id: '+491234567',
connected: true,
}

Whatsapp#

POST /channels.twilio.whatsapp.connect
  • phone_number The phone number as listed in your Twilio dashboard. It must not have spaces and must include the country code.
  • name is the custom name for the connected phone number
  • image_url is the custom image URL

Sample request

{
phone_number: '+491234567',
name: 'WhatsApp Marketing',
image_url: 'https://example.com/custom-image.jpg', // optional
}

Sample response

{
id: 'channel-uuid-1',
metadata: {name: 'WhatsApp Marketing', image_url: 'https://example.com/custom-image.jpg'},
source: 'twilio.whatsapp',
source_channel_id: 'whatsapp:+491234567',
connected: true,
}

Disconnecting channels#

Airy Live Chat Plugin#

POST /channels.chatplugin.disconnect

A synchronous endpoint that makes a request to the source to disconnect the channel. It marks the channel as disconnected and deletes the auth token.

This action is idempotent, so if the channel is disconnected, the request returns status code 202. If the channel is unknown, the request returns status code 400.

Sample request

{
channel_id: 'uuid',
}

Facebook#

Disconnects a Facebook page from Airy Core.

POST /channels.facebook.disconnect

A synchronous endpoint that makes a request to the source to disconnect the channel. It marks the channel as disconnected and deletes the auth token.

This action is idempotent, so if the channel is disconnected, the request returns status code 202. If the channel is unknown, the request returns status code 400.

Sample request

{
channel_id: 'uuid',
}

Instagram#

Disconnects an instagram account from Airy Core.

POST /channels.instagram.disconnect

A synchronous endpoint that makes a request to the source to disconnect the channel. It marks the channel as disconnected and deletes the auth token.

This action is idempotent, so if the channel is disconnected, the request returns status code 202. If the channel is unknown, the request returns status code 400.

Sample request

{
channel_id: 'uuid',
}

Google#

POST /channels.google.disconnect

A synchronous endpoint that makes a request to the source to disconnect the channel. It marks the channel as disconnected and deletes the auth token.

This action is idempotent, so if the channel is disconnected, the request returns status code 202. If the channel is unknown, the request returns status code 400.

Sample request

{
channel_id: 'uuid',
}

SMS - Twilio#

POST /channels.twilio.sms.disconnect

A synchronous endpoint that makes a request to the source to disconnect the channel. It marks the channel as disconnected and deletes the auth token.

This action is idempotent, so if the channel is disconnected, the request returns status code 202. If the channel is unknown, the request returns status code 400.

Sample request

{
channel_id: 'uuid',
}

Whatsapp - Twilio#

POST /channels.twilio.whatsapp.disconnect

A synchronous endpoint that makes a request to the source to disconnect the channel. It marks the channel as disconnected and deletes the auth token.

This action is idempotent, so if the channel is disconnected, the request returns status code 202. If the channel is unknown, the request returns status code 400.

Sample request

{
channel_id: 'uuid',
}

Exploring available channels#

Facebook#

POST /channels.facebook.explore

A synchronous endpoint that makes a request to Facebook to list the available Facebook pages. Some of those pages may already be connected, which is accounted for in the boolean field connected. Due to the nature of the request, the response time may vary.

Sample request

{
"auth_token": "authentication token"
}

Sample response

{
"data": [
{
"name": "my page 1",
"page_id": "fb-page-id-1",
"connected": false,
"image_url": "http://example.org/avatar.jpeg" // optional
},
{
"name": "my page 2",
"page_id": "fb-page-id-2",
"connected": true
}
]
}
Last updated on