From gtm-skills
Uploads finalized emails to Instantly for sequencing and sending. Maps CSV fields to lead schema, creates/finds campaigns, deduplicates leads, and provides pre-send verification checklist.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gtm-skills:campaign-sendingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Upload finalized emails for sequencing and sending.
Upload finalized emails for sequencing and sending.
Provider selection and credentials are handled in Step 0 of the workflow.
Load the finalized email CSV (output from email-generation). Read the CSV headers to discover all available columns. Verify required columns exist (email, first_name, company_name, company_domain). Identify all content columns (paragraph fields, hypothesis, tier, etc.) that will need to be mapped to the provider's variables.
Read the context file and remove any domains on the DNC list. Report how many were removed.
Using the chosen provider's API:
Ask the user to specify the campaign based on region and time zone — leads in different regions/time zones should go into separate campaigns so sending schedules align with recipients' local business hours.
Ask the user: use an existing campaign or create a new one?
Analyze the CSV headers discovered in Step 1 and create corresponding fields in the provider:
email, first_name, last_name, company_name, company_domain to the provider's standard lead fieldsUpload via the provider's API in batches (respect rate limits from Step 0). Enable deduplication if the provider supports it.
Report: uploaded count, skipped (dedup) count, total attempted.
Present this checklist to the user BEFORE they activate the campaign:
## Pre-Send Verification Checklist
Campaign: [name]
Leads uploaded: [N]
Leads skipped (dedup): [N]
### Verify in your sequencer:
- [ ] **Email accounts connected** — at least 2-3 sending accounts are linked and warmed
- [ ] **Sending schedule set** — check timezone, sending hours, daily limits
- [ ] **Email sequence configured** — first email + follow-up(s) are set up in the campaign
- [ ] **Custom variables working** — preview 3-5 emails to confirm {{variables}} render correctly
- [ ] **Unsubscribe link present** — required for compliance
- [ ] **DNC list checked** — confirm no blacklisted domains made it through
- [ ] **Reply handling set** — auto-stop sequence on reply is enabled
- [ ] **Warmup active** — sending accounts have adequate warmup history
### Sample emails to spot-check:
[Show 3 random emails from the upload for the user to visually verify]
Never auto-activate a campaign. Always tell the user:
"Leads are uploaded. Please review the campaign in your sequencer, check the sequence and sending settings, then manually activate when ready. I will not start the campaign automatically."
After the campaign has been running (typically 1-2 weeks), prompt the user to run the feedback loop:
context-building in feedback loop mode to update Campaign HistoryPre-configured provider docs in references/ directory. For other providers, docs are fetched during Step 0.
npx claudepluginhub extruct-ai/gtm-skills --plugin gtm-skillsBuilds and launches Instantly.ai cold email campaigns end-to-end via API v2, creating campaigns, sequences, adding leads, and starting outreach.
Automate Instantly cold email outreach via Composio MCP: manage campaigns, sending accounts, lead imports, and analytics using natural language commands.
Validates emails from a CSV before campaign sending, removing invalid, do_not_mail, abuse, catch-all, and unknown addresses. Fits between email-generation and campaign-sending in the pipeline.