AI with Michal
Lemlist Bundle

Skill bundle

Lemlist Bundle

Bundled skills and integration code for third-party APIs — download a ZIP after checkout, add your keys, and run the workflows in your own stack. Delivery is usually within minutes.

Lemlist Bundle

Outreach activation without living in the Lemlist UI. Lemlist is where sourced lists become campaigns, personalization, follow-ups, webhooks, and reply analytics. This bundle wraps the documented REST API so Claude can import and clean, draft personalization, audit and pause campaigns, monitor replies, sync unsubscribes, and export—with credit awareness and human review paths before anything sends.

Why this matters

Teams lose velocity when every list cleanup, webhook check, and performance review requires clicking through the same screens. Running Lemlist through versioned skills means your assistant can chain import → personalize → track performance in one session, while you keep Lemlist as the sending authority.

How you benefit

  • Cleaner lists before send — Import skills dedupe and validate; unsubscribe sync reduces compliance risk.
  • Personalization at scale — Claude drafts icebreakers and variants you review; optional PATCH applies when you are ready.
  • Operational visibility — Activities, inbox threads, and performance skills produce multi-tab Excel stakeholders can read without Lemlist seats.

Example prompts

When Claude has access to Lemlist through this bundle’s API integration (with your keys and project configured), you can ask in plain language—for example:

  • Import this lead file into campaign cam_abc with dedupe on email, show credit estimates, and wait for my confirm.
  • Draft icebreakers for every row in this export using our tone guide, then produce an Excel for human review only.
  • Pull last month’s activities and inbox threads for campaign X and classify replies into interested / neutral / OOO.
  • Export leads and performance to xlsx with a Summary tab the sales lead can skim in two minutes.

Full power (easy to miss)

  • Basic Auth quirk — Lemlist uses HTTP Basic with an empty username and the API key as password (: + key before Base64). Wrong auth is the #1 401 cause; details below.
  • Pair with Apollo, Hunter, or ContactOut for sourcing; use Lemlist skills when you are ready to activate and measure outreach.

Digital download: unzip into your project. Skills live under sourcing/lemlist/<skill>/.

What Lemlist does in this repo

Lemlist is the activation and outreach layer: turn sourced lists into campaigns, personalization, follow-ups, webhooks, reply tracking, and performance reporting. This bundle wraps the documented Lemlist REST API (https://api.lemlist.com/api) for Claude Code workflows.

What this bundle can do

  • Import and clean lead files (CSV/Excel) with deduplication and validation
  • Create leads with optional enrichment flags (linkedinEnrichment, findEmail, verifyEmail, findPhone) — credits apply
  • Pause/resume campaigns and leads where the public API exposes those operations
  • List activities, inbox threads, unsubscribes, webhooks, and export campaign data
  • Claude-assisted personalization, reply triage, campaign audits, and performance narratives
  • Multi-tab Excel outputs with a Summary tab (via shared write_multi_sheet)

What this bundle cannot do

  • Scrape or automate the Lemlist browser UI
  • Call undocumented private endpoints
  • Guarantee exact credit costs per enrichment (Lemlist bills credits; verify in-product)
  • Archive campaigns via API (no stable archive route in the public OpenAPI v2 snapshot used here — use the UI)
  • Send outbound email/LinkedIn on your behalf except where you explicitly use documented send APIs (this bundle does not add send shortcuts)

API key setup (read carefully)

  1. Open Lemlist → SettingsIntegrationsGenerate API key
  2. Add to the project root .env:
LEMLIST_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here

Basic Auth (not Bearer)

Lemlist uses HTTP Basic authentication:

  • Username: empty
  • Password: your API key
  • The credential string before Base64 is : + API key (leading colon required)

Do not use Authorization: Bearer ... for Lemlist.

Environment variables

Variable Required Purpose
LEMLIST_API_KEY Yes API key (Basic auth password)
ANTHROPIC_API_KEY Yes (Claude skills) Claude API
LEMLIST_DEFAULT_CAMPAIGN_ID No Default --campaign-id
LEMLIST_DEFAULT_WEBHOOK_SECRET No Default webhook shared secret
LEMLIST_DEFAULT_TIMEZONE No Default lead timezone (e.g. Europe/Bratislava)

Skills

  1. import-leads — CSV/Excel → campaign leads, dedupe, optional enrichment flags, results workbook
  2. clean-lead-list — Normalize, dedupe, optional unsubscribe cross-check, Claude quality report
  3. personalize-campaign — Claude icebreakers + Excel; optional PATCH icebreaker to Lemlist
  4. manage-campaigns — List/get/audit/pause/resume/create (archive → see limitations)
  5. enrich-leads — Credit-gated enrichment with --confirm / --dry-run
  6. monitor-replies — Activities + optional inbox fetch + Claude classification workbook
  7. track-campaign-performance — Stats + activities + Claude recommendations
  8. setup-webhooks — List/create/delete/test webhook verification helpers
  9. sync-unsubscribes — Export/import/check/sync unsubscribe variables
  10. export-campaign-data — Leads/activities/performance to xlsx or ATS CSV mappers

Example workflows

Import + personalize

python3 sourcing/lemlist/import-leads/main.py --input leads.xlsx --campaign-id cam_xxx --confirm
python3 sourcing/lemlist/personalize-campaign/main.py --campaign-id cam_xxx --brief brief.txt --confirm

Performance + export

python3 sourcing/lemlist/track-campaign-performance/main.py --campaign-id cam_xxx --confirm
python3 sourcing/lemlist/export-campaign-data/main.py --campaign-id cam_xxx --type all --format xlsx

Credit and enrichment warnings

Enrichment and verification consume Lemlist credits. This bundle prints estimates and refuses bulk runs without --confirm or --dry-run where appropriate. Always confirm balances in Lemlist → Credits.

Compliance and unsubscribes

  • Run sync-unsubscribes / clean-lead-list before large imports to avoid mailing suppressed contacts.
  • Never remove unsubscribes by default in this bundle’s sync helpers — additions are explicit.
  • Reply classification is advisory; do not auto-send replies from these scripts.

Troubleshooting

Symptom Likely cause
HTTP 401 Wrong key or Bearer used instead of Basic (:KEY pattern)
HTTP 429 Rate limit — client backs off; reduce parallelism
Empty inbox fetch /inbox requires a userId — bundle picks first team user from GET /team
Stats error “startDate and endDate required” Pass --since / --until on stats-heavy skills
Archive action fails Expected — use Lemlist UI until API documents archive

Support

Technical reference: CLAUDE.md and per-skill README files in the bundle. Release history at the bottom of this page mirrors CHANGELOG.md so you can read version notes before purchase.

Release history

Below is the same content as CHANGELOG.md in this bundle, so you can see version history before purchase. After download, both files ship together in the ZIP.

Changelog

1.0.1 — 2026-04-30

  • Add bundle-root .env.example documenting environment variables for this integration (copy to .env). No skill behavior changes.

1.0.0 — 2026-04-30

  • Initial Lemlist bundle: API client, ten skills, documentation, and tests (mocked HTTP only).