Integrations
Salesforce Marketing Cloud messaging

Salesforce Marketing Cloud messaging

This guide explains how to integrate Salesforce Marketing Cloud with the Infobip platform.The integration lets you use the following channels directly in your Salesforce Marketing Cloud customer journeys:

  • SMS
  • LMS
  • MMS
  • RCS
  • WhatsApp
  • Viber
  • Kakao Alim
  • Kakao ChinguTalk
  • Zalo

What you will need

To set up this integration, you need the following:

  • An Infobip account (if you do not have one, you can create one (opens in a new tab))
  • Salesforce Marketing Cloud account with Admin permissions
  • An API key to enable communication between Salesforce Marketing Cloud and Infobip
  • Infobip supplied package containing data extensions

Features

  • Implement the most efficient messaging channels to enhance your marketing efforts
  • Create end-to-end Journeys with Infobip SMS, MMS, RCS, WhatsApp, Viber and Kakao Alim Talk to increase campaign effectiveness in Salesforce Marketing Cloud

Installation

To use the application, deploy the package provided by Infobip that contains up to six data extensions.

Deploy package

To deploy the package provided by Infobip:

  1. Log into your Salesforce Marketing Cloud account.
  2. From the home page, go to Platform > Package Manager.
  3. On the Deployment tab, click Deploy, and then click Upload.
  4. Select the package file shared by Infobip and click Upload.
  5. Click Next and then click Deploy.

The Infobip-provided package contains up to six data extensions:

Data extensionPurpose
SMS Delivery ReportsDelivery notifications on SMS, LMS, and MMS
Omni ReportsDelivery & Seen notifications on Viber, WhatsApp, RCS, Kakao Alim, Kakao ChinguTalk, and Zalo
Unified URL TrackingClick notifications on SMS, LMS, Viber, and WhatsApp
Inbound MessagesStoring inbound message replies on SMS, RCS, Viber, and WhatsApp
SampleAudienceAudience sample

Once the package is deployed, the data extensions listed above are configured automatically. Their purpose is to allow message data, such as delivery reports, to be sent from Infobip to your Salesforce Marketing Cloud instance. This in turn allows your system to take action based on the data. For example, if an SMS delivery report indicates that a message failed, then your system can use that status information to retry sending the message.

Important

If you plan to use multiple business units in Marketing Cloud separately for sending messages, deploy this package in every business unit separately.

App components configuration

This section explains how to add components inside the installed package for configuring the connector and sending messages.

To install the packages and start using the Salesforce Marketing Cloud app, use the following steps:

  1. Log into your Salesforce Marketing Cloud account.
  2. From the homepage, go to the drop-down menu with the name and avatar on the top right.
  3. Click Setup.
  4. On the setup page in the sidebar, go to Platform Tools > Apps > Installed Packages.
  5. Click New, and then enter the package details.
  6. Click Save.

The next section explains how to add components inside the installed package for configuring the connector and sending messages.

API integration component

To add the API integration component:

  1. Click Add Component.
  2. Select API integration and click Next.
  3. Choose Server-to-Server Integration type and click Next.
  4. Select the Server-to-Server properties:
    1. Enable Automation Journeys properties:
      • Read
      • Write
      • Execute
      • Activate/Stop/Pause/Resume/Send/Schedule
      • Delete
    2. Enable all Data properties:
      • Data Extensions Read and Write
      • File Locations Read and Write
      • Tracking Events Read and Write
Note

Before creating Marketing Cloud and Journey Builder components, contact your account manager to get the required endpoints.

Marketing Cloud component

To add the Marketing Cloud App component:

  1. Click Add Component.
  2. Select Marketing Cloud App and click Next.
  3. For a convenient configuration, when adding the names of components, consider using Infobip Configuration.
  4. Enter the same endpoint shared by the Infobip team in both the Login and Logout textbox.

Journey Builder components

Add two different components for sending messages and receiving delivery reports:

  1. Click Add Component.
  2. Select Journey Builder Activity and click Next.
  3. For a convenient configuration, when adding the names of components, consider using Infobip Messaging for messaging component and Infobip Reports for delivery reports component.
  4. From the Category drop-down, select the Custom property.
  5. Enter the endpoint shared by the Infobip team and save.

Once the components are complete, give access to any user who wants to use application inside the Journey Builder. Without these permissions, the application is hidden.

Note

The setup must be completed for every business unit separately.

Configure Infobip app

Infobip Configuration is a Marketing Cloud App that allows users to set global variables before starting to use Journey Custom Activity for sending messages. Users can change it anytime they launch an Infobip config app.

To go to the Configuration app, on the Marketing Cloud homepage, hover over the Salesforce Marketing Cloud home icon and then hover over the AppExchange icon. Click on Infobip Configuration.

