Send campaign from JSON

Send one or more messages defined in a campaign to a list of contacts

Path Params
integer
required

Application's ID

integer
required

Campaign's ID

Body Params
contacts
array of objects
required
length between 1 and 100
contacts*
string
required

The contactCode is a unique identifier assigned to each contact within a specific channel

string
enum
required

Channel type is used to determine the communication way to send or receive messages.

The available channel types are:

  • cloud_api for WhatsApp Cloud API
Allowed:
customFields
object

Variables to be used in the message content. The keys are the variable names and the values are the variable values. The variables will be replaced in the message content before sending.

Variables should use letters, numbers, or underscores.

date-time

The date and time when the messages should be sent. If not provided, the messages will be sent immediately.

The format must be in ISO 8601 (e.g., 2025-10-01T12:15:00Z).

The scheduling date must be within the range from now up to a maximum of 3 months into the future.

string

The delay before sending the messages. The use of this property will schedule the sending of the messages to be sent after the specified delay from the current time.

This property can not be used in conjunction with the scheduleAt property.

The format must be in ISO 8601 duration.

Examples:

  • PT0.25S for 250 milliseconds
  • PT20S for 20 seconds
  • PT15M for 15 minutes
  • PT30M50.5S for 30 minutes, 50 seconds and 500 milliseconds
  • PT4H for 4 hours
  • P3D for 3 days
  • P2W for 2 weeks
  • P1M for 1 month
string
enum
Defaults to fragmentedSlots

The slicing condition allows you to define how the messages should be sliced when sending them.

  • fragmentedSlots: If slicing is enabled, slots will be assigned based on availability starting from the scheduled time, regardless of whether they are consecutive, and only within the next 48 hours.
  • immediateConsecutiveSlots: If slicing is enabled, slots will be assigned based on availability starting from the current time (or from the scheduled time, if it's a scheduled sending), and within the next 48 hours — but only if they are consecutive. If not enough consecutive slots are found, the task will be marked as canceled and will not be executed.
  • deferredConsecutiveSlots: If slicing is enabled, the system will attempt to find a set of consecutive available slots starting from the scheduled time and within the next 48 hours. If no suitable slots are found, the task will be marked as canceled and will not be executed.

If not provided, the default condition is fragmentedSlots.

Keep in mind that these conditions will only apply to a given sending when the slicing activation criteria are met.

Allowed:
Responses

Language
Credentials
Header
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json