Contacts

The people you talk to, already in one place

Every person you deal with, with your history attached: when you last spoke, what it was about, and who said they would do what. It assembles itself from the accounts you have already connected. You never fill it in.

Get started
Free during beta · No credit card required
No data entry

It fills itself from what you already connected

Address books go stale because they ask to be maintained, and maintenance is the first thing to go. So this one is not something you keep up. It is assembled from the accounts you connected for your inbox anyway, and it stays current as those accounts change.

Every channel feeds it

Google Contacts, Outlook, Slack, Google Chat, Teams, Telegram, and your this+that teammates all flow in. Names, email addresses, phone numbers, job titles, and each platform’s avatar come across with them.

One person, not four half-people

The same human arrives as a work address, an invoicing address, and a Slack handle that know nothing about each other. We resolve them into a single record that carries every origin it came from, and anything the sync gets wrong you can merge yourself.

Your edits survive the sync

Correct a job title that is two roles out of date and the next sync leaves it alone. Delete an address that person stopped using and it does not come back an hour later. Sync-backed address books usually get this wrong, and getting it wrong is what teaches people to stop editing.

Add someone by hand when you need to

The person you met at a conference is not in any connected account yet. Create the record, add what you have, and it lives alongside the synced ones without being overwritten by them.

The history comes with it

Open a person and see your correspondence

A card with a phone number on it answers a narrow question, and often not the one you came in with. More of the time you want to know what your history with this person looks like: when you last spoke, what it was about, and who said they would do what.

So each person carries their thread history. As mail and messages arrive they attach themselves to the people involved, across every channel you have connected, with the subject, the direction, and when it happened. Nothing gets filed by hand. That history has been sitting in your accounts the whole time, split across apps that each hold a slice of it and none of which will show you the whole thing.

The list itself is searchable, and you can filter it down to the accounts a person came from when you only want the people you email rather than everyone in a Slack workspace.

Stop searching your inbox for an address

Connect an account and the list builds itself from what is already there.

Get started
Shared, not siloed

Hand off a relationship with the history attached

Share a person with your team and they appear in a separate team view alongside your personal list. What your teammates get is the record: every address that person actually uses, the phone number that works, the job title that is current, and the notes you kept on them. When somebody goes on vacation or hands off an account, the next person starts from identity work that is already done.

What they do not get is your inbox. Activity on a shared contact is always read from the viewer’s own mail, so a teammate sees their history with that person and never yours. Sharing a contact does not share your threads with them. Notes are encrypted under dedicated keys in AWS KMS that only the application’s service roles can use, the same protection your message content gets.

The same idea, one layer down

A small proof of how the Brain is supposed to work

The Brain is built on a bet that knowledge which depends on people to maintain it will not stay current, so the maintenance has to come from the communication your team is already producing. Contacts is that bet running at small scale, on the easiest slice of it. Nobody keeps this list up. It follows the accounts, and when you correct something by hand your correction is the version that survives.

It also answers a problem every knowledge layer has on day one, which is that an empty one is worth nothing and filling it is a chore nobody signed up for. Contacts never starts empty. The people are already in the accounts you connected, so the list is populated before you have done anything, and the correspondence history arrives with them. Starting from something real and letting it correct itself is a very different proposition from starting from a blank page and promising to keep it fed.

Workflows

A new contact can start an automation

Contacts is not a page you have to visit. A new person arriving is something your workflows can act on, and people are something they can read, write, and hand to an agent mid-run.

New contact as a trigger

A workflow can start the moment a person is created, whether you added them or a sync did. From there it branches on whatever you like, the same as any other trigger.

Write to the Brain

That trigger can create or update a page in the Brain for the person or the account they belong to, so a new name in your contacts becomes a place your team keeps what it knows about them.

Push into your system of record

Since workflows can call any connected MCP server, a new contact can be written straight into Salesforce, HubSpot, or whatever you actually run, without anyone retyping it.

Read, note, and share

Workflows can search your people or load a team’s, append a dated note to someone, and share a person with a team. Agent steps get the same abilities, and every change an agent makes is recorded so you can see what it did.

What we are building

Where this is going

Contacts is worth having the day you connect an account, before you build a single workflow. Workflows are where it compounds, and that is the part we are extending now. Further out is a Brain that maintains itself from your communications without being told to, so an account page is current because your team talked to the customer and not because somebody built an automation for it. The people layer already works that way, and it is the first piece of this running in production. The rest is underway.

Where the line is

This is not a system of record

There are no deals here, no pipeline stages, no forecast, and no close dates, and we are not planning to add them. Salesforce and HubSpot keep their job. The way to think about Contacts is what your address book would be if it kept itself current and remembered your conversations. That sounds modest right up until you notice you do not have one.

Questions about Contacts

Do I have to import anything?
No. Contacts is built from the accounts you already connected to this+that. Connect Gmail, Outlook, Slack, Google Chat, Teams, or Telegram for your inbox and the people come with them. You can also create a person by hand for someone who is not in any connected account yet.
What happens when the same person is in two of my accounts?
We match on email address and resolve them into one record that lists every origin it came from, so one person shows up once with both their work address and their Slack handle. When the automatic match misses, you can select the duplicates and merge them yourself, and the activity from the records you merged follows the surviving one.
Will syncing overwrite the edits I make?
No. Fields you edit are marked as yours, and later syncs leave them alone. An email address you removed stays removed instead of being re-added the next time the source is read.
Where does the activity history come from?
From the mail and messages already flowing through this+that. As each one arrives it is attached to the people involved, with the subject, a snippet, the direction, and the timestamp. You do not log anything, and it appears on the person while you have the page open.
Is this a CRM?
Not in the sense that word usually means. There are no deals, pipelines, stages, or forecasting, and your systems of record keep their job. It is a directory of the people you talk to, with the correspondence attached, shareable with your team.
Can a workflow do something when a contact is added?
Yes. A new person is a trigger, so a workflow can run the moment one is created by you or by a sync. It can write a Brain page for them, push the record into Salesforce or HubSpot through a connected MCP server, share the person with a team, or add a dated note. Workflows can also look people up mid-run, and agent steps get the same abilities with an audit record of what they changed.
Can my team see my contacts?
Only the ones you share, and only the record. Your list is personal by default. Sharing a person makes their details and your notes on them visible to the team in a separate team view, and you can unshare at any point. Your correspondence is not shared: activity is always read from the viewer’s own mail, so a teammate opening a shared contact sees their threads with that person, never yours.

Stop searching your inbox for an address

Connect the accounts you already read your mail in, and the people you talk to arrive with their history attached. Free during beta, no credit card required.

Get started
Free during beta · No credit card required