# Creating Messages Learn about each message type and how to configure its content, localization, and message creation, including automation and A/B tests. # Message types and sending methods in Airship > Send a single message, an automated message triggered by user behavior, or an automated series of messages. Airship supports several message types across different channels, with multiple methods for sending. ## Messages versus Experiences In Airship, messages are content you send to users across any channel — App, Web, Email, SMS, or Open. You can send messages once, on a recurring schedule, or automatically triggered by user behavior. [Experiences](https://www.airship.com/docs/guides/messaging/in-app-experiences/) are rich, interactive, content displayed within an app or website. They provide immediate, contextual responses to user behaviors. ## Message types The app channel supports these message types: | Message type | Description | | --- | --- | | **Push notification** | A push notification is a message that can appear on any screen on a mobile device. Push notifications appear as banners. [Learn more](https://www.airship.com/docs/guides/messaging/messages/content/app/push-notifications/) | | **Message Center** | Message Center is both a place in your app where you can display persistent rich messages, including HTML, video, etc., and a message type. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). [Learn more](https://www.airship.com/docs/guides/features/messaging/message-center/) | | **In-app message** | An in-app message is a message that appears inside of your app. You can send in-app messages to your entire app audience, not just users who have opted-in to push notifications. The standard format, as opposed to In-App Automation, is a banner that slides downward or upward from the top or bottom of a device screen. [Learn more](https://www.airship.com/docs/guides/messaging/messages/content/app/in-app-messages/) | Web supports web push notifications, and the Email, SMS, and Open channels have message types synonymous with their channel names: | Message type | Description | | --- | --- | | **Web push notification** | A web push notification is a message that appears in the top or bottom right corner of a web browser or in a notification center. On mobile devices, web push notifications appear similar to push notifications. [Learn more](https://www.airship.com/docs/guides/features/messaging/push-notifications/) | | **Email** | Email is an HTML or plain-text message that you send to registered users. Email notifications appear in recipients' email inboxes. [Learn more](https://www.airship.com/docs/guides/features/messaging/email/) | | **SMS/MMS/RCS** | An SMS is a message that you can send to an MSISDN (phone number) over the SMMP protocol to devices that have opted in for a specific sender ID (long or short code). SMS messages appear in recipients' native SMS clients. Generally speaking, SMS is inclusive of MMS and RCS. [Learn more](https://www.airship.com/docs/guides/features/messaging/sms/) | | **Open channel** | An Open channel message can be sent to any medium that can accept a JSON payload. [Learn more](https://www.airship.com/docs/guides/features/messaging/open-channels/) | See also [Live Activity](https://www.airship.com/docs/reference/glossary/#live_activity) and [Live Update](https://www.airship.com/docs/reference/glossary/#live_update). ## Sending methods [Composers](https://www.airship.com/docs/reference/glossary/#composer) enable three sending methods: a single message sent once or on a recurring basis, an automated message triggered by user behavior, or an automated series of messages. Each composer supports all channels and message types listed above and can combine message types in a single send: | Composer | Description | | --- | --- | | **Message** | Send a single message once or on a recurring basis. [Learn more](https://www.airship.com/docs/guides/messaging/messages/create/) | | **Automation** | Automatically send a message to users when they meet certain conditions. [Learn more](https://www.airship.com/docs/guides/messaging/messages/sequences/about/) | | **Sequence** | Automatically send one message or series of messages to users when they meet certain conditions. Sequences can also be included in a [Journey](https://www.airship.com/docs/reference/glossary/#journey). [Learn more](https://www.airship.com/docs/guides/messaging/messages/sequences/about/) | Each composer guides you through defining your audience, content, and delivery options, with workflows tailored to the sending method. Using the Airship API, you can use the [`/api/pipelines` endpoints](https://www.airship.com/docs/developer/rest-api/ua/operations/automation/) for automation. The API does not support sending a series of messages. ## Reports [Message reports](https://www.airship.com/docs/guides/reports/message/) evaluate the performance of individual messages. For Sequences, the Performance report shows audience behavior compared to the Sequence’s goal and a message report for each message in the Sequence. See [Sequence Performance](https://www.airship.com/docs/guides/messaging/messages/sequences/performance/). # Create a message > Use the Message composer to send a single message to any channel. To get started, select the **Create** dropdown menu ( ), then select **Message**. Next, enter a message name and save it. Select the gear icon () to [flag it as a test](https://www.airship.com/docs/guides/messaging/manage/flag-as-test/). After completing a step, select the next one in the header to move on. ## Audience In this step, define who you want to send your message to, and then set [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) and which channel types to include. You can also filter channels in your audience based on user data. > **Note:** For projects using the [channel-level segmentation system](https://www.airship.com/docs/guides/audience/segmentation/segmentation/#channel-level-segmentation), configure the Audience step using the following options, as well as [Localization](#localization). Channel coordination and channel conditions do not appear in those projects. > > Enable the channels you want to send the message to, then choose a group of users. > > | Option | Description | Steps | > | --- | --- | --- | > | **All Users** | Your entire audience for the selected channels | n/a | > | **Target Specific Users** | Audience members in a group you define | Use the same process as when building a [Segment](https://www.airship.com/docs/reference/glossary/#segment). | > | **Test Users** | Members of a [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups) | Select a Test Group. | > | **Upload Users** | Upload a list of users just before sending the message. | See [Bulk Sending](https://www.airship.com/docs/guides/audience/segmentation/bulk-sending/). | > > ![Create a message](https://www.airship.com/docs/images/audience-open-channel_hu_21b4c95eb24528e8.webp) > ![Create a message](https://www.airship.com/docs/images/user-selection_hu_40b8f411ae80120f.webp) > > To make this audience eligible for [retargeting](https://www.airship.com/docs/guides/audience/segmentation/send-retargeting-message/), enable **Generate retargeting segments**. This option is only available when your only selected channels are app platforms, Web, and Email. > ![Create a message](https://www.airship.com/docs/images/generate-retargeting-segments_hu_7f8f93812585e302.webp) ### Audience selection Choose a group of users: | User group | Description | Steps | | --- | --- | --- | | **Target by conditions** | Include only users who meet conditions you define based on user data. | Use the same process as when building a [Segment](https://www.airship.com/docs/reference/glossary/#segment). | | **Test group** | Include the members of a [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups). | Select a Test Group. | | **Upload a list** | Upload a list of users just before sending the message. This option is only available when you have one of Email, SMS, or an Open Channel enabled in **Channel coordination**. | See [Bulk Sending](/docs/guides/audience/segmentation/bulk-sending). | | **All users** | Include all users in your project for the selected channels. | n/a | ### Channel coordination

First, select a [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) strategy:

Then, enable the channel types to include in your audience. For Mobile Apps, also select from the available platforms. For Priority Channel, also drag the channel types into priority order.

### Channel conditions

Use Channel conditions to filter which channels are included in the audience. A channel must meet the conditions to remain in the audience.

For example, if your audience includes users with app, email, and SMS channels, and you set a channel condition requiring membership in an email Subscription List:

