Webhook trigger nodes allow external systems to communicate with SleekFlow by sending data to initiate flows. By using webhook related trigger, you can enroll contacts into a flow automatically when SleekFlow receives a webhook request that matches your configuration.
ℹ️ Learn more about flow triggers in this article: Flow trigger overview
This is particularly useful for integrating with third-party platforms, internal systems, or custom-built tools that need to trigger workflows in SleekFlow in real time.
Webhook payload received
⚠️ The “Webhook payload received” trigger is only available for Premium and Enterprise plan users.
The "Webhook payload received" trigger allows you to enroll contacts into a flow when SleekFlow receives an incoming webhook matching the configurations set within the trigger’s node form.
Set up the "Webhook payload received" trigger node form by following the steps outlined below:
- Select webhook received trigger node
- Set up your webhook
- Specify contact identifier
Set up "Webhook payload received" trigger node
- Click on the Webhook payload received trigger node to open up its node form, which will appear on the right side of the screen
- The node form contains the following fields for you to set up the trigger.
- Setup tab
- This section provides all the information you need to connect your external system to SleekFlow. When configured correctly, it enables SleekFlow to receive a webhook request and enroll the relevant contact into the flow.
- Webhook URL: This is the URL your external system needs to send the webhook to in order for it to be received by SleekFlow
- Webhook trigger ID: This ID allows the SleekFlow system to map the webhook to the flow, ensuring contacts are properly enrolled. Include this in the webhook header
- Webhook token: This allows the SleekFlow system to verify the webhook is coming from you. Include this in the webhook header
-
Webhook sample POST request: A prefilled example is provided, which you can use to test or reference during implementation.
Specify customer identifier
Under the “Setup info” section, you can also find the “Customer identifier” section. This section allows you to configure how the system will map the webhooks it receives to corresponding contacts that are enrolled into the flow.
This section has 2 fields you must fill in:
-
Identifier type: This drop-down menu allows you to select which contact property the system will cross-check your specified contact identifier against within your SleekFlow account’s contact records. Select between 3 options:
- Contact ID (I.e. the unique UUID of each contact provided by SleekFlow)
- Phone number
💡Note on non-existent contacts:
There may be instances where the contact identifier provided in the JSON webhook payload does not correspond to an existing contact within your SleekFlow account.
When "Phone number" or "Email" is selected as your "Identifier type", an additional toggle - "New customer enrollment" - is provided to handle such cases.
If "New customer enrollment" is toggled on, a phone number or email address provided in the webhook payload that cannot be matched with an existing contact on SleekFlow will automatically have a new contact record created with the provided contact identifier. The newly created contact will then be enrolled into the flow.
- Contact payload key: This field allows you to specify which variable within the JSON webhook payload received by the system should be used to cross-check against the contact records in SleekFlow. We recommend using a variable that is a unique identifier for a contact, e.g., contact ID, phone number, or email. Please use the JSON dot notation here to specify which field from the webhook payload the system should extract and reference.
💡JSON dot notation explainer
The JSON dot notation is a way to specify a particular field or value within a nested data structure like JSON. It allows you to navigate through the structure by indicating the path to the desired field using dot-separated keys.
Format:
The JSON dot notation begins with a $., followed by all the field names listed in sequential order to navigate through the nested data structure to get to your target field. Each field name specified in the notation is separated by a dot (e.g. $.key1.key2.key3)
Example:
For the payload specified below, the phone number field would be represented using the JSON dot notation like so: $.data.profile.phone
{
"data": {
"id": "12345",
"name": "Bob Chan",
"profile": {
"email": "bob@sleekflow.io",
"phone": "85298007899"
}
}
Paste sample response payload
After setting up your webhook and specifying the contact identifier, you can navigate to the “Variable” tab. This tab is where you define how SleekFlow should interpret and extract data from the incoming webhook payload. It allows you to preview and configure the variables that can be used throughout your flow.
Step-by-step guide:
- Paste a sample JSON payload
Copy a representative webhook request payload from your external system and paste it into the textbox provided. This should be a raw JSON object that mirrors the structure and content your system will actually send when the webhook is triggered.
⚠️ The data pasted here is used only for parsing variable paths and will not be stored in SleekFlow after parsing.
- Click “Parse data”
Once you’ve pasted your JSON, click the Parse data button. SleekFlow will automatically extract all top-level and nested fields in the payload and convert them into usable variables.
- Use parsed variables
After parsing, these variables will be accessible throughout your flow. You’ll be able to reference them in message templates, condition branches, or any other node that supports dynamic variables.