Skip to content

Activating and testing a webhook

Before you start, gather:

  • a public receiving URL that accepts POST requests and responds immediately;
  • the key of the event you want to receive (see the event catalogue);
  • ten minutes.

This is the simplest path, and the one most Ciklik merchants follow.

  1. Add a “Custom webhook” module in a new Make scenario.

  2. Copy the URL Make gives you.

  3. Register it for the event key you want (see step 2 below).

  4. Once the first delivery has been received, click the “Redetermine data structure” button of the webhook module in Make: the event’s fields then become usable in the rest of your scenario.

The same principle applies to Zapier: create a “Catch Hook” trigger and follow the same steps.

  1. Choose the event key from the catalogue.

  2. In Settings > Sites, open your site, click Edit, then open the Advanced tab. In the Webhooks field, add a row: the event key on the left, the receiving URL on the right. Save. You can also use the API.

  3. Activation takes effect in under a minute.

Run these tests on a test customer account, never on a real customer.

What you doEventDelay
Create a test customer accountcreated_userimmediate
Create an address for that accountcreated_addressimmediate
Edit the address of that test accountupdated_addressimmediate
Subscribe to the newsletter with a test e-mail addresscreated_optinabout 10 seconds
Place an ordercreated_checkoutorder, then created_checkouttransaction, then created_checkoutinvoiceabout 10 seconds for the order and the transaction, 15 seconds for the invoice

Placing an order requires a real payment: use a 100% coupon if you do not want to charge a card.

Here is the actual content of two first deliveries, on a test account.

created_optin.json
{
"email": "claire.martin@example.com",
"tenant_id": 1,
"valid": true,
"list_id": "9f2c4e7a1b",
"changed": []
}
created_user.json
{
"id": 1,
"email": "claire.martin@example.com",
"uuid": "cus_Qx7hR3eaEowcv1DX",
"refp": "https://boutique.example.com/formules?refp=CLAIRE2026",
"has_active_subscription": false,
"info": null,
"changed": []
}
  • Fields are at the root: there is no envelope.
  • changed is empty on a creation.
  • The event name is not in the content: the receiving URL is what identifies it.
  • The rest of the contract (field types, update cases, date and amount formats) is described in Understanding a webhook delivery.

Check, in this order:

  1. your URL does respond to a POST request sent from outside;
  2. it does not redirect;
  3. it requires neither a password nor IP address filtering;
  4. its certificate is valid and issued by a recognised authority: a self-signed certificate makes the delivery fail without leaving any trace;
  5. fewer than 60 seconds have passed since activation: the configuration is cached for one minute.

If all of that is in order and still nothing arrives, head to Best practices and troubleshooting.