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

# Send WhatsApp Messages Through Mersal

> Set up Mersal so kwentra sends registration cards, confirmations, folios and payment links from your own WhatsApp number.

kwentra sends the message from your own verified WhatsApp number, instead of opening WhatsApp Web.

### **Business Value**

* Protects your number from being blocked for spam.
* Sends the message from kwentra, with no new tab.
* Gives the guest a proper message with their name, not a bare link.
* Records every send in the reservation history.
* Adds the guest's country code to local numbers.

### **Use Cases**

* A receptionist sends the registration card and the guest gets it from the hotel's number.
* A cashier sends a folio and sees at once whether it went out.
* A front office manager opens a reservation and checks who sent what.

### **How It Works**

| **Where:** Settings → Integrations → WhatsApp (Mersal) |
| - |

Before, **Share via WhatsApp** only opened WhatsApp Web with the link pasted in. A staff member then pressed Send on whatever phone was logged in on that PC. This caused three problems:

* WhatsApp blocks numbers that send many links this way. It treats them as spam.
* The guest got a bare link with no context.
* The hotel had no record of what was sent, to whom, or by whom.

Now kwentra sends the message itself. Four screens use it:

* Registration Card
* Booking Confirmation (individual and group)
* Folio
* Payment Link

#### **What Mersal Is**

**Mersal is an official WhatsApp Business provider.** Meta does not let a hotel system send WhatsApp messages directly. Messages go through an approved provider.

* The hotel has an account with Mersal. Mersal holds the hotel's verified WhatsApp number.
* kwentra hands the message to Mersal, and Mersal sends it.
* **The hotel contracts with Mersal directly** and pays Mersal for the messages. kwentra does not bill or resell messages.
* **Messages must use approved templates.** WhatsApp lets a business start a conversation only with a template that Meta approved. Free typing is not possible. This is a Meta rule, not a kwentra limit.

### **Part 1: Set Up Mersal**

Do these steps in Mersal before you set anything up in kwentra.

#### **1. Get a Mersal Account**

Contact Mersal at [chat.mersal.ai](https://chat.mersal.ai). Ask them to set up the account with the number guests should see.

* Use a number the hotel controls and is happy to publish.
* Guests will reply to this number.

#### **2. Create the Message Templates**

You write templates **in the Mersal dashboard**, not in kwentra. Meta reviews each one, usually within a short while. Only approved templates can be used.

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/mersal-message-templates.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=9728c9bfbef460f9c9aa00f9149e8cf3" alt="Message templates list in the Mersal dashboard" width="1680" height="957" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/mersal-message-templates.png" />

* Each template is written per language.
* The same template in English and in Arabic is two entries, with the same name and different languages. kwentra can use both.
* A template has fixed wording plus numbered blanks: `{{1}}`, `{{2}}`, `{{3}}`.
* kwentra fills the blanks when it sends. For example: the guest name, the hotel name and the document link.

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/mersal-create-template.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=d7aa01f0048483c3917c53ab46a08d0d" alt="Creating a new template in the Mersal dashboard" width="1131" height="922" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/mersal-create-template.png" />

**Rules that keep a template usable in kwentra:**

| Rule | Why |
| - | - |
| Put the document link in the **message body**, in exactly one blank | A link button's address is fixed when Meta approves the template. A full kwentra link cannot go there. |
| **No image, video or document header** | kwentra sends text only. These templates show as not supported. |
| **No carousel templates** | Same reason. |
| A plain text header is fine, even with its own blanks | Header blanks are numbered separately. They also start at `{{1}}`. |
| Quick-reply buttons are fine | They have nothing for kwentra to fill. |
| Use the **Utility** category for documents | Marketing templates cost more, and guests mute them more easily. |

**Two Meta rules cause most rejections:**

* A message cannot **start or end** with a blank.
* A message cannot be mostly blanks. If Meta says the message "has too many variables for its length", add more fixed wording around them.

#### **3. Example Templates**

One template per document works well. Keep the blanks in this order. It is the order you will map in kwentra.

**Registration card:** `{{1}}` guest name, `{{2}}` hotel name, `{{3}}` the link.

```text theme={null}
Hello {{1}}, please review and sign your registration card for {{2}}: {{3}}
```

**Booking confirmation:**

```text theme={null}
Dear {{1}}, your booking at {{2}} is confirmed. Reservation {{3}}, arriving {{4}}. Full details: {{5}}
```

**Folio:**

```text theme={null}
Dear {{1}}, your folio from {{2}} for reservation {{3}} is ready: {{4}}
```

**Payment link:**

```text theme={null}
Dear {{1}}, you can pay {{2}} for your stay at {{3}} here: {{4}}
```

| **Note:** One generic template can serve several documents. It sends only one of them at a time: the document it is linked to in kwentra. |
| - |

#### **4. Create the API Key**

In the Mersal dashboard, go to **Settings › API** and create a key. It starts with `mrsl_api_`.

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/mersal-account-settings.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=a5034c8e0ab916947e6fabd344abd746" alt="Settings in the Mersal dashboard" width="1680" height="957" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/mersal-account-settings.png" />

| **Note:** Treat the key like a password. Anyone with it can send WhatsApp messages from the hotel's number. Send it privately to the person doing the kwentra setup, never in a shared chat or a ticket. |
| - |

### **Part 2: Set Up kwentra**

| **Where:** Settings → Integrations → WhatsApp (Mersal) |
| - |

#### **Step 1: Connect the Account**

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-not-connected.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=5179cddb4d2a7d93b8ce521d26028cb7" alt="WhatsApp (Mersal) screen before a key is saved" width="2400" height="1085" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-not-connected.png" />

| **Field** | What it is |
| - | - |
| **Mersal API key** | Your key from Mersal. It is hidden once saved and never shown again. |
| **Check and save** | Checks the key with Mersal, then saves it. |
| **Replace key** | Changes the key. The saved key keeps working until the new one is checked. |
| **Remove** | Deletes the key. You confirm first. |
| **Send through Mersal** | Turns sending through Mersal on. |

1. Paste the key into **Mersal API key**.
2. Click **Check and save**.
3. You see the Mersal account's name, email and status, and when it was last checked.

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-connected.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=c0452c7e7347b9b466265b7daf9e19d4" alt="Connected Mersal account with Replace key, Remove and Send through Mersal" width="2400" height="1086" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-connected.png" />

A wrong key shows Mersal's own message, **Invalid or revoked API key**. Nothing is saved.

#### **Step 2: Check the Templates Loaded**

Once the key is saved, your **approved** templates load by themselves.

* There is one row per template and language.
* The list shows how many templates loaded, and when.
* Each row shows the name, the language, the category, the link it sends and whether it is ready.
* Filter by **All**, **Set up** or **Not set up**, or search by name.
* The list keeps Mersal's order. The most recently updated template comes first.

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-templates-list.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=602f8256b5f1a2e9ecffdeda34c25085" alt="Templates list with filters and Reload from Mersal" width="2400" height="1086" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-templates-list.png" />

Click **Reload from Mersal** after you add or change a template in Mersal.

* Large accounts can take up to a minute.
* The current list stays in use until the reload finishes.

#### **Step 3: Set Up Each Template**

Open a template row and set two things:

1. **Link this template sends.** Pick Registration Card, Booking Confirmation, Folio or Payment Link.
2. **Fill the blanks.** For each blank, pick what kwentra puts there.

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-template-folio-mapping.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=a4bfc4381310c4e38e2d5c02da017697" alt="A Folio template with its blanks filled and the preview" width="2400" height="1086" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-template-folio-mapping.png" />

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-template-value-list.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=797985250cc4fdf95f1e75c2ebe69637" alt="The list of values you can pick for a blank" width="2400" height="1086" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-template-value-list.png" />

<img src="https://mintcdn.com/kwentra/yPj4seYh4AwR4vWk/images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-template-registration-card-mapping.png?fit=max&auto=format&n=yPj4seYh4AwR4vWk&q=85&s=cfb5d09d79a8614b463b0b786d7693d0" alt="A Booking Confirmation template with four blanks filled" width="2400" height="1086" data-path="images/compliance-integrations/send-whatsapp-messages-through-mersal/kwentra-template-registration-card-mapping.png" />

The values you can pick depend on the link:

| **Link** | Values you can pick |
| - | - |
| **Registration Card** | Guest name, Hotel name, Reservation number, Room number |
| **Booking Confirmation** | Guest name, Hotel name, Reservation number, Arrival date, Departure date |
| **Folio** | Guest name, Hotel name, Reservation number, Folio number, Balance due |
| **Payment Link** | Guest name, Hotel name, Reservation number, Amount due |

The document link itself is also on every list.

**Where the document link can go:**

* In a **message** blank only.
* In exactly one blank.
* Never in a header blank or a button blank.

**Preview** shows the template as Mersal returns it: header, message, footer and buttons. Each blank is labelled with the value you picked. You see the message the guest will read.

**What each value means:**

| **Value** | What it fills in |
| - | - |
| **Guest name** | The name on the document. For group confirmations, paymaster folios and AR folios, it is the group, paymaster or company name. |
| **Hotel name** | The property name from Property Information. |
| **Balance due** | The folio balance when you send, in the folio's currency. Formatted as on the folio. |
| **Amount due** | The payment link's amount and currency. |
| **Arrival date** / **Departure date** | In the hotel's date format. |

A template is ready as soon as its link is picked and every blank is filled. There is no separate on/off step. Until then, the row says what is missing, for example:

* *choose a link*
* *1 blank is empty*
* *the link is in 2 blanks. Keep it in exactly one*

| **Note:** A template with an image, video or document header shows **Image/video/document header · not supported**. It cannot be set up. |
| - |

#### **Step 4: Turn Sending On**

Switch **Send through Mersal** on. While it is off, every WhatsApp button works as before and opens WhatsApp Web.

### **Part 3: Send a Document**

1. Open the document as usual. For example **Print / Email → RC** on a reservation, the confirmation, the folio, or the payment link window.
2. Click **Share via WhatsApp**.
3. The pop-up shows the guest's mobile, partly hidden, for example `+20******44`.
4. When more than one set-up template sends this document, the pop-up shows a **Message template** choice. Each option shows the name and language, for example `booking_confirmation · Arabic`. The first one is picked for you.
5. Click **Save & Send**. The message goes out from the hotel's WhatsApp number. No new tab opens.

* With only one set-up template, no choice appears. That template is used.
* The same template name in another language is a separate option. Pick the guest's language.
* If you changed the number, it is saved to the guest profile.

| **Result** | What you see |
| - | - |
| Sent | `WhatsApp message sent to {guest number}.` |
| Not sent | `WhatsApp message not sent: {Mersal's reason}` |

When it fails, the pop-up stays open and shows the reason. You can correct the number or pick another template.

#### **Phone Numbers**

kwentra always sends the number in international form.

* A number that starts with `+` or `00` already has its country code. It is sent exactly as typed.
* A number that starts with `0` is local. It gets the guest's country code.
* The guest's country comes from the guest profile. If the profile has none, it comes from the reservation.
* Your hotel's country (Property Information) is used only when neither is set.
* Any other number is treated as international. It is sent as typed.
* The pop-up accepts digits with an optional `+` at the start. Spaces and dashes are not accepted.

| **You type** | **Sent to** |
| - | - |
| `+201003214578` | `+201003214578` (as typed) |
| `00201003214578` | `00201003214578` (as typed) |
| `01003214578` (guest from Egypt) | `201003214578` |
| `201003214578` | `201003214578` |

| **Note:** Type the country code every time. The country comes from the guest, not the hotel. If the guest's nationality does not match the number, a local number goes to the wrong country. |
| - |

#### **Record of Sends**

Every send is recorded in the reservation's **History**. Failed sends are recorded too.

Each entry shows:

* Who sent it, and when.
* The document, the template and its language.
* The number.
* Mersal's message ID, or the error.

### **When WhatsApp Web Is Used Instead**

The button works exactly as before, opening WhatsApp Web with the link, when:

* No Mersal key is saved.
* **Send through Mersal** is off.
* The document has no set-up template.

### **Troubleshooting**

| **What you see** | **What it means** |
| - | - |
| **Invalid or revoked API key** | The key is wrong, or Mersal revoked it. Create a new one in Mersal › Settings › API. |
| A template is missing from the list | It is not approved in Mersal yet, or it was added after the last load. Click **Reload from Mersal**. |
| **Image/video/document header · not supported** | The template has a media header. Create one with a text header or none. |
| **Not set up · choose a link** | The template is not linked to a document yet. |
| **Put the … link in one message blank** | No blank holds the document link. |
| The message was refused | The pop-up shows Mersal's reason. Common causes: the template is no longer approved, the guest blocked the number, or the number is not on WhatsApp. |

### **Good to Know**

* **Who can send:** anyone who can already open the document. Setting up the integration needs a settings permission.
* **Languages:** if a template exists in Arabic and English, both show in the pop-up. Staff pick the one that suits the guest.
* **Not included yet:** free-typed messages, delivery or read receipts, and sending from the guest profile. WhatsApp allows free typing only within 24 hours of the guest writing in.
* **Volume:** Mersal allows 60 messages a minute and 20,000 a day per key. This is far above normal front desk use.

### **Related Articles**

The three document screens keep their own articles:

* [Share Registration Card via WhatsApp](/front-office/reservations/individual-reservations/share-registration-card-via-whatsapp)
* [Share Confirmation via WhatsApp](/front-office/reservations/individual-reservations/share-confirmation-via-whatsapp)
* [Share Folio via WhatsApp](/front-office/reservations/individual-reservations/share-folio-via-whatsapp)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.