To set channel conditions, use the same process as when building a [Segment](https://www.airship.com/docs/reference/glossary/#segment). You can use the following data in your conditions:

Selected Lifecycle, Subscription, and Uploaded Lists must contain Channel IDs or Named Users as the identifier, not a mix of the two.

### Localization Enable **Localization** if you want to provide different content to app and web users depending on their language and country. See [Localization](https://www.airship.com/docs/guides/messaging/messages/localization/). ## Content Configure the message content per enabled channel. See [Content by channel](https://www.airship.com/docs/guides/messaging/messages/content/) and [Localization](https://www.airship.com/docs/guides/messaging/messages/localization/). ![Create a message](https://www.airship.com/docs/images/composer-content-app_hu_28a88387be2dfd33.webp) ## Delivery Configure [delivery](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery/). ![Create a message](https://www.airship.com/docs/images/message-delivery_hu_eb18bad8a57fe15b.webp) ## Review {#message-review} Review the device preview and message summary. Select the arrows to page through the various previews. The channel and display type dynamically update in the dropdown menu above. You can also select a preview directly from the dropdown menu. If you want to make changes, select the associated step in the header, make your changes, then return to Review. If you chose **Target by conditions** in the Audience step, select **Generate audience count** to see the following: * The total number of [Contacts](https://www.airship.com/docs/reference/glossary/#contact) and channels in the audience * The total number of channels and the number of opted-in channels for each [Channel (Engagement)](https://www.airship.com/docs/reference/glossary/#channel_engage) and mobile app platform You can also generate the audience count for the [**Target Specific Users** legacy option](#audience), but it does not include the Contacts count. If you chose **Upload a list** or **Upload Users** in the Audience step, select **Upload & Send** and select your file. Uploaded merge field names will be verified against the merge fields set in the Content step. For more information, see [Bulk sending](https://www.airship.com/docs/guides/audience/segmentation/bulk-sending/). To create an experiment with this message as a variant, select **Create Experiment**, then select **A/B Test** or **Intelligent Rollout**. You will leave the Message composer and go to the variants list in the new experiment. See [Message A/B tests](https://www.airship.com/docs/guides/experimentation/a-b-tests/messages/) and [Intelligent Rollouts](https://www.airship.com/docs/guides/experimentation/intelligent-rollouts/). Send a test message to verify its appearance and behavior on each configured channel. The message is sent to your selected recipients immediately, and it appears as a test in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview). 1. Select **Send Test**.
  1. Under Test audience, enter at least one [Named User](https://www.airship.com/docs/reference/glossary/#named_user) or [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups) and select from the results. If your message includes email, you can also search for email addresses. If no matches appear for an address, you can select Create channel for <address>, and the channel will be registered for your project and opted in to transactional messaging.

    Users in an active [Holdout Experiment](https://www.airship.com/docs/reference/glossary/#holdout_experiment) will not receive a test message. You can view a user’s current holdout group status and history when viewing their channel details in Contact Management.

  2. (If your message contains [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars)) Under Personalization, select and configure a personalization data source:

    Data source Description Steps
    Test message recipient The message will be personalized using information associated with each test audience member. n/a
    Preview Data tool The message will be personalized using the data currently entered in the Preview Data tool. The same values will apply to all test message recipients. You can also manually edit the JSON. (Optional) Edit the JSON data.
  3. Select Send.

Select **Send Message** or **Schedule Message**. # Actions > Actions determine what happens when a user interacts with your App and Web messages. > **Note:** For actions for an [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa) or [Scene](https://www.airship.com/docs/reference/glossary/#scene), see [Actions for in-app experiences](https://www.airship.com/docs/guides/messaging/in-app-experiences/configuration/button-actions/). ## About actions With actions, you gain much greater control of your users' experience with your app, and can not only provide them with more relevant, specific content, you can learn from their usage and continue to do so over time. You set an action for all [Push Notifications](https://www.airship.com/docs/reference/glossary/#push_notification), [In-App Messages](https://www.airship.com/docs/reference/glossary/#in_app_message), and [Web Push Notifications](https://www.airship.com/docs/reference/glossary/#web_push_notification), and you associate actions with your buttons and images in [Rich Page](https://www.airship.com/docs/reference/glossary/#rich_page) content. After selecting an action, you can set up adding or removing [Tags](https://www.airship.com/docs/reference/glossary/#tag) when the user interacts with the message, button, or image. For push notifications and in-app messages, you can also emit a [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event) when a user interaction occurs. ## Supported actions: App and Web For app and web messages, you set an action in the *Content* step of a composer. *Home* is the default, and support differs by message type. | Action | Description and configuration | Push notifications | In-app messages | Web push notifications | | --- | --- | :---: | :---: | :---: | | Home | | ✓ | ✓ | ✓ | | Adaptive Link | | ✓ | ✓ | ✓ | | Web Page | | ✓ | ✓ | ✓ | | Deep Link | | ✓ | ✓ | | | Landing Page | | ✓ | ✓ | | | Message Center | | ✓ | ✓ | | | Preference Center | | ✓ | ✓ | | | Share | | ✓ | ✓ | | ## Supported actions: Landing pages and Message Center When creating landing page and Message Center content, the [editors](https://www.airship.com/docs/guides/messaging/editors/about/) support different actions. * **Visual editor** — Refer to the configuration information on this page. * Deep Link * Share * URL (Web Page) * **Interactive editor** — See [Actions in the Interactive editor](https://www.airship.com/docs/guides/messaging/editors/interactive/actions/). * No Action * Adaptive Link * App Rating * Deep Link * Preference Center * Share * Web Page ## Disabling actions You can disable actions (except for *Home*) from appearing in the composers: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **Project settings**, select **Dashboard Settings**. 1. Disable **Message Center, Landing Page, Deep Link, URL, and Add Tags (Airship Actions Framework)**. > **Important:** Actions must be enabled for [Message Center](https://www.airship.com/docs/reference/glossary/#message_center) to appear in composers. ## Configuring actions The behavior and configuration steps for each action is described below. ### Adaptive Link

Adaptive Link opens a mobile wallet pass. Select an [Adaptive Link](https://www.airship.com/docs/reference/glossary/#adaptive_link) from the list.

### Deep Link

Deep Link opens a screen in your app or website. Select a deep link from the list.

#### Deep Link templates {#deep-link-templates}

Our Deep Link functionality supports URL templates, which expose a friendly interface to your users in our UI, while constructing the correct URL behind the scenes on the fly. You can specify substitution parameters by enclosing them in brackets. For example, if you want to define a Deep Link for a product page screen in your app (or on your mobile website), you can make the product ID number a substitution parameter. Here are example template URLs: ```text https://yourcompany.com/products/{Product Id} yourapp://products/{Product Id} ```

When you enter this URL in the Airship interface, the form parses it and previews the form your users see in the composer. It automatically identifies “Product Id” as the parameter name, and provides a field to substitute in the actual identifier. So if you had previously entered a product ID of 1872983490 for the above Product ID, the generated URL would be: ```text http://yourcompany.com/products/1872983490 yourapp://products/1872983490 ```

The interface treats all values for each field as a string.

### Home *Home* opens your app's home screen. For web push notifications it opens your [Default Action URL](https://www.airship.com/docs/developer/sdk-integration/web/getting-started/#airship-setup). You can override the default URL by selecting the *Web Page* action and entering a different URL. ### Landing Page *Landing Page* opens a [Landing page](https://www.airship.com/docs/guides/features/messaging/landing-pages/). ### Message Center *Message Center* opens a Message Center message. See: [Message Center content](https://www.airship.com/docs/guides/features/messaging/message-center/). ### Preference Center

Preference Center opens an app preference center. Select a preference center from the list.

### Share

Share prompts the user to share your message with apps, social media accounts, and other services. Enter the text you want to accompany the share, including any promotional information, shortened links, hashtags, etc.

### Web Page

Web Page opens a web page or any valid device-level URL such as App Store or app protocol links. The web page opens in the device’s default browser. Enter a URL.

# Buttons > Add buttons to your push notifications, in-app messages, and web push notifications. ## About buttons ![A button pair in a push notification](https://www.airship.com/docs/images/content-push-media-buttons_hu_e33ffd044d3c6a64.webp) *A button pair in a push notification* Buttons in your message content can drive users to: * Take immediate, specific action * Make decisions or choices * Express preferences Messages support a single button or a pair, such as `Opt-in` or a `Yes`/`No` pair. Each button has an associated [Action](https://www.airship.com/docs/reference/glossary/#action) that occurs when the user selects it. When that interaction occurs, you can add or remove [Tags](https://www.airship.com/docs/reference/glossary/#tag) or opt a user in to or out of a [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list). For push notifications, you can also emit a [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event). ### Predefined buttons Airship provides 30+ predefined buttons for common use cases. They have preset labels and actions. Some buttons support changing their associated actions. You can use these buttons in your messages at any time. They do not require SDK or project configuration. ### Built-in Interactive Notifications Our SDK also includes translations for these buttons in several languages. In addition to text-based interactive notification types, Airship also provides [Emoji buttons](https://www.airship.com/docs/reference/messages/built-in-interactive-notifications/#built-in-emoji). Use emojis to track user sentiment on a certain story or offer. Learn more in our [iOS](https://www.airship.com/docs/developer/sdk-integration/apple/push-notifications/interactive-notifications/) and [Android/Fire OS](https://www.airship.com/docs/developer/sdk-integration/android/push-notifications/advanced-customizations/#interactive-notifications) documentation. For the full list, see [Built-In Interactive Notification Types ](https://www.airship.com/docs/reference/messages/built-in-interactive-notifications/). ### Custom buttons Create custom buttons to reuse across multiple messages. * **Web buttons:** You can create web buttons for a single message without adding them to your project, or add them to your project to reuse across messages. Web buttons can be used immediately. * **App buttons:** Custom app buttons require a developer to register button categories in your app before you can use them in messages. You can also associate custom app buttons with custom actions instead of only Airship actions. Custom buttons you add in your project settings appear alongside predefined buttons when selecting buttons for a message. ## Enable buttons For the Buttons option to appear when configuring your message content, you must enable **Notification Buttons** in your project settings. By default, new projects have Notification Buttons enabled. For App buttons, you must also enable [Custom Keys](https://www.airship.com/docs/reference/glossary/#custom_keys), which send information about buttons between your app and the Airship SDK. In the dashboard: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **Project settings**, select **Dashboard Settings**. 1. Enable **Notification Buttons**. 1. (Required for app buttons only) Enable **Custom Keys**. ## Create custom app buttons Buttons are associated with an action within your app, so a developer must first update your app, registering new Interactive Notification types in the Airship SDK. See the platform documentation for implementation details: * [Interactive Notifications for iOS](https://www.airship.com/docs/developer/sdk-integration/apple/push-notifications/interactive-notifications/) * [Interactive Notifications for Android](https://www.airship.com/docs/developer/sdk-integration/android/push-notifications/advanced-customizations/#interactive-notifications) After your developer registers the new types, you can add buttons to your project. You will need the ID for each button. In the dashboard: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **App settings**, select **Mobile App Notification Buttons**. 1. Select **Create Notification Buttons**. 1. Enter a name and description for the button, so you can identify it in your project. 1. Enter the category name that should be passed to the mobile device to identify which notification buttons to display with a message. 1. (Optional) Clear the **Enabled** check box if you do not yet want these buttons to appear in the list of buttons when composing messages. 1. Specify the label and actions for each button. If you set up both a primary and secondary buttons, they will appear as a pair. * **Button Label:** Identifies the button label for display purposes in the dashboard. It should match the label defined in the app. This label does not change button labels in your app. * **ID:** Associates actions with the correct button label when passed by message. * **Foreground** or **Background:** Controls which actions are available in the dashboard. Must match button ID defined in the app. * **Destructive:** For iOS, indicates if button action causes the removal of data, features, etc., for display purposes in the dashboard. Must match capability defined in the app. Check the box to enable. 1. Select **Save**. ## Create custom web buttons To add custom web buttons to your project: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **App settings**, select **Web Notification Buttons**. 1. Select **Create Web Buttons**. 1. Enter a name and description. The name helps you identify your buttons when setting up a message. 1. Enter a label for each button. These are the button labels users see in your web messages. For a single button, enter one label. For a button pair, enter two labels. 1. Select **Save**. ## Add buttons to message content Follow these steps to add buttons to your message content: 1. Enable **Buttons**. 1. Select buttons for your message: * If you are creating an app message, choose **Select buttons**, then select a button or pair to add it to your message. You can search for [predefined buttons](https://www.airship.com/docs/reference/messages/built-in-interactive-notifications/) by their type, or search for custom buttons by name. * If you are creating a web message, choose **Select or add buttons**, and then: * To add custom buttons for this message only, enter a button label, or two for a pair, then select **Add buttons**. * To add predefined or existing custom buttons, go to **Select buttons** and choose which buttons to add to your message. 1. Set an [Action](https://www.airship.com/docs/reference/glossary/#action) for each button. Predefined buttons already have set actions, but some support selecting a different action. You cannot use [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars) to personalize actions for Web buttons. 1. (Optional) Set and/or remove [Tags](https://www.airship.com/docs/reference/glossary/#tag) when the user taps a button: 1. Select **Configure options**. 1. Select **Add tag** or **Remove tag**, then search for tags that exist in the system, or create a new tag. 1. (Optional) [AXP](https://www.airship.com/docs/reference/feature-packages/) Opt a user in to or out of a [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list) when the user taps a button: 1. Select **Configure options**. 1. Select **Opt in to** or **Opt out of**, then search for a subscription list by name. When you first click the search field, you can select from your five most recently modified subscription lists. For push notifications messages, you can also emit a custom event when the user taps a button. You can select an existing event or name a new one. (iOS SDK 20+) (Android SDK 20+)

You can also assign an event value and specify string, number, or boolean property values that you can use later when filtering Custom Events. If you want to use properties, you must define the event and its properties in your project in advance. See Manage Events.

  1. Select Configure options.
  2. Under Options, select Emit custom event and search for an event. If no result is found, select Use <event name> to add the event to your project.
  3. (Optional) Set an event value and/or specify property values to filter by in segments and triggers:
    1. Select Add event properties, then:
      • For a value, select Add event value and enter a numeric value for the event.
      • For properties, select Add property, then Search for properties, and then search for a string, number, or boolean event property and enter or select a value.
    2. Select Save.
## Reporting Airship records button clicks as [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event) to help you track how your audience engages with your messages. In [Message Reports](https://www.airship.com/docs/guides/reports/message/) and the aggregate [Event Tracking](https://www.airship.com/docs/guides/reports/engagement/#event-tracking) report, the events have the name `button--`, where button_label is either the button's label or the API ID. ![Button click events as they appear in the Event Tracking report](https://www.airship.com/docs/images/web-button-reports_hu_803b2d777b526130.webp) *Button click events as they appear in the Event Tracking report* In [Real-Time Data Streaming](https://www.airship.com/docs/reference/glossary/#rtds) button clicks are custom events with `button--` as the `body.name` property. **Web button click event in RTDS:** ```json { "id": "11f6d751-7818-4436-8f40-6c4a343deb5e", "offset": "1000032296503", "occurred": "2020-07-17T18:13:49.000Z", "processed": "2020-07-17T18:13:49.905Z", "device": { "channel": "21f72485-47a4-c369-a21b-c0d73698b14c", "device_type": "WEB", "named_user_id": "cool_person" }, "body": { "name": "button--hello world", "interaction_type": "url", "interaction_id": "https://www.airship.com", "session_id": "45a1576f-1af3-4c8e-9d6d-44d546e1271a", "source": "SDK" }, "type": "CUSTOM" } ``` # Localization > Localizing your messages helps you reach your audience with content specific to their language settings without creating separate messages for each language. Localization is supported for App and Web. ## About localization

Airship’s localization feature provides a way to send a single message with multiple localizations. You can prepare localizations based on language information or [Locale](https://www.airship.com/docs/reference/glossary/#locale) for more specific, regional localizations. Airship delivers localized messages to your audience according to language and country information gathered by the Airship SDK.

For example, if you prepared a German localization, users with their language set to German will receive the German localization of your message. If you want to make your message more regionally specific, you could add German localizations for both Germany and Austria. Users with their language preferences set to German would receive different messages depending on whether their country/region settings are set to Germany or Austria.

--- You can create localized content using: * The **Message** and **In-App Automation** composers * [Message A/B tests](https://www.airship.com/docs/guides/experimentation/a-b-tests/messages/) * The `/push` or `/schedules` APIs, with a `localizations` array in your request All message types for the App channel are supported: push notifications, in-app messages, and Message Center messages. In the Message composer and A/B tests, you also have the option of selecting a [content template](https://www.airship.com/docs/guides/personalization/content/templates/). Localization for In-App Automation includes support for Custom HTML messages. **This document is for the Message composer, A/B tests, and APIs.** See also: [Localization for In-App Automation](https://www.airship.com/docs/guides/messaging/in-app-experiences/in-app-automation/localization/). > **Note:** Localized push notifications do not generate a message report at this time. Message details are available in [Performance Analytics](https://www.airship.com/docs/reference/glossary/#pa). ## Create localized content Follow these steps to create localized content for App and Web channels in the Message composer or an A/B test variant. The process is much like creating any other message, except that you will repeat the *Content* step for each localization that you add to your message. First you will create a *Default* message — the message that Airship sends to anybody in your audience who does not match the languages or locales that you specify in your localizations. The default message helps you reach your entire audience even if you aren't able to translate your message into all of your audience's possible languages. > **Note:** These steps cover enabling localization and adding content only. In the Audience step in the Message Composer, or in the Channels step in an A/B test variant, enable **Localization**: ![Localization](https://www.airship.com/docs/images/localization-setting_hu_4559c4cfee50bc3e.webp) In the Content step, select your message type, configure you default message, then add localized versions: 1. If prompted, choose a message type or [content template](https://www.airship.com/docs/guides/personalization/content/templates/), then click **Add Content**. The message type screen appears depending on your selections in the *Audience* step. 1. Configure your message content if you did not select a template. See *Creating content* for: * [Push notifications](https://www.airship.com/docs/guides/messaging/messages/content/app/push-notifications/#creating-content) * [In-app messages](https://www.airship.com/docs/guides/messaging/messages/content/app/in-app-messages/#creating-content) * [Message Center](https://www.airship.com/docs/guides/messaging/messages/content/app/message-center/) * [Web](https://www.airship.com/docs/guides/messaging/messages/content/web/#creating-content) ![Localization](https://www.airship.com/docs/images/localized-message_hu_cfd270e8c64bdab8.webp) 1. When you have completed configuring the content for this message, click **Add new**. 1. Select a language (required) and country (optional), click **Save**, and repeat the content configuration for the next localization. Select from the dropdown menu to view content for each localization and edit as necessary. When you have finished adding localizations, click *Delivery* in the header and complete the rest of the steps in the composer. > **Tip:** When sending a message with localizations to App or Web channels, you may want to use the [Optimize](https://www.airship.com/docs/reference/glossary/#optimal_send_time) or [Delivery By Time Zone](https://www.airship.com/docs/reference/glossary/#delivery_by_time_zone) options to make sure that users get their localized message at the time that best suits them. In the Review step, you can preview your localization content. See the [Review step](https://www.airship.com/docs/guides/messaging/messages/create/#message-review) in *Create a message*. --- You can edit or delete a localized message while it is in draft state or until Airship has sent it. 1. Go to **Messages**, then **Messages Overview**. 1. Find the message you want and select the pencil icon ( ) to edit or the trash can icon ( ) to delete. ## Send localized content using the API **Example:** Send a localized `/push` using the Airship API by adding an array of `localizations` in your request. ```http POST /api/push HTTP/1.1 Authorization: Basic Accept: application/vnd.urbanairship+json; version=3 Content-Type: application/json { "device_types": [ "web" ], "audience": { "tag": "needs_a_greeting", "group": "new_customer" }, "notification": { "alert": "Hi!" }, "localizations": [ { "language": "de", "country": "AT", "notification": { "alert": "Grüss Gott" } }, { "language": "de", "country": "DE", "notification": { "alert": "Guten Tag" } } ] } ``` > **Tip:** When sending a message with localizations to your web audience, you may want to use the [Delivery By Time Zone](https://www.airship.com/docs/reference/glossary/#delivery_by_time_zone) option to make sure that your users get their localized message at the time that best suits them. **Example:** Schedule a localized message to go out to your audience at their local time by adding `localizations` in a request to the `/schedules` API. ```http POST /api/schedules HTTP/1.1 Authorization: Basic Accept: application/vnd.urbanairship+json; version=3 Content-Type: application/json { "schedule": { "local_scheduled_time": "2019-12-20T18:45:30" }, "push": { "device_types": [ "android", "ios" ], "audience": { "tag": "needs_a_greeting", "group": "new_customer" }, "notification": { "alert": "Hi!" }, "localizations": [ { "language": "de", "country": "AT", "notification": { "alert": "Grüss Gott" } }, { "language": "de", "country": "DE", "notification": { "alert": "Guten Tag" } } ] } } ``` > **Tip:** When sending a message with localizations to app channels, you may want to use the [Optimize](https://www.airship.com/docs/reference/glossary/#optimal_send_time) or [Delivery By Time Zone](https://www.airship.com/docs/reference/glossary/#delivery_by_time_zone) options to make sure that users get their localized message at the time that best suits them. # Apple News messages > An Apple News message is a push notification that links to an Apple News story and is delivered via the Apple News app on iOS and macOS. Apple News is available to select publishers. See [Publishing on Apple News](https://developer.apple.com/news-publisher/). If you are interested in sending Apple News messages, [contact Airship Sales](https://www.airship.com/contact-us/). ## Appearance and behavior An Apple News message appears in the same banner format as a push notification. When creating the message, you will enter the text that will appear in the notification. Clicking or tapping the notification opens its associated story in the News app on iOS or macOS. Apple News messages are displayed upon receipt and are not [Persistent](https://www.airship.com/docs/reference/glossary/#persistent). ![Apple News messages](https://www.airship.com/docs/images/content-apple-news_hu_a2bcb6d2631aa2ea.webp) ## Configure the Apple News channel To configure the channel for your project, you will need your Apple News Publisher: * Channel ID * API key * API key secret You can find the channel ID and API key in the Settings tab in [News Publisher](https://www.icloud.com/newspublisher/). The API key secret is shown only when it is first issued. In Airship: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **Channels**, select **Apple News**. 1. Enter a channel name and your News Publisher channel ID, API key, and API key secret. The Apple News channel name is used for preview purposes in the Airship dashboard. 1. Check the box for each of the supported countries you have configured in your News Publisher channel settings. 1. Click **Save**. > **Note:** * Your News Publisher channel ID has no relation to an Airship [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id). > * We validate the country selection when you click **Send Now** or **Send When Live** as the final step in creating an Apple News message. If a country selected here is not configured in your News Publisher channel settings, you will see an error in the dashboard when attempting to send to that country. ## Create an Apple News message Send a push notification that links to an Apple News story: 1. Select the **Create** dropdown menu ( ), then **Apple News**. 1. Enter the push notification text you want to accompany the Apple News story, limited to 130 characters. The preview updates as you compose your message. The *Channel Name* entered when [setting up the channel](#configure-the-apple-news-channel) appears in bold. ![Apple News messages](https://www.airship.com/docs/images/compose-apple-news_hu_471f97b970e27fc2.webp) 1. Click **Select a story** and select from the list. Story information displayed: * **Title** * **Share URL:** If the story has a canonical URL, it is displayed here instead of the share URL. * **Status:** Only *Live* or *Processing* stories may be selected. If an article is processing, the message will be sent when processing is complete. A story that was retracted cannot be selected. 1. (Optional) Select recipient countries. Available countries are dependent on the selections made when [setting up the channel in Airship](#configure-the-apple-news-channel), not necessarily the countries you have configured with Apple. Select *Choose*, then choose from the *Select a country* menu. Repeat for additional countries. 1. Confirm the message appearance and content in the preview. 1. Click **Send Now**. If the selected story is still processing, the button will instead be labeled **Send When Live**. > **Note:** We validate the country selection when **Send Now** is clicked. If a country selected here is not configured in your Apple News publisher channel settings, you will see the error "Country not available" when attempting to send to that country. > > To edit country selection: > > 1. Next to your project name, select the dropdown menu ( > ), then **Settings**. > 1. Under **Channels**, select **Apple News**. > 1. Under **Supported Countries**, edit your selections. > 1. Select **Save**. > > See [Configure Apple News](#configure-the-apple-news-channel). ## View Apple News history Go to **Messages**, then **Apple News**. One year of Apple News history is listed, newest first. The table displays the message text, Apple News story title, recipient countries, and the date, time, and time zone when the composer steps were completed by clicking **Send Now**/**Send When Live**. Hover over the story title to see its canonical URL, or click to follow the link. ![Apple News messages](https://www.airship.com/docs/images/messages-apple-news_hu_b23d08cd7ea6781d.webp) > **Note:** * After sending an Apple News notification, a delivery request is sent to Apple. Because Airship does not manage the delivery process, the *Send Requested* date and time may differ from the actual delivery date and time. > * Projects that have been inactive for over 30 days will have all message history removed. ## Automations and Sequences Automatically send one message or series of messages initiated by a trigger. # About Automations and Sequences > Automatically send one message or series of messages initiated by a trigger. Automation automatically sends messages when users meet certain conditions. In Airship, an Automation refers to a triggered message you create using the Automation composer or the API. ## Automations versus Sequences Both Automations and Sequences automatically send messages when triggered by user behavior or events, such as a tag change, entering or exiting a location, or inactivity. * **Automation** sends a single message. Use the [Automation composer](https://www.airship.com/docs/guides/messaging/messages/sequences/create-automation/) or the [`/pipelines` endpoints](https://www.airship.com/docs/developer/rest-api/ua/operations/automation/) to create Automations. * **Sequences** can send a single message or a series of messages. Airship sends the messages based on your timing settings, and you can set conditions that determine continuation. Create a Sequence from the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map). Sequences have additional triggers not available for Automations and can be connected to each other and to other messaging components to create continuous user experiences in a [Journey](https://www.airship.com/docs/reference/glossary/#journey). See [Sequences](#sequences) for more information about Sequence-specific features. For both, you can refine your audience with [Cancellation Events](https://www.airship.com/docs/reference/glossary/#cancellation_events_event_option) and [Conditions](https://www.airship.com/docs/reference/glossary/#conditions_event_option). > **Tip:** Automations and Sequences rely on a trigger. If you want to automatically send the same message on a recurring schedule, use the [Message composer](https://www.airship.com/docs/guides/messaging/messages/create/) with the Recurring delivery option. You can also use the [Schedules API](https://www.airship.com/docs/developer/rest-api/ua/operations/schedules/). ## Use cases There are many uses for automation: * Send targeted messages to users who are predicted to delete your app and a different message to your most loyal users. * Send a "How was your visit?" message 24 hours after a mobile device enters a defined location. * Send a Thank You message when a user opts in to web notifications in their browser. * Send a web push notification to users who haven't visited your website for five days. For more complex use cases, use Sequences to send multiple messages, set outcomes, and route users to different paths based on their behavior: * **Abandoned cart** — Create a series of reminder messages, exit the Sequence when the user completes a purchase, and route to a Sequence that sends a promo code or prompts to review their purchase. * **Event promotion** — Create a series of messages promoting an event, exit the Sequence when the user purchases tickets for that event, and route to a Sequence that provides updates about the upcoming event. * **Feature launches** — Create a series of messages educating users about a new feature, exit the Sequence when the user engages with the feature, then route to a Sequence providing tips and requesting feedback. See also [Scenes](https://www.airship.com/docs/reference/glossary/#scene). ## Sequences Sequences offer additional capabilities beyond single-message Automations. You can send one message or multiple messages in a series, with delivery timing and delays between messages. For each message, configure [Contact](https://www.airship.com/docs/reference/glossary/#contact)-, [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list)-, or [Segment](https://www.airship.com/docs/reference/glossary/#segment)-based requirements. The message is not sent if the user does not meet the conditions. Sequences also support alternative outcomes to ending the Sequence when all messages are sent. You can route users to different Sequences or in-app experiences based on their behavior. Use a [Sequence Template](https://www.airship.com/docs/reference/glossary/#sequence_template) to simplify getting started. ### Cross-channel retargeting Cross-channel retargeting is a way to send messages in a Sequence to selected channels based on behavior in a different channel. For example, you can trigger a Sequence from an app event and send messages to email, SMS, web, or open channels. Configure each message in a Sequence for different channels to reach users where they're most likely to engage, creating cohesive cross-channel experiences. You can also apply [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) and [Predictive Churn](https://www.airship.com/docs/reference/glossary/#predicted_to_churn) for more complex retargeting: * **Retail** — When a user becomes high risk for churn, send messages with increasing discounts to email, SMS, web, and app channels, to entice them back to your app or website. Channel Coordination strategy: [Fan Out](https://www.airship.com/docs/reference/glossary/#fan_out). * **Travel** — When a user purchases a flight, send promotions for preferred seating and lounge passes to the channel where the user purchased the ticket (i.e., where the event originated from). Channel Coordination strategy: [Originating Channel](https://www.airship.com/docs/reference/glossary/#originating_channel). > **Note:** If you are retargeting based on interaction with a message, the first message for retargeting must be a push notification, in-app message, or web push notification. # Create an Automation > Use the Automation composer to automatically send a message to users when predefined conditions are met. > **Note:** Each automation counts toward your *Sequences and Automation* [Message Limit](https://www.airship.com/docs/reference/glossary/#message_limits). To get started, access the Automation composer: 1. Select **Create** in the sidebar. 1. Next to **Build from scratch**, select **View all**. 1. Select **Automation**. Next, enter a message name and save it. After completing a step, select the next one in the header to move on. ## Setup First, [configure the trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/) that will initiate your automation, and enable the channels you want to send the message to. Then, configure options: [Cancellation Events](#cancellation-events), [Conditions](#conditions), and [Rule Limits](#rule-limits). Last, set up [Channel coordination](#channel-coordination). ### Cancellation Events *Cancellation events* are Custom Events that prevent an Automation, Sequence, In-App Automation, or Scene from sending/displaying if they occur while the Automation (or other) is in a delay period. Not supported for the Inactivity trigger. To configure, complete the same workflow used for the [Custom Event trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#custom-event). This includes the option to [filter](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#filtering-custom-events) the cancellation events. > **Important:** Cancellation events require a delay of at least one hour to ensure that there is time for the cancellation event to occur after the original triggering event occurs. In the *Delivery* step in an automation, you must specify a delay of at least one hour. ### Conditions Conditions are requirements your audience must meet in order to receive a message from an automation. You can base conditions on whether a user has or does not have a specific [Tag](https://www.airship.com/docs/reference/glossary/#tag), which includes [Predicted to Churn status](https://www.airship.com/docs/reference/glossary/#predicted_to_churn) and [Device Property](https://www.airship.com/docs/reference/glossary/#device_properties) tags, or whether or not they are a member of a [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list). > **Tip:** If sending an SMS message, you can use conditions to restrict your message audience to a particular [Sender ID](https://www.airship.com/docs/reference/glossary/#sender_id). Either search for a sender ID, or select the Sender ID filter before searching. To configure: 1. Select **Add a condition**. 1. Search for the data you want to use as a condition. To filter results, select the filter menu icon ( ) and make your selection. Search behavior varies by filter: * **All (no filter selected):** Search within all condition types. * **Tags:** Search for [primary device tags](https://www.airship.com/docs/guides/audience/tags/#device-tags) (tags in the `device` tag group). * **Tag Groups:** Search for and select a tag group, then search within that tag group. * **Predicted to Churn:** Search for all or part of `High`, `Medium`, `Low` or `Predicted` only. * **Subscription List:** Search subscription list names only. To create a new tag using your search term, click **Create [search term]**. 1. Select the logic for the condition: * **Has** means the user must have the tag or be a member of (opted in to) the subscription list to receive the message. * **Doesn’t Have** means the user must not have the tag or be a member of (not opted in to) the subscription list to receive the message. 1. After adding all conditions, use the **Any**/**All** Boolean selector to determine which conditions must be satisfied before the message will be sent. ### Rule Limits *Rule limits* cap the number of messages a user can receive from an Automation within a time frame, preventing you from over-messaging your audience, e.g., a maximum of 1 per day. Rule limits are set per Automation. To configure, select **Add a Daily Limit** and/or **Add an All-Time Limit** and enter a number. ### Channel coordination

First, select a [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) strategy:

  • Fan Out targets a Named User on all the channels they are opted in to, maximizing the chances they receive your message.
  • Last Active targets a Named User on the opted-in channel they used most recently.
  • Priority Channel targets a Named User on the first channel they are opted in to, in the priority order you set.

Then, enable the channel types to include in your audience. For Mobile Apps, also select from the available platforms. For Priority Channel, also drag the channel types into priority order.

> **Note:** For projects using the [channel-level segmentation system](https://www.airship.com/docs/guides/audience/segmentation/segmentation/#channel-level-segmentation), instead of channel coordination, enable the channels you want to send the message to. Available channels are based on your trigger. > > ![Enabling channels for an Automation](https://www.airship.com/docs/images/automation-setup_hu_c55295eb0c3c25c9.webp) > > *Enabling channels for an Automation* ## Content Configure the message content per enabled channel. See [Content by channel](https://www.airship.com/docs/guides/messaging/messages/content/). ![Create an Automation](https://www.airship.com/docs/images/composer-content-app_hu_28a88387be2dfd33.webp) ## Delivery Configure [delivery](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery/). Timing settings do not appear if you chose the Inactivity trigger. ## Review {#message-review} Review the device preview and message summary. Click the arrows to page through the various previews. The channel and display type dynamically update in the dropdown menu above. You can also select a preview directly from the dropdown menu. If you want to make changes, click the associated step in the header, make your changes, then return to *Review*. Send a test message to verify its appearance and behavior on each configured channel. The message is sent to your selected recipients immediately, and it appears as a test in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview). 1. Select **Send Test**.
  1. Under Test audience, enter at least one [Named User](https://www.airship.com/docs/reference/glossary/#named_user) or [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups) and select from the results. If your message includes email, you can also search for email addresses. If no matches appear for an address, you can select Create channel for <address>, and the channel will be registered for your project and opted in to transactional messaging.

    Users in an active [Holdout Experiment](https://www.airship.com/docs/reference/glossary/#holdout_experiment) will not receive a test message. You can view a user’s current holdout group status and history when viewing their channel details in Contact Management.

  2. (If your message contains [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars)) Under Personalization, select and configure a personalization data source:

    Data source Description Steps
    Test message recipient The message will be personalized using information associated with each test audience member. n/a
    Preview Data tool The message will be personalized using the data currently entered in the Preview Data tool. The same values will apply to all test message recipients. You can also manually edit the JSON. (Optional) Edit the JSON data.
  3. Select Send.

Choose whether to create this automation as *Active* or *Paused*. Select Paused if you’d like to create the message but aren't quite ready to activate it. After starting your automation, you can [change its status at any time](https://www.airship.com/docs/guides/messaging/manage/change-status/). When ready, select **Start Automation** or **Schedule Automation**. ## Convert an Automation to a Sequence Convert an Automation to a Sequence so you can use features like [Control Groups](https://www.airship.com/docs/guides/experimentation/control-groups/), [Test Run](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/), and [A/B Testing](https://www.airship.com/docs/guides/experimentation/a-b-tests/sequences/). You can also add more messages. After conversion: * The Automation name is copied to the Sequence. * The Automation trigger and settings are copied to the Sequence. * The Automation message content and settings are copied to the first message in the Sequence. * The Sequence status is the same as the Automation status at the time of conversion: *Started* if the Automation was active, and *Paused* if the Automation was paused, or *Draft*. * The converted Automation is archived and cannot be un-archived. To convert to a Sequence: 1. Go to **Messages**, then **Messages Overview**. 1. Click the duplicate icon ( ) for an Automation, and select **Convert to: Sequence**. The next screen will be the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager) for the new Sequence. # Automation and Sequence triggers > A trigger is an event that initiates an Automation or Sequence. In an [Automation](https://www.airship.com/docs/guides/messaging/messages/sequences/create-automation/), configure triggers in the Setup step. Configure Sequences triggers in the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map). See the [Trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#trigger) step in *Create a Sequence*. ## Trigger support by channel The following table shows trigger support by channel: | Trigger | App | Web | Email | SMS | Open | | --- | :---: | :---: | :---: | :---: | :---: | | **[Custom Event](#custom-event)** | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Double Opt-In](#double-opt-in)** | | | ✓ | | | | **[First Seen](#first-seen)** | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Inactivity](#inactivity)** | ✓ | ✓ | | | | | **[Location](#location)** | ✓ | | | | | | **[Location Attributes](#location-attributes)** | ✓ | | | | | | **[Predicted to Churn](#predicted-to-churn)** | ✓ | ✓ | | | | | **[Subscription](#subscription)** | ✓ | ✓ | ✓ | | | | **[Tag Change](#tag-change)** | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Contact Association](#contact-association)**1 | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Date Attribute](#date-attribute)**1 | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Feature Flag Interaction Event](#feature-flag-interaction-event)**1 | ✓ | ✓ | | | | | **[Manual Entry](#manual-entry)**1 | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Recurring Schedule](#recurring-schedule)**1 | ✓ | ✓ | ✓ | ✓ | ✓ | | **[Specific Date and Time](#specific-date-and-time)**1 | ✓ | ✓ | ✓ | ✓ | ✓ | 1. Supported for Sequences only. ## Triggers Follow these steps to configure each trigger. ### Contact Association The Contact Association trigger initiates a Sequence when an anonymous channel is associated with a [Named User](https://www.airship.com/docs/reference/glossary/#named_user). After selecting the trigger, no setup is required. ### Custom Event {#custom-event} The *Custom Event trigger* initiates an Automation or Sequence when a Custom Event associated with members of your audience occurs. See: [Custom Events](https://www.airship.com/docs/guides/audience/events/custom-events/). Configuration steps: 1. Search for and select an event. Results are limited to events that occurred in the last 30 days. If the event name you search for does not appear, click **Use [search term]** to use the event name as typed. 1. (Optional) Click **Add Another** to add more events. Airship handles multiple events as a boolean OR. 1. (Optional) Follow the [Filtering Custom Events](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#filtering-custom-events) steps to add custom event filters. 1. (Optional) Set the maximum age for the events. If an event is received after it is older than a certain age, the automation or sequence will not start. 1. Enable *Event Expiration*. 1. Enter a value in minutes, hours, days, months, or years. > **Tip:** If you are a [Radar](https://radar.io/) customer and have configured the > [Airship and Radar integration](https://www.airship.com/docs/integrations/radar/), Radar location events and properties will > be available for use with the Custom Event trigger. #### Filtering Custom Events {#filtering-custom-events} When configuring the [Custom Event trigger](#custom-event) or Automation [Cancellation Events](#cancellation-events), you can filter them using their associated numeric values or by key/value properties attached to the events. Filtering events this way can help you more precisely target your audience.

For example, if you have a custom event named “Purchase”, with a purchase category fedoras and a value 125.0 representing the dollar amount of the purchase, you can add these criteria to the Purchase event so that your message is only seen by users spending at least $125 on fedoras.

> **Note:** * Properties are only available for [custom events defined in your project](https://www.airship.com/docs/guides/audience/events/manage/). > * Acceptable values and operators for event properties are based on configuration settings when adding the events to your project. > * The filter **does not** show events and event properties for custom events associated with [Named Users](https://www.airship.com/docs/reference/glossary/#named_user). You can still use events associated with named users as triggers, but you must enter their information manually.
  1. Select Add event properties for the custom event.
  2. Select Add property, then Search for properties and search for a property, or select Add event value.
  3. If applicable, select the operator you want to use to evaluate the value or property.
  4. Enter or select the event or property value you want to filter for.
  5. (Optional) Select the plus icon ( ) to add an alternative for a filter.
  6. (Optional) Select Add property or Add event value to add more filters.
  7. Select All or ANY to determine how to evaluate multiple filters and alternatives within each filter.
    • ALL = all criteria must be met (boolean AND)
    • ANY = any criteria must be met (boolean OR)
  8. Select Save.
#### Filtering Custom Events using file upload {#file-upload}

You can use file upload to provide multiple values to match against a specified event property’s value. For string properties only.

For example, for a point-of-sale system that emits events when a sale occurs, an event might have the following data:

```js name: "sale-completed" properties: customer_id: 234234 store_id: 103843 region: "northwest-usa" ```

To trigger only when sales occur in the regions of northwest-usa and southwest-usa but not midwest-usa or any other region, you would do the following to filter your custom events:

  1. Search for or enter the property name region.
  2. Select operator File upload (is one of).
  3. Upload a .txt file containing values northwest-usa and southwest-usa.

Provide your values in a line delimited .txt file. Each value must be on a separate line. 100 KB maximum file size.

### Date Attribute The *Date Attribute trigger* initiates a Sequence for your entire audience or for a specified Segment based on the month and day of a date attribute. You can enter your selected audience into the Sequence on the next occurrence of the actual attribute date or a number of days before or after the date. See also [Segmenting your audience](https://www.airship.com/docs/guides/audience/segmentation/segmentation/) and [Attributes](https://www.airship.com/docs/reference/glossary/#attributes). Configuration steps: 1. Select your audience: all users or a [Segment](https://www.airship.com/docs/reference/glossary/#segment). 1. (Segment audience only) Search for and select a segment. You can select **View segment detail** to open it for editing and confirm the audience. 1. Set when the audience should start the Sequence. 1. Search for and select a date attribute. After saving, you can select the trigger card to view the segment name and scheduled send time relative to the attribute date. Select the name to open it for editing. > **Note:** Segmentation data is evaluated at send time. For example, if your sequence targets an audience list whose members change over time, it is sent to the current version of the list when the sequence is triggered. ### Double Opt-In The *Double Opt-In trigger* initiates an Automation or Sequence when a member of your audience opts in to commercial email messaging. You must provide an opt-in link in the body of the message, and users must follow the link to confirm opting in. You can filter the trigger by using properties attached to the opt-in event, and you can reference the properties using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars) to personalize the message content. If you choose to use properties in these ways: * Your developer must add the properties when setting up email channel registration. * You cannot search for properties when filtering. Instead, you will enter a property name, then opt to use the name as entered. * The property name you enter when filtering (or for handlebars personalization) must be identical to the name in the `properties` object for the opt-in event. For additional requirements and usage details, see: [[Double Opt-In](https://www.airship.com/docs/reference/glossary/#double_opt_in)](https://www.airship.com/docs/developer/api-integrations/email/getting-started/#double-opt-in). In the Automation composer, first make sure that only the Email channel is enabled, then select the trigger. After selecting the trigger, no configuration is required, but you can filter by properties attached to the double opt-in event: 1. Select **Add Property**. 1. Enter a property in the search field and select **Use [property]**. 1. Select the operator you want to use to evaluate the property. 1. Enter a value. Select ** ** to add additional values. Multiple values are evaluated as a boolean OR. 1. (Optional) Select **Add Property** to add more filters. 1. Select *ALL/ANY* to determine how to evaluate multiple filters and alternatives within each filter using a boolean *AND/OR*. * **AND** = all criteria must be met * **OR** = any criteria must be met ### Feature Flag Interaction Event The Feature Flag Interaction Event trigger initiates a Sequence when a [Feature Flag](https://www.airship.com/docs/reference/glossary/#feature_flag) interaction event occurs. You can trigger for users with access to the flagged feature, users who do not have access to the flagged feature, or both. The interaction event must be implemented for the app or website. See [Interaction events](https://www.airship.com/docs/guides/experimentation/feature-flags/#interaction-events) in the *Feature Flags* guide. Configuration steps: 1. Search for a flag by name, display name, or description. 1. Select who can trigger the Sequence: | Option | Description | | --- | --- | | **Users with feature access** | Trigger for members of the Feature Flag audience, which includes all Configuration audiences for a flag. | | **Users without feature access** | Trigger for users who are not members of the Feature Flag audience. | 1. Enter the number of times the event must occur before the Sequence is triggered. ### First Seen The *First Seen trigger* initiates an Automation or Sequence when members of your audience opt in to notifications or when a channel registration event, such as when the app launches in the background or a user opens your app for the first time, occurs. The behavior of the First Seen trigger varies by channel: * **Apps:** Triggers the automation or sequence when a channel registration event occurs: when the app launches in the background or a user opens your app for the first time. See [Channel registration](https://www.airship.com/docs/guides/getting-started/developers/channels-intro/#channel-registration) in *Intro to Channels*. * **Web, SMS, and open channels:** Triggers the automation or sequence when users opt in to notifications. * **Email:** Triggers the automation or sequence when users opt in to commercial notifications. To configure, select the First Seen trigger. No further setup is required. > **Important:** * Users added to Airship through [Create and Send](https://www.airship.com/docs/reference/glossary/#create_and_send) are purposely excluded from the First Seen trigger, preventing them from receiving duplicate messages when added to the system. > > * **Automation:** The First Seen trigger requires a delay of at least one hour to ensure delivery. Set a delay in the Delivery step in an automation. > > * **Sequences:** For the First Seen trigger, a delivery delay shorter than one hour is allowed but may result in dropped sends. Set a delay as the first step when creating a new message. ### Inactivity > **Note:** For Sequences, the Inactivity trigger: > * Cannot be combined with other triggers. It must be the only trigger for a Sequence. > * Does not support adding [Conditions](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#trigger). > * Cannot be used with the [App Open exit event](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/#exit-events). The *Inactivity trigger* initiates an Automation or Sequence when a member of your audience does not use your app or website for a period of time. The inactivity period begins the later of **a)** the creation time of the automation or sequence, or **b)** the last app or website activity by the user. To configure, enter the period of inactivity in days. ### Location > **Note:** The *Location* trigger requires [Gimbal integration](https://www.airship.com/docs/integrations/gimbal/). The *Location trigger* initiates an Automation or Sequence based on an audience member's device location. You can select a maximum of 20 locations per automation or sequence. Configuration steps: 1. Click **Select a Location**. 1. Enter a search term. Results, if any, display on the map and are listed on the *Results* tab. There are two types of locations available for selection: [geofences and beacons](https://www.airship.com/docs/integrations/gimbal/#key-terms). Click a result for a detailed view of a location. ![Automation and Sequence triggers](https://www.airship.com/docs/images/location-search_hu_aac84774367b4811.webp) If selecting a geofence, the map will zoom to the selected location. Click and drag, and use the **+/-** zoom controls to change the displayed area. ![Automation and Sequence triggers](https://www.airship.com/docs/images/location-results_hu_2e41ddd1dbaa02dd.webp) 1. On the *Results* tab, check the box next to the locations you want to use as the trigger. 1. Review the *Selections* tab, then click **Save and continue**. 1. (Optional) Click **Select a Location** to add more locations. 1. Choose whether to trigger your automation or sequence when the user *enters* or *exits* a location. ### Location Attributes > **Note:** The *Location Attributes* trigger requires [Gimbal integration](https://www.airship.com/docs/integrations/gimbal/). The *Location Attributes trigger* initiates an Automation or Sequence based on *key/value pair* metadata associated with a particular location. You can add a maximum of 50 location attributes per automation or sequence. Configuration steps: 1. Enter a key/value pair for the location you want to use as the message trigger. ![Automation and Sequence triggers](https://www.airship.com/docs/images/location-attributes_hu_3f4922c696625a6b.webp) 1. (Optional) Click to add an alternative location attribute. 1. (Optional) Click **Add Another** to add more location attributes. 1. Select *ALL/ANY* to determine how to evaluate multiple location attributes and alternatives within each location attribute.
  • ALL = all criteria must be met (boolean AND)
  • ANY = any criteria must be met (boolean OR)
> **Note:** By default, the automation or sequence is triggered if the audience meets ALL the location attributes. For example, if you selected ALL, with attributes `half_off` and `has_cafe`, you’d only reach users who enter or exit locations that meet both conditions. If you select ANY, you’d reach all users who enter a location running a half-off campaign as well as all users who enter a location that has a cafe. 1. Choose whether to trigger your automation or sequence when the user *enters* or *exits* a location. ### Manual Entry > **Note:** The Manual Entry trigger does not support adding [Conditions](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#trigger). The *Manual Entry trigger* initiates a Sequence for the audience members in a specified Segment. See also: [Segmenting your audience](https://www.airship.com/docs/guides/audience/segmentation/segmentation/). Configuration steps: 1. Search for and select a [Segment](https://www.airship.com/docs/reference/glossary/#segment). You can select **View segment detail** to open it for editing and confirm the audience. 1. Select **Save** for the trigger configuration. 1. Select the card for the trigger you just saved. You can select the segment name to open it for editing. 1. Select **Enter** to enter the segment into the Sequence so they can start receiving messages. * **Enter** is not available until after the Sequence has been started. * If you enter the same segment into the Sequence more than once, the users may receive the same messages from the Sequence more than once. > **Note:** Segmentation data is evaluated at send time. For example, if your sequence targets an audience list whose members change over time, it is sent to the current version of the list when the sequence is triggered. ### Predicted to Churn The *Predicted to Churn trigger* initiates an Automation or Sequence when Airship predicts an audience member's likelihood of becoming inactive, or *churning*. [Predictive Churn](https://www.airship.com/docs/guides/features/intelligence-ai/predictive/predictive-churn/) analyzes your audience for users that exhibit behaviors indicating they are likely to become inactive, and tags the users as High, Medium, or Low Risk. > **Note:** To enable Predictive Churn features: > > 1. Next to your project name, select the dropdown menu ( > ), then **Settings**. > 1. Under **Project settings**, select **Predictive AI**. > 1. Enable **Predictive App Churn** and/or **Predictive Web Churn**. Configuration steps: 1. Select a risk profile. * **High risk:** Users most likely to become inactive. * **Medium risk:** Users who exhibit signs of potentially becoming inactive. * **Low risk:** Users least likely to become inactive. 1. Choose whether to apply the trigger when the risk is added or removed. ### Recurring Schedule The *Recurring Schedule trigger* initiates a Sequence for the audience members in a specified Segment periodically at specified intervals. You can also set an end date for the Sequence and exclusion periods. See also: [Segmenting your audience](https://www.airship.com/docs/guides/audience/segmentation/segmentation/). Configuration steps: 1. Search for and select a [Segment](https://www.airship.com/docs/reference/glossary/#segment). You can select **View segment detail** to open it for editing and confirm the audience. 1. Specify the delivery interval by number of hours/days/weeks/months/years. For weeks, also specify which days of the week when the Sequence will be triggered. 1. Set the initial date to trigger the Sequence. 1. Set the initial time and time zone to trigger the Sequence. 1. (Optional) Specify when the Sequence can no longer be triggered. 1. Enable *End Date*. 1. Enter a date. 1. Set the time and time zone. 1. (Optional) Specify dates or days of the week when the Sequence should not be triggered. If you select the *hours* interval, you can also specify which hours of the day should be excluded. If you select the *weeks* interval, you can only specify which dates should be excluded. If the scheduled date and time fall during an excluded period, Airship waits to trigger until the next available valid time. For example, if you scheduled weekly on Thursdays but added the date for Thanksgiving Day as an exclusion, the next available trigger time would be the Thursday after Thanksgiving Day. 1. Enable *Do not send*. 1. Select **Add date exclusion**, enter a date, and repeat for additional dates. 1. Select **Add day exclusion** and select days. 1. Select **Add time exclusion** and set start and end times. After saving, you can select the trigger card to view the segment name, interval, and initial scheduled date and time (UTC). Select the name to open it for editing. > **Note:** Segmentation data is evaluated at send time. For example, if your sequence targets an audience list whose members change over time, it is sent to the current version of the list when the sequence is triggered. ### Specific Date and Time The *Specific Date and Time trigger* initiates a Sequence for the audience members in a specified Segment at a set date and time. See also: [Segmenting your audience](https://www.airship.com/docs/guides/audience/segmentation/segmentation/). Configuration steps: 1. Enter a date in YYYY-MM-DD format and select the time and time zone. 1. Search for and select a [Segment](https://www.airship.com/docs/reference/glossary/#segment). You can select **View segment detail** to open it for editing and confirm the audience. After saving, select the trigger card to view the segment name and scheduled date and time (UTC). Select the name to open it for editing. > **Note:** Segmentation data is evaluated at send time. For example, if your sequence targets an audience list whose members change over time, it is sent to the current version of the list when the sequence is triggered. ### Subscription The *Subscription trigger* initiates an Automation or Sequence when a Contact opts in to or out of a subscription list. Lists enabled for *Auto opt-in* are not available for this trigger. See [Auto opt-in](https://www.airship.com/docs/guides/audience/segmentation/audience-lists/subscription/#auto-opt-in) in *Subscription lists*. Airship evaluates subscription status across all channels collectively. A Contact is subscribed to a list when they have at least one opted-in channel and unsubscribed when they have no opted-in channels. The trigger fires when this subscription status changes. Configuration steps: 1. Search for and select at least one list. 1. Specify whether to trigger when users opt in to, or opt out of, the list. ### Tag Change The *Tag Change trigger* initiates an Automation or Sequence when a tag is added or removed from a device. Configuration steps: 1. Search for a tag. If the tag you search for does not appear, click **Create [search term]** to create a new tag. You can select a tag group filter before or after searching. 1. (Optional) Click **Add Another** to add more tags. Airship handles multiple tags as a Boolean OR. 1. Choose whether to apply the trigger when a tag is added or removed. # Sequence Manager > Learn how to navigate the Manage screen. The *Sequence Manager* displays a preview of the messages in a Sequence, with options for editing and testing, and for running experiments. You can access the sequence manager by selecting your sequence in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview) and clicking or by selecting a sequence in the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map) and clicking . Airship also opens the sequence manager after you add or modify messages in a sequence. ## Manage screen layout The following information and actions are available in the sequence manager. ![The sequence manager](https://www.airship.com/docs/images/seq-manage_hu_3bfaf0104768f915.webp) *The sequence manager* 1. Return to your [Airship dashboard](https://www.airship.com/docs/reference/glossary/#dashboard). 1. The icon, name, and environment type for your current project. 1. The sequence name. 1. [Edit the sequence settings.](https://www.airship.com/docs/guides/messaging/messages/sequences/create/edit/#settings) 1. [Start or pause the sequence.](https://www.airship.com/docs/guides/messaging/manage/change-status/#start-pause-sequence) 1. Return to the sequence manager screen from the [Performance](https://www.airship.com/docs/reference/glossary/#sequence_performance) report. 1. View the [Performance report](https://www.airship.com/docs/reference/glossary/#sequence_performance). *Performance* appears after you start the sequence. 1. [Preview personalization](https://www.airship.com/docs/guides/personalization/previewing/) in your message. 1. Exit the sequence or click for more options. * **Save and exit** —  Apply changes to the sequence. The next screen will show the sequence in the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map). If your sequence is in progress, click the sequence in the map, then click **Publish changes** to resume your sequence with your changes applied. * **Revert** — Exit the sequence without saving changes. * **Archive** — Archive the sequence. 1. Click the drawer to view sequence settings and configuration options: * **Trigger** — View the sequence [trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/) configuration. * **Outcomes** * **Conversions** — For [sequence outcomes](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/) configured for *Conversion* exit events, this is the conversion count and rate per outcome. This is labeled *Reactivations* if using the [Inactivity trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#inactivity). * **Continuations** — The number of users who met the conditions for all messages in the sequence and continued to the downstream journey component. * **Test Run** — [Test the sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/#test-a-sequence) and [view results](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/#test-report). * **Experiments** — Create a control group or A/B test, and view data related to active experiments. Click *Past Experiments* to see history. See the tutorials for more information: [Sequence Control Groups](https://www.airship.com/docs/guides/experimentation/control-groups/), [Sequence A/B Tests](https://www.airship.com/docs/guides/experimentation/a-b-tests/sequences/). 1. The [[Conditions](https://www.airship.com/docs/reference/glossary/#conditions_event_option)](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/#conditions) set for the message. [Edit the message delay and conditions](https://www.airship.com/docs/guides/messaging/messages/sequences/create/edit/#delay-conditions). 1. The delay period set for the message. See: [Edit the message delay and conditions](https://www.airship.com/docs/guides/messaging/messages/sequences/create/edit/#delay-conditions). 1. The message summary. The message name appears at the top. If your account is enabled for [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination), the message's Channel Coordination strategy and selected channels also appear here. Click for options to: * [Edit the message content.](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/) * [Send a test message.](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/#test-a-message-in-a-sequence) * Delete the message. You cannot delete the first message in a sequence. 1. The device preview. Select from the menu to see how the message will appear on different devices. If your content is personalized, you can use the [Preview Data](https://www.airship.com/docs/guides/personalization/previewing/) option to see how the content will look when populated with data. 1. The attribution period after the last message is sent, during which cancellation and conversion events are counted in reporting. After the attribution period elapses, no further events are recorded for the sequence.

For sequences configured with a continuation sequence outcome that does not include an exit event, the attribution period is the delay period set for the continuation sequence. For all other sequences, the attribution period is one day (24 hours). Sequences created prior to August 28, 2023, have a one-hour attribution period.

1. [Add a message to the sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/). 1. After editing a sequence, click **Test changes** to [create a sequence test](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/#test-a-sequence), or click **Publish changes** to apply the changes to a sequence that is already in progress. # Sequence Performance > The Performance report shows audience behavior compared to the sequence's goal. It displays performance data and a link to the message report for each message in the sequence. A sequence's Performance report is available after you [start the sequence](https://www.airship.com/docs/guides/messaging/manage/change-status/#start-pause-sequence). You will not see links to the reports until then. > **Note:** Engagement data is sent to Airship as soon as it becomes available. Data may be delayed due to connectivity issues with a user's carrier, Wi-Fi, power, etc. Wait at least 12 to 24 hours before acting on the data to allow for potential lags. You can access a performance report by selecting your sequence in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview) and clicking or by selecting a sequence in the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map) and clicking . ## Performance report layout The performance report has the same layout as the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager), and the message previews show the content as it appeared when the sequence was first started. The following information and actions are available in the report. ![A sequence performance report](https://www.airship.com/docs/images/sequence-performance_hu_e1e00bb250ea8a72.webp) *A sequence performance report* 1. *Entries* — The total number of users who entered the sequence. 1. A time period. For each message in the sequence, this is the delay period set for the message. A time period also follows the last message in the sequence. This is the attribution period after the last message is sent, during which cancellation and conversion events are counted in reporting. After the attribution period elapses, no further events are recorded for the sequence.

For sequences configured with a continuation sequence outcome that does not include an exit event, the attribution period is the delay period set for the continuation sequence. For all other sequences, the attribution period is one day (24 hours). Sequences created prior to August 28, 2023, have a one-hour attribution period.

1. *Filtered users* — The reasons why users exited the sequence, or *fell out of the funnel*, and counts for each. Hover over a reason row to see its definition. See also on this page: [Filter definitions and troubleshooting](#filter-definitions-and-troubleshooting). 1. *Eligible users* — The total number of users that have met the criteria to receive the message. A user could be either a [Channel](https://www.airship.com/docs/reference/glossary/#channel_engage) or a [Named User](https://www.airship.com/docs/reference/glossary/#named_user). 1. *Sends* — The total number of messages sent across all platforms. Sends may be higher or lower than your eligible users depending on your [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) strategy. 1. *Direct engagements* — The total number of direct app opens and clicks on web notifications. The percentage of direct engagements is calculated as *Direct Engagements* / *Number of Sends* * 100. 1. *Conversions / Reactivations* — The number of users who exited the sequence by a *Conversion* event. This count is used to calculate conversion/cancellation rates. * If your sequence does not have a *Conversion* outcome, this count will not appear. * For sequences using the [Inactivity trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#inactivity), *Conversions* is instead labeled *Reactivations*. A reactivation occurs when an eligible user re-engages with the app or website. * Conversion events that occur before the first message of the sequence is sent are not included in the Conversions/Reactivations count, though converted users will still experience the conversion outcome as configured. 1. The message summary. The message name appears at the top. If your account is enabled for [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination), the message's Channel Coordination strategy and selected channels also appear here. 1. Click to open the [message report](https://www.airship.com/docs/guides/reports/message/). 1. The device preview. Select from the menu to see how the message will appear on different devices. --- The report shows data for *All Time* by default. You can select a different time frame, and the report will reload with data for that period. If you [set a control group](https://www.airship.com/docs/guides/experimentation/control-groups/) for the sequence, you can also select *Active audience* / *Control group* to change the viewable data. > **Tip:** You can access Performance reports from additional locations: > > * From the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager), click *Performance*. > * From the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map), select a sequence in the map, then click *Performance*. ## Filter definitions and troubleshooting The Performance screen displays counts for the following reasons users exit a sequence. Activation : The message delivery time was outside of the sequence's scheduled start/stop window. > --- > **Troubleshooting:** Make sure the sequence [start and end dates and times](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#trigger) are set correctly. Cancelled : A [[Cancellation Event](https://www.airship.com/docs/reference/glossary/#cancellation_events_event_option)](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/#exit-events) event was performed. Conditions : The message's [Conditions](https://www.airship.com/docs/reference/glossary/#conditions_event_option) were not met, e.g., message 2 was only delivered to users with tag `hotdog`. > --- > **Troubleshooting:** Verify message conditions are set correctly. See: [Edit delay and conditions for a message in a sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/edit/#delay-conditions). Disabled : The sequence was paused during the time when users would have received the next message. > --- > **Troubleshooting:** Check the [Team activity log](https://www.airship.com/docs/guides/getting-started/admin/teams-messaging/#team-activity-log) to see when the sequence may have been paused: > 1. Go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager) and copy the reference from the page URL. The reference is the string following `series`. For example, in the URL `https://go.airship.com/apps/Vl0wyEXAMPLEUW98Wj4xg/composer/series/fmYMAonmSIuaJEge3VIouw/messages/#/edit`, the reference is `fmYMAonmSIuaJEge3VIouw`. > 1. Select the account menu icon () in the dashboard header and select *Team Management*, then *Activity*. > 1. Select your project and the action *Journey paused*. > 1. Use Control+F or Command+F to find the reference on the page. You may need to change the number of items on the page or adjust the date time range. Error : Any reason not attributable to another filter. Expired : The message was not delivered to a device before its expiration date and time. > --- > **Troubleshooting:** Make sure [expiration](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery-options/#expiration) is set up correctly for the message. > 1. Go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager). > 1. Click for a message, then **Edit Message**. > 1. Go to the *Delivery* step and review the expiration settings. Rescheduled : Users awaiting the scheduled message in a sequence performed the trigger event again, resulting in cancelling and rescheduling the message delivery. This can also occur when channel-level fulfillment is rescheduled to a contact-level fulfillment. > --- > **Troubleshooting:** None. Even with [Rule Limits](https://www.airship.com/docs/reference/glossary/#rule_limits_sequence) set, a user could enter a sequence multiple times while awaiting delivery of the first message, resulting in rescheduling. Rewritten : The message trigger and/or timing were edited while the user was awaiting message delivery, invalidating delivery. > See: [Edit sequence settings](https://www.airship.com/docs/guides/messaging/messages/sequences/create/edit/#settings) and [Edit delay and conditions for a message in a sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/edit/#delay-conditions). Rule limits : The [Rule Limits](https://www.airship.com/docs/reference/glossary/#rule_limits_sequence) or the project [Message Limits](https://www.airship.com/docs/reference/glossary/#message_limits) (set for *Sequences and Automation*) were met. > --- > **Troubleshooting:** View your sequence- and project-level rule limits and edit if they are too restrictive: > * *Sequence rule limits* — Go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager), then click *Settings* and review *Rule Limits* on the *Trigger* tab. > * *Project rule limits* — Next to your project name, select the dropdown menu ( ), then **Settings**. Then, under **Project settings**, select **Message Limits** and review your settings for **Sequence and Automation Limits**. Timing : Message delivery was set to *schedule after delay* or *send during available window after delay* and either were true: > 1. A user did not have a known time zone. > 1. The option *Do not send* was selected for *If a trigger occurs outside the available window*, and the trigger did occur outside the window. > --- > **Troubleshooting:** If you did not intend to include a channel with unknown time zones, you can exclude them from your audience: > * **Non-AXP or -Orchestration customers:** Go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager), then click *Settings* and change channel selections on the *Target* tab. > * **AXP and -Orchestration customers:** >> 1. Go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager). >> 1. Click for a message, then select *Edit Message*. >> 1. Click and edit the enabled channels for the message. > --- > To disable the *Do not send* option: > 1. Go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager). > 1. Click for a message, then select *Edit Message*. > 1. Go to the *Delivery* step and change the Timing setting to *Send at next available time*, or [configure a different delivery](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery/). Untargetable Platform : Users did not have a [Channel](https://www.airship.com/docs/reference/glossary/#channel_dev) matching any of those selected for the message audience. ### Creating Sequences Learn how to configure Sequences. # Create a Sequence > Create a series of messages that are initiated by a trigger. Messages are delivered according to your timing settings, and you can also set conditions that determine the continuation of the series. > **Note:** Each message in a sequence counts toward your *Sequences and Automation* [Message Limit](https://www.airship.com/docs/reference/glossary/#message_limits). To get started, create a new Sequence: 1. In the sidebar, select the **Create** dropdown menu ( ), then select **Journey**. 1. Select **Sequence**, then **Start from scratch**. 1. Enter a name for your Sequence. 1. Select **Continue**. You will now configure each [component](https://www.airship.com/docs/guides/messaging/messages/sequences/about/#components) from the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map). You can configure components in any order. ![A draft sequence](https://www.airship.com/docs/images/sequence-map-new-draft_hu_3ee42fbad222fc61.webp) *A draft sequence* ## Trigger Configure a trigger that will initiate your sequence. You can configure up to 10 triggers unless you are using the [Inactivity trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#inactivity). ![Configure a Sequence trigger](https://www.airship.com/docs/images/journey-map-trigger-compose_hu_260abb0a03edbdd8.webp) *Configure a Sequence trigger* 1. Select the trigger card and then the pencil icon ( ). If multiple triggers are configured, first select the trigger stack to expand it, and then select a trigger card. 1. Select and configure a [trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/). 1. (Optional) Under **Settings**, define the times during which the trigger is active for the Sequence. Trigger start and end dates are evaluated before [Sequence start and end dates](#scheduling-and-frequency). 1. Enable **Start Date** and/or **End Date**. 1. Set the time, time zone, and date. 1. (Optional) Under **Conditions**, build a [Segment](https://www.airship.com/docs/reference/glossary/#segment) to filter the audience members entering the Sequence. Creating a segment here uses the same segmentation data and procedure as building [Segments](https://www.airship.com/docs/guides/audience/segmentation/segments/#adding-conditions). You cannot set Conditions for the Inactivity or Manual Entry trigger. 1. Select **Save**. To add another trigger, select the plus icon () below the configured triggers. Adding more triggers to an existing Sequence does not require publishing changes. To delete a trigger, select its card, and then select the trash can icon ( ). > **Tip:** You can route users to a Sequence when an [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa) or [Scene](https://www.airship.com/docs/reference/glossary/#scene) displays on a device or when they select a button in an In-App Automation. See [Link Journey components](https://www.airship.com/docs/guides/features/orchestration-experimentation/journeys/#link-journey-components) in the *Journeys* documentation. ## Scheduling and frequency Define when the sequence can deliver messages to your audience, and control the frequency of sending messages and of triggering the sequence. The settings are optional. 1. Select the sequence card, then the pencil icon ( ). 1. Select **Settings** in the header. 1. Under **Scheduling**, define the times during which the Sequence can deliver messages to your audience. When its end date occurs, its status automatically changes to Completed, and you cannot restart it. Enable **Start Date** and/or **End Date**, and then set the time, time zone, and date. > **Important:** [Trigger start and end dates](#trigger) are evaluated before Sequence start and end dates. Verify settings in both locations before starting a Sequence or publishing changes. 1. Under **Limits**, enable **Ignore Channel Message Limits** to override the project-level [Message Limits](https://www.airship.com/docs/reference/glossary/#message_limits), ensuring that your audience will receive your message even if they've reached the message limit. Overriding message limits does not override your **Rule limits** setting. 1. Under **Limits**, enable **Rule Limits** to cap the number of messages a user can receive from a Sequence within a time frame, preventing you from over-messaging your audience. Select **Add a daily limit** and/or **Add an all-time limit** and enter a number. 1. Select **Save & Continue**. You will return to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager). You can start adding messages. To return to the map, select **Journey view** or **Exit **, then **Save and exit**. ## Channels > **Note:** If your account includes [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination), skip this step — the section does not appear for you in the dashboard. You will instead configure channels when you [add each message](#messages) to the sequence. Enable the channels you want to send the message to. Available channels are based on your selected trigger. 1. Select the sequence card, then the compose icon ( ). 1. Select **Settings** in the header. 1. Select the **Target** tab. 1. Enable channels. 1. Select **Next**, then **Save & Continue**. You will return to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager). You can start adding messages, or select **Exit **, then **Save and exit** to return to the map. ## Messages Configure the message conditions and content. For details, see [Add messages to a sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/). If you just saved and exited Settings, you will already be on the Manage screen and can skip to step 2. 1. Select the sequence card, then the compose icon ( ). 1. Set the message conditions. 1. Set the delay period. 1. Add the message content and configure its delivery settings. 1. Select **Save & Continue** to complete adding the message to your sequence. You will return to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager) after adding a message. From there, select **Add message** and repeat these steps for each message you want to add to the sequence. Select **Exit **, then **Save and exit** to return to the map. ## Outcomes You can configure outcomes in the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map). If using the [Inactivity trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#inactivity), the outcome is pre-configured and cannot be edited. For details about setting up each option, see [Sequence outcomes](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/). ## Start sequence When all required components are configured, you can: * [Test the sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/) before starting it or publishing changes. * [Create a control group](https://www.airship.com/docs/guides/experimentation/control-groups/) before starting the sequence. * **Start the sequence** to make it available to your audience: * From the map: Select the sequence card and select *Start* from the dropdown menu. * From the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager): Select ** Start**. # Sequence templates > {{< glossary_definition "sequence_template" >}} This document describes each Sequence template, provides steps for accessing them, and lists considerations for editing. See [Create a Sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/) for full documentation about creating a new Sequence and composing its messages. Each message in a Sequence counts toward your *Sequences and Automation* [Message Limit](https://www.airship.com/docs/reference/glossary/#message_limits). ## Types of Sequence templates Default channels, trigger, outcome, message content, and delivery timing are described for each template type. ### Welcome Series Send onboarding messages. Default settings: | Channels | Trigger | Outcome | Message 1 | Message 2 | Delivery timing | | --- | --- | --- | --- | --- | --- | | App | [First Seen](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) | Default Sequence behavior: Users who trigger the Sequence will receive all messages in the Sequence. | **Delay:** 1 day

**Message type and content:** Push notification, with title and body welcoming the user to the app. | **Delay:** 3 days after message 1

**Message type and content:** Push notification, encouraging the user to check out the brand's best features. | All messages are set to *Send immediately*: Airship sends your message after receiving the triggering event and after the delay period elapses. | ### Authentication Sequence Encourage users on anonymous channels to log in to your app, which associates them with a [Named User](https://www.airship.com/docs/reference/glossary/#named_user). This creates a known contact within Airship. Default settings: | Channels | Trigger | Outcome | Message 1 | Message 2 | Delivery timing | | --- | --- | --- | --- | --- | --- | | App | [First Seen](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) | Conversion: Users who trigger the Sequence and then log in to the app will exit the Sequence. | **Delay:** 7 days

**Message type and content:** Push notification, with title and body encouraging user to log in to the app. | | All messages are set to *Send immediately*: Airship sends your message after receiving the triggering event and after the delay period elapses. | > **Note:** Named user association at login must be implemented for your app. See: [Associating Channels with Named Users](https://www.airship.com/docs/guides/audience/named-users/#associate). ### Re-engagement Sequence Win back inactive audience members. Default settings: | Channels | Trigger | Outcome | Message 1 | Message 2 | Delivery timing | | --- | --- | --- | --- | --- | --- | | App, Web | [Inactivity](https://www.airship.com/docs/reference/glossary/#inactivity_event_trigger), set to *15 days* | Conversion: Users who trigger the Sequence and then re-engage with the app or website will exit the Sequence. They are represented in the *Reactivations* count in the [Performance Report](https://www.airship.com/docs/reference/glossary/#sequence_performance) and Sequence tests. | **Delay:** None

**Message type and content:** Push notification or web push notification, with title and body telling the user that they are missed. | **Delay:** 7 days after message 1

**Message type and content:** Push notification or web push notification, with title and body telling the user that they are missing out. | All messages are set to *Send immediately*: Airship sends your message after receiving the triggering event and after the delay period elapses. | ## Using a Sequence template To get started, create a new Sequence: 1. In the sidebar, select the **Create** dropdown menu ( ), then select **Journey**. 1. Select **Sequence**, then select a template. The Sequence will open to the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map). Details to keep in mind as you complete configuration: * **Trigger and Outcomes** — Make sure your Trigger and Outcomes are appropriately configured for the Sequence's goal. * For Sequences using the **Re-engagement Sequence** template, you cannot edit the Conversion selection in the *Outcomes* step. Users will exit the Sequence and be counted as a *Reactivation* in the [Performance Report](https://www.airship.com/docs/reference/glossary/#sequence_performance) and Sequence tests. * For Sequences using the **Authentication Sequence** template, *Contact association* is the preselected conversion event in the *Outcomes* step, but you have the option to edit and select a custom event. * **Messages** — Verify the settings for the default messages and any messages you add to the Sequence. * **Delay and conditions** — Adjust the delay and/or conditions, as necessary. * For Sequences using the **Re-engagement Sequence** template, there is no delay setting for the first message. * For Sequences using the **Authentication Sequence** template, *Anonymous channels* is preselected for the *Channel condition* for the first message, and cannot be edited. * **Content** — Make sure to edit the placeholder text in each message, adding brand-specific content. For a Welcome Series, highlight features that your users can get started with right away. For Re-engagement, highlight the features and/or deals that your users are missing out on. * **Delivery** — All messages are set to *Send immediately* by default. After setting up your new Sequence, you can: * [Test the Sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/) before starting it. * [Start the Sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#start-sequence) to make it available to your audience. # Sequence outcomes > Configure alternatives to a sequence's default ending behavior. By default, all sequence messages are delivered to users who meet the conditions, but you can configure alternative outcomes. ## Possible outcomes You can configure the following outcomes for a sequence:

  • Continue to an in-app experience ([In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa) or [Scene](https://www.airship.com/docs/reference/glossary/#scene)) or another sequence when Airship sends the last message in the current sequence.

  • Exit the sequence when a specific event occurs. When configuring the event, you designate it as a conversion or cancellation for reporting.

  • Exit the sequence when a specific event occurs, then continue to an in-app experience or another sequence.

> **Note:** An active in-app automation or scene that is connected downstream of a sequence might display independently of the upstream sequence until the in-app experience updates on a user's device. > > This is because in-app experiences are cached on users' devices then displayed when certain conditions are met. Edits made to individual messages, including connecting an in-app experience downstream of a sequence, are applied upon the next app open or via [background push](https://www.airship.com/docs/guides/messaging/project/enable-features/#setting-behavioral-defaults), if enabled. ## Exit events You can configure a sequence to exit users based on these events: * **App open** — This event occurs when a user opens your Android or iOS app or starts a web session. It applies only to sequences that include those platforms. It is not supported for sequences using the [Inactivity trigger](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#inactivity). * **Contact association** — This event occurs when an anonymous channel is associated with a [Named User](https://www.airship.com/docs/reference/glossary/#named_user). * **Commercial opt-in** — This event occurs when a user opts in to [commercial email messaging](https://www.airship.com/docs/developer/api-integrations/email/commercial-transactional/) for the first time. * **Tag change** — This event occurs when a tag is added to, or removed from, a device. * **Custom event** — This event occurs when a user performs a custom event you select that represents a key value exchange with your customers. * **Subscription event** — This event occurs when a user opts in to or out of a [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list). This exit event can only be configured in the [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map), not the sequence settings. Exit events are designated as either *Conversion* or *Cancellation*. Both have the same effect on a sequence, but the classifications are used for reporting and mapping. Their occurrence is evaluated during the delay period configured when [adding each message](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/). > **Note:** Sequences triggered by [[Inactivity](https://www.airship.com/docs/reference/glossary/#inactivity_event_trigger)](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/#inactivity) are automatically configured such that: > 1. A user becoming active is a conversion event labeled *Reactivation*. > 1. You cannot configure additional conversion events. ## Continuation Configuring a sequence to continue to an in-app experience or another sequence creates a [Journey](https://www.airship.com/docs/reference/glossary/#journey). You can configure the downstream component in two ways: * **Create new** — After entering a name, it is saved as a draft. * **Insert existing** — Search for and select a sequence or in-app experience in your project. Archived items are excluded from search results. For downstream sequences, [channel selection](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#channels) is eliminated since your audience is predetermined by the upstream sequence. ### Delay period You can set a delay period — the time Airship should wait before evaluating triggers and conditions for the downstream sequence or in-app experience. The delay period starts after the last message in the upstream sequence is sent or when an [exit event](#exit-events) occurs. The maximum delay period is 90 days. ### In-app experience expiration period If the downstream in-app automation or scene does not display on a user's device within the default period of 31 days, they will exit the journey. This period starts after any configured [delay period](#delay-period) elapses. As an alternative to exiting, you can route to a fallback sequence. You can also set a shorter expiration period. ## Configuring continuation Route users to a sequence or in-app experience when Airship sends the last message in the current sequence or an exit event occurs. 1. Go to **Journeys** and select a sequence. 1. Click to the right of the sequence or a [previously configured exit event](#configuring-exit-events-and-optional-continuation). A configuration drawer will open. 1. Select *Continuation*. This step is eliminated if configuration is for an exit event. 1. Select *Create new* or *Insert existing*. 1. Set the delay period — the time Airship should wait before evaluating triggers and conditions for the downstream sequence or in-app experience. Enter a value in minutes, hours, or days. The maximum delay period is 90 days. 1. Select *Sequence*, *Scene*, or *In-App Automation*, then enter a name for the draft or search for an existing message. 1. (For in-app experiences only, optional) Edit the expiration period and/or set a fallback sequence. If the downstream in-app automation or scene does not display on a user's device within the default period of 31 days, they will exit the [Journey](https://www.airship.com/docs/reference/glossary/#journey). This period starts after any configured delay period elapses. As an alternative to exiting, you can route to a fallback sequence. You can also set a shorter expiration period. * **Expiration** — Enter a number of days. * **Fallback sequence** — Search for an existing sequence or enter a name for a draft and click **Create new sequence: [draft name]**. 1. Click **Save**. The map will now show the downstream sequence or in-app experience with a connection to the upstream sequence or exit event. ## Configuring exit events and optional continuation Exit users from the sequence when an event occurs. You can set up multiple events. After configuring an event, you have the option to then route users to a sequence or in-app experience. See also: [Exit events](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/#exit-events). 1. Go to **Journeys** and select a sequence. 1. Click to the right of the sequence. A configuration drawer will open. 1. Select the exit type: *Cancellation Event* or *Conversion Event*. 1. Select the exit event and configure. * **App open:** No configuration needed. * **Contact association:** No configuration needed. * **Commercial opt-in:** No configuration needed. * **Subscription event:** 1. Search for and select a subscription list. 1. Choose whether to exit when the user opts in to or out of the subscription. * **Tag change:** 1. Search for a tag. If the tag you search for does not appear, click **Create [search term]** to create a new tag. You can select a tag group filter before or after searching. 1. (Optional) Click **Add Another** to add more tags. Airship handles multiple tags as a Boolean OR. 1. Choose to perform the event when a tag is *Added*, or *Removed*. * **Custom event:** 1. Search for a custom event, then select an event from the listed results. Results are limited to events that occurred in the last 30 days. If your event name does not appear in the search results, click **Use [search term]** to use the event name as typed. 1. (Optional) Click **Add Another** to add more events. Airship handles multiple events as a Boolean OR. 1. (Optional) Filter custom events by value or key/value properties. Filtering events this way can help you more precisely target your audience.
  1. Select Add event properties for the custom event.
  2. Select Add property, then Search for properties and search for a property, or select Add event value.
  3. If applicable, select the operator you want to use to evaluate the value or property.
  4. Enter or select the event or property value you want to filter for.
  5. (Optional) Select the plus icon ( ) to add an alternative for a filter.
  6. (Optional) Select Add property or Add event value to add more filters.
  7. Select All or ANY to determine how to evaluate multiple filters and alternatives within each filter.
    • ALL = all criteria must be met (boolean AND)
    • ANY = any criteria must be met (boolean OR)
  8. Select Save.
> **Note:** The filter **does not** show events and event properties for custom events associated with [Named Users](https://www.airship.com/docs/reference/glossary/#named_user). You can still use events associated with named users as triggers, but you must enter their information manually. > **Tip:**

You can use file upload to provide multiple values to match against a specified event property’s value. For string properties only.

>

For example, for a point-of-sale system that emits events when a sale occurs, an event might have the following data:

> ```js > name: "sale-completed" > properties: > customer_id: 234234 > store_id: 103843 > region: "northwest-usa" > ``` > >

To trigger only when sales occur in the regions of northwest-usa and southwest-usa but not midwest-usa or any other region, you would do the following to filter your custom events:

>
    >
  1. Search for or enter the property name region.
  2. >
  3. Select operator File upload (is one of).
  4. >
  5. Upload a .txt file containing values northwest-usa and southwest-usa.
  6. >
>
>

Provide your values in a line delimited .txt file. Each value must be on a separate line. 100 KB maximum file size.

1. (Optional) Set the maximum age for the events. If an event is received after it is older than a certain age, the automation or sequence will not start. 1. Enable *Event Expiration*. 1. Enter a value in minutes, hours, days, months, or years. 1. (Optional) Enable *Add continuation* and complete the steps above for [Configuring continuation](#configuring-continuation), starting at step 4. 1. Click **Save**. The map will now show a connection from the sequence to the exit event. # Add messages to a sequence > Follow these steps to add messages to a new or existing sequence. You add messages to a sequence from the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager). You can access this screen from these locations: * [Journey Map](https://www.airship.com/docs/reference/glossary/#journey_map): Select a sequence, click its card in the map, then click . * [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview): Click for a sequence. For sequences that don't yet contain messages, you can start the following steps immediately after opening the Manage screen. For sequences with at least one message, first click **Add message** from the Manage screen, then complete these steps. ## Configure optional settings In addition to configuring the message itself, you can set audience requirements and a delay period. ### Conditions Conditions are requirements your audience must meet in order to receive a message from a sequence. If a member of the audience doesn't meet the conditions, they will not receive this message or any subsequent messages in the sequence; they will exit the sequence. If you add multiple conditions, they are handled as a boolean OR. If any condition is met, the message will be sent. To set conditions: 1. Select **Add conditions **, and then select a condition and configure: | Condition | Description | Steps | | --- | --- | --- | | **Contact** | This condition specifies that [Contacts](https://www.airship.com/docs/reference/glossary/#contact) must be anonymous or associated with a [Named User](https://www.airship.com/docs/reference/glossary/#named_user). It is available for the first message in a Sequence only. | Select **Anonymous contacts** or **Authenticated contacts**. | | **Segmentation** | This condition specifies that Contacts must be a member of a [Segment](https://www.airship.com/docs/reference/glossary/#segment) that you build. | Define your audience using the same segmentation data and process as when building a [Segment](https://www.airship.com/docs/reference/glossary/#segment). | | **Subscription** | This condition specifies that Contacts must be opted in to or out of a [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list). You can select multiple lists.

Airship evaluates subscription status across all channels collectively. A Contact is subscribed to a list when they have at least one opted-in channel and unsubscribed when they have no opted-in channels. | Search for and select a list, then select whether they must be in to or out of the list. | {class="table-col-1-20 table-col-2-40"} 1. Select the arrow icon ( ) to close the configuration panel. ### Delay You can set a delay period for the message. This is the time Airship should wait after receiving the triggering event before sending your message. Set the value to zero (0) minutes to send immediately or adjust the default value (one hour) to the desired delay period. The maximum delay period is 90 days. * **For the first message in your sequence**: * The delay period starts when the triggering event is received by Airship. * For the First Seen trigger, a delay shorter than one hour may result in dropped sends. * For sequences with the goal of *Event*, a delay shorter than one hour may result in sends going to users who converted/cancelled. * For sequences using the Inactivity trigger, there is no delay setting for the first message. * **For subsequent messages**: * The delay period starts when the previous message was sent. * For sequences with the goal of *Event*, a delay shorter than one hour may result in sends going to users who converted/cancelled. To set a delay: 1. Under **Message Delay**, select the currently set time period. 1. Enter a value in minutes, hours, or days. 1. Select **Save**. ## Configure the message Select **Add message content**. You can add message content without setting conditions or a delay. After completing a step, select the next step in the header to move on. ### Setup > **Note:** Projects using the [channel-level segmentation system](https://www.airship.com/docs/guides/audience/segmentation/segmentation/#channel-level-segmentation) do not have a Setup step. However, if they are enabled for Channel Coordination, you must select and configure a strategy and save it before moving to the Content step. > > Also, for the channel-level segmentation system, each strategy targets a [Named User](https://www.airship.com/docs/reference/glossary/#named_user), not a [Contact](https://www.airship.com/docs/reference/glossary/#contact). First, select a [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) strategy: * **Fan Out** targets a Contact on all the channels they are opted in to, maximizing the chances they receive your message. * **Last Active** targets a Contact on the opted-in channel they used most recently. * **Originating Channel** targets a Contact on the channel that triggered the Sequence. * **Priority Channel** targets a Contact on the first channel they are opted in to, in the priority order you set. Then, enable the channel types to include in your audience. For Mobile Apps, also select from the available platforms. For Priority Channel, also drag the channel types into priority order.

Use Channel conditions to filter which channels are included in the audience. A channel must meet the conditions to remain in the audience.

For example, if your audience includes users with app, email, and SMS channels, and you set a channel condition requiring membership in an email Subscription List:

  • Only email channels that meet that condition would remain in the audience.
  • All app and SMS channels would be excluded.

To set channel conditions, use the same process as when building a [Segment](https://www.airship.com/docs/reference/glossary/#segment). You can use the following data in your conditions:

  • [Autogroup](https://www.airship.com/docs/reference/glossary/#autogroup)
  • [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id)
  • [Device Properties](https://www.airship.com/docs/reference/glossary/#device_properties)
  • [Events](https://www.airship.com/docs/reference/glossary/#events)
  • [Lifecycle List](https://www.airship.com/docs/reference/glossary/#lifecycle_list)
  • [Predicted to Churn status](https://www.airship.com/docs/reference/glossary/#predicted_to_churn)
  • [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list)
  • [Tag](https://www.airship.com/docs/reference/glossary/#tag) in the device [Tag Group](https://www.airship.com/docs/reference/glossary/#tag_group) — See Primary device tags.
  • [Uploaded (Static) List](https://www.airship.com/docs/reference/glossary/#uploaded_list)

Selected Lifecycle, Subscription, and Uploaded Lists must contain Channel IDs or Named Users as the identifier, not a mix of the two.

### Content Configure the message content per enabled channel. See [Content by channel](https://www.airship.com/docs/guides/messaging/messages/content/). ![Add messages to a sequence](https://www.airship.com/docs/images/composer-content-app_hu_28a88387be2dfd33.webp) ### Delivery Configure [delivery](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery/). Timing settings do not appear if you chose the Inactivity trigger. ### Review Review the device preview and message summary. Click the arrows to page through the various previews. The channel and display type dynamically update in the dropdown menu above. You can also select a preview directly from the dropdown menu. If you want to make changes, click the associated step in the header, make your changes, then return to *Review*. Send a test message to verify its appearance and behavior on each configured channel. The message is sent to your selected recipients immediately, and it appears as a test in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview). 1. Select **Send Test**.
  1. Under Test audience, enter at least one [Named User](https://www.airship.com/docs/reference/glossary/#named_user) or [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups) and select from the results. If your message includes email, you can also search for email addresses. If no matches appear for an address, you can select Create channel for <address>, and the channel will be registered for your project and opted in to transactional messaging.

    Users in an active [Holdout Experiment](https://www.airship.com/docs/reference/glossary/#holdout_experiment) will not receive a test message. You can view a user’s current holdout group status and history when viewing their channel details in Contact Management.

  2. (If your message contains [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars)) Under Personalization, select and configure a personalization data source:

    Data source Description Steps
    Test message recipient The message will be personalized using information associated with each test audience member. n/a
    Preview Data tool The message will be personalized using the data currently entered in the Preview Data tool. The same values will apply to all test message recipients. You can also manually edit the JSON. (Optional) Edit the JSON data.
  3. Select Send.

Select **Save & Continue** to complete adding the message to your sequence. --- From the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager), now you can: * Add another message to extend the sequence. * [Test the sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/) before starting it or publishing changes. * [Create a control group](https://www.airship.com/docs/guides/experimentation/control-groups/) before starting the sequence. * Click ** Start** to make the sequence available to your audience. * Click **Publish changes** to apply your changes to a sequence that is already in progress. Audience members who have already triggered the sequence will only see the added or edited message content if they have not yet passed this point in the sequence. ## Personalizing messages For Sequences using the *Custom Event* trigger, you can personalize messages using [Attributes](https://www.airship.com/docs/reference/glossary/#attributes) or [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event) properties. In both cases, you reference variables using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars) to personalize the message for each member of your audience. If you set up templates, you can reference your templates when setting up messages in the Sequence. For example, if your events have a property called `name`, you would add it to your message or template using `{{name}}`. > **Note:** Custom event properties used to be referenced in the `$data.events.[0].properties` namespace. If you have templates referencing properties in this namespace, they'll still work, but you'll have to continue using this namespace until you [contact Airship Support](https://support.airship.com/) and move over to the simplified namespace for custom event properties. You can personalize a message using both attributes and custom event properties. If both an attribute and a custom event property have the same name, Airship will attempt to use the custom event property — the most recent property — to personalize the message.

For example, if you have a custom event representing a purchase, you can send an automated message confirming the purchase and providing information about what the user bought.

Custom Event ```json { "occurred": "{{event_time}}", "user": { "named_user_id": "user" }, "body": { "name": "purchase", "subscribe": true, "properties": { "customer_name": "user", "total": 48, "cost_units": "USD", "purchase": [ { "qty": 4, "item": "MLB regulation baseball", "per": "$12", "total": "$48" } ] } } } ```

Message Content ```handlebars Hi {{$def customer_name "valued customer"}}! Thanks for your purchase of: {{#each purchase}} {{qty}}x {{per}} {{item}} = {{this.total}} {{/each}} total: ${{total}} Is being processed. We'll message you again when it ships! ```

## Localize your sequence messages Learn how to localize your messages in your sequence using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars) with conditions targeting `ua_language` and/or `ua_country` tags. Localizing messages in this way ensures that your audience only sees the message intended for their language settings. > **Note:** The `else` statement acts as the default message for members of your audience who do not have a `ua_language` # Test a Sequence > Use sequence testing to verify the appearance and behavior of your messages, as well as channel configuration, tag conditions, and conversion or cancellation events. You can send a sequence to a test audience according to your specified timing, then view versions of the [Performance Report](https://www.airship.com/docs/reference/glossary/#sequence_performance) and message reports based on the test audience. You can also test individual messages in the sequence. ## Your test audience You can send a test to either a single [Named User](https://www.airship.com/docs/reference/glossary/#named_user) or to a [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups). * If you used tag conditions in your sequence, make sure you know which users in your test audience have which tags. * If you personalized messages using attributes, assign the relevant attributes to your test audience. * There may be a discrepancy between the number of intended recipients and the number of actual devices if members of the test audience have uninstalled. * Users in an active [Holdout Experiment](https://www.airship.com/docs/reference/glossary/#holdout_experiment) will not receive a test message. You can view a user's current holdout group status and history when [viewing their channel details in Contact Management](https://www.airship.com/docs/guides/audience/contact-management/#viewing-channel-details). ## Test a sequence Follow these steps to test a sequence that has never been started, or started but never edited. > **Note:** The option to test a sequence is not available until the sequence is configured with the minimum requirements to start it. If you just created the sequence, you will already be on the *Manage* screen. Otherwise, first go to **Messages**, then **Messages Overview**, and then select the pencil icon ( ) for a sequence. Then: 1. Click **Test Run** in the leftside drawer. 1. Click **Set up a test run**. 1. Enter at least one named user or test group and select from the results. 1. Specify the amount of time you want between delivery of each message in your test sequence. 1. Click **Create test**. 1. Click **Start test** on the *Test* screen. You can repeat this step to restart the test. Now you can [evaluate the test](#evaluate). ### Test your changes after editing a sequence Follow these steps to test your changes after editing a started or paused sequence. If you just edited the sequence, you will already be on the *Manage* screen. Otherwise, first go to **Messages**, then **Messages Overview**, and then select the pencil icon ( ) for a sequence. Then: 1. Click **Test changes** next to the notice *You have unpublished changes.* 1. If you have created a test for this sequence before, click **Yes, create new test** to confirm deleting previous test data. 1. Enter at least one named user or test group and select from the results. 1. Specify the amount of time you want between delivery of each message in your test sequence. 1. Click **Create test**. 1. Click **Start test run**. You can repeat this step to restart the test. Now you can [evaluate the test](#evaluate). ## Test a message in a sequence Send a test message, then verify its appearance and behavior on each channel the message is configured for. The message is sent to your selected recipients immediately, and it appears as a test in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview). Send a test from the *Review* step when composing a message: 1. Select **Send Test**.
  1. Under Test audience, enter at least one [Named User](https://www.airship.com/docs/reference/glossary/#named_user) or [Test Group](https://www.airship.com/docs/reference/glossary/#preview_test_groups) and select from the results. If your message includes email, you can also search for email addresses. If no matches appear for an address, you can select Create channel for <address>, and the channel will be registered for your project and opted in to transactional messaging.

    Users in an active [Holdout Experiment](https://www.airship.com/docs/reference/glossary/#holdout_experiment) will not receive a test message. You can view a user’s current holdout group status and history when viewing their channel details in Contact Management.

  2. (If your message contains [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars)) Under Personalization, select and configure a personalization data source:

    Data source Description Steps
    Test message recipient The message will be personalized using information associated with each test audience member. n/a
    Preview Data tool The message will be personalized using the data currently entered in the Preview Data tool. The same values will apply to all test message recipients. You can also manually edit the JSON. (Optional) Edit the JSON data.
  3. Select Send.

Send a test from the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager): 1. Go to **Messages**, then **Messages Overview**. 1. Select the pencil icon ( ) for a sequence. 1. Click for the message you want to test, and select *Send Test Message*. 1. Enter at least one named user or test group and select from the results. 1. Click **Send**. ## Evaluate a sequence test {#evaluate} Sequence tests are manually triggered, so the first message in the sequence is sent to every member of the test audience, then the audience is filtered by channel availability and tag conditions. After you start a sequence test, verify: * **Channels and tag conditions:** Were your messages received on intended channels and according to tag conditions you set? * **Conversion or cancellation events:** Were users funneled out of the sequence as expected? * **Message content:** Do your messages appear and behave as intended on each channel the message was configured for? * **Personalization:** Do messages personalized using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars) make sense? * You cannot simulate a custom event in your test. Messages personalized using custom event properties will display their default values in your test messages. Any variable without a default value will instead appear empty. * **Performance:** Do the [Test report](#test-report) metrics represent your expected test results? ### View a sequence Test report {#test-report} A sequence's Test report is available after you [create and start a test](#test-a-sequence). It is identical to the [Performance Report](https://www.airship.com/docs/reference/glossary/#sequence_performance), but the data is based on your test audience. 1. Go to **Messages**, then **Messages Overview**. 1. Select the pencil icon ( ) for a sequence. 1. Click **Test Run**, then **View test report**. 1. Click ** Report** to open an individual [message report](https://www.airship.com/docs/guides/reports/message/). Previous Test report data is cleared when you create a new test. # Edit or duplicate a Sequence > Follow these steps to duplicate or edit a sequence. > **Tip:** * **Do not pause** a sequence before you edit it. Edit the sequence, then click **Publish changes**. You can also [test the sequence](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/#test-a-sequence) before publishing changes. For active sequences, changes to [outcomes](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/) are published automatically after saving. > * You should only pause a sequence when you want to stop it and use it at a later date. Paused sequences remain in your project and can be edited and started again at any time. ## Edit sequence settings {#settings} Sequence settings include the sequence name, trigger options, and target (channels). For active sequences, editing the [audience channel selection](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#channels) may impact delivery, depending on whether a user is opted into newly selected channels and which [Channel Coordination](https://www.airship.com/docs/reference/glossary/#channel_coordination) strategy is chosen. > **Important:** Do not edit a Sequence that has a control group. See [Sequence Control Groups](https://www.airship.com/docs/guides/experimentation/control-groups/). 1. Go to **Messages**, then **Messages Overview**. 1. Select the pencil icon ( ) for a sequence. 1. Click *Settings* in the header, and make your changes. * For the sequence name, click the name in the header, enter a new sequence name, then click **Continue** or **Next**. * Edit the [Trigger and options](https://www.airship.com/docs/guides/messaging/messages/sequences/triggers/) or [Target](https://www.airship.com/docs/guides/messaging/messages/sequences/create/create/#channels) as you would for a new sequence. > **Note:** When configuring a continuation (downstream) sequence, the *Trigger* step lists the upstream sequence that will initiate the downstream sequence, and the *Target* step is eliminated since your audience is predetermined by the upstream sequence. 1. Click **Save and continue**. 1. Click **Publish changes** to apply the changes to a sequence that is already in progress. ## Edit or remove sequence outcomes in the journey map For active sequences, changes to [outcomes](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/) are published automatically after saving. Editing [[Cancellation Events](https://www.airship.com/docs/reference/glossary/#cancellation_events_event_option)](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/#exit-events) will cause users to exit the sequence if they then perform a newly added event. **Edit an exit event:** 1. Go to *Journeys* and select a sequence. 1. Click an exit event card, then click the pencil icon ( ). 1. Make changes to the currently selected exit event, or click **Cancel** and [select a different exit event and complete its configuration](https://www.airship.com/docs/guides/messaging/messages/sequences/create/outcomes/#configuring-exit-events-and-optional-continuation). 1. Click **Save**. **Remove an exit event:** 1. Go to *Journeys* and select a sequence. 1. Click an exit event card, then click . **Remove a component from a journey:** 1. Go to *Journeys* and select a component. 1. Click then **Unlink**. The map will refresh to focus on the component you unlinked. ## Edit message content in a sequence Editing the content of messages in a started sequence has no impact on message delivery. For example, if you edit the content of message 3 and a user has not yet received message 3, the user will receive the updated version of message 3. > **Important:** Do not edit a Sequence that has a control group. See [Sequence Control Groups](https://www.airship.com/docs/guides/experimentation/control-groups/). 1. Go to **Messages**, then **Messages Overview**. 1. Select the pencil icon ( ) for a sequence. 1. Click for the message you want to edit, and select *Edit Message*. 1. Go to the *Content* step and make your changes. 1. Go to the *Review* step select **Save & Continue**. You will return to the Manage screen. 1. Click **Publish changes** to apply the changes to a sequence that is already in progress. ## Edit the name of a message in a sequence Each message in a sequence is automatically named for the sequence name and its position in the sequence, e.g., *Welcome Sequence 4*. You can edit the name of any message in a sequence. 1. Go to **Messages**, then **Messages Overview**. 1. Select the pencil icon ( ) for a sequence. 1. Click for the message you want to edit, and select *Edit Message*. 1. Click in the header. 1. Enter a new message name. 1. Click **Save & Continue**. 1. Go to the *Review* step and click **Save & Continue**. You will return to the Manage screen. 1. Click **Publish changes** to apply the changes to a sequence that is already in progress. ## Edit delay and conditions for a message in a sequence {#delay-conditions} > **Important:** Do not edit a Sequence that has a control group. See [Sequence Control Groups](https://www.airship.com/docs/guides/experimentation/control-groups/). You can edit the *delay* period that must elapse before the message is sent and the *conditions* that your audience must meet to receive the message. * For sequences using the Inactivity trigger, there is no delay setting for the first message. * For active sequences: * Editing the timing delay between messages in a started sequence may cause users to exit the sequence. For example, if you edit the delay between message 2 and message 3, users who have already received message 2 will not receive message 3. * Editing the conditions for a message will cause users to exit the sequence if they don't match the new conditions. 1. Go to **Messages**, then **Messages Overview**. 1. Select the pencil icon ( ) for a sequence. 1. Click for Conditions or Message Delay, and configure as you would for composing a new message: * [Conditions](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/#conditions) * [Message delay](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/#delay) 1. Click **Publish changes** to apply the changes to a sequence that is already in progress. ## Duplicate a sequence {#duplicate} * The new sequence name is the original sequence name, with " - Copy" appended. * If the original sequence was *Started* at the time of duplication, the new sequence status is *Paused* until you start it. 1. Go to **Messages**, then **Messages Overview**. 1. Click for a sequence. The next screen will be the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager) for the new sequence. ## Content by channel Learn about messages for each channel and how to configure their content. # Web content > Reach your web channel on desktop and mobile browsers. See also the [Push notifications](https://www.airship.com/docs/guides/features/messaging/push-notifications/) feature guide. ## Creating content

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

In the *Content* step, click **Web Notification**: ![Web content](https://www.airship.com/docs/images/content-web_hu_607f8f9f3a9dfec9.webp) Now you can configure the body of the message: ![Web content](https://www.airship.com/docs/images/composer-content-web_hu_6727bcaa97e417fb.webp) 1.

Enter the message text. If you are using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can test how the content will appear. See Previewing personalized content.

1. Select an [Action](https://www.airship.com/docs/reference/glossary/#action): * Home * Web Page * Adaptive Link 1. (Optional) Set and/or remove tags when the user interacts with your message.
  1. Click Configure options.
  2. Select Add tag or Remove tag, then search for tags that exist in the system, or create a new tag.
  3. (Optional) Click Configure another option and repeat the previous step.
> **Tip:** Setting one or more tags when a user interacts with a message can help you track user interactions for follow-on retargeting campaigns. For example, if you set a tag `responded-campaign1`, you can target users bearing the `responded-campaign1` tag with another message at a later date, knowing that they are active users. Alternatively, you can re-engage users with this tag using an automated message if they are inactive for a period of time. 1. Configure optional features: * [Buttons](https://www.airship.com/docs/guides/messaging/messages/buttons/#add-buttons-to-message-content) * [Icon](#icon) * [Media](#media) * [Title](#title) Now you are ready to complete the remaining steps in the composer. ### Icon Enter a URL to add an icon to your web push notification, overriding the default icon specified in your Web Notifications configuration. **Safari is not supported.** See also [Media guidelines](https://www.airship.com/docs/reference/messages/media-guidelines/).

If your Airship plan includes CDN support, you can also upload media or select from previously uploaded media. See Insert media in message content in Media library.

### Media

Enter a URL to add media to your notifications. See also Media guidelines.

If using a personalized media URL for an App push notification, you must specify the media type after entering the URL:

![Specifying the media type for a personalized media URL](https://www.airship.com/docs/images/app-media_hu_13eb6dceaa95791a.webp) *Specifying the media type for a personalized media URL*

If your Airship plan includes CDN support, you can also upload media or select from previously uploaded media. See Insert media in message content in Media library.

### Title Enter a title to create a heading that appears above the notification text. The title set here will override the [default title](https://www.airship.com/docs/developer/sdk-integration/web/getting-started/#airship-setup) configured for your web notifications. # SMS/MMS/RCS content > Send messages to your SMS channel. See also the [SMS/MMS/RCS](https://www.airship.com/docs/guides/features/messaging/sms/) in the feature guide. ## Create SMS content In the *Content* step, select **Text Message (SMS)**: ![SMS/MMS/RCS content](https://www.airship.com/docs/images/content-sms_hu_d5ec464d14e0adc6.webp) Now you can configure the body of the message: ![SMS/MMS/RCS content](https://www.airship.com/docs/images/content-body-sms_hu_1a7e8cfb787dba87.webp) 1.

Enter the message text. If you are using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can test how the content will appear. See Previewing personalized content.

* The character count and the total number of SMS messages update as you type. * Include [Merge Fields](https://www.airship.com/docs/reference/glossary/#merge_field) or [Dynamic Content](https://www.airship.com/docs/reference/glossary/#dynamic_content) if you selected *Upload Users* in the *Audience* step. The character and notification counts do not account for the varying lengths of merge values, so they should only be used as an estimate when using merge fields. 1. (Optional) If your message includes links, you can enable/disable *Shorten Links*. When enabled, the message and character counts reflect your message with shortened link URLs. 1. (Optional) If your message includes links and *Shorten Links* is enabled, you can add or remove tags for members of your audience who engage with your link. 1. Select **Set tags**. 1. Select *Add* or *Remove*, then search for tags that exist in the system, or create a new tag. 1. (Optional) Select **Set another tag** and repeat the previous step. > **Note:** If you create a new tag when adding tag actions, it will belong to the `device` tag group for associated SMS channels. Now you are ready to complete the remaining steps in the composer. ## Create MMS content In the Content step, select **Multimedia Message (MMS)**: ![SMS/MMS/RCS content](https://www.airship.com/docs/images/content-mms_hu_a42237bac81c7e46.webp) Now you can configure the body of the message: ![SMS/MMS/RCS content](https://www.airship.com/docs/images/content-body-mms_hu_cc4639bf5cf21376.webp) 1. Provide the media for your message. See [Media guidelines](https://www.airship.com/docs/reference/messages/media-guidelines/). * **URL** — Enter the address of your image or vCard, beginning with HTTP or HTTPS and ending with the image or vCard extension. * **Upload** — Select **Choose file** and select your image or vCard. 1. (Optional) Enter text for **Subject**, **Text Message**, and/or **SMS Fallback Text**. If you are using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can preview how your content will appear. See [Previewing personalized content](https://www.airship.com/docs/guides/personalization/previewing/). Include [Merge Fields](https://www.airship.com/docs/reference/glossary/#merge_field) or [Dynamic Content](https://www.airship.com/docs/reference/glossary/#dynamic_content) if you selected *Upload Users* in the *Audience* step. The fallback text character count does not account for the varying lengths of merge values, so it should only be used as an estimate when using merge fields. 1. (Optional) If *Text Message* or *SMS Fallback Text* includes links, you can enable/disable *Shorten Links*. When enabled, the fallback text character count reflects your message with shortened link URLs. 1. (Optional) If *Text Message* or *SMS Fallback Text* includes links and *Shorten Links* is enabled, you can add or remove tags for members of your audience who engage with your link. 1. Select **Set tags**. 1. Select *Add* or *Remove*, then search for tags that exist in the system, or create a new tag. 1. (Optional) Select **Set another tag** and repeat the previous step. > **Note:** If you create a new tag when adding tag actions, it will belong to the `device` tag group for associated SMS channels. Now you are ready to complete the remaining steps in the composer. ## Link Shortening When you enable link shortening, Airship replaces your URL with unique, shortened URLs for each member of your audience. Shortened URLs: * Reduce the total number of characters in your messages to exactly 25 characters. * Track engagement with SMS messages. * Support [tag actions](#tag-actions) — adding or removing tags from your audience when they tap a link. * Expire 60 days after they are sent. For Airship to recognize and shorten your links, your URLs must: * Begin with `http://` or `https://`. * Begin and end with a space. Your URL cannot contain beginning or trailing punctuation or space characters; spaces determine the beginning and end of the URL. For more information, see [Link Shortening](https://www.airship.com/docs/developer/api-integrations/sms/link-shortening/) in our SMS platform guide. In the dashboard, you enable link shortening in the *Content* step in a composer. You can also set your project to automatically shorten links in all messages created using the dashboard: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **Project settings**, select **Dashboard Settings**. 1. Enable **SMS Link Shortening**. > **Note:** Your project's link shortening setting does not affect operations in the API. ## Tag Actions {#tag-actions} You can add or remove tags from users who engage with Airship-shortened links in your SMS messages. Shortened links with tag actions are the same length as URLs without. You can also use tag change events to kick off automation rules or sequences, making it easier to integrate SMS messaging campaigns into your larger messaging strategy. Tag actions add query parameters to your URL, but users will still see the shortened URL in your SMS messages. You can perform up to 100 total tag actions (add and remove) per SMS message. In the dashboard, a **Set tags** button appears when you add a URL in your SMS text (or SMS fallback text) and enable link shortening. # Open channel content > Send notifications to your open channel. See also the [Open channels](https://www.airship.com/docs/guides/features/messaging/open-channels/) feature guide. ## Creating content

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

In the *Content* step, click **Custom Message**: ![Open channel content](https://www.airship.com/docs/images/content-open_hu_ff454e0795aa9816.webp) Now you can configure the body of the message: ![Open channel content](https://www.airship.com/docs/images/composer-content-open_hu_d7e540bb74030620.webp) 1.

Enter the message text. If you are using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can test how the content will appear. See Previewing personalized content.

1. Configure optional features: * [Media](#media) * [Summary](#summary) * [Title](#title) Now you are ready to complete the remaining steps in the composer. ### Media

Enter a URL to add media to your notifications. See also Media guidelines.

If using a personalized media URL for an App push notification, you must specify the media type after entering the URL:

![Specifying the media type for a personalized media URL](https://www.airship.com/docs/images/app-media_hu_13eb6dceaa95791a.webp) *Specifying the media type for a personalized media URL*

If your Airship plan includes CDN support, you can also upload media or select from previously uploaded media. See Insert media in message content in Media library.

### Summary Add a summary line as supplemental text displayed with the notification. ### Title Enter a title to create a heading that appears above the notification text. ### App channel content Learn about App channel message types and how to configure their content. # Push notification content > Send push notifications to your App channel. See also the [Push notifications](https://www.airship.com/docs/guides/features/messaging/push-notifications/) feature guide. ## Creating content

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

**Silent push notifications** do not have visual content. In the *Content* step, click **Silent Push Notification**, then click *Delivery* in the header and complete the remaining steps in the composer. The remainder of this section applies to regular push notifications. --- In the *Content* step, click **Push Notification** then **Add content**: ![Push notification content](https://www.airship.com/docs/images/content-push_hu_8ed94982804cda87.webp) Now you can configure the body of the message: ![Push notification content](https://www.airship.com/docs/images/composer-content-app_hu_28a88387be2dfd33.webp) 1.

Enter the message text. If you are using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can test how the content will appear. See Previewing personalized content.

1. Select an [Action](https://www.airship.com/docs/reference/glossary/#action): * Home * Message Center * Landing Page * Deep Link * Adaptive Link * Web Page * Share 1. (Optional) Set and/or remove tags when the user interacts with your message.
  1. Click Configure options.
  2. Select Add tag or Remove tag, then search for tags that exist in the system, or create a new tag.
  3. (Optional) Click Configure another option and repeat the previous step.
> **Tip:** Setting one or more tags when a user interacts with a message can help you track user interactions for follow-on retargeting campaigns. For example, if you set a tag `responded-campaign1`, you can target users bearing the `responded-campaign1` tag with another message at a later date, knowing that they are active users. Alternatively, you can re-engage users with this tag using an automated message if they are inactive for a period of time. 1. (Optional)(iOS SDK 20+) (Android SDK 20+) Emit a custom event when the user interacts with your message. You can select an existing event or name a new one.

You can also assign an event value and specify string, number, or boolean property values that you can use later when filtering Custom Events. If you want to use properties, you must define the event and its properties in your project in advance. See Manage Events.

  1. Select Configure options.
  2. Under Options, select Emit custom event and search for an event. If no result is found, select Use <event name> to add the event to your project.
  3. (Optional) Set an event value and/or specify property values to filter by in segments and triggers:
    1. Select Add event properties, then:
      • For a value, select Add event value and enter a numeric value for the event.
      • For properties, select Add property, then Search for properties, and then search for a string, number, or boolean event property and enter or select a value.
    2. Select Save.
1. Configure optional features: * [Buttons](https://www.airship.com/docs/guides/messaging/messages/buttons/#add-buttons-to-message-content) * [Media](#media) * [Summary](#summary) * [Title](#title) Now you are ready to complete the remaining steps in the composer. ### Media

Enter a URL to add media to your notifications. See also Media guidelines.

If using a personalized media URL for an App push notification, you must specify the media type after entering the URL:

![Specifying the media type for a personalized media URL](https://www.airship.com/docs/images/app-media_hu_13eb6dceaa95791a.webp) *Specifying the media type for a personalized media URL* > **Note:** When you enable both the iOS platform and one or more of Android and Fire OS, and you do not enter a static image in the initial URL field, a Static Image field is added to the media settings. Enter a URL, or use the Upload option.

If your Airship plan includes CDN support, you can also upload media or select from previously uploaded media. See Insert media in message content in Media library.

### Summary Add a summary line as supplemental text displayed with the notification. * **iOS:** The summary appears below the push notification title. * **Android and Fire OS:** The summary appears below the main notification text in most cases. This is the only visible text other than the title when Android Picture is visible in expanded mode, as the main notification text is suppressed. ### Title Enter a title to create a heading that appears above the notification text in: * iOS Notification Center * Apple Watch Looks * Android and Fire OS Notification Area/Drawer ## Default notification character limits The following tables outline the maximum character counts for default notification display. ### iOS | Device | Display | Lock screen Portrait | Lock screen Landscape | Notification Center | Banner style | Alert view | | --- | --- | --- | --- | --- | --- | --- | | **iPhone 14 Pro Max** | 6.7 in (170 mm)
2796 x 1290 px at 460 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 14 Pro** | 6.1 in (154 mm)
2556 x 1179 px at 460 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 14** | 6.1 in (154 mm)
2532 x 1170 px at 460 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 14 Plus** | 6.7 in (170 mm)
2778 x 1284 px at 458 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 13 Pro Max** | 6.7 in (170 mm)
2778 x 1284 px at 458 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 13 Pro** | 6 in (152 mm)
2532 x 1170 px at 460 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 13** | 6.1 in (152 mm)
2340 x 1080 px at 460 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 13 mini** | 5.4 in (127 mm)
2340 x 1080 px at 476 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 12 Pro Max** | 6.6 in (169 mm)
2532 × 1170 px at 470 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 12 Pro** | 6.6 in (169 mm)
2532 × 1170 px at 470 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 12** | 6 in (154 mm)
2532 x 1170 px at 460 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 12 mini** | 5.4 in (137 mm)
2340 x 1080 px at 476 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone SE (2nd generation)** | 4.7 in (119 mm)
1334 × 750 px at 326 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 11 Pro Max** | 6.4 in (164 mm)
2688 x 1242 px at 458 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 11 Pro** | 5.8 in (148 mm)
2436 x 1125 px at 458 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 11** | 6 in (154 mm)
1792 x 828 px at 326 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone XS Max** | 6.5 in (165 mm)
2688 x 1242 px at 458 ppi | 150 chars | n/a | 150 chars | n/a | n/a | | **iPhone 6/6S/7 Plus** | 5.5 in (140 mm)
1920 x 1080 px at 401 ppi | 156 chars | n/a | 156 chars | 98 chars | 1,283 chars,
scroll for more | | **iPhone 6/6S/7** | 4.7 in (120 mm)
1334 x 750 px at 326 ppi | 148 chars | n/a | 148 chars | 89 chars | 1,217 chars,
scroll for more | | **iPhone 5/5C/5S**
**iPod touch (5th/6th generation)** | 4 in (100 mm)
1136 x 640 px at 326 ppi | 119 chars | n/a | 119 chars | 74 chars | 1,013 chars, no scroll | | **iPhone 4/4S**
**iPod touch (4th generation, A1367)** | 3.5 in (89 mm)
960 x 640 px at 326 ppi | 114 chars | n/a | 166 chars | 43 chars | 153 chars, no scroll | | **iPad Air (3rd generation)** | 10.5 in (267 mm)
2224 x 1668 px at 264 ppi | 220 chars | n/a | 220 chars | n/a | n/a | | **iPad mini (1st generation, A1432)** | 7.9 in (200 mm)
1024 x 768 px at 163 ppi | 211 chars | 220 chars | 229 chars | 124 chars | Portrait: 1,957 chars, Landscape: 1,417 chars | ### Android | Device | Display | Lock screen Portrait | Lock screen Landscape | Notification drawer
Default notification
Big text style | Notification drawer
System notification | | --- | --- | --- | --- | --- | --- | | **Nexus 9 tablet** | 8.9 in (230 mm)
2048 x 1536 px at 287 ppi | 44 chars | 44 chars | 536 chars | 44 chars | | **Nexus 7 tablet 2013 version** | 7.02 (178 mm)
1920 x 1200 px at 323 ppi | 42 chars | n/a | 509 chars | 42 chars | | **Nexus 6P phone** | 5.7 in (140 mm)
1440 x 2560 px at 518 ppi | 37 chars | n/a | 444 chars | 37 chars | | **Nexus 5X phone** | 5.2 in (130 mm)
1080 x 1920 px at 423 ppi | 46 chars | n/a | 562 chars | 46 chars | | **Nexus 6 phone** | 5.96 in (151 mm)
1440 x 2560 px at 493 ppi | 37 chars | n/a | 444 chars | 37 chars | | **Nexus 5 phone** | 4.95 in (126 mm)
1080 x 1920 px at 445 ppi | 37 chars | n/a | 444 chars | 37 chars | | **Nexus 4 phone** | 4.7 in (120 mm)
768 x 1280 px at 320 ppi | 40 chars | n/a | 482 chars | 40 chars | # In-app message content > Send in-app messages to your App channel. See also the [In-app messages](https://www.airship.com/docs/guides/features/messaging/in-app-messages/) feature guide. ## Setting design defaults You can set the default colors, message position, and duration of your in-app messages: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **App settings**, select **In-App Message Design**. 1. Configure the message design. Colors are hexadecimal color values. * **Primary Color** is the color of the button text and message background. * **Secondary Color** is the color of the message text, button background, and certain UI elements, e.g., the drawer pull on iOS. * **In-App Message Position** controls whether the in-app message displays at the top or bottom of the screen. * **In-App Message Duration** is the amount of time that the in-app message displays on the screen. The default is 15 seconds. Otherwise, select *Specify*, enter a numerical value, and select *Seconds* or *Minutes*. 1. Select **Save**. Additional customization may be made via the SDK. See the [SDK integrations documentation](https://www.airship.com/docs/developer/sdk-integration/). ## Creating content

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

In the *Content* step, click **In-App Message** then **Add content**: ![In-app message content](https://www.airship.com/docs/images/content-push_hu_8ed94982804cda87.webp) Now you can configure the body of the message: ![In-app message content](https://www.airship.com/docs/images/composer-content-in-app-message_hu_6792f5ba38d59067.webp) 1.

Enter the message text. If you are using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can test how the content will appear. See Previewing personalized content.

1. Select an [Action](https://www.airship.com/docs/reference/glossary/#action): * Home * Message Center * Landing Page * Deep Link * Adaptive Link * Web Page * Share 1. (Optional) Set and/or remove tags when the user interacts with your message.
  1. Click Configure options.
  2. Select Add tag or Remove tag, then search for tags that exist in the system, or create a new tag.
  3. (Optional) Click Configure another option and repeat the previous step.
> **Tip:** Setting one or more tags when a user interacts with a message can help you track user interactions for follow-on retargeting campaigns. For example, if you set a tag `responded-campaign1`, you can target users bearing the `responded-campaign1` tag with another message at a later date, knowing that they are active users. Alternatively, you can re-engage users with this tag using an automated message if they are inactive for a period of time. 1. (Optional)(iOS SDK 20+) (Android SDK 20+) Emit a custom event when the user interacts with your message. You can select an existing event or name a new one.

You can also assign an event value and specify string, number, or boolean property values that you can use later when filtering Custom Events. If you want to use properties, you must define the event and its properties in your project in advance. See Manage Events.

  1. Select Configure options.
  2. Under Options, select Emit custom event and search for an event. If no result is found, select Use <event name> to add the event to your project.
  3. (Optional) Set an event value and/or specify property values to filter by in segments and triggers:
    1. Select Add event properties, then:
      • For a value, select Add event value and enter a numeric value for the event.
      • For properties, select Add property, then Search for properties, and then search for a string, number, or boolean event property and enter or select a value.
    2. Select Save.
1. (Optional) [Add buttons](https://www.airship.com/docs/guides/messaging/messages/buttons/#add-buttons-to-message-content). Now you are ready to complete the remaining steps in the composer. ### Combining message types When you combine a push notification and in-app message, the in-app message's alert text is the same as the push notification text by default. To use different messages, select *Write Alternative* for *In-App Message Text* and enter your text. ![In-app message content](https://www.airship.com/docs/images/write-alternative_hu_3ba270cfce9c93b2.webp) When you combine an in-app message with Message Center, the Message Center [Action](https://www.airship.com/docs/reference/glossary/#action) is preselected. # Message Center content > Create messages for your Message Center inbox. See also the [Message Center](https://www.airship.com/docs/guides/features/messaging/message-center/) feature guide. ## Choosing an editor The first step in adding content to a Message Center message is choosing an editor: Interactive or Visual. For information about each, see [Content editors](https://www.airship.com/docs/guides/messaging/editors/about/). See the sections below for access steps and links to configuration details: [Creating content: Interactive editor](#interactive-editor) or [Creating content: Visual editor](#visual-editor). ## Creating content: Interactive editor {#interactive-editor}

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

In the *Content* step, click **Message Center** then **Add content**: ![Message Center content](https://www.airship.com/docs/images/content-push_hu_8ed94982804cda87.webp) Then click **Interactive editor » Add content » Edit**. Now you can configure the message content: ![Message Center content](https://www.airship.com/docs/images/content-mc_hu_2e6ddad08129dd58.webp) If your message includes [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can preview how the content will appear. See [Previewing personalized content](https://www.airship.com/docs/guides/personalization/previewing/). 1. Add a *Title*. 1. Click **Add **. 1. Enter a title. 1. Click **Done**. 1. Add the *Message body*. 1. Click **Add **. 1. Click **Done**. 1. Click **Done** to exit the editor. Now you are ready to complete the remaining steps in the composer. ### Add thumbnail image Message Center supports a message *preview*, which is how the message appears as listed in the inbox. In the *Visual editor* you enter a thumbnail image for the preview on the Message Center tab. See: [Creating content: Visual editor](https://www.airship.com/docs/guides/messaging/messages/content/app/message-center/#visual-editor). For Message Center messages created with the *Interactive editor*, add the image while editing a layout:
  1. Select Settings in the left sidebar.

  2. Enter the HTTPS URL of an image. See Media guidelines.

    If your Airship plan includes CDN support, you can also upload media or select from previously uploaded media. See Insert media in message content in Media library.

## Creating content: Visual editor {#visual-editor}

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

Do the following to add only a Message Center message: 1. In the Content step, select **Message Center**, then **Add content**. 1. Select **Visual editor**. 1. Under **Rich Page**, select **Create**. Or you use the Visual editor in the Content step when configuring a push notification or in-app message: 1. Under **Actions**, select **Message Center**, then **Visual editor**. 1. Under **Rich Page**, select **Create**. Now you can configure the message content. Follow the steps in [The Visual editor](https://www.airship.com/docs/guides/messaging/editors/visual/). ## Android app reinstallation

Message Center inboxes are associated with channel IDs. On Android, reinstalling an app creates a new channel ID. Messages previously available in an Android user’s inbox will no longer be available after app reinstall.

## Hosting and page size

Content is hosted in a CDN, ensuring responsive load times for your users globally. Hosted content — including embedded CSS, images and JavaScript — is limited to 1.5 MB, however the ideal page size is much smaller, given the potential for degraded download speeds on cellular networks. We recommend that you optimize your images and HTML to keep total page sizes under 100 KB.

If you have additional assets to load, you can host them in another location and link to them. Airship offers additional asset hosting options as a Professional Service. Contact Airship Sales for more information.

## Welcome Message You can create a default message that appears in every new user's Message Center inbox when they open your app for the first time: 1. Go to **Messages**, then **Welcome Message**. 1. Enter a message title. 1. Enter HTML for the message body. 1. Select **Save**. After saving, you have the option to delete the message. ## Remove a message from a Message Center You can remove messages from the Message Center inbox from the dashboard. > **Warning:** Removing a message from a Message Center is irreversible. 1. Go to **Messages**, then **Messages Overview**. 1. Click for the message you want to remove. 1. Click **Remove from inbox** and confirm. After removal, *Removed from inbox* and the removal date, time, and time zone appears in these locations: * [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview) — Message Details expanded view * [Message report](https://www.airship.com/docs/guides/reports/message/) — Header # Landing pages > Direct users to a landing page when they interact with your message. See also the [Landing pages](https://www.airship.com/docs/guides/features/messaging/landing-pages/) feature guide. ## Choosing an editor If your landing page content is hosted outside Airship, configure it using [Creating content: Custom URL](#creating-content-custom-url). You do not use the Interactive or Visual editors for that path. When Airship hosts your landing page, choose an editor for creating content: Interactive or Visual. For information about each, see [Content editors](https://www.airship.com/docs/guides/messaging/editors/about/). See the sections below for access steps and links to configuration details: [Creating content: Interactive editor](#interactive-editor) or [Creating content: Visual editor](#visual-editor). ## Creating content: Custom URL In the *Content* step for a push notification or in-app message, select *Landing Page* from the [Actions](https://www.airship.com/docs/reference/glossary/#action) menu, then click **Custom URL** and enter an HTTPS URL. ## Creating content: Interactive editor {#interactive-editor} In the *Content* step for a push notification or in-app message, select *Landing Page* from the [Actions](https://www.airship.com/docs/reference/glossary/#action) menu, then click **Interactive editor » Add content » Edit**. Now you can configure the landing page: ![Landing pages](https://www.airship.com/docs/images/content-lp_hu_afa917ef03e44649.webp) If your landing page includes [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can preview how the content will appear. See [Previewing personalized content](https://www.airship.com/docs/guides/personalization/previewing/). 1. Click **Add **. 1. Click **Done**. 1. Click **Done** to exit the editor. Now you are ready to complete the remaining steps in the composer. ## Creating content: Visual editor {#visual-editor} You can access the Visual editor in the Content step when configuring a push notification or in-app message: 1. Under **Actions**, select **Landing page**, then **Visual editor**. 1. Under **Rich Page**, select **Create**. Now you can configure the landing page. Follow the steps in [The Visual editor](https://www.airship.com/docs/guides/messaging/editors/visual/). ## Hosting and page size *This information applies to content created using Airship. However, we suggest following these guidelines for your self-hosted content as well.*

Content is hosted in a CDN, ensuring responsive load times for your users globally. Hosted content — including embedded CSS, images and JavaScript — is limited to 1.5 MB, however the ideal page size is much smaller, given the potential for degraded download speeds on cellular networks. We recommend that you optimize your images and HTML to keep total page sizes under 100 KB.

If you have additional assets to load, you can host them in another location and link to them. Airship offers additional asset hosting options as a Professional Service. Contact Airship Sales for more information.

## iOS developer notes The default behavior in the iOS SDK is to *not display* the landing page when the corresponding push notification is received while the app is in the foreground state. The logic behind this behavior is that you may not wish to interrupt or distract a user who is currently occupied with the app, only to ask them to visit a different part of the app. If you need to display a landing page while the app is in the foreground state, replace the registry predicate associated with that action with one that allows foreground execution. In the Airship SDK, this relative state between *what the app is doing now* and *how the action was invoked* is known as a *situation*, or more properly, [ActionSituation](https://urbanairship.github.io/ios-library/v20/AirshipCore/documentation/airshipcore/actionsituation) . Other examples of situations besides foreground state include background push and app launched from push notification. See [ActionArguments](https://urbanairship.github.io/ios-library/v20/AirshipCore/documentation/airshipcore/actionarguments) for more detail on the methods involved with this display behavior. ### Email channel content Learn about Email channel messages and how to configure their content. # Email content > Send messages to your email channel. See also the [Email](https://www.airship.com/docs/guides/features/messaging/email/) feature guide. ## Creating content

When creating messages, you configure its appearance in the Content step. In the Delivery step, you can configure content-related features that do not affect the appearance of the message.

In the *Content* step, click **Add content**. Now you can configure the body of the message: * For each section, click **Edit ** or **Add **, make your changes, then click **Done**. Merge fields can be included in HTML and plain text content if you chose Upload Users in the Audience step. * If your message includes [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars), you can preview how the content will appear. See [Previewing personalized content](https://www.airship.com/docs/guides/personalization/previewing/). ![Email content](https://www.airship.com/docs/images/composer-content-email_hu_f156989fe2bb2555.webp) 1. (Optional) Edit sender information: | Setting | Description | Steps | | --- | --- | --- | | **From Name, From Email, and Reply to Email** | The name and email addresses to use in the message header. They also appear in the user's email client.

The **From Name** and the usernames in the **From Email** and **Reply to Email** addresses support personalization using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars). The username is what appears before the @ symbol in the email address. See [About Personalization](https://www.airship.com/docs/guides/personalization/about/). | Edit the fields and select from available domains for the email addresses. For **Reply to Email**, leave field blank if replies should go to the address already entered in **From Email**. | | **Transactional** | If the message is triggered by a user's action such as a password reset request, opt-in, shopping receipt, etc., you can designate it as transactional, and optionally include an [unsubscribe link](https://www.airship.com/docs/guides/messaging/messages/content/email/email-unsubscribe-links/). See [Commercial vs. Transactional Email](https://www.airship.com/docs/developer/api-integrations/email/commercial-transactional/)

The Content step is considered incomplete until an unsubscribe link is provided in the message body or the message is designated as transactional in Sender Information. | Enable to designate the message as transactional. | | **Bypass Opt-in Status** | Sends the message to audience members even if they have opted out of transactional messages. This option appears if **Transactional** is enabled.

Use for business-critical emails only. See [Opt-in and Opt-out Requirements](https://www.airship.com/docs/developer/api-integrations/email/commercial-transactional/#opt-in-reqs) in *Commercial vs. Transactional Email*. | Enable to send the message to users who opted out of transactional messages. | | **Open and Click Tracking** | Records an event when the email is opened and/or links are clicked. Only HTTP and HTTPS links are tracked. Enabled by default.

When enabled, opens and clicks are tracked for all channels that have not been opted out. When disabled, opens and clicks are not tracked for any channels. See [Contact Management](https://www.airship.com/docs/guides/audience/contact-management/) to manage open and click tracking at the channel level. | Enable to track opens and clicks. | | **BCC Addresses** | For accounts with email addresses registered with Airship for BCC capabilities. Sends a blind copy of the message to selected email addresses.

It's important to keep email volume in mind when using BCC. When you send a message with BCC enabled, your BCC addresses receive one email for each recipient of that message. | Select email addresses. | {class="table-col-1-20 table-col-2-40"} ![Email sender information](https://www.airship.com/docs/images/email-sender-info_hu_ac2fbe975730e1dc.webp) *Email sender information* 1. Add the *Subject*. 1. (Optional) Add the *HTML body*.

In the Interactive editor: * To [reduce the HTML size](https://www.airship.com/docs/guides/messaging/messages/content/email/email/#size-limit-and-html-minification), select **Settings** in the sidebar, and then enable **Minify HTML**. * After selecting **Done**, choose whether to save the HTML body only or [also generate the plain text body](https://www.airship.com/docs/guides/features/messaging/email/#plain-text-generation). 1. Add the *Plain text body* or edit if populated in the previous step. 1. (Optional) [Preview your email](#inbox-previews) in different clients:
  1. Click Inbox preview.
  2. Select from the lists of browser, desktop, and mobile clients, then click Generate previews.
  3. Click a thumbnail to see the full version. Click to close and choose another preview.
  4. (Optional) To add/remove clients, click Reselect and generate previews and start over.
  5. When you are finished with inbox previews, click to close the modal.
Now you are ready to complete the remaining steps in the composer. If your message requires overriding project-level [URL parameters](#url-parameters), set overrides in the Delivery step. ## Size limit and HTML minification Message size should not exceed 100 KB, as email clients typically truncate content larger than 103 KB. If you need to provide content exceeding this limit, link from the email to web-hosted content. When using the drag-and-drop option in Interactive editor for an email HTML body, you can [reduce the overall size of your content by up to 25%](https://www.airship.com/docs/guides/features/messaging/email/#html-minification). First, [Contact Support](https://support.airship.com) to request enabling HTML minification for your project, and include your project [App Key](https://www.airship.com/docs/reference/glossary/#app_key). To access it, next to your project name, select the dropdown menu ( ), then **Project Details**. After it's enabled, you can use it in the editor for your email messages and templates: Select **Settings** in the sidebar, and then enable **Minify HTML**. When applying the setting to an existing message, you do not need to change anything else in the message before saving. ## Inbox previews > **Note:** Inbox previews must be enabled for your account. Contact your Airship account manager if they do not appear for your projects. Before sending your message, you can preview what it will look like in various email clients. After adding the HTML body in a message or template, you can select **Inbox preview** and choose from a list of browser, desktop, and mobile clients. * Each individual browser, desktop, or mobile selection counts as 1 preview. **If you edit a message and then regenerate previews, the new previews are counted separately from the original previews.** * Each Airship project includes a limited number of free previews per month. Additional previews are billed at the end of the month. * Your preview count for the current month is displayed at the bottom of the inbox preview modal. The number of previews to generate appears after you select clients. ![Email content](https://www.airship.com/docs/images/inbox-preview_hu_42e03bc9d275e959.webp) ## Preheader text *Preheader text* is a short line of text that displays after or below an email subject line in an inbox. You can also have the text appear in the message body. Preheader text is an easy way to expand on your subject line and improve email open rates. Not all email clients support preheader text. These examples show preheader text following the subject "Undock is Launching": ![Preheader text in browser inbox](https://www.airship.com/docs/images/preheader-text_hu_d64919cb62911960.webp) *Preheader text in browser inbox*
![Preheader text in mobile inbox](https://www.airship.com/docs/images/preheader-text-mobile_hu_39260b017aa0439c.webp) *Preheader text in mobile inbox* While some clients will display more than 100 characters, we recommended 40-100 characters, to make sure your message is fully displayed in most email clients and browser windows. However, if most of your recipients are opening their messages on mobile devices, consider keeping your character count on the lower end, since many devices display an average of 35-50 characters. * The Interactive editor supports preheader text in the inbox, or in both the inbox and the body of the message. See [Preheader text for email](https://www.airship.com/docs/guides/messaging/editors/interactive/styling-formatting/#preheader-text-for-email) in *Styling and formatting in the Interactive editor*. * If providing your own HTML, you can add preheader text that appears in the **inbox only**. Add this snippet of code to the top of your HTML body, and edit "Preheader text goes here." with the message you'd like to use: ```html
Preheader text goes here.
``` ## Link names Name your email links to better understand their performance. You can add them manually using the HTML attribute `data-ua-linkname` on anchor tags or enter them when configuring actions in the [Interactive editor](https://www.airship.com/docs/guides/messaging/editors/interactive/about/). When users follow links in an email, the URLs and related metrics appear in the Performance section of a message report. See [Email Performance](https://www.airship.com/docs/guides/reports/message/#email-performance) in *Message Reports*. Link names also appear in [Real-Time Data Streaming](https://www.airship.com/docs/reference/glossary/#rtds) as the value for the `link_name` property in the `email_click` event body. See [Email click event](https://www.airship.com/docs/developer/rest-api/connect/schemas/custom-email-events/#emailclickevent) in the *Real-Time Data Streaming API* reference. In the [Performance Analytics](https://www.airship.com/docs/reference/glossary/#pa) Engagement Explore, you can use the Link Name [Dimension](https://www.airship.com/docs/reference/glossary/#pa_dimension). See [General data](https://www.airship.com/docs/guides/reports/analytics/email/#general-data) in the *Email in Performance Analytics* guide. ### Entering link names in messages In layouts in the Interactive editor, you can provide a link name when configuring the actions Open website, Open unsubscribe page, and Confirm subscription. See [Email and link actions](https://www.airship.com/docs/guides/messaging/editors/interactive/actions/#email-and-link-actions) in *Actions in the Interactive editor*. If you entered the link name "jawn" for URL `https://www.example.com`, it would appear in the message HTML like so: ```html here ``` Use the above format to manually add link names to email HTML bodies. ### Creating link name Segments When creating a [Segment](https://www.airship.com/docs/reference/glossary/#segment), use the `email_click` event, add the `link_name` property, and enter a link name as the property value. ## URL parameters URL parameters are variables you can automatically append to all link URLs in emails. They function as tags for tracking campaign performance, both on the web and in an app. You can use platforms like Google Analytics to track user behavior after they've followed a link. Add your own custom parameters and/or supply values for these [UTM parameters](https://en.wikipedia.org/wiki/UTM_parameters): | UTM parameter | Description | Usage example | | --- | --- | --- | | utm_campaign | Identifies the purpose of the campaign or promotion | utm_campaign=winter_clearance | | utm_content | Identifies what the user interacted with in the email, such as a button or a text link, and differentiates links that may direct to the same URL, as is commonly used in A/B testing | utm_content=sign-up-button | | utm_medium | Identifies where a user found your URL | utm_medium=email | | utm_source | Identifies the traffic source, which you can use to identify the type of email campaign | utm_source=newsletter | | utm_term | Typically identifies search terms, but instead can be used to differentiate things like subject lines | utm_term=you-forgot-your-cart | A full link could look like this: `https://example.com/utm_medium=email&utm_source=newsletter&utm_campaign=winter_clearance&utm_content=sign-up-button`. URL parameters can be set at the project level and for individual messages. You can override project-level parameters per message as well. URL parameters already defined or hardcoded into your email links will not be overridden. URL parameters are supported for the API and for messages created using the Message, A/B Test, Automation, and Sequence composers. --- Names of custom parameters should be formatted according to your analytics platform requirements. Values for both UTM and custom parameters accept all characters and support [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars). * Handlebars values are automatically [URL-encoded](https://www.airship.com/docs/guides/personalization/handlebars/basics/#url-encoding). * You can use [message namespace properties](https://www.airship.com/docs/guides/personalization/sources/message-namespace/), event properties, and the `global_attributes` property in the [Push Object](https://www.airship.com/docs/developer/rest-api/ua/schemas/push/#pushobject) with Handlebars personalization. * Handlebars support does not include stored [Attribute](https://www.airship.com/docs/reference/glossary/#attributes) values on channels and [Named Users](https://www.airship.com/docs/reference/glossary/#named_user). Dynamic values can be appended or prepended to static text or used standalone. For example, you can set a custom value for `utm_content` as `newsletter-{{dateFormat $message.date pattern="yyyy-MM-dd"}}`, which will append `utm_content=newsletter-11-25-24` to the URL. ### Setting URL parameters To set URL parameters for all link URLs contained in emails: 1. Next to your project name, select the dropdown menu ( ), then **Settings**. 1. Under **Project settings**, select **URL Parameters**. 1. Under **UTM Parameters**, enter values for each parameter. Parameters left empty will not be included in email URLs. 1. Under **Custom Parameters**, select ** Add custom parameter**, then enter a parameter name and value. 1. Select **Save**. > **Note:** Changes made to project-level email URL parameters will apply to all active Automations and Journeys. Changes will not apply to messages that are currently being delivered. You can set parameters for an individual message in the Delivery step in the Message, A/B Test, Automation, and Sequence composers. See [URL parameters](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery-options/#url-parameters) in *Message delivery options*. For API use, see the `url_parameters` object in [Email Override](https://www.airship.com/docs/developer/rest-api/ua/schemas/platform-overrides/#emailoverrideobject) and [Email Notification with Template](https://www.airship.com/docs/developer/rest-api/ua/schemas/platform-overrides-with-templates/#emailoverridewithtemplate). ## Disabling click tracking for specific links You set click tracking for a message when configuring its [Sender Information](#creating-content). When tracking is enabled for a message, you can override the setting and disable tracking for message specific links and actions. In layouts in the Interactive editor, you can disable click tracking for text hyperlinks and for the actions Open Website and Confirm Subscription. See [Email and link actions](https://www.airship.com/docs/guides/messaging/editors/interactive/actions/#email-and-link-actions) in *Actions in the Interactive editor*. In HTML or plaintext content, in either the dashboard or using the API, you can disable click tracking by including these parameters: * In HTML, use the `data-ua-clicktrack="0"` attribute on an anchor tag to remove click tracking for a link. **Tracked and untracked HTML links** ```html My Tracked Link My Untracked Link ``` * In plaintext, use the format `[[ua-clicktrack-disabled="1" href=""]]` to disable click tracking. **Tracked and untracked plaintext links** ```plaintext [My Tracked Link] https://airship.com [My Untracked Link] [[ua-clicktrack-disabled="1" href="https://airship.com"]] ``` ## Preference Centers To link to an Email [Preference Center](https://www.airship.com/docs/reference/glossary/#preference_center) in a message, first get its web page URL: 1. Go to **Content**, then **Web Pages**. 1. Select the more menu icon () for a Preference Center web page, then **Copy link to clipboard**. Now you can include the saved URL in a link in your message. ## Deep Links in email You can use a Deep Link to direct users from an email to a specific location within your app. For Deep Links to work properly with Airship Email, you must have the following: * A branded click tracking domain configured in Airship * An `apple-app-site-association` and `assetlinks.json` files hosted using HTTPS at the root of your domain * Code in your Android and iOS apps that resolves the click-tracking links and routes to the proper page in your app Follow the steps below to set up your website and app, and then add Deep Links to your messages. Links to additional documentation for Airship's email providers SendGrid and SparkPost are provided. If you do not know which provider your account uses, [contact Airship Support](https://support.airship.com/). ### Configure your website to handle Deep Links Android and iOS devices handle Deep Link resolution using files hosted alongside your website. Customize the following files to match your iOS `appID` and Android `sha256_cert_fingerprints` and place them at the root of your domain. They must be hosted using HTTPS. For iOS, add the following to your `apple-app-site-association` file: ```json { "applinks": { "apps": [], "details": [ { "appID": "", "paths": [ "/uni/*", "/f/open-in-app/*" ] } ] } } ``` For Android, add the following to your `assetlinks.json` file: ```json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.testlinks", "sha256_cert_fingerprints": [""] } }] ``` For additional information, see [Support Universal Links](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html) in the Apple Developer *App Search Programming Guide* and [Getting Started](https://developers.google.com/digital-asset-links/v1/getting-started) in the Google *Digital Asset Links* guide. ### Configure your apps to handle Deep Links Add the following code to your Android and iOS apps to resolve the click-tracking links and route to the proper page in your app. These code samples are provided for reference and may need to be adjusted to work in your application. #### iOS Swift ```swift func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { if userActivity.activityType == NSUserActivityTypeBrowsingWeb { guard let encodedURL = userActivity.webpageURL else { // No URL to resolve return false } let task = URLSession.shared.dataTask(with: encodedURL, completionHandler: { (data, response, error) in guard let resolvedURL = response?.url else { // URL failed to resolve return } // Now you have the resolved URL that you can // use to navigate somewhere in the app. print(resolvedURL) }) task.resume() } return true } ``` #### Android Java ```java protected void onNewIntent(Intent intent) { String action = intent.getAction(); final String encodedURL = intent.getDataString(); if (Intent.ACTION_VIEW.equals(action) && encodedURL != null) { new Thread(new Runnable() { public void run() { try { URL originalURL = new URL(encodedURL); HttpURLConnection ucon = (HttpURLConnection) originalURL.openConnection(); ucon.setInstanceFollowRedirects(false); URL resolvedURL = new URL(ucon.getHeaderField("Location")); // Redirect to the correct page in your app } catch (MalformedURLException ex) { // } catch (IOException ex) { // } } }).start(); } } ``` For additional information, see [Universal Links](https://www.twilio.com/docs/sendgrid/ui/sending-email/universal-links) in the Twilio SendGrid *Sending Email* documentation and [Using Mobile Universal and App Links with SparkPost](https://support.sparkpost.com/docs/tech-resources/deep-links-self-serve) in the SparkPost *Tech Resources* documentation. ### Add Deep Links in messages In layouts in the Interactive editor, select the Deep Link action for text, buttons, or images in your messages, and then enter your Deep Link URL. You can also provide a [link name](#link-names) for tracking purposes. For all available actions, see [Email and link actions](https://www.airship.com/docs/guides/messaging/editors/interactive/actions/#email-and-link-actions) in *Actions in the Interactive editor*. --- To use Deep Links with click tracking, SendGrid provides specific instructions for "Universal Links". SparkPost refers to these as "Deep Links". These instructions can be found in their documentation, but we've summarized them here. The editor will automatically add the necessary `universal="true"` or `data-msys-sublink="open-in-app"` attribute to the link, ensuring it functions correctly with our Email subprocessors. --- In HTML or plaintext content, in either the dashboard or using the API, you can add Deep Link handling to URLs by including these parameters: * In HTML, add the `data-ua-universal="true` attribute to your Deep Link URLs: ```html Your Deep Link Text ``` * In plaintext, add `ua-universal="true"` to your Deep Link URLs: ```plaintext [Your Deep Link Text] [[ua-universal="true" href="your-deep-link-url"]] ``` > **Note:** SendGrid does not support click tracking in plaintext links, so you may need to adjust your links in your plaintext copy. # Email unsubscribe links > Create links for unsubscribing to individual subscription lists or opting out of all email messaging. ## About unsubscribe links By default, email is for [commercial use](https://www.airship.com/docs/developer/api-integrations/email/commercial-transactional/) and requires an unsubscribe link in both the HTML and plain text message bodies. When the user follows the link, Airship unsubscribes the user (i.e., opts them out of email messaging) and redirects to a **confirmation web page** that tells them they are unsubscribed. The user is opted out of all commercial messages if the message was marked as commercial or opted out of all email messaging if marked as transactional. You can use the Airship-hosted default confirmation web page that displays the message "You have been successfully unsubscribed." or link to your own confirmation web page. Airship also supports double opt-out flows via [custom unsubscribe pages](https://www.airship.com/docs/developer/api-integrations/email/custom-unsubscribe-pages/). When users click on the unsubscribe link, they will not be opted out of messages and will instead be directed to your unsubscribe page. When sending an email to a [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list), in addition to the required unsubscribe link (for opting out of all messaging), you can also include an unsubscribe link for that list only. ### Unsubscribing by confirmation click Many email security tools, including Microsoft SafeLinks and Barracuda, automatically "pre-click" links to scan for malicious content. When traditional unsubscribe links trigger an immediate opt-out, these scans can accidentally unsubscribe engaged users before they ever open the email. To handle accidental unsubscribes, you can enable requiring an intentional user action to perform an unsubscribe. When a user clicks an unsubscribe link in an email body, it will open a confirmation web page where they must click a button to confirm unsubscribing. This helps prevent accidental churn, keeps unsubscribe metrics clean, and maintains full compliance. Additional details about handling: * Unsubscribe by confirmation click applies only to the `data-ua-unsubscribe` and `data-ua-list-unsubscribe` link formats. * If you use your own [custom unsubscribe page](https://www.airship.com/docs/developer/api-integrations/email/custom-unsubscribe-pages/) for `data-ua-unsubscribe-page` links, there is no change in behavior. * The required one-click `List-Unsubscribe` header for Google and Yahoo remains unchanged and fully automated. To enable the confirmation-click unsubscribe behavior for your project, contact your account manager or [Airship Support](https://support.airship.com/). If you're seeing unexplained unsubscribe spikes, pre-click scanning by security tools may be the cause, and enabling confirmation-click unsubscribe is the recommended solution. ## Unsubscribe link formatting To use the **default confirmation page**, include the following in your message: * *HTML body* — Paste this HTML: ```html Unsubscribe ``` * *Plain text body* — Paste this content: `[[ua-unsubscribe]]` --- To use **your own confirmation page**, include the following in your message: * *HTML body* — Paste this HTML, replacing the `href` URL with your own: ```html Unsubscribe ``` * *Plain text body* — Paste this content, replacing the `href` URL with your own: `[[ua-unsubscribe href="https://www.example.com/unsubscribe"]]` --- For an unsubscribe link for a specific [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list), insert `list-` into the link; all other formatting as described above is the same: * For HTML, use `data-ua-list-unsubscribe` instead of `data-ua-unsubscribe`. * For plain text, use `ua-list-unsubscribe` instead of `ua-unsubscribe`. > **Important:** Whenever you include an unsubscribe link for a specific list, you must also include an unsubscribe link for opting out of all messaging. --- If [custom unsubscribe pages](https://www.airship.com/docs/developer/api-integrations/email/custom-unsubscribe-pages/) are enabled for your project, include the following in your message: * *HTML body* — Paste this HTML, replacing the `href` URL with the URL of your custom unsubscribe page: ```html Unsubscribe ``` * *Plain text body* — Paste this content, replacing the `href` URL with the URL of your custom unsubscribe page: `[[ua-unsubscribe-page href="https://www.example.com/unsubscribe"]]` When using a custom unsubscribe page, you do not need to include an unsubscribe link for opting out of all messaging. ## Unsubscribe links in the Interactive editor When using the [Interactive editor](https://www.airship.com/docs/guides/messaging/editors/interactive/) to create email content, you can add unsubscribe links in the [HTML, Heading, and Text content elements](https://www.airship.com/docs/guides/messaging/editors/interactive/styling-formatting/#content-elements). In the HTML content element, use the code specified for *HTML body* in [Unsubscribe link formatting](#unsubscribe-link-formatting) above. In Heading and Text content elements: 1. Select text in your message and click the Link option. 1. Select an action: *Unsubscribe from all*, *Unsubscribe from current list*, or *Open unsubscribe page*. 1. Enter the URL according to your selection: * *Open unsubscribe page* — Enter the URL for your custom unsubscribe page. * *Unsubscribe from all* or *Unsubscribe from current list* — Enter the URL for your confirmation page or enter one of the following URLs for the default confirmation page. For the default page, use the URL that matches your data center location: * US: `https://asemailmgmtus.com/unsubscribe/success.html` * EU: `https://asemailmgmteu.com/unsubscribe/success.html` 1. Click **Save**. See also [Actions in the Interactive editor](https://www.airship.com/docs/guides/messaging/editors/interactive/actions/). # Email double opt-in links > Create links for completing the email double opt-in process. ## About double opt-in links When using [[Double Opt-In](https://www.airship.com/docs/reference/glossary/#double_opt_in)](https://www.airship.com/docs/developer/api-integrations/email/getting-started/#double-opt-in), you must include an **opt-in link** in both the HTML and plain text message bodies. When the user follows the opt-in link, Airship updates their channel as opted in to email messaging and redirects to the confirmation web page that tells them they are opted in. The Airship-hosted **default confirmation web page** displays the message "You have been successfully opted in." You can also link to **your own confirmation web page** instead. ## Double opt-in link formatting To use the **default confirmation page**, include the following in your message: * *HTML body* — Paste this HTML: ```html Link Title ``` * *Plain text body* — Paste this content: `[[ua-opt-in]]` To use **your own confirmation page**, include the following in your message: * **HTML body** — Paste this HTML (it includes a `data-ua-opt-in="1"` attribute), replacing the `href` URL with your own: ```html Link Title ``` * **Plain text body** — Paste this content, replacing the `href` URL with your own: `[[ua-opt-in href="https://www.example.com/confirmed"]]` ## Double opt-in links in the Interactive editor When using the [Interactive editor](https://www.airship.com/docs/guides/messaging/editors/interactive/) to create email content, you can add opt-in links in the [HTML, Heading, and Text content elements](https://www.airship.com/docs/guides/messaging/editors/interactive/styling-formatting/#content-elements). In the HTML content element, use the code specified for *HTML body* in [Double opt-in link formatting](#double-opt-in-link-formatting) above. In Heading and Text content elements: 1. Select text in your message and click the Link option. 1. Select the *Confirm subscription* action. 1. Enter the URL for your confirmation page or enter one of the following URLs for the default confirmation page. For the default page, use the URL that matches your data center location: * US: `https://asemailmgmtus.com/opt-in/success.html` * EU: `https://asemailmgmteu.com/opt-in/success.html` 1. Click **Save**. See also [Actions in the Interactive editor](https://www.airship.com/docs/guides/messaging/editors/interactive/actions/). # Email best practices > Learn about what influences email deliverability and how to improve yours. Mailbox providers, such as Gmail, Yahoo, and Outlook, are responsible for processing incoming email and determining whether it should be delivered to the inbox, filtered into spam, or blocked entirely. This directly affects the emails you send to your customers. They make these decisions in part by maintaining a *sender reputation score* for each business, which helps determine whether emails from that sender should reach its recipients. In this guide, we provide insights into how sender reputation works, specifically in the context of volume and sending regularity, and offer recommendations for sending newsletters and other email content effectively. ## Sender reputation Sender reputation influences whether your emails land in a user's inbox or their spam folder. It is determined by several key factors: * **Sending IP and domain reputations**: The overall sending history of your sending IP address and domain. Reputation is assigned to both, but IP reputation is weighted more heavily than domain reputation. High bounce and unsubscribe rates, a high number of spam complaints, and low user engagement negatively affect sender reputation scores. * **Sending patterns**: The consistency in email sending volume and frequency. Sudden spikes in volume or erratic schedules can trigger spam filters and harm your reputation. * **Engagement metrics**: User interaction with your emails. High open rates, click-through rates, and low unsubscribe rates positively influence your reputation. Engaging content leads to better reputation scores. ## Best practices for sending email To maintain a good sender reputation and improve your email deliverability when messaging a large email audience, consider the following best practices: * **Maintain good audience hygiene** — It's essential to keep your email audience well-maintained. Regularly reviewing and cleaning helps identify inactive or invalid email addresses. Failing to do so can result in high bounce rates and may also lead to sending emails to spam trap addresses. This can seriously damage your sender reputation and increase the risk of being added to blocklists by major email providers. To avoid these pitfalls, implement a routine for audience hygiene, such as periodically assessing subscriber engagement and using tools to verify email addresses. * **Establish a frequent, consistent sending schedule** — Consistent sending helps email providers recognize your patterns. We recommend emailing your audience at least every two weeks. If you only send monthly, split your audience into four segments and send to each segment 24 hours apart * **Avoid large, sudden spikes in volume** — For any message, do not send to more than twice your past week's average daily send volume. For example, if your past week's daily average was one million, don't send more than two million messages within 24 hours. Exceeding this limit significantly raises the risk of a message being rejected or flagged as spam. Split large audiences into smaller segments and send to each segment 24 hours apart. See [Email](https://www.airship.com/docs/guides/reports/engagement/#email) in *Engagement reports*. * **Segment your audience** — Tailor your content for different segments of your audience based on engagement levels. Send to your most engaged subscribers first to improve open rates and engagement. See [Segmenting your audience](https://www.airship.com/docs/guides/audience/segmentation/segmentation/). * **Monitor engagement metrics** — Regularly review your open, click, and bounce rates. If you notice a decline, consider adjusting your content or targeting. See [Email](https://www.airship.com/docs/guides/reports/engagement/#email) in *Engagement reports*. * **Create engaging content** — Focus on creating relevant and valuable content for your audience. Engaging content leads to higher open and click rates, improving your overall reputation. * **Test and optimize** — Conduct A/B testing to see which subject lines and content types resonate best with your audience. Use the insights to refine your strategy. See [About A/B testing](https://www.airship.com/docs/guides/experimentation/a-b-tests/about/). ## Delivery Set up message delivery and options. # Message delivery > Configure delivery for Messages, Automations, and Sequences. In the Delivery step of each composer, select a Timing option and configure additional settings. You can also set up [Message delivery options](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery-options/). ## Timing — Messages The Message composer supports these timing settings: | Timing option | Description | | --- | --- | | **Send now** | Send the message immediately after review. | | **[Schedule](#schedule)** | Send the message at a specific date and time. | | **[Recurring](#recurring)** | Send the message periodically at specified intervals. You can set the initial time, optional end date, and exclusions. | | **[Optimize](#optimize)** | Send the message at each user's [Optimal Send Time](https://www.airship.com/docs/reference/glossary/#optimal_send_time) based on predicted engagement. App channels only. | For messages used as [A/B test](https://www.airship.com/docs/guides/experimentation/a-b-tests/messages/) variants, timing settings apply after starting the test. ### Optimize In the Message composer and for A/B test variants, send the message on a specific date and at each user's [Optimal Send Time](https://www.airship.com/docs/reference/glossary/#optimal_send_time). **iOS, Android, and Fire OS only.** Enter a date in YYYY-MM-DD format.

Airship recommends scheduling your message at least three days in advance due to the combination of time zones and optimal times. You can reduce the lead time if your audience is more localized, e.g., only in the United States or in a certain European region.

> **Note:** When your audience includes users without an optimal send time tag, those users will be dropped from delivery and will not receive the message. Since optimal send time is determined from user behavior over time, new users might not have an optimal send time determined for the first week or two after channel registration. ### Recurring In the Message composer and for A/B test variants, send the message periodically at specified intervals. You may want to send recurring messages for things like payment reminders. You can pause, resume, and cancel recurring messages in [Messages Overview](https://www.airship.com/docs/reference/glossary/#messages_overview). Segmentation data is evaluated at send time. For example, if your recurring message targets an audience list whose members change over time, each recurring message is sent to the current version of the list when the message is sent. > **Note:** Recurring messages that include multi-language [localized content](https://www.airship.com/docs/guides/messaging/messages/localization/) cannot be edited. ![Message delivery](https://www.airship.com/docs/images/rsm-config_hu_181cac03c299f0c7.webp) 1. Specify the delivery interval by number of hours/days/weeks/months/years. For *weeks*, also specify which days of the week to send the message. 1. Set the initial date. This is the first day Airship will send your message. 1. Set the initial time. This is the time of day Airship will send each message. * **Specify:** Enter the time and time zone. * **Optimal time:** The message will send at each user's [Optimal Send Time](https://www.airship.com/docs/reference/glossary/#optimal_send_time). * **Local time:** Enter the time. 1. (Optional) Specify when to stop sending the message. 1. Enable *End date*. 1. Enter a date. 1. Set the time and time zone. 1. (Optional) Specify dates or days of the week when the message should not be sent. If you select the *hours* interval, you can also specify which hours of the day should be excluded. If you select the *weeks* interval, you can only specify which dates should be excluded. If the scheduled send falls during an excluded period, Airship waits to send the message until the next available valid send time. For example, if you scheduled delivery weekly on Thursdays but added the date for Thanksgiving Day as an exclusion, the next send would be the Thursday after Thanksgiving Day. 1. Enable *Do not send*. 1. Select **Add date exclusion**, enter a date, and repeat for additional dates. 1. Select **Add day exclusion** and select days. 1. Select **Add time exclusion** and set start and end times. ### Schedule In the Message composer and for A/B test variants, choose an exact time of day to send the message: 1. Enter a date in YYYY-MM-DD format and select the time and time zone. 1. (Optional) Select **Delivery By Time Zone** to deliver messages at the specified time in your audience's time zones. For example, a push notification scheduled for 9 a.m. will arrive for people on the east coast at 9 a.m. Eastern Time, in the midwest an hour later at 9 a.m. Central Time, then on the west coast two hours after that, at 9 a.m. Pacific Time. > **Note:** Messages are only delivered by time zone to channels that have a time zone set. > > **App and Web channels** have their time zone set automatically by the SDK. > > **Email, SMS, and Open channels** will only have a time zone if set through the channel registration API. To do so, enter a value for the `"timezone"` key in the request body. See: > * [Email: Register Users](https://www.airship.com/docs/developer/api-integrations/email/getting-started/#register-users) > * [SMS: Register SMS Users](https://www.airship.com/docs/developer/api-integrations/sms/getting-started/#register-sms-users) > * [Open Channels: Register a Channel to Your Open Platform](https://www.airship.com/docs/developer/api-integrations/open/getting-started/#register-a-channel-to-your-open-platform) > **Tip:** * A message delivered by time zone includes a Delivery by Time Zone section in its message report. See [View Message Detail](https://www.airship.com/docs/guides/reports/message/#message-detail) in *Message reports*. > * The API equivalent of Delivery By Time Zone is [Push to Local Time](https://www.airship.com/docs/developer/rest-api/ua/schemas/schedules/#schedulespec). ## Timing — Automations and Sequences Automations and Sequences support these timing settings: | Timing option | Description | | --- | --- | | **Send immediately** | Send the message after receiving the triggering event and after the delay period elapses. | | **[Schedule](#schedule)** | Send the message at a specific date and time after receiving the triggering event and after the delay period elapses. | | **[Send during available window](#send-during-available-window)** | Send the message within a specified time range after the trigger event. | Timing settings and application vary: * **Sequences**: Timing settings apply to the first message in a Sequence only. Subsequent messages in the Sequence are sent as additional conditions are met and according to their specified delay periods. * **Automations and Sequences**: Timing settings do not appear if using the Inactivity trigger. ### Schedule For Automations and messages in Sequences, Airship sends your message at the first appropriate scheduled time after receiving the triggering event and after the delay period elapses. All messages are delivered in the device's local time zone. Choose an exact time of day to send the message: 1. Select days of the week. 1. Select and drag the circle on the timeline to select delivery time. Hours are in 15-minute divisions. 1. (Optional) Select **Add Another** to create multiple schedules. ### Send during available window For Automations and Sequences, configure message delivery windows by specifying valid hours of the day and days of the week. Airship sends your message at the first appropriate time during the window after receiving the triggering event and after the delay period elapses. If no delay is configured and the triggering event falls within an available window, the message will send immediately. 1. Select days of the week. 1. Select and drag the circle on the timeline to constrain the delivery window. Hours are in 15 minute divisions. 1. (Optional) Select **Add Another** to create multiple windows. 1. Choose what happens if the triggering event occurs outside the available window. By default, if the triggering event (plus delay, if specified) falls outside of an available window, Airship sends the message during the next available window. Select **Do not send** if you want to discard the message instead of sending during the next available window. > **Tip:** Create multiple windows to support separate hours during weekdays versus weekends. ## Additional settings Additional settings may be available depending on your composer, project configuration, channel selection, and message configuration. ### Audience limit In the Message composer and for A/B test variants, and for App channels only, set a maximum number of audience members to send the message to. This setting can be useful for promotions with a limited number of coupons or other capped advertisements. For [Recurring delivery](#recurring), the limit applies to each message send. 1. Enable *Audience Limits*. 1. Set the audience size to between 100 and 1 million. > **Important:** Audience Limit is not supported for: > > * [Optimal Send Time](https://www.airship.com/docs/reference/glossary/#optimal_send_time) — This includes > * [Optimized](#optimize) delivery > * **Optimal time** for [Recurring](#recurring) delivery > * Delivery by time zone — This includes: > * **Delivery By Time Zone** for [Scheduled](#schedule) delivery > * **Local time** for [Recurring](#recurring) delivery > * [Audience Lists](https://www.airship.com/docs/reference/glossary/#audience_list) — This includes any [Segment](https://www.airship.com/docs/reference/glossary/#segment) that includes an Audience List > * [Message Center](https://www.airship.com/docs/reference/glossary/#message_center) messages — If Message Center is combined with a Push Notification and/or In-App Message, the limit is applied to the Push and In-App Message as long as other requirements are met. > * [Accounts that include Boost](https://www.airship.com/docs/reference/feature-packages/#account) ### Ban List If your project has a [Ban List](https://www.airship.com/docs/reference/glossary/#ban_list) enabled and its request URL includes send time variables, you can override their default values for this message only. Each one is listed under the heading **Default value for \**. Enter a new value for any variable. This setting does not appear if [**Bypass Ban List**](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery-options/#bypass-ban-list) is enabled. ### Delay For Automations only, you can set the time Airship should wait after receiving the triggering event before sending your message. Enable, then enter a value in minutes, hours, or days. The maximum delay period is 90 days. > **Note:** A delay of one hour is required for the [First Seen Trigger](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) and for [Cancellation Events](https://www.airship.com/docs/reference/glossary/#cancellation_events_event_option). > > Sequences also have a Delay setting, but it is set per message. See [Delay](https://www.airship.com/docs/guides/messaging/messages/sequences/create/add-messages/#delay) in *Add Messages to a Sequence*. ### External data feeds If your message includes [External Data Feeds](https://www.airship.com/docs/reference/glossary/#external_feed), you must configure each feed listed in *External data feed options*. * **Failure behavior** — Determine how your message is handled if the feed fails. Select *Abort sending the message* or *Send message without this data*. * **Default value for [var]** — This displays the default value for each send time variable in the feed URL. You can change the value to override the default for this message only. ### Purpose Set or verify the [Message Purpose](https://www.airship.com/docs/reference/glossary/#message_purpose). This option only appears if Message Purpose is enabled for the project. When Message Purpose is enabled and email and at least one other channel are selected for a message, Purpose is disabled in the Delivery step. Instead, set the purpose in the email's [Sender Information](https://www.airship.com/docs/guides/messaging/messages/content/email/email/#creating-content): 1. Go to the composer's Content step. 1. Select the Email tab. 1. Select **Edit ** for Sender Information. 1. Enable *Transactional* or leave disabled if the message contains commercial content only. The commercial/transactional designation set in the email Sender Information will apply to all channels selected for the message. # Message delivery options > Configure delivery options for Messages, Automations, and Sequences. After configuring the [delivery timing and related settings](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery/), set up delivery options. Options are organized by channel and platform below. ## General These options are available across all or most channels. ### Bypass Ban List

Bypass your [Ban List](https://www.airship.com/docs/reference/glossary/#ban_list) when sending business-critical or otherwise required messages, such as privacy policy update notifications.

If you have a Ban List but do not see this option in the composer, enable it in your project settings. See Bypassing your Ban List in the Ban List documentation.

### Campaign categories

*Campaign categories* are labels that group messages of a similar type or messaging strategy for aggregate reporting. Campaigns help you track the efficacy of both your individual messages and a messaging campaign as a whole. You can add a maximum of ten categories.

Enter a campaign category name, then select Add. Category names have a 64-character maximum.

For categories defined in message limits, its limit displays after the category. To override the limit, select the check box for Ignore limit for this message.

![Adding a campaign category that has a message limit](https://www.airship.com/docs/images/category-message-limit-override_hu_e071bf1ff88c0a63.webp) *Adding a campaign category that has a message limit* > **Tip:** Campaign categories are listed in the > [Message Detail](https://www.airship.com/docs/guides/reports/message/#message-detail) > section of Message Reports. ### Custom keys *Custom keys* are additional key-value pairs in your push notification payload for use by custom code in your app or website. You can use custom keys to pass additional campaign identifiers for analytics, pass user information to the device, control the look and feel of the app, provide image links, etc. By default, a custom key is sent to push notifications on all platforms, but you can choose platform-specific keys as well if your message is going out to more than one platform, e.g., one imageURL for iOS and another imageURL for Android. Select a platform, then enter the key and value. Click **Add Another** for additional keys. > **Note:** For Message Center messages or templates created using the [Interactive Editor](https://www.airship.com/docs/reference/glossary/#interactive_editor), a separate Custom Keys section is under **Message Center Options**. Configure those custom keys to set key-value pairs that apply specifically to your Message Center message. See [Custom Keys](#message-center-custom-keys) for Message Center. ### Expiration The *delivery expiration* option discards your message if it hasn't been delivered to a device within a specific period of time. Select and configure an option: * **Duration:** Enter the number of minutes, hours, or days past your defined send time to expire the delivery. * **Date & Time:** Enter the date and time when delivery attempts should cease. Expiration behavior per message type: | Message type | Expiration behavior | | --- | --- | | **Push notifications and Web push notifications** | If a device is online, the notification will be delivered immediately. If a device is offline, the push service for each platform preserves the notification and attempts to deliver it as soon as it comes online, up until the expiration date.

The default expiration for push notifications without an expiration date is 30 days for APNs and 28 days for FCM.

For Web, if no expiration is set and a device is offline, the delivery service, e.g., Google or Mozilla, preserves the notification and attempts to deliver it as soon as it comes online, for a maximum of 28 days.

There is no way to remove a delivered push notification. | | **In-app messages** | Since in-app messages are delivered via a push payload, they will not be delivered past the expiration date if the user has been offline. In addition, Airship will not display an in-app message past the expiration date. | | **Message Center** | If you created the message using the Visual editor, its expiration is coupled with push notifications and in-app messages. | {class="table-col-1-30"} ### Ignore channel message limits Enable this option to override the project-level [Message Limits](https://www.airship.com/docs/reference/glossary/#message_limits), ensuring that your audience will receive your message even if they've reached the message limit. You may want to override message limits for important messages like breaking news, account alerts, or location proximity-based messages. Overriding message limits does not override [Sequence Rule Limits](https://www.airship.com/docs/reference/glossary/#rule_limits_sequence) or [Automation Rule Limits](https://www.airship.com/docs/reference/glossary/#rule_limits_event_option). ### Start and End Dates {#start-end} For Automations only, start and end dates define the times during which an automation can deliver messages to your audience. 1. Enable **Start Date** and/or **End Date**. 1. Set the time, time zone, and date. ### Throttle delivery In the Message composer and for A/B test variants, enable *Throttle Delivery* to set a delivery rate for the message. Enter the number of messages to be sent per second. The minimum rate is 100 messages per second. *Throttle Delivery* is only available for the following delivery options: *Send Now*, *Schedule*, and *Optimize*. **Not supported for Message Center.** You can change the rate after sending your message and also pause/resume or cancel delivery within 48 hours of send time. > **Important:** * Throttling must be enabled before sending the message. You cannot edit the message and enable it later. > *

If you combine Message Center with other App message types and pause or stop delivery within 48 hours of send time, delivery status change has no effect on Message Center delivery. Message Center messages will remain in the inbox until expiration, if set. You can also manually remove messages from the Message Center inbox.

> * If your use case requires a rate lower than 100 messages per second, [contact Support](https://support.airship.com) to request a different default rate for your project. 1. Go to **Messages**, then **Messages Overview**. 1. Change the message status: * Click * Pause* or * Resume*. * Click * Stop* to cancel delivery. You cannot resume a canceled message. 1. Change the throttle rate: 1. Click for the message. 1. Click next to *Throttle Delivery*. 1. Enter a new rate and click **Update**. ## Message Center These options are specific to Message Center messages and templates created with the [Interactive Editor](https://www.airship.com/docs/reference/glossary/#interactive_editor). ### Custom keys {#message-center-custom-keys} You can set [Custom Keys](https://www.airship.com/docs/reference/glossary/#custom_keys) that apply specifically to a Message Center message. Under **Message Center Options**, add a key and value. Select **Add Another** for additional keys. > **Tip:** If your Message Center is set up with [Named User](https://www.airship.com/docs/reference/glossary/#named_user) filtering, include a custom key with `named_user_id` as the key and the user's actual ID as the value. > > See information about filtering by Named User in the Message Center documentation for [SDK integrations](https://www.airship.com/docs/developer/sdk-integration/). > **Tip:** For messages created with the [Interactive Editor](https://www.airship.com/docs/reference/glossary/#interactive_editor), you can use custom keys to preview lines, which appear below the message title in the inbox. > > You must perform some development work before your app can display preview lines in the inbox. > > Use `com.urbanairship.listing.field1` and `com.urbanairship.listing.field2` as keys representing preview lines 1 and 2. In the **Value** field for each key, enter the text that you want to show on each line of the preview. > > ![Message delivery options](https://www.airship.com/docs/images/msg-center-custom-keys_hu_bd61648ad7e28c99.webp) > > You can personalize preview lines using [Handlebars](https://www.airship.com/docs/reference/glossary/#handlebars) to reference [Attributes](https://www.airship.com/docs/reference/glossary/#attributes) or [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event) properties. ### Expiration {#message-center-expiration} The Expiration setting for Message Center removes the message from users' inboxes. This may be helpful if the message represents a coupon, sale, or specific event and needs to expire on a specific date and time, or after a period of time has elapsed (duration). Under **Message Center Options**, select one of: * **Duration:** Enter the number of minutes, hours, or days past your defined send time to remove the message. * **Date & Time:** Select the date, time, and time zone when the message should be removed. ![Message delivery options](https://www.airship.com/docs/images/msg-center-expiration_hu_59cf4db783f61422.webp) > **Note:** If you created your Message Center message using the Visual editor, instead of setting an expiration, go to the Options tab and set when to remove it from the Message Center. See [Configuration steps](https://www.airship.com/docs/guides/messaging/editors/visual/#configuration-steps) in *The Visual editor*. ## SMS These options are specific to SMS messages. ### Expiration (SMS) {#sms-expiration} The *delivery expiration* option discards your message if it hasn't been delivered to a device within a specific period of time. 72 hours is the default. Enter the number of hours, between 1 and 72. ## iOS These options are specific to iOS messages. ### Background processing The *background processing* option wakes the app and give it some running time to perform work, such as downloading content for future display. Data included in the push notification is available for background processing, e.g., to send URLs and then download that content. **iOS only.** ### Badge Update the recipient device's app *badge*. A *badge* is the numeric display on an app icon that typically indicates the number of unread messages. The badge count can be used as an engagement strategy, notifying users about new content and driving them to open your app. By default messages automatically increment the badge number, but you can specify an exact number, e.g., +3, +12, -3. Select *Increment by 1* or *Specify*. *Specify* requires a value in the text field. > **Note:** Badge functionality requires the device to be opted in to push notifications. ### Group A *delivery group* uses an identifier to group related notifications from your app into a single stack. Notifications bearing the same group identifier are stacked together. **iOS 12 and later only.** Enter an identifier in the text field. > **Note:** Remember to use the same identifier for subsequent messages you wish to group. ### Interruption level Determine the degree of interruption a user experiences from a push notification. Each level has a different impact on the user's experience, depending on their Focus settings. The default level is *Active*. Select *Passive*, *Time Sensitive*, or *Critical*. For *Critical*, also specify the alert volume level, at 10% increments. | Interruption level | Overrides scheduled delivery | Breaks through Focus | Supports sounds/vibration | Overrides ring/silent switch | iOS minimum | |---|---|---|---|---|---| | Active (default) | No | No | Yes | No | n/a | | Passive | No | No | No | No | 15 | | Time Sensitive | Yes | Yes | Yes | No | 15 | | Critical | Yes | Yes | Yes | Yes | 12 | > **Important:** * Critical alerts require: > 1. A special entitlement issued by Apple. > 1. Feature enablement by Airship. Contact your account manager or Support if you have the Apple entitlement and want to use critical alerts with Airship. > * Critical alerts must be allowed by a user on their device. ### Mutable content The *mutable content* option allows a notification’s content to be changed or downloaded before delivery. This feature is automatically enabled if media is defined in the message's *Optional Features » Media* settings. **iOS 10 and later only.** ### Relevance score The relevance score is one of multiple factors used by Apple to determine which push notifications are featured more prominently within the *Notification summary*. Use this setting to override the default value of 0. iOS 15 and later only. Set a value between 1 and 10. ### Sound Play a custom *sound* when your audience receives a message. The sound file that you specify must be bundled with your app by your app developer. Enter "default" to use your audience's default system notification sound or the name of the sound file that you want to play, for example "beep.caf". See [Configure Notification Options](https://www.airship.com/docs/developer/sdk-integration/apple/push-notifications/getting-started/#configure-notification-options) for more information. ## Android and Fire OS These options are specific to Android and Fire OS messages. ### Collapse key A *collapse key* is an optional delivery feature that acts as a grouping and replacement mechanism for messages with the same value. The Collapse Key comes into play when a device is offline (e.g. airplane mode) or in doze mode; if multiple messages are available with the same collapse key value when a device comes back online, it will display only the most recent message and discard previous that have the same value. Enter the key in the text field. ### Delivery priority The *delivery priority* option sends your notification using Firebase Cloud Messaging (FCM) high priority. When not enabled, messages default to normal priority. **Android only**. > **Note:** From [Set the priority of a message](https://firebase.google.com/docs/cloud-messaging/customize-messages/setting-message-priority) in Google's FCM documentation: > > **High priority.** FCM attempts to deliver high priority messages immediately even if the device is in Doze mode. High priority messages are for time-sensitive, user visible content. ### Notification category Send your message with a specific *notification category* instead of the default. A *notification category* is a grouping mechanism for messages in **Android versions 8.0 and later**, synonymous with [Android notification channels](/docs/developer/sdk-integration/mobile/push/advanced/android/#notification-channels). Users can set behaviors for each notification category within your Android app, determining the types of messages they are most interested in. Select a notification category. > **Note:** You must add your app's notification categories to your Airship project before you can select them for your messages. See: [Manage Android Notification Categories](https://www.airship.com/docs/guides/messaging/project/config/android-notification-categories/). ## Email These options are specific to email messages. ### URL parameters Override project-level email [URL Parameters](https://www.airship.com/docs/reference/glossary/#url_parameters) or add custom parameters for the current message only. Existing project-level parameters are listed onscreen for reference. 1. Under **URL parameters for this message**, enter a parameter name and value. * To override an existing parameter, enter its name and enter a new value. * To remove an existing parameter, enter its name and leave the value empty. * To add a parameter, enter a parameter name and value. 1. Select ** Add parameter** to add more. ## Web These options are specific to web push notifications. ### Require interaction > **Important:** Support for the Require Interaction option varies by browser and OS. Enable **Require interaction** to require your audience to interact with your web notification to dismiss it from the browser window. Users may interact with a web notification in these ways: * Click the notification, which opens the message-defined URL, or the [default Action URL](https://www.airship.com/docs/developer/sdk-integration/web/getting-started/#airship-setup). * Dismiss the notification. * Click the Settings icon or button on the notification. ## API equivalents for delivery options Set Campaign Categories using the Campaigns object. See [Campaigns Object](https://www.airship.com/docs/developer/rest-api/ua/schemas/push/#campaignsobject) in the API reference. Start and End dates are for Automation only. You can set them using the `activation_time` and `deactivation_time` properties in the Pipeline object. See [Pipeline Object](https://www.airship.com/docs/developer/rest-api/ua/schemas/pipeline-objects/#pipelineobject) in the API reference. These options can be set using [Platform Overrides](https://www.airship.com/docs/developer/rest-api/ua/schemas/platform-overrides/): | Composer option | API | | --- | --- | | Background processing1,2 | `content_available` | | Badge2 | `badge` | | Collapse key (Fire OS) | `consolidation_key` | | Collapse key (Android) | `collapse_key` | | Custom keys | `extra` | | Delivery priority3 | `delivery_priority` | | Expiration | `expiry` | | Group2 | `thread_id` | | Interruption level2 | `interruption_level` | | Mutable content1,2 | `mutable_content` | | Notification category3 | `notification_channel` | | Relevance score2 | `relevance_score` | | Require interaction4 | `require_interaction` | | Sound2 | `sound` | | URL parameters5 | `url_parameters` | 1. Automation only
2. iOS only
3. Android only
4. Web only
5. Email only