In short
Two revenue digital workers built in n8n. The first prepares a rep for a call: it loads the account and its research signals, Gemini writes a three-part brief, and plain code then checks every citation against what was actually retrieved and strips anything invented. An account with nothing on file gets an honest refusal. The second runs after the call: it extracts commitments, flags any with no agreed date, updates the CRM record and drafts the follow-up into an approval queue. There is no send step anywhere in the workflow.
Project description
In go-to-market work, a bad AI output does not disappear. A wrong chatbot answer is gone when the tab closes, but a wrongly enriched contact sits in the CRM, gets sequenced and gets emailed. These two n8n workers are built around one question: where is the AI allowed to act on its own, and where is it not. The model reads and writes. Plain code decides what is true, what reaches the CRM and what is allowed to go out.
Tools & Deliverables
- Pre-call worker: meeting trigger, account and signal lookup, prompt built without AI, a Gemini brief in three sections (what changed, what to ask, what to avoid)
- Citation check in code after the model writes, matching every claim's signal id against the rows actually retrieved and stripping anything invented
- Honest refusal for accounts with no research signals, instead of a confident brief built on nothing
- Post-call worker: commitments, objections and people extracted from the call notes, then validated in code before anything touches the CRM
- Follow-up drafted into an approval queue, with no send step in the workflow at all
- Signals, accounts and thresholds held in tables the business can edit, plus an audit log of every brief, draft and CRM write
The problem
- AI mistakes in sales do not evaporate. An invented fact in a call brief gets repeated to a customer. A wrong field in the CRM gets sequenced and emailed for months.
- Models fill gaps with confidence. Asked to brief an account nobody has researched, a model writes something plausible anyway, and that is the moment reps stop trusting the tool.
- Follow-ups invent deadlines. Asked to summarise a call, a model will tidy up a vague promise into a specific date that nobody agreed.
- Auto-send is a one-way door. A follow-up email sent in error cannot be recalled, so sending cannot be left to a model.
Approach
The pre-call worker starts when a meeting is booked. It loads the account and the research signals on file from a table, and that is all the model ever sees: it has no internet access and no other source. Gemini writes a short brief in three sections, and every factual claim has to carry the id of the signal it came from. Then a code node goes back through the text, takes every citation and checks it against the ids that were actually retrieved. Anything the model invented is stripped before a person sees it. The rule is not a polite request in the prompt. It is a check that runs afterwards.
The post-call worker takes the call notes, has the model extract commitments, objections and the people mentioned, and then hands the result to code that decides what may reach the CRM. A commitment must exist and must have an agreed date. If nobody set one, the record says NO DATE AGREED and is flagged rather than given an invented deadline. If the model returns invalid JSON, nothing is written and a person picks it up. The follow-up email is drafted and parked at awaiting rep approval, and the workflow contains no send step to switch on by mistake.
Solution
A real run on an account with three signals produces a tagged brief with no flags, because nothing was invented. A run on an early stage account with no signals returns "Not enough on file to brief this call" instead of a confident guess, which is what lets a team leave the worker switched on. After a call, commitments without a date are flagged, and the follow-up waits for the rep.
The walkthrough also shows a failure that ran green. The first version produced follow-up emails that were polite and empty, because the drafting step sat after the CRM update and was reading the database's response instead of the extracted commitments. Rewiring it to read from the validator fixed it, and the draft now names each promise back to the customer. That kind of fault never raises an error, so it is only caught by reading the output.
FAQ
Can the AI make up facts in the brief?
It can try, but it cannot get them through. Every claim must cite a retrieved signal, and code strips any citation that was not in the retrieved set.
What happens when there is no research on an account?
The worker says there is not enough on file to brief the call, rather than writing something confident and wrong.
Does it send emails on its own?
No. The follow-up is drafted into an approval queue, and there is no send step anywhere in the workflow.
Which CRM does it work with?
The demo uses n8n data tables as the CRM. Salesforce, HubSpot or Pipedrive swap in at the node level.
Can the sales team change how it behaves?
Yes. Signals, accounts and thresholds live in tables the business edits, so behaviour changes without editing a prompt or the workflow.





