> For the complete documentation index, see [llms.txt](https://docs-en.dydu.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-en.dydu.ai/integration/callbot-campaigns.md).

# Callbot Campaigns

The **outbound call campaign** module of the **BMS** allows you to **automate** and **manage** outbound **telephone calls** using a **callbot** capable of interacting with recipients according to **customized scenarios**. This **feature** offers a wide range of possibilities to **organize**, **monitor**, and **analyze** campaigns, from **campaign creation** to the **analysis of results**.

The documentation below details all the **functionalities** related to **outbound call campaigns**: **creation**, **configuration**, **contact management**, **performance tracking**, and **report analysis**.

## **Campaign Setup**

### **Creating a New Campaign**

To **create** a **Callbot outbound call campaign**, follow the steps below:

1. Go to the **Integrations** menu > **Callbot Campaigns**.

<figure><img src="/files/ji3xnzeWaFOG0Ox4GuAf" alt=""><figcaption></figcaption></figure>

2. Click on the **My Campaigns** modal to start the **creation** of a new **campaign**.
3. A **creation window** will appear: enter the **desired campaign name**, then click **Create**.

<figure><img src="/files/LoXnheiPDb86mODXRVGY" alt="" width="563"><figcaption></figcaption></figure>

4. The **campaign settings configuration** page opens automatically, allowing you to continue **customizing** your **campaign**.

<figure><img src="/files/NMI2nRJEIccrX2pGgTQJ" alt="" width="563"><figcaption></figcaption></figure>

## **Overview of the Different Components**

### **Parameters**

#### **General Campaign Settings**

The **General Campaign Settings** section allows you to configure the main **operational settings** of your **Callbot outbound call campaign**.

<figure><img src="/files/46pCRah7yt1aemwDxFXE" alt="" width="375"><figcaption></figcaption></figure>

The different **settings** are:

* **Enable / Disable the Campaign**
  * Allows you to make the **campaign** **active** or **inactive**.

<figure><img src="/files/WOw0d8VArQcGb8eakDSv" alt="" width="485"><figcaption></figcaption></figure>

{% hint style="info" %}
To **activate** the campaign, you must have configured at least one **call slot**, selected a **Callbot instance**, and defined at least one **success rule**.
{% endhint %}

* **Select a Callbot Instance**
  * Chooses the **Callbot instance** to use for the **campaign**.\
    The displayed **instances** correspond to those configured in the **Channels** menu of the **BMS**.

<figure><img src="/files/oIqTWq73FPBsqOIXcypH" alt="" width="541"><figcaption></figcaption></figure>

{% hint style="info" %}
If no **Callbot instance** is selected, it will not be possible to modify the **campaign-related settings** (**number of simultaneous calls**, **maximum calls per contact**, **minimum time between calls**, **voicemail management**).

Make sure to select a **Callbot instance** to access all **configuration options**.
{% endhint %}

* **Call Options:**
  * **Number of simultaneous calls allowed**: defines how many **calls** can be made at the same time by the **Callbot** (from **1 to 50**).
  * **Maximum calls per contact**: specifies the maximum number of **call attempts** for each **contact** (from **1 to 4**).
  * **Minimum time between two calls for the same contact**: sets the minimal delay before **calling back** a contact after a failed attempt (from **0 to 24 hours**).

<figure><img src="/files/HVSebZvqKZmOnSWB1sJ8" alt="" width="556"><figcaption></figcaption></figure>

* **Voicemail Management**
  * Enables or disables the ability to **leave a message** on **voicemail**.\
    If this option is enabled, you can configure a **specific knowledge** that the **Callbot** will use to deliver the **voice message**.\
    It is important to validate the selected **knowledge** by clicking the **validation checkmark**. To delete the associated **knowledge**, simply click the **cross icon**.

<figure><img src="/files/8CPZfRfjvXOgwhsnm6Ax" alt="" width="534"><figcaption></figcaption></figure>

#### **Mapping Between Contact File and Dydu Variable**

The **Mapping Between Contact File and Dydu Variable** section allows you to **link** the **columns** in your **contact file** to the different **variables** used by the **Callbot** during the **campaign**.

{% hint style="info" %}
Only files in **EXCEL** format (**.xls**, **.xlsx**) or **CSV** format (**.csv**) are accepted for **contact import**.
{% endhint %}

<figure><img src="/files/3MTFSWlafFYAZvHOysw3" alt="" width="563"><figcaption></figcaption></figure>

It is mandatory to define the **mapping** for the **Num\_Tel** variable, which must point to the column in the file containing the **contact’s phone number** to call. This variable cannot be deleted, only modified.

{% hint style="info" %}
Without this **mapping**, it will be impossible to **add** a **contact file** to your **configuration**.
{% endhint %}

You can add as many **mappings** as necessary to enrich the **information** provided to the **Callbot**.

However, if there is an **error** in a column name (**non-existent** column or **misspelled**), no error will be displayed — the data will simply not be considered during the **contact import**.

To manage the **mappings** in your **configuration**, proceed as follows:

1. Click the **“Add Mapping”** button.

<figure><img src="/files/n73Pptuj7IzQegzuHiM8" alt="" width="224"><figcaption></figcaption></figure>

2. Enter the **conversation variable name** and the **column name** in the file — both fields are mandatory.

<figure><img src="/files/ZKEyqgnnOuan8QB1qE3D" alt="" width="542"><figcaption></figcaption></figure>

3. Click the **checkmark** to validate the addition, or the **cross** to cancel it.

<figure><img src="/files/VbIA1oO6rwXKp1CuSdFe" alt="" width="375"><figcaption></figcaption></figure>

4. To **edit** an existing mapping, click the **pencil icon** and modify the desired fields.
5. To **delete** a mapping, click the **trash icon** corresponding to the line you wish to remove.

#### **Call Schedule**

The **management** of **date inclusions** and **exclusions** allows you to precisely define the periods during which the **outbound call campaign** can be **active**, as well as those during which **calls** must **not** be made. Thanks to this **feature**, it is possible to **finely plan** the **Callbot’s** activity by specifying **authorized** or **prohibited time slots** according to the **campaign’s needs** (for example, excluding **public holidays** or targeting only certain **time ranges**).

<figure><img src="/files/siTIIjNrFpDhRSzU96aI" alt=""><figcaption></figcaption></figure>

To define an **inclusion** or **exclusion** in your **campaign**, follow these steps:

1. Click the **“Add Inclusion”** or **“Add Exclusion”** button. The process is identical for both options.

<figure><img src="/files/51Q9bnntm8ObgpaasHKM" alt="" width="375"><figcaption></figcaption></figure>

2. Choose whether you want to **include/exclude** a **weekday** or a **specific date**.

> * For a **weekday**: select the desired day from the available options; **Sunday** is excluded by default to comply with regulations.
>
> <p align="center"><img src="/files/EHFgQdU0bUdf1asllIXS" alt=""></p>
>
> * For a **specific date**: select the desired date directly from the **calendar**.
>
> <p align="center"><img src="/files/wvyAbuJADgxD7ar53xKZ" alt=""></p>

3. Specify the **time range** to which this inclusion or exclusion should apply.

<figure><img src="/files/fk1DClyuIghTZuE9E2La" alt="" width="211"><figcaption></figcaption></figure>

4. Click **Save** to validate the addition, or **Delete this rule** to cancel.

<figure><img src="/files/7b0ETEYzbsgaiypn7rtI" alt="" width="375"><figcaption></figcaption></figure>

Added **inclusions** and **exclusions** are displayed in a **summary table**. This table shows, for each row, the relevant **weekday** or **specific date**, the **rule type** (**inclusion** or **exclusion**) as a **tag**, and the associated **time range**.

To **delete** a rule, simply click the **trash icon** to the right of the corresponding row.

<figure><img src="/files/HpIEZZoORyKUVfxJ7uwG" alt="" width="374"><figcaption></figcaption></figure>

#### **Success Rules**

**Success rules** define the **conditions** that must be met for a **conversation** within an **outbound call campaign** to be considered **successful**. These rules make it possible to **precisely customize** the **success criteria** according to the **objectives** set for each **campaign**.

<figure><img src="/files/EPtY3hqX5KyinRBqAhVG" alt=""><figcaption></figcaption></figure>

To manage **success rules** in your **campaign**, proceed as follows:

1. Click the **“Add Rule”** button.
2. Enter the **condition name** (for example: **callbot\_call\_duration\_seconds**).
3. Select a **comparison operator** from the provided list, then enter the desired **value**.
4. Click the **checkmark** to validate the addition, or the **cross** to cancel it.
5. To **edit** an existing rule, click the **pencil icon**. To **delete** a rule, click the corresponding **trash icon**.

<figure><img src="/files/8Iv8a4kkqJkFX8FCR29v" alt=""><figcaption></figcaption></figure>

### **Contacts**

#### **Bulk Contact Import via File**

**Bulk import** allows you to add multiple **contacts** to a **campaign** in a single operation, using an **external file**.\
Only **`.csv`**, **`.xls`**, and **`.xlsx`** formats are accepted.

Without a defined **mapping** for the **Num\_Tel** column in the **mapping table**, it will be impossible to **import** a file. This column must always point to the **phone number** of each **contact**.

Other variables defined in the **mapping table** are not mandatory: if they are missing from the imported file, they will simply be **ignored** during the **import**.

<figure><img src="/files/0kIbK0Xt8kyxsAhifzSS" alt=""><figcaption></figcaption></figure>

To **import** the contact file:

* Click the **“Select File to Import”** button and choose your file in **`.csv`**, **`.xls`**, or **`.xlsx`** format.
* Once the file is imported, the number of **contacts added** will be displayed on the screen.
* An additional **“Delete All Contacts”** button will then appear.

{% hint style="warning" %}
This button deletes all **imported contacts**.

As of today, there is no function to **delete contacts individually**.
{% endhint %}

<figure><img src="/files/upi4Tr9YXtlpLfgUTliT" alt=""><figcaption></figcaption></figure>

#### **Adding Contacts via API: Using the Dydu API**

This section allows you to **add** a **contact** to a **campaign** via an **API call**. An example **cURL request** is displayed in the interface; simply fill in the required fields before sending.

<figure><img src="/files/JJf8Cg86NkxzGNYvSD9o" alt=""><figcaption></figcaption></figure>

**Fields and elements to provide:**

* **`phoneLine`** (**mandatory**): the **phone number** of the **contact** to add.
* **`content.inputVariables`** (**optional**): the **Dydu conversation variables** to associate with the **contact**, in **key/value pairs** (the key is the **Dydu variable name**, the value is its content for this contact).
* **`Authorization` Token** (**mandatory**): retrieve a **Bearer token** from **Preferences > API > API Access**, then use it in the header `Authorization: Bearer <token>`.

This **API** can be called from a **script** to automatically add a large number of **contacts** by connecting to a **database** (e.g., **PostgreSQL**) and sending one **request per contact**.

### **Campaign Activity Tracking**

#### G**eneral Campaign Statistics**

The **General Statistics** section provides a quick overview of the main **performance indicators** for an **outbound call campaign**:

* **Number of contacts**: total number of **contacts** currently present in the **campaign configuration**.
* **Number of calls made**: total number of **calls** made by the **Callbot** as part of this **campaign**.
* **Reachability rate**: percentage obtained by dividing the number of **answered calls** by the total number of **calls made**.

<figure><img src="/files/zYpq9lh9Rg4UFJtjkZlF" alt=""><figcaption></figcaption></figure>

To access more **detailed** or **specific indicators**, you can create a **custom report** in the menu **Custom Statistics > Configuration > Reports**.

#### **Statistics by Contact**

This section allows you to view, for each **contact** in the **campaign configuration**, a set of detailed **information** about the **calls** made.

<figure><img src="/files/CsnRPSwbQwOVsd3augQZ" alt=""><figcaption></figcaption></figure>

A **search bar** is available to quickly find a **contact** by **phone number** (this field does not filter on other data).

For each **contact**, the following **information** is displayed:

* **Number of calls made** for this contact.
* **Date** of the last **call** made to this contact.
* **Link** to the contact’s last **conversation**.
* **Variables** populated during the **conversation**, with the option to view more by clicking the **“info”** button.
* **Contact status**, among the five possible:
  * **To call**
  * **Call in progress**
  * **Calls after success**
  * **Success**
  * **Failure**

It is also possible to **export** all **contacts** and their **calls** into an **Excel file** by clicking the **“Export contacts and calls (Excel)”** button.
