How to Keep Your CRM Clean with an AI Agent

One prompt that reads what actually happened — the calls, the threads, the meetings — and writes it back into HubSpot so every deal has an accurate stage, every contact a complete record, and every follow-up a real owner.

01The Problem

Why your pipeline is quietly wrong

The CRM is not wrong because anyone lied in it. It is wrong because the truth lives in your inbox and never made the trip.

Stage is a guess with a date on it

Nobody sets a deal stage wrongly on purpose. They set it from the last conversation they remember, which was three weeks ago, and never revisit it. Because the stage is what every forecast and every commission statement is built from, one stale field quietly propagates into a number the whole company plans around.

The context already exists, just somewhere else

The call summary is in your inbox. The objections are in the thread. Who the real decision-maker is came up on a call and was never written down. All of it is captured, none of it is in the system that gets reported on — so the CRM ends up holding the administrative skeleton of a relationship while the substance sits in a mailbox nobody searches.

Stale records are worse than empty ones

An empty field is honest and obvious. A wrong field is invisible and load-bearing: a rep works the deal to the wrong stage, a forecast counts revenue that has not moved, and a new hire inherits a picture of the pipeline that is confidently false. Fixing that means auditing rather than trusting, and nobody has the day to audit.

02The How-To

The CRM AI agent prompt, step by step

Copy it once, paste it into Zaira, and it reconciles the record against the evidence: pulls recent activity, proposes the stage each deal should be in, writes the missing notes, and assigns the next action to a person with a date on it.

CRM reconciliation
Access to the @HubSpot MCP server. Act as my CRM reconciliation agent. My goal is that every deal in HubSpot reflects what has actually happened — correct stage, complete record, a next action with an owner and a date — using evidence from real conversations rather than memory.

My context

- What I sell, typical deal size, and rough sales cycle: [one line, e.g., B2B SaaS, $8-25k, 40-60 days] - Our actual stage definitions and what evidence justifies each: [list them in your own words] - What counts as a real next step: [e.g., a dated meeting booked, a proposal sent, a technical eval complete] - Nobody should ever touch these: [e.g., enterprise renewals, anything flagged legal hold] - Tone for notes written on my behalf: [e.g., terse, factual, third person]

Step 0: Check tools

List the HubSpot tools you have and map them to the steps below (search_crm_objects, get_crm_objects, search_properties, manage_crm_objects, search_owners). Only work from what the tools return — never invent a deal, an amount, or an activity.

Step 1: Find the record drift

Pull open deals that have had no activity in the last 14 days, plus every deal whose stage disagrees with its own activity timestamps or notes. Also pull deals with no owner, no close date, or no associated contacts. Report the counts and the worst ten by value before changing anything.

Step 2: Propose the corrections, do not make them

For each drift case, using the stage definitions I gave you, propose: the stage it should be in, the evidence from the record that justifies it, and the deal value you are reading. Present all of it as a table for me to approve. Never write to a deal in this step, and never move a deal backwards on thin evidence.

Step 3: Fill the gaps

For the deals I approve, write the missing substance with manage_crm_objects: a dated activity note of what was discussed and any objection raised, the next step as a task assigned to the deal owner with a real date, and any contact or company field the record is missing. Write notes in the tone I specified and keep each under 80 words — a note nobody reads is worse than a missing field.

Step 4: Verify what you wrote

Read back every record you changed and confirm the stage, owner, and next task landed as intended. Report any write that failed rather than assuming it succeeded, because a silently-failed write looks identical to a healthy pipeline.

Step 5: Report

Tell me: deals corrected, notes written, tasks created, anything I excluded and why, and the three deals whose stage I should look at myself because the evidence was genuinely ambiguous.
03Why People're Using

What this does once it's running

Three stages, one goal. The agent keeps the record honest on a schedule, so forecasts stop depending on whoever remembered to update the fields last.

Forecasts stop depending on memory

When stages are reconciled against evidence on a schedule, the number you quote in a pipeline meeting is the number the records support. That is the difference between a forecast and an opinion, and it is the reason the same commitment can be made twice.

Every deal carries its own context

Notes written at the time of the activity, capturing the objection and the next step, mean the record survives the person who took the call. Onboarding a new rep becomes reading the pipeline rather than interrogating the team.

Stalled deals surface before the quarter does

A deal with no activity in a fortnight is reported by value rather than buried in a list. Most of those are quietly dead, and knowing which ones lets you either push or close them out instead of carrying them into next month.

04FAQ

Frequently asked questions

The practical questions people ask before letting an agent write to their CRM.

No — Step 2 is explicitly a proposal step, and Step 3 only writes to the deals you approved. Automatic stage changes are the fastest way to lose trust in a CRM, because the first wrong move is the one that makes people stop checking. Once you have seen its reasoning hold up for a few weeks on low-value deals, widening it to everything except your named exclusions is a sensible next step.

The step that does the work is Step 0, where it is told to work only from tool output, plus the rule that a note must state what was discussed and what objection was raised — a hallucinated note is almost always generic, and generic is what you should reject. Review the first ten notes against your own memory of those calls. If a note could have been written about any deal, it is not evidence of anything.

Weekly for most teams, because that is often enough that nobody is ever more than a week behind and still rare enough to be worth reading the output. Daily works if your stages drive real-time decisions — quota dashboards, capacity planning — and is overkill if the report mostly gets skimmed. Whichever you pick, put it on a schedule: the value here is the accumulated accuracy, not one good pass.

It removes the part of that job that is retyping — logging activities, chasing stage updates, filling fields that were known all along. It does not remove the part that involves judgement about your pipeline, defining stages that actually mean something, or fixing a process nobody follows. In practice the work shifts rather than disappears, toward the decisions that need someone who understands the business.

Workflows fire on a property changing, which means they cannot fix the property in the first place — if nobody updates the stage, no workflow ever runs. This inverts that: it reads the evidence first, then writes what the evidence supports. The two are complementary, and the pairing is the strongest setup — workflows for the rules you can express as rules, this for the judgment that needs reading what actually happened.

Zaira works through HubSpot's own official MCP server — the permissioned connection offered to approved AI partners, not a scraper. There is no shadow portal and no spoofed client; reads and writes happen inside the access you authorized, and you can revoke it from your HubSpot settings at any time. Step 4 exists partly for this reason: a silently-failed write is indistinguishable from a clean pipeline, so it verifies rather than assumes.