# 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="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FhKTxfebQGrW8Q99lF6hz%2FIntegration_RCS_settings_2603.png?alt=media&#x26;token=757feffb-7c10-452b-89df-c8f2d48c7c26" 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="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FtoiBBMjwYYwbt3hQ7ptc%2Funiversal%20channel%205.png?alt=media&#x26;token=3f7acb77-2e9c-4299-bb0e-77d7a786090a" 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="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FNTxxEkzu6DVTLPe4h15U%2FIntegration_RCS_payload_2603.png?alt=media&#x26;token=f1363cdd-b8e9-45d0-ad57-b50d3deee68d" 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="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FDIzx6AdEV8rUEvFvi419%2FIntegration_RCS_tests_2603.png?alt=media&#x26;token=6e58d682-e3c9-4020-ac92-c95e8cbaa24b" 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;
