1. Home
  2. Configuration
  3. Integrations Hub
  4. Integrations Hub – Webhook Message Payloads
  1. Home
  2. TrueDialog Integrations
  3. Integrations Hub
  4. Integrations Hub – Webhook Message Payloads

Integrations Hub – Webhook Message Payloads

TrueDialog Logo

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.

In this article, the term “Callback” is equivalent to “Webhook.” The structure and names of the payload are derived from TrueDialog’s Callback system. For backward compatibility, the term “Callback” is still used for several JSON parameter names.

The following table lists each of the available webhook types:

Webhook TypeCallback TypeDescription
Keyword 1Sent whenever a text message with a keyword is received.
Subscription2Sent whenever a contact changes their subscription status.
Survey3Sent whenever an end user responds to a survey.
Stop6Sent whenever an end user texts STOP or any other opt-out keywords.
New Account8Sent whenever a new child account is created.
Incoming Message11Sent whenever an end user sends a message.
Delivery Notice12Sent for each delivery notice receipt.
Invalid Targets13Sent whenever contacts are removed from a campaign push request.
Clicks14Sent whenever an end user clicks on a link.
Long Code Provision15Sent whenever a long code request is completed.
Survey Completion16Sent whenever an end user completes a survey.
Outgoing Message17Sent 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.

See the Grouped Payloads section for more details on how a grouped payload operates.

FieldTypeDescription
AccountIdintID of the account the webhook is associated with.
AccountNamestringThe name of the account the webhook is associated with.
CallbackTimestampdateDate and time the webhook was sent. Format: yyyy-MM-ddTHH:mm:ss
CallbackTokenstringSpecial token, unique for each account. Note: Your Callback Token is listed on the Callbacks page of the Portal.
CallbackTypeintThe webhook type of this payload. See the table of webhook types above.
CallbackURLstringThe URL to which the webhook is sent.
TransactionIdintUnique token for this specific webhook payload.
SourcestringThe app tag value of the source of this webhook message. See table below for tags.
SourceNamestringThe app name of the source of this webhook message. See table below for tags.
IntegrationSubsystemintThe system used to generate this webhook message. See table below for values.

Source Tags Table

Source TagDescription
PORTALThe campaign messaging system. Mass messaging.
COMMSThe Communications Hub messaging system. One-to-one messaging.
nullAnything not related to the above apps.

SourceName Tags Table

SourceName TagDescription
CampaignsThe campaign messaging system. Mass messaging.
CommsHubThe Communications Hub messaging system. One-to-one messaging.
nullAnything not related to the above apps.

IntegrationsSubsystem Values Table

ValueConnection TypeDescription
0ClassicThis includes Classic connection types and callbacks.
1TrueConnectThis includes the new TrueConnect system.
Grouped Payloads

Both TrueConnect and Classic Connection Types support grouping webhook messages.

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 NameCallbackType Value
Subscription2
Incoming Message11
Delivery Notice12
Clicks14
Outgoing Message17

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 GroupedNo

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

FieldTypeDescription
CampaignIdintID of the campaign associated with the keyword (0 if none).
ChannelIdintID of the channel over which the keyword has been received.
ChannelCodestringThe channel over which the keyword has been received. When the channel is a long code, the leading “+” is included.
ContactIdintID of the contact that submitted the keyword.
KeywordstringThe keyword that was received.
KeywordIdintID of the keyword that was received.
PhoneNumberstringThe phone number of the end user who sent the keyword.
SubscriptionIdintID of the subscription for the contact that sent the keyword.
MessagestringThe 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 GroupedYes

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

FieldTypeDescription
ContactIdintID of the contact that changed its subscription status.
PhoneNumberstringThe phone number of the contact that changed its subscription status.
SubscriptionIdintThe ID of the subscription for which the contact has changed its status.
LogDatedateThe 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 GroupedNo

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

FieldTypeDescription
AnswerstringThe matched answer.
RawAnswerstringThe actual message received from an end user.
ChannelIdintID of the channel over which the message has been received.
ChannelCodestringThe channel over which the answer has been received. When the channel is a long code, the leading “+” is included.
ContactIdintID of the contact that sent the message.
ContactAccountIdintID of the account that owns the contact record.
ContactAccountNamestringThe name of the account that owns the contact record.
PhoneNumberstringThe phone number of the end user that sent the message.
QuestionCampaignIdintID of the question campaign.
QuestionTextstringThe text of the question.
SubscriptionIdintID of a subscription associated with the campaign.
DialogCampaignIdintID of the dialog campaign.
QuestionLabelstringThe label of the question the end user responded to.
SessionIdstring
IsFirstbooleanTrue if the response is to the first question of the survey.
IsFinalbooleanTrue 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 GroupedNo

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

FieldTypeDescription
ChannelIdintID of the channel over which the message has been sent.
ChannelCodestringThe channel over which the message has been received. When the channel is a long code, the leading “+” is included.
ContactIdintID of the contact that has been opted out.
ContactAccountIdintID of the account that owns the contact record.
ContactAccountNamestringThe name of the account that owns the contact record.
PhoneNumberstringThe phone number of the end user who has opted out.
SubscriptionIdintID 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 GroupedNo

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

FieldTypeDescription
ParentIdintID of the parent account.

