Services Security How We Work Who We Serve Team Case Studies Contact Get in touch

Case Study · Field Sales Automation

Turning a two-line text message into a fully costed sales record

An AI system that reads a door-to-door sales rep's plain-language message the way an experienced operations manager would, then extracts the sale, prices it, calculates commission, and files it, in the time it takes to hit send.

“sold the internet bundle to Jordan Blake at 14 Maple Ave, said call back Wednesday”
address14 Maple Ave
customerJordan Blake
servicetelecom · bundle
tiertier2
commissioncalculated
callbackWednesday

In short

This case study documents an AI system built for a door-to-door sales company that sells electricity, gas, and telecom contracts. It uses Claude, Anthropic's AI model, to read sales reps' plain-language Telegram messages and convert them into priced, commission-calculated records in a shared Google Sheets ledger, replacing manual end-of-day paperwork with a single message sent from the field.

The Situation

The client runs a door-to-door sales operation, with reps working neighborhoods on foot and selling electricity, gas, and telecom contracts door to door, house by house. Every visit produces data that matters: an address, a signed contract or a promise to call back, a plan and pricing tier that determines commission, and a renewal date the business needs to act on months later.

Industry
Door-to-door utility & telecom sales
Services sold
Electricity · Gas · Telecom
Field team
Multiple teams, each with a team lead

The Problem

A rep doesn't only need to remember the houses where they made a sale. They need to track every door they knocked on, including the ones where nobody answered. Before this system, that tracking lived in personal notes or a shared Google Sheet, filled in by hand at the end of a long day on foot.

In practice, that meant data that was messy, inconsistent, and often simply lost. Entering a full day's addresses into a spreadsheet took long enough that it frequently didn't happen until days later, if at all. Callbacks and follow-up visits existed only in a rep's memory, not on any calendar. And the company itself had no independent way of knowing where a rep had actually been that day. The only record was whatever the rep chose to write down and send in.

The business didn't need another app for reps to learn. It needed a way to capture every visit, sold or not, the moment it happened, through a channel reps were already using.

The Build

Two n8n workflows, wired together through a shared Google Sheets ledger, cover the full loop from field to reporting.

Workflow 1

The Field Capture & Commission Engine

A rep sends one Telegram message, written however they'd naturally describe the visit, in their own shorthand, sometimes several sales in a single note. Claude reads it with the judgment of a trained operations reviewer, not a rigid form parser.

  • Logs every door, not just the sales. A quick note like “not home, try again Thursday” is captured just as reliably as a signed contract, so no address falls through the cracks.
  • Splits multi-sale messages. One visit selling electricity, gas, and a telecom plan at once is extracted as three distinct, independently priced sales.
  • Resolves plans against a live pricing sheet. Matches the plan and ownership status to the correct commission tier from a sheet the business team maintains themselves.
  • Understands relative dates. “Call back Wednesday” becomes an actual calendar date, correctly resolved from the day the message was sent.
  • Calculates commission on the spot. No rep or manager does this math; it's written straight to both the master ledger and the rep's own sheet.
  • Gives each rep their own sheet, not the master's. Every rep has a separate spreadsheet, not a tab in the shared file, so nobody can see another rep's numbers or the company's master data. It carries less than head office sees, but everything a rep needs: their own clients, what was sold to each one, and a running total of their own commission for the month.
  • Flags what it isn't sure about. Low-confidence extractions go to a review queue instead of being silently filed as fact, so uncertain data never quietly becomes real money.
  • Catches address conflicts. If a second rep logs a sale at an address another rep already claimed, both a warning and a review record are created before it turns into a dispute.
  • Confirms back in Telegram. The rep sees what was logged in the same chat, no separate app to check.
Workflow 2

The Daily Field Briefing

Every morning at 7am, the system reads the same ledger, finds every callback and every contract renewal due that day (electricity and gas at their 11-month mark, telecom at 23 months), and emails each active rep their own task list. No manager compiles it. No rep has to remember what's coming due.

The System at a Glance

Both workflows read and write the same ledger, so nothing has to be re-entered twice.

System architecture diagram A rep's message is extracted by Claude, priced, and either logged to a shared Google Sheets ledger or routed to a human review queue for low-confidence data or address conflicts. Every morning at 7am, a separate workflow reads that same ledger for due renewals and callbacks and emails each rep their daily task list. Field Capture & Commission Engine Daily Field Briefing, every 7:00 AM Message received Rep logs a visit, in plain text Claude reads the message The whole message, not just sales Record updated Ledger updates; commission if sold Rep gets confirmation Same Telegram thread Low confidence → human review queue Address conflict → warning + review log Shared Ledger Google Sheets, one master ledger, plus a separate sheet per rep 7:00 AM trigger Runs once daily Read due items Active reps, from the ledger Build task list One per rep, per day Email sent Daily digest
Automatic Routed to a person Shared source of truth

