Skip to content
FlexiPedia logo

Inbound Webhooks

Unlock the full potential of your chatbot with inbound webhooks, a dynamic feature that allows seamless data integration from external sources. Whether you're confirming bookings or sending notifications, inbound webhooks enable your bot to initiate conversations and enhance user

Flexito OmniAI
Beginnerv5
Read in:

Listen to an audio overview

A short, AI-generated podcast-style summary of this article.

Unlock the full potential of your chatbot with inbound webhooks, a dynamic feature that allows seamless data integration from external sources. Whether you're confirming bookings or sending notifications, inbound webhooks enable your bot to initiate conversations and enhance user engagement effortlessly.


Inbound webhooks empower your chatbot to receive data from any source via a POST request, making it a versatile tool for data integration.

With this feature, your bot can initiate conversations with users who have never interacted with it before.

For instance, when a client submits their contact details on your website, you can send this information to a chatbot's inbound webhook, such as an SMS bot, which can then send a confirmation message to the client's phone.

If the webhook is integrated with a Voice bot, the bot can even make an immediate call to the client!

Limitations: Each bot can have up to five inbound webhooks, with a rate limit of 500 requests every 24 hours. The reset process is as follows:

The limit resets 24 hours after the first request. You can check the timestamp in the response headers.

The limit is based on a rolling 24-hour period, not a fixed daily schedule.

How to Create an Inbound Webhook

Inbound webhooks are available in nearly all channels. To create one, navigate to Tools - Inbound Webhooks in your flow builder:

Click 'New Inbound Webhook', assign it a name, and then click 'Save':

You'll see the editing interface displayed like this:

Webhook Address Details

This section provides the URL for sending data, using the POST method. Each inbound webhook has a unique URL within the Flexito OmniAI system.

Sample JSON Example

This section provides a sample JSON for reference, illustrating the data structure you will receive. It's essential for identifying user information and data to store.

There are two methods to obtain a sample JSON:

  1. manually type or paste it here

  2. listen to real-time data from a live test

Identifying User Values

When data is received, the webhook checks the specified paths to find an existing user in the chatbot.

If the user isn't found in the system, a new profile is created, allowing the chatbot to start a conversation with them.

However, some channels restrict chatbots from initiating conversations due to privacy and spam concerns.

For example, an SMS bot can send messages if it has the recipient's phone number, whereas a Facebook Messenger bot cannot message a user who hasn't interacted with it before.

User Identification Process

Here's how the system identifies a user:

  1. check user_ns

  2. if a valid user_ns is found, the user is identified.

  3. if not, proceed to the next step

  4. check phone/email

  5. if a user is found by phone or email, the user is identified.

  6. if not, proceed to the next step

  7. verify phone

  8. if no user matches, check if the phone number is valid.

  9. if valid, create a user profile.

  10. if not, the webhook won't be processed.

Mapping Section

The mapping list specifies which values should be stored in which custom fields. After obtaining a sample JSON, click 'Preview Payload' to access the mapping tool.

Webhook Logs Overview

Every request is recorded in Logs. Click on a record to view the received JSON data.

Inbound Webhook Limitations

By default, the inbound webhook request limit is 500 requests per 24 hours. The screenshot below illustrates these limits:

If you exceed these limits, you can upgrade to allow more requests per day. Here are your options:

  • 500/day - Included ~~ 15K requests/month

  • 1000/day - (#) per month ~~ 30K requests/month

  • 2000/day - (#) per month ~~ 60K requests/month

  • 3000/day - (#) per month ~~ 90K requests/month

  • 4000/day - (#) per month ~~ 120K requests/month

  • 5000/day - (#) per month ~~ 150K requests/month

  • 10000/day - (#) per month ~~ 300K requests/month

You can subscribe using the link below:

The subscription costs (#) per month per unit. For 1000 requests per day, select quantity 1.

For 2000 requests per day, select quantity 2, and so on.

After payment, send your payment receipt and flowNS to Flexito OmniAI support at (mailto:)

Here's how to find your flowNS:

Go to 'All bots' in the Flexito OmniAI dashboard, locate the bot for which you want to increase webhook limits, click the dropdown, and find the flowNS.

Video Tutorial: How to Debug Inbound Webhook Max Request Error If you're not receiving data in the inbound webhook or can't find it in the logs, it's likely you've reached the maximum daily request limit.

Here's how to test it:

Send a request to the inbound webhook using Postman or Flexito OmniAI's external request feature. Check the following information in the header:

You'll see 'rate-limit-remaining'. If it's 0, you've reached the rate limits and should consider upgrading.

Demo: Booking Confirmation

Testing your inbound webhook is easy with the built-in tool. Use any chatbot channel and test it in an Action Step.

Open another Flexito OmniAI webpage side by side. Keep the inbound webhook editing on Page 1 and select an external request on Page 2:

Follow steps 1 to 8 as shown in the following screenshot:

Provide the data to be sent to the chatbot and click 'Test'. You'll receive a "webhook inactive" error since it's not activated yet. Click 'Done' on Page 1 to save the data.

Scroll down and follow steps 1, 2, 3 to indicate where the phone and email values are in the JSON:

Finally, map the remaining data to the chatbot:

Save your inbound webhook settings:

Enter the subflow, and send a message to the bot user:

Publish the flow and conduct a live test with the external request again:

This time, the test runs without errors because the webhook is activated and a real phone number is used. Check the Logs to see that a new user profile has been successfully created.

From the user's perspective:

Frequently Asked Questions

Why isn't the inbound webhook working on your partner's custom domain?

If inbound webhooks stop working under your partner's custom domain but function correctly under the Flexito OmniAI domain, here's what to check:

The issue might be in your Cloudflare settings.

Cloudflare sometimes identifies requests to your domain as bot attacks, blocking them for a certain period.

To prevent this, go to your Cloudflare dashboard, navigate to the security tab, and disable "Bot Fight Mode".

This change will stop requests to your webhooks from being classified as bot attacks, allowing them to function properly again.

Note: Webhooks may also stop working if they hit their daily limit. Always check to ensure limits aren't exceeded.