Operator
← Back to blog
GuidesIntegrationsProductivity

Log new contacts to your CRM by talking to your agent

Operator TeamOperator Team···6 min read

How it works

Connect Composio to your Operator.io agent and send the CRM logging prompt.

  • You forward an email from someone new, paste their details, or describe a person you met, and the agent reads the input for name, company, role, and email.
  • It searches your CRM through Composio for an existing record with the same email or name before writing anything.
  • It creates a new contact or updates the existing one with a note on how you connected and what the next step is.
  • It posts a short line to your Slack channel so the team sees who came in.
  • When you ask, it drafts a follow up email and waits for your approval before sending.

Adding a contact becomes a sentence in the channel you already use, and the agent fills the CRM fields while the context is still fresh instead of waiting for a later session that may never happen.

The contacts that never make it into the CRM are the ones you meet away from your desk: someone interesting at an event, a warm intro buried in an email thread, a reply from a prospect you meant to log later. The record only gets created if you stop, open the CRM, find the right fields, and type. Composio connects your agent to your CRM and team chat through a single setup, so you forward an email or drop a name into Telegram or Discord and the agent handles the data entry, the duplicate check, and the heads up to your team.

Connect Composio first

This prompt writes to your CRM and posts to Slack, so it needs Composio connected to your agent. Open the MCPs page in your Operator dashboard, add Composio, and sign in to your own account in the window that opens. The Composio setup guide walks through it, and the prompts library will offer to connect it inline the first time you send a prompt that needs it.

Composio's free tier includes 20,000 standard tool calls a month with no credit card required, as documented on their pricing page and in the premium tools docs. Logging a contact typically uses a handful of calls: one search, one create or update, and one Slack post. That volume stays well inside the free allowance for most individuals and small teams.

Composio carries HubSpot, Salesforce, Pipedrive, Attio, and the rest of its toolkit catalog behind the same connection. Each app authorizes the first time the agent reaches for it, so the first contact you log will prompt a quick OAuth approval for your CRM and Slack, and after that it writes to them directly.

What the agent writes to your CRM

Different CRMs use different object names, and the fields still line up:

CRMPerson objectFields it carries
HubSpotcontactsfirst and last name, email, company, job title, lifecycle stage
SalesforceContact objectthe comparable fields plus account relationships
Pipedrive and Attioa person linked to a companycustom properties you define

The prompt asks the agent to capture name, company, role, email, how you connected, and the next step. During setup it also asks which fields you require on every record and how you tag people by source or stage. Those rules become consistent metadata on every contact the agent creates, which matters when you filter the pipeline later by "met at conference" or "warm intro."

Duplicate prevention works by searching before writing. The agent queries the CRM for an existing contact with the same email address, which is the strongest match key in most systems. If it finds one, it updates that record with the new note and context rather than creating a second entry. That keeps the pipeline clean when two people log the same lead or when you meet someone who is already in the system from an earlier conversation.

Email is the key that makes the match safe, since it belongs to one person. When you log someone without an email, the agent falls back to matching on name, and two people can share a name, so a name only match can land an update on the wrong record. For a common name with nothing to anchor it, have the agent confirm the match it found before it writes, or create a fresh contact rather than fold two people into one.

The prompt

This is the instruction the agent acts on:

Be my CRM assistant, working through the apps I connected through Composio.
When I forward you an email from someone new, paste their details, or tell
you about a person I just met, add them to my CRM as a contact with their
name, company, role, and email, plus a note on how we connected and what to
do next. Check the CRM first so you never create a duplicate, and update the
existing record instead when the person is already there. Once a contact is
logged, post a short line to my Slack so the team sees who came in, and when
I ask, draft a follow up email for me to approve before it sends. Before you
start, ask me which CRM and which Slack channel to use, what details you
should always capture on a new contact, and how you want them tagged or
categorized.

The same prompt is saved in the prompts library, so you can send it to your agent without retyping a word.

Using it day to day

Most of the time you are forwarding. An intro email comes in, you send it to the agent, and it reads the signature, pulls the name, company, and role, writes a note that says how you connected and what the next step is, and creates the record. If that person is already in the CRM, it updates their record instead of making a second one. The line it posts to Slack means the rest of the team knows the contact exists without you announcing it separately.

You can also log from a quick message when there is no email to forward:

Met Sarah Chen at the SaaStr event. She is VP Product at Acme, sarah@acme.com. Follow up about our integration next week.

The agent creates the record with that context and posts to Slack the same way.

Because Composio also connects your inbox, the follow up is one message away. Tell the agent to draft an intro to the person you just logged and it writes one, shows you the draft, and sends it once you approve through Gmail or Outlook, whichever you connected.

Composio as the connection layer

A CRM logger tied to one platform breaks the day you switch CRMs. Composio sits between your agent and the apps: it holds OAuth tokens, refreshes them on schedule, and exposes each CRM's API as tools the agent can call.

HubSpot's toolkit in Composio covers contacts, companies, deals, tickets, and engagements. Salesforce covers leads, contacts, accounts, and opportunities. The agent uses whichever toolkit matches the CRM you connected, without you changing the prompt.

The same Composio connection reaches Slack for team notifications and your email for follow ups, so one MCP setup covers the whole loop. Everything runs under your own Composio account with the apps and tokens yours to manage. If you outgrow the free tier, the Ridiculously Cheap plan at $29 a month includes 200,000 tool calls.

Good to know

The first contact you log triggers OAuth prompts for your CRM and Slack. After that, logging is a message. Composio logs every tool call, so you can audit what the agent wrote if a record looks wrong.

The Slack heads up is also where a contact's details leave the CRM and land where your team reads, so point it at a channel whose members should see who is coming in, and keep the line to the essentials, a name and how you connected, rather than the whole record. Those same details sit in your agent's chat history with the CRM too, which matters when you forward an email thread that carries more than a signature. Custom fields and pipeline stages vary by CRM; tell the agent during setup which stage new contacts should start in and it applies that on every create.

To set it up, connect Composio on the MCPs page, then open the prompts library and send the log contacts prompt. It asks which CRM and channel to use and what to capture on every new contact, and then logging someone becomes a message instead of opening the CRM app.

Frequently asked questions

How do I log a contact to my CRM with the agent?

+

You forward an email from someone new, paste their details, or tell the agent about a person you met, and it adds them to your CRM with name, company, role, and email, plus a note on how you connected and the next step. It checks the CRM first so it never creates a duplicate, updates the existing record when the person is already there, and posts a short line to Slack so the team sees who came in.

Which CRMs does this work with?

+

Through Composio, the agent reaches the major CRMs including HubSpot, Salesforce, Pipedrive, and Attio. Composio holds the OAuth and refreshes it, and the agent points at whichever you connected, so switching CRMs later does not change the prompt. The same connection also reaches Slack for the heads up and your inbox for follow ups.

Will it avoid creating duplicate contacts?

+

Yes. Before it writes, the agent searches the CRM by email or name and updates the existing record instead of making a second one. You set the rules up front, which fields are required and how you want people tagged by source or stage, and it applies them every time so records stay consistent.

Can it draft the follow up email too?

+

Yes. Because the same agent holds the contact and your inbox through Composio, you can tell it to draft an intro to the person you just logged. It writes one, shows you the draft, and sends it once you approve. Nothing goes out without your yes.