Create inbound webhooks to receive real-time data from another app in Brevo

The inbound webhooks feature is currently being gradually rolled out and may not be available on all accounts yet.

Inbound webhooks allow you to receive real-time data in Brevo from an external app. Whenever an event happens in your external app, Brevo receives a webhook containing event details. You can then:

  • Trigger a custom event in Brevo, and/or
  • Automatically create or update a contact based on the received data.

Good to know

  • You can create up to 20 inbound webhooks in your Brevo account. To add a new webhook beyond this limit, delete an existing one.
  • Each webhook URL can handle up to 20 events per second.
  • For now, you can only retrieve data from the first hierarchy level of the JSON payload. This means you can access top-level arrays and objects directly, but you cannot retrieve data from nested arrays or deeper levels.
  • If you want to create outbound webhooks to send real-time data from Brevo to an external app, check our dedicated article New webhooks - Create outbound webhooks to send real-time data from Brevo to an external app.

Step 1: Create an inbound webhook in Brevo

To begin, you need to create an inbound webhook in Brevo.

  1. In Brevo, click your account name and select Plugins & Integrations.
  2. Go to the Webhooks tab.
  3. Click Add webhook.
    webhook_outbound_create_en-us.png
  4. Select Inbound webhook.
  5. Click Add webhook.
    webhook_inbound_create_en-us.png

Step 2: Set up the inbound webhook in Brevo

Then, set up the inbound webhook in Brevo.

  1. Enter a name for the webhook.
    webhook_inbound_name_en-us.png
  2. Click Continue.
  3. Copy the webhook URL generated by Brevo. This callback URL tells your external app where to send the inbound webhook when an event happens.
    webhook_inbound_copy-url_en-us.png
  4. Paste the webhook URL into your external app. This is usually done from a webhook setup page, an automation section, or via an API integration.
    💡 Good to know
    If you’re unsure where to paste the webhook URL, check your external app’s help center or contact their support team.
  5. (Optional) To add an extra layer of security, or if your external app requires it:
    1. Activate the Require authentication option.
    2. Copy the token generated by Brevo.
      webhook_inbound_token_en-us.png
      💡 Good to know
      If your token is compromised, you can regenerate it by clicking the 🔄 refresh icon and updating it in your external app.
    3. Paste the token into your external app.
  6. Finish setting up the inbound webhook in your external app. You might be asked to select:
    • The event that will trigger the webhook.
    • The data to be included in the payload.

Step 3: Send a test request and choose the payload to sync

❗️ Important

Make sure the parameters you want to sync are in the top-level arrays and objects of the JSON payload, as nested data or deeper levels can't be accessed for now.

Test the inbound webhook and confirm the event data being received.

  1. Send a test request from your external app to Brevo.
  2. Verify the received event data to ensure it contains all the parameters you want to sync. If any information is missing, send additional test requests until the correct payload is received.
    webhook_inbound_payload_en-us.png
  3. (Optional) If multiple test requests were sent:
    1. Click 🔄 Reload.
    2. Use the dropdown to select the desired payload from the last 10 received payloads.
      webhook_inbound_reload_en-us.png
  4. Click Continue.

Step 4: Configure the action triggered by the inbound webhook

Configure what action should be triggered in Brevo when the webhook is received. This involves mapping the payload keys (the event data received in the inbound webhook) to Brevo attributes to ensure that the incoming data is correctly formatted and triggers the right action.

You can choose from two available actions:

  • Option 1: Create an event
    Track external actions in Brevo by creating a custom event.
  • Option 2: Create or update a contact
    Automatically add or update contact data in Brevo.
Option 1: Create an event Option 2: Create or update a contact

