Skip to main content

How to configure Webhook integration

To create a Webhook notification, follow the same steps as for creating email notifications:

  1. Create a new channel.
  2. Select or create new recipients.
  3. Configure the notification.

In the first step, when creating a channel:

  • Select HTTP Request as the Channel Type.
  • Choose the method (GET or POST) that you will use to send messages.
  • Configure additional data:
    • Add the URL that will be used for requests.
    • Set the key and value for headers, if required.
    • Provide basic authorization data, if required.
    • In the Body, set the variable %payload%, which will be replaced with the message.

Campaigns dashboard

WebHook notification settings

Use test message to verify that the WebHook notifier is working correctly.

Examples

Use these examples to build your requests.

GET method

The Body must be in JSON format to ensure proper parsing of the data into GET request parameters. The %payload% from the Notification template should be in JSON format as well.

Example 1: %payload% as a part of a JSON
  • Body:
    {
    "success": true,
    "data": %payload%,
    "info": "OK"
    }
  • Notifiction template:
    {
    "total": {{order.grand_total}},
    "status": "{{order.status}}",
    "qty": {{order.summary_qty}},
    "count": {{order.summary_count}}
    }
  • Result (URL params string):
    ?success=1&data[total]=63.71&data[status]=pending&data[qty]=2&data[count]=2&info=OK
Example 2: %payload% as the body
  • Body:
    %payload%
  • Notifiction template:
    {
    "sku": "{{product.sku}}",
    "name": "{{product.name}}",
    "qty": {{product.qty}},
    "info": "OK"
    }
  • Result (URL params string):
    ?sku=24-MB01&name=Joust+Duffle+Bag&qty=2&info=OK

POST method

The Body by default, should be in JSON format. The %payload% from the Notification template should be in JSON format as well. If the body is not in JSON, the Content-Type header must be explicitly specified.

Example 1: %payload% as a part of a JSON
  • Body:
    {
    "success": true,
    "data": %payload%,
    "info": "OK"
    }
  • Notifiction template:
    {
    "total": {{order.grand_total}},
    "status": "{{order.status}}",
    "qty": {{order.summary_qty}},
    "count": {{order.summary_count}}
    }
  • Result:
    {
    "success": true,
    "data": {
    "total": 63.71,
    "status": "pending",
    "qty": 2,
    "count": 2
    },
    "info": "OK"
    }
Example 2: %payload% as the body
  • Body:
    %payload%
  • Notifiction template:
    {
    "sku": "{{product.sku}}",
    "name": "{{product.name}}",
    "qty": {{product.qty}},
    "info": "OK"
    }
  • Result:
    {
    "sku": "24-MB01",
    "name": "Joust Duffle Bag",
    "qty": 2,
    "info": "OK"
    }