Launch IVR Scenario

This method allows you to start an outbound IVR toward a multiple destinations.

Please log in to see full path URL. Learn why.
post
/voice/ivr/1/messages
Request Body schema:
collapse all -
bulkId
string

The ID which uniquely identifies the request.

messages
required
Array of objects

Array of IVR messages to be sent, one object per every message.

Array
scenarioId
required
string

Scenario key.

from
string

Numeric sender ID length should be between 3 and 14 characters.

destinations
required
Array of objects

Array of message destination addresses. Maximum number of destination addresses is 20k.

Array
messageId
string

The ID that uniquely identifies the message sent.

to
required
string

Message destination addresses. Destination address must be in the E.164 standard format (Example: 41793026727).

notifyUrl
string

The URL on your callback server on which the Delivery report will be sent.

notifyContentType
string

Preferred Delivery report content type. Can be application/json or application/xml.

notifyContentVersion
integer <int32>

Specifies the version of the report model to be sent. Can be 1 (deprecated version 1) or 2 (current version 2). The default is version 2.

callbackData
string

Additional client's data that will be sent on the notifyUrl. The maximum value is 200 characters.

validityPeriod
integer <int32>

The message validity period shown in minutes. When the period expires, it will not be allowed for the message to be sent. A validity period longer than 48h is not supported (in this case, it will be automatically set to 48h).

sendAt
string <date-time>

Used for scheduled Voice messages (message not to be sent immediately, but at scheduled time).

retry
object

Used to define if the delivery of the Voice messages should be retried in case the first try doesn't succeed. Additional retries will be made according to the schedule defined by minPeriod and maxPeriod parameters and platform's internal retry logic. If the minPeriod differs maxPeriod, delivery will be retried in the following manner: after 1 min, 2 min, 5 min, 10 min, 20 min, 30 min, 1 hour, 2 hours, 4 hours, 8 hours, 16 hours, 24 hours or until maxPeriod is reached. If the retry attempt for the maxPeriod is reached, the maxPeriod will be used for all subsequent retries. If the minPeriod and the maxPeriod are defined as equal values, the period of time between retries will be equal to this value. Message delivery will be retried until the successful delivery or message validity or maxCount value is reached.

maxCount
required
integer <int32>

Specify the maximum number of retry attempts. Maximum value of the maxCount is 4. If the value is higher than 4, it will be set to 4.

maxPeriod
required
integer <int32>

Defines the maximum waiting time (in minutes) after the previous failed attempt to try to deliver the message again. Supported values are 1 min, 2 min, 5 min, 10 min, 20 min, 30 min, 1 hour, 2 hours, 4 hours, 8 hours, 16 hours, 24 hours. If entered a value that isn't from the previous list but that's smaller than 24 hours, it is used the next bigger value from the list. If entered value that is bigger than 24 hours than it is used 24 hours.

minPeriod
required
integer <int32>

Defines the minimal waiting time (in minutes) after the previous failed attempt to try to deliver the message again. Supported values are 1 min, 2 min, 5 min, 10 min, 20 min, 30 min, 1 hour, 2 hours, 4 hours, 8 hours, 16 hours, 24 hours. If entered a value that isn't from the previous list but that's smaller than 24 hours, it is used the next bigger value from the list. If entered value that is bigger than 24 hours than it is used 24 hours.

ringTimeout
integer <int32>

Ringing duration, unless there are no operator limitations. Default value is 45. Note: There are no limitations on the Voice platform regarding this value, however, most of the operators have their own ring timeout limitations and it is advisable to keep the ringTimeout value up to 45 seconds.

sendingSpeed
object

Sending rate defined in number of messages sent per second, minute, hour or day. First message will be sent immediately (or at sendAt time if scheduling is used) and subsequent messages will be sent respecting defined speed. For example, if sendingSpeed is defined as 10 messages per hour, messages will be sent every 6 minutes. If this parameter is defined, validityPeriod is ignored.

speed
integer <int32>

