Create and Send

Create and Send is a way to target recipients of a single channel type by providing a list of user identifiers when creating a message. You can send to Channel IDs, email addresses, phone numbers, or Open channel addresses. Unknown identifiers are registered as new email, SMS, and Open channels.

Unlike an Uploaded ListA reusable audience list that you create. Uploaded lists are static and updatable. In the API, they are referred to as Static Lists., which must be added to your project ahead of time, with Create and Send, you provide your audience at send time. You can send messages to a list of users generated from Performance AnalyticsA customizable marketing intelligence tool that provides access to reports and graphs based on engagement data. or other reporting platforms without having to re-create your audience criteria.

Create and Send is also a convenient way to register new users while simultaneously sending a message. Channel registration is handled automatically for your app and web users through integration with the Airship SDK. Since email, SMS, and Open channels do not use an SDK, you can message a list of email addresses, phone numbers, or Open channel identifiers without worrying about their registration statuses.

Create and Send supports personalization.

Identifier formats and usage

You can use Create and Send in both the dashboard and API. Each supports different identifier formats and channels:

UseID formatSupported channelsComposer or endpointSteps
DashboardCSVApp, Web, Email, SMS, OpenMessageSelect Upload users in the Audience step, and you will be prompted to upload your CSV in the Review step.
APICSVApp, Web, Email, SMS, OpenFirst, provide audience identifiers to obtain a bulk_id, and then send your message to the ID using a Create and Send endpoint. New channels are created at send time, not when requesting the ID.
APIArrayEmail, SMS, OpenProvide audience identifiers in the create_and_send array in the audience object when sending a message using a Create and Send endpoint.

You cannot combine channels when using this feature. When using the APIs, attempting to set multiple device_types in the request will return a 400 response. For delivery, you cannot use Optimal Send TimeAn algorithm that determines the best hour for optimal engagement activity — when each individual member of your audience is most likely to receive and act on your message. iOS, Android, and Fire OS platforms only..

CSV formatting

CSV files must be smaller than 150 MB, with a maximum of 3 million rows. The header row must contain the required ua_-prefixed channel fields as column headers, with values in corresponding fields. Airship ignores rows that are empty or contain malformed channel information.

For Channel IDsAn Airship-specific unique identifier used to address a channel instance, e.g., a smartphone, web browser, email address.:

  • The first column header must be ua_channel_id. Entries in the first column contain the Channel ID you want to send a message to.
  • Your audience must all belong to the same device type. For App channels, this means one of iOS, Android, or Fire OS channels at a time. For example, if you want to send a message to both iOS and Android channels, you must curate separate lists of iOS and Android users and send two separate messages.

For email, SMS, or Open channel identifiers:

  • The first column header varies per channel. Entries in the first column contain the identifier you want to send a message to.
  • For existing channels, you must provide an opted_in date-time value that is newer than an opted_out value on the channel.
     Important

    Setting a newer opted_in date-time value within the CSV data does not update the opted_in value on the channel. It only overrides the opted_out value to send the current message. You must update the opted_in value using the appropriate channel API to opt it back in to your messaging audience.

  • Opt-in/out dates must be formatted as ISO 8601 strings. See Date-Time Format in the API reference.
  • Required fields and formatting information per channel type:
    ChannelFirst column header field valueFirst column row field valuesAdditional header field values
    SMSua_msisdnA MSISDNThe mobile phone number of an individual in your Airship audience. Each MSISDN represents an individual mobile device.
    • ua_sender
    • ua_opted_in1
    Emailua_addressAn email address
    • ua_commercial_opted_in or ua_commercial_opted_out1,2
    • ua_open_tracking_opted_in or ua_open_tracking_opted_out1,3
    • ua_click_tracking_opted_in or ua_click_tracking_opted_out1,3
    • ua_email_suppression_state4
    • timezone5
    Openua_addressA unique address that your Open channel usesn/a
    1. The opted_in values for email and SMS channels are the date-time when the user subscribed to messages.
    2. An opt-in or -out date is required for commercial emails. You can also provide dates for ua_transactional_opted_in or ua_transactional_opted_out, but they are optional. Opt-in/out dates are mutually exclusive. Providing a date for both opted in and opted out in the same row is considered invalid.
    3. By default, new channels are opted in to both open and click tracking. A channel can be opted out of tracking by setting an opted out date. The channel can be opted back in to tracking by setting an opted in date that is newer than the opted out date. Providing a date for both opted in and opted out in the same row is considered invalid.
    4. With value BOUNCE, SPAM_COMPLAINT, COMMERCIAL_SPAM_COMPLAINT, or IMPORTED. See Suppression types in Email Bounce Handling and Suppression.
    5. Format time zones according to the IANA time zone database. For example, America/Los_Angeles.

CSV example for a Create and Send email
1ua_address,ua_commercial_opted_in,name,city,state
2someone@example.com,2022-04-01T18:45:30,Joe Someone,Portland,OR
3else@example.com,2022-04-21T16:13:01,Sir Else,Seattle,WA

Personalization

Your CSV can contain additional columns with information you want to use for personalizing messages using HandlebarsHandlebars is Airship’s templating language for personalization. Handlebars expressions use double curly braces wrapped around a content template, ranging from a simple variable, e.g., {{first_name}}, to complex evaluations of personalization data.. See Personalize your Create and Send messages.