Flow Elements

In this section, we'll cover all the elements in Flow that you can use to build a communication, including starting points, channels and different functions.

Entry Points

Selecting an entry point is your first stop on the way to create a personalized communication flow. These are all the starting points currently available on the Infobip web interface:
•    Predefined Audience
•    Trigger
      o    Change In People Profile
      o    People Real-Time Event
      o    Inbound Message
      o    Date or Time 
      o    Inbound Call
•    Flow API

triggers in saas


The next step, after you have decided which entry point to use, would be to define the mandatory parameter values. For example, if you have selected Predefined Audience as the entry point for your communication, in the side panel that appears when you click that entry point, select persons with a Tag or Attribute that you have previously created in the People module.

predefined audience on customer engagement platform

Predefined Audience

When starting communication with the Predefined Audience entry point, a scenario described in the previous section, you can specify the audience segments, persons, or tags previously defined in People.

starting communication on cpaas


Predefined Audience element can be defined only once per flow. Other elements can be added multiple times on the flow canvas.


Flows can also be triggered by different events and actions. In other words, people who perform some activity that has been defined inside the trigger will enter your Flow. The following guidelines should help you determine which triggers would best serve your business scenario.

Change In People Profile

With this entry point, it is possible to use multiple operators to compare data with the values that users enter before they become a part of the Flow. These operators depend on the type of the people attribute value that is being compared. The following operators are available:

  • is
  • is
  • is
  • is
  • is not
  • is not
  • is not
  • is not


  • contains
  • less than
  • before


  • starts with
  • less than or equal
  • until


  • ends with
  • greater than or equal
  • since



  • greater than
  • after

Change In People Profile is the best choice when you want to wait a predetermined amount of time for a change in a specific person attribute so that this person can enter the communication flow. For instance, with Change in People Profile you can set up a Happy Birthday flow by choosing Birth Date is today.

communication based on change in user profile


People Real-Time Event

This trigger has been designed to record a certain event or a combination of events that will happen to the end users. You need to configure what event the Flow should wait for. It could be a PurchaseFinished event or any other user activity that your communication is based on.

People Real-Time Event is key in the abandoned cart campaigns when you want to remind users that their favorite products are still awaiting them or in other advanced multi-step campaigns.

change on communication platform based on new people profile information


Inbound Message

Opt for this entry point when triggering a Flow for all the end users who send a specific keyword to the number you have set up. This enables you to create a dynamic audience when you don’t know who exactly should be included in your communication.

To cover cases where end users enter the flow regardless of the keyword they send, select Any keyword (as shown in the screenshot below). You can have multiple flows using the same number and waiting for the end user's message. If this is the case and you have one flow with the exact keyword such as Start and another one with Any keyword (on the same number), the exact keyword will be used to trigger the flow. The reason is that the exact keywords have a higher priority than Any keyword. The same logic is applied to the Evaluate Inbound Message element.

inbound message as communication starting point


Multiple Inbound Message entry points can be added to a flow.

Inbound Call

The users who call your number will be included in the flow if you have selected Inbound Call as the starting point. The flow will be triggered when they call the number that you have set inside the Inbound Call side-panel.



To use the Inbound call entry point you need to activate a voice channel! Contact your account manager for more information regarding the voice channel activation. Also, keep in mind that to be able to change the inbound IVR scenario used with a Voice number, you have to stop the current flow campaign on that number, and then start building a new one.

Another very important piece of information when using Inbound Call would be that the end user is charged by their mobile or landline operator. In some cases, you will also be charged for inbound traffic coming to a Voice number, but that depends on the market. Also, if an IVR has a Forward call element forwarding the current call to some other phone number(s), you pay for that outbound leg of the call.


Date or Time

If planning a time-sensitive communication, your best starter will be the Date or Time trigger. It relies on information stored in the customer profile inside the People module.

