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.
Step 1: get a receiving URL
Section titled “Step 1: get a receiving URL”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.
An address on your application that accepts a JSON POST and responds immediately is enough. To build this receiving URL, your developer will find the full request contract in Understanding a webhook delivery and the mistakes to avoid in Best practices and troubleshooting.
A public service such as webhook.site lets you see what a delivery looks like in two minutes, without writing any code.
Step 2: have the event activated
Section titled “Step 2: have the event activated”- Choose the event key from the catalogue.
- Send the key and the receiving URL to the Ciklik team, or declare them yourself through the API.
- Wait for confirmation: activation takes effect in under a minute.
Step 3: trigger a first delivery
Section titled “Step 3: trigger a first delivery”Run these tests on a test customer account, never on a real customer.
| What you do | Event | Delay |
|---|---|---|
| Create a test customer account | created_user | immediate |
| Create an address for that account | created_address | immediate |
| Edit the address of that test account | updated_address | immediate |
| Subscribe to the newsletter with a test e-mail address | created_optin | about 10 seconds |
| Place an order | created_checkoutorder, then created_checkouttransaction, then created_checkoutinvoice | about 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.
Reading what you receive
Section titled “Reading what you receive”Here is the actual content of two first deliveries, on a test account.
{ "email": "claire.martin@example.com", "tenant_id": 1, "valid": true, "list_id": "9f2c4e7a1b", "changed": []}{ "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.
changedis 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.
If you receive nothing
Section titled “If you receive nothing”Check, in this order:
- your URL does respond to a POST request sent from outside;
- it does not redirect;
- it requires neither a password nor IP address filtering;
- its certificate is valid and issued by a recognised authority: a self-signed certificate makes the delivery fail without leaving any trace;
- 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.