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

# Sending a WhatsApp Message

## 💬 Steps to send Whatsapp notifications

### Step 1. Raven Account Setup

If you have not signed up on Raven yet, please
[sign up for free](https://console.ravenapp.dev/get-started).

You can either use the default App (\<your-account-name\_test>) created on sign up
or create a new one by going to the
[Settings tab](https://console.ravenapp.dev/get-started) in the dashboard. To
know more please check our [platform doc on Apps](/platform/apps/apps). Collect
your [credentials](/introduction#credentials) (API Key and App ID) as you will
need them in the API to trigger notifications.

### Step 2. Add a Whatsapp Integration

Head over to [Integrations tab](https://console.ravenapp.dev/get-started) in the
dashboard and select Whatsapp. You will see a list of available Whatsapp
integrations. Once you have added your Integration, you will be able to view it
in the Live tab on the dashboard. You can always add/remove/update any
integration without having to manage any code. If you do not see the Integration
you are looking for, please email us on [support@ravenapp.dev](mailto:support@ravenapp.dev), and we will add it
to the list.

### Step 3. Create an Event

Events define - which notifications to send, what should the content be and how
to send them. You can manage all this directly from the dashboard without having
to write a single line of code. Check our platform doc on
[Events](/platform/events/events) for more details.

We first create an event with Whatsapp enabled. In this event, we will add the
message content and select the integration to send this notification with (the
integration we added in the previous step). Head over to
[Events tab](https://console.ravenapp.dev/get-started) in the dashboard and
click on the Create Event button.

1. Give a unique name to this event. This name will be used to trigger the event
   in the Send Event API.
2. Select Whatsapp as a channel to send notifications. Also, select the
   Integration that you added earlier in Step 2.
3. Create the notification template. You can add dynamic text to the template
   like user name, invoice number, order id etc., with the handlebar notation,
   like this `{{user_name}}`. For more details on templates, languages etc,
   please check our Whatsapp Template doc.

<iframe class="w-full h-96" src="https://www.loom.com/embed/53856a475d4d417db0fd9b202b1aae4c" />

Your event is created! You will be able to see it in the Events list now.

### Step 4. Trigger the Event

Now we just need to test if our setup works. Trigger the event that you created
above. You can either do this from the dashboard itself (Go to Events tab >
Click on View Event Button (Eye) > Dialog opens > Click on Test Event). The
other way is to hit the API directly with cURL or Postman. Below is how the API
will look like:

<CodeGroup>
  ```bash curl theme={null}
  curl 'https://api.ravenapp.dev/v1/apps/{{APP_ID}}/events/send' \
  -H 'Authorization: AuthKey {{API_KEY}}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
      "event": "<YOUR_EVENT_NAME>",
      "user": {
          "mobile": "<MOBILE_NO>"
      },
      "data": {
          "user_name": "John Doe"
      }
  }'
  ```

  ```java java theme={null}
  RavenApiClient client = new RavenApiClient(Authorization.of("AuthKey <YOUR_API_KEY>"));
  try {
      var response = client.send(Send.Request.builder()
                  .appId("<YOUR_APP_ID>")
                  .body(SendEventRequest.builder()
                      .event("YOUR_EVENT_NAME")
                      .data(Map.of("name", "Adam"))
                      .user(User.builder().mobile("<MOBILE_NO>").build())
                      .build())
                  .build());
      
      System.out.println(response.getId());
  } catch (SendException e) {
     System.out.println("Failed to send request" + e.getMessage());
  }
  ```

  ```javascript node theme={null}
  const client = new RavenApi.Client({
    authorization: `AuthKey ${YOUR_API_KEY}`,
  });

  const sendEventResponse = await raven.send({
    appId: "<YOUR_APP_ID>",
    _body: {
      event: "YOUR_EVENT_NAME",
      user: {
        mobile: "<MOBILE_NO>",
      },
      data: {
        name: "John Doe",
        date: "01 December 2020",
      }
    },
  });

  if (sendEventResponse.ok) {
    console.log(`The id of the event is ${sendEventResponse.body.id}`);
  } else {
    console.error("Failed to send event", sendEventResponse.error);
  }
  ```
</CodeGroup>

|                   |                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
| YOUR\_APP\_ID     | App ID of the currently selected App. Go to Settings > App in the dashboard to view.                         |
| YOUR\_API\_KEY    | The Account API Key. Go to Settings > Account in the dashboard to view.                                      |
| YOUR\_EVENT\_NAME | Name of the Event we created above in Step 2.                                                                |
| MOBILE\_NO        | Mobile number of the recipient.                                                                              |
| `data`            | The data object contains "key": "value" pairs of any dynamic text that you would have added in the template. |

Copy the cURL request and simply hit enter in your terminal.

<Check>
  Great! You should have received an whatsapp notification successfully. 👍
</Check>

### Step 5. Verify in Logs

As a final step, we can verify if everything went well and the notification was
sent. Raven provides a single view of all logs across all channels. You can view
the request payload, the response and the status of the notification sent. You
can check our platform doc on [Logs & Metrics](/platform/logs-and-metrics) for
more details.

Head over to [Logs](https://console.ravenapp.dev/get-started) tab in the
dashboard and click on View icon of the first log entry. You will be able to see
the details of the payload and the status of the notification that you sent.

<Check>
  If you were able to successfully receive the notification, you are all set! 👍

  If you are facing any issues, please email us on
  [support@ravenapp.dev](mailto:support@ravenapp.dev)
</Check>
