Setting up webhooks
Webhook Types
Vero provides webhooks for the following events:
- Sent (email has been sent by Vero)
- Delivered (email has been delivered to the recipient email server)
- Opened
- Clicked
- Failed
- Bounced (hard and soft)
- Converted
- Unsubscribed
- Resubscribed
- User created
- User updated
- Complained
Webhook Setup
All of Vero's webhooks are sent to a single notification address. To enable the webhooks, go to Settings > Integrations > Webhooks and enter the URL at which you wish to receive the webhooks.
For testing, you should check out Request Bin - it's a fantastic way to see the webhooks Vero (or any service) sends.
You can click the Test URL button and Vero will send an example of a webhook to the URL you've entered. This ensures Vero has registered the URL correctly and data arrives.
Once you have entered the URL you can choose which webhook events you want to track.
Webhook format
Webhooks structure for email events
The follow list outlines each of the type
values:
sent
– When an email has been sent by Verodelivered
– When an email has been delivered to the ISP serveropened
– When a customer has opened an emailclicked
– When a customer has clicked an emailfailed
- When an email could not send due to an error (such as a bad Fusion response)bounced
– When an email has not been delivered to the ISP serverconverted
– When a customer has converted on an email campaignresubscribed
– When a customer has resubscribedunsubscribed
– When a customer has unsubscribedcomplained
– When a customer complains through their email client
Sent:
{
"sent_at":1435016238,
"type":"sent",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
},
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com"
}
Delivered:
{
"delivered_at":1435016238,
"type":"delivered",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
},
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com"
}
Opened:
{
"opened_at":1435016238,
"user_agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
"type":"opened",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
},
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com"
}
Clicked:
{
"clicked_at":1435016238,
"user_agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
"type":"clicked",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
},
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com"
}
Failed:
{
"type":"failed",
"bounce_code":500,
"bounce_message": "FusionBadResponse",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
}
}
Bounced:
{
"bounced_at":1435016238,
"bounce_type":"hard",
"bounce_code":550,
"bounce_message":"5.5.1 The email account that you tried to reach does not exist.",
"type":"bounced",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
},
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com"
}
Converted:
{
"type":"converted",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"id":987,
"type":"transactional",
"name":"Order confirmation",
"group": "Order confirmation - Email 6",
"channel": "email",
"subject":"Your order is being processed!",
"trigger-event":"purchased item",
"permalink":"http://app.getvero.com/view/1/341d64944577ac1f70f560e37db54a25",
"sent_to":"user@example.com",
"variation":"Variation A",
"locale":"en-US"
},
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com"
}
Resubscribed:
{
"type": "resubscribed",
"user": {
"id": 123,
"email": "steve@getvero.com"
}
}
Unsubscribed:
{
"unsubscribed_at":1435016238,
"type":"unsubscribed",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"campaign": {
"campaign_title": "Order confirmation",
"series_title": "Order Tracking",
"channel": "email",
"message_id": "20190730123456.1.1B72E094173067F0F@veromail.com",
"email_subject": "Your order is being processed!",
"variation_name": "Control",
"template": "Order Template"
},
}
Key things to note:
- The
trigger-event
value will be present for Transactional and Behavioral campaigns and represents the event that triggered the campaign.
Note: Due to the sheer volume of webhooks we process daily, and our inability to guarantee the availability of external endpoints, Vero is unable to retry failed webhooks at this time.
Webhook structure for customer updates
The webhook sent when a customer is created or updated shows the details of that customer or the changes made to that customer's properties or their tags. This allows you to update customer details in other systems, based on changes sent to Vero, keeping everything in sync.
User created:
{
"type":"user_created",
"user": {
"firstname":"Steve",
"company":"Vero",
"role":"Bot",
"id":123,
"email":"steve@getvero.com"
}
}
User updated:
{
"action": "user_updated",
"type":"user_updated",
"user": {
"id":123,
"email":"steve@getvero.com"
},
"id": "123",
"email": "steve@getvero.com",
"changes": {
"_tags": {
"add": ["active-customer"],
"remove":["unactive-180-days"]
}
}
}
If you have any other questions regarding setting up webhooks, please write us an email. We're here to help.