Skip to main content

Add personalized text to images

How to Add Text to Images in lemlist for Personalized Emails That Convert 🎨

Updated this week

Learning Objective

By the end of this guide, you'll know how to add text elements to custom images in lemlist, personalize text with variables (#{{firstName}}, #{{companyName}}), customize text styling, and save image templates for reuse in campaigns.

Why This Matters

Text on images creates powerful visual personalization. Instead of just inserting #{{firstName}} in email body, you can display it on a custom graphic, screenshot, or branded image. This grabs attention, makes personalization impossible to miss, and shows extra effort. Personalized image text significantly increases engagement because it's visually striking, much more impactful than plain text variables alone.

Prerequisites

Before you start:

  • Campaign created with at least one email step

  • Basic understanding of custom images in lemlist

  • Lead data with variables you want to display (firstName, companyName, etc.)

Step 1: Access Custom Image Editor

Navigate to an email step

  1. Go to Campaigns, then open the campaign you want to edit

Screenshot
  1. Click Sequence

    Screenshot
  1. Select the email step where you want to insert the personalized image, then click Add personalization

Screenshot

Open custom images

  1. In the personalization popup, open Medias, then click Create an image

Screenshot

💡 Starting point: If you have a template with background/logo already set up, select it. Otherwise, create a new image and add your background first.


Step 2: Add Text Element to Image

Insert text and add your message

  1. In the image editor, click Add element

  2. Select Text, then type the text you want to display on the image

Screenshot

Position text

  1. Click and drag the text box to the desired position

  2. Resize the text box by dragging the corners if needed

  3. Place it where the text should appear (headline area, corner, center, etc.)

💡 Layout tip: Common placements: top center for headlines, bottom left for names/companies, or over image focal points.


Step 3: Customize Text Content and Style

Add variables for personalization

Inside your text, you can include:

  • Static text: "Hi" (appears the same for all leads)

  • Variables: #{{firstName}}, #{{companyName}}, #{{customVariable}} (personalizes per lead)

  • Combined: "Hi #{{firstName}}, checking out #{{companyName}}"

Example text combinations:

  • "Hey #{{firstName}}!"

  • "Made for #{{companyName}}"

  • "#{{firstName}}, here's your personalized demo"

  • "Exclusive offer for #{{companyName}}"

💡 Variable names must match: If your lead data has a field called company, use #{{company}}, not #{{companyName}}. Check the exact field names in your CSV.


Style your text

Use the styling panel on the right-hand side to customize appearance (font, size, weight, color, alignment, etc.).

Screenshot

💡 Readability matters: Ensure text contrasts with the background (dark on light, or light on dark) for best visibility.


Add multiple text elements (optional)

To add more text:

  1. Click Add elementText again

  2. Add a second text box

  3. Repeat for each text element needed

Common multi-text layouts:

  • Headline + subheadline

  • Company name + personalized message

  • Call-to-action + detail text


Step 4: Save and Use Your Image

Save as template

  1. Once your design is complete, click Save as template

  2. Name your template descriptively (e.g., "Personalized Welcome Image", "Company Name Banner")

Screenshot

💡 Template library: Saved templates appear in the Custom Images section for quick access in any campaign.


Use an image in the campaign

  1. Click Use this image

  2. The image is inserted into your email step

  3. Verify the image appears correctly in the email editor

Screenshot

Text on Images Best Practices

Keep text minimal - 1-2 short sentences maximum. Too much text on images is hard to read and looks cluttered.

Use high contrast - Dark text on light backgrounds or light text on dark backgrounds. Avoid low-contrast combinations (gray on gray).

Choose readable fonts - Clean, simple fonts (Arial, Helvetica, Roboto) work better than decorative or script fonts for email images.

Size appropriately - Text should be large enough to read on mobile devices. Test at 400-600px width to ensure mobile readability.

Personalize strategically - Use #{{firstName}} or #{{companyName}} where it feels natural, not forced. "Hi #{{firstName}}" works; "#{{firstName}}'s special deal" can feel awkward.

Limit variables per image - 1-3 variables maximum. Too many personalized fields make images look busy and can break layout if data varies in length.

Test with long names - Preview with leads who have long company names or names to verify text doesn't overflow the text box.

Brand consistently - Use your brand colors and fonts across all image templates for a professional, cohesive look.

Add fallback text - If a variable might be empty, consider static text that works without personalization: "Welcome!" instead of "Welcome #{{firstName}}!" if firstName might be missing.


Common Text on Image Use Cases

Personalized welcome images - "Hi #{{firstName}}, welcome!" with branded background

Company-specific visuals - "Made for #{{companyName}}" with their website screenshot

Event invitations - "#{{firstName}}, you're invited to [event]" on event graphic

Product demos - "#{{companyName}}'s personalized demo" with product screenshot

Achievement graphics - "Congrats #{{firstName}} on [milestone]!" with celebratory design

Branded quotes - "#{{firstName}}, here's an insight for you" with quote and branding

Website previews - "Checking out #{{companyName}}" text over screenshot of their website


Troubleshooting

Issue: Variable displays as #{{firstName}} instead of actual name

Root cause: Variable is not written properly

Fix: Verify you wrote the variable properly. If you miss adding at least one { variable won't work.


Issue: Text overflows or gets cut off

Root cause: Text box too small for content, or variable data longer than expected (long company names)

Fix: Resize the text box to accommodate the longest possible text. Reduce font size. Test with leads who have long names/companies. Add line breaks if needed.


Issue: Text is hard to read in the image

Root cause: Poor contrast between text color and background

Fix: Change the text color to a high-contrast option (white text on dark background, or dark text on light background). Add a semi-transparent background box behind text for better readability.


Issue: Text styling doesn't save

Root cause: Changes were made, but the template wasn’t saved, or there was a browser/cache issue

Fix: After styling, click Save as template. Refresh your browser if changes don't persist. Make a small edit (add a space) and resave to force an update.


Issue: Font looks different in the sent email than in the editor

Root cause: Email clients may not support custom fonts and revert to a default

Fix: Use web-safe fonts (Arial, Helvetica, Times New Roman, Georgia) that render consistently across email clients.


Issue: Multiple text elements overlapping

Root cause: Text boxes positioned too close or improperly layered

Fix: Move text boxes to separate positions and increase spacing between elements.


Optimization Tips

Create text template variations - Build 2-3 versions with different text placements (top, center, bottom) to see what drives best engagement.

Match text to campaign goal - Welcome campaigns use friendly greetings. Sales campaigns use benefit-focused text. Adjust tone to campaign purpose.

Use color strategically - Highlight key personalized words (#{{firstName}}, #{{companyName}}) in a brand color while keeping other text neutral.

Test text size on mobile - Send a test email to your phone. Verify text is readable without zooming. Increase font size if needed.

Combine with static images - Add personalized text to product screenshots, website previews, or branded graphics for maximum impact.

A/B test personalization levels - Compare performance of highly personalized text ("Hi #{{firstName}}, made for #{{companyName}}") vs. minimal ("Hi #{{firstName}}") to find the optimal level.

Keep branding consistent - Use the same fonts, colors, and text positioning across templates for a cohesive look.

Did this answer your question?