Authorize the Infobip Configuration app to access your Salesforce Marketing Cloud data:

  1. MID - Enter the ID of your business unit, which can be found in top right corner of the Salesforce Marketing Cloud screen.
  2. Client Id - Copy and paste the tenant-specific Client Id, which can be found in the setup of the installed package.
  3. Client Secret - Copy and paste the tenant-specific Client Secret, which can be found in the setup of the installed package.
  4. SOAP Origin - Copy and paste the tenant-specific SOAP Base URI, which can be found in the setup of the installed package.
  5. Auth Origin - Copy and paste the tenant-specific Authentication Base URI, which can be found in the setup of the installed package.

Once you click Next, the authorization is done, and you have to connect the Infobip account to the Salesforce Marketing Cloud account.

Connect multiple Infobip accounts to the same Salesforce Marketing Cloud business unit.

Fill out the next section with the following information. If you don't have an Infobip account, you can create one (opens in a new tab).

  1. Add API Key - Connect one or multiple Infobip accounts to your Salesforce Marketing Cloud account by entering the API key (opens in a new tab). Enable the following API scopes:
    • message:send
    • account-management:manage
    • numbers:manage
    • subscriptions:manage
    • application-entity:manage
    • whatsapp:manage
    • omni-failover:manage (for Kakao Chingu)
  2. Add API Base URL - Add your Infobip Base URL and connect your account to the Salesforce. You can find it on the Homepage in the upper right section:
  3. To connect to another Infobip account, click CONNECT ANOTHER ACCOUNT and repeat the steps.
  4. When you have connected all the Infobip account/s, go to the next step.
  5. Configure the channels to be used within Salesforce. See Configure channels.

Configure channels

To configure the channels to be used in Salesforce:

  1. Add the custom domain you want to use when sending URLs in Custom Domain. To use a Custom domain for URL shortening, start by registering and verifying the domain through the Infobip web interface (opens in a new tab). It is recommended that you create a subdomain for shortening, following the format test.sample.com. The custom domain is then accessible for use within messaging activities.

  2. Choose a messages delivery tracking option - select between the native and external ways of storing delivery notifications:

    NativeExternal
    SMS delivery reports - Select from the drop-down list where to save SMS, LMS and MMS delivery reports. Default data extension would be SMS Delivery Reports.SMS Notification URL - Add webhook resource URL which will be used for storing SMS reports.
    Omni delivery reports - Select from the drop-down list where to save WhatsApp, Viber, RCS, Kakao Alim, Kakao Chingu, Zalo delivery reports. Default data extension would be Omni ReportsOMNI Notification URL - Add webhook resource URL which will be used for storing Omni reports.
    Url click reports - Select from the drop-down list where to save click reports for all channels. We suggest using Unified URL Tracking data extension. 
    Important

    If you select the Native method of storing report data, it is not recommended that you add custom fields in the report's data extensions, unless those custom fields are designated as optional. Custom fields are not populated automatically. Be aware that you need to populate them after reports are saved.

    If you intend to add custom data fields in report data extensions, it is advisable that you select an External method and use cloud pages for the storage.

  3. Add your custom Alphanumeric senders:

    • SMS Sender Name * - your sender name for SMS channel
    • Viber Sender Name * - your sender name for Viber channel
    • Kakao Sender name * - your sender name for Kakao channel
    • RCS Sender name * - your sender name for RCS channel
    • Zalo Sender name * - your sender name for Zalo channel

    * Custom domain, SMS Sender Name, Viber Sender Name, RCS Sender Name, Zalo Sender Name, and Kakao Sender Name fields are optional. When adding Alphanumeric sender names or custom domain, after typing the name, press Enter to create a token similar to the following screenshot.

  4. Subscriptions allow users to selectively receive, secure, and reliably manage notifications, making it a more robust solution for handling event-driven data:

    • If you've added a new account with the subscriptions scope selected in the API key, subscriptions are automatically created for that account configuration
    • If you've already added an account and want to enable the subscriptions feature, enable the required API scopes to your API Key and follow the configuration steps. At the step for connecting to another Infobip account, click Create.

    The Subscription action creates a new application in your Infobip web interface under the Applications and Entities section. You can view all subscription details in the Subscriptions Management section.

    Each subscription has its own notification profile where you can customize the webhook URL for getting DLR reports.

  5. Managing inbound number configuration. This feature allows users to manage inbound number configurations within the configuration application. Setting up an inbound configuration is necessary to enable two-way messaging and receive delivery reports (DLRs). Users can check the status of their number configuration in the Infobip web interface under Inbound Configuration. There are three possible configuration states:

    • Create Configuration
      • Indicates that the number does not have a default inbound configuration
      • Creates an inbound configuration necessary for using two-way messaging actions in SFMC
    • Remove Configuration
      • Deletes the default inbound configuration for the number
    • Use Default Configuration
      • Indicates that the inbound number configuration is already set up for another application instead of SFMC
      • By selecting this option, the inbound configuration will be reassigned to SFMC SFMC inbound configuration

