{"skill":{"slug":"skill-instantly-campaign-launcher","displayName":"Instantly Campaign Launcher","summary":"Create and launch an Instantly.ai cold email campaign with D0/D3/D8 sequences and bulk-import leads via API, no dashboard needed.","description":"# skill-instantly-campaign-launcher\n\nProgrammatically create an Instantly.ai cold email campaign with D0/D3/D8 sequences and bulk-import leads — all via Instantly API v2. One script, zero dashboard clicking.\n\n## What it does\n1. Creates a new Instantly campaign (or finds an existing one by name)\n2. Adds a 3-step D0/D3/D8 email sequence to the campaign\n3. Imports leads from a JSON file (with dedup/skip for existing leads)\n4. Reports imported/skipped/failed counts\n\n## Use cases\n- Launching any cold email campaign via code (no UI required)\n- B2B agency or service business outreach\n- Quickly adapting a campaign template for new ICPs or industries\n\n## Inputs\n- `INSTANTLY_KEY` — Instantly API v2 Bearer token (set as env var)\n- `scripts/campaign.config.js` — campaign name, schedule, D0/D3/D8 email bodies\n- `leads.json` — array of lead objects: `{email, firstName, lastName, companyName, website}`\n\n## Outputs\n- Instantly campaign created (or found) with sequences attached\n- Leads imported; console report: total / imported / skipped / failed\n\n## Scripts\n- `scripts/campaign-launcher.js` — main entry point\n- `scripts/campaign.config.js` — config template (edit before running)\n\n## Usage\n```bash\n# 1. Get your Instantly API v2 token from app.instantly.ai → Settings → API Keys\nexport INSTANTLY_KEY=your_token_here\n\n# 2. Edit scripts/campaign.config.js — set campaign name, schedule, email copy\n# 3. Create leads.json (array of lead objects)\n# 4. Run:\nnode scripts/campaign-launcher.js --config scripts/campaign.config.js --leads leads.json\n```\n\n## leads.json format\n```json\n[\n  { \"email\": \"john@example.com\", \"firstName\": \"John\", \"lastName\": \"Smith\", \"companyName\": \"Acme Inc\", \"website\": \"acme.com\" },\n  { \"email\": \"jane@corp.io\", \"firstName\": \"Jane\", \"companyName\": \"Corp IO\" }\n]\n```\n\n## campaign.config.js format\n```js\nmodule.exports = {\n  campaignName: 'My Outreach Campaign',\n  schedule: {\n    name: 'Business Hours',\n    timing: { from: '09:00', to: '17:00' },\n    days: { monday: true, tuesday: true, wednesday: true, thursday: true, friday: true, saturday: false, sunday: false },\n    timezone: 'America/New_York', // or Asia/Dubai, Europe/London, etc.\n  },\n  sequences: [\n    { step: 1, delay: 0, subject: 'Your subject', body: 'Hi {{firstName}}, ...' },\n    { step: 2, delay: 3, subject: 'Re: Your subject', body: 'Follow-up body...' },\n    { step: 3, delay: 8, subject: 'Last note, {{firstName}}', body: 'Closing body...' },\n  ],\n};\n```\n\n## Notes\n- Instantly API v2 — sequences endpoint: `POST /campaigns/:id/sequences`\n- Dedup: 409 responses = lead already in campaign (counted as skipped, not error)\n- Rate limit: 200ms sleep between lead imports to avoid 429s\n- Known issue: Instantly API v2 `/sequences` endpoint occasionally returns 404 → add sequences manually in dashboard if this occurs\n- Instantly free plan supports unlimited campaigns; warming up inboxes recommended before launch\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":574,"installsAllTime":22,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1773184909621,"updatedAt":1778491816516},"latestVersion":{"version":"1.0.0","createdAt":1773184909621,"changelog":"Initial release","license":"MIT-0"},"metadata":null,"owner":{"handle":"zero2ai-hub","userId":"s17a1b8dv4hc6x68q9m057m67n83ryrt","displayName":"Zero2Ai","image":"https://avatars.githubusercontent.com/u/244362887?v=4"},"moderation":null}