So, besides having the user profile in People, what are other requirements? You will need to create a custom attribute that consists of either date or date and time. Let`s say you want to remind clients of an appointment – you can create ‘appointmentDateTime’ attribute and then build the communication around it. 

In People module, go to Configuration > Create Custom Attribute.

Create custom attributes in Moments

The data related to this attribute can be populated via People API, Web SDK, Mobile SDK, or manual import on the People page on our web interface.
You will now be able to use this attribute as a communication trigger.

communication trigger based on date and time

Several options are available to help you design a well-timed communication:

IS IN – use this condition to send communication hours or days before the date/time you have set as a custom attribute inside the person profile.
For example, with “AppointmentDateTime is in 4 hours,” your customer will enter the Flow when the current date/time is 4 hours before the one set in the TrialExpiryDateTime attribute.

WAS - the amount of time after the set date/time has been reached. So, you would set “TrialExpiryDate was 1 day ago” to include the customer in the flow one day after the date set in the TrialExpiryDate custom attribute.

IS TODAY  - use it when you want to send the communication on the date set in the custom attribute: “DueDate is today.”

IS TOMORROW – send a message one day before the date set in the custom attribute.

WAS YESTERDAY – send a message one day after the date set in the custom attribute.

For any messaging campaign where timing is key, you can also use Wait for a date Flow element.

Flow API

Add people to your communication based on external triggers. Flow API lets you send data from your system, like a webpage or a CRM, to the flow that you created on the Infobip web interface. This is a neat way to automate welcome messages, lead nurturing, different types of reminders, etc.

To use this option, build communication with the Flow API as the entry point. Within this starting point, you will receive a unique URL where the end users’ data will be sent. The moment the Flow receives the data, it will create a person profile in the People module and add this person to the communication. Technical details of the integration can be found on our API Developer Hub.

api for adding people to communication

Learn how to send automated welcome messages using Flow API.


All channels available in Moments have to be configured before you are able to add them to the communication you are building. For more information, check out the individual channel pages.  

Besides all their specific features, some options are common to each channel: personalization using placeholders, delivery time and message sending speed,  and data payload. You can also set the message validity period for the channels that you are using. 

To check traffic reports for all communications, visit Analyze and explore the channel statistics. Another possibility is to generate a report with more detailed information.


If you would like to add SMS as a channel to your conversation with customers, first add the sender, think about the content for the message and make use of the placeholders (curly brackets icon) to further personalize this message. Also, decide which special characters to use.

The SMS advanced options allow for better-tailored communication, so you need to decide if you want to include the following:

•    Track URL Clicks – if you want to discover which campaign links were clicked on, how many times, and by whom.

•    Shorten URLs – to convert your long URLs into short and attractive ones that your customers will be more likely to click on.

sms in saas


The DLT toggle available at the top of the side panel is applicable to the India region only.

In Flow, you can also receive an SMS message from your customers and evaluate their response to continue informed communication. 


Send important notifications or create engaging offers that include buttons and pictures. After selecting the sender and entering your content in the element`s side panel, check out the rich content possibilities. 

viber in saas

If the message is promotional, select the matching check box in the side panel. 

When Viber is your channel of choice to reach out to customers, maybe consider adding the failover to other channels from the Infobip portfolio to ensure your message gets delivered.


Use Messenger inside the Flow to converse with the customers regardless of their location and provide support or a response to their inquiries. 

