Next Lesson Add a Webhook Receiver Module
To transform our flow from a manual tool into an automated listener, we need to add a Custom Webhook module. This module will act as the new "starting line" for our process.
👉 Step 1: Give it a shot yourself!
Try adding the Custom Webhook module and making it "officially" the first module of the flow as you have learned it in the previous courses (no need yet to deal with its configuration details). Compare your solution once done.
Solution
In the Action Flow editor, you'll search for the Webhooks app and select the Custom Webhook trigger. This should be placed at the very beginning of your flow, before the HTTP module. Make sure to relocate the clock icon onto the Webhook module to truly (not just visually) make it the first module of your flow.
Step 2: Generating the Unique Listener URL
Once you have added the module, you need to "Create a Webhook."
Click Add in the module settings. Give it a recognizable name (e.g., Currency_App_Receiver). Celonis will immediately generate a unique Webhook URL.
This URL is the specific "address" where external systems will send data. It looks something like this:
https://yourtrainingteam.training.celonis.cloud/ems-automation…
Tip: Managing and Sunsetting Webhooks
When building complex automations, it is easy to lose track of how many webhooks you have active across various Action Flows. To keep track, Celonis provides a central management page where you can review every webhook created within a specific package at a single glance. To access this central page, navigate to a Studio and find the "Automations" button in the top-right corner. Here you can find an overview of all your Agents, Connections, Webhooks, and more.
The view on Webhooks is essential for auditing your connections, verifying Webhook URLs, and checking which webhooks are currently "Active" versus "Inactive." Make sure you select the appropriate package from the dropdown to locate the desired webhook:
An important technical detail to remember is that webhooks are independent of Action Flows. Even if you delete an entire Action Flow, any webhook that was inside it will continue to exist (you could, for example, reuse them in another Action Flow). Because these webhooks stay "live" in the background and are technically still able to receive data, it is a best practice to manually delete them once their specific use case is no longer needed. This prevents your Celonis team from becoming cluttered with "orphaned" webhooks that aren't actually sending data anywhere.
To permanently remove a webhook:
Locate the webhook in the list on the automations page. Click the Delete button on the right-hand side. You can also click on a specific webhook to see its General Information and confirm if its associated Scenario is currently inactive before you hit delete.
Step 3: Initializing the Webhook
After creating the URL (the webhook), you’ll notice the module says "Celonis is now listening for data…" This is a crucial step. Celonis knows where the data is coming from, but it doesn't know what the data looks like yet.
To "teach" the flow the data structure, you need to send a sample data set to that URL; either the professional way with a tool like Postman or just by simply opening another browser tab window and making the request from there.
You will need to initialize the webhook with three parameters: the target currency, the base currency, and the amount.
To do the "initialization", just add those parameters with a sample value as query strings to the URL.
👉 Once again, give it a shot yourself! Then open the solution below.
Solution Keep the module window open in Celonis. Send a sample "test" request to that URL (using a tool like Postman or simply via a new browser tab). We'll want it to expect receiving three parameters: The target currency (to) The base currency (from) The amount Append those parameters, including some dummy values to the URL (i.e. as a query string). This will look something like this: https://yourtrainingteam.training.celonis.cloud/ems-automation…?target_currency=EUR&base_currency=GBP&amount=270 You need to make sure that you append your parameters by separating them with a ? from the rest of your URL. First comes the parameter's name (what you want to see later on in the data pills), then the (dummy) value, separated by a =. Neither parameter names nor the values can have any spaces (if you really need to add them, encode them as %20). Separate parameters with a & from one another. Once you're happy with the parameters you added to the URL, hit Enter.
You should see an "accepted" message in your browser. This means that the webhook was successfully initialized.
The video below demonstrates the full webhook initialization end-to-end. It doesn't have sound.
Once the Webhook "hears" the test, you will see a "Successfully determined" message (the same time you see "accepted" in the tab) - no matter whether the data you have sent is in that sense "correct", i.e., whether these are a proper reflection of what you expect the Webhook to receive. In case something went wrong, you can always redetermine the data structure!
By determining the data structure, Celonis automatically creates the data pills (variables) for the rest of your flow. For our app, once the Webhook receives a test payload containing amount, target, and base those fields become available for you to map into your HTTP module.
_Media:_
- https://fast.wistia.net/embed/iframe/jfngnflzva?videoFoam=true
---