# Outbound Message Guide

{{<tags >}}

Outbound Messages are those sent directly to users without any prior interaction on your WhatsApp Business Account (WABA) line. According to META's policies, an approved **Outbound Message** is the only permitted method for initiating contact with customers. To send these messages, the following two requirements must be met:

1. **User Opt-In**: The user must grant explicit permission to your business, allowing you to contact them via Whatsapp for business purposes. This is known as an opt-in. For more guidance on obtaining opt-ins, visit this [link](https://developers.facebook.com/docs/whatsapp/overview/getting-opt-in).
2. **Message Approval**: The Outbound Message you will use to initiate interaction with users must be approved by Whatsapp (META), to ensure compliance with [requirements and guidelines](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines) and prevent user spam, fraud and other policy violations.

## Prerequisites

To flawlessly perform all the steps of this guide, the following prerequisites must be met:

1. **Truora Account**: If you don't already have one, learn how to {{< newtab href="/customer-engagement/account/" >}}Set up a Truora account{{< /newtab >}}.
2. **Activated Whatsapp line**: Follow this {{< newtab href="/guides/waba_acquisition/" >}}guide{{< /newtab >}} to acquire and activate WhatsApp lines in **Truora**.
3. **A Created Whatsapp Flow**: Have at least one flow already built. Learn how to {{< newtab href="/guides/flows" >}}Create a WhatsApp Flow{{< /newtab >}} in **Truora**.

## Create an Outbound Message

To create and send an **Outbound Message** for approval, follow these steps. Please note that each message can only be sent for approval once:

1. Log in to the [Truora dashboard](https://connect.truora.com/) and click **Open** in the **Customer Engagement** section.
2. Click on **Outbound Messages** and then on **Create new message**:

{{<img width="100%" src="/images/illustrations/outbound/create_outbound.gif" alt="create_outbound" class="border border-slate-300 rounded-md">}}

3. Select the Message Category and Line

This step is very important because the message content must correspond to the chosen category. Meta has very specific rules for each message category, and although some messages may be recategorized based on their content, misuse of categories can block the WABA line.

- **Marketing**: Use this category to send promotional offers, product announcements, and other marketing content to increase awareness and engagement.
- **Utility**: Use this category for messages related to a specific transaction or subscription that the user has already agreed to. These messages will typically be used to confirm, suspend, or change the details of that transaction or subscription.
- **Authentication`** Use this category to authenticate users, which can be used at multiple steps in the login process.

3.1 Marketing

Outbound marketing messages are proactive, business-initiated communications sent to users on WhatsApp rather than waiting for customers to initiate contact.

Currently we offer the following Categories

- `Custom`: A Custom message is designed for personalized offers.
- `Media Carousel`: A Media Carousel message is an interactive, horizontal-scrolling message designed specifically for marketing engagement. 

{{<img width="100%" src="/images/illustrations/outbound/outbound_marketing.png" alt="Outbound Marketing" class="border border-slate-300 rounded-md">}}

3.2 Utility

Outbound Utility Messages are a specific category of business-initiated, template-based messages sent to customers to provide essential, time-sensitive information regarding a transaction or account, rather than promotional content.

Currently we offer the following Categories

- `Custom`: A custom message designed for notifications, updates.

{{<img width="100%" src="/images/illustrations/outbound/outbound_utility.png" alt="Outbound Utility" class="border border-slate-300 rounded-md">}}

3.3 Authentication

Outbound Authentication Messages are specialized, pre-approved message templates used by businesses on the WhatsApp Business Platform to verify user identities

Currently we offer the following Categories

- `One-time Passcode`: A One-time Passcode message is astrictly formatted message for sending time-sensitive one-time passwords

{{<img width="100%" src="/images/illustrations/outbound/outbound_authentication.png" alt="Outbound Authentication" class="border border-slate-300 rounded-md">}}

4. Fill the message templates

4.1 Custom

{{<img width="100%" src="/images/illustrations/outbound/custom.png" alt="Custom" class="border border-slate-300 rounded-md">}}

- **Outbound name**: Enter a name for the Outbound Message.
- **language**: Select ``English``, ``Spanish``, or ``Portuguese``, for the language of the message.
- **Header type**: Choose the type of content for the **Outbound Message**, such as ``Text``, ``Video``, ``Image``, or ``Document``.
  -  If the Header is ``Text`` it is posible to includes variables, insert them using **Add Variale** and provide a name and an example of the variable. 
{{<img width="100%" src="/images/illustrations/outbound/variable_header.gif" alt="Variable Header" class="border border-slate-300 rounded-md">}}
- **Text**: Enter the message to be sent to the user, such as: *"Hello, are you ready to start the process?"*.
  - If the message includes variables, insert them using **Insert customizable word** and provide a name and an example of the variable. Please keep in mind that the message should not be finished with a variable.
{{<img width="100%" src="/images/illustrations/outbound/variable_text.gif" alt="Variable Text" class="border border-slate-300 rounded-md">}}
- **Footer** `optional`: Enter the footer text.It will show at the end of the outbound message
- **Buttons** `optional` (max 10): Add the buttonsthat the message requires
{{<img width="100%" src="/images/illustrations/outbound/custom_buttons.png" alt="Custom Buttons" class="border border-slate-300 rounded-md">}}
  - `Quick reply buttons`: This buttons are used for sent an specif responce from the client. This kind of buttons are required to start workflows.
  - `Call-to-action`: Buttons to start an specific action as: 
    - ``Go to website``(max 2): When the user taps this button, the specified URL will be opened. It is posible to include one variable into the url
    - ``Call phone number``(max 1): When the user taps this button, the specified phone number will be dialed.
    - ``Copy offer code`` (max 1): When the user taps this button, the specified text will be copied into clipboard.(only applies for marketing category)

4.2 Media Carousel

{{<img width="100%" src="/images/illustrations/outbound/media_carousel.png" alt="Media Carousel" class="border border-slate-300 rounded-md">}}

- **Outbound name**: Enter a name for the Outbound Message.
- **language**: Select ``English``, ``Spanish``, or ``Portuguese``, for the language of the message.
- **Text**: Enter the message to be sent to the user, such as: *"Hello, are you ready to start the process?"*.
  - If the message includes variables, insert them using **Insert customizable word** and provide a name and an example of the variable. Please keep in mind that the message should not be finished with a variable.
{{<img width="100%" src="/images/illustrations/outbound/media_variable_text.gif" alt="Variable Text" class="border border-slate-300 rounded-md">}}
- **Cards**: Add the cards for the carousel message (min 2, max 10)
  - **Media Type**: Choose the type of content for the **Card**, such as ``image``, ``Video``/
  - **Text**: Enter the card message, such as: *"Today only: Buy 3, Get 2"*. The test is option but if is defined on card 1 it becomes required for the other cards to keep consistency.
    - If the message includes variables, insert them using **Insert customizable word** and provide a name and an example of the variable. Please keep in mind that the message should not be finished with a variable. Those variables could be share between cards`
  - **Buttons** `optional` (max 2): Add the buttonsthat the message requires, the type of buttons is defined on card 1, other cards have the same kind of buttons to keep consistency
  {{<img width="100%" src="/images/illustrations/outbound/custom_buttons.png" alt="Custom Buttons" class="border border-slate-300 rounded-md">}}
    - `Quick reply buttons`: This buttons are used for sent an specif responce from the client. This kind of buttons are required to start workflows.
    - `Call-to-action`: Buttons to start an specific action as: 
      - ``Go to website``: When the user taps this button, the specified URL will be opened. It is posible to include one variable into the url
      - ``Call phone number``(max 1): When the user taps this button, the specified phone number will be dialed.

{{<img width="100%" src="/images/illustrations/outbound/otp.png" alt="One-Time Passcode" class="border border-slate-300 rounded-md">}}

- **Outbound name**: Enter a name for the Outbound Message.
- **language**: Select ``English``, ``Spanish``, or ``Portuguese``, for the language of the message.
- **Code expiration (minutes)** `Optional`: Enter ther the number of minutes that this code will de valid.

- **Validity period**: You can set a validity period in which your message must be delivered before it expires. By default this periodis 15 minutes but you can change this time to a shorter one.

{{<img width="100%" src="/images/illustrations/outbound/validity_period.gif" alt="Validity Period" class="border border-slate-300 rounded-md">}}

5. Once you have completed the message, click on **Submit for approval**. Please note that the message must be approved by the **Facebook** (Meta) team and this process can take anywhere from 5 minutes up to 5 business days.

## Get the Outbound ID (Optional)

Once the message is approved by **Facebook** (Meta), you might need to obtain the **Outbound ID** of your message for other purposes within Truora, such as including your message as part of the OTP verification in a **Phone Validation** process. To obtain it, follow these steps:

  - Click on **Outbound Messages** in the sidebar.
  - Locate the desired **Outbound name** in the list of outbound messages.
  - Click on the **copy icon** below the Outbound name to copy its **Outbound ID**.

{{<img width="100%" src="/images/illustrations/outbound/copy_outbound_id.gif" alt="copy_outbound_id" class="border border-slate-400 rounded-md">}}

## Send Outbound messages

Once the message is approved, click on **Outbound Messages** and select the approved message. You can either choose **Single message** or **Batch sending**. 

###  Single message

To send the **Outbound Message** as a single message:

1. Select **Single message**.
2. Select the country and enter the phone number.
3. Fill in any required variables for the outbound message.
4. Enter or paste the **flow ID** if the message will start a flow.
5. Click **Send Message** to send the message.

{{<img width="100%" src="/images/illustrations/outbound/send_outbound.gif" alt="send_single_outbound" class="border border-slate-400 rounded-md">}}

### Testing your Outbound message

Once you reach the **Test Conversation** option in the flow creation steps, you have the opportunity to verify the message or select another approved outbound message. Then, to send your message, you can either choose **Single message** or **Batch sending**. For **Batch sending** you will be asked to upload an Excel (.xlsx) file as explained in the previous step [Send Outbound messages.](#send-outbound-messages).

To test sending your outbound message as **Single message**, after [Creating WhatsApp flow](/guides/flows):

1. **Save and publish** your flow.
2. Click on **Test Conversation**.
3. Click on **You Send it** and **Continue**.
4. Select the **Message that will start the conversation** and **Continue**. This is your approved message.
5. Select the country and fill the recipient phone number, then click **Next**.
6. Review the message and recipient details, then click **Send**.

{{<img width="100%" src="/images/illustrations/how_use_wa_kyc/outbound_send.gif" alt="outbound_send" class="border border-slate-400 rounded-md">}}