What problem does it solve? Manually configuring a Smartlead cold email campaign — creating sequences with A/B/C variants, attaching tagged inboxes, uploading thousands of leads, and setting schedules — is slow and error-prone through the UI. This Skill automates the entire mechanical upload via the Smartlead API while keeping the campaign in DRAFT so a human reviews it before launch. ## Core Features & Use Cases - Draft-only campaign creation: Builds the campaign, sequences, inbox assignments, lead batches, settings, and schedule through the Smartlead API, but never auto-activates — you review and press Start in the UI. - Tag-scoped inbox selection: Filters email accounts by tag, sorts by daily_sent_count (least recently used first), and attaches the requested count, with retry logic that drops rejected inbox IDs. - Strict schema validation: Rejects leads.csv files with missing required columns or unallowed extra columns (preventing accidental PII upload), and validates variants.yaml structure with clear error messages. - Use Case: After generating copy with /campaign-copywriting and verifying your list, run the upload script with your leads.csv and variants.yaml to get a fully configured draft campaign and a direct Smartlead review URL. ## Quick Start Set the SMARTLEAD_API_KEY environment variable and run the upload script with npx tsx, passing the paths to your leads.csv and variants.yaml files, then open the printed Smartlead URL to review and start the draft campaign.