Custom variables and updating them mid-campaign
Custom variables are lead fields you define yourself: anything beyond the standard first name, last name, company, title and email. Typical examples are a one-line personalised opener, a pain point…
Draft — written from product facts + domain knowledge; UI labels to be verified before publishing.
Custom variables are lead fields you define yourself: anything beyond the standard first name, last name, company, title and email. Typical examples are a one-line personalised opener, a pain point, the prospect's tech stack or a case-study link. Any column you upload with your contacts becomes a variable you can insert with Variables in the editor. This article covers how to create them, how to use them, and how to change their values after a campaign is already running.
Prerequisites
- A CSV where each custom field is its own column with a clear header (for example opener, pain_point, case_study_url).
- Values filled for every row, or a fallback planned for empty cells.
Steps
Create custom variables at upload
- Go to Contacts → Upload Contacts and drag in your CSV.
- Assign the contacts to a list (or create one) and choose how to handle duplicates: skip or merge.
- On the column-mapping screen, map standard columns (email, first name, company). For each extra column, map it to a new custom field with the same name as the header.
- Click Save and Continue.
Use them in a sequence
- Open the campaign, select the step and click Variables.
- Custom fields appear alongside the lead fields. Insert the one you want, for example {{opener}}.
- Click Preview and page through two or three contacts to check the values read well in context.
- Click Save.
Update values mid-campaign
- Fix the values in your CSV (keep the email column unchanged, as that is the match key).
- Go to Contacts → Upload Contacts, upload the corrected file into the same list and choose merge for duplicates. Merged fields overwrite the old values; contacts keep their place in the sequence.
- To change a single contact, open it from the campaign's Contacts tab and edit the field directly.
- Emails already sent are unchanged. Steps not yet sent use the new value at send time.
Tips
- Never leave a custom field blank. Either fill every row or write the copy so the sentence still works when the variable is empty, and use a fallback value.
- Keep custom values short (under 15 words) and lower-case unless they are proper nouns. They are dropped into the middle of your sentences.
- Write personalised openers as a complete clause ("saw you just opened a Berlin office") so the template can be "Hi {{first_name}}, {{opener}} — ...".
- Use one variable for the case study URL rather than pasting links into copy; you can then swap the link for all remaining sends with one merge upload.
- Test with a CSV of three internal addresses before uploading a thousand rows.
Troubleshooting
- The variable is not in the Variables list — the column was not mapped at upload, or was mapped to a standard field. Re-upload with merge and map it as a custom field.
- Raw {{tag}} in a sent email — the contact had no value and no fallback. Add the value and it will render correctly in later steps.
- Merge created duplicates instead of updating — the email column in the new file did not match exactly (extra whitespace, different case). Normalise the emails and re-upload.
Related articles
- Personalisation variables: lead, sender and context fields
- Upload contacts to OutreachFox
- Add leads to an existing campaign
- Spintext: randomise phrases so no two emails are identical
Was this helpful?