Learn how to use OneSignal Dynamic Content to personalize Push Notifications, SMS, and Emails at scale using CSV uploads and Liquid syntax.
dynamic_content
property.
Dynamic Content button found in the push create editor.
CSV template options provided by OneSignal.
200 KB
_
) instead of spacessubscription.language
property to different translations per section.Similar to a VLOOKUP formula in Excel, we match user attributes with the corresponding content from the CSV.
dynamic_content
, use this Liquid syntax.
file_name
: CSV file name (without .csv
).section_name
: Value in the first column of the rowdata_tag_or_property
: Column header matching a Data Tag or subscription propertydynamic_content
.subscription.language
doesn’t exist, reference the default column from dynamic_content
instead.
dynamic_content
subscription.language
exists on a subscription, but not in dynamic_content
reference the default column instead.
translations.csv
to localize your email:
{{dynamic_content.translations.section_1[subscription.language]}}
{{dynamic_content.translations.section_2[subscription.language]}}
Example shows how to add the liquid syntax for the multi-language example.
content_personalization_template.csv
for user-specific push messages:
{{dynamic_content.content_personalization_template[campaign_id].title}}
{{dynamic_content.content_personalization_template[campaign_id].message}}
{{dynamic_content.content_personalization_template[campaign_id].url}}
Example shows how to add the liquid syntax for the content personalization example.
Create a test CSV
email
, language
external_id
, campaign_id
Example CSV to upload and create segment of email testers.
+
addressing in emails to test multiple variations: username+test@example.com
Example CSV to upload and create segment of testers with external_id and the tag campaign_id.
Upload your test segment
Create a segment of your testers to repeat as needed.
View the message
dynamic_content
isn’t rendering, reference Fallback contentExample shows the email sent with Dynamic Content.
Example shows the push sent with Dynamic Content.
dynamic_content
property of the Update Template API to update.