Impact

  • Notes that used to get lost in a notebook or a half-filled spreadsheet are now captured the moment a rep leaves the door, sold or not.
  • Management can see where the team has actually been, in near real time, without waiting on anyone to write it up and send it in.
  • Commission is calculated the instant a sale is logged, not batched, re-keyed, or reconciled by hand later.
  • Renewal and callback tracking runs on its own; every active rep starts the day with a compiled list instead of relying on memory.
  • Commission disputes between reps working the same address are caught automatically, at the source.
  • Low-confidence data is never trusted silently; every uncertain sale reaches a human before it becomes a paid record.
  • The company can see total margin and commission broken down by team, automatically, the same numbers a team lead's own percentage is calculated from.

Why This Is More Than a Chatbot

Built on tools they already trust

Telegram, Gmail, and Google Sheets: a deliberately low-cost choice, not enterprise software, picked because it matched the team's size and needed zero retraining. More on that trade-off below.

Pricing lives in a spreadsheet, not code

When commission rates or plans change, the business updates a sheet. The AI reads it fresh on every message.

Uncertainty is a feature, not a bug

The system knows what it doesn't know, and routes those cases to a person instead of guessing with someone's commission.

Layered access, not shared access

The master ledger holds everything; each rep only ever sees their own separate sheet. No rep sees another rep's numbers, let alone the company's.

Data & Security

What moves through this system isn't abstract. It's a real person's name, home address, phone number, and sometimes a tax ID. That gets treated as sensitive by default, not as an afterthought. Here are the questions we'd ask if we were the client.

Does the AI actually see customer data?

Yes, and we won't pretend otherwise. A rep's note, which can include a name, address, and phone number, is sent to Claude so it can be turned into structured fields. That's the only customer data that ever leaves the client's own systems, and it's in transit for a couple of seconds, not stored as a copy anywhere along the way.

Is that AI account trained on what it sees?

No. Extraction runs through Anthropic's commercial API, under Anthropic's commercial terms, not the consumer Claude.ai product, and not a personal or free-tier key. Commercial API traffic is contractually excluded from being used to train models, and inputs are automatically deleted from Anthropic's systems within 30 days, per Anthropic's published data retention policy.

What runs the automation itself?

Our own self-hosted server, not a shared third-party cloud instance. Nothing passes through infrastructure outside our control before it reaches the client's own systems.

Where does the data actually get stored?

Nowhere but the client's own Google Workspace. Every record lives permanently in sheets they own outright. There's no separate database on our side holding a copy. If our involvement ever ended tomorrow, their data stays exactly where it already was.

Is that the only thing that ever leaves their systems?

Yes, just the message text, for the moment it takes to extract it. The structured result comes straight back; there's no bulk export and no historical archive replicated to a third party.

Under the Hood

The hard part here was never the plumbing. It was the judgment: parsing a message that describes three sales at once, matching a plan name against dozens of plan/tier combinations, knowing when to trust an extraction and when to route it to a human, and catching a conflict before it becomes a dispute. That logic is what took real design work.

It runs on a workflow orchestration layer with an AI reasoning step at its core, backed by a spreadsheet-based ledger and the messaging channels the team was already using, which also means no servers to patch, no app for reps to install, and pricing changes that ship the moment someone edits a sheet.

One choice worth naming directly: this runs on Google Sheets, not a database. That wasn't an oversight. Sheets isn't an enterprise data platform, and we don't pitch it as one. It was the right-sized tool for where this business actually is: a lean field operation that needed a low-cost system reps could start using on day one, with nothing new to learn and nothing torn out and replaced. The access controls, review queues, and per-rep separation described above exist precisely because Sheets alone doesn't enforce any of that on its own. If the business scales to the point where it needs a proper database with role-based permissions and an audit log, that's a clear, well-understood next step, not a rebuild.

n8n Claude (Anthropic API) Google Sheets Telegram Bot API Gmail

Have a field team drowning in manual reporting?

This is the kind of system we build: AI that sits inside the tools your team already uses, turns messy real-world input into clean structured data, and knows when to hand a decision to a human instead of guessing.

Talk to us about your workflow

Client name withheld at their request. Details describe the system as built.