Install
$ agentstack add skill-mattsezgin-unofficial-smartlead-cli-launch-campaign ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
> Before running: verify exact flag names with smartlead --help. Flag shapes shown below are illustrative — confirm against the actual CLI.
/launch-campaign
You're doing pre-flight checks on a campaign that's been built, then starting it.
What you need from the user
- Campaign ID to launch
- (Optional) Permission to auto-fix obvious issues vs. just report them
Pre-flight checklist
Run these in order. If any check fails, surface it and ASK before proceeding.
Check 1 — Campaign exists and is in DRAFTING / PAUSED status
smartlead campaigns get --output json | jq '{id, name, status}'
If status is ACTIVE already, tell the user and stop.
Check 2 — At least 1 sequence step
smartlead campaigns sequences --output json | jq 'length'
Should return ≥1. Zero = won't send anything.
Check 3 — At least 1 mailbox assigned
smartlead campaigns email-accounts --output json | jq 'length'
Should return ≥1. Zero = nothing to send from.
Check 4 — Leads uploaded
smartlead leads list --output json | jq 'length'
Should return ≥1. Zero = ask user if empty start is intentional.
Check 5 — All assigned mailboxes are warmed up
smartlead campaigns email-accounts --output json | \
jq -r '.[].email_account_id' | \
while read mb_id; do
smartlead accounts get $mb_id --output json | \
jq -r --arg id "$mb_id" '{id: $id, warmup: .warmup_details.status, reputation: .warmup_details.warmup_reputation}'
done
Flag any mailbox with warmup.status != ENABLED or `reputation
Should resolve to `open.sleadtrack.com.`. If empty, link wrapping and open pixels will fail.
### Check 7 — Settings sanity
```bash
smartlead campaigns get --output json | jq '.settings'
Flag if:
enable_ai_esp_matching: trueAND campaign has both Gmail+Outlook senders (seedocs/learnings/esp-matching-analysis.md)track_settingsincludesDONT_TRACK_*but recipient list looks audit-aware (Big Tech etc.)- Schedule looks wrong (sending on weekends, 24/7 window, etc.)
Check 8 — Schedule timezone matches recipient audience
If campaign timezone is America/New_York but lead list is heavy on EU domains, surface it. Sending at 9 AM ET = 3 PM CEST = late afternoon for EU recipients.
Launch decision
Once all checks pass (or user explicitly waves off warnings):
smartlead campaigns start
Confirm activation:
smartlead campaigns get --output json | jq '.status'
# Should now show "ACTIVE"
First-hour monitoring
After launch, tell the user to check back in 1-2 hours:
smartlead campaigns analytics
What to watch:
- Bounce rate: if it crosses 5% in the first hour, PAUSE immediately and triage
- Sends per hour: should match expected throughput from schedule + mailbox count
- Auto-replies / out-of-office: Smartlead handles these (stop-on-auto-reply default)
If something goes wrong post-launch
To stop sending (drains queued sends — this is what you usually want):
smartlead campaigns stop
NOT pause — pause doesn't drain queued sends and the analytics endpoint lies about it (see docs/learnings/settings-api-quirks.md quirk 6).
Reference
docs/learnings/settings-api-quirks.md— campaign status verbs, pause-drain behaviordocs/learnings/esp-matching-analysis.md— why to disable AI ESP matchingdocs/learnings/mailbox-warmup-best-practices.md— what "warmed up" actually means
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: MattSezgin
- Source: MattSezgin/unofficial-smartlead-cli
- License: MIT
- Homepage: https://github.com/MattSezgin/unofficial-smartlead-cli
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.