Broadcast API

To send a message to your users, you will need to create a broadcast. A broadcast can refer to either a SMS message or a push notification and is delivered to subscribers within your mobile contact book.

The following are the three main sections to a broadcast:

  • The metadata information, which includes the fields about the broadcast, such as the ID, URL, created date, and so on
  • The targeting information, which includes the fields used to identify recipients and craft the message
  • The delivery information, which is the metadata about the actual message delivery

Available API Methods

Elements & Attributes

Data ElementTypeDescription
broadcast_idIntegerVibes unique identifier for each broadcast.
statusStringThe status of the broadcast. Examples (always lowercase):

- scheduled: The broadcast will be sent at a scheduled time.
- in_progress: The broadcast is being sent.
- sent: The broadcast has finished sending.
- canceled: The broadcast has been canceled.
- deleted: The broadcast was canceled before sending.
- paused: The broadcast is waiting for an external action.
- failed: The broadcast has failed.
urlStringUnique resource URL for the acquisition campaign.
nameStringThe descriptive name of the broadcast message. Example: "First alert message".
created_byStringThe email address of the person who created the broadcast.
created_by_applicationStringThe application. Example: null, api.
send_scheduled_dateTimestampThe date and time the broadcast is scheduled to be sent. It should be in the ISO 8601 format - for example: 2017-02-16T17:30:00Z.
send_scheduleObjectOptional. Include this object if you would like to schedule the message to be sent by time zone.

To use this feature, you should have previously collected time zone in a custom field stored in the person record.
send_schedule.methodStringIf you are scheduling the broadcast to be sent by time zone, set this to by_time_zone. Default method is by_date.
send_schedule.field_nameStringIf you are sending the broadcast by time zone, use this field to indicate the name of the custom field used to collect users’ time zones.
send_schedule.send_dateStringThe date you’d like the broadcast to be sent. Use yyyy-mm-dd format.
send_schedule.send_timeStringThe time you’d like the broadcast to be sent in the person’s indicated time zone. Use a 24-hour clock and the following format: HH:MM.

Example: 17:30
send_schedule.default_time_zoneStringIf you are sending the broadcast by time zone, this is the time zone that will be used if the person’s time zone is not indicated in a custom field.
targetingObjectThe targeting information for the broadcast. Examples: message_template, channel, short_url_base, source_short_code, source_lists, shorten_urls.
targeting.message_templateStringThe text for the SMS or push message, including any custom fields or incentive tags.
targeting.source_short_codeObjectObject containing short code acting as the sender of the broadcast (if SMS or MMS).
targeting.source_short_code.short_codeStringShort code acting as the sender of the broadcast (if SMS or MMS).
targeting.source_short_code.country_codeStringCountry code for sender. Example: +1
targeting.source_short_code.source_typeString"SC" for short or long numeric codes; "ANC" for alphanumeric codes.
targeting.source_listsArrayIDs of lists included in the broadcast.
targeting.short_url_baseStringThe base URL for all shortened URLs
targeting.shorten_urlsBooleanIndicates whether or not the system should auto-shorten URLs in your message.
channelStringSMS or Push
deliveryTimestamp, StringThe information about the broadcast delivery, including recipient_count, send_start_date, and enqueue_completed_date.
created_atTimestampThe date this broadcast was created. It should be in the ISO 8601 format - for example: 2017-04-04T16:06:10Z.
updated_atTimestampThe date this broadcast was last updated. It should be in the ISO 8601 format - for example: 2019-05-12T05:09:48Z.

Entity Examples

The following is the JSON representation of an SMS Broadcast entity within the APIs.

{
    "broadcast_id": "1",
    "status": "sent",
    "name": "First alert message",
    "send_scheduled_date": "2017-04-04T16:05:00Z",
    "created_by":"[email protected]",
    "created_by_application": null,
    "targeting": {
      "message_template": "This is the 1st message sent to the {{ list_name }} list!",
      "short_url_base":"http://vbs.cm/",
      "shorten_urls": true,
      "channel": "sms",
      "source_short_code": null,
      "source_lists": [
        "A34H2q"
      ],
      "filters": []
    },
    "delivery": {
      "send_start_date": "2017-04-04T16:06:16Z",
      "enqueue_completed_date": "2017-04-04T16:06:16Z",
      "recipient_count": 1
    },
    "url": "/companies/:company_key/mobiledb/broadcasts/:broadcast_id",
    "created_at": "2017-04-04T16:06:10Z",
    "updated_at": "2019-05-12T05:09:48Z"
  }

The following is the JSON representation of a Push Broadcast entity within the APIs.

{
  "broadcast_id": "2",
  "status": "scheduled",
  "url": "/api/companies/:company_key/broadcasts/:broadcast_id",
  "name": "Test Broadcast SAT 2",
  "created_by": "[email protected]",
  "created_by_application": "api",
  "send_scheduled_date": "2017-02-16T17:30:00Z",
  "send_schedule": {
    "method": "by_time_zone",
    "field_name": "vibes_timezone",
    "send_date": "2017-02-16",
    "send_time": "17:30",
    "default_time_zone": "US/Central"
  },
  "targeting": {
    "message_template": "Push message content",
    "shorten_urls": true,
    "short_url_base": "http://vbs.cm/",
    "source_short_code": "54321",
    "source_lists": [
      "AB1234Z4",
      "LIST12345"
    ],
    "channel": "push",
    "push": {
      "subject": "Push message title",
      "metadata": "App deep link"
    },
    "filters": [
      {
        "name": "favorite_sport",
        "selector": "any",
        "value": [
          "football",
          "baseball"
        ]
      },
      {
        "name": "first_name",
        "selector": "starts_with",
        "value": "Steve"
      },
      {
        "name": "recipient_list",
        "selector": "any",
        "value": [
          "1"
        ]
      },
      {
        "name": "participant_list",
        "selector": "any",
        "value": [
          "1"
        ]
      },
      {
        "name": "country",
        "selector": "equals",
        "value": "US"
      },
      {
        "name": "subscription_date",
        "transform": "year",
        "selector": "before",
        "value": [
          "2017"
        ]
      },
      {
        "name": "birthdate",
        "transform": "year",
        "selector": "before",
        "value": [
          "2017"
        ]
      }
    ]
  }
}