How to send a different clickable image to each contact
Short answer: yes. You can import two custom fields for every contact — for example image_url (a picture made for that person) and page_url (their own landing page) — and use them together in one email. The recipient sees the actual picture, not a web address, and clicking the picture opens their own page. Both the picture and the page can be different for every contact.
WarmySender runs your outreach on autopilot with AI agents across Cold Email, Email Warmup, LinkedIn, Instagram and Multichannel sequences — plus real-time email verification. Custom fields can be used in the subject and body of your emails; this guide shows the clickable-picture case.
Step 1: Import the two fields with your contacts
Add two columns to your spreadsheet next to the email address, for example:
| first_name | image_url | page_url | |
|---|---|---|---|
| [email protected] | Ann | https://images.example.com/ann.png | https://example.com/welcome/ann |
| [email protected] | Ben | https://images.example.com/ben.png | https://example.com/welcome/ben |
Open Contacts, import the file, and on the column-matching screen each extra column is offered as Custom: image_url and Custom: page_url. Field names are saved in lowercase with underscores, so a column headed "Image URL" becomes image_url. Use full addresses starting with https://. (More on custom fields: edit a contact's fields, tags and custom fields.)
Step 2: Add the picture to your email, with the link
In your campaign, open the email step and use the Image button in the editor toolbar:
- In Image URL, type {{custom.image_url}}.
- In Link when clicked (optional), type {{custom.page_url}}.
- Add a short Alt text (shown if a mail app blocks images) and, if you like, a Width such as 600.
- Click Insert Image.
Prefer to write the HTML yourself? Open the HTML code view in the toolbar and paste:
<a href="{{custom.page_url}}"><img src="{{custom.image_url}}" alt="Your page" width="600"></a>
Both routes produce exactly the same email. Each contact receives their own picture and their own link when the email is built.
Other spellings of the same field also work — {{custom_image_url}}, {{custom_fields.image_url}}, {{customFields.image_url}} or simply {{image_url}}.
Step 3: Check every contact before you launch
Click the eye button (Show preview) in the editor toolbar and step through your contacts with the arrows: each one shows their picture and link. Check a few, including anyone whose data looks unusual. A contact who has no value for a field gets nothing in its place — so a missing picture address shows as a broken picture.
To cover that case, give the field a fallback that is used only when a contact has no value:
<a href="{{custom.page_url | default: 'https://example.com/offer'}}"><img src="{{custom.image_url | default: 'https://images.example.com/banner.png'}}" alt="Our offer"></a>
Use single quotes inside the quoted address, as shown.
What happens when someone clicks?
The click takes the person to their own page. When click tracking is on for the campaign (it is by default), WarmySender records the click and then sends them on to that page, so you see who clicked in your campaign results. The picture itself is shown straight from the address you gave; it is not changed.
Things worth knowing
- Pictures are added by link, not uploaded. Host each picture somewhere public (your website or an image host) and use its direct https:// address — a share page from a file-sharing service will not display.
- Pictures can affect deliverability. For cold outreach keep each one small and keep the email mostly text. A short line of text above the picture helps, and the alt text should say what it is.
- The picture and the page are yours to host. WarmySender fills in the addresses you imported; it does not create the pictures or the landing pages.
Frequently asked questions
Can I send each contact a different picture that links to a different page?
Yes. Import two custom fields such as image_url and page_url, then add an image whose address is {{custom.image_url}} and whose link is {{custom.page_url}}. Each contact receives their own picture, and clicking it opens their own page.
Will the email show the picture, or just the web address?
It shows the picture. The address you imported is placed inside the image itself, so recipients see the actual image. It appears as text only if you write the field in the body as plain text instead of using it as the image address.
How many custom fields can each contact have?
Two is no problem, and any other column in your spreadsheet can become a custom field too. Each field name is what you type between double curly braces, for example {{custom.page_url}}.
Can I upload the pictures to WarmySender?
No. Pictures are added by link: put each one on your website or an image host and use its direct https:// address in the field.
What if a contact has no picture address?
Add a fallback to the field, for example {{custom.image_url | default: 'https://images.example.com/banner.png'}}. A contact without a value then receives the fallback picture instead of a broken one.
Are clicks on the picture tracked?
Yes, when click tracking is on for the campaign, which is the default. The click is recorded and the person is then taken to their own page.
Related reading
- Edit a contact's fields, tags and custom fields — add or change custom fields on a saved contact
- Import contacts from a spreadsheet — including re-importing to add a new column
- Connect your AI agent — let Claude, ChatGPT, Cursor, Codex, OpenClaw or Hermes Agent work with your campaigns in plain language
- Full documentation — Cold Email, Email Warmup, LinkedIn, Instagram and Multichannel guides
Still have questions? Email [email protected] — we respond within 24 hours on business days.