Skip to end of metadata
Go to start of metadata

Last Updated: Wednesday, September 1, 2021

Using File Triggered Broadcasts

The Vibes Mobile Engagement Platform can be configured to automatically send messages to subscribers using a flat-file (CSV) batch process. Incoming files will be handled and routed based upon a designated set of characters, words or phrases in the file name. The result of processing these files is sending a SMS message or Push notification through the Platform.

Within the file, an identifier (such as person_key, external_person_id, vibes_device_id or mdn) is required to ensure a subscriber is valid and to properly route the message. The Platform can also accept file specific data that can be used to personalize the triggered messages to subscribers such as customer’s first and last name, order numbers, and even URLs.

File Layout

The file format will be a recipient list integration file.  For details on file format and error messaging see recipient list section here.

File Naming


File name trigger logic is created at the campaign level in the Vibes Platform UI.

The beginning of the file name is customizable by campaign, but every file MUST end in .recipient_list.

The file name is critical for managing incoming files to the Vibes Platform and message delivery. Every file triggered campaign is associated with a specific file naming format to ensure the subscribers are routed to the appropriate campaign. The naming convention of the file must match the respective campaign name in the Platform to trigger a message.


  • Once the campaign specific file name trigger structure is set, it cannot be changed for the campaign
  • All file names must contain file name trigger logic in the exact same order and format set at the campaign otherwise, the file will not be recognized by the Vibes platform.
  • One file can be utilized for multiple triggered campaigns in the Platform. You can use different filters per campaign to target different subsets of subscribers in the file. If filters are not used, two messages will be sent to everyone in the file.

File Body

The file body can contain the following fields as data, separated by the delimiter.

Note: The field names must be lowercase.

Field Name

Data Type




The Person Key is a UUID to include in the Recipient List. The person_key must be lowercase. See Person APIs for the field definition.



The external system's Person ID to include in the Recipient List.  See Person APIs for the field definition.



The Vibes Device ID to include in the Recipient List. The vibes_device_id must be lowercase.   The vibes_device_id is specific to push devices.



A Mobile Directory Number (mdn) is the mobile_phone number to include in the Recipient List.

  • For non-US numbers, the Mobile Directory Number (mdn) must be in E.164 format.




link to E.164 format: E.164 Support for Platform APIs

  • US numbers can use the 10-digit mdn format.



A custom field that can be used for personalization in the SMS or Push triggered campaign.


  • "Custom" is not a specific string. It means that any custom field name may be used in the data file.
  • The header row must match the name of the custom field EXACTLY.
  • If you are passing data through and using it to customize messaging content, you will use the tag {{rl.person_info}} within the body of the message.
  • Be sure that the tag and the file headers are lowercase and the exact same nomenclature to ensure data is being recognized and passed through properly

Identifying Persons

For a particular row, only one of external_person_id, person_key, mdn, or vibes_device_id need to be specified, as these are alternate means of referencing a Person. If more than one value is specified, we will use the value with the highest precedence.

Precedence order:

  1. Person_key
  2. External_person_id
  3. mdn
  4. vibes_device_id

Message Delivery

Message distribution is set and managed within the Vibes platform UI when creating the file triggered campaign.

Messages can be scheduled to trigger at a set time and time zone after file upload completion to the Vibes platform or as soon as the file finishes uploading to the platform.

If the campaign is set to trigger at a set time, the time of deployment is set within the Vibes Platform rather than in the parameters of the dropped file.  Once the campaign file is accepted by the Vibes portal, the message will remain in a masked queue within the Vibes Platform until campaign deployment. 

The only means of deleting a campaign that has been processed through the Vibes Platform is by performing an API call to delete the campaign. Once the campaign has been deleted, an updated file can be dropped to initiate the new SMS. You will need the campaign id and company key to perform this action. 


DELETE /companies/:company_key/mobiledb/broadcasts/:broadcast_id

Link to Broadcast API Documentation:


  • The recipient list file only determines who will receive the message, and assignment of personalized message content. Delivery time cannot be determined within the recipient list file.
  • The file must finish uploading prior to the send time configured at the campaign level. If the file upload finishes after the schedule time, the messages will trigger the following day.

File Triggered Message Scenario

Imagine you would like to send your customers an SMS notification a few days before their rewards balance expires, and the SMS will contain information specific to the customer’s loyalty balance with a personalized coupon offer. You would like the message personalized to include the customer's first name, reward balance and expiration date, and a custom coupon offer.

To achieve this, you need to create a File Triggered campaign in the Vibes Platform UI to be used when a expiring rewards message needs to be sent, and the file trigger campaign needs to be configured to respond to files containing the following phrase in the file name:'rewards_expiration_reminder'.

The Message Content in the file triggered campaign would be defined as follows:

Hi, {{rl.first_name}}! Your ${{rl.reward_value}} reward is expiring in {{rl.expiration_days}} days! Use code {{rl.reward_code}} before {{rl.expiration_date}}! Reply HELP for help, Reply STOP to cancel. Msg&data rates may apply

When the following recipient list file example is uploaded to the SFTP or platform UI:

File Name: rewards_expiration_reminder_03302020.recipient_list

Recipient list format:


The values in the additional columns after external_person_id are substituted for the placeholders defined in the File Trigger Message Content, resulting in delivery of the following message to the recipient with external_person_id=53438280 in MobileDB:

 Hi, Josh! Your $10 reward is expiring in 23 days! Use code 11P8R8QWXP8H before 3/31/2020! Reply HELP for help, Reply STOP to cancel. Msg&data rates may apply

Process Notes:

  • File name logic is created when configuring a File Triggered Campaign in the Vibes Platform UI.
  • Output markup for dynamic data in Message Content must be prefaced with "rl.", denoting elements of the custom_data column header in the file.
  • Example: If "first_name" is supplied in the custom data column header name object, the Message Content markup would refer to that value as "rl.first_name".
  • File Trigger Message Content supports Liquid Markup Language syntax.
  • File trigger messaging can be scheduled at a set time and by time zone or once the file has processed. Configuration can be setup in the Vibes Platform UI.
  • If the File Trigger campaign is set to distribute messages by a set time and time zone, the file must finish uploading prior to the send time configured at the campaign level. If the file upload finishes after the schedule time, the messages will trigger the following day.
  • If a person_key/mdn/external_person_id is on the file more than once, they will only get the first message.  The Vibes platform de-dupes.
  • No labels