Learning Objective
By the end of this tutorial, you’ll know how to push leads from Tamtam into Lemlist, map Tamtam intelligence into Lemlist custom variables, and automatically enroll each lead into the right campaign so they immediately enter your sequence.
Why This Matters
This workflow connects Tamtam Intelligence (who to contact, why now, and what to say) with lemlist Execution (when and how to reach them at scale). When set up correctly, you can run always-on, signal-based outreach where every lead is enriched, personalized, and routed into the right multichannel campaign automatically.
Prerequisites
You have Lemlist API access (requires Lemlist Pro or higher).
You already have at least one Lemlist campaign built (with steps, schedule, and templates ready to send).
You have a Tamtam workflow that can send leads to Lemlist (including any signal context and icebreakers you want to use).
Video walkthrough
Watch Tamtam’s step-by-step video on using the integration:
Core Lesson — Step-by-Step Workflow
Phase 1: Decide how leads should be routed in Lemlist
Choose your campaign routing strategy (recommended: by signal type).
Routing by signal type keeps messaging aligned with the “why now” so your personalization feels relevant and timely.Common setup examples:
Campaign: Hiring Signals – leads triggered by job postings
Campaign: Funding Signals – leads triggered by funding announcements
Campaign: Tech Stack Signals – leads triggered by specific technology usage
Confirm each campaign is “ready to receive” new leads.
Once Tamtam enrolls leads, Lemlist will immediately run them through your campaign’s configured schedule (send windows, delays, steps, and any conditional logic).
Phase 2: Push leads from Tamtam to Lemlist (create/update + enroll)
Send leads to Lemlist using the Create Lead endpoint for a specific campaign.
Tamtam pushes contacts into Lemlist via the Lemlist API endpoint below. The key point is that the{campaignId}determines which sequence the lead enters.POST
/api/campaigns/{campaignId}/leadsUnderstand what Lemlist does automatically on a successful request.
When Tamtam creates a lead in a campaign, Lemlist will:Create a new lead with core fields such as
email,firstName,lastName, andcompanyName(depending on what’s provided).Populate custom variables sent from Tamtam (icebreakers, signal data, and company context), so you can personalize messages using them.
Enroll the lead into the specified campaign, so the lead enters your sequence automatically.
Phase 3: Personalize Lemlist messages using Tamtam custom variables
Use Tamtam enrichment inside Lemlist templates as custom variables.
Tamtam enrichment becomes available in Lemlist templates as custom variables. You can insert them into email or LinkedIn steps to tailor messaging based on signal context and icebreakers.Add the most common variable types (icebreakers + signal context).
Icebreakers
– first AI-generated conversation starter{{customField:icebreaker1}}– second talking point{{customField:icebreaker2}}– third angle{{customField:icebreaker3}}…and so on (typically 3–5 icebreakers depending on your setup)
Signal context
– the business trigger (example: “Posted job opening for Sales Director”){{customField:signalSource}}– when the signal occurred{{customField:signalDate}}– account-level intelligence{{customField:companyContext}}
Use a safe template pattern so missing data doesn’t create awkward blanks.
This is especially important when some leads won’t have every icebreaker or enrichment field.Example Lemlist email template
Hi
,{{firstName}}I noticed
at{{customField:signalSource}}.{{companyName}}{{customField:icebreaker1}}[Your value prop...]
Best practice: Add a safe fallback line in your template for cases where a custom field is empty (for example, if an icebreaker wasn’t available for a specific lead). This helps avoid awkward blank lines in outbound emails.
Phase 4: Import leads without emails (optional) and enrich during import
Use Lemlist enrichment query parameters if you don’t have an email yet.
You can import leads into Lemlist even if you don’t have an email and ask Lemlist to enrich the lead at import time using query parameters—so you don’t need a second API call.Use:
POST /api/campaigns/{campaignId}/leads/?findEmail=trueOptionally stack enrichment options in a single request.
curl --request POST --url 'https://api.lemlist.com/api/campaigns/{campaignId}/leads/?findEmail=true&verifyEmail=true&linkedinEnrichment=true&findPhone=true' --header 'Authorization: Basic <encoded-value>' --header 'Content-Type: application/json' --data '{"firstName": "John","lastName": "Doe","linkedinUrl": "https://linkedin.com/in/johndoe","companyName": "Acme Inc"}'Choose the enrichment parameters you need
Parameter | Description |
| Find a verified email |
| Verify an existing email |
| Enrich from a LinkedIn profile |
| Find a phone number |
Tip: If your workflow starts from LinkedIn URLs (or a Sales Navigator export), enabling linkedinEnrichment=true plus findEmail=true is a simple way to turn “profile-only” leads into contactable leads during import.
Phase 5: Track engagement and iterate
Monitor engagement in Lemlist.
After leads are added to Lemlist, you can track engagement and outcomes, including:Email opens and clicks
Replies (including sentiment classification where available in Lemlist)
Bounces and unsubscribes
LinkedIn actions (if your campaign includes LinkedIn steps)
Expand to multichannel sequences when it fits your motion.
Lemlist campaigns can combine multiple step types, such as:Email steps – use Tamtam icebreakers and signal context for personalization
LinkedIn steps – connection requests or InMail messages
Cold call steps – where phone enrichment supports call attempts
Conditional logic – adapt the sequence based on engagement (reply, click, etc.)
Practical Application / Real-Life Example
Example: Weekly signal-based refresh (common operating rhythm)
PipeGen Auto generates new leads (e.g., every Monday).
Tamtam enriches each lead (icebreakers + signal context) and routes them to the appropriate signal-based Lemlist campaign.
Lemlist enrolls leads automatically and runs the sequence based on your configured schedule and steps.
This approach keeps your campaigns always-on while ensuring every prospect gets context-specific messaging aligned to the trigger.
Troubleshooting & Pitfalls
Issue: Leads are created, but personalization fields are blank
Root cause: Tamtam didn’t send the expected custom field keys, or the template uses a different variable name than what was populated.
Fix:
Confirm the template uses the exact format
.{{customField:yourFieldName}}Confirm Tamtam is sending those same field names in the payload.
Add a fallback line so missing fields don’t create broken formatting.
Issue: Leads aren’t enrolling into the campaign you expected
Root cause: The request is being sent to the wrong
{campaignId}.Fix:
Verify which campaign ID Tamtam is using for each signal type.
Double-check that your routing rules map each signal to the correct campaign.
Issue: API requests fail intermittently or slow down
Root cause: Lemlist API rate limits.
Fix:
Reduce burst volume and send leads in batches.
Ensure your workflow paces requests to stay within Lemlist limits (commonly referenced as ~20 requests/second).
Issue: You imported leads without emails and they still aren’t emailable
Root cause: Enrichment wasn’t enabled (or didn’t return an email for that lead).
Fix:
Use
findEmail=trueand (optionally)verifyEmail=trueduring import.If starting from LinkedIn URLs, consider
linkedinEnrichment=trueas well.
Issue: You need to remove a lead from a campaign
Root cause: The campaign lead creation endpoint supports adding, but does not support removing leads.
Fix: Remove or stop the lead directly in Lemlist (manual action), or adjust upstream routing to prevent re-enrollment.
Requirements & limitations
Lemlist plan: API access requires Lemlist Pro (or higher), per Lemlist’s API documentation.
Rate limits: Lemlist API rate limits apply (commonly referenced as ~20 requests/second). Tamtam manages pacing to stay within limits.
Lead removal: Leads can be added to campaigns, but cannot be removed via this endpoint.
Email validity: If you’re sending emails, each lead ultimately needs a valid email address—use
findEmail=trueand/orverifyEmail=trueto handle this during import.
Summary
This integration creates an end-to-end pipeline:
Tamtam Intelligence → Lemlist Execution → Engagement Data
Tamtam provides enriched context and “what to say,” while Lemlist runs campaign sequencing and tracks engagement at scale.