Important Notes

You cannot modify the inbound number configuration within the application if:

  • The number is shared, disabling the configuration settings.SFMC inbound configuration shared number
  • You do not have the necessary permissions to edit number settings on the account.SFMC inbound configuration permission

For any changes or troubleshooting, check your permissions and ensure the number is not shared before attempting modifications.

Important

Data is saved securely in the Infobip Configuration data extension using encryption methods and the next section is enabled.

Sender names are mandatory in case you are using senders that are not configured for 2-way communication.

When all fields are added, click Save and then save changes for the connected account. When you save changes for every connected account go to the next step and finish configuration. If everything is successful, you receive confirmation that the application has been successfully configured.

Journey Audience Builder

To prepare the Journey Audience and create Audience data extension, consider the following:

  • Enable the Is Sendable? feature
  • Adding mobile phone is mandatory - add it with Phone attribute type
  • Setting Subscriber key is mandatory - set unique relationship for Subscriber key (for example, ContactKey)
Note

Attribute names must not include any spaces because Infobip Message will not be able to process it.

For reconfiguring the Subscriber Key relationship and sending feature, enter the data extension audience you want to reconfigure and click Edit on the left side of the screen. Then select the Used for Sending checkbox and map your ContactKey field to relate to the Subscriber Key. Click Save.

Your data extension is now ready for use in the Journey Builder. You can add your custom attributes to data extension. The next step is to map the Journey data extension to system data and message reports.

Note

Infobip connector also works with Salesforce Data entry source (Salesforce Campaign and Salesforce Data are supported).

Important

If there are multiple fields with Phone type in the audience data extension, messages are sent to the first populated phone-type field encountered.

Whitelist Infobip IP address

If you have enabled the Log Violations & Deny Access option in the Restrict Logins by IP Address (IP Allowlisting) feature, add the following IP addresses:

20.126.166.55
20.126.166.74
20.126.166.90
20.126.167.113
20.126.167.168
20.126.167.39
20.23.163.147
20.23.32.13
20.23.33.11
20.23.33.133
20.23.33.9
20.23.34.108
20.23.34.16
20.23.34.43
20.23.35.21
20.23.35.230
20.23.38.27
20.23.38.31
20.23.38.58
20.31.80.114
20.31.80.17
20.31.80.45
20.31.81.173
20.4.153.241
20.4.153.250
20.4.153.255
20.4.154.140
20.4.154.181
20.4.154.190
20.4.154.203
20.4.154.22
20.4.154.227
20.4.154.41
20.4.154.46
20.4.154.52
20.4.155.122
20.4.155.124
20.4.155.133
20.4.155.138
20.4.155.182
20.4.155.19
20.4.155.193
20.4.156.16
20.4.156.185
20.4.156.228
20.4.156.74
20.4.157.109
20.4.157.128
20.4.157.185
20.4.157.217
20.4.157.53
20.4.158.126
20.50.2.92
52.137.60.189
52.137.60.234
52.137.61.87
52.137.63.144
52.137.63.216
52.137.63.63
52.157.237.214
52.157.238.0
52.157.238.110
52.157.238.137
52.157.238.226
52.157.238.38
52.157.238.66
52.157.239.126
52.157.239.149
52.157.239.242
52.236.144.49
52.236.144.93

How to create a Journey using Infobip channels

This section gives an example of how to create a journey that includes SMS, LMS, MMS, Viber, WhatsApp, Kakao Alim, Kakao ChinguTalk and Zalo. To get started:

  1. Log into Salesforce Marketing Cloud and go to Journey Builder.
  2. Create the new journey.
  3. Select whether to build a multi-step journey with the Data Extension or Salesforce Data entry point.
  4. Select the data extension that was created for this journey.

Include a Message in a Journey

Note

