TrueDialog Portal
Integrations Hub
Webhook Payload General Info
TrueDialog supports webhooks, allowing your application to subscribe to events within the TrueDialog system. This article explains the JSON payloads of each webhook type that TrueDialog supports. See the following articles to learn how to configure webhooks in the TrueDialog Portal.
The following table lists each of the available webhook types:
Webhook Type | Callback Type | Description |
---|---|---|
Keyword | 1 | Sent whenever a text message with a keyword is received. |
Subscription | 2 | Sent whenever a contact changes their subscription status. |
Survey | 3 | Sent whenever an end user responds to a survey. |
Stop | 6 | Sent whenever an end user texts STOP or any other opt-out keywords. |
New Account | 8 | Sent whenever a new child account is created. |
Incoming Message | 11 | Sent whenever an end user sends a message. |
Delivery Notice | 12 | Sent for each delivery notice receipt. |
Invalid Targets | 13 | Sent whenever contacts are removed from a campaign push request. |
Clicks | 14 | Sent whenever an end user clicks on a link. |
Long Code Provision | 15 | Sent whenever a long code request is completed. |
Survey Completion | 16 | Sent whenever an end user completes a survey. |
Outgoing Message | 17 | Sent whenever a message is sent to an end user. |
Common Payload Parameters
All webhooks include the parameters in the code block below. Each parameter is detailed below.
{
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T17:41:37",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 14,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "ed5f248a-7c27-47e2-b87e-ba2d0cd02bc8",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Grouped
boolean
If true
, the webhook payload will include an array of Record
objects containing the payload’s parameters along with the Source
and SourceName
parameters.
If false
, the webhook payload will follow the standard format for this webhook type.
Field | Type | Description |
---|---|---|
AccountId | int | ID of the account the webhook is associated with. |
AccountName | string | The name of the account the webhook is associated with. |
CallbackTimestamp | date | Date and time the webhook was sent. Format: yyyy-MM-ddTHH:mm:ss |
CallbackToken | string | Special token, unique for each account. Note: Your Callback Token is listed on the Callbacks page of the Portal. |
CallbackType | int | The webhook type of this payload. See the table of webhook types above. |
CallbackURL | string | The URL to which the webhook is sent. |
TransactionId | int | Unique token for this specific webhook payload. |
Source | string | The app tag value of the source of this webhook message. See table below for tags. |
SourceName | string | The app name of the source of this webhook message. See table below for tags. |
IntegrationSubsystem | int | The system used to generate this webhook message. See table below for values. |
Source Tags Table
Source Tag | Description |
---|---|
PORTAL | The campaign messaging system. Mass messaging. |
COMMS | The Communications Hub messaging system. One-to-one messaging. |
null | Anything not related to the above apps. |
SourceName Tags Table
SourceName Tag | Description |
---|---|
Campaigns | The campaign messaging system. Mass messaging. |
CommsHub | The Communications Hub messaging system. One-to-one messaging. |
null | Anything not related to the above apps. |
IntegrationsSubsystem Values Table
Value | Connection Type | Description |
---|---|---|
0 | Classic | This includes Classic connection types and callbacks. |
1 | TrueConnect | This includes the new TrueConnect system. |
Grouped Payloads
Some webhook types can be configured to be grouped. Instead of sending a webhook for each event, the events of the corresponding type are queued for a minute, and all events are added to a single webhook. See the table below for a list of webhook types that support grouped events.
Webhook Type Name | CallbackType Value |
---|---|
Subscription | 2 |
Incoming Message | 11 |
Delivery Notice | 12 |
Clicks | 14 |
Outgoing Message | 17 |
To determine if a webhook message is grouped, check the Grouped parameter.
"Grouped": false /* Ungrouped Webhook Payload */
"Grouped": true /* Grouped Webhook Payload */
The payload structure of a grouped webhook is different from the structure of an ungrouped webhook of the same type. For grouped payloads, each event is added to an array of Records
objects that include all of the parameters from an ungrouped payload (excluding the Common Parameters) and the Source
and SourceName
parameters. See the code block below for an example of this structure for the Incoming Message type.
{
"Records": [
{
"MessageId": "28a65224-e0aa-4f16-8bef-0ce2139ba03d",
"Message": "Hi, this is a message from a contact.",
"ChannelId": 22,
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"ChannelCode": "+12098650894",
"ActionId": 233701502,
"Media": [],
"LogDate": "2025-06-18T21:04:55Z",
"Source": null,
"SourceName": null
},
{
"MessageId": "b635efc0-7016-453d-a595-69daa1769310",
"Message": "Here is another message.",
"ChannelId": 22,
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"ChannelCode": "+12098650894",
"ActionId": 233701502,
"Media": [],
"LogDate": "2025-06-18T21:05:01Z",
"Source": null,
"SourceName": null
}
],
}
For each of the webhook types that allow grouped messages, the documentation section provides example payloads for both Grouped and Ungrouped Messages.
Webhook Types Payload Details
Keyword [1]
This webhook is sent whenever a keyword is received from an end user.
Callback Type | 1 |
Can be Grouped | No |
Example Payload
{
"CampaignId": 197773,
"ChannelId": 22,
"ChannelCode": "+13132417183",
"ContactId": 120782994,
"Keyword": "TEST",
"KeywordId": 5941,
"PhoneNumber": "+15551234567",
"SubscriptionId": 26143,
"Message": "test",
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T18:04:19",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 1,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "f287e8bc-2a42-4457-9fda-12f4179b3aad",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
CampaignId | int | ID of the campaign associated with the keyword (0 if none). |
ChannelId | int | ID of the channel over which the keyword has been received. |
ChannelCode | string | The channel over which the keyword has been received. When the channel is a long code, the leading “+” is included. |
ContactId | int | ID of the contact that submitted the keyword. |
Keyword | string | The keyword that was received. |
KeywordId | int | ID of the keyword that was received. |
PhoneNumber | string | The phone number of the end user who sent the keyword. |
SubscriptionId | int | ID of the subscription for the contact that sent the keyword. |
Message | string | The complete message text from the end user. |
Subscription [2]
This webhook is sent whenever a contact changes its subscription status by opting in or out of a subscription.
Callback Type | 2 |
Can be Grouped | Yes |
Example Payload [Grouped = false]
{
"ContactId": 125236627,
"PhoneNumber": "",
"SubscriptionId": 26143,
"Subscribed": true,
"LogDate": "2025-06-18T18:06:50Z",
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T18:06:55",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 2,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "97d64bd2-87cc-4e10-8380-e885d641d113",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Example Payload [Grouped = true]
{
"Records": [
{
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"SubscriptionId": 26143,
"Subscribed": true,
"LogDate": "2025-06-18T21:07:01Z",
"Source": null,
"SourceName": null
}
],
"Grouped": true,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T21:07:44",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 2,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "0a17ad73-e38c-49db-8a82-87273243a87b",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
ContactId | int | ID of the contact that changed its subscription status. |
PhoneNumber | string | The phone number of the contact that changed its subscription status. |
SubscriptionId | int | The ID of the subscription for which the contact has changed its status. |
LogDate | date | The date and time the subscription status change occurred. Format: yyyy-MM-ddTHH:mm:ssZ |
Survey [3]
This webhook is sent whenever an end user responds to a survey.
Callback Type | 3 |
Can be Grouped | No |
Example Payload
{
"Answer": "true",
"RawAnswer": "yes",
"ChannelId": 22,
"ChannelCode": "+13132417183",
"ContactId": 120782994,
"ContactAccountId": 12300,
"ContactAccountName": "TD Technical Documentation",
"PhoneNumber": "+15551234567",
"QuestionCampaignId": 2600145,
"QuestionText": "Do you want to test Webhooks?\r\n(YES/NO)\n",
"SubscriptionId": 26143,
"DialogCampaignId": 2600144,
"QuestionLabel": "Question 1",
"SessionId": "cc4232e0-9e0f-4b5d-baaa-94e9734cb0ab",
"IsFirst": true,
"IsFinal": true,
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T18:10:26",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 3,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "bbb037d7-ce8c-4425-9c46-4394b44859f2",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
Answer | string | The matched answer. |
RawAnswer | string | The actual message received from an end user. |
ChannelId | int | ID of the channel over which the message has been received. |
ChannelCode | string | The channel over which the answer has been received. When the channel is a long code, the leading “+” is included. |
ContactId | int | ID of the contact that sent the message. |
ContactAccountId | int | ID of the account that owns the contact record. |
ContactAccountName | string | The name of the account that owns the contact record. |
PhoneNumber | string | The phone number of the end user that sent the message. |
QuestionCampaignId | int | ID of the question campaign. |
QuestionText | string | The text of the question. |
SubscriptionId | int | ID of a subscription associated with the campaign. |
DialogCampaignId | int | ID of the dialog campaign. |
QuestionLabel | string | The label of the question the end user responded to. |
SessionId | string | |
IsFirst | boolean | True if the response is to the first question of the survey. |
IsFinal | boolean | True if the response is to the final question of the survey. |
Stop [6]
This webhook is sent whenever the end user texts in “STOP” or a synonym.
Callback Type | 6 |
Can be Grouped | No |
Example Payload
{
"ChannelId": 22,
"ChannelCode": "+12098650894",
"ContactId": 120782994,
"ContactAccountId": 12300,
"ContactAccountName": "TD Technical Documentation",
"PhoneNumber": "+15551234567",
"SubscriptionId": 26143,
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T19:01:43",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 6,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "6a09a7f2-44ff-421e-8c19-cbd085709c9e",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
ChannelId | int | ID of the channel over which the message has been sent. |
ChannelCode | string | The channel over which the message has been received. When the channel is a long code, the leading “+” is included. |
ContactId | int | ID of the contact that has been opted out. |
ContactAccountId | int | ID of the account that owns the contact record. |
ContactAccountName | string | The name of the account that owns the contact record. |
PhoneNumber | string | The phone number of the end user who has opted out. |
SubscriptionId | int | ID of the subscription from which the contact has opted out. |
New Account [8]
This webhook is sent whenever a new child account is created.
Callback Type | 8 |
Can be Grouped | No |
Example Payload
{
"ParentId": 12300,
"Grouped": false,
"AccountId": 12301,
"AccountName": "Test Webhooks",
"CallbackTimestamp": "2025-06-18T18:13:04",
"CallbackToken": "00000000-0000-0000-0000-000000000000",
"CallbackType": 8,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "3731c6ba-6c91-4467-8b9d-9546543ecd98",
"Source": "PORTAL",
"SourceName": "Campaigns",
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
ParentId | int | ID of the parent account. |
Incoming Message [11]
This webhook is sent whenever a message is received.
Callback Type | 11 |
Can be Grouped | Yes |
Example Payload [Grouped = false]
{
"MessageId": "f2d98b2c-1e38-4396-862e-758d213ec976",
"Message": "This is a message from a contact.",
"ChannelId": 22,
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"ChannelCode": "+12098650894",
"ActionId": 233701502,
"Media": [],
"LogDate": "2025-06-18T19:01:43Z",
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T19:01:43",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 11,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "52338d9d-e9e5-44dd-a198-643b86145b02",
"Source": "COMMS",
"SourceName": "CommsHub",
"IntegrationSubsystem": 1
}
Example Payload [Grouped = true]
{
"Records": [
{
"MessageId": "28a65224-e0aa-4f16-8bef-0ce2139ba03d",
"Message": "Hi, this is a message from a contact.",
"ChannelId": 22,
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"ChannelCode": "+12098650894",
"ActionId": 233701502,
"Media": [],
"LogDate": "2025-06-18T21:04:55Z",
"Source": null,
"SourceName": null
},
{
"MessageId": "b635efc0-7016-453d-a595-69daa1769310",
"Message": "Here is another message.",
"ChannelId": 22,
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"ChannelCode": "+12098650894",
"ActionId": 233701502,
"Media": [],
"LogDate": "2025-06-18T21:05:01Z",
"Source": null,
"SourceName": null
}
],
"Grouped": true,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T21:05:41",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 11,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "43fd781b-00c2-4126-b04a-55420c2fe1c6",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
MessageId | string | The UUID of the message. |
Message | string | The message text. |
ChannelId | int | ID of the channel over which the message has been received. |
ContactId | int | Contact ID or null for unknown contacts. |
PhoneNumber | string | The phone number of the end user who sent the message. |
ChannelCode | string | The channel over which the message has been received. When the channel is a long code, the leading “+” is included. |
ActionId | int | ID of the action the webhook is associated with. |
Media | array of ints | An array of the Media IDs or null if none. |
LogDate | date | The date and time the message was received. Format: yyyy-MM-ddTHH:mm:ssZ |
Delivery Notice [12]
This webhook is sent whenever a delivery notice receipt is received.
See the Understanding Delivery Codes and Definitions article for more information about delivery codes.
Callback Type | 12 |
Can be Grouped | Yes |
Example Payload [Grouped = false]
{
"StatusId": 2,
"Status": null,
"ChannelId": 22,
"ChannelCode": "+13132417183",
"MessageId": "b5de5e5f-5b57-49f7-987f-8d70a2efa3de",
"PhoneNumber": "+15551234567",
"ContactId": 120782994,
"ActionId": 0,
"Message": "Hi, from TrueDialog.",
"CampaignId": 194072,
"Media": [],
"LogDate": "2025-06-19T19:54:09Z",
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-19T19:54:16",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 12,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "3c20c09a-4f09-4764-bdbc-b13c48872416",
"Source": "COMMS",
"SourceName": "CommsHub",
"IntegrationSubsystem": 1
}
Example Payload [Grouped = true]
{
"Records": [
{
"StatusId": 2,
"Status": null,
"ChannelId": 22,
"ChannelCode": "+13132417183",
"MessageId": "e8c83975-aaa1-4a37-89e7-3cfc649244f5",
"PhoneNumber": "+15551234567",
"ContactId": 120782994,
"ActionId": 233991888,
"Message": "Hi, this is a Campaign message.\nTxtSTOPtoEnd",
"CampaignId": 2605777,
"Media": [],
"LogDate": "2025-06-19T19:33:58Z",
"Source": "PORTAL",
"SourceName": "Campaigns"
}
],
"Grouped": true,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-19T19:34:27",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 12,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "bf6ff577-e1fd-44e6-91b4-970dc1088fe4",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
StatusId | int | The delivery status code of the message. See table below for values. |
Status | string | Explanation for the delivery status of the message. In many cases, there is no explanation, and this parameter will be null . |
ChannelId | int | ID of the channel over which the message has been sent. |
ChannelCode | string | The channel over which the message has been sent. When the channel is a long code, the leading “+” is included. |
MessageId | int | UUID of the message in the message log. |
PhoneNumber | string | The phone number of the end user to whom the message was sent. |
ContactId | int | Contact ID or null for unknown contacts. |
ActionId | int | Action ID or null if the message is not associated with any action. |
Message | string | The message text. |
CampaignId | int | ID of the campaign from which the message was sent. Messages sent from the Comms Hub will still have a campaign ID. |
Media | array of ints | An array of the Media IDs or null if none. |
LogDate | date | The date and time the message was sent. Format: yyyy-MM-ddTHH:mm:ssZ |
StatusId Values Table
Code | Description |
---|---|
2 | Delivered |
3 | Undelivered |
7 | Unknown |
Invalid Targets [13]
This webhook is sent whenever contacts are removed from a campaign push request. Each contact’s reason for removal is listed.
Callback Type | 13 |
Can be Grouped | No |
Example Payload
{
"ActionId": 233701502,
"RunId": 228717985,
"InvalidTargets": [
{
"Target": "+15551234567",
"Reason": "Undeliverable",
"ReasonId": 4
}
],
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T18:10:06",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 13,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "d7507de2-b04b-4e20-bbe2-ffda979ba29c",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
ActionId | int | ID of the action this webhook is associated with. |
RunId | int | ID of the action run that this webhook is associated with. |
InvalidTargets | array of objects | See the InvalidTargets Object section below for details on the object structure. |
InvalidTargets Object
{
"Target": "+15551234567",
"Reason": "Undeliverable",
"ReasonId": 4
}
Field | Type | Description |
---|---|---|
Target | string | The phone number of the contact that was removed from the push. |
Reason | string | Short description of the reason the contact was removed. |
ReasonId | int | The reason code. See the table below for values. |
ReasonId Values Table
Code | Description |
---|---|
0 | Invalid |
1 | Opted Out |
2 | Duplicate |
3 | Blocked |
4 | Undeliverable |
5 | Single Use |
Clicks [14]
This webhook is sent whenever an end user clicks on a tracked link.
Callback Type | 14 |
Can be Grouped | Yes |
Example Payload [Grouped = false]
{
"CampaignId": 2599828,
"ContactId": 0,
"PhoneNumber": null,
"ClickTimestamp": "2025-06-18T17:41:37.0505142Z",
"LinkId": 378675,
"RedirectUrl": "https://truedialog.com",
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T17:41:37",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 14,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "ed5f248a-7c27-47e2-b87e-ba2d0cd02bc8",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Example Payload [Grouped = true]
{
"Records": [
{
"CampaignId": 2599828,
"ContactId": 0,
"PhoneNumber": null,
"LinkId": 378675,
"RedirectUrl": "https://truedialog.com",
"ClickTimestamp": "2025-06-18T21:09:21.945858Z",
"Source": null,
"SourceName": null
},
{
"CampaignId": 2599828,
"ContactId": 0,
"PhoneNumber": null,
"LinkId": 378675,
"RedirectUrl": "https://truedialog.com",
"ClickTimestamp": "2025-06-18T21:09:25.9354307Z",
"Source": null,
"SourceName": null
}
],
"Grouped": true,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T21:09:46",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 14,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "5b6a912d-663b-4d4e-931a-5ed5e15b6d3f",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
CampaignId | int | ID of the campaign the link is associated with. |
ContactId | int | ID of the contact who clicked the link or 0 if the contact is unknown because a static link was used. |
PhoneNumber | string | The phone number of the end user who clicked the link or null if the phone number is unknown because a static link was used. |
ClickTimestamp | date | The date and time the link was clicked. Format: yyyy-MM-ddTHH:mm:ss |
LinkId | int | ID of the link that was clicked. |
RedirectUrl | string | The URL to which the end user was redirected. |
Long Code Provision [15]
This webhook is sent whenever a long code request is completed.
Callback Type | 15 |
Can be Grouped | No |
Example Payload
{
"RequestId": 25848,
"OrderBy": "AreaCode",
"Pattern": "714",
"Quantity": 1,
"Status": "Completed",
"StatusId": 32,
"PhoneNumbers": [
"+17144823818"
],
"Error": null,
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T18:59:12",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 15,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "baa63340-9677-4374-9158-2e6262c27c90",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
RequestId | int | ID of the TN order request. |
OrderBy | string | The OrderBy field value of the TN order request. |
Pattern | string | The Pattern field value of the TN order request. |
Quantity | int | The Quantity field value of the TN order request. |
Status | string | The text status of the TN order. |
StatusId | int | The ID of the status of the TN order. |
PhoneNumbers | array of strings | The list of phone numbers that have been added to the account by the request. |
Error | string | The error message if there is one or null if no error. |
Survey Completion [16]
This webhook is sent whenever an end user completes a survey campaign. It includes all answered questions and answer pairs for this end user.
Callback Type | 16 |
Can be Grouped | No |
Example Payload
{
"ChannelId": 22,
"ChannelCode": "+13132417183",
"ContactId": 120782994,
"PhoneNumber": "+15551234567",
"DialogCampaignId": 2600145,
"SurveyData": [
{
"QuestionId": 2600145,
"QuestionText": "Do you want to test Webhooks?",
"Answer": "true",
"Label": "Question 1"
},
{
"QuestionId": 2600146,
"QuestionText": "Did you enjoy this survey?",
"Answer": "false",
"Label": "Question 2"
}
],
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T18:10:26",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 16,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "ab199e08-437b-49df-99b9-6057e8736ac4",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
ChannelId | int | ID of the channel over which the survey has been completed. |
ChannelCode | string | The channel over which the survey has been completed. When the channel is a long code, the leading “+” is included. |
ContactId | int | ID of the contact who completed the survey. |
PhoneNumber | string | The phone number of the contact who completed the survey. |
DialogCampaignId | int | ID of the survey campaign. |
SurveyData | array of objects | See the SurveyData Object section below for details on the object structure. |
SurveyData Object
{
"QuestionId": 2600145,
"QuestionText": "Do you want to test Webhooks?",
"Answer": "true",
"Label": "Question 1"
}
Field | Type | Description |
---|---|---|
QuestionId | int | ID of the question. |
QuestionText | string | The question text that was sent to the contact. |
Answer | boolen | The normalized answer received from the contact. |
Label | string | The question label. |
Outgoing Message [17]
This webhook is sent whenever a message is sent out to one or more end users.
Callback Type | 17 |
Can be Grouped | Yes |
Example Payload [Grouped = false]
{
"MessageId": "9e7079af-5f95-433f-807c-12c5bc3a9166",
"ChannelId": 22,
"ChannelCode": "+13132417183",
"ContactId": 120782994,
"Target": "+15551234567",
"Message": "Message from the Comms Hub.",
"ActionId": 0,
"CampaignId": 194072,
"LogDate": "2025-06-18T21:10:03Z",
"Segments": 1,
"Media": [],
"Grouped": false,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T21:10:03",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 17,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "8c789d0b-30af-41cd-a45b-6e78fc51710d",
"Source": "COMMS",
"SourceName": "CommsHub",
"IntegrationSubsystem": 1
}
Example Payload [Grouped = true]
{
"Records": [
{
"MessageId": "b3a15451-7738-40fc-90f2-c70068dc5c93",
"ChannelId": 22,
"ChannelCode": "+13132417183",
"ContactId": 120782994,
"Target": "+15551234567",
"Message": "Test message for clicks: http://tdurl.co/3/BHRK",
"ActionId": 233675654,
"CampaignId": 2599828,
"LogDate": "2025-06-18T17:39:08Z",
"Segments": 1,
"Media": [],
"Source": "PORTAL",
"SourceName": "Campaigns"
}
],
"Grouped": true,
"AccountId": 12300,
"AccountName": "TD Technical Documentation",
"CallbackTimestamp": "2025-06-18T17:39:25",
"CallbackToken": "522238b1-f039-4b23-a7db-af37c7f5a505",
"CallbackType": 17,
"CallbackURL": "https://webhook.site/781dc2cb-000e-4e0b-bdfb-de01db6060f1",
"TransactionId": "9ab4ecfd-ee07-4669-999b-527aa9fe5c8a",
"Source": null,
"SourceName": null,
"IntegrationSubsystem": 1
}
Payload Parameters
Field | Type | Description |
---|---|---|
MessageId | string | The UUID of the message. |
ChannelId | int | ID of the channel over which the message has been sent. |
ChannelCode | string | The channel over which the message was sent. When the channel is a long code, the leading “+” is included. |
ContactId | int | Contact ID or null for unknown contacts. |
Target | string | The phone number of the end user to whom the message was sent. |
Message | string | The message text. |
ActionId | int | ID of the action the webhook is associated with. |
CampaignId | int | ID of the campaign from which the message was sent. Messages sent from the Comms Hub will still have a campaign ID. |
LogDate | date | The date and time the message was received. Format: yyyy-MM-ddTHH:mm:ssZ |
Segments | int | The number of segments required to send the message. Note: Text messages have a 160-character limit. If your message is longer than 160 characters, TrueDialog will break it down into 160-character segments and send each one separately. |
Media | array of ints | An array of the Media IDs or null if none. |