When you start creating communication that will include this channel, select an entry point that best fits your scenario. Once you add the Send Facebook Message element to the communication flow, fill in the required fields and, in the element`s side panel, add the content types that you need: Text, Buttons (where customers can quickly select offered options from the message), and/or Image.

messenger in saas

Check out our Getting Started guide for Messenger.


Use email for simple two-way messaging via Flow or for a multichannel communication strategy. 

Besides the basics: sender name, sender email, reply-to address, subject, and the preheader that will be displayed next to the subject, you can use the placeholders next to the subject and preheader. They will add to the personalization. Supported placeholders are, for instance, the first name, address, subscription, and any other custom values.

Design Editor is where you create custom content for your customers, or you might decide to  HTML Editor,  a code solution that lets you build your emails using HTML and then upload them to the web interface. 

email conditions on engagement platform

If it suits your communication scenario, add an attachment. This could be any document, image, or audio/video file.

You can also track who opened and clicked your email. These events are logged for the reporting purposes. Tracking is set by default, but you can exclude it.

click and open tracking in email

Mobile App Messaging

User behavior inside a mobile app, and automated communication based on that behavior, are key to customer engagement. With mobile app messaging (MaM) in Flow, you will be able to build a variety of customer journeys. 

The panel that opens when you click on the Send Push element that you are adding to your communication flow will prompt you to decide if your use case requires notifications for users who are inside or outside of the app. Or you can send both message types


mobile app messaging in saas

Push and In-App Notification Features

For both Push Notification and In-App types, include title, message, and, for richer content, add an image and custom payload. 

mobile app messaging on engagement platform

The Push Notification has an on-tap action that will be performed when the user taps the screen.

Just below this field, you will be offered the possibility to include the in-app message type as well. 

buttons in push notification editor

If using In-App, these are the actions available to you:

Primary Button 

•    Button text - Open

•    Action - select between the app home screen, open URL within a web view, page in the mobile app, or open URL.

Dismiss Button 

•    Button text - Cancel.

Delivery Options for the two notification types are similar to those of other channels, except that in MaM you can also select geographic areas

geotargeting and push notifications



With WhatsApp Business over Flow, you will be able to send to your audience a predefined message template that has been approved by WhatsApp or you can send a free-form message within 24 hours from the moment the customer sent a message to your business.

Free-Form Messages

To send a free-form text message, choose type: Text, Image, Audio, Document, Location, Video.  Fill in the required fields and consider personalizing each message with the previously defined variables. 

whatsapp on engagement platform

Check out which advanced options you might want to use for your selected message type. 

Message Templates

Message templates are message formats that are registered and approved by the service provider, and WhatsApp requires businesses to use message templates in business communication to avoid inappropriate usage and ensure the message quality for their customers.

Template example:

Hello {{1}}, your access code to {{2}} is {{3}}. If you didn`t initiate this request, kindly ignore this notification. Thank you. 
The brackets with numbers are called parameters and they are the only parts of message templates that can be changed after approval. That gives you the possibility to use the same message template several times and adjust it according to your needs.

Once your template has been approved, its time to create your communication and insert the following:

  • From – select your registered phone number.
  • Type – select Template.
  • Template – select the name of the template you want to send.
  • Language code – select the language you want to send your message in (only predefined languages apply).

whatsapp templates

Only now can you preview the message.

The template contains placeholders and the preview window is used for placeholder mapping. In other words, placeholders include variables that are stored on the People data platform, such as first name, city, etc, and they can be modified, while the rest of the text remains unchanged.

Another option is Media Templates, where you can add an image, document, video, or location.


Deliver important notifications, engage customers with promo offers, or provide support using rich and interactive communication designed in our visual builder.

With RCS, you can send the following message types: 

•    Text

•    File

•    Card

•    Carousel

Each type has its set of mandatory fields and other features:

Text File Card Carousel
From From From From
Content URL Orientation Card Width
Suggestions Suggestions Alignment Cards
(Title, Description, Media, Suggestions)
    Card Content
(Title, Media, Suggestions)

Suggestions that are present inside every type allow for interaction with the end users, and they involve these actions: reply, open URL, request location, or dial phone. 

The postback data field in suggestions helps collect the information from customers and save it for future use. 

rich content and customer response

Channel Options

When you add any channel available in Moments to your communication and click on it, a side panel will open with a variety of options that you can use to further customize your correspondence. These include message validity, scheduling, and more.

Validity Period

Sent messages have a specific period during which the system will try to deliver them, regardless of the channel.

For example, you want to send a communication to your audience and some users have their cell phones turned off, the system will periodically retry to deliver the messages until the validity period passes.

The default and maximum validity period is 48 hours, and it does not need to be set for each communication. If you want to set a shorter period, use the Advanced section in the side panel of the channel you are using to send the messages. You can choose between hours and minutes. 

validity period in mesaging

Sending Speed and Delivery Time

Each send element (elements containing messages: SMS, Email, Viber, etc.) inside the Flow, including Start Call and Call API, can have their own Message Sending Speed. For example, if you’re sending a promo campaign and the goal is for your customers to place orders through your call center, this can cause backups and long call wait times. To avoid such a scenario, send messages at the speed that your call center can handle comfortably.

Enter the specific number of messages you want to send within seconds, minutes, hours, or days (for example, 1000 messages per hour).

Using the Delivery time window, set the exact time and timezone for your communication. 

message sending speed


Data Payload 

The data payload is available on all channels on the Flow. It lets you send additional multiple data, and it can be used as a placeholder included in the content of your message.

The Push channel has MSISDN (cell phone number) already set as the data payload due to the technical implementation of Mobile App Messaging.

