Using Inbound Webhooks as Triggers: "External Event Workflow"
In this guide, you’ll learn how to create a workflow triggered by an Inbound Webhook. This allows external systems to send data to Exabloom, which can then trigger workflows based on the received payload. We’ll create a new workflow from scratch and walk you through setting up the webhook, sending an example payload, and mapping the data to create or update contacts.
Business Context: Why Use Inbound Webhooks?
Inbound webhooks are powerful because they allow Exabloom to integrate with external systems. For example:
- A customer submits a form on your website, and the data is sent to Exabloom via a webhook.
- An external CRM system sends contact updates to Exabloom in real-time.
- A payment gateway notifies Exabloom when a payment is completed.
By using inbound webhooks, you can automate workflows based on events happening outside of Exabloom.
Step-by-Step: Creating the Workflow
Let’s create a new workflow called "External Event Workflow" that uses an inbound webhook as the trigger.
Step 1: Add an Inbound Webhook Trigger
- Go to the Workflow Builder in your Exabloom account.
- Click Create Workflow and name it something descriptive, like "External Event Workflow".
- Select Inbound Webhook as the trigger.
- A form will open with an auto-generated URL. This is the URL you’ll use to send POST requests to trigger the workflow.
Step 2: Send an Example Payload
To ensure Exabloom understands the structure of the payload, you need to send an example payload first. Here’s how:
Option 1: Using Postman (Recommended for Beginners)
-
Download and Install Postman:
- Go to Postman’s website and download the app.
- Install and open Postman.
-
Create a New Request:
- Click the New button and select HTTP Request.
- Set the request type to POST.
-
Enter the Webhook URL:
- Copy the auto-generated URL from the Inbound Webhook form in Exabloom.
- Paste the URL into the request URL field in Postman.
-
Set the Request Body:
- Click the Body tab.
- Select raw and change the format to JSON.
- Enter the following example payload:
{
"phone": "6591234567",
"firstName": "John",
"customField": "Some additional data"
} - Important Note: The
phonefield must be a full phone number, including the country code and national number. For example:- Singapore Context: A valid Singapore phone number would be
6591234567, where:65is the country code for Singapore.91234567is the national number.
- Singapore Context: A valid Singapore phone number would be
-
Send the Request:
- Click the Send button.
- If successful, you’ll see a response indicating the request was received.
Option 2: Using cURL (For Advanced Users)
- Open your terminal or command prompt.
- Run the following command, replacing
YOUR_WEBHOOK_URLwith the auto-generated URL from Exabloom:curl -X POST -H "Content-Type: application/json" -d '{
"phone": "6591234567",
"firstName": "John",
"customField": "Some additional data"
}' YOUR_WEBHOOK_URL - If successful, you’ll see a response indicating the request was received.
Step 3: Refresh the Mapping Reference
- After sending the example payload, go back to the Inbound Webhook form in Exabloom.
- Click the Refresh Mapping Reference button.
- You’ll see a list of requests received by the webhook, including the example payload you just sent.
Step 4: Map Payload Fields to Contact Data Find Contact
- Below the Inbound Webhook trigger, you’ll notice an automatically added
Create/Update ContactFind Contact action. - The purpose of Find Contact is to help the workflow identify whether there is an existing contact that can be identified by the phone (or email). If there is an existing contact, use that contact, else create one. This is where you map the payload fields to Exabloom’s contact fields.
- Map the following fields:
- Phone: Select the
phonefield from the payload. - First Name: Select the
firstNamefield from the payload.
- Phone: Select the
- If your payload includes additional fields (e.g.,
customField), you can map them to custom fields in Exabloom if needed.
Update: "Create/Update Contact" Replaced with "Find Contact" in Exabloom
As of 14 Feb 2025, "Create / Update Contact" step has been replaced with "Find Contact".
With the latest Exabloom update, the "Create/Update Contact" action has been replaced with "Find Contact". This update improves how contacts are identified and handled in workflows.
Key Changes and How "Find Contact" Works
Previously, when using an Inbound Webhook, the next step in the workflow was "Create/Update Contact". Now, this step is called "Find Contact", but its core functionality remains similar, with some improvements.
Step 1: Identifying Existing Contacts
- The Find Contact action searches for an existing contact using identifiers.
- You must define a Primary Identifier (e.g., Phone Number) and, optionally, a Secondary Identifier (e.g., Email).
- To map these identifiers, select the corresponding values from the Inbound Webhook payload.
If an email is available in the webhook data, you can map it as a secondary identifier. Otherwise, you can leave it blank.
Step 2: Handling Contacts Not Found in the System
If no existing contact matches the provided identifiers, you can choose from the following options:
-
Create a new contact (Default option)
- A new contact will be created using the mapped First Name and Phone Number fields.
-
Do not create a contact
- The workflow will stop instead of creating a new record.
Step 3: Handling Found Contacts
If an existing contact is found, you can choose whether to update it:
- Default behavior: The system does not update the contact.
- Optional: If you want to update the contact, select "Update Contact" and map the fields you want to modify.
Summary of "Find Contact" Behavior
✔ Searches for a contact using Phone Number (Primary) and Email (Optional).
✔ If the contact is not found, choose to either create a new contact or stop the workflow.
✔ If the contact is found, choose whether to update the contact or leave it unchanged.
This update was made based on user feedback, allowing more flexibility in managing contacts within Exabloom.
Step 5: Add Actions to the Workflow
Now that the contact is created or updated, you can add actions to the workflow. For example:
-
Add a Send WhatsApp action to send a welcome message:
Hi {{contact.firstName}}, thank you for reaching out! We’re excited to have you here. 😊 -
Add a Create Lead action to create a lead record for the contact based on the payload data (e.g., set the source as
Facebook Ads).
How It Works
- An external system sends a POST request to the webhook URL with a payload containing
phoneandfirstName. - Exabloom receives the payload and uses the Create/Update Contact action to:
- Identify an existing contact using the
phonefield. - Create a new contact if no matching phone number is found.
- Identify an existing contact using the
- The workflow continues with the actions you’ve set up (e.g., sending a WhatsApp message and creating a lead record for the contact).
Troubleshooting Common Issues
If your webhook isn’t working, follow these steps to diagnose and fix the issue:
1. Check the Workflow Logs
Navigate to your workflow in Exabloom and open the Logs section.
Logs will show you the execution of each step and whether each step was successful or had an error.
If a step has an error, examine the error message to identify the root cause.
2. Verify Data Structure Consistency
One common issue is a mismatch between the expected data structure and the actual incoming payload.
For example, if your original structure was:
{
"first_name": "Andy",
"last_name": "Jones",
"phone": "6591111111"
}
But later in production, the incoming data is structured as:
{
"firstName": "Jackson",
"lastName": "Wong",
"phone": "6592222222"
}
This will break downstream steps like Find Contact, which expects first_name, last_name, and phone. Since the new payload uses firstName and lastName instead of first_name and last_name, Exabloom won’t be able to map these fields correctly, causing errors.
3. Confirm Webhook URL and Request Method
Ensure you’re sending the request to the correct Inbound Webhook URL.
The request method must be POST, and the content type should be application/json.
What’s Next?
Now that you’ve learned how to use Inbound Webhooks to trigger workflows, you can integrate Exabloom with external systems and automate processes based on real-time data. In the next guide, we’ll explore how to use Tags and Lead Management to further enhance your workflows. Stay tuned!