Skip to content
NewSee how
Improvement

Custom fields, now with real field types

Define your own custom fields on contacts with a specific type (text, number, date, URL, yes/no, single-select, or multi-select) so data is entered consistently and validated. Enriched fields are clearly marked and protected, and you can now add a single contact by hand.

Custom fields let you track what matters to your business: a lead source, a contract value, a renewal date, an account tier. But a custom field that's just a free-text box invites a mess. Three people type the same date three different ways, a number field fills up with "~50k" and "fifty thousand," and suddenly you can't filter or trust any of it. Custom fields now have real types, so the data going in stays clean.

What changed

When you create a custom field on contacts, you now choose its type: text, number, date, URL, yes/no, single-select, or multi-select. You can also mark a field required. From then on, editing that field uses the right control for the job, a number input for numbers, a date picker for dates, a checkbox for yes/no, a dropdown for single-select, a set of checkboxes for multi-select, and values are validated against the type, so a date field can't fill up with free text and a number field stays a number.

Fields that FirstSales fills in for you through enrichment now carry an Enriched badge, so you can always tell auto-filled data apart from what you typed. And because that enrichment data is valuable, deleting an enrichment custom field now asks you to confirm first, so you won't lose an enriched field to a stray click.

Alongside the typed fields, adding contacts got more flexible. The New contact button, previously a grayed-out "coming soon," now opens a form to create a single contact by hand: first name, last name, email, and optionally company, title, and phone. The form validates the email and warns you inline if that address already exists in your workspace, so you don't create a duplicate on the spot. In the same release, the Deals page filter button came alive too, letting you filter deals by owner and stage.

How to use it

Define and use a typed custom field:

  1. Open Contacts and click into any contact.
  2. In the detail panel, expand Manage custom fields.
  3. Add a field, name it, and choose its type: Date, Number, Single-select, and so on. Mark it required if you need it filled.
  4. Back on the contact, enter the value using the type-specific control. Invalid entries are rejected before they're saved.
  5. Fields filled by enrichment show an Enriched badge. Deleting one asks you to confirm.

Create a single contact:

  1. Open Contacts.
  2. Click New contact in the header.
  3. Fill in first name, last name, and email (required), plus company, title, and phone if you have them.
  4. Submit. If the email already exists, you'll be warned inline. Otherwise the contact is created and your list refreshes.

Why it matters

The value of structured data is that you can act on it: filter by it, sort by it, trust it in a report. Free-text fields quietly destroy that value, because the same thing gets entered a dozen ways and none of them line up. Typing a field at the point of entry is the cheapest possible fix. The data is clean because it couldn't be entered dirty, not because someone cleaned it later.

Marking and protecting enriched fields matters for a different reason: trust. When you can see at a glance which values FirstSales found for you versus which you entered, you know how much to lean on them, and you're not one misclick away from deleting research you didn't gather yourself. Typed fields also make merging duplicates smarter, since FirstSales understands what a field actually holds when it decides which values conflict. It's all part of the Companies and Deals CRM and the Contact 360 record it feeds.

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.