Data Connections &Liquid
Optimove's Dynamic Personalization Stack
One template. Real-time external data. Infinite personalization — for every customer, every time.
Data Connections
Data Connections lets you fetch live content from any external source — CSV files, REST APIs, loyalty platforms, internal databases — and inject it directly into your marketing templates before every message is sent. No manual updates. No multiple template versions.
- Fetch external content before sending — templates always stay up-to-date.
- Use one dynamic template across many campaigns and audiences.
- Access real-time data beyond batch processing or stored customer attributes.
- Bring in AI-powered product recommendations from Optimove Personalize (formerly Opti-X) in non-image format.
- Use placeholders to pass dynamic parameters (location, category, status) per customer on the fly.
How It Works — End-to-End Data Flow
3rd-party API,
Optimove Personalize Placement
Optimove Personalize admin
or via API
inline or via
Formula Builder
live data
at send time
personalized,
up-to-date message
Real-World Use Cases
Daily jackpot prize amounts automatically inserted into every player email.
Daily bestsellers or limited-time offers pulled fresh from your catalog.
Real-time order status displayed automatically in post-purchase messages.
Each customer receives tailored offers and visuals pulled from your systems.
- Imports customer attributes — email, location, preferences.
- Stored as part of the customer profile in Optimove.
- Used for segmentation and targeting at the audience level.
- Batch-processed — not real-time per send.
- Integrates external content — images, promos, product data.
- Fetched at send time from external sources — always current.
- Injected directly into campaign templates.
- Supports real-time, dynamic, and AI-powered content.
Liquid Templating
Liquid is an open-source templating language that Optimove uses to personalize cross-channel campaign content. Build one reusable content layout and automatically fill it with the right data for each person based on rules. Starting in 2026, Liquid replaces the legacy template language in Optimove.
The 3 Core Liquid Components
Display data directly inside your message. Wrapped in double curly braces. What's inside is evaluated and printed.
output-tags.liquid
{{ customer.first_name }} {{ customer.email }} {{ customer.loyalty_points }} {{ customer.city }}
Each variable is replaced with the customer's actual data when the message renders.
Control what gets shown — hide or display content based on rules. Wrapped in curly brace + percent sign. Never renders output directly.
logic-tags.liquid
{% if customer.tier == "GOLD" %} Enjoy your 20% reward! {% elsif customer.tier == "SILVER" %} Almost Gold — keep going! {% else %} Join our loyalty program. {% endif %}
Each customer sees only the content block that matches their tier — in one template.
Transform data before displaying it — format dates, capitalize text, set fallbacks. Used inside Output tags, separated by a pipe character.
filters.liquid
{{ customer.first_name | default: 'there' }} {{ customer.DOB | date_format: "MMMM d" }} {% assign disc = customer.points | divided_by: 100 %} {{ customer.city | default: 'your area' }}
Falls back to "there" if no name; formats date as "January 15"; computes discount from points.
Hi {{ customer.first_name | default: 'there' }}! We noticed your birthday is coming up on {{ customer.DOB | date_format: "MMMM d" }}. {% if customer.tier == "GOLD" and customer.opt_in == true %} As a Gold member, enjoy a special birthday bonus: 20% off your next deposit! {% elsif customer.tier == "SILVER" %} You're on your way to Gold! Here's a 10% birthday treat on us. {% else %} We have a birthday surprise waiting — log in to claim it. {% endif %} — Result for Alex (GOLD, opted in): "Hi Alex! We noticed your birthday is coming up on January 15. As a Gold member, enjoy a special birthday bonus: 20% off your next deposit!"
| Feature | Legacy Syntax | Liquid (New) |
|---|---|---|
| Logic Depth | Single condition only | Nested conditions supported |
| AND / OR Combinations | No AND/OR support | Full AND/OR logic |
| Data Formatting | Limited | Extensive filters — Date, Case, Math |
| Variable Assignment | Not supported | {% assign %} for runtime variables |
| Language Standard | Proprietary | Industry-standard Shopify Liquid |
LCDC — How Data Connections & Liquid Work Together
Hi {{ customer.first_name | default: 'there' }}! {% if customer.favorite_game == "slots" %} Today's jackpot on {{ customer.favorite_game }}: {{ data_connection.jackpot_amount }} {% if customer.tier == "GOLD" %} Your exclusive bonus code: {{ data_connection.bonus_code }} {% endif %} {% elsif customer.favorite_game == "poker" %} A new tournament just opened! Buy-in: {{ data_connection.tournament_buyin }} {% endif %}
Data Connections is in Closed Beta — request access through your CSM. An Optimove Personalize account is created for you (no full Optimove Personalize license required). Liquid is in Beta for Email — contact your Customer Success Manager to enable it. Both work natively across Email, Mobile App Push, SMS, and Web Push Notifications.
Documentation & Guides
Getting Started with Data Connections
Data Connection Use Cases
Getting Started with Liquid
- › Introduction to Liquid in Optimove
- › How to Add Liquid Personalization to Templates
- › Introduction to Filters
- › General & Compliance Attributes
- › Understanding Output Tags & Customer Attributes
- › Using Activity & Event Attributes
- › Conditional Logic in Liquid
- › Assign Variables and Defaults
- › Liquid Reference Dictionary