Skip to main content

Use variables to send custom images

Using Variable Images for Ultimate Personalization in Lemlist πŸš€

Updated yesterday

Learning Objective

By the end of this guide, you'll know how to add personalized images to your emails using variables, set up your CSV with image URLs, insert an image variable in your sequence, and preview to confirm the right image shows for each lead.

Why This Matters

Custom images drive engagement. A generic email with stock photos feels impersonal. An email showing the prospect's company logo, a screenshot of their website, or a personalized visual grabs attention and boosts reply rates.

Image variables let you:

  • Personalize at scale – Send unique images to thousands of leads automatically

  • Increase relevance – Show prospects you've done your research

  • Stand out in the inbox – Visual personalization is memorable

Prerequisites

Before using image variables:

  • You have images hosted online with public URLs ending in .jpeg or .png

  • Your CSV includes an image URL column – Each lead has their corresponding image URL

  • You're editing an email step in your campaign sequence

Core Lesson β€” Step-by-Step Workflow

Step 1: Prepare your images

Choose the images you want each lead to receive.

Examples:

  • Company logos

  • Website screenshots

  • Profile pictures

  • Custom graphics with personalized text

Step 2: Host your images online

Images must be hosted online and accessible via public URLs.

Image URL requirements:

  • URLs must end with .jpeg or .png

  • Images must be publicly accessible (not behind a login)

  • Recommended size: Keep images under 1200px in height or width for best performance

Where to host images:

Use a free image hosting service like IMGBB to create public links for each image.

Steps:

  1. Upload your image to IMGBB

  2. Copy the direct link (ending in .png or .jpeg)

  3. Ensure the image is set to public (anyone with the URL can access it)

Step 3: Add image URLs to your CSV

Create a dedicated column in your CSV for image URLs.

Example CSV structure:

Column header = variable name:

  • If your column is named customImage, your variable will be #{{customImage}}

  • If your column is named logoURL, your variable will be #{{logoURL}}

Step 4: Open your campaign

Go to Campaigns, then open the campaign where you want to add a personalized image.

Screenshot

Step 5: Add (or create) a custom image in the email step

In the email step editor, click Add personalization, then open the Medias tab.

Screenshot

Click Create an image.

Screenshot

Choose a template (or start from scratch) and click Create new custom image.

Screenshot

In the editor, click Add element.

Screenshot

Select Image variable.

Screenshot

In Choose your custom variable, click the field and search/select the variable that matches your CSV column header (for example, customImage).

Screenshot

When you’re done, optionally click Save as template, then click Use this image.

Screenshot

Step 6: Preview and verify

Back in the email editor, click Preview.

Screenshot

Confirm the image renders correctly in the email preview.

Screenshot

How It Works

When your campaign sends:

  1. lemlist reads the lead's email address

  2. Looks up the corresponding image URL from your CSV custom variable (for example, #{{customImage}})

  3. Fetches the image from that URL

  4. Inserts the image into the email automatically

Result: Each prospect receives an email with their unique, personalized image.

Example Use Cases

Company logos: Add each prospect's company logo to your email. Shows you've done research and creates instant relevance.

Variable in email:#{{companyLogo}}

Website screenshots: Include a screenshot of the prospect's website with a personalized message overlay.

Variable in email:#{{websiteScreenshot}}

Profile pictures: Send emails with the prospect's LinkedIn profile picture for ultra-personalization.

Variable in email:#{{profilePicture}}

Troubleshooting

Issue: Image doesn't display in sent email

Root cause: Image URL is broken, not public, or doesn't end in .jpeg or .png

Fix:

  • Verify the URL works by pasting it into a browser

  • Ensure the URL ends with .jpeg or .png (not just /image or /photo)

  • Check that the image is set to public on your hosting service

  • Re-upload to a reliable host like IMGBB if needed

Issue: Wrong image appears for some leads

Root cause: CSV data doesn't match. URLs may be swapped or incorrect

Fix:

  • Review your CSV to confirm each lead has the correct image URL

  • Re-import the corrected CSV

  • Preview the sequence again to verify fixes

Issue: Images are too large and break the email layout

Root cause: Images exceed recommended size (1200px)

Fix:

  • Resize images to under 1200px in width or height before uploading

  • Use an image editor or online tool to compress and resize

  • Re-upload resized images and update CSV URLs

Optimization Tips

Use high-quality hosts: Free services like IMGBB work well, but for high-volume campaigns, consider a dedicated CDN or your own hosting to ensure reliability.

Test image URLs before importing: Paste each URL into a browser to verify it displays correctly before adding to your CSV.

Keep images web-optimized: Compress images to reduce file size without losing quality. Faster load times improve deliverability and user experience.

Use descriptive column names: Name your CSV column clearly (e.g., companyLogo, websiteScreenshot) so the variable name is self-explanatory.

Preview before launching: Always preview your sequence with real lead data to catch image issues before sending to hundreds of prospects.

Combine with other variables: Use image variables alongside text variables (e.g., #{{firstName}}, #{{companyName}}) for maximum personalization impact.

Consider fallback images: If some leads don't have image URLs, use a generic fallback image or skip the image for those leads to avoid broken images.

Did this answer your question?