> For the complete documentation index, see [llms.txt](https://help.smartico.ai/welcome/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.smartico.ai/welcome/products/crm-automation/activities-of-flows/activity-best-channel.md).

# Activity: Best Channel

The **Best Channel** feature in the Campaign Flow Builder introduces intelligent channel selection for user communications. It allows you to choose the most suitable communication channel for each user, based on operator-defined priorities and platform/user eligibility. Supported channels include Email, Popup, Push, Viber, SMS, WhatsApp, Inbox, IVR, Custom IM, Telegram, and RCS.

<div data-with-frame="true"><figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-fb66c7f4e0baa28bb5abeab35cf54b5c2bcba0b3%2Fimage.png?alt=media" alt=""><figcaption><p>BO: Best Channel in Campaign Flow</p></figcaption></figure></div>

***

### How It Works

At the core of this functionality is the **Best Channel activity**, a logic component within the flow builder that evaluates all defined channels and determines which ones are eligible for communication. It does not send messages itself but acts as a decision point that routes users to the appropriate communication activity.

Before a channel is considered eligible, the system performs four key checks:

* **Communication hours**: If the connected message activity may send only within its **Allowed communication hours** and it is now outside those hours, the channel is skipped. If the activity is set to wait for the next allowed time, the channel still counts as available. Popup and Inbox have no hours check.
* **Opt-out status**: Verifies the user is not opted out of the channel.
* **Caps status**: Confirms the user has not exceeded their communication limits.
* **Communication status:** Verifies if the communication can be actually sent - e.g. it's not blocked or broken

{% hint style="info" %}
For **Mail**, the email status must be New or Verified. For SMS, WhatsApp, Viber, Telegram, RCS and Custom IM, the phone status must be New or Verified. Any other status (e.g., Broken, Blocked, Bounced) makes the channel unavailable. Push has no status check, only the opt-out check. Telegram and Custom IM have no opt-out check.
{% endhint %}

***

### Configuration

To use the Best Channel feature, operators must configure two key elements: **priority** and **approach**.

<div data-with-frame="true"><figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2FX9HHHkv0JZOxzhIPG9El%2Fr2-000-crop-2-6fd936ec-66914e.png?alt=media" alt=""><figcaption><p>BO: Best Channel setup in Campaign flow builder</p></figcaption></figure></div>

#### Priority

Priority defines the order in which channels are evaluated for eligibility. Operators can specify a first and second priority by default (**Mail** and **SMS**) and add more levels with **Add channel**, depending on the number of channels they wish to include. At least two channels are required. Each priority level is selected from a dropdown containing all supported channel types.

{% hint style="info" %}
Note: Each channel type can only appear once across all priority levels. Duplicate entries are not allowed.
{% endhint %}

#### Approach

The approach (the **Channel selection type** field) determines how the system sends communications once eligible channels are identified. Operators can choose between two modes:

* **Send to the first available channel** (default): The system sends the communication via the first eligible channel based on the defined priority. Once sent, all other channels are ignored.
* **Send to All Available Channels**: The system sends the communication via every eligible channel. Priority still defines the order in which channels are evaluated and sent.

When you finish setting up the Best Channel activity, you must also link it to the individual channels that were included in the configuration.

<div data-with-frame="true"><figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-6f04380a58416ad5b423cfedaafba0b766c8d81c%2FScreenshot%202025-09-24%20170750.png?alt=media" alt=""><figcaption><p>BO: Best Channel connections in Campaign flow builder</p></figcaption></figure></div>

#### Outgoing connections

The Best Channel step can have these outgoing connections. The picture shows Email and SMS as the configured channels:

<div data-with-frame="true"><figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2FDzmCk5Q7gjXZZv4BdEJK%2F4be3d751ab-best-channel-34c951cd-c48605.png?alt=media" alt="Outgoing connections"><figcaption><p>Outgoing connections of Best Channel in a flow. The numbers match the table below.</p></figcaption></figure></div>

| # | Connection            | When the player goes this way                                                                                                                                                                                                                                                        |
| - | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1 | **Mail**              | Email was available for the player and was chosen (by the selection mode and the order of the channels). Connect the Email step here.                                                                                                                                                |
| 2 | **SMS**               | SMS was available for the player and was chosen. Connect the SMS step here.                                                                                                                                                                                                          |
| 3 | **Something matched** | At least one channel was available and chosen. Use it for the steps that follow any of the channels.                                                                                                                                                                                 |
| 4 | **Nothing matched**   | No channel was available after the checks of availability, opt-out, caps and sending hours, for example the player opted out of every channel or reached the caps on all of them. Use it for a fallback, such as updating a player property or moving the player to another journey. |
| 5 | **Then**              | Right away, when Smartico starts the step. It does not wait for the result, so it also runs when the step fails later.                                                                                                                                                               |

There is one connection for each channel you add to the step. With **Send to the first available channel**, only the first available channel fires; with **Send to All Available Channels**, every available channel fires.

A channel connection must lead directly to the step of that channel; otherwise the channel counts as not available. The caps, opt-out and hours checks use the settings of that connected step.

<details>

<summary>Use case example of Best Channel</summary>

1. **Add Best Channel to your journey flow.**
2. In the configuration, choose **“Send to the first available channel.”**
3. Select your preferred channels (e.g., Telegram, Viber, SMS) and assign priorities—**1 for Telegram**, **2 for Viber**, **3 for SMS**.
4. Save the activity.
5. Connect the Best Channel activity to **three separate communication activities**, each corresponding to one of the selected channels.

* For each, define the specific message asset.
* Set caps, opt-out rules, and communication hours as needed.

When the campaign is triggered and reaches the Best Channel activity:

* It first attempts to send via the **highest-priority channel** (Telegram).
* Let's imagine that the user has **reached the communication cap** for Telegram, so the system automatically tries the **next available channel** (Viber).
* Viber is available for the user, so the message is sent.
* Since the “send to first available channel” option was selected, the system **stops checking further channels** since a successful delivery was made and **SMS (priority 3) is skipped**.

**Note**: If the **“Send to all available channels”** option was selected, the SMS asset would also be attempted, regardless of whether earlier channels succeeded or not, ensuring all eligible messages are sent across the configured paths.

</details>

***

### Frequently Asked Questions

**Is Best Channel an additional paid feature or included in the standard platform?**

Best Channel is a built-in standard flow activity in the Campaign Flow Builder and is available to all operators out of the box with no extra licensing cost.

**Does Best Channel use AI or machine learning to predict channel conversion rates?**

Best Channel currently evaluates delivery eligibility using operator-configured channel priorities combined with real-time checks (opt-out status, [communication caps](https://help.smartico.ai/welcome/products/crm-automation/communication-channels/communication-caps), allowed communication hours, and channel health).

**Do I need to add separate profile check nodes before Best Channel to verify email or phone status?**

No. Best Channel automatically verifies user opt-out flags, contact validity status (such as broken or blocked emails, or broken phone numbers), allowed hours, and frequency caps for each channel before routing.

**What happens if a user is not eligible for any configured channel?**

If none of the configured channels pass validation, the user exits via the **Nothing matched** connection. If no activity is attached to that branch, the flow stops for that user without sending any message.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.smartico.ai/welcome/products/crm-automation/activities-of-flows/activity-best-channel.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
