> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Notification URLs

> Send events from your campaigns to external systems in real time.

Notification URLs let you send WhatsApp events to external systems in real time.

From `Settings` you can create a URL associated with a specific bot.\
This gives you independent control based on the flow or use case.

## What are they used for?

They allow your system to automatically receive information when an event occurs in a campaign or message.

For example:

* Confirm that a message was read
* Detect a send failure
* Record when a user replies

All without manual intervention.

## How to configure a notification URL

When creating a new URL you will need to:

1. Select the type of event you want to receive:
   * Read
   * Failed
   * Reply
   * All (includes all events)
2. Enter the destination URL (endpoint).
3. Define the authentication type the endpoint will use.

Each configuration is done per bot, which allows you to customize the integration according to the logic of each flow.

<Warning>
  To receive **Read** events, the WhatsApp user must have **read receipts** (blue checkmarks) enabled on their device. If the user has this option disabled, the platform will not receive the read notification and, therefore, the event will not be sent to your notification URL.
</Warning>

## Benefits

**Greater flexibility**\
You can define a URL for a specific event or group all of them into one.

**More security**\
Configure the authentication method that best suits your technical environment.

**Simpler administration**\
Fewer duplicate configurations and better organization.

**Better operational experience**\
Clear interface to manage notifications in an organized and efficient way.

<Note>
  Notification URLs are key when you need to integrate Jelou with a CRM, internal systems, or real-time analytics tools.
</Note>

## Event examples

Below are examples of the payload you will receive at your notification URL depending on the event type:

<AccordionGroup>
  <Accordion title="Failed">
    Sent when the message could not be delivered.

    ```json theme={null}
    {
      "id": "c75170d3-917d-48a4-8b15-*********",
      "status": "FAILED",
      "error": "buttons: Button at index 0 of type Url requires a parameter",
      "timestamp": "1777325700",
      "campaignId": "69efd6834d469ea6*********",
      "destination": "5939800000000",
      "isFinalEvent": true,
      "template": "autentica_01"
    }
    ```
  </Accordion>

  <Accordion title="Delivered to channel">
    Sent when the message was delivered to the channel (WhatsApp).

    ```json theme={null}
    {
      "id": "f777ebe8-41f5-4ffd-9c86-*********",
      "status": "DELIVERED_CHANNEL",
      "timestamp": "1777326454",
      "campaignId": "69efd9747eba1414ecbc66d2",
      "destination": "5939800000000",
      "isFinalEvent": true,
      "template": "template_name"
    }
    ```
  </Accordion>

  <Accordion title="Delivered to user">
    Sent when the message was delivered to the user's device.

    ```json theme={null}
    {
      "id": "78518db4-4f5d-451f-a4ad-*********",
      "status": "DELIVERED_USER",
      "timestamp": "1777326039",
      "campaignId": "69efd7d4b5095a8*********",
      "destination": "5939800000000",
      "isFinalEvent": true,
      "template": "plantilla_lto_kevin_ai"
    }
    ```
  </Accordion>

  <Accordion title="Read">
    Sent when the user read the message.

    ```json theme={null}
    {
      "id": "c3eca84b-3fcf-4038-80e7-*********",
      "status": "READ",
      "timestamp": "1777326047",
      "campaignId": "69efd5bfc2da2*********",
      "destination": "5939800000000",
      "isFinalEvent": true,
      "template": "template_name"
    }
    ```

    <Warning>
      This event is only received if the user has **read receipts** (blue checkmarks) enabled in WhatsApp.
    </Warning>
  </Accordion>

  <Accordion title="Reply">
    Sent when the user replies to the message.

    ```json theme={null}
    {
      "id": "f777ebe8-41f5-4ffd-9c86-*********",
      "campaignId": "69efd9747eba141*********",
      "reply": "button_name",
      "template": "template_name",
      "timestamp": "1777326462",
      "status": "REPLY",
      "isFinalEvent": true,
      "destination": "5939800000000"
    }
    ```
  </Accordion>
</AccordionGroup>