Defines the number of messages that will be sent per specified time unit.

timeUnit
string

Defines time unit used for calculating sending speed. Possible values: second, minute, hour and day.

parameters
object

The parameters that should be passed to the scenario on execution.

property name*
string

The parameters that should be passed to the scenario on execution.

pause
integer <int32>

Indicating period of time in seconds between end user answering the call and message starting to be played. Minimal value is 0 and maximum value is 10 seconds. Default value is 0.

record
boolean

[Early access: Contact your account manager to enable the usage] Record the call and expose it to client as URL inside the delivery report. Can be true or false.

deliveryTimeWindow
object

Scheduling object that allows setting up detailed time windows in which the message can be sent. Consists of from, to and days properties. Days property is mandatory. Days in the week are written as their full names: Monday-Sunday. Days parameter must be populated as a list, between two square brackets. Example: ['MONDAY', 'TUESDAY', 'WEDNESDAY']. From and to properties should be either both included, to allow finer time window granulation or both omitted, to include whole days in the delivery time window. From and to parameters are objects, that consist of hour and minute fields that hold integer values. For example, from: [ hour: 15, minute:45 ]. For complete json, please check out our example. Note: delivery time window is set in UTC timezone.

days
Array of strings
Items Enum: "MONDAY" "TUESDAY" "WEDNESDAY" "THURSDAY" "FRIDAY" "SATURDAY" "SUNDAY"
from
required
object
hour
integer <int32>
minute
integer <int32>
to
required
object
hour
integer <int32>
minute
integer <int32>
callTimeout
integer <int32>

Maximum possible duration of the call to be set, shown in seconds.

Responses

200

successful response

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

Request samples

Content type
Copy
Collapse all
{
  • "bulkId": "BULK-ID-123-xyz",
  • "messages":
    [
    • {
      • "scenarioId": "6298AA7707903A4ED680B436929681AD",
      • "from": "41793026700",
      • "destinations":
        [
        • {
          • "to": "41793026727"
          },
        • {
          • "to": "41793026731"
          }
        ],
      • "notifyContentType": "application/json",
      • "callbackData": "DLR callback data",
      • "validityPeriod": 720,
      • "sendAt": "2023-10-03T12:21:00.632+0000",
      • "retry":
        {
        • "minPeriod": 1,
        • "maxPeriod": 5,
        • "maxCount": 5
        },
      • "record": false,
      • "deliveryTimeWindow":
        {
        • "from":
          {
          • "hour": 6,
          • "minute": 0
          },
        • "to":
          {
          • "hour": 15,
          • "minute": 30
          },
        • "days":
          [
          • "MONDAY",
          • "TUESDAY",
          • "WEDNESDAY",
          • "THURSDAY",
          • "FRIDAY",
          • "SATURDAY",
          • "SUNDAY"
          ]
        }
      }
    ]
}

Response samples

Content type
Copy
Collapse all
{
  • "bulkId": "5028e2d42f19-42f1-4656-351e-a42c191e5fd2",
  • "messages":
    [
    • {
      • "to": "41793026727",
      • "status":
        {
        • "groupId": 1,
        • "groupName": "PENDING",
        • "id": 26,
        • "name": "PENDING_ACCEPTED",
        • "description": "Message accepted, pending for delivery."
        },
      • "messageId": "4242f196ba50-a356-2f91-831c4aa55f351ed2"
      },
    • {
      • "to": "41793026731",
      • "status":
        {
        • "groupId": 1,
        • "groupName": "PENDING",
        • "id": 26,
        • "name": "PENDING_ACCEPTED",
        • "description": "Message accepted, pending for delivery."
        },
      • "messageId": "5f35f896ba50-a356-43a4-91cd81b85f8c689"
      }
    ]
}

Encountering issues

Contact our support

What's new? Check out

Release Notes

Unsure about a term? See

Glossary

Research panel

Help shape the future of our products
Learn more
Service status

Copyright @ 2006-2025 Infobip ltd.