- A simpler integration
- Less data being passed
- No polling needed
- Updates only sent when changes happen
Webhooks currently available
Currently these webhooks can be used in Customer Engagement:Contact preferences for email changed
Contact preferences for email changed
contact.acceptsEmail.changed is triggered whenever the acceptsEmail preference changes for an already existing contact.Contact preferences for SMS changed
Contact preferences for SMS changed
contact.acceptsSms.changed is triggered whenever the acceptsSms preference changes for an already existing contact.Contact preferences for postal changed
Contact preferences for postal changed
contact.acceptsPostal.changed is triggered whenever the acceptsPostal preference changes for an already existing contact.Contact consent changed
Contact consent changed
contact.consent.changed is triggered for changes in consent-typed fields on a contact.Points - added
Points - added
loyalty.addPoints is triggered whenever points are added to a contact via the Customer Engagement UI or through an automation. The transaction is sent in the webhook.Points - balance updated
Points - balance updated
point.balance.updated is triggered whenever a contact’s point balance has changed.Vouchers - created
Vouchers - created
reward.voucher.created is triggered whenever a reward voucher is created for a contact.Multichannel promotion assigned
Multichannel promotion assigned
promotion.multiChannel.assigned is triggered when a multichannel promotion is assigned to a contact in Customer Engagement.Contact created
Contact created
contact.created is triggered whenever a new contact is created in Customer Engagement.Contact updated
Contact updated
contact.updated is triggered whenever a new contact is updated in Customer Engagement.Contact deleted
Contact deleted
contact.deleted is triggered whenever a new contact is deleted in Customer Engagement.See the webhook use-cases
Requirements
Here are the various requirements for working with webhooks in Customer Engagement.Basic client requirements
To receive webhooks from Customer Engagement you will need to develop and deploy a web service. This is basically an API with a POST endpoint. It’s common to use one service for all webhooks, and then distribute the incoming events internally to your different systems. Your web service must be accessible over the internet. Fixed source IP addresses can be used if your endpoint is behind a firewall or NAT. There should be no authentication at the receiving endpoint. Instead, you’ll verify that the events received are sent from Voyado Customer Engagement using signatures and a shared signing secret. The service you provide must be able to scale with the load. Voyado’s webhooks service provider Svix has good documentation on how to consume webhooks.How to consume webhooks using Svix
Technical client requirements
You, the client, must develop functionality to verify the webhooks are from the correct sender.How to verify payload using Svix
Code libraries available for Svix
Read more soft identification
Legal requirements
Read about GDPR sub-processors
Security considerations
The security involved in using the webhooks solution can be seen as many nested layers.- The webhook itself: No security.
- Signing the webhook message with Signing Secret: The recipient can use this to verify that the webhook comes from Voyado. The Signing Secret is found in the portal (meaning that Svix controls it). The client can rotate the key whenever they want.
- IP lock: By using this, messages can only be accepted from specific IP addresses.
- Payload encryption: All data from Customer Engagement is encrypted with a key that only Voyado and the client know. It is configured in Customer Engagement, meaning that Svix cannot read any of the data that passes through it.
Setting up a webhook in Customer Engagement
Once you have created your webhooks, you’ll need to set them up in Customer Engagement. The steps are:Enable webhooks in Customer Engagement
Configure client endpoint

Webhooks already set up
Choose events to use

Choose event to send
Add verification and encryption

Choose event to send
Test your webhook
Configure a rate limit (optional)
Configure a custom header(optional)