---
title: "Create an event-triggered campaign"
method: POST
path: "/companies/{company_key}/mobiledb/event_triggered_messages"
tags: ["Event-Triggered Campaign API"]
---

# Create an event-triggered campaign

`POST /companies/{company_key}/mobiledb/event_triggered_messages`

## Request

- Base URL: `https://public-api.vibescm.com`
- URL: `https://public-api.vibescm.com/companies/{company_key}/mobiledb/event_triggered_messages`
- Auth: HTTP basic

## Path parameters

- `company_key` string, required

## Headers

- `Content-Type` string, required
- `X-API-Version` string

## Request body

- union
  - EventTriggeredRequestText: Use this format to send a message that supports one or more of RCS, MMS, and SMS. At send-time, message types are prioritized in order: RCS → MMS → SMS. Set any content key to null to remove it from the campaign.
    - `name` string: Name your campaign.
    - `event_type` string: The event_type that will trigger this campaign.
    - `start_date` string, date
    - `end_date` string, date
    - `targeting` object
      - `short_url_base` string
      - `shorten_urls` boolean
      - `channel` 'sms'
      - `sms_channel` object, required: Unified channel details for text-format campaigns.
        - `sourcecode` string, required
        - `country_code` string, required
        - `sourcecode_type` 'SC' | 'ANC', required
        - `mdn_territory` string
      - `rcs` object, nullable: RCS content. Uses snake_casing (not camelCase). Set to null to remove RCS content from the campaign.
        - `content_message` object: Follows the contentMessage structure from the Vibes Connect RCS API. Supported attributes mirror that API with snake_casing.
          - `text` string: The body text of your message.
          - `content_info` ContentInfo
            - `file_url` string: Publicly reachable URL of the file. The Vibes RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL. Recommended maximum file size of 100 MB.
            - `thumbnail_url` string: For image, audio and video files only. Publicly reachable URL of the thumbnail. Maximum size of 100 kB. If you don't provide a thumbnail URL, the Vibes RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button. Recommended maximum file size of 100 kB.
            - `force_refresh` boolean: Default is false. If true, the Vibes RBM platform fetches the file and thumbnail from the specified URLs, even if the platform has cached copies of the file (and/or of the thumbnail).
          - `suggestions` Suggestion[]: Provide end users with suggested actions or responses.
            - `reply` SuggestedReply
              - …
            - `action` SuggestedAction
              - …
          - `rich_card` RichCard
            - `carousel_card` CarouselCard: A carousel of rich cards.
              - …
            - `standalone_card` StandaloneCard
              - …
      - `sms` object, nullable: SMS fallback content. Set to null to remove.
        - `message_template` string: SMS message body. May include valid Liquid personalization tags.
      - `mms` object, nullable: MMS fallback content. Set to null to remove.
        - `subject` string
        - `content` union[]
          - union
            - Mmsurl
              - …
            - Mmstext
              - …
      - `filters` object[]
  - EventTriggeredRequest
    - `name` string, required: Name your campaign.
    - `event_type` string, required: The event_type that will trigger this campaign to send a message.
    - `start_date` string, date, required
    - `end_date` string, date
    - `targeting` object, required
      - `message_template` string: Template for your message content. May include valid Liquid personalization tags.
      - `short_url_base` string: If you have a <a href="https://developer-platform.vibes.com/docs/creating-a-custom-short-domain">custom short domain</a>, enter it here.
      - `shorten_urls` boolean: Should URLs be shortened?
      - `channel` 'sms'
      - `sms_channel` object: Preferred replacement for targeting.sms channel fields. If provided, takes precedence over targeting.sms for channel details.
        - `sourcecode` string
        - `country_code` string
        - `sourcecode_type` string
        - `mdn_territory` string
      - `sms` object
        - `sourcecode` string: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `country_code` string: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `sourcecode_type` string: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `mdn_territory` string: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `message_template` string: SMS message body. Returned for SMS-format campaigns alongside the legacy top-level targeting.message_template for backwards compatibility.
      - `filters` object[]
        - `name` string: The name of the filter you are using. Use "subscription" for subscription list.
        - `transform` string: The transform element is used to transform the value of the custom field into a value. For example, the transform 'month' changes a custom value into just a month value. If the value was the date 2023-10-17, the transform would change the value to 10.
        - `selector` string: Use <b>any</b> to filter in the values. Use <b>none</b> to filter out values.
        - `value` union[]: Select ADD+ once per value.
          - union
            - number
            - string
  - EventTriggeredRequestMMS
    - `name` string, required: Name your campaign.
    - `event_type` string, required: The event_type that will trigger this campaign to send a message.
    - `start_date` string, date, required
    - `end_date` string, date
    - `targeting` object, required
      - `message_template` string: Template for your message content. May include valid Liquid personalization tags.
      - `short_url_base` string: If you have a <a href="https://developer-platform.vibes.com/docs/creating-a-custom-short-domain">custom short domain</a>, enter it here.
      - `shorten_urls` boolean: Should URLs be shortened?
      - `channel` 'sms', required: <b>For MMS, select SMS.</b>
      - `sms_channel` object: Preferred replacement for targeting.sms channel fields. If provided, takes precedence over targeting.sms for channel details.
        - `sourcecode` string
        - `country_code` string
        - `sourcecode_type` string
        - `mdn_territory` string
      - `mms` object, required
        - `sourcecode` string, required: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `country_code` string, required: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `sourcecode_type` 'SC' | 'ANC', required: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `mdn_territory` string: <b>Soft-deprecated</b>. Use targeting.sms_channel. Still accepted and returned for backwards compatibility.
        - `subject` string
        - `content` union[], required: An array containing a list of objects for your MMS. Your MMS may contain either an uploaded asset, a media URL, or a liquid template tag for personalized sends.<br><br><b>IMPORTANT - If you are sending both text and image, you <i>must</i> select ADD + twice to add <i>separate objects</i> for each. Selecting ADD + just once will result in only one element of your MMS being added.</b>
          - union
            - Mmsasset
              - …
            - Mmsurl
              - …
            - Mmstext
              - …
      - `filters` object[]
        - `name` string: The name of the filter you are using. Use "subscription" for subscription list.
        - `transform` string: The transform element is used to transform the value of the custom field into a value. For example, the transform 'month' changes a custom value into just a month value. If the value was the date 2023-10-17, the transform would change the value to 10.
        - `selector` string: Use <b>any</b> to filter in the values. Use <b>none</b> to filter out values.
        - `value` union[]: Select ADD+ once per value.
          - union
            - number
            - string
  - EventTriggeredRequestPush
    - `name` string, required
    - `event_type` string, required
    - `start_date` string, date, required
    - `end_date` string, date
    - `targeting` object, required
      - `message_template` string, required: <b>Soft-deprecated</b>. Use targeting.sms.message_template. Still accepted and returned for backwards compatibility.
      - `short_url_base` string: If you have a <a href="https://developer-platform.vibes.com/docs/creating-a-custom-short-domain">custom short domain</a>, enter it here.
      - `shorten_urls` boolean: Should URLs be shortened?
      - `channel` 'push', required
      - `push` object, required
        - `mdn_territory` string
        - `app_id` string, required: Vibes-specific UUID for the your app.
        - `silent_push` boolean: Select "true" if you'd like the customer to not recieve a visible message to the customer. Default is "false."
        - `subject` string: Subject line displayed in a push message.
        - `media_url` string: Requires Rich Media support in the operating system and device hardware.
        - `sound` string: The notification sound defaults to silent. Custom sounds must be built into the app.
        - `badge` string: Reset the total badge value on the app icon.
        - `metadata` string
        - `client_custom_data` string
        - `collapse_id` string: Identical collapse_id values on two notifications will allow a previous notification to be replaced with an incoming notification. iOS only.
        - `category` string: Notification channel, aka category, is used to group certain types of notifications together. Android 8+ only.
        - `expiration_offset` number: How long (in miliseconds) Apple or Google will attempt to send the message if the device is offline, up to 28 days.
      - `filters` object[]
        - `name` string: The name of the filter you are using. Use "subscription" for subscription list.
        - `transform` string: The transform element is used to transform the value of the custom field into a value. For example, the transform 'month' changes a custom value into just a month value. If the value was the date 2023-10-17, the transform would change the value to 10.
        - `selector` string: Use <b>any</b> to filter in the values. Use <b>none</b> to filter out values.
        - `value` union[]: Select ADD+ once per value.
          - union
            - number
            - string

