Quick Start Checklist

1. Set Claude:ApiKey in appsettings.json (required for all agents)
2. Configure SMTP (Gmail + App Password) for email sending
3. Add at least one Test Account in Settings
4. (Optional) Add Apollo.io / Hunter.io / Snov.io API keys for better contact discovery
5. (Optional) Set up Google OAuth for team login
6. Launch your first campaign!

1. Claude API Key (Required)

The Claude API powers all AI agents (research, discovery, personalization, email writing).

Steps:

1. Go to console.anthropic.com
2. Sign up / login
3. Go to Settings → API Keys → Create Key
4. Copy the key (starts with sk-ant-...)
5. Paste into appsettings.json under Claude:ApiKey

Rate Limits & Tiers:

TierDepositMonthly LimitRequests/MinRecommended For
Tier 1$5$10050 RPMTesting only
Tier 2$40$5001,000 RPM25-50 lead campaigns
Tier 3$200$1,0002,000 RPM100+ lead campaigns
Tier 4$400$5,0004,000 RPMProduction scale

For campaigns with 25+ leads, Tier 2 ($40 deposit) is the minimum recommended tier.

2. Gmail SMTP Setup (Required for Email Sending)

Emails are sent via SMTP. Gmail works best with App Passwords.

Central SMTP (Admin configures in appsettings.json):

"Smtp": {
  "Host": "smtp.gmail.com",
  "Port": "587",
  "Username": "your-email@gmail.com",
  "Password": "your-16-char-app-password",
  "FromName": "Zapim",
  "FromEmail": "your-email@gmail.com"
}

How to get a Gmail App Password:

1. Go to myaccount.google.com/security
2. Ensure 2-Step Verification is turned ON (required)
3. Search for "App passwords" in the security settings search bar
4. Or go directly to: myaccount.google.com/apppasswords
5. Select app: Mail, Device: Other (name it "Zapim XRAY")
6. Click Generate → copy the 16-character password
7. Paste as the SMTP password (no spaces)

Per-Agent SMTP (each agent sends from their own email):

1. Each agent logs in and goes to Profile
2. Enable "Use my own SMTP"
3. Enter their Gmail + App Password
4. Emails they send will come FROM their personal Gmail
5. If not configured, the central SMTP is used as fallback

Gmail sending limits: ~500 emails/day for personal Gmail, ~2,000/day for Google Workspace. For higher volumes, consider SendGrid or Amazon SES.

3. Contact Discovery APIs (Optional)

These APIs find decision-maker email addresses. All are optional — Claude AI fallback works without any of them.

PlatformBest ForFree TierPaidConfig KeyGet Key
Apollo.ioManagement/C-level contacts 50 credits/mo FREE$49/mo (2,500) Apollo:ApiKey Get Key
Hunter.ioDomain-wide email discovery 25 searches/mo FREE$49/mo (500) Hunter:ApiKey Get Key
Snov.ioDomain emails + prospecting No free tier$29/mo (1,000 credits) Snov:UserId + Snov:ApiSecret Get Keys
RocketReachPeople search + phones No free tier$26/mo (40 lookups) RocketReach:ApiKey Get Key
ZeroBounceEmail verification 100 verif/mo FREE$39 for 2,000 ZeroBounce:ApiKey Get Key
Claude AIWeb search fallback Uses your API~$0.03/company Claude:ApiKey (same) Already configured
Recommended setup (zero extra cost): Apollo (free 50/mo) + Hunter (free 25/mo) + Claude fallback. This gives you ~75 free contact lookups/month plus unlimited Claude-powered web search.

Snov.io & RocketReach have NO free tiers. Only configure if you have a paid subscription.

Snov.io note: Snov uses a User ID + API Secret pair (not a single key). Find both at app.snov.io/integration/api.

Platform Priority: Configure in ContactFinder:PlatformPriority. Default: Apollo,Hunter,Claude. Only add Snov/RocketReach if you have paid plans. Select a single engine per campaign from the Launch page.

4. Google OAuth (Optional)

Enable "Sign in with Google" for your team. Without this, email/password login still works.

1. Go to console.cloud.google.com
2. Create a project (or use existing)
3. Go to APIs & Services → Credentials
4. Click Create Credentials → OAuth Client ID
5. Application type: Web application
6. Add Authorized redirect URI: https://your-domain/signin-google
7. Copy Client ID and Client Secret
8. Paste into appsettings.json under Authentication:Google

5. Email Management & Follow-ups

How email sending works:

1. Campaign pipeline generates personalized emails + PDF decks per lead
2. When you click "Send All" or send individually, emails go out via SMTP
3. Each email contains a 1x1 tracking pixel for open detection
4. All sent emails appear in the Inbox page
5. You can reply to leads directly from the portal

Test Mode:

When TestMode:Enabled = true, ALL emails redirect to your test accounts.
Subject gets tagged: [TEST → real@email.com] Original Subject
The email body shows a yellow banner indicating test mode.
Set to false to go live.

Automated Follow-ups:

Configure follow-up schedule per campaign (e.g., Day 3, Day 7, Day 14)
AI generates follow-up emails that reference the original email
Follow-ups auto-cancel when a lead replies or is marked as replied
You can send follow-ups early or cancel them from the Inbox thread view
Follow-up processor runs every 15 minutes automatically

Inbound replies:

Currently, inbound replies must be logged manually (paste the reply in the thread view).
When logged, all pending follow-ups for that lead are automatically cancelled.
The lead status changes to "Replied" and appears in dashboard analytics.
Future: Gmail API integration for automatic reply detection.

6. Roles & Permissions

RoleCan DoCannot Do
AdminEverything — manage users, assign roles, see all campaigns, configure APIs, view cost audit, manage settings
ManagerCreate campaigns, see all team campaigns, assign agents to campaigns, manage leadsUser management, settings, cost audit
AgentSee only assigned campaigns, send emails (from own SMTP if configured), manage their leads, use inboxCreate campaigns, see other agents' data, admin pages

First user login auto-creates as Agent. Admin promotes users via Users & Roles page.

Default admin: admin@zapim.com / Admin@123 (change in appsettings.json).

7. Cost Estimates

Campaign SizeClaude APIContact APIsEmailTotal
10 leads~$2Free tierFree~$2
25 leads~$5Free tierFree~$5
50 leads~$10~$5Free~$15
100 leads~$19~$15Free~$34
500 leads/mo~$92~$50Free~$142

Every API call is logged with estimated cost in the Cost Audit page (Admin only).

Using only Claude for contact discovery (no Apollo/Hunter) adds ~$0.03/lead but avoids external API costs entirely.