Skip to content
NewSee how

Configure contact verification checks

Turn on automatic email cleaning, understand the five deliverability checks, read a contact's clean/risky/dirty status, and re-test contacts on demand.

  1. Open Tools settings

    Go to Settings → Tools. The Contact cleaning panel holds the master toggle.

  2. Turn on auto cleaning

    Flip the toggle on: only workspace owners and admins can change this setting. Once it's on, new imports are checked automatically: “Checks email addresses on import so campaigns skip dead ones, reducing your bounce rate and protecting sender reputation.”

    Turn on auto cleaning
  3. Learn the five checks

    • Address format (validates the email follows a correct syntax structure.
    • Mail server verification) confirms the domain has valid DNS and mail exchange records.
    • Disposable addresses: flags temporary inboxes that expire shortly after creation.
    • Typo correction: catches common domain misspellings like gmial.com or outloook.com.
    • Role addresses: identifies shared inboxes such as info@, support@, or noreply@.
  4. Understand the cost

    Cleaning costs 0.2 credits per new contact. Credits are returned for any address that can't be verified, and suspended contacts are excluded from sends automatically. You can mark any contact as valid at any time.

  5. Read a contact's status

    Each contact shows one of four statuses: clean, risky, dirty, or unknown. Dirty contacts are auto-suspended and skipped on sends.

  6. Re-test contacts on demand

    Select contacts (or use Re-test all for a filtered view) to open the confirm drawer. It shows the exact cost (contacts × 0.2 credits), your current balance, and the balance after.

  7. Confirm the re-test

    Review the “What we check” list (mail server existence, mailbox reachability, disposable detection, typo and syntax correction, and catch-all flagging) then confirm. Contacts cleaned in the last 24 hours are skipped automatically, so you don't pay twice.

Pro tips

  • Turn cleaning on before your first import

    Dead addresses get caught at the door: dirty contacts are auto-suspended and never sent to.

  • You usually pay less than the estimate

    You only pay for new contacts, and credits are refunded for any address that can't be verified, so the real cost typically lands below the 0.2 × count estimate.

  • Risky isn't a hard fail

    A catch-all domain or role address like info@/support@ marks a contact risky, not dirty: review those manually before deciding to send.

  • Re-testing right after import is free

    Anything cleaned in the last 24 hours is skipped, so a repeat run immediately after import costs nothing extra.

Frequently asked questions

Who can change the cleaning setting?

Only workspace owners and admins. Other roles can see the checks but can't toggle them.

What are the five checks?

Address format, Mail server verification (DNS/MX), Disposable addresses, Typo correction, and Role addresses.

What does each status mean?

Clean = safe to send; Risky = deliverable but low-confidence (catch-all or role address); Dirty = auto-suspended and excluded from sends; Unknown = couldn't be verified (credits returned).

How much does cleaning cost?

0.2 credits per new contact. Credits are returned for contacts we can't verify.

Why is a good-looking address marked dirty?

Common reasons: the domain has no mail server (no MX record), it's a disposable address, a likely typo, invalid syntax, or the mailbox doesn't exist.

Can I override a cleaning result?

Yes: you can mark any contact as valid at any time to override auto-suspension.

Does re-testing charge me again for the same contacts?

No: contacts cleaned within the last 24 hours are skipped, and you only pay for checks that actually run.

List Management

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.