To use hashtag (#) in a message, you must add an escape character (\). For example, This is a sample message with hashtag \#haveaniceday \#hello \#its2025 !.

Important

Make sure that you have Administrator role or you allow the Manage Data (Email/Subscribers/Data Extension) and WebService API (Email/Admin/API Access) permissions in your user settings.

Select Infobip Message Custom Activity and select the communication channel you want to use. Then, click Next.

Important

You must define the data extension before configuring the Infobip Message element. If you include the data extension after already defining the Infobip Message element, you may experience issues with the Journey, for example, not being able to pull records from the data extension when messages are being sent.

By default, Bulk Id in reports is defined for SMS, LMS, MMS, Viber, Kakao, and WhatsApp as Infobip SMS, Infobip LMS, Infobip MMS, Infobip Viber, Infobip Kakao, and Infobip WhatsApp, respectively. To change Bulk Id to a different value, provide a different activity name before the activity is configured.

SMS in a Journey

Set up the message according to the form and click Next. For SMS, you can add a link to the message for URL tracking. When an end user clicks the link, a report is sent to the SMS URL Tracking data extension. You can send a test message if you want to, but placeholder values will not be dynamically replaced in test messages.

Regional

Region-specific parameters are often imposed by local laws. Use the following information if the country or region that you are sending an SMS to requires additional information.

Language character set

This feature uses the language code to set the correct character. The possible values are:

  • TR for Turkish
  • ES for Spanish
  • PT for Portuguese
  • AUTODETECT to let platform select the character set based on the message content
Turkey local traffic only

To send promotional SMS to phone numbers registered in Turkey, include IYS regulations specific parameters:

  • Brand Code (optional) - ID of the company based on a company VAT number
  • Recipient Type (mandatory) - must be TACIR or BIREYSEL
India local traffic only

To define the DLT (Distributed Ledger Technology) template, select DLT Template (India local traffic only) and update the following fields:

  • Principal Entity ID (mandatory) - your assigned DLT principal entity ID
  • Content Template ID (optional) - the registered DLT content template ID that matches the message you are sending
  • Telemarketer Id - your assigned Telemarketer Id (required for Aggregators)
Salesforce Marketing Cloud SMS India Traffic

To include more additional features for this channel (URL shortening and tracking, Sending speed limit, Trigger Event on Response, Custom callback data), see Additional features.

To enable two-way communication, enable the Trigger Event on Response toggle.

LMS in a Journey

LMS stands for Long SMS. Give your message a title and personalize it so every end-user in the journey gets personalized message. Please keep in mind that the Reseller code is mandatory field and you need to enter one to send SMS messages to phone numbers registered in South Korea.

To add tracking and URL shortening for URLs in the LMS body, enable URL Shortening & Tracking.

To include more additional features for this channel (URL shortening and tracking and Sending speed limit), see Additional features.

MMS in a Journey

Send interactive MMS messages and get delivery reports. Add MMS segment type and create interactive messages. Text and Media files (image, video, audio, documents, and so on) are supported. Personalize the message by adding merge fields from the drop-down list.

Note

All operators handle messages of up to 300KB of data. Most of the US and Canadian carriers can handle up to 1MB of data. It is recommended that you send a test message before saving.

To include more additional features for this channel (URL shortening and tracking, Sending speed limit, Custom callback data), see Additional features.

To enable two-way communication, enable the Trigger Event on Response toggle.

RCS in a Journey

To send messages using the RCS channel, you must have a registered sender on your Infobip account. For more information, see RCS.

Send messages to one of the following supported types:

  • text
  • file
  • card
  • carousel

You can also add suggestions as clickable actions on the entire message as well as a single suggestion on individual card or cards inside carousel. The possible combinations include:

  • Reply
  • Open URL
  • Dial phone
  • Show location
  • Request location
  • Calendar event

In addition, the RCS channel supports adding custom callback data, enforcing a sending speed limit, and URL shortening and tracking. For more details, see Additional features.

Viber in a Journey

To send more interactive messages, you can send text message and include an image URL, a button name, and a button URL in a Viber message. Choose your message type from the drop-down list.

Salesforce Marketing Cloud Message Type

You can personalize the message by adding merge fields from the drop-down list.

Salesforce Marketing Cloud Personalize Message

To include more additional features for this channel (URL shortening and tracking, Sending speed limit, Trigger event on response, Custom callback data), see Additional features.

WhatsApp in a Journey

To send journey messages by using the WhatsApp channel, you must create and register your message templates (opens in a new tab) and then submit the templates to WhatsApp for approval. Select a template from the Template drop-down list.

The supported templates are:

  • Text Templates
  • Media Templates

Personalize templates by adding placeholder values. For more information about supported templates, see Message types.

To include more additional features for this channel (URL shortening and tracking, Sending speed limit, Custom callback data), see Additional features.

KakaoChinguTalk in a Journey

This channel lets you include these elements in a message:

  • Text
  • Image URL
  • Image link
  • Up to 5 buttons (supported types are web link and app link)
Salesforce Marketing Cloud - KakaoChinguTalk connection

To include more additional features for this channel (URL shortening and tracking, Sending speed limit, Custom callback data), see Additional features.

Kakao Alim in a Journey

Note

This channel is currently in a test version and uses templates to send messages. To register a template, contact Kakao Alim support.

To create a template, there are some mandatory fields you need to fill in. Please make sure you enter the correct data for the template you are trying to use, as currently there are no validations. Templates are built of Mandatory fields: Template name and Message Body, and Optional fields: Template title, Image URL, and Buttons.

Kakao Alim supports seven different button types:

  1. App Link
  2. Delivery Tracking
  3. Web Link
  4. Chatbot Switch
  5. Bot Keyword
  6. Message Delivery
  7. Add Channel

You can personalize the message by adding merge fields from the drop-down list in the Message Body.

To include more additional features for this channel (URL shortening and tracking, Sending speed limit, Custom callback data), see Additional features.

Zalo in a Journey

To send messages using the Zalo channel, you must have a registered sender on your Infobip account. For more information, see Zalo. Infobip supports different zalo templates.

Note

Templates need to be registered with Zalo's system and approved before they can be used.

The name of the template must be identical to its registered ID. For example, if the registered template ID is 3366070982, the template name must also be 3366070982.

The template data must only include placeholders that are registered for the specified Zalo template. For instance, if the placeholder customer_name is registered for the template with ID 3366070982, ensure that the template data contains only customer_name and no additional or unregistered placeholders.

Additional features

The following sections describe how to use additional features to modify and improve the implementation.

Sending speed limit

The sending speed limit is an optional feature that allows you to determine the rate at which Infobip dispatches messages to recipients. The sending speed limit can be configured on all channels.

Once enabled, two values must be configured:

  • message count of messages
  • time unit

Message count is a number between 1 and 100.000, and the time unit can be defined as a minute, hour, or day. This setup defines the maximum number of messages that can be sent within the specified time unit.

Messages will be evenly distributed throughout the chosen time unit. For instance, if the configuration instructs the system to send 500 messages per hour, it will dispatch a message approximately every 7.2 seconds.

The following limitations affect the use of the send speed limit feature.

Systems throughput limitation

Both Salesforce and Infobip systems have inherited limitations on how fast messages can be processed for a single activity, so if the configuration would require to send more than couple hundred messages per second, for example 30.000 per minute, it would be better to just turn this option off.

Journey configuration limitation

Sending speed limit is set per journey version and activity! When a new version of the journey is created and executed, it does not consider the messages sent in the previous version. If journey is configured with two messaging activities sending speed limit is applied separately.

Reports activity limitation

Using Reports activity for Messaging activities with Sending speed limit should be done with a lot of thought. In this context, Salesforce Marketing Cloud moves contacts to the activity based solely on the wait time specified within the journey.

In the screenshot above, the messaging activity is configured with a sending speed limit of 50.000 messages per day, and there is only a one-hour delay between the messaging and reports activities. Considering a total contact count of 100.000, the delivery of all messages will span two days. However, as all contacts reach the reports activity after just one hour, a substantial number will be categorized as undelivered.

Journey stopping/pausing limitation

If you pause or stop the journey after all messages have been queued for sending, it won't affect the delivery process. For instance, if there are 100.000 contacts in the audience with a sending speed limit of 50.000 messages per day, it may take only a couple of minutes for all contacts to pass through the messaging activity. Even if youpause or stop the journey after 10 minutes, the queued messages will continue to be delivered as scheduled over the next 2 days.

URL shortening and tracking

To add tracking and URL shortening for URLs in the SMS body, select URL Shortening & Tracking. You can use the default domain or select custom domain you've added in the Infobip Config.

To remove https:// from the URL, enable Remove https:// from URL.

Important - WhatsApp only

URL Shortening & Tracking are exclusively applied to URLs within the template body parameter. If a URL is placed in the template header, it will be shortened but not tracked. Similarly, URLs within the template-defined button will not be tracked.

URL shortening
Note

URL shortening and tracking is supported for SMS, LMS, MMS, RCS, Viber and WhatsApp channels.

Trigger event on response (Receive inbound messages)

Note

With the two-way communication feature, once a journey is activated, the end-user will receive a message. They can respond directly to this message, and their reply text will be captured in the Inbound Messages data extension.

Installation and configuration

To set up the app to receive inbound messages for two-way communication:

  1. Update the installed package to obtain the Inbound Messages data extension where received messages will be stored. To update the installed package, follow instructions for deployment from the beginning.
  2. In App permissions update, enable List and Subscribers permissions to trigger API Events.
  3. Update the number configuration you want to use in the Infobip Numbers app for receiving inbound messages.
    • Insert the following link: https://infobip-reports.ibintegrations.com/infobip/webhooks/inboundMessage
    • Select MO_MESSAGES_API_JSON for Renderer type.

Enable two-way communication

To enable two-way communication in the journey:

  1. Add and configure the Wait Until Event activity in your journey:
    • Click Create New.
    • Select the Inbound Messages data extension from the webhooks.
    • Set Maximum Wait Duration time. If an event doesn't occur during the specified time period, the contact continues on the No Event path of this split. This setting prevents the contact from remaining in the wait step indefinitely.
    • Rename the Wait Until Event (SMS Response in the example below) activity.
  2. Configure the Infobip Messaging Activity and enable Trigger Event on Response.
  3. Add the Infobip Reports activity after the Wait Until Event to fetch the response, enabling decision-making within the journey.
  4. Add a decision split to handle all end-user responses and route contacts to the appropriate paths.
  5. Check the end-user replies in the Inbound Messages data extension.
Important

During the renaming process, be cautious as this activity must be added first for every messaging activity that requires two-way communication. Ensure that you do not use the same name for this activity more than once.

Note

For inbound WhatsApp messages, text, image, video and document reply are supported. For inbound Viber messages, only text reply is supported. For inbound RCS messages, only suggestion replies are supported.

Two-way communication is supported for SMS, MMS, RCS, Viber and WhatsApp channels.

Enabling custom callback data

Custom callback data is an optional feature that allows you to add custom fields to your callback data.

To add custom callback data, enable the toggle button in the Message Activity configuration and click + Add custom callback data.

You then see the Field name and Field value inputs. Insert free-form values or select and personalize callback data with merge fields from a drop-down.

The following table shows the limitations and recommendations for keywords and file names.

Restricted keywords for field name:Field name restrictions:
ActivityId
BulkId
From
Message
JourneyName
ContactKey
MID
VersionId
VersionNumber
TemplateName
  • Cannot contain double quotation marks (U+0022)
  • Cannot contain reverse solidus or backslash characters (U+005C)
  • Cannot contain control characters or non-printable characters (U+0000 to U+001F) such as tabs, line feeds, and shifts
Important

The callbackData parameter is limited to 4000 characters both on the Infobip API and data extensions. Salesforce Marketing Cloud currently uses 250-600 characters for callback data, depending on message length, so it is important to stay within the limits. The message fails if the limit is reached.

The following image shows custom callback data saved in the Delivery reports data extension.

Multiple phone fields

The Multiple phone fields feature is applicable only when a data extension contains more than one field of the type phone. This feature is particularly useful in scenarios where different customer phone numbers need to be stored across various columns within the same data extension. For example, if a business needs to store separate phone numbers for home, work, and mobile contacts, each can be saved in different columns (for example, Home Phone, Work Phone, Mobile Phone) in the same data extension. This allows for greater flexibility in targeting communications, ensuring the right message reaches the right phone number based on the intended use case.

Important

This feature is automatically activated if the data extension contains more than one phone type field. The feature will not be visible if data extension contains only one field of type phone.

Custom data extension

The custom data extension feature is available only when the entry source is an API Event. Without this feature enabled, our activity will use data directly from the API Event request body. However, if the feature is activated, the system will fetch data from the selected data extension and use that data to send messages.

This feature is especially useful in scenarios where a client initiates a journey with an API trigger event but also performs manipulations or other activities within the journey that update data extension rows. If the client wants to use the updated data extension data for sending messages, they must enable this feature in the additional options and specify the name of the data extension they want to use.

Error handling for Infobip message custom activity

In situations where a user makes an error or if Marketing Cloud doesn't send all of the details for a successful request, the app returns messageStatus as outArgument in the Journey Data, rather than a hard error. A hard error would cause the record to become stuck on this activity and not continue with the journey.

So, if something is wrong with the request, the app returns success but with an additional payload that describes the error. You can use this payload to evaluate whether you wish to re-engage the record with another message.

This type of error handling is useful for validating and creating a decision split when the request record is re-engaged. For example, the following scenario describes decision split checking where the phone field is empty. In this example, you can see a data extension where one record has phone and the other record is empty.

Salesforce Marketing Cloud Sample Audience

To set up the decision split, add the data extension to a journey as an entry source and configure Infobip message activity.

Create the decision split and choose messageStatus from Custom Activity (Infobip SMS).

You can see in this example that messageStatus is: Error: Missing phone number in request.

The result of the sample send is similar to the following:

The record with an empty phone number is injected to the NO PHONE NUMBER path.The record with a phone number follows the WITH PHONE path.

In the custom activity details, you see a success status.

In the status detail for the record with the empty phone, you see the BadRequest status.

See the following table for the full list of possible responses for messageStatus and the channels available for that response.

Message statusChannels
Success: Message pendingSMS, LMS, MMS, Viber, WhatsApp, Kakao ChinguTalk, Kakao Alim
Error: Missing trackClicks flagViber, SMS, LMS, WhatsApp
Error: Missing shortenUrl flagViber, SMS, LMS, WhatsApp
Error: Missing phone number in requestSMS, LMS, MMS, Viber, WhatsApp, Kakao ChinguTalk, Kakao Alim
Error: Invalid tracking url lengthViber, SMS, LMS, WhatsApp
Error: Invalid text lengthSMS, WhatsApp, Viber
Error: Invalid template nameWhatsApp
Error: Invalid scenario keyViber
Error: Invalid promotional flagViber
Error: Invalid image url lengthViber, Kakao
Error: Invalid from fieldWhatsApp, Kakao, Viber
Error: Invalid custom domain lengthViber, SMS, LMS, WhatsApp
Error: Invalid buttons field lengthKakao
Error: Invalid button url lengthViber
Error: Invalid button text lengthViber, Kakao
Error: Invalid button text lengthKakao
Error: Invalid androidScheme and iosScheme lengthKakao

Get message report

After you add the Infobip Message element, you can add the Infobip Reports activity element to retrieve a report from the message sent. Infobip reports activity is optional and should be used only when making a split decision in a journey based on message reports.

Select the message that was configured inside the journey under Select message activity and the data extension where the report has been saved under the Select data extension drop-down list.

The available data extensions for reports are:

  • Delivery Reports - fetching information if the message was delivered, rejected, or seen.
  • URL Tracking Reports - fetching information if the URL link inside the message, for that proper channel, was clicked.

Message status is saved under Journey Data and it is available in the decision split.

Important

In the cases where Infobip is trying to deliver a message on a device for some time, no report is created in the data extension. For this, you see Journey Data NOT_AVAILABLE for delivery reports and NOT_CLICKED for click reports.

Set Up a Decision Split

After you set up the activity for saving messageId, you can define a decision split in the flow:

  1. Click Edit.
  2. Under Attributes, click Journey Data.
  3. Click Custom Activity: Infobip Reports
  4. Depending on the report data extension that you selected in the previous step, you see statusName for Delivery reports and the URL for URL Tracking reports.

The available parameters for Delivery reports are:

  • statusName
  • statusGroupName
  • errorName
  • doneAt
  • sentAt
  • seenAt (for Omni reports)

The available parameters for URL Tracking reports are:

  • notificationType
  • url
Note

The statusGroupName parameter equals to DELIVERED to check delivery status.

If the seenAt parameter is not empty, add SEEN as the value in decision split. Otherwise, use NOT_SEEN.

For URL clicks in SMS messages, you can check the exact value of the url parameters (for example, which URL is being tracked).

For example, if https://www.infobip.com (opens in a new tab) was the URL sent in the message, the decision split branch should check if the URL is equal to https://www.infobip.com (opens in a new tab). If there is no click report saved for a specific customer, check if the URL is equal to NOT_CLICKED. To see if a Viber message was viewed, check whether the seenAt value in the Omni message report is not null.

For descriptions of the possible message statuses, see the Response Status and Error Codes documentation.

There are five statuses that are returned to Journey Data in a Decision Split:

  1. DELIVERED
    • The message has been successfully processed and delivered.
    • If you want to check whether the message arrived to the customer's device, DELIVERED_TO_HANDSET is returned and checked in the decision split.
  2. UNDELIVERABLE
    • This status is returned if the message was sent to the operator but it was rejected by them or they returned UNDELIVERED status.
    • Multiple statuses can be returned, so it's best to check if statusName begins with UNDELIVERABLE.
  3. REJECTED
    • The message has been received but has either been rejected by Infobip or the operator has reverted REJECTED as final status.
    • Multiple statuses can be returned, so it's best to check if statusName begins with REJECTED.
  4. EXPIRED
    • The message has been sent and has either expired due to pending past its validity period (our platform default is 48 hours), or the delivery report from the operator has reverted the expired as a final status.
    • Multiple statuses can be returned, so it's best to check if statusName begins with EXPIRED.
  5. NOT_AVAILABLE
    • Delivery of the message is pending (message is not yet delivered, however it can technically be delivered), the operator keeps trying to deliver the message until its expiry.
    • To check this status, add a new branch and check if statusName begins with or is equal to NOT_AVAILABLE.

Set up contact information for the Journey

After you finish setting up the journey, you need to select a Contact Entry to use. You map the default mobile number to the data type, Phone, in your data extension. This is available from the drop-down list.

IMPORTANT

When setting up a Journey based on a copy of an already existing Journey, make sure that you've reconfigured the Infobip message activity, otherwise you receive an error message.

When activating Journeys based on automations, make sure that the data extension entry source is already defined and the automation already exists before running journeys.

Reports

This section shows the full list of attributes available for each of the reports.

To get the values from callback data, you need to deploy a new package for that feature. Contact Support to get package information.

This feature extracts data from the data extension into additional fields. For example, if the callback data contains a value like Activity ID with this feature, the value is stored in a separate column - Activity ID. Then you can use that value from the added column to make split decision in a Journey.

OMNI delivery reports

OMNI delivery reports fetch the information about whether the message was delivered, rejected, or seen.

Attribute nameAttribute typeIs nullableDefault valueLengthDescription
messageIdText  50The ID that uniquely identifies the message sent.
messageCountIntegerx1 Number of messages sent to end user. Count is always 1.
toText  50Message destination address. Addresses must be in international format
pricePerMessageDecimalx  The price per individual message.
CurrencyText  5The currency in which the price is displayed.
statusGroupIdInteger   Status group ID.
statusGroupNameText  50Group name for the status.
statusIdInteger   Status ID.
statusNameText  50Status name.
statusDescriptionText  100Human-readable description of the status.
errorGroupIdInteger   Error group ID.
errorGroupNameText  50Error group name.
errorIdInteger   Error ID.
errorNameText  50Error name.
xText  1000Human-readable description of the error.
errorPermanentBoolean   Indicates whether the error is permanent.
callbackDataTextx 4000The callback data sent through the callbackData field in your fully featured message.
sentAtDate  50Date and time the message was sent.
doneAtDate  50Date and time the message was finished processing by Infobip.

This is when the final status of the message is returned (delivered, expired, rejected)
seenAtDate  50Tells when the message was seen.
fromTextx 50Tells who sent the message
channelTextx 50Channel which was used for sending messages

SMS delivery reports

SMS delivery reports fetch the information about whether the message was delivered, rejected, or seen.

Attribute nameAttribute typeIs nullableDefault valueLengthDescription
messageIdText  50The ID that uniquely identifies the message sent.
messageCountInteger 1 Long SMS messages have a character limit on how much can be sent over one message.

Longer messages are split up into multiple messages and sent separately.

This is the total count of messages one SMS was sent over.
toText  50Message destination address. Addresses must be in international format
fromTextx 50Tells who sent the message
pricePerMessageDecimalx 7The price per individual message.
priceCurrencyText  5The currency in which the price is displayed.
statusGroupIdInteger   Status group ID.
statusGroupNameText  50Group name for the status.
statusIdInteger   Status ID.
statusNameText  50Status name.
statusDescriptionText  100Human-readable description of the status.
errorGroupIdInteger   Error group ID.
errorGroupNameText  50Error group name.
errorIdInteger   Error ID.
errorNameText  50Error name.
errorDescriptionText  1000Human-readable description of the error.
errorPermanentBoolean   Indicates whether the error is permanent.
callbackDataTextx 4000The callback data sent through the callbackData field in your fully featured message.
sentAtDatex 50Date and time the message was sent.
doneAtDatex 50Date and time the message was finished processing by Infobip.

This is when the final status of the message is returned (delivered, expired, rejected)
originalMCCTextx 50Mobile country code of the recipients number
originalMNCTextx 50Mobile network code of the recipients number

Unified URL tracking

Unified URL tracking fetches information about whether the link inside message was clicked.

Attribute nameAttribute typeIs nullableDefault valueLengthDescription
notificationTypeTextx 50CLICKED
messageIdText  50The ID that uniquely identifies the message sent.
recipientTextx 50Contact who clicked on the URL
urlTextx 1000URL that was clicked in message
sendDateTimeDatex 50Date and time contact clicked on the URL.
deviceTypeTextx 50Phone or desktop
osTextx 50OS running on the device
deviceNameTextx 50Device manufacturer (Samsung, PC, Apple)
callbackDataTextx 4000The callback data sent through the callbackData field in your fully featured message.
channelText  50Channel used for the message (Viber, SMS, Whatsapp…)

Redeploy latest package version

Ensuring that the latest package version is deployed in Salesforce Marketing Cloud is critical to enabling all available features. If you are using an older version, follow these steps to redeploy to the latest package.

  1. Download the new package from the Infobip web interface.
  2. Redeploy the new package version:
    • In Salesforce Marketing Cloud, go to Platform > Package Manager
    • Click the Deployment tab
    • Click Deploy to start the install and deployment process
  3. Upload the newly downloaded package file. Click Next to continue.
  4. During installation, you are prompted to manage specific items, particularly data extensions. Choose from the following actions:
    • Create a New Item - Select this action if the required data extension does not exist in Content Builder (for example, if the old version lacks the Inbound Messages data extension). This creates and adds the missing data extension automatically.
    • Update with Package Item - Choose this action to update an existing data extension with new fields or modifications included in the package (for example, updating SMS Delivery Reports to include the sentAt field).
    • Use Current Installed Item - Select this action to keep the existing data extensions unchanged. If you choose to skip the updates, you may be prevented from using newly introduced features.
  5. Click Deploy to complete the deployment.
  6. On the confirmation page, click Done to finalize the deployment.

Your package is now successfully updated to the latest version.

Need assistance

Explore Infobip Tutorials

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
Service Terms & ConditionsPrivacy policyTerms of use