Custom variables from import columns
Any CSV column that is not a standard field becomes a {{variable}} you can drop into subjects and bodies, and it is editable per lead on the lead card.
Where: Leads → Import CSV → Map columns → "Custom variable {{ }}" · Lead card → All fields → Custom fields · Leads → Columns → Imported columns
How to do it
- Import a CSV. Any column the dialog does not recognise is badged Custom field and its variable name is shown in the Preview column, e.g. {{pain_point}} for a "Pain Point" header. You can also force any column to Custom variable {{ }} from the dropdown.
- In the campaign editor, type the variable exactly as shown into a subject or body, e.g. "I saw your work on {{recent_project}}". Add a fallback with a pipe when a lead might be missing it: {{recent_project|your site}}.
- To see or change a lead's values, open the lead card, go to the All fields tab, and click Edit details. Custom fields are listed with their {{key}} chip; long values get a multi-line box.
- Drag a custom field up or down on the All fields tab to change the order it appears in — the order is saved for your whole workspace.
- To show a custom column in the Leads table, click Columns and tick it under Imported columns.
Good to know
- The variable name is the header lowercased with spaces turned into underscores. Keep headers to letters, numbers, spaces and underscores — other punctuation cannot be referenced with {{ }}.
- Two headers that produce the same name (e.g. "Notes" and "notes") both import; the second becomes {{notes_2}}.
- Empty cells are not stored, so that lead simply has no value for the variable.
- Built-in variables always available: {{first_name}}, {{last_name}}, {{company}}, {{title}}, {{city}}, {{country}}, {{industry}}, {{employee_count}}, {{website}}, {{phone}}, {{email}}.
- A custom variable that is empty for a lead simply renders as blank text — the step still sends. Only the built-in name and company fields protect you: if {{first_name}}, {{last_name}}, {{company}}, {{title}}, {{city}} or {{email}} is empty for a lead and there is no fallback, that step is skipped for that lead (the lead's activity reads "Skipped step N — missing <variable>" and the campaign's skipped count goes up). Add a fallback, e.g. {{recent_project|your site}}, to any custom variable a lead might be missing so nothing goes out with a hole in it.
- Editing a custom field to an empty value removes it from that lead. Edits save automatically three seconds after you stop typing.
- Re-importing a CSV with merge on adds new variables and overwrites existing ones with the same name; variables not in the file are left alone.