lemlist-sequence-setup
Lemlist Sequence Setup
Lemlist is a cold outbound sequencing tool built for personalized email at scale. Its core strengths: built-in email warmup (Lemwarm), multichannel sequences (email + LinkedIn + phone), native personalization features (custom variables, dynamic images, dynamic landing pages), and strong deliverability controls. It's the go-to tool for teams that prioritize personalization and deliverability over enterprise-grade analytics.
The principle: Lemlist is strongest when you use its personalization and deliverability features. Running Lemlist like a generic email sender wastes its best capabilities. Set up Lemwarm, use custom variables, and configure sending limits properly. That's where the value is.
Lemlist vs Other Sequencing Tools
| Feature | Lemlist | Outreach | Salesloft | Apollo | HubSpot Sequences |
|---|---|---|---|---|---|
| Cold email focus | Primary use case | Primary | Primary | Secondary (data is primary) | Secondary (CRM is primary) |
| Built-in warmup | Yes (Lemwarm) | No | No | Basic | No |
| Multichannel | Email + LinkedIn + phone + API | Email + LinkedIn + phone | Email + LinkedIn + phone | Email + phone | Email + tasks |
| Personalization | Custom variables + dynamic images + liquid syntax | Variables + snippets | Variables + snippets | Variables | Merge tokens |
| Deliverability controls | Sending limits, warmup, bounce detection, custom tracking domain | Sending limits | Sending limits | Sending limits | Basic |
| A/B testing | Yes (up to 4 variants per step) | Yes | Yes | Yes | No |
| Pricing | $39-159/user/mo | $100+/user/mo (annual) | $125+/user/mo (annual) | $49-99/user/mo | $90/user/mo (Sales Hub Pro) |
| Best for | SMB-mid market. Teams 1-20. Personalization-focused | Mid-market to enterprise. Teams 10-100+ | Mid-market to enterprise. Teams 10-100+ | All-in-one (data + sequences) | Teams already on HubSpot |
Setting Up Lemlist
Step 1: Connect your email provider
Lemlist → Settings → Email Providers
→ Connect Gmail (OAuth) or SMTP (for custom domains)
→ Verify connection (send test email)
Email connection options:
| Method | How | Best for |
|---|---|---|
| Gmail OAuth | One-click Google authorization | Gmail/Google Workspace users. Easiest setup |
| Outlook OAuth | One-click Microsoft authorization | Outlook/M365 users |
| Custom SMTP | Manual SMTP settings (host, port, username, password) | Custom email providers, self-hosted mail |
Connection rules:
- Connect a personal email address, not a shared inbox. Cold email should come from a named person
- If using a sending subdomain (jane@mail.company.com), configure SMTP for that specific subdomain
- Verify SPF, DKIM, DMARC before connecting (per domain-setup-spf-dkim-dmarc skill)
Step 2: Configure sending limits
Lemlist → Settings → Email Providers → [Your provider]
→ Sending limits:
- Max emails per day: [set based on warmup status]
- Min delay between emails: 60-180 seconds
- Sending window: Mon-Fri, 8am-6pm
- Timezone: recipient timezone (or your timezone)
Sending limit guidelines:
| Inbox status | Max emails/day | Min delay between | Notes |
|---|---|---|---|
| Brand new (week 1-2) | 10-20 | 120-180 seconds | Warmup phase. Lemwarm handles this automatically |
| Warming (week 2-4) | 20-40 | 90-120 seconds | Gradually increasing |
| Warmed (week 4+) | 40-60 | 60-90 seconds | Full volume. Don't exceed 60/day per inbox |
| Established (3+ months) | 50-80 | 60 seconds | Proven inbox. Can push slightly higher |
Step 3: Enable Lemwarm
Lemlist → Lemwarm (left sidebar)
→ Enable for each connected email
→ Set warmup intensity: "Smart" (recommended)
→ Lemwarm starts sending warmup emails automatically
Lemwarm rules:
- Enable Lemwarm on Day 1 of account setup. Don't wait until deliverability problems appear
- Keep Lemwarm running permanently, even after warmup is complete. Maintenance-level warmup (5-10/day) maintains deliverability
- "Smart" intensity mode adjusts warmup volume based on your sending reputation. Use it instead of manual settings
- Lemwarm is included in all Lemlist paid plans. No additional cost
Step 4: Set up custom tracking domain
Lemlist → Settings → Custom tracking domain
→ Add a CNAME record: track.yourdomain.com → [Lemlist tracking URL]
→ Verify in Lemlist
Custom tracking domain rules:
- A custom tracking domain improves deliverability. Lemlist's default tracking domain is shared across all users. Custom domains are unique to you
- Use a subdomain of your sending domain: track.mail.company.com if sending from mail.company.com
- Without a custom tracking domain, tracked links use Lemlist's shared domain, which may trigger spam filters if other users have sent spam through it
Creating a Campaign
Lemlist campaign structure
Campaign
├── Settings (sending email, schedule, limits)
├── Leads (imported contacts with variables)
├── Steps (the sequence of emails, LinkedIn actions, tasks)
└── Analytics (per-step performance)
Step 1: Create the campaign
Lemlist → Campaigns → Create Campaign
→ Name: "[Persona] - [Angle] - [Date]"
Example: "VP Sales - Funding Signal - May 2026"
→ Select sending email
→ Configure schedule (Mon-Fri, 8am-6pm)
Step 2: Import leads
| Import method | How | Best for |
|---|---|---|
| CSV upload | Upload CSV with email, name, company, custom variables | Bulk import from external list |
| Lemlist finder | Search and find leads within Lemlist | Quick prospecting without external tools |
| CRM sync | Sync from HubSpot or Salesforce | Contacts already in CRM |
| API | Push contacts via Lemlist API | Automated workflows |
CSV import columns:
| Column | Required | Example |
|---|---|---|
| Yes | jane@acme.com | |
| firstName | Yes | Jane |
| lastName | Yes | Kim |
| companyName | Yes | Acme Corp |
| Custom variable 1 | No | {{signal}} = "the Series B" |
| Custom variable 2 | No | {{personalizationLine}} = "Your attribution post was spot-on" |
| Custom variable 3 | No | {{proofPoint}} = "Ramp cut ramp time by 50%" |
Import rules:
- Verify emails before importing. Lemlist has built-in email verification, but pre-verifying with NeverBounce/ZeroBounce catches more invalids
- Include custom variables in the CSV. Lemlist's power is in variables. Pre-populate personalization fields in the CSV so they render automatically in the email
- Deduplicate against previous campaigns. Lemlist prevents enrolling the same email in two active campaigns, but check manually for contacts from completed campaigns
Step 3: Build the sequence steps
A 3-step cold email sequence:
Step 1: Email (Day 1)
Subject: {{signal}}
Body:
{{firstName}}, {{personalizationLine}}
{{templateBody}}
Worth a 15-minute look?
{{senderFirstName}}
Delay: 3 business days
↓
Step 2: Email (Day 4)
Subject: {{proofTopic}}
Body:
{{firstName}}, {{proofPoint}}
{{proofBody}}
Happy to share how they did it.
{{senderFirstName}}
Delay: 5 business days
↓
Step 3: Email (Day 9)
Subject: closing the loop
Body:
{{firstName}}, sounds like timing's off.
Should I close the loop?
{{senderFirstName}}
Step types in Lemlist
| Step type | What it does | When to use |
|---|---|---|
| Automated email from your connected inbox | Core outbound step | |
| LinkedIn visit | Auto-visits the lead's LinkedIn profile | Day 1-2. Builds familiarity before email |
| LinkedIn connect | Sends a LinkedIn connection request | Day 2-5. Parallel warm-up alongside email |
| LinkedIn message | Sends a LinkedIn DM (requires connection) | After connection accepted. Value share or bridge |
| Manual task | Creates a reminder for the rep (call, custom action) | Phone calls, manual LinkedIn actions |
| API step | Triggers an external webhook or API call | CRM updates, Slack notifications, custom automation |
Multichannel sequence example (email + LinkedIn):
Step 1: LinkedIn Visit (Day 1) — auto, 0 effort
Step 2: Email 1 (Day 2) — signal + ask
Step 3: LinkedIn Connect (Day 3) — personalized note
Step 4: Email 2 (Day 6) — proof angle
Step 5: LinkedIn Message (Day 8) — if connected, share resource
Step 6: Email 3 (Day 11) — breakup
Lemlist Variables and Personalization
Built-in variables
| Variable | What it inserts |
|---|---|
{{firstName}} |
Lead's first name |
{{lastName}} |
Lead's last name |
{{email}} |
Lead's email |
{{companyName}} |
Lead's company |
{{phone}} |
Lead's phone |
{{senderFirstName}} |
Your first name |
{{senderLastName}} |
Your last name |
Custom variables
Add any custom variable by including the column in your CSV import.
| Custom variable | CSV column | Use in template | Example value |
|---|---|---|---|
{{signal}} |
signal | Subject line or opener | "the series b" |
{{personalizationLine}} |
personalizationLine | First line of email | "Your attribution post was spot-on" |
{{proofPoint}} |
proofPoint | Email 2 proof reference | "Ramp cut ramp time from 90 to 45 days" |
{{companySize}} |
companySize | Context reference | "180 employees" |
{{fundingStage}} |
fundingStage | Signal reference | "Series B" |
Conditional logic (Liquid syntax)
Lemlist supports Liquid syntax for conditional content:
{% if companySize > 200 %}
At your scale, most teams run into [enterprise problem].
{% else %}
At your stage, the biggest challenge is usually [startup problem].
{% endif %}
Personalization rules:
- Set fallback values for every variable.
{{firstName | default: "there"}}prevents "Hi ," if the name is blank - Test variables with 3-5 leads before launching. Click "Preview" in Lemlist to see how each email renders for specific leads
- Keep custom variables to 3-5 per campaign. More than 5 creates data management complexity and increases the chance of blank fields
- The
{{personalizationLine}}variable is the key Tier 2 personalization technique. Pre-populate it per lead (manually or via AI) for per-contact openers at scale
A/B Testing in Lemlist
Lemlist supports up to 4 email variants per step.
Setting up an A/B test
Step 1: Email
→ Variant A: Subject "{{signal}}" / Body: signal angle
→ Variant B: Subject "{{proofTopic}}" / Body: question angle
→ Split: 50/50
→ Measure: reply rate (primary), open rate (secondary)
What to test
| Test | Variable | What you learn |
|---|---|---|
| Subject line test | Same body, different subjects | Which subject line pattern gets more opens |
| Opener test | Same subject, different first line | Which opener pattern gets more replies |
| CTA test | Same everything, different ask | Which ask converts better |
| Length test | Same angle, different word counts (60 vs 90 words) | Whether shorter or longer performs better for this ICP |
A/B testing rules
- Test one variable at a time. Different subject AND different body = you can't tell which change drove the result
- Minimum 100 leads per variant. Below 100, the results aren't statistically meaningful. One extra reply swings the rate by 1%+
- Run for the full campaign duration. Don't declare a winner after 2 days. Wait until all leads have received the email and had time to reply (7-10 days)
- Use reply rate as the primary metric, not open rate. Open rate is inflated by Apple privacy. Reply rate tells you what actually resonated
Deliverability Settings
Lemlist deliverability features
| Feature | What it does | How to configure |
|---|---|---|
| Lemwarm | Automated warmup network | Enable in Lemwarm tab. Set to "Smart" |
| Custom tracking domain | Replaces shared tracking with your domain | Settings → Custom tracking domain |
| Sending limits | Controls daily volume per inbox | Settings → Email Providers → Limits |
| Delay between emails | Prevents burst sending | Set 60-180 seconds between sends |
| Bounce detection | Auto-pauses campaign if bounce rate spikes | Automatic. Check campaign health dashboard |
| Unsubscribe link | Adds opt-out link to emails | Settings → Unsubscribe. Configure placement |
| Email quality score | Pre-send check on email content | Shows in email editor. Score before sending |
Deliverability rules
- Run Lemwarm before and during campaigns. Not just during the warmup phase. Permanent Lemwarm keeps deliverability healthy alongside cold volume
- Set custom tracking domain. Shared tracking domains are the #1 deliverability risk in any sequencing tool. Custom domain is 10 minutes of DNS setup for permanent improvement
- Don't disable the delay between emails. Sending 50 emails in 2 minutes looks like a bot. 50 emails spread over 50-90 minutes looks like a human. Keep the delay at 60+ seconds
- Include an unsubscribe link. Required by CAN-SPAM and GDPR. Lemlist can add it as a small text link at the bottom. It slightly reduces deliverability risk by making opt-out easy
CRM Integration
HubSpot integration
Lemlist → Settings → Integrations → HubSpot
→ Connect HubSpot account
→ Configure sync:
- Sync new leads to HubSpot as contacts
- Sync email activities (sent, opened, clicked, replied)
- Sync lead status changes
Salesforce integration
Lemlist → Settings → Integrations → Salesforce
→ Connect Salesforce account
→ Map Lemlist fields to Salesforce fields
→ Configure activity logging
Integration rules
- Sync activities to CRM. Every email sent, opened, clicked, and replied to should appear on the contact's CRM timeline. Without this, CRM records are incomplete
- Map Lemlist "Interested" status to CRM lead status. When a lead replies positively and you mark them "Interested" in Lemlist, this should update HubSpot/Salesforce lead status
- Don't create duplicate contacts. Configure the integration to match on email. If the contact already exists in CRM, update the record. Don't create a new one
- Tag the campaign in CRM. Set a "Campaign" or "Sequence" property on synced contacts so you can attribute pipeline to specific Lemlist campaigns
Campaign Management
Pre-launch checklist
- [ ] Email provider connected and authorized
- [ ] Lemwarm enabled and running (at least 2 weeks before first cold send)
- [ ] Custom tracking domain configured
- [ ] Sending limits set (matching warmup status)
- [ ] Sending window: Mon-Fri, 8am-6pm
- [ ] Delay between emails: 60-180 seconds
- [ ] Campaign named descriptively: "[Persona] - [Angle] - [Date]"
- [ ] Leads imported with custom variables populated
- [ ] Leads email-verified before import
- [ ] Customer and competitor emails excluded
- [ ] Email templates follow cold-outbound-email-writing rules
- [ ] Variables tested with preview on 3-5 leads
- [ ] Fallback values set for all variables
- [ ] Unsubscribe link configured
- [ ] CRM integration active and sync tested
- [ ] A/B test set up (if testing)
- [ ] Campaign set to "Paused" for final review before launching
Ongoing management
| Activity | Frequency | What to check |
|---|---|---|
| Check campaign dashboard | Daily (first week), then 2-3x/week | Reply rate, bounce rate, open rate per step |
| Handle replies | Within 2 hours of reply | Positive: follow up. Negative: mark not interested. OOO: note return date |
| Monitor Lemwarm | Weekly | Inbox placement score should be > 90% |
| Check bounce rate | Per campaign | Must stay < 3%. If higher, pause and investigate |
| Review A/B test results | After 100+ sends per variant | Declare winner. Pause losing variant |
| Refresh leads | When campaign runs out of leads | Import next batch. Verify emails. Populate variables |
Measurement
| Metric | Where to find | Target |
|---|---|---|
| Open rate | Campaign → Analytics → per step | > 40% (directional, inflated by Apple) |
| Reply rate (per step) | Campaign → Analytics → per step | Step 1: > 4%. Step 2: > 5%. Step 3: > 3% |
| Reply rate (campaign total) | Campaign → Analytics → overview | > 8% |
| Bounce rate | Campaign → Analytics → overview | < 3% |
| Interested rate | Campaign → Leads → filter by "Interested" status | > 4% of total leads |
| Unsubscribe rate | Campaign → Analytics | < 0.3% |
| A/B test winner | Campaign → A/B test results | The variant with higher reply rate after 100+ sends |
| Lemwarm inbox placement | Lemwarm dashboard | > 90% |
Anti-Pattern Check
- Lemwarm disabled. Lemlist's biggest advantage is built-in warmup. Disabling it and sending cold email from an unwarmed inbox guarantees spam folder placement. Enable Lemwarm on Day 1. Keep it running permanently
- No custom tracking domain. Shared tracking domains are a deliverability risk. 10 minutes of DNS setup permanently improves inbox placement. Do it before sending the first campaign
- Variables with no fallback values.
{{firstName}}is blank for 5% of leads. The email reads "Hi , I saw..." Set fallbacks:{{firstName | default: "there"}} - Launching without previewing. Lemlist's preview feature shows how each email renders for specific leads. Not using it = discovering broken variables on 200 live emails
- 200 leads imported on Day 1 with no warmup. A brand-new inbox sending 200 emails on Day 1 goes straight to spam. Warmup for 2-4 weeks first. Then import and send at warmed limits
- Same subject line for all 3 steps. Each step should have a different subject line reflecting a different angle. Same subject = same email in the prospect's mind. See cold-email-subject-lines skill
- Not marking leads as "Interested" or "Not Interested." Lemlist's lead status tracking only works if reps update it. "Interested" leads should be synced to CRM. "Not Interested" should be excluded from future campaigns. Update after every reply
- Running 10 campaigns simultaneously from one inbox. Each campaign adds to the daily send volume. 10 campaigns x 20 leads each = 200 emails/day from one inbox. This exceeds safe sending limits. Cap total volume across all campaigns at 50-60/day per inbox