Advanced Custom Fields Guide
Custom fields let you store additional prospect data beyond the built-in fields and use them for personalization.
How Custom Fields Work:
When you import a CSV with columns that do not match built-in field names (email, firstName, lastName, company, role, phone, linkedinUrl, website, country, city, industry), they are stored as custom fields.
Creating Custom Fields:
1) Add extra columns to your CSV with a 'custom:' prefix header:
custom:department, custom:pain_point, custom:referral_source, custom:product_interest
2) During import, these columns are automatically detected and stored.
3) Field names are sanitized: lowercased, non-alphanumeric characters replaced with underscores, max 30 characters.
Using Custom Fields in Emails:
- Reference them with the custom prefix: {{custom.department}}, {{custom.pain_point}}, {{custom.referral_source}}
- The bare shorthand also works: {{department}}, {{pain_point}} (as long as it doesn't conflict with a built-in field name)
- Use with fallback values, written either way (both do the same thing): {{custom.pain_point | default: 'scaling your outreach'}} or the shorthand {{custom.pain_point || 'scaling your outreach'}}. The fallback fills in only when that field is blank for a prospect — ideal for a column that's only partly filled. Quotes are optional in the shorthand: {{custom.state || Brazil}} works too.
- Combine with built-in tags: 'Hi {{firstName}}, as head of {{custom.department}} at {{company}}...'
Adding or Updating Custom Fields Later (Re-Upload to Fill in the Blanks):
You can enrich existing contacts anytime by uploading again — you don't have to get every column right on the first import.
• Upload a file with the same people (matched by email address) plus new or updated custom columns, and those fields are ADDED to the contacts you already have. Nothing you had before is lost.
• A blank cell never erases an existing value. If your new file leaves a column empty for someone who already has a value there, their existing value is kept. Only real, filled-in values are written.
• The contacts in that upload are also added to whichever list you're importing into — even the ones that were already in your account — so your target list ends up complete.
• This is the fix for the common case of "I imported a personalized column later and it didn't show up." Just upload the list one more time with the column filled in, and it fills in on the existing contacts.
Popular Custom Field Ideas:
- Pain point — Pre-research their specific challenge.
- Mutual connection — 'We both know {{mutual_connection}}'.
- Recent event — 'Congrats on {{recent_event}}'.
- Competitor — 'I noticed {{company}} uses {{competitor}}'.
- Personalized line — A fully custom opening sentence per prospect.
- Product interest — Track which product/feature they care about.
- Source — Where the lead came from (event, referral, LinkedIn, etc.).
Segmentation with Custom Fields:
- Use custom fields to create targeted segments.
- Import different CSVs with different custom:segment values.
- Create separate campaigns per segment with messaging tailored to each.
Limitations:
- Field names: max 30 characters, alphanumeric + underscores only.
- Values: text only (no dates, numbers, or booleans as structured types).
- Custom fields are stored per prospect and visible in the prospect detail view.
Best Practices:
- Pre-research 10-20 prospects and add a custom 'personalized_line' field for maximum impact.
- Use consistent naming across imports (custom:source, not source/lead_source/origin).
- Keep custom field names short — they become merge tag names.
- Test your merge tags render correctly with the Preview/Test feature before launching.