Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add millord237/10x-outreach-skill --skill "outreach-manager"
Install specific skill from multi-skill repository
# Description
|
# SKILL.md
name: outreach-manager
description: |
Main orchestrator for email outreach campaigns. Use this skill when the user wants to send bulk emails,
manage email campaigns, or do cold outreach using Google Sheets as recipient source.
Routes to campaign-executor for actual sending.
allowed-tools:
- Bash
- Read
- Write
- Glob
- Grep
- TodoWrite
- AskUserQuestion
10x Outreach Manager Skill
The central hub for email outreach operations. This skill orchestrates bulk email campaigns with Google Sheets integration.
When to Use This Skill
Use this skill when the user:
- Wants to send emails to multiple recipients from a spreadsheet
- Needs to set up an email campaign
- Asks about outreach, cold email, or bulk email operations
- Wants to map a template to a recipient list
When NOT to Use This Skill
Do NOT use this skill for:
- Reading individual emails β use inbox-reader skill
- Composing single emails β use email-composer skill
- Replying to emails β use reply-generator skill
- Summarizing emails β use email-summarizer skill
Capabilities
- Campaign Setup - Configure campaigns with templates and recipients
- Google Sheets Integration - Read recipients from Google Sheets
- Template Mapping - Map email templates to recipient data
- Rate-Limited Sending - Send with configurable delays (default: 60s)
- Campaign Tracking - Log all sent emails and results
CRITICAL: Single Approval Workflow
IMPORTANT: Approval is ONE TIME ONLY
The user approves ONCE at the start. After approval, the campaign runs AUTONOMOUSLY without further interruption.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WORKFLOW OVERVIEW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. PLAN β Gather info, preview recipients & template β
β 2. APPROVE β User confirms ONCE (single approval) β
β 3. EXECUTE β Campaign runs autonomously (no interrupts) β
β 4. REPORT β Show final results when complete β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Phase 1: PLAN (Gather & Preview)
Use TodoWrite to track planning steps:
[
{"content": "Verify authentication status", "status": "in_progress", "activeForm": "Verifying authentication"},
{"content": "Load Google Sheet data", "status": "pending", "activeForm": "Loading sheet data"},
{"content": "Preview template", "status": "pending", "activeForm": "Previewing template"},
{"content": "Show campaign summary for approval", "status": "pending", "activeForm": "Showing summary"},
{"content": "Execute campaign (after approval)", "status": "pending", "activeForm": "Executing campaign"}
]
Step 1: Check Authentication
python .claude/scripts/inbox_reader.py --stats
Step 2: Load Recipients
python .claude/scripts/sheets_reader.py --read SHEET_ID --range "Sheet1"
Step 3: Preview Template
python .claude/scripts/template_loader.py render --path email/outreach/cold_email
Step 4: Present Campaign Summary
Show a clear summary for approval:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CAMPAIGN READY FOR APPROVAL
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π RECIPIENTS: 47 contacts from "Leads" sheet
π TEMPLATE: outreach/cold.txt
π SUBJECT: "Quick question about {{ company }}"
β±οΈ DELAY: 60 seconds between each email
β³ ESTIMATED TIME: ~47 minutes to complete
PREVIEW (First 3 Recipients):
ββββββββββββββββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββββ
β Email β Name β Company β
ββββββββββββββββββββββββββββββΌβββββββββββββββΌβββββββββββββββββ€
β [email protected] β John Smith β Acme Inc β
β [email protected] β Jane Doe β StartupCo β
β [email protected] β Bob Wilson β Enterprise Ltd β
ββββββββββββββββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββ
TEMPLATE PREVIEW:
"Hi {{ first_name }}, I came across {{ company }} and was impressed..."
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β οΈ Once approved, campaign will run AUTOMATICALLY until complete.
No further approvals needed. Emails sent every 60 seconds.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Do you approve this campaign? (yes/no)
Phase 2: SINGLE APPROVAL
Use AskUserQuestion to get ONE confirmation:
- "Do you approve sending 47 emails with 60s delay? Campaign will run autonomously after approval."
If approved: Proceed to execution immediately
If declined: Stop and ask what to change
Phase 3: AUTONOMOUS EXECUTION
After approval, execute without any further user interaction:
[
{"content": "Verify authentication status", "status": "completed", "activeForm": "Verifying authentication"},
{"content": "Load Google Sheet data", "status": "completed", "activeForm": "Loading sheet data"},
{"content": "Preview template", "status": "completed", "activeForm": "Previewing template"},
{"content": "Show campaign summary for approval", "status": "completed", "activeForm": "Showing summary"},
{"content": "Execute campaign (47 emails)", "status": "in_progress", "activeForm": "Sending emails autonomously"}
]
Execute Campaign (runs until complete):
python .claude/scripts/send_campaign.py --sheet SHEET_ID --template email/outreach/cold_email --subject "Your Subject" --delay 60 --live
NO interruptions during execution. The script handles:
- Sending each email
- Waiting 60 seconds between emails
- Logging results
- Handling any errors gracefully
Phase 4: REPORT RESULTS
After campaign completes, show final report:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CAMPAIGN COMPLETE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
SENT: 45 emails
β FAILED: 2 emails
β±οΈ DURATION: 47 minutes
FAILED EMAILS:
- invalid@email (Invalid address)
- [email protected] (Delivery failed)
π LOG FILE: output/logs/campaign_20240115_143022.json
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Available Scripts
| Script | Purpose |
|---|---|
.claude/scripts/send_campaign.py |
Send email campaigns (autonomous) |
.claude/scripts/sheets_reader.py |
Read Google Sheets data |
.claude/scripts/gmail_client.py |
Gmail API operations |
.claude/scripts/auth_setup.py |
Authentication setup |
Campaign Execution Flags
| Flag | Purpose |
|---|---|
--live |
Actually send emails |
--dry-run |
Simulate without sending |
--delay N |
Seconds between emails |
--max N |
Maximum emails to send |
Environment Configuration
EMAIL_DELAY_SECONDS=60 # Delay between emails
MAX_EMAILS_PER_BATCH=50 # Max per campaign
DAILY_EMAIL_LIMIT=100 # Daily limit
DRY_RUN_MODE=false # Default mode
Error Handling During Autonomous Execution
The campaign script handles errors gracefully:
- Invalid email: Skipped, logged, continues
- Rate limited: Pauses, retries
- Network error: Retries 3 times
- Auth expired: Attempts refresh
All errors logged to output/logs/ for review after completion.
Example Workflow
User: "Send cold emails to my leads sheet"
Assistant:
1. Creates TodoWrite task list
2. Checks authentication
3. Loads sheet and shows recipient count
4. Shows template preview
5. Presents complete summary
6. Asks for approval ONCE
7. After "yes" β Executes entire campaign autonomously
8. Reports final results when done
Safety Measures
- Single approval - User confirms once, clearly understanding scope
- Rate limiting - Minimum 60s between emails (configurable)
- Daily limits - Respects DAILY_EMAIL_LIMIT
- Full logging - Every email logged for audit
- Dry run option - Test first with
--dry-run
MCP Integration Guidelines
Primary MCP: Gmail API
This skill primarily uses the Gmail API for email operations.
When to Use MCPs
| Operation | MCP | Tool |
|---|---|---|
| Send emails | Gmail | gmail_send |
| Read recipients from sheets | Google Sheets | sheets_read |
| Track opens/clicks | Analytics | Internal tracking |
MCP Selection Flow
User Request β Context Detector β Keyword Router β Pre-Tool Router β MCP Selection
β β
Outreach Gmail API
Integration with Other Skills
| Scenario | Route To | Reason |
|---|---|---|
| Single email | email-composer |
Better for individual emails |
| Find recipients first | discovery-engine |
Uses Exa AI for discovery |
| Multi-platform campaign | workflow-engine |
Orchestrates multiple platforms |
| Check replies | inbox-reader |
Inbox operations |
MCP Best Practices
- Always verify Gmail authentication before starting campaigns
- Use batch operations when sending to multiple recipients
- Log all operations for analytics tracking
- Respect rate limits from pre-tool-router
- Handle MCP failures gracefully with retries
Environment Variables for MCP
# Gmail MCP Configuration
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GMAIL_ACCESS_TOKEN=your_access_token
GMAIL_REFRESH_TOKEN=your_refresh_token
# Campaign Settings
EMAIL_DELAY_SECONDS=60
MAX_EMAILS_PER_BATCH=50
DAILY_EMAIL_LIMIT=100
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.