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
Go to Campaigns, then open the campaign you want to edit
Select the email step where you want to insert the personalized image, then click Add personalization
Open custom images
In the personalization popup, open Medias, then click Create an image
💡 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
In the image editor, click Add element
Select Text, then type the text you want to display on the image
Position text
Click and drag the text box to the desired position
Resize the text box by dragging the corners if needed
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.).
💡 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:
Click Add element → Text again
Add a second text box
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
Once your design is complete, click Save as template
Name your template descriptively (e.g., "Personalized Welcome Image", "Company Name Banner")
💡 Template library: Saved templates appear in the Custom Images section for quick access in any campaign.
Use an image in the campaign
Click Use this image
The image is inserted into your email step
Verify the image appears correctly in the email editor
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.