In this webhook, the AccountId and AccountName refer to the newly created account instead of the account that sent the webhook.

Incoming Message [11]

This webhook is sent whenever a message is received.

Callback Type 11
Can be GroupedYes

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

FieldTypeDescription
MessageIdstringThe UUID of the message.
MessagestringThe message text.
ChannelIdintID of the channel over which the message has been received.
ContactIdintContact ID or null for unknown contacts.
PhoneNumberstringThe phone number of the end user who sent the message.
ChannelCodestringThe channel over which the message has been received. When the channel is a long code, the leading “+” is included.
ActionIdintID of the action the webhook is associated with.
Mediaarray of intsAn array of the Media IDs or null if none.
LogDatedateThe 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 GroupedYes

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

FieldTypeDescription
StatusIdintThe delivery status code of the message. See table below for values.
StatusstringExplanation for the delivery status of the message. In many cases, there is no explanation, and this parameter will be null.
ChannelIdintID of the channel over which the message has been sent.
ChannelCodestringThe channel over which the message has been sent. When the channel is a long code, the leading “+” is included.
MessageIdintUUID of the message in the message log.
PhoneNumberstringThe phone number of the end user to whom the message was sent.
ContactIdintContact ID or null for unknown contacts.
ActionIdintAction ID or null if the message is not associated with any action.
MessagestringThe message text.
CampaignIdintID of the campaign from which the message was sent. Messages sent from the Comms Hub will still have a campaign ID.
Mediaarray of intsAn array of the Media IDs or null if none.
LogDatedateThe date and time the message was sent. Format: yyyy-MM-ddTHH:mm:ssZ

StatusId Values Table

CodeDescription
2Delivered
3Undelivered
7Unknown
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 GroupedNo

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

FieldTypeDescription
ActionIdintID of the action this webhook is associated with.
RunIdintID of the action run that this webhook is associated with.
InvalidTargetsarray of objectsSee the InvalidTargets Object section below for details on the object structure.

InvalidTargets Object

{
    "Target": "+15551234567",
    "Reason": "Undeliverable",
    "ReasonId": 4
}
FieldTypeDescription
TargetstringThe phone number of the contact that was removed from the push.
ReasonstringShort description of the reason the contact was removed.
ReasonIdintThe reason code. See the table below for values.

ReasonId Values Table

CodeDescription
0Invalid
1Opted Out
2Duplicate
3Blocked
4Undeliverable
5Single Use
Clicks [14]

This webhook is sent whenever an end user clicks on a tracked link.

Dynamic links can determine the contact who clicked the link; however, Static links cannot. For Static links, the ContactId and PhoneNumber will be 0 and null, respectively. See the Creating a Campaign – Link Tracking article for more information about Dynamic and Static links.

Callback Type 14
Can be GroupedYes

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

FieldTypeDescription
CampaignIdintID of the campaign the link is associated with.
ContactIdintID of the contact who clicked the link or 0 if the contact is unknown because a static link was used.
PhoneNumberstringThe phone number of the end user who clicked the link or null if the phone number is unknown because a static link was used.
ClickTimestampdateThe date and time the link was clicked. Format: yyyy-MM-ddTHH:mm:ss
LinkIdintID of the link that was clicked.
RedirectUrlstringThe 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 GroupedNo

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

FieldTypeDescription
RequestIdintID of the TN order request.
OrderBystringThe OrderBy field value of the TN order request.
PatternstringThe Pattern field value of the TN order request.
QuantityintThe Quantity field value of the TN order request.
StatusstringThe text status of the TN order.
StatusIdintThe ID of the status of the TN order.
PhoneNumbersarray of stringsThe list of phone numbers that have been added to the account by the request.
ErrorstringThe 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 GroupedNo

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

FieldTypeDescription
ChannelIdintID of the channel over which the survey has been completed.
ChannelCodestringThe channel over which the survey has been completed. When the channel is a long code, the leading “+” is included.
ContactIdintID of the contact who completed the survey.
PhoneNumberstringThe phone number of the contact who completed the survey.
DialogCampaignIdintID of the survey campaign.
SurveyDataarray of objectsSee 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"
}
FieldTypeDescription
QuestionIdintID of the question.
QuestionTextstringThe question text that was sent to the contact.
AnswerboolenThe normalized answer received from the contact.
LabelstringThe 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 GroupedYes

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

FieldTypeDescription
MessageIdstringThe UUID of the message.
ChannelIdintID of the channel over which the message has been sent.
ChannelCodestringThe channel over which the message was sent. When the channel is a long code, the leading “+” is included.
ContactIdintContact ID or null for unknown contacts.
TargetstringThe phone number of the end user to whom the message was sent.
MessagestringThe message text.
ActionIdintID of the action the webhook is associated with.
CampaignIdintID of the campaign from which the message was sent. Messages sent from the Comms Hub will still have a campaign ID.
LogDatedateThe date and time the message was received. Format: yyyy-MM-ddTHH:mm:ssZ
SegmentsintThe 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.
Mediaarray of intsAn array of the Media IDs or null if none.

Updated on August 3, 2025
Was this article helpful?
Need Support?
Can’t find the answer you’re looking for? Don’t worry we’re here to help!
CONTACT SUPPORT

Leave a Comment