Inline List CSV Format
For use with:
- Inline lists must be in CSV format.
- CSV files must be smaller than 1.5 GB.
- The header row must contain
ua_prefixed channel registration fields as column headers, with valid information in each field. Rows without valid data in each field are ignored.
- Include additional headers for information that you want to reference in templates.
- Array of JSON objects, each object representing an audience member.
- Requests are limited to 1,000
ua_prefixed channel registration fields as keys for each
- Include additional properties in each object that you want to reference in templates.
See the full Create and Send API documentation for definitions and requirements.
|Channel||Channel Registration Fields|
opted_in values for email and SMS channels are the date-time when the
user subscribed to messages.
2 Required for commercial emails, optional for transactional emails.
Inline List Object and Array Notation
For use with: Personalization
When you Upload Users to send a message, you can include complex arrays and objects in your CSV using object notation to represent object properties in the header. When referencing an array index, you must wrap the array index in brackets. Your CSV should include headers for each item in the array and each property in the object that you want to reference in your message.
For example, if you want to use an array of objects called
items for each member of your uploaded audience, your CSV will include
items.[#] for each item in the array. If each object in the array had
url properties, you would add
items..name, items..image, items..url to your CSV, and reference additional objects in the array by incrementing the index (e.g.
items. and so on).
Array indexes start at 0.
If you wanted to personalize an email to members of your audience based on their addresses and the names of items they're interested in, you might format your CSV as follows:
Localization CSV Format
For use with: In-App Automation Localization
When localizing In-App Automation messages, you will upload a CSV file containing translations for each language and country combination that you want to localize your message for. Your localization CSV must represent the message elements that you want to populate with localized text or values. The first row contains your column headers, and each subsequent row in the CSV represents a different localization, broken down by language and country code.
Your CSV must contain:
- A row with empty
id.countryvalues; this row represents the default localization for the message and is issued to users who do not match any of the language/country combinations in your CSV.
- Additional column headers corresponding to
data-ua-idattributes for the custom HTML elements that you want to localize. Custom HTML messages only.
Except for the default localization row,
id.language is required;
id.country is optional.
If you want to avoid sending a message with the default localization values to members of your audience who don’t match the language and country information specified in your localized CSV, you can target specific users by locale The combination of a language and country. A user's locale is determined by their device settings. in the Audience step. This will ensure that your message only goes to users with the locales specified in your CSV.
Column headers and values for ALL messages:
id.language— The two-letter language code associated with this translation. Acceptable values are defined by ISO 639-1.
id.country— The two-letter country code associated with this translation. Acceptable values are defined by ISO 3166-1.
<custom>.key— Any header ending in
.keyis treated as a "custom key" or "extra", where the key is the section of the header preceding .key (e.g., the key for custom.key would be "custom"). The value in each row represents the localized information that you want to pass to the key.
Column headers and values for non-Custom HTML messages:
header- Sets value for Header text.
body- (Required) - Sets value for Body text.
footer- Sets value for Footer text. Fullscreen and Modal styles only.
footer.<Action>- Associates an action with tapping the footer. Deep Link and Link actions are supported for the footer. Fullscreen and Modal styles only.
button<N>- Sets value for Nth button text. The number of supported buttons varies per layout. At least 1 is required for all layouts.
button<N>.<Action>- Associates an action with the Nth button. The number of supported buttons varies per layout. At least 1 is required for all Layouts).
Column headers and values for Custom HTML messages:
When building your Custom HTML message, you will assign a
data-ua-id attribute with a unique string value to any element that you want to localize. You will then represent your
data-ua-id attributes as column headings in your localization CSV; Airship uses these
data-ua-id values to associate localized text or values with your Custom HTML. For example, you can populate localized text for an
h2 element with a
data-ua-id="flooble" attribute by placing a
flooble heading in your CSV.
By default, Airship treats elements with
data-ua-id attributes as text, but you can also add additional "type" attributes to elements to tell Airship how to render localized values in your HTML message.
data-ua-text— Airship inserts the localized value as a plain text node into the parent element, with new lines converted into
data-ua-link— Indicates that the element supports "actions". This places an anchor tag (
<a>) immediately inside the element, wrapping the contents of the element. You determine the type of action and the action value in your CSV. You can combine this attribute with other attribute types, wrapping the total contents of the element in an anchor tag.
data-ua-image— Airship will insert an
<img>tag in the parent element, using the translated value as the
data-ua-video— Airship will insert a
<video>tag in the parent element using the translated value as the video's
srcattribute. The video tag also includes a
Localization Actions For Custom HTML
For use with: In-App Automation Localization
You can assign an action to any element in your custom HTML that has a
data-ua-link attribute. You assign actions by adding a column in your CSV with the
data-ua-id of an element and
.<action_type>. For example,
flooble.deep_link would represent a deep link action for an element with a
flooble; the value in each row would be the deep link for each localization.
You must set your HTML actions in your localization CSV. You cannot set HTML actions in the composer. (You can set and edit actions in the composer for non-HTML messages.)
deep_link- Deep Link action.
link- Link (external URL) action; the corresponding value must be a valid URL.
share- Share action; the corresponding value is the text provided to the share dialog.
push_opt_in- Push Opt-In action; the corresponding value must be "true" to enable.
location_opt_in- Location Opt-In action; the corresponding value must be "true" to enable.
app_rating- App Rating action; the corresponding value must be "true" to enable.
app_rating.title- Sets the title of the App Rating modal; this key is optional and ignored if
app_ratingis not "true".
app_rating.body- Sets body of App Rating modal; this key is optional and ignored if
app_ratingis not "true".
Uploaded List CSV Format
For use with:
Uploaded lists must be in CSV format. CSV files can contain up to 10 million
or channel IDs, and be up to 1.5 GB. Each row in the CSV must be
Mobile Wallet Batch Import CSV Format
For use with: CSV Batch Importer
We recommend your CSV file contain no more than 500,000 rows. The CSV file size limit is 250 MB, but there is no limit to the number of passes you can create this way.
In addition to columns specifying each field name, you can also include columns for:
barcode_value: Provide custom barcode values for each pass.
externalId: The external identifier value specifies a user ID in a backend system (e.g. a CRM database) that you can use to map a pass to your data. For example, if a customer receives a pass with an
externalIdvalue that links to an ID in your backend loyalty system. When your customer makes a purchase that earns loyalty points, you can update his or her pass can with this new data. This field must be unique. Airship will not process rows containing duplicate
Here is the start of a valid CSV file:
The only date format accepted for Google templates is YYYY-MM-DD.