Rate this page:

Call lists for automated calls

With Voximplant's Call Lists feature you can build even complex scenarios with call campaigns in minutes. You can create a CSV table with a call list to process by a VoxEngine scenario.

In this article, we create an example scenario that calls through a CSV table with customer list and tells each customer their appointment time.

Contents

Copy URL

Prerequisites

Copy URL
  1. Create an application.
  2. Create a scenario.
  3. Create a routing rule and attach it to the scenario.
  4. Prepare a call list CSV table with phone numbers and additional information.

CSV table setup

Copy URL

CSV table for call lists contains phone numbers to call and any additional information to pass into a VoxEngine scenario. Here is an example of a call list CSV table format:

first_name;last_name;phone_number;appointment_date
Jon;Snow;+16501234567;November 15th
Daenerys;Targaryen;+16501234568;November 16th

The CSV file contains names of the callees, phone numbers, and appointment dates. The first string describes parameter names.

If needed, you can add time intervals when the call list processing starts and ends every day, UTC+0 24-h format: HH:mm:ss.

Jon;Snow;+16501234567;November 15th;17:00:00;22:00:00
Daenerys;Targaryen;+16501234568;November 16th;10:00:00;15:00:00

Scenario setup

Copy URL

In the scenario, require the CallList module and create variables for all the fields from the CSV table. The scenario processes each table row at a time. In this example, we use the AI module to detect voicemail. Then, we use speech synthesis feature to announce the appointment time.

Please take a look at the scenario example to understand how it works.

Call list example scenario

Call list example scenario

Launching the call list

Copy URL

To launch a call list, you need to send a Management API request. You can find more about our call lists management API in our API reference.

Please note

You cannot start a call list if your balance is below 1 USD. Once you top up your account, the lists launch automatically.

Let us take a look at the createCallList request parameters:

  • account_name — your Voximplant account name

  • api_key — your Voximplant API key

  • rule_id — the application rule id with the assigned scenario

  • priority — dialing priority, if you have more than one call list

  • max_simultaneous — maximum number of simultaneously processed records from CSV file

  • num_attempts — dialing attempts number, a new attempt appears in case of CallList.reportError

  • name — call list name, useful to differentiate different call lists from each other

  • file_content — CSV file to be sent in the request body

  • interval_seconds — time interval for the next attempt in seconds

  • encoding — CSV file encoding, if different from UTF-8

  • delimiter — CSV file columns delimiter, default is ";"

The getCallListDetails request result looks the following:

"appointment_date";"last_name";"phone_number";"first_name";"__end_execution_time";"__start_execution_time";"result_data";"last_attempt";"attmepts_left";"status_id";status
November 15th;Jon;16501234567;Snow;;;"{""result"":true,""duration"":27}";"2021-05-24 19:21:39";1;2;Processed
November 16th;Daenerys;16501234568;Targaryen;;;"{""result"":true,""duration"":18}";"2021-05-24 19:22:10";1;2;Processed

Processing user input

Copy URL

There are two ways of user feedback during a call: voice and pressing buttons. To process voice feedback you can use oub built-in voice recognition. To process buttons feedback, you need to handle the ToneReceived event.

Handle DTMF tones

In our code example, let us ask the customer to rate the service quality from 1 to 5 and then handle the event:

Handle user feedback

Handle user feedback

Handle user speech

Use Voximplant's voice recognition feature to handle user's speech.

In our code example, require the ASR module and create a speech recognition instance via the createASR method. Then use the sendMediaTo method to send the customer's input to the instance.

You receive the result in the ASREvents.Result event. You can process the result as you need.

Please take a look at the code example to understand how it works:

Survey with speech recognition

Survey with speech recognition

The result is the following:

"last_name";"phone_number";"first_name";"__end_execution_time";"__start_execution_time";"result_data";"last_attempt";"attmepts_left";"status_id";status
Jon;16501234567;Snow;;;"{""result"":true,""duration"":27,""rating"":""four""}";"2021-05-24 20:17:13";1;2;Processed
Snow;"November 15th";"+16501234567";Jon;;;"{""result"":true,""duration"":14,""rating"":""four""}";"2021-07-15 20:20:38";0;0;2;Processed;
Targaryen;"November 16th";"+16501234568";Daenerys;;;"{""result"":true,""duration"":27,""rating"":""five""}";"2021-07-15 20:21:37";0;0;2;Processed;

You can also make HTTP requests from the scenario to pass the data to your backend in real time. You can save the survey results to the customData parameter and then use it to get statistics, through the call_session_history_custom_data parameter of the GetCallHistory method.

Frequently asked questions

Copy URL

Q: My call list processing suddenly stopped, why?
A: Call lists do not work if your account balance is less than $1. After you replenish the balance, call lists resume automatically.

Q: I cannot delete my call list, why?
A: To delete a call list, pause it or wait until completion, because you cannot delete a call list that is in progress.