Flow advanced options - data payload

URL Shortening and Tracking

Links that we include in promotional messages, instructions, notifications, etc., are often long and not so pretty. The research has shown that end users don’t prefer to click on long URLs with a lot of parameters. End users find them untrustworthy or even consider them as spam.

If you are using SMS, Viber, or WhatsApp as a channel, you should be cautious about the message length and characters. With long URLs, what was meant to be sent as one SMS message can be sent as two or even more messages, generating additional costs for you.

On top of all of that, if you can`t measure results and clicks, how will you improve your strategy and communication?

So, besides the URL shortening, use the tracking option - both of these are available in the channel`s side panel > Advanced Options - to see which end users clicked the links inside your messages.

Send SMS using Flow - advanced options - URL shortening and tracking

Make sure to select Shorten URLs check box to replace long URLs with short ones. To track the links in your messages, select the Track URL Clicks check box.

IVR Elements

Your IVR (Interactive Voice Response) channel can consist of an endless number of different IVR (and non-IVR) actions.
IVR actions available over Flow are:
•    Start call
•    Play
•    Collect
•    Forward call
•    Record Voicemail
•    Hang up


Your outbound IVR should always start with the Start Call action. For inbound calls, Start Call action will not be used.

Start Call

When you add the Start Call element to your IVR flow, the first step is to select the sender/caller ID (your business Voice number).

If you set Machine Answered as a condition in the element`s right side panel, you can add the Hang up element if you don`t want to continue the call. 

machine answered ivr

Use the advanced options to set the record call action and the following options: 

•    Validity period
•    Retry period
•    Data Payload
•    Call Back URL
(The CALLBACK URL is your platform URL where the delivery reports will be pushed.
Check out our Developers Hub for the delivery reports format.)

options in IVR


Add the Play element, fill out all the necessary fields, and choose the audio source: text-to-speech message or audio file. These two come with their specific options, but, for both, you can set up the duration of pause to add additional silence before the audio file has been played and conditions that you can use to further branch your flow.  

Text to Speech

Text content can be up to 1400 characters long. Once you enter the message text, the language is automatically detected.  You can also select the voice that will be used for the message.

To hear your message before sending it, click the audio preview button. 

play message in ivr

Audio File

For the audio file, select the source:

  • File upload - prerecorded file from your computer
  • File URL - publicly accessible URL location of your audio file
  • Voicemail - select it from the list of the files created using the record action 

audio files in ivr


The Collect element is added to the flow to get the response from your customers, who will be communicating via the digits on their phones.

Define the following: 

•    The name of the variable - this is where the Flow will keep your customer inputs.
•    The maximum input length - defines the number of inputs the customer is expected to enter when interacting with the IVR menu.
•    Input waiting time - the number of seconds the IVR will wait for the customer to press the first key. 

ivr in saas

The # key cannot be collected, as it is reserved for the user input termination. The IVR platform automatically stops reading the end user `s input after receiving #, and it does not store it.

If you want response codes to show in the IVR (Voice channel) reports, these are the options: 

•    Always show (default): Response codes will always appear in the reports and logs.
•    Show masked: Response codes will show in reports and logs as a masked value (xxxx). 
•    Don’t show: Response codes will not show in reports and logs.

You can use the conditions in the Collect element to branch the IVR flow based on the response code from the user or on the hung up action.

Forward Call

Before forwarding the call to one or more phone numbers, you will need to fill in the following fields:

•    From – Caller ID that will be used on the call-receiving side. Voice can only use numeric senders and the call delivery depends on the CLI route.
•    To – One or more phone numbers to forward the call to.

forwarding ivr call in saas

When the call is being forwarded to more than one phone number, it could be parallel calls to all of them until one gets picked up or sequential calling.  For the sequential dialing, set up how long do you want the ringing to last before we move to another number in the sequence.

The conditions for this element that you can use to continue designing the flow are answered, no answer, busy, error.

forwarding call in ivr


The Forward call element must be the last IVR action in your IVR flow, no other IVR actions can follow it, but you might use other non-IVR actions after or start a new call.

Record Voicemail

This element in IVR flow records a part of the call. For example, it could serve to record a customer opinion, get customer feedback, or leave a voice message. First, you will need to take care of the following: 

