First steps
User Data
- Responsive Email Editor Review
- Designing your email
- Creating Synchronized Modules
- Setting Up Responsive Email Design
- Setting Up Smart Containers
- Creating a Gmail Promotions Annotation
- Adding The Rollover Effect
- Adding Anchor Links
- Module Library
- Adding a Table to an Email
- Adding Custom Fonts
- Creating CTA Button
- Working with Images
- Creating Timer
- Using AI in the Email Editor
- Messenger Protocol Support in Email Clients and Platforms
Omnichannel
- Setting Up Widgets for Your Site
- Widgets Gamification
- Widget Calling
- Setting Up Locations for the Widget Calling Rules
- Storing data from widgets to contact fields
- Using Annoyance Safeguard
- Actions After Subscription
- Replacing Double Opt-In System Workflow
- Creating Pop-ups via Google Tag Manager or WordPress
- Sending Yespo Widget Events to Google Analytics
- Using A/B Tests for Widgets
- Collecting Contact Information Using Request Forms
Automation
- Building and Editing Workflows
- Configuring Workflow Start/Stop Conditions
- Start Block
- Popular Blocks
- Message Blocks
- Using One from Many Message Block
- Contact Blocks
- Conditions Blocks
- Other Blocks
- Message to Segment Blocks
- Time Blocks
- Advanced Workflow Block Parameters
- Setting Up Allowed Send Time
- Using Workflow Launch History
- Webhook Workflows
- Workflow Troubleshooting
- Double Opt-In
- Welcome Сampaign
- Welcome Series Segmented by Category
- Launching a Workflow After a Contact Import
- Regular Workflow for a Segment
- Birthday Campaign
- Linking Workflow to the Button
- Using Variables from Order in Workflow
- Collecting Order Feedback
- Customer Reactivation
- Sending Extra Campaigns
- Sending Reminders at the Time Specified by the User
- Sending Campaign to Those Who Did Not Open the Previous One
- Using A/B Tests In Workflows
Personalization
Analytics
- Email Campaign Report
- Web Push Campaign Report
- Viber Campaign Report
- Mobile Push Campaign Report
- App Inbox Campaign Report
- Telegram Campaign Report
- In-App Report
- Widget Report
- Triggered Campaign Report
- AMP Campaign Report
- SMS Campaign Report
- Multilingual Campaign Report
- Setting up UTM Tags
- Revenue from Campaigns
- Tracking Campaign Performance in Google Analytics 4
- Message Analytics
Multilanguage Campaigns
Events and Behaviour Tracking
Recommendations
API
Security and Compliance
Webhooks to Follow up Activities
Webhooks are user-defined HTTP callbacks. They are usually triggered by an event, such as a read message or launched welcome email series. Webhooks are a handy tool to follow up on events in real-time – when an event occurs, a request is sent to an external URL.
There are 2 options in our CDP to implement webhooks:
-
Configure an external URL for the account to follow up on user activities.
-
Set up customized requests in scenarios using a special Webhook block.
Webhooks to follow up activities
This functionality allows receiving information about all the activities of your contacts in real-time. The information is delivered as scheduled to the specified URL using POST requests as explained below.
For comparison/alternative, there is Public API. It is triggered when GET requests are sent from your side. Time intervals (3 months maximum) and parameters (email, status, and others) can be specified in the requests.
Using webhooks, you can receive information about events in all media channels:
- delivered
- delivery error
- read
- the recipient followed the link
- the recipient unsubscribed
- the recipient reported spam
- subscriptions, unique views, conversion for widgets
messages are sent in any messaging channel.
How to configure webhooks for your account
Configure the URL on the server where you want to receive notifications and POST requests in JSON format.
Indicate that URL address in system's settings. To do that:
-
Log in to your account.
-
Click the caret next to your account name.
-
Choose Settings.
-
Choose the Laboratory item in the menu on the left side.
-
Enable the Webhooks slide button.
-
Click the caret of the Webhooks section.
-
Type in/paste your URL address into the Webhook address field.
-
Click the Save button.
Upon saving, a GET request is sent by the system to the URL address for testing. If an error is returned, then probably your server has blocked our request. The actual cause can be determined from the server error code. If the test has passed successfully, then the setting-up is complete.
After that, perform any action in your account. For example, send yourself an email message. In several minutes, a POST request is sent to the specified address with the information about the latest actions.
POST requests are sent in JSON format in case of any actions by users (sent email, opened message, click-through, or other).
If the webhook URL does not return the HTTP 200 response code then the attempt of the POST request is repeated with incremented intervals (1 minute, 2 minutes, 4 minutes, 8 minutes, and up to 1 request per hour). The following requests are postponed until the successful delivery of the first one and then they are delivered in their sequence.
List of possible parameters
Parameter | Type | Description |
---|---|---|
activityDateTime | string | Activity date and time |
activityStatus | string |
Activity status:
|
broadcastId | int | Broadcast ID |
clickEventLink | string | Contains the link clicked by a contact (when the status is CLICKED) |
contactId | int | Contact ID |
string | Contact Email | |
externalCustomerId | string | An unique customer ID in client’s system |
hardBounce | bool |
This field is returned only in case when the status is UNDELIVERED. The parameter informs that the contact is in the black list. false – not in the black list at the moment of message delivery true – in the black list at the moment of message delivery |
iid | string | Service Parameter |
mediaType | string | Media type (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App, Telegram) |
messageId | int | Message ID |
messageInstanceId | int | Message instance ID |
messageName | string | Message name (empty for test emails) |
messageTag | string | Message tag |
mobilepush | string | Mobile app subscriber token |
sms | string | Contact phone number |
sourceEventId | int | Source event ID |
sourceEventKey | string | Source event key |
sourceEventTypeKey | string | Source event type key |
statusData | Data array | |
statusDescription | string | This field is returned only in the event when the status is UNDELIVERED. It contains the reason why the message has been undelivered. This may be a recipient server response, a system response saying that message delivery was not possible, and other similar reasons. |
subscripton | Data array | |
subscriptons | array of strings | Subscription category keys |
viber | string | Contact phone number |
viewMessageLink | string | Contains the link to the message web-version |
webpush | string | Web push subscriber token |
workflowBlockId | string | Workflow block ID |
workflowId | int | Workflow ID |
workflowInstanceId | int | The identifier of a particular workflow launch. Use it to group mailings within the launch of a workflow. |
Below are webhook test examples as JSON array with all possible status options.
Bulk campaign:
[
{
"broadcastId": 3459207,
"messageName": "test",
"iid": "99d591ab-e7a5-49ed-8e16-b3023378fc18",
"contactId": 1967597908,
"externalCustomerId": "789456512",
"email": "test1@yourdomain.com",
"mediaType": "email",
"activityStatus": "DELIVERED",
"messageId": 2489300,
"messageInstanceId": 4702518,
"activityDateTime": "2023-09-14T08:30:03",
"viewMessageLink": "https://u51739.esclick.me/J9o6EvyAKGmB",
"statusData": {}
},
{
"broadcastId": 3459207,
"messageName": "test",
"iid": "4af20897-de88-4ad0-ada3-dc4bcf14e8d8",
"contactId": 889891911,
"externalCustomerId": "262ac297-6ae1-11ec-a2ec-0050569bdf92",
"email": "test2@yourdomain.com",
"mediaType": "email",
"activityStatus": "DELIVERED",
"messageId": 2489300,
"messageInstanceId": 4702518,
"activityDateTime": "2023-09-14T08:30:03",
"viewMessageLink": "https://u51739.esclick.me/J9o6Dl1wrDeB",
"statusData": {}
},
{
"broadcastId": 3459207,
"messageName": "test",
"iid": "b14dec37-806e-4bc4-ba71-a5911a7d7ce4",
"contactId": 1026901517,
"email": "test3@yourdomain.com",
"mediaType": "email",
"activityStatus": "DELIVERED",
"messageId": 2489300,
"messageInstanceId": 4702518,
"activityDateTime": "2023-09-14T08:30:03",
"viewMessageLink": "https://u51739.esclick.me/J9o6Dttf6fOB",
"statusData": {}
},
{
"broadcastId": 3459207,
"messageName": "test",
"hardBounce": false,
"iid": "99d591ab-e7a5-49ed-8e16-b3023378fc18",
"contactId": 1967597908,
"externalCustomerId": "789456512",
"email": "test1@yourdomain.com",
"mediaType": "email",
"activityStatus": "UNDELIVERED",
"messageId": 2489300,
"messageInstanceId": 4702518,
"activityDateTime": "2023-09-14T08:30:07",
"statusDescription": "5.1.2 (bad destination system: no such domain)",
"viewMessageLink": "https://u51739.esclick.me/J9o6EvyAKGmB",
"statusData": {}
}
]
Triggered campaign:
[
{
"messageName": "test",
"workflowId": 340484,
"workflowBlockId": "_05cae26d9ae85e1eb40ed34765f9c7be",
"sourceEventKey": "9d0c163d-cc3b-4f9e-bb03-2f5d1111ef91",
"sourceEventTypeKey": "productViewed",
"workflowInstanceId": "da33697d-52d8-11ee-9d24-7ec2059b5114",
"iid": "019b7450-52d9-11ee-85c4-959256ea468c",
"contactId": 889891911,
"externalCustomerId": "262ac297-6ae1-11ec-a2ec-0050569bdf92",
"email": "test1@yourdomain.com",
"mediaType": "email",
"activityStatus": "DELIVERED",
"messageId": 2489300,
"messageInstanceId": 4702524,
"activityDateTime": "2023-09-14T08:30:50",
"viewMessageLink": "https://u51739.esclick.me/1RocjPwr0MwONsdn2P",
"statusData": {}
},
{
"messageName": "test",
"workflowId": 340484,
"workflowBlockId": "_527e1f819b41bd379d75ebbe3392b879",
"sourceEventKey": "9d0c163d-cc3b-4f9e-bb03-2f5d1111ef91",
"sourceEventTypeKey": "productViewed",
"workflowInstanceId": "da33697d-52d8-11ee-9d24-7ec2059b5114",
"iid": "01777190-52d9-11ee-917a-ef6e91bfc7c3",
"contactId": 889891911,
"externalCustomerId": "262ac297-6ae1-11ec-a2ec-0050569bdf92",
"email": "test1@yourdomain.com",
"mediaType": "email",
"activityStatus": "DELIVERED",
"messageId": 2489300,
"messageInstanceId": 4702524,
"activityDateTime": "2023-09-14T08:30:51",
"viewMessageLink": "https://u51739.esclick.me/1RocjPwr0MwONsd3gP",
"statusData": {}
},
{
"messageName": "test",
"workflowId": 340484,
"workflowBlockId": "_be178ec8aacbf249d8bb736e9df9fd0d",
"sourceEventKey": "9d0c163d-cc3b-4f9e-bb03-2f5d1111ef91",
"sourceEventTypeKey": "productViewed",
"workflowInstanceId": "da33697d-52d8-11ee-9d24-7ec2059b5114",
"hardBounce": false,
"iid": "01a86ca0-52d9-11ee-85c4-959256ea468c",
"contactId": 706515632,
"sms": "380956490955",
"mediaType": "viber",
"activityStatus": "UNDELIVERED",
"messageId": 3213684,
"messageInstanceId": 4696769,
"messageTag": "tag2,tag,test",
"activityDateTime": "2023-09-14T08:30:51",
"statusDescription": "401: null",
"statusData": {}
}
]