A system webhook sends data from Iterable to a third-party system whenever a specified event occurs (for example, an email send, an email open, etc.).
Each system webhook is specific to an Iterable project, but not to a particular template, campaign, or journey. The webhook sends whenever a specified system event occurs anywhere in the project.
NOTE
To call a webhook as part of a specific journey, use a journey webhook.
In this article
- Creating a system webhook
- Editing a system webhook
- System webhook settings
- Error handling
- System webhook request headers
- System webhook request body
-
Example system webhook request bodies
- Blast Send
- Email Bounce
- Email Click
- Email Complaint
- Email Open
- Email Send Skip
- Email Subscribe
- Email Unsubscribe
- Hosted Unsubscribe Click
- In-App Click
- In-App Delete (consume)
- In-App Recall
- In-App Open
- In-App Send
- In-App Send Skip
- Push Bounce
- Push Open
- Push Send
- Push Send Skip
- Push Uninstall
- SMS Bounce
- SMS Click
- SMS Received
- SMS Send
- SMS Send Skip
- Triggered Send
- Web Push Send
- Web Push Send Skip
- Want to learn more?
Creating a system webhook
Before creating a system webhook in Iterable, you need:
- A webhook endpoint that can receive
POST
requests. The URL must begin withhttps://
. - Permission to configure the webhook's settings in Iterable. The logged in member may be an org admin, or may have the Manage Integrations project permission.
To create a new system webhook:
Go to Integrations > System Webhooks.
Click Create Webhook to bring up the system webhook creation form:
Enter the Webhook URL. The URL must begin with
https://
.Click Create. Iterable takes you to the Edit System Webhook screen.
Configure the system webhook settings as needed.
Set the Status to Enabled to activate your new webhook.
Click Save Webhook.
Editing a system webhook
When you change an existing system webhook, the changes take some time to propagate due to caching. For example, if you change the URL, Iterable may continue to send data to the old webhook URL for a short time after you update it.
To edit a system webhook:
Go to Integrations > System Webhooks.
Click the Edit button for the system webhook you want to change.
Update system webhook settings as needed.
Click Save Webhook.
System webhook settings
When creating or editing a system webhook, you can configure the following settings:
- Endpoint URL (required)
- Status (Enabled or Disabled)
- Authentication (None, Basic, or OAuth2)
- Exclude list update events (if enabled)
- Custom HTTP headers (optional)
- Triggering events (one or more)
Endpoint URL
The endpoint URL is a URL that you provide as a location for Iterable send
data. Typically this is a third-party service, but can be any URL that can
receive a POST
request.
You can edit this URL later, and you can add merge parameters to customize it.
The URL must be able to accept a POST
request, and must begin with https://
.
Status
By default, new system webhooks are set to Disabled.
To activate the system webhook, set Status to Enabled.
You can also disable the system webhook later by setting Status to Disabled.
Authentication
Iterable supports three types of HTTP authentication for system webhooks:
None, Basic, and OAuth 2.0.
To learn more about the different types of HTTP authentication, see the Beeceptor documentation about authorization headers.
None
Select this when no authentication is required or if you are using a different
method to authenticate the webhook request like an API key. The webhook request
will not include an Authorization
header.
This is the default setting, however, it's best practice to use some form of authentication to secure your webhook.
Basic
Use a username and password to authorize. This is a simple authentication method that sends an encoded username and password in the request header.
To use Basic auth in your system webhook headers:
-
Get your username and password and base64-encode them. To do this:
- Combine your username and password with a colon (
:
) between them. - Base64-encode the string.
For example, for a username and password of
Aladdin:OpenSesame
, the base-64 encoded version isQWxhZGRpbjpPcGVuU2VzYW1l
.IMPORTANT
Iterable does not encode the username and password for you. You must encode them before entering them in the webhook settings.
- Combine your username and password with a colon (
Select Basic for Authentication.
-
In the Authentication Token field, enter
Basic
followed by a space and then the base64-encoded username and password.Example:
Basic QWxhZGRpbjpPcGVuU2VzYW1l
Click Save Webhook.
Then, when the system webhook is triggered, Iterable sends the following
Authorization
header:
"authorization": "Basic QWxhZGRpbjpPcGVuU2VzYW1l",
OAuth 2.0 (bearer token)
For system web hooks, Iterable supports OAuth 2.0 authentication using a bearer token. Bearer tokens are a type of access token that are used to authenticate requests to a server. They are typically used in OAuth 2.0 authentication.
IMPORTANT
Bearer tokens for system webhooks may expire.
When creating a webhook with OAuth 2.0 authentication, you must provide a valid bearer token. Bearer tokens may have an expiration, after which they are no longer valid and must be replaced.
When you set up a bearer token in a system webhook, you can either:
-
Periodically replace the expired token.
Keep track of when your webhook expires, and periodically edit your webhook in Iterable to replace the token when you generate the new one. There is a risk of missing data if the token expires before you replace it, as requests will fail for expired credentials.
-
Create a token that does not expire.
Some OAuth 2.0 systems allow you to create non-expiring tokens. This is useful for system webhooks that need to run indefinitely.
Check with your company's security policies to determine the best approach for your project.
(For journey webhooks, Iterable supports OAuth 2.0 client credentials, and access tokens are programmatically generated.)
To add a bearer token to your system webhook headers:
Select OAuth2 for Authentication.
-
In the Authentication Token field, enter the Bearer token.
Example:
<YOUR-TOKEN>
Click Save Webhook.
Then, when the webhook is triggered, Iterable sends the following
Authorization
header:
"authorization": "Bearer <YOUR-TOKEN>",
Excluding list update events
NOTE
System webhook filtering is available by request.
To enable webhook filters for your project and discuss the available options, contact your Iterable customer success manager.
When enabled for your account, you can use Exclude List Update Events to remove list update events from Subscribe and Unsubscribe event webhooks.
This is useful when you want to exclude list update events which stem from system behavior like adding or removing users from a list. This is useful when you need to receive webhooks for events that came from users subscribing and unsubscribing, but not from users being added to or removed from list in Iterable.
Custom HTTP headers
You can add additional custom headers to the webhook request. This is useful for sending more information with the webhook endpoint. For example, this is where you can include an API key.
Click on Add HTTP Header to add custom headers to the webhook request.
For each header, enter a Name and a Value.
Example custom header for an API key
There are multiple ways to include API keys in a webhook request. Always check with the service you are sending the webhook to for the correct way to include an API key in the request headers.
Example: For a system that accepts Api-Key
as the header name, you can add a
custom header like this:
- Enter
Api-Key
in the Name field. - Enter
<YOUR_API_KEY>
(the actual value of your API key) in the Value field.
IMPORTANT
As a best practice for security reasons, do not include API keys in the URL of your wehook. Instead, include them in the headers. Iterable does not accept API keys in the URL of a webhook request.
Triggering events
Select one or more events that trigger the webhook:
The following events can trigger a system webhook:
Email webooks
- Blast send
- Triggered send
- Click
- Open
- Subscribe - Universal event for all channels (Email, In-app, Push, SMS, Web Push). Optional filter available - learn more.
- Unsubscribe - Universal event for all channels (Email, In-app, Push, SMS, Web Push). Optional filter available - learn more.
- Hosted unsubscribe
- Bounce
- Complaint
- Send skip
SMS webhooks
- Send
- Click
- Received
- Bounce
- Send skip
For subscribe and unsubscribe events, use Email Subscribe and Email Unsubscribe webhooks. These events are universal to all channels (Email, In-app, Push, SMS, Web Push).
Push webhooks
- Send
- Click
- Received
- Bounce
- Uninstall
- Send skip
For subscribe and unsubscribe events, use Email Subscribe and Email Unsubscribe webhooks. These events are universal to all channels (Email, In-app, Push, SMS, Web Push).
In-App webhooks
- Click
- Close
- Delete
- Delivery
- Open
- Recall
- Send
- Send skip
For subscribe and unsubscribe events, use Email Subscribe and Email Unsubscribe webhooks. These events are universal to all channels (Email, In-app, Push, SMS, Web Push).
Web push webhooks
- Send
- Click
- Send skip
For subscribe and unsubscribe events, use Email Subscribe and Email Unsubscribe webhooks. These events are universal to all channels (Email, In-app, Push, SMS, Web Push).
Customizing system webhooks with merge parameters
Merge parameters are placeholders that are replaced with actual values when the webhook is triggered.
You can add merge parameters to the webhook's URL to customize the data sent to
the webhook endpoint, as well as in the webhook's custom headers. Make sure to
use curly braces ({{
and }}
) around the merge parameters.
The following merge parameters can be used in the webhook's URL:
campaignId
campaignName
templateId
templateName
channelId
workflowId
workflowName
experimentId
messageTypeId
For example, you can enter merge parameters in the webhook URL like this:
https://mywebhook.example.com/XXXXXX?src=iterable&cname={{campaignName}}&cid={{campaignId}}
If any of these parameters are not defined when the webhook is called, they will render as blank.
Error handling
TIP
After creating a system webhook in Iterable, test it to make sure it works as expected. Do this before sending any campaigns that rely on it.
Iterable does not guarantee the successful delivery of system webhooks.
If a system webhook request fails, Iterable makes several retry attempts in the following minutes. If the retries are also unsuccessful, the event is dropped.
Iterable may duplicate successful system webhook requests. For example, this can sometimes happen when a request is retried after a timeout.
Iterable disables system webhooks for which there is a sustained, elevated error rate. After you resolve the issue, re-enable the system webhook on the Integrations > System Webhooks page.
If your system webhook endpoint uses a certificate signed by a certificate authority not trusted by Iterable, Iterable's system webhook calls to that endpoint will fail.
System webhook request headers
A webhook sends a POST
request with the following headers:
Content-Type: application/json
-
Authorization: <authType> <authToken>
(when configured)For example:
-
Selecting Basic for Authentication and providing an Authentication Token of
XXXXXXXXXXXXXXXXXXXXXXXXXXX
yields the following authorization header:Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXX
-
Selecting OAuth2 for Authentication and providing an Authentication Token of
XXXXXXXXXXXXXXXXXXXXXXXXXXX
would yield the following authorization header:Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXX
By selecting Authentication of None, the webhook request doesn't
include anAuthorization
header.
-
Example system webhook request headers
{ "user-agent": "AHC/2.1", "content-length": "951", "accept": "*/*", "authorization": "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "content-type": "application/json", "x-forwarded-for": "192.0.2.23", "x-forwarded-host": "https://my-webhook.example.com", "x-forwarded-proto": "https", "accept-encoding": "gzip" }
System webhook request body
The body of a webhook request is provided in JSON. It often contain the following fields:
-
email
oruserId
- The unique identifier for the user associated with the event -
eventName
- The name of the event for which a webhook has been triggered -
dataFields
- An object that contains fields related to the webhook's triggering event. The fields indataFields
vary depending on the event, your webhook settings, and your project's configuration.
Example system webhook request bodies
The following examples reflect JSON payloads that Iterable sends to a webhook endpoint for various system events. Note that these examples are not exhaustive and are intended to provide a general idea of the data that Iterable sends in a webhook payload.
IMPORTANT
These webhook payloads are examples.
The payload for a webhook always varies depending on the event that triggered it and the settings you have configured for the webhook and your project.
These schemas are intended as examples and do not represent the full range of data that Iterable can send in a webhook payload.
For a complete list of fields that Iterable sends in a given webhook payload, you should test your webhook with real data.
Blast Send
{ "email": "user@example.com", "eventName": "emailSend", "dataFields": { "contentId": 331201, "email": "user@example.com", "createdAt": "2016-12-02 20:21:04 +00:00", "campaignId": 59667, "templateId": 93849, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailSubject": "My subject", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 3420, "messageTypeId": 3866, "experimentId": null, "emailId": "c123456:t456789:user@example.com" }
Email Bounce
{ "email": "user@example.com", "eventName": "emailBounce", "dataFields": { "emailSubject": "My subject", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 2598, "messageTypeId": 2870, "experimentId": null, "recipientState": "HardBounce", "templateId": 167484, "email": "user@example.com", "createdAt": "2017-05-15 23:59:47 +00:00", "campaignId": 114746, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailId": "c123456:t456789:user@example.com" } }
Email Click
{ "email": "user@example.com", "eventName": "emailClick", "dataFields": { "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", "ip": "192.0.2.23", "templateId": 93849, "userAgentDevice": "Mac", "url": "https://www.iterable.com", "canonicalUrlId": "3145668988", "city": "San Francisco", "region": "CA", "email": "user@example.com", "createdAt": "2016-12-02 20:31:39 +00:00", "campaignId": 59667, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailSubject": "My subject", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 3420, "messageTypeId": 3866, "experimentId": null, "linkUrl": "https://www.iterable.com", "emailId": "c123456:t456789:user@example.com" } }
Email Complaint
{ "email": "user@example.com", "eventName": "emailComplaint", "dataFields": { "recipientState": "Complaint", "templateId": 79190, "email": "user@example.com", "createdAt": "2016-12-09 18:52:19 +00:00", "campaignId": 49313, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailSubject": "My subject", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "test template", "channelId": 3420, "messageTypeId": 3866, "experimentId": null, "emailId": "c123456:t456789:user@example.com" } }
Email Open
{ "email": "user@example.com", "eventName": "emailOpen", "dataFields": { "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "proxySource": "Gmail" "ip": "192.0.2.23", "templateId": 79190, "device": "Gmail", "email": "user@example.com", "createdAt": "2016-12-02 18:51:45 +00:00", "campaignId": 49313, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailSubject": "My subject", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 3420, "messageTypeId": 3866, "experimentId": null, "emailId": "c123456:t456789:user@example.com" } }
Email Send Skip
{ "email": "user@example.com", "eventName": "emailSendSkip", "dataFields": { "createdAt": "2019-08-07 18:56:10 +00:00", "reason": "FrequencyCapping", "campaignId": 721398, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "email": "user@example.com" } }
Email Subscribe
These events are universal to all channels (Email, In-app, Push, SMS, Web Push).
{ "email": "user@example.com", "eventName": "emailSubscribe", "dataFields": { "createdAt": "2020-03-20 23:12:00 +00:00", "signupSource": "UpdateSubscriptionsAPI", "emailListIds": [ 27449 ], "messageTypeIds": [], "channelIds": [], "email": "user@example.com", "profileUpdatedAt": "2020-03-20 23:11:58 +00:00" } }
Email Unsubscribe
These events are universal to all channels (Email, In-app, Push, SMS, Web Push).
{ "email": "user@example.com", "eventName": "emailUnSubscribe", "dataFields": { "campaignId": 1089024, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailId": "c123456:t456789:user@example.com", "workflowName": "My test journey", "messageTypeIds": [], "locale": null, "templateId": 1526112, "emailSubject": "Upcoming events!", "labels": [], "unsubSource": "EmailLink", "createdAt": "2020-03-20 23:34:15 +00:00", "templateName": "My test template", "emailListIds": [], "messageTypeId": 31082, "experimentId": null, "channelIds": [ 27447 ], "campaignName": "My test campaign", "workflowId": 76786, "email": "user@example.com", "channelId": 27447 } }
Hosted Unsubscribe Click
{ "email": "user@example.com", "userId": "1", "eventName": "hostedUnsubscribeClick", "dataFields": { "country": "United States", "city": "San Jose", "campaignId": 1074721, "ip": "192.0.2.23", "userAgentDevice": "Mac", "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailId": "c123456:t456789:user@example.com", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36", "workflowName": "My journey", "locale": null, "templateId": 1506266, "emailSubject": "My email subject", "url": "https://iterable.com", "labels": [], "createdAt": "2020-03-21 00:24:08 +00:00", "templateName": "My email template", "messageTypeId": 13406, "experimentId": null, "region": "CA", "campaignName": "My email campaign", "workflowId": 60102, "email": "user@example.com", "channelId": 12466 } }
In-App Click
{ "email": "user@example.com", "eventName": "inAppClick", "dataFields": { "email": "user@example.com", "createdAt": "2018-03-27 00:44:40 +00:00", "campaignId": 269450 } }
In-App Delete (consume)
{ "email": "user@example.com", "eventName": "inAppDelete", "dataFields": { "campaignId": 269450, "campaignName": "Example Campaign", "workflowId": null, "workflowName": null, "templateName": "Exapmle Template", "locale": null, "channelId": 1234, "messageTypeId": 5678, "experimentId": null, "labels": [], "inAppBody": "...", "messageContext": null, "deleteAction": "click-delete", "expiresAt": "2024-02-15 10:30:00 +00:00", "deviceInfo": null, "inboxSessionId": null, "email": "user@example.com", "createdAt": "2023-10-01 14:15:16 +00:00", "templateId": 12345678, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailId": "c123456:t456789:user@example.com" } }
In-App Recall
{ "email": "user@example.com", "eventName": "inAppRecall", "dataFields": { "total": 1, "email": "user@example.com", "createdAt": "2023-11-15 17:15:15 +00:00", "campaignId": 269450 } }
total
is the total number of messages recalled for the user, for the campaign
identified by campaignId
.
In-App Open
{ "email": "user@example.com", "eventName": "inAppOpen", "dataFields": { "email": "user@example.com", "createdAt": "2018-03-27 00:44:30 +00:00", "campaignId": 269450 } }
In-App Send
{ "email": "user@example.com", "eventName": "inAppSend", "dataFields": { "messageContext": { "saveToInbox": false, "trigger": "immediate" }, "campaignId": 732678, "contentId": 18997, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "workflowName": null, "emailId": "c123456:t456789:user@example.com", "locale": null, "templateId": 1032729, "inAppBody": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML", "expiresAt": "2019-08-08 22:37:40 +00:00", "labels": [], "createdAt": "2019-08-07 22:37:40 +00:00", "templateName": "My template name", "messageTypeId": 14381, "experimentId": null, "campaignName": "My campaign name", "workflowId": null, "channelId": 13353, "email": "user@example.com" } }
In-App Send Skip
{ "email": "user@example.com", "eventName": "inAppSendSkip", "dataFields": { "createdAt": "2019-08-07 22:42:18 +00:00", "reason": "FrequencyCapping", "campaignId": 732678, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "email": "user@example.com" } }
Push Bounce
{ "email": "user@example.com", "eventName": "pushBounce", "dataFields": { "platformEndpoint": "<Platform endpoint>", "email": "user@example.com", "createdAt": "2016-12-10 01:00:38 +00:00", "campaignId": 74768, "templateId": 113554, "pushMessage": "Push message text", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 2203, "messageTypeId": 2439, "experimentId": null, "payload": { "path": "yourpath/subpath" }, "sound": "", "badge": null, "contentAvailable": false, "deeplink": null, "locale": null } }
Push Open
{ "email": "user@example.com", "eventName": "pushOpen", "dataFields": { "appAlreadyRunning": false, "email": "user@example.com", "createdAt": "2016-12-08 01:25:22 +00:00", "campaignId": 74768, "templateId": 113554, "pushMessage": "Push message text", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 2203, "messageTypeId": 2439, "experimentId": null, "payload": { "path": "shop_home" }, "sound": null, "badge": null, "contentAvailable": false, "deeplink": null, "locale": null } }
Push Send
{ "email": "user@example.com", "eventName": "pushSend", "dataFields": { "campaignId": 74758, "campaignName": "Campaign name", "workflowId": null, "workflowName": null, "templateName": "Template name", "channelId": 1744, "messageTypeId": 1759, "experimentId": null, "pushMessage": "Message body", "payload": { "field": "value" }, "sound": null, "badge": "3", "contentAvailable": false, "deeplink": null, "attachmentUrlAndroid": "https://example.com/images/android_image.png", "attachmentUrlIos": "https://example.com/images/ios_image.png", "platformEndpoint": "...", "email": "user@example.com", "createdAt": "2016-12-08 00:53:11 +00:00", "templateId": 113541, "contentId": 6724, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", } }
Push Send Skip
{ "email": "user@example.com", "eventName": "pushSendSkip", "dataFields": { "createdAt": "2019-08-07 22:28:51 +00:00", "reason": "FrequencyCapping", "campaignId": 732667, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "email": "user@example.com" } }
Push Uninstall
{ "email": "user@example.com", "eventName": "pushUninstall", "dataFields": { "isGhostPush": false, "platformEndpoint": "<Platform endpoint>", "email": "user@example.com", "createdAt": "2016-12-09 20:50:54 +00:00", "campaignId": 74768, "templateId": 113554, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "pushMessage": "Push message text", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 2203, "messageTypeId": 2439, "experimentId": null, "payload": { "path": "your_folder/30" }, "sound": "", "badge": null, "contentAvailable": false, "deeplink": null, "locale": null } }
SMS Bounce
{ "email": "user@example.com", "eventName": "smsBounce", "dataFields": { "campaignId": 3333333, "campaignName": "Campaign name", "workflowId": null, "workflowName": null, "templateName": "Template name", "locale": null, "channelId": 11111, "messageTypeId": 22222, "experimentId": null, "labels": [], "smsMessage": "Test SMS", "fromPhoneNumberId": 2072, "imageUrl": null, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "messageStatus": "undelivered", "toPhoneNumber": "+14155550132", "errorCode": "30003", "email": "user@example.com", "createdAt": "2022-05-18 16:11:20 +00:00", "templateId": 5555555, "emailId": "c123456:t456789:user@example.com" } }
SMS Click
{ "email": "user@example.com", "eventName": "smsClick", "dataFields": { "campaignId": 1234567, "campaignName": "My test campaign", "workflowId": null, "workflowName": null, "templateName": "My template", "locale": null, "channelId": 98765, "messageTypeId": 43210, "experimentId": null, "labels": [], "smsMessage": "Test SMS! https://www.example.com", "fromPhoneNumberId": 1234, "imageUrl": null, "clickedUrl": "https://www.example.com", "email": "user@example.com", "createdAt": "2022-03-10 05:00:14 +00:00", "templateId": 1112222, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailId": "c123456:t9876543:user@example.com" } }
SMS Received
{ "email": "user@example.com", "eventName": "smsReceived", "dataFields": { "fromPhoneNumber": "+14155550132", "toPhoneNumber": "+14155550132", "smsMessage": "Message text", "email": "user@example.com", "createdAt": "2016-12-05 22:51:25 +00:00" } }
SMS Send
{ "email": "user@example.com", "eventName": "smsSend", "dataFields": { "campaignId": 4413580, "campaignName": "Campaign name", "workflowId": null, "workflowName": null, "templateName": "Template name", "locale": null, "channelId": 99999, "messageTypeId": 99999, "experimentId": null, "labels": [], "smsMessage": "SMS message body", "fromPhoneNumberId": 1111, "imageUrl": null, "toPhoneNumber": "+14155550132", "fromSMSSenderId": 1111, "mmsSendCount": 0, "smsSendCount": 1, "isSMSEstimation": false, "catalogLookupCount": 0, "catalogCollectionCount": 0, "productRecommendationCount": 0, "transactionalData": "{}", "email": "user@example.com", "createdAt": "2022-05-17 23:07:53 +00:00", "templateId": 555555, "contentId": 444444, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailId": "c123456:t9876543:user@example.com" } }
SMS Send Skip
{ "email": "user@example.com", "eventName": "smsSendSkip", "dataFields": { "createdAt": "2019-08-07 18:49:48 +00:00", "reason": "FrequencyCapping", "campaignId": 729390, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "email": "user@example.com" } }
Triggered Send
{ "email": "user@example.com", "eventName": "emailSend", "dataFields": { "contentId": 274222, "email": "user@example.com", "createdAt": "2016-12-02 18:51:40 +00:00", "campaignId": 49313, "transactionalData": { "__comment": "transactionalData lists the fields contained in the dataFields property of the API call or event used to trigger the email, campaign, or journey. transactionalData must contain no more than 12k characters in total." }, "templateId": 79190, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "emailSubject": "My subject", "campaignName": "My campaign name", "workflowId": null, "workflowName": null, "templateName": "My template name", "channelId": 3420, "messageTypeId": 3866, "experimentId": null, "emailId": "c123456:t9876543:user@example.com" } }
Web Push Send
{ "email": "user@example.com", "eventName": "webPushSend", "dataFields": { "campaignId": 723636, "browserToken": "...", "contentId": 3681, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "workflowName": "My journey name", "emailId": "c123456:t9876543:user@example.com", "locale": null, "webPushIcon": null, "templateId": 1020396, "labels": [], "createdAt": "2019-08-07 23:43:02 +00:00", "templateName": "My template name", "webPushMessage": "", "messageTypeId": 9106, "webPushBody": null, "experimentId": null, "webPushClickAction": null, "campaignName": "My campaign name", "workflowId": 53505, "channelId": 8539, "email": "user@example.com" } }
Web Push Send Skip
{ "email": "user@example.com", "eventName": "webPushSendSkip", "dataFields": { "createdAt": "2019-08-07 23:43:48 +00:00", "reason": "FrequencyCapping", "campaignId": 723636, "messageId": "9c438a20d26e4e9f8ad4edea23f811cd", "email": "user@example.com" } }
Want to learn more?
For more information about some of the topics in this article, check out this Iterable Academy course. Iterable Academy is open to everyone — you don't need to be an Iterable customer!