•    The name of the recorded file. 
•    Maximum recording duration measured in seconds.
•    Maximum silence duration that IVR will wait for before stopping the recording.
•    Define the digits that will end the recording. 
•    Select the beep sound check box if you want the tone played at the start of the recording. 

recording voice for saas communication

Audio files that are recorded using the Recorded Voicemail element can be retrieved via the Recordings page on the web interface. 

After you add the Record Voicemail action, the only way to branch the call is with the Hang Up condition only.

Download the Voice IVR audio file.

Hang Up

The Hang Up action is used to end the call. After you add it to the flow, use non–IVR actions only or start a new call.

hang up in ivr

Non-IVR Actions

Make even more flexible flows and improve communication with your end users with these elements that you can combine with the IVR ones:

•    Call API
•    Evaluate value
•    Add or Remove Tag
•    Add or Remove from the Do Not Contact list


The elements in Flow that help you plan and direct your messages the way you want. From waiting for events such as purchases to send a relevant message,  to failover which lets you have a backup communication channel in case the customer does not check the messages on the first one that you used.  


Secure the message delivery by setting up backup channels. This means that if you send a message over one channel and it`s not delivered, another, failover channel, will be automatically used after a defined time. There is no limit on channels that can be used in failover.

When designing your campaign, remember that there is a validity period during which the platform will try to deliver the message via one specific channel. The default value is 48 hours. Also, make sure that all the recipients have all the required destinations set in their profiles.

To use this feature, add the Failover element to the flow you are designing. Set up the channels that you plan to use in conversation with customers.

failover in saas


Evaluate Inbound Message

Branch the flow based on the message the end user sent to you. For example, if the customer replies with “yes”, send them an SMS message; if the customer replies with ”no”, don’t send them any more messages. The default output of the element is “If no response until the end of flow.”
This element is often used to create interactive flows where the end users respond with the keywords that are validated.

evaluate inbound message

Any keyword can be used to cover cases where the customer replies with something that you did not cover in your communication flow. You can have multiple flows using the same number and waiting for the end user's response to it. If such a situation occurs, and you have one flow with the exact keyword such as “yes,” and another one with „any keyword“ (to the same number), the exact keyword will be paired. The exact keywords have a higher priority than “any keyword.” This same logic is applied to the Inbound Message entry point.

Evaluate Event

Evaluate event element enables you to branch the flow based on the end-user actions. (Just a reminder  that you can also use the Wait for an Event function to branch based on user behavior.)

So, let`s say you are sending a newsletter and you want to send another message to the people who opened the email. You would set the Evaluate Event element for the email action seen. The default output of this element is if there are no actions performed. So, you could branch the flow for users that have clicked and the ones that did not.

As of now, email events for the seen and clicked statuses can be evaluated.

inbound message

Segment Audience

Split your audience based on the person attributes and past behavior. If, for instance, within a specific flow you want to send different messages to people belonging to different age groups, this is exactly what the Segment Audience element is for. 
You will need to configure a person that you want to use as a segmentation input: People module > Configuration > Custom Attributes

The following attribute operators are available:

  • is
  • is
  • is
  • is
  • is not
  • is not
  • is not
  • is not


  • contains
  • less than
  • before


  • starts with
  • less than or equal
  • until


  • ends with
  • greater than or equal
  • since



  • greater than
  • after

You can also check whether persons included in the flow performed certain actions (subscription, purchase, payment, etc.) and then continue the flow based on this information. These events that you plan to use as communication triggers are created on the Events Definition page. 

The next step is to decide how you want to continue communication based on the attributes and/or events such as these shown in the image. You could send one type of message to customers who bought your products within the given timeframe and a different one to those who have not been as active. 

audience segmentation on customer engagement platform

Wait for an Event