You can trigger a custom event in Brevo when the inbound webhook is triggered in your external app. Brevo will link the event to a specific contact based on the identifier included in the webhook (e.g., email address, external ID, etc.). If no matching contact is found, Brevo will automatically create a new contact using the provided identifier. 

  1. Click + Add action.
  2. Select Create event.
  3. Map Brevo event attributes to your payload keys using the variable picker {}, or manually enter a fixed value that will be applied each time the webhook is received. There are three mandatory Brevo event attributes:
    • event_name: Name of the event.
    • identifiers: Contact identifiers used to link the event to the corresponding contact in Brevo (e.g., email, external ID).
    • event_date: Date of the event.
  4. Mark Brevo event attributes as required or optional:
    • Required: If the attribute is missing from the payload, the webhook actions will not be mapped to Brevo.
    • Optional: If the attribute is missing from the payload, the webhook actions will still be mapped to Brevo, but the missing value will be set to "null".
      webhook_inbound_map-event-attribute_en-us.png
  5. (Optional) Click + Add event attribute to map additional Brevo event attributes.
    webhook_inbound_add-event-attribute_en-us.png
  6. (Optional) Click + Add action to configure another action triggered when the webhook is received.
  7. Click Activate webhook when you’re done.
  8. Click Activate webhook again to confirm.

Once activated, the inbound webhook will send data from your external app to Brevo each time it's triggered. You can then use the received data to perform various actions, such as:

  • Segmenting contacts based on event data.
  • Triggering automations using custom events.
  • Personalize emails, SMS, or other messages.

Review an inbound webhook's logs to troubleshoot issues

Each time an inbound webhook is triggered, it sends data from your external app to Brevo, where the webhook actions are processed. You can review an inbound webhook's logs to verify whether the actions were executed successfully and identify any potential issues for troubleshooting.

  1. In Brevo, click your account name and select Plugins & Integrations.
  2. Go to the Webhooks tab.
  3. Select the Inbound webhook option. Here, you'll find an overview of the actions processed in the last 24 hours and their status for each inbound webhook:
    • Mapped: The action was processed successfully.
    • Not mapped: An error occurred, and the action was not processed.
      webhook_inbound_mapped-actions_en-us.png
  4. To understand why an error occurred, click the three dots icon next to the inbound webhook you want to review and select Access logs.
    webhook_inbound_access-logs_en-us.png
  5. Review the inbound webhook's logs:
    webhook_inbound_logs-overview_en-us.gif
    1. Filter by status: View all actions, only mapped actions, or unmapped actions.
    2. Refresh logs: Get the latest data in real time.
    3. View inbound webhook calls: Review the timestamp and processed payload for each webhook call.
    4. Review processed actions and attributes: See which actions Brevo handled after receiving an inbound webhook, and check the data passed for each action. If an error occurs, compare the expected key type with the received value.

Deactivate an inbound webhook

If you need to temporarily stop receiving data from your external app, you can deactivate the inbound webhook.

  1. In Brevo, click your account name and select Plugins & Integrations.
  2. Go to the Webhooks tab.
  3. Select the Inbound webhook option.
  4. Toggle off the inbound webhook you want to deactivate.
    webhook_inbound_deactivate_en-us.png

The inbound webhook is now deactivated (grey toggle). You can reactivate it at any time by toggling it back on.

Delete an inbound webhook

❗️ Important
This action is irreversible. Once deleted, the inbound webhook and its associated callback URL cannot be restored.

If you no longer need an inbound webhook, you can delete it permanently.

  1. In Brevo, click your account name and select Plugins & Integrations.
  2. Go to the Webhooks tab.
  3. Select the Inbound webhook option.
  4. Next to the inbound webhook you want to delete, click the bin icon.
    webhook_inbound_delete_en-us.png
  5. Click Delete webhook to confirm.

The inbound webhook and its associated callback URL have been permanently deleted.

⏭️ What's next?

🤔 Domande?

In caso di domande, non esitare a contattare il team dell’assistenza creando un ticket dal tuo account. Se ancora non hai un account, puoi contattarci qui.

Se stai cercando aiuto per un progetto che prevede l'utilizzo di Brevo, possiamo metterti in contatto con l'agenzia partner di Brevo giusta per te.

💬 Questo articolo ti è stato utile?

Utenti che ritengono sia utile: 0 su 0