## Response `200`

Successful response

- EventTriggeredResponse
  - `event_triggered_message_id` integer
  - `status` string
  - `event_type` string
  - `start_date` string
  - `end_date` string
  - `created_by` string
  - `created_by_application` string
  - `targeting` object
    - `message_template` string: <b>Soft-deprecated</b>. Use targeting.sms.message_template. Still accepted and returned for backwards compatibility.
    - `short_url_base` string: Base URL to use when shortening URLs.
    - `shorten_urls` boolean: Should URLs be shortened?
    - `channel` string: Message channel for broadcast.
    - `message_format` string: A read-only field that defines the message format. Possible values are sms, mms, push, text.
    - `sms_channel` object: Unified channel details returned for SMS, MMS, and text-format campaigns. Replaces the legacy targeting.sms and targeting.mms channel fields.
      - `sourcecode` string
      - `country_code` string
      - `sourcecode_type` string
      - `mdn_territory` string
    - `rcs` object, nullable: RCS content for text-format campaigns. Null if not set.
      - `content_message` object: The content of the agent message.
        - `text` string: The body text of your message.
        - `content_info` ContentInfo
          - `file_url` string: Publicly reachable URL of the file. The Vibes RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL. Recommended maximum file size of 100 MB.
          - `thumbnail_url` string: For image, audio and video files only. Publicly reachable URL of the thumbnail. Maximum size of 100 kB. If you don't provide a thumbnail URL, the Vibes RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button. Recommended maximum file size of 100 kB.
          - `force_refresh` boolean: Default is false. If true, the Vibes RBM platform fetches the file and thumbnail from the specified URLs, even if the platform has cached copies of the file (and/or of the thumbnail).
        - `suggestions` Suggestion[]: Provide end users with suggested actions or responses.
          - `reply` SuggestedReply
            - `text` string: <span style="color:#dd1e2e;">Required.</span> Text of the suggested reply.
            - `postback_data` string: <span style="color:#dd1e2e;">Required.</span> The base64-encoded payload that the agent receives in a user event when the user taps the suggested reply. Maximum 2048 characters.
          - `action` SuggestedAction
            - `text` string: <span style="color:#dd1e2e;">Required.</span> Text label of suggested action.
            - `postback_data` string: <span style="color:#dd1e2e;">Required.</span> Base64-encoded payload that will be sent to the agent in the user event that results when the user taps the suggested action. Maximum 2048 characters.
            - `fallback_url` string: Optional. URL that will open in a new window if a mobile device doesn't support a suggested action.
            - `dial_action` DialAction
              - …
            - `view_location_action` ViewLocationAction: Opens the device's default map app and selects the specified location or searches around the device's location given an agent-specified query.
              - …
            - `create_calendar_event_action` CreateCalendarEventAction
              - …
            - `open_url_action` OpenUrlAction
              - …
            - `share_location_action` ShareLocationAction
        - `rich_card` RichCard
          - `carousel_card` CarouselCard: A carousel of rich cards.
            - `card_width` 'CARD_WIDTH_UNSPECIFIED' | 'SMALL' | 'MEDIUM'
            - `card_contents` CardContent[]
              - …
          - `standalone_card` StandaloneCard
            - `card_orientation` 'CARD_ORIENTATION_UNSPECIFIED' | 'HORIZONTAL' | 'VERTICAL'
            - `thumbnail_image_alignment` 'THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED' | 'LEFT' | 'RIGHT': Alignment of image preview for standalone cards with horizontal layout.
            - `card_content` CardContent: Each rich card must have at least one of title, description, or media.
              - …
    - `sms` object
      - `sourcecode` string
      - `country_code` string
      - `sourcecode_type` string
      - `mdn_territory` string
      - `message_template` string
    - `mms` object
      - `sourcecode` string
      - `country_code` string
      - `sourcecode_type` string
      - `subject` string
      - `content` object[]: An array containing a list of objects for your MMS. Your MMS may contain either an uploaded asset, a media URL, or a liquid template tag for personalized sends.
        - `asset_id` string: A read-only string identifying an uploaded asset.
        - `mime_type` string: A read-only string identifying the MIME type of the uploaded asset. For example, `image/jpeg`
        - `media_url` string: A URL link to the media to be included in the MMS.
        - `description` string: An optional description of the media.
        - `body` string: The body text included in the MMS send.
    - `filters` object[]
    - `url` string
    - `created_at` string
    - `updated_at` string

## Other responses

- `202`: Campaign has been successfully created. This response will include additional information about your campaign, including the `event_triggered_messsage_id`, `status`, `created_by`, and more. These are defined by the system and cannot be changed.

## Changes

- **2026-11-03** `e235838f2e50`: 14 info
  - added the new optional request property `oneOf[subschema #1: Select for SMS -> subschema #2: Select for SMS]/targeting/sms/message_template`
  - added the new optional request property `oneOf[subschema #1: Select for SMS -> subschema #2: Select for SMS]/targeting/sms_channel`
  - added the new optional request property `oneOf[subschema #2: Select for MMS -> subschema #3: Select for MMS]/targeting/mms/mdn_territory`
  - added the new optional request property `oneOf[subschema #2: Select for MMS -> subschema #3: Select for MMS]/targeting/sms_channel`
  - …10 more

[Operation history](https://skmtc.dev/vibes/apis/vibes-platform-api/changes/companies/:company_key/mobiledb/event_triggered_messages/post.md)

---

[API](https://skmtc.dev/vibes/apis/vibes-platform-api.md) - [All operations](https://skmtc.dev/vibes/apis/vibes-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vibes/apis/vibes-platform-api/revisions/e235838f2e50?raw)