This Flow element has been designed to record a certain event or a combination of events that have happened or will happen to the end users.
It can be used as the starting point of the Flow or as an additional action. Wait for an Event behaves almost the same when it`s used as the starting point and as an action. However, when you add it to the communication flow as an action, you also have to define the waiting period.

Configure the following:
•    What event the flow should wait for.
•    How long the flow should wait for the event (minutes, hours, days).
•    What happens if the event occurs during the waiting period.
•    What happens if the event doesn’t occur during the waiting period.

This element is key for the abandoned cart campaigns or advanced multi-step campaigns.

Wait for an event

Wait for Change in People Profile

When you want to wait a predetermined amount of time for a change in a specific attribute of a person who entered the Flow after an event happened, opt for the element called Wait for change in people profile.

This is what you will need to configure:

  • The change in attribute the flow should wait for.
  • How long flow should wait for that change.
  • What happens if the change occurs during the waiting period.
  • What happens if the change doesn’t occur during the waiting period.

Wait for change in People profile

This element will be helpful in more advanced automation campaigns.

Wait for a Date

To continue your communication before, on, or after a specific date/time set inside a person profile, add the Wait for a date element.  

What you need to do beforehand is add a custom attribute in the People module. 

custom attribute

There are several options available inside this element:

IS IN – use this condition to continue communication hours or days before the date/time you have set as a custom attribute inside the person profile.

For example, with “TrialExpiryDateTime is in 4 hours,” the customer will reach the next step in the flow when the current date/time is 4 hours before the one set in the TrialExpiryDateTime attribute.

WAS – the amount of time that has passed after the set date/time had been reached. For instance, you would set “TrialExpiryDate was 1 day ago” to get the customer to the next step in the communication one day after the date set in the TrialExpiryDate custom attribute.

IS TODAY – use it when you want the customer to get to the next step in communication on the very date set in the custom attribute (“DueDate is today”).

IS TOMORROW – the customer will reach the next step in the Flow one day before the date set in the custom attribute.

WAS YESTERDAY – the customer will reach the next step in the Flow one day after the date set in the custom attribute.

DO THIS ACTION EVERY YEAR – select this check box if you want to perform this same action every year for each person (ignores the year in person attribute, and makes it a recurring action).

sending due date reminder from communication platform

You can also start a communication based on a specific date or time


This is the element that delays your communication flow for a specific amount of time. For example, you send one message from the flow and you want to wait before sending another one. What you need to do is select Pause and then select its duration along with a time unit – seconds, minutes, hours, days.

Add pause to Flow

When the time specified for the pause passes, the next element (for instance, an SMS message) in the communication flow will be triggered.

The Pause element can also be used with all the `Evaluate` elements available in the Flow.

Update Person Profile

To update and save values for the customer standard or custom data attributes that are stored in the People module, use the Update Person Profile element.

When adding this element to the flow, one option is to set a dynamic value. Let`s say a telecom company wants to send an SMS to customers to see which plans their customers actively use. Select Update Person Profile and then, in the right side panel, use the attribute picker to select Plan. Click the curly brackets icon and select String. You are all set.

Any data that customers provide related to the plan will be saved on the People platform to help you in future communication campaigns.

update profile with dynamic data

But if the goal is, for instance, to collect information about how many people are using the Basic plan, type in the static value Basic. Any customer that enters this block will have this specific information saved in their profile.

update profile with static value

Add or Remove Tag

If you want to mark customers based on their actions, use tags. This is the best way to mark specific end users so that they can be included in future communication based on the tags. 

Flow supports two tag related elements: 

  1. Add tag  

  2. Remove tag 

Add or remove tagg in Flow

To get a better idea how to apply this feature, check out how tags can be used for feedback.

Start a Conversation

