skills/sales-listmonk/SKILL.md
Listmonk platform help — open-source self-hosted newsletter and mailing list manager with full REST API, multi-SMTP queues, transactional email, Go templates, and PostgreSQL backend. Use when Listmonk emails aren't sending and SMTP test always shows success, campaigns stop midway due to SES throttling, bounce processing isn't working, you need help setting up Listmonk with AWS SES or another SMTP provider, STARTTLS configuration errors, transactional email API isn't delivering, or you want to automate subscriber management via the API. Do NOT use for general newsletter monetization strategy (use /sales-newsletter) or growing your subscriber list (use /sales-audience-growth).
npx skillsauth add sales-skills/sales sales-listmonkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If references/learnings.md exists, read it first for accumulated platform knowledge.
Ask the user:
What area of Listmonk do you need help with?
What's your hosting setup?
What SMTP provider are you using?
Skip-ahead rule: if the user's prompt already contains enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| Newsletter monetization (paid subscriptions, sponsorships) | /sales-newsletter [question] |
| Growing subscriber list strategy | /sales-audience-growth [question] |
| Email deliverability strategy (SPF/DKIM/DMARC) | /sales-deliverability [question] |
| Transactional email strategy (not Listmonk-specific) | /sales-transactional-email [question] |
| Choosing between Listmonk and managed ESPs | Handle here — use platform-guide.md comparison |
If the question is Listmonk-specific, continue to Step 3.
Read references/platform-guide.md for the full platform reference — capabilities, SMTP setup, data model, API recipes, integration patterns.
Answer the user's question using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation. Listmonk is developer-first — assume comfort with Docker, config files, and APIs.
Decision framework — self-hosted vs managed:
If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research — review these, especially items about SMTP configuration and rate limiting that may vary by provider.
max_msg_retries and sliding window rate limits in Settings > Performance to match your SES quota.{{ .Subscriber.Name }}, not {{subscriber.name}}./sales-newsletter — Newsletter monetization strategy — paid subscriptions, sponsorships, ad sales, premium tiers/sales-audience-growth — Growing your subscriber list — lead magnets, cross-promotion, referral programs/sales-deliverability — Email deliverability — SPF, DKIM, DMARC, inbox placement/sales-transactional-email — Transactional email strategy — provider selection, API, templates/sales-mailgun — Mailgun platform help (common SMTP provider for Listmonk)/sales-postmark — Postmark platform help (common SMTP provider for Listmonk)/sales-sendgrid — SendGrid platform help (common SMTP provider for Listmonk)/sales-ghost — Ghost platform help — alternative self-hosted newsletter with memberships/sales-beehiiv — Beehiiv platform help — managed newsletter alternative/sales-buttondown — Buttondown platform help — managed newsletter with API/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-doUser says: "My Listmonk campaign sent 2,000 of 5,000 emails then stopped — I'm using SES" Skill does: Reads platform-guide.md for SES throttling guidance, explains that new SES accounts have low per-second limits, shows how to configure Listmonk's sliding window rate limiter to match SES quota, recommends requesting SES production access for higher limits Result: Campaign resumes with correct rate limiting, no more throttling drops
User says: "How do I add subscribers to Listmonk from my Next.js app when they sign up?" Skill does: Reads platform-guide.md API recipes, provides working code for POST /api/subscribers with BasicAuth, shows how to assign to a list and trigger double opt-in, mentions the public subscription endpoint as an alternative Result: Working API integration with code examples in both cURL and Python/JS
User says: "My bounce rate is climbing and I think Listmonk isn't processing bounces from SES" Skill does: Reads platform-guide.md for bounce processing architecture, walks through SES SNS topic → HTTPS subscription → Listmonk bounce endpoint setup, explains bounce action configuration (soft bounce threshold, blocklist on hard bounce) Result: Automated bounce processing configured, sender reputation protected
Symptom: SMTP connection test shows success, but campaigns show 0 sent or error in logs
Cause: SMTP test only checks connectivity (port reachable), not authentication or sending permissions
Solution: Check Listmonk logs (docker logs listmonk) for actual SMTP errors. Verify credentials by sending a test campaign to yourself. Common causes: wrong port (use 587 for STARTTLS, 465 for SSL), incorrect auth method, SES sandbox mode (can only send to verified emails).
Symptom: Campaign finishes with far fewer emails sent than subscribers, logs show "messages exceeded for the window" Cause: Listmonk's default throughput exceeds your SES sending rate limit Solution: In Settings > Performance, set sliding window rate to match your SES quota. For new SES accounts, start with 1 email/second. Request SES production access to increase limits. Monitor SES dashboard for throttling metrics.
Symptom: SMTP configuration fails with STARTTLS error
Cause: SMTP settings mismatch — using wrong TLS mode for the port
Solution: For port 587, set auth_protocol to login and enable STARTTLS. For port 465, use implicit TLS (SSL). In config.toml SMTP section, ensure tls_type matches your port: STARTTLS for 587, TLS for 465, none for 25.
tools
Waitlister platform help — pre-launch waitlist platform with hosted landing pages, points-based viral referrals, built-in email broadcasts, REST API, and five HMAC-signed webhook events. Use when choosing Free (100 subscribers) vs Launch $15/mo (unlimited subs, referrals + broadcasts) vs Growth $49/mo (API, webhooks, Klaviyo/Mailchimp/Kit sync, fraud detection unlock here) vs Business $129/mo, building a webhook handler that verifies X-Webhook-Signature, webhooks auto-disabled after 10 consecutive failures, API signups bypassing referral fraud detection because client_ip/fingerprint weren't forwarded, granting bonus points or pulling top referrers via the API for reward fulfillment, broadcast send caps forcing an ESP handoff, automating without Zapier (Waitlister has none — webhooks/API only), or comparing Waitlister vs LaunchList/KickoffLabs/GetWaitlist/Prefinery. Do NOT use for list-growth strategy (use /sales-audience-growth) or LaunchList help (use /sales-launchlist).
development
LaunchList platform help — viral pre-launch waitlist platform with one-time lifetime pricing, gamified referrals (queue jumping, leaderboard, position inflation), embed widget + custom form POST endpoint, new_user/email_verify webhooks, Zapier, and spam protection. Use when choosing Free (100 submissions) vs Launch $29 (500) vs Grow $79 one-time (10K — webhooks, Zapier, team unlock here), wiring waitlist signups into Mailchimp/Kit/HubSpot or a CRM because LaunchList has no email broadcast system, needing programmatic access when there is no public REST API yet (form POST + webhook workaround), building a webhook handler with referred_by referral attribution, blocking disposable-email or bot signups on a viral waitlist, a custom signup form not submitting or not tracking referrals, or comparing LaunchList vs KickoffLabs/Viral Loops/Prefinery/GetWaitlist on one-time vs subscription pricing. Do NOT use for list-growth strategy (use /sales-audience-growth) or KickoffLabs help (use /sales-kickofflabs).
development
UpViral platform help — viral referral marketing and list-building platform (by Emarky) for viral sweepstakes, giveaway/reward campaigns, pre-launch waiting lists, and milestone referrals, with REST API (`app.upviral.com/api/v1/`, form-encoded `uvapikey` + `uvmethod`), Callback-URL webhooks, IP-based fraud detection, and 30+ ESP/CRM integrations. Use when campaigns aren't tracking referral points, deciding between Starter $79/mo (10K leads, NO API) vs Business $119/mo (API + webhooks) vs Premium $319/mo, the API erroring because you're on Starter where API/webhooks are gated, building a pipeline with `add_contact`/`get_leads`/`get_leads_points`, interpreting same-IP suspicious-referral flags, or picking UpViral over Viral Loops/Vyper/Gleam. Do NOT use for newsletter audience growth (use /sales-audience-growth), KickoffLabs help (use /sales-kickofflabs), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or multi-level Level 1/2/3 tracking (use /sales-referralhero).
tools
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with REST API, webhooks, Zapier, native ESP connectors, multi-level referral tracking (Level 1/2/3), coupon groups, anti-fraud, and a 5,000 calls/hour limit. Use when referrals aren't tracking, deciding between Free (no API) vs PRO $199/mo (API + webhooks) vs PREMIUM $399/mo (ReCaptcha + SMS Verification), auth failing with `no_token` or `Bearer` vs `X-API-Key`, Level 2/3 counts off from calling `level_2_all_referrals` not `level_2_referrals`, bulk 429s from not chunking the 500-transaction `add_bulk_transactions` limit, coupon endpoints 404 without a coupon group, reward fulfillment (`promote` then `unlock_promoted_reward`) failing, or comparing to SparkLoop/ReferralKit/GrowSurf. Do NOT use for newsletter audience growth (use /sales-audience-growth), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or affiliate strategy across tools (use /sales-affiliate-program).