Skip to content
NewSee how

Emails landing in spam. The checklist

Low opens and replies going quiet usually mean the spam folder. Work this checklist: authenticate your domain, add a tracking domain, warm up, and fix the content.

  1. Read the symptom: opens near zero, replies silent

    If opens are near zero and replies have dried up, your mail likely isn’t reaching the inbox — it’s landing in spam. The fix is a reputation stack, and each layer depends on the one before it: authentication → tracking domain → warmup → content. Work them in that order.

  2. Check domain authentication first

    Open Mailbox/Domain → Email Authentication. SPF, DKIM, and DMARC all need to show verified. Unauthenticated mail is the single biggest spam trigger, and nothing downstream can fix it. See Domain authentication (SPF, DKIM, DMARC) for the full setup.

    Check domain authentication first
  3. Apply DNS fast with the Cloudflare one-click (if applicable)

    If your domain is on Cloudflare nameservers, FirstSales offers a one-click modal: paste a scoped Zone › DNS › Edit API token and it writes your SPF/DKIM/DMARC records for you. The token is used once for that single request and is never stored or logged. On other registrars, add the records by hand — see DNS across registrars.

  4. Add a custom tracking domain

    Go to Deliverability → Tracking Domain and create a CNAME so your open/click tracking runs on your own subdomain instead of a shared host. Wait for the status to move through pending → CNAME OK → SSL OK → Verified. A shared tracking host that other senders have burned is a known placement drag.

  5. Confirm warmup is healthy

    Each sending mailbox’s Warmup tab should show a Healthy score (80+) or be in Maintenance. A cold mailbox with no warmup history lands in spam regardless of how clean your DNS is.

  6. Fix the content

    Spammy subject lines, image-heavy bodies, link-stuffing, and misleading copy get filtered even with perfect authentication. Keep it plain, personal, and to one clear link or ask. There’s no in-app content scanner — this is a manual review.

  7. Watch the spam-complaint guardrail

    Campaign → Settings → Delivery Protection shows the Spam complaint threshold (%) (default 0.1). If you’re tripping it, recipients are actively marking you as spam — that’s a content or targeting problem, not a DNS one.

  8. Verify externally, then ramp back up

    FirstSales has no built-in blacklist lookup or seed-inbox test. Use an external seed/placement service to confirm you’re now landing in the inbox, then slowly increase volume rather than jumping straight back to full send.

Pro tips

  • Authenticate before anything else

    A tracking domain and warmup can't rescue mail that fails SPF, DKIM, or DMARC. Fix authentication first.

  • Cloudflare users: use the one-click

    The one-click modal writes all three records in seconds with a scoped, single-use token: far fewer typos than hand-editing DNS.

  • Don’t underrate the tracking domain

    A custom tracking domain quietly moves your links off a shared host that other senders may have already burned: one of the biggest placement levers.

  • There’s no spam-test button by design

    Use an external seed test to confirm placement, then trust your open-rate trend over any single tool's one-time score.

Frequently asked questions

Why are my emails going to spam?

Almost always one of: unverified SPF/DKIM/DMARC, a cold un-warmed mailbox, a shared tracking host, or spam-triggering content. Work through them in that order.

Does FirstSales have a blacklist or spam-test tool?

No. There’s no in-app RBL lookup or seed-inbox test. Use an external service for that; inside FirstSales, focus on authentication, tracking domain, warmup, and content.

Do I need a custom tracking domain?

Strongly recommended. It moves open/click tracking to your own verified subdomain instead of a shared host, which meaningfully helps placement.

I’m on Cloudflare — is the one-click safe?

Yes. You paste a narrowly-scoped Zone › DNS › Edit token; it’s used for a single request to write your records and is never stored or logged.

My auth is green but I’m still in spam — why?

Then it’s warmup or content. A perfectly authenticated but cold mailbox still lands in spam, and so does salesy, link-heavy copy.

How do I know I’ve actually fixed it?

Watch your open-rate trend recover and confirm with an external seed/placement test. There isn’t a single in-app “fixed” indicator.

Will the spam-complaint threshold auto-pause me?

Yes, if you cross it (default 0.1%). That means recipients are actively marking you spam — revisit targeting and content, not DNS.

Deliverability

Outreach that keeps going after you log off.Leads, emails, follow-ups and replies, handled.

Connect unlimited mailboxes and let AI agents find leads, write each email and follow up. Or send your own templates in manual mode. From $29/mo.

$1 for 3 days · Cancel anytime · No contract

Install with AI

Your coding agent sets up the FirstSales CLI and skills for you.

Prompt for Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.