Personalization & Variables
Templates use numbered placeholders like {{1}}, {{2}}to personalize messages. In Socialone, you map each variable to a contact field, a custom field, or a static value before sending a broadcast.
Overview links: Documentation Home · Settings Overview
Where to Find This
- This step appears during Broadcast setup when a template has variables. Templates without variables skip the mapping step automatically.
Settings Quick Map
- Settings → Contact Custom Fields: define extra contact fields available for variable mapping.
- Settings Overview
Variable Basics
- Variables appear in the template body and optionally in the header.
- Numbering is positional:
{{1}}maps to variable 1,{{2}}to variable 2, and so on. - Every variable must be mapped before sending. The send button stays disabled until all are resolved.
Mapping Options
| Option | When to Use | Example |
|---|---|---|
| Contact Field | Standard contact data exists in the CRM. | {{1}} → first_name |
| Custom Field | You need data from a custom contact field. | {{1}} → contact.custom_field.order_id |
| Static Value | The value is the same for everyone in the send. | {{2}} → Summer Offer |
| CSV Column | Using CSV upload instead of contacts. | {{1}} → CSV column 1 |
Contact Field Reference
Standard contact fields use dot notation. Custom fields extend the path with custom_field:
- Standard fields:
contact.first_name,contact.last_name,contact.phone,contact.email,contact.city,contact.state,contact.country,contact.company. - Custom fields:
contact.custom_field.field_name— replacefield_namewith the exact slug of your custom field (e.g.,contact.custom_field.order_id,contact.custom_field.loyalty_points). Custom fields are defined in Settings → Custom Fields. - Static inline prefix: prefix a value with
static:to use it directly without contact lookup (e.g.,static:Hello). Useful in API or workflow integrations.
Contacts Mapping (Filter Contacts)
- Choose recipients using Filter Contacts.
- Click Check Selection to preview the matched recipients.
- Map each variable to a Contact Field, Custom Field, or Static Value.
- Proceed to send or schedule.
CSV Mapping
- CSV requires columns:
name,country_code,phone_number. - Add numbered columns
1,2,3to match template variable positions.
| name | country_code | phone_number | 1 | 2 |
|---|---|---|---|---|
| John Doe | 91 | 9876543210 | Order #245 | $29.00 |
Variables in Downstream Templates (Flow Builder)
When a contact taps a button and a downstream template is sent automatically, variables in that template are resolved from the same contact record — no extra mapping is required. The same dot-notation paths apply.
Variable resolution order for downstream templates: contact field → custom field → static fallback. If a contact field is empty, the variable is sent as empty unless a static fallback is defined in the template action mapping.
Tips
- Double‑check variable order before sending.
{{1}}maps to position 1, not by name. - Use static values for shared info like campaign names, offer codes, or dates.
- For order-specific data, store it as a custom field (e.g.,
contact.custom_field.last_order_id) so broadcasts can reference it per contact. - Templates without variables skip the mapping step entirely.
Next Steps
Common Blockers & Fixes
- Next button disabled: map every variable or remove unused variables from the template before sending.
- Contact field missing: update the contact schema in Settings → Custom Fields, or choose a static value as fallback.
- CSV variables not filling: add numbered columns
1,2,3to the CSV, matching the variable positions in the template. - Custom field not resolving: check the field slug exactly matches the path used (e.g.,
contact.custom_field.order_idvscontact.custom_field.orderid).
Related product
SIA turns WhatsApp into your highest-converting channel
Design, personalize, and schedule large-scale WhatsApp outreach with SIA guarding compliance, cadence, and engagement across every journey.
View product →