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.

  • Add a “Custom webhook” module in a new Make scenario.
  • Copy the URL Make gives you.
  • Have Ciklik activate it for the event key you want (see step 2 below).
  • 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. Send the key and the receiving URL to the Ciklik team, or declare them yourself through the API.
  3. Wait for confirmation: 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.