This element is helpful if you want to direct customers to live agents or for similar scenarios. In the side panel, select a tag (create it on the spot or use the existing one) that tells the agent what the conversation will be about. For example, a data verification tag would mean that the agent will need to verify the customer`s information. 

tags in saas communication


Add or Remove from Do Not Contact List

If you want to give customers an opportunity to opt-out from the communication, use Add to Do Not Contact list element. All customers that come to this element can be excluded from all your communication, regardless of the channel, or you can be more specific and enable opt-out only from the cell phone number destinations or from email. The customers who are blocklisted only on one of these destinations can be removed from the blocklist with the Remove from Do Not Contact list element. 

Do Not Contact elements in Flow

Split Audience

Divide your audiences and get more precise metrics about how they react to your content. The Split Audience element is especially useful when you want to do the following:

•    Perform simple experiments such as testing two versions of the same Email message as shown in the image below.
•    Create more advanced experiments that involve testing which channel (Email, SMS, Push, etc.) works best.

Test Flow in Moments

Call API

Call API will allow interaction between an external system, such as a website or a CRM, and Flow in real time. It is a new step in the Flow builder which allows you to request information from your third-party system or database and save responses to flow variables to personalize and steer communication in the flow depending on that data.

CALL API element has the following parameters that should be set:

Call API element in Flow
  • HTTP(S) URL – URL of the third-party system with which the flow wants to communicate. Be sure to specify the correct URL to the service that will receive or send the data that flow requires.
  • HEADER – Data that will be sent along with the URL. Data can be entered in KEY-VALUE formats, such as username: user1 and password.
  • BODY – Data that will be sent along with the URL.  Data can be entered in KEY-VALUE format, such as name: Tom, or external user ID or in JSON format, for example {'name': 'Tom'}. Currently, two types of BODY are supported: JSON and URL Encoded Form. Default data entered by the user will be sent as JSON. To send it as URL Encoded Form data, you have to add a header with the name. Content-type and value: application/x-www-form-urlencoded
  • To authorize every call, you'll probably need to provide a username and a password in HEADER, and in BODY you should pass the EXTERNAL ID for each user stored in the Target module so a third-party system knows which end user's data should be stored or fetched.
  • Headers are empty by default. Most of the web frameworks and services require a content-type header in the request to process it properly. For example, if you are trying to send a JSON, you should add a header with the name - Content type and value: application/json
  • METHOD – defines the method that will be used to call API. There are POST, GET, PUT, and DELETE. Each of these is used for different use cases. Responses can be saved to variables (explained below):
    1. POST – API that is called should do something with the provided request. Often POST is used to create a new entity or update an existing one on the third-party side.
    2. GET – used to retrieve information from the called API.
    3. PUT – used to store something on the third-party side.
    4. DELETE – used to remove something on the third-party side.
  • WAIT UNTIL RESPONSE IS RECEIVED - there are two ways for Call API to operate. The first one is just to call an API and continue with the next step in the flow. The second one is to wait for the response. This means that the flow will not go to the next step until the response is received.
  • SAVE TO VARIABLE – the response from the called API can be saved to a flow variable and used in the rest of the flow. If this option is checked the user needs to:
    1. Enter variable name - one string that can contain letters, numbers, and underscore; the number cannot be placed at the beginning.
    2. Type - boolean which can be 0 or 1, true or false; a number which can be a number; a string which can be text.
    3. Map the response to that variable. Enter a JSON path expression such as $ loyalty_points. A path must point to a single value; if the value is an array or object, it will be considered an error and NULL will be set to this variable.
  • CONDITIONS – the user can branch a flow based on the information if the response is received or not. A response is considered received if a response status is more or equal to 200 and less than 300.


When the flow is ready, the next step is Validation. Once you click Validate, if there are no errors to be reported, the Exit element will appear automatically after each unconnected element in the Flow. When it comes to IVR flows, the exit element will finish an active call. So, if you decide to validate the communication while the call is still ongoing, it will end. 

Exit also helps calculate how many customers in a specific communication branch finished the flow.

exiting cpaas communication

Personalization with Placeholders

No matter which communication channel is being used, there are placeholders to help you with personalization.

Once you start creating your messages, the curly bracket (placeholder) icon will be available inside the content panel; if you are sending an email, you will find it in the subject field. 

Click the icon to see the menu with the available placeholder attributes. All Infobip users have access to the following ones:

  • Standard attributes
  • Custom attributes
  • Contact information
  • Variable names
  • Channel specific attributes

personalization using placeholders

You can select any number of placeholders when sending personalized messages.

Flow Variables

Flow variable can be described as a placeholder that is set in the flow, it provides data that is collected inside that flow (temporary data), and can be used in that same flow. The main advantage of this principle is being able to transfer different values from one flow element to another  - you use variables as placeholders to personalize messages and provide end users with the requested data.

An example of this could be a survey in which the end users are asked to provide some information. Every response can be stored in a flow variable and, before the survey ends, a confirmation message with all the responses that the user provided can be sent back to that user as a recap.

Flow variable can be set within the following elements:

•    Evaluate inbound message – sender, receiver, and message content can be stored in a variable
•    Call API – save the response from the third-party system and use it for the upcoming steps in the communication 
•    The Collect element in IVR

Flow variables can be used in all elements that contain placeholders:

•    All send elements
•    Call API
•    Segment Audience
•    Wait for Change in People Profile
•    Update Person Profile
•    IVR Collect
•    IVR Play