> For the complete documentation index, see [llms.txt](https://doc.batch.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.batch.com/guides-and-best-practices/message/universal-channel/how-to-send-a-rcs-message-sinch.md).

# How to send a RCS Message - Sinch

By integrating Batch with Sinch, you can trigger RCS messages as part of your customer engagement strategy, leveraging Batch’s segmentation, automation, and orchestration capabilities.

This integration allows you to:

* Send RCS messages via Sinch from Batch automations
* Trigger messages based on user behavior or events
* Centralize orchestration within Batch while relying on Sinch for delivery

{% hint style="info" %}
This integration uses Sinch’s [Conversation API](https://developers.sinch.com/docs/conversation) to manage and send RCS messages.
{% endhint %}

{% stepper %}
{% step %}

## **Step 1 —** Configure Sinch

In your Sinch dashboard:

1. [Create a new RCS app](https://developers.sinch.com/docs/conversation/getting-started#2-create-an-app) and enable it, or use an existing already enabled app.
2. Retrieve your API credentials:
   * Key ID and Key secret
3. Configure your [RCS agent](https://community.sinch.com/t5/RCS/Getting-Started-with-RCS-using-Conversation-API/ta-p/17844) (sender)

*Make sure your Sinch setup allows sending messages to your target countries and users.*

{% endstep %}

{% step %}

## **Step 2 — Add your Sinch API key into Batch**

Batch needs your Sinch credentials to authenticate each time it sends a trigger request.

#### **In Sinch**

You can find all of your IDs and authentication credentials on the [Sinch Customer Dashboard](https://dashboard.sinch.com/settings/access-keys).

#### **In Batch**

1. Go to **Settings → Channels → Universal**
2. Click **New Credential Headers**
3. Choose a name (e.g., “Sinch”, "RCS",...)
4. Key → `Authorization`
5. Value → Basic  \[key ID]:\[Key secret]→ encoded in base64 (e.g. Basic dFlPVVJfS0VZX0lEOllPVVJfS0VZX1NFQ1JFVA==)
6. Save

<figure><img src="/files/lErXdtlOgJezeo9aR0jG" alt="Add the information in the Universal channel settings"><figcaption><p>Add the information in the Universal channel settings</p></figcaption></figure>

> **Note:**\
> You only need to add the credential once in Batch.
> {% endstep %}

{% step %}

## **Step 3 — Configure the Universal step in Batch**

In this step, you will add the Universal step in your Batch automation and configure it to trigger the RCS messages.

#### **Add the Universal Step**

1. Open the Batch automation where you want to trigger RCS
2. Click the **+** button
3. Select **Universal**

This opens the Universal step configuration screen.

<div data-full-width="false"><figure><img src="/files/qheoMB6JfCL6kHV4bSzW" alt="" width="314"><figcaption><p>Select "Universal"</p></figcaption></figure></div>

***

#### **Configure the Sinch request**

Fill in the fields using the information from Sinch :

**1. Destination URL**

Paste the URL shown in Sinch’s API documentation (example: `https://eu.conversation.api.sinch.com/v1/projects/b45375e2-4c0e-3b65-81b6-b256902c1dc9/messages:send` )

**3. Headers**

* Choose the credential header you created earlier (e.g., "**RCS"**)<br>

**4. JSON Body**

Example payload:

```json
{
  "app_id": "<YOUR_APP_ID>",
  "recipient": {
    "identified_by": {
      "channel_identities": [
        {
          "channel": "RCS",
          "identity": "{{b.phone_number}}"
        }
      ]
    }
  },
  "message": {
    "text_message": {
      "text": "Hello {{ firstname }}, your order has been confirmed."
    }
  },
  "channel_priority_order": ["RCS"]
}
```

<figure><img src="/files/aVkLdS1qhcWP6IMMsBdZ" alt="Configure the step"><figcaption><p>Configure the universal channel step</p></figcaption></figure>
{% endstep %}

{% step %}

## **Step 4 — Test the connection**

Once your Universal Step is configured, you can test it directly from Batch to make sure everything is working properly.

#### **How to test**

1. In the Universal Step, click **Test API**.
2. If your JSON body includes personalization (e.g., `{{b.phone_number}}`), choose a **test profile** so Batch can fill in real data.
3. Click to send the test request.

<figure><img src="/files/J4zCX730dv3UMSv0KsfK" alt="Test your configuration"><figcaption><p>Use the "Test API" button in order to make sure everything is working properly</p></figcaption></figure>

#### **What the test does**

* Batch performs the exact same API call it will make when the automation is live.

#### **What Batch validates**

Batch will display whether the request was **successfully delivered** to Sinch or if something needs fixing (e.g., wrong URL, missing key, invalid JSON).

> **Note:** Batch can only confirm that the trigger was correctly called. It does not have visibility on what happens inside Sinch afterward (e.g., whether the message was sent or failed).
> {% endstep %}

{% step %}

## **Step 5 — Activate your Batch automation**

When the test is successful, you can turn your Batch automation live.

#### **To activate**

1. Review your workflow, including the Universal step.
2. Run your automation

#### **Once live**

* Every time a profile moves through this step in your automation, Batch will send the API request to Sinch.
  {% endstep %}
  {% endstepper %}

#### **Additional Universal steps**

If you want to trigger multiple RCS scenarios (e.g., a follow-up message, or different RCS messages), you can add more Universal Steps within the same Batch automation or in a new one by following these steps again (Step 2 can be skipped).&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc.batch.com/guides-and-best-practices/message/universal-channel/how-to-send-a-rcs-message-sinch.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
