Channel integration settings
List all channel integrations
Admin or supervisor only.
List all channel integrations › Responses
List of integrations
idchannelwhatsapp, instagram, email, or messenger
is_activeconfigChannel configuration (sensitive fields masked)
created_atupdated_atdivision_idGet a single integration by channel
Returns empty config if not yet configured.
path Parameters
channelGet a single integration by channel › Responses
Integration details (or default empty config)
idchannelwhatsapp, instagram, email, or messenger
is_activeconfigChannel configuration (sensitive fields masked)
created_atupdated_atdivision_idCreate or update an integration (upsert)
Admin only. Merges config — masked values are not overwritten.
path Parameters
channelCreate or update an integration (upsert) › Request Body
is_activeconfigdivision_idCreate or update an integration (upsert) › Responses
Integration updated
idchannelwhatsapp, instagram, email, or messenger
is_activeconfigChannel configuration (sensitive fields masked)
created_atupdated_atdivision_idList integration accounts
Admin or supervisor only. Optionally filter by channel.
query Parameters
channelList integration accounts › Responses
List of integration accounts
idchannelwhatsapp, instagram, email, or messenger
account_keyUnique key within a channel (e.g. wa-123456789)
display_nameis_activeis_defaultconfigAccount configuration (sensitive fields masked)
created_atupdated_atdivision_idverify_tokenwebhook_urlComputed webhook URL for this account
Create an integration account
Admin only. For WhatsApp, auto-registers and subscribes the phone number.
Create an integration account › Request Body
channelwhatsapp, instagram, email, or messenger
account_keyRequired for non-WhatsApp channels. Auto-derived from phone_number_id for WhatsApp.
display_nameis_activeis_defaultdivision_idconfigCreate an integration account › Responses
Account created
idchannelwhatsapp, instagram, email, or messenger
account_keyUnique key within a channel (e.g. wa-123456789)
display_nameis_activeis_defaultconfigAccount configuration (sensitive fields masked)
created_atupdated_atdivision_idverify_tokenwebhook_urlComputed webhook URL for this account
Get an integration account by ID
path Parameters
idGet an integration account by ID › Responses
Integration account details
idchannelwhatsapp, instagram, email, or messenger
account_keyUnique key within a channel (e.g. wa-123456789)
display_nameis_activeis_defaultconfigAccount configuration (sensitive fields masked)
created_atupdated_atdivision_idverify_tokenwebhook_urlComputed webhook URL for this account
Update an integration account
Admin only. Merges config — masked values are not overwritten.
path Parameters
idUpdate an integration account › Request Body
account_keydisplay_nameis_activeis_defaultdivision_idconfigUpdate an integration account › Responses
Account updated
idchannelwhatsapp, instagram, email, or messenger
account_keyUnique key within a channel (e.g. wa-123456789)
display_nameis_activeis_defaultconfigAccount configuration (sensitive fields masked)
created_atupdated_atdivision_idverify_tokenwebhook_urlComputed webhook URL for this account
Set an integration account as the default for its channel
Admin only. Clears the default flag from all other accounts in that channel.
path Parameters
idSet an integration account as the default for its channel › Responses
Account set as default
idchannelwhatsapp, instagram, email, or messenger
account_keyUnique key within a channel (e.g. wa-123456789)
display_nameis_activeis_defaultconfigAccount configuration (sensitive fields masked)
created_atupdated_atdivision_idverify_tokenwebhook_urlComputed webhook URL for this account
Fetch WhatsApp account health from Meta Graph API
Admin only. Returns phone number status, WABA info, and subscribed apps status in parallel.
path Parameters
idFetch WhatsApp account health from Meta Graph API › Responses
WhatsApp account status
account_iddisplay_namephone_number_idwaba_idhealthyphone_numberwabasubscribed_appssubscribed_okComplete WhatsApp Embedded Signup
Admin only. Exchanges the authorization code from the WhatsApp Embedded Signup JS SDK flow for an access token, upserts the integration account, and subscribes the phone number to WABA webhooks.
Complete WhatsApp Embedded Signup › Request Body
codeAuthorization code from the Embedded Signup JS SDK
waba_idphone_number_idComplete WhatsApp Embedded Signup › Responses
Account connected
successaccount_keydisplay_namewaba_idphone_number_idConnect Instagram account via OAuth
Admin only. Exchanges an authorization code for a long-lived token, fetches the user profile, and saves the Instagram integration account.
Connect Instagram account via OAuth › Request Body
codeAuthorization code from Instagram Login OAuth popup
redirect_uriMust exactly match the redirect_uri used in the OAuth dialog
Connect Instagram account via OAuth › Responses
Account connected
successConnect Messenger via Facebook Login OAuth
Admin only. Exchanges the authorization code for a long-lived user token, fetches the user's Facebook Pages, and returns them for selection. Pass the returned user_token and selected pages to POST /api/integrations/messenger/pages.
Connect Messenger via Facebook Login OAuth › Request Body
codeAuthorization code from Facebook Login OAuth popup
redirect_uriMust exactly match the redirect_uri used in the OAuth dialog
Connect Messenger via Facebook Login OAuth › Responses
Pages available for selection
user_tokenLong-lived user token — pass back to /messenger/pages
Subscribe selected Facebook Pages to Messenger webhooks
Admin only. For each selected page: fetches the Page Access Token, subscribes the page to messaging webhooks, and creates an IntegrationAccount.
Subscribe selected Facebook Pages to Messenger webhooks › Request Body
user_tokenLong-lived user token from POST /messenger/connect
Subscribe selected Facebook Pages to Messenger webhooks › Responses
Pages connected
successSet or delete Messenger persistent menu
Admin only. Pass delete: true to remove the menu instead.
path Parameters
account_idSet or delete Messenger persistent menu › Request Body
persistent_menuMeta persistent_menu array. Required unless delete is true.
deleteIf true, deletes the persistent menu instead of setting it.
Set or delete Messenger persistent menu › Responses
Menu set or deleted
successdeleted