Skip to content
NewSee how
Fix

Template previews show the signature that actually sends

A connector's signature is now baked into template drafts when they're created, so the preview matches the delivered email exactly — with a safeguard against the signature ever doubling up.

What you see in a template preview should be exactly what your recipient gets. For template campaigns, the signature was the one part that could differ between the two — the preview might show one thing and the delivered email another.

What was happening

A connector's signature was only attached to the email at the moment it was sent, not when the draft was created. For template campaigns, that meant the preview you reviewed was built before the signature was in place, so it could show something different from the final email that landed in your recipient's inbox. The preview was an honest reflection of the draft as it stood — it just did not yet include the part that gets added on the way out the door. This affected template campaigns specifically, where the draft is generated ahead of time and you preview it before it goes out, so the window between what you reviewed and what was sent was exactly where the signature slipped in unseen. The gap was easy to miss precisely because it only appeared at the very end of the flow: everything you reviewed looked right, and the difference only existed in the version that actually shipped.

What we fixed

The connector's signature is now baked into the template draft at the time the draft is created, rather than being bolted on at send time. Because the signature is part of the draft from the start, the template preview and the delivered email are built from the same content and show the exact same signature. We also added a safeguard so the signature cannot be applied twice — there is no risk that moving it earlier in the process causes it to appear once in the draft and again at send, leaving a duplicated signature at the bottom of the email.

Why it matters

Previews are only useful if you can trust them. Now what you proof is what your recipient receives, signature included — so you can review a template once, see precisely how it will look when it arrives, and launch without wondering whether the sent version will match. Your signature carries real weight in cold outreach — it is where your name, role, and contact details live, and a clean, consistent sign-off is part of looking legitimate to someone hearing from you for the first time. Having it render identically in preview and in the inbox means there are no surprises in the part of the email that vouches for who you are, and it rules out the embarrassing failure mode of a signature showing up twice in a real send.

All updates

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.