RU EN
← ALL PROJECTS

CASE 02 · AI AGENT · N8N

A lead-handling agent in n8n An agent for an air-conditioning service: it answers from the price list, collects the request and passes it to a manager for approval

Agent screens

The agent core in n8n: an AI agent with a model, memory and three tools, answer checking and the model-failure branch
The agent core: the model, three tools, answer checking and the failure branch
The manager's page: a lead awaiting a decision, with «Accept» and «Reject» buttons
The manager's page: a lead awaiting a decision
The customer's status page: the request is confirmed, with the manager's comment
The customer's status page after approval
The approval workflow: the CRM is written only after «Accept», with a retry if the CRM fails
Manager approval: the CRM is written only after «Accept»
1 / 4

The company installs and services air conditioners, and requests come in through the website chat. Now an agent answers the customer right away: it quotes prices from the price list, collects the request and passes it to a manager. The lead reaches the CRM only after the manager clicks «Accept». The company name is not disclosed.

End-to-end design and development: the request process, 12 n8n workflows, manager and customer pages, automated tests, deployment on the client's server
CLIENT
Air-conditioning service
PLATFORM
n8n on the client's server
CHECKS
77 automated tests
CHANNELS
website chat · Telegram

THE TASK

Answer right away — and promise nothing extra

Customers ask in the chat how much an installation or a cleaning costs and when a technician can come. In season there are lots of these messages, and in the evening and at weekends they wait until morning — so the customer goes wherever answered first. A no-code bot can be put together in an evening, but in real life it breaks exactly where a mistake costs money:

The goal was an agent that answers the customer right away and leaves the decision on the request to a manager. All of it in n8n — so the workflow can be read and edited without a programmer.

HOW IT WORKS

Three steps from a question to a lead in the CRM

01

The customer writes in the chat

Asks about prices and terms or wants to book a technician. The main channel is the website chat; Telegram plugs in as a second entry point into the same agent core.

02

The agent answers and collects the request

Prices come from the knowledge base; what isn't in the price list it honestly hands to the manager. It asks for missing details, reads the request back and waits for the customer's consent.

03

The manager approves

The lead arrives on a page with «Accept» and «Reject» buttons. Only after «Accept» is it written to the CRM, and the customer gets a confirmation and a status link.

ENGINEERING PRACTICES

What sets this agent apart from an evening build

01

The agent doesn't write to the CRM

The model has three tools: read the price list, pass a request to the manager and check the status of its own request. It physically can't create a deal — even if someone talks it into it.

02

A decision happens exactly once

A double click, a second manager or «Reject» after «Accept» change nothing, and the CRM record is never duplicated.

03

Refusing to make things up — in two layers

The price tool tells the model explicitly what isn't in the price list. After the model, plain code checks the answer: a price that's neither in the list nor in the customer's message is replaced with an honest «the manager will confirm the price», and the original answer goes to the log.

04

Code checks the data, not the model

Phone numbers are normalised, an address without a house number is rejected, and a repeated call doesn't create a second request — it returns the number of the first one.

05

Customer text is data, not commands

The system instruction says so, and the customer's message reaches the model in a separate wrapper that can't be «closed» from inside. Even a deceived model can't see other people's requests — that's how the tools are built.

06

A model failure doesn't lose the customer

No key, a timeout, a rate limit — the customer gets a polite reply, the message is saved to the log, and the manager gets an alert.

07

A CRM failure doesn't lose the lead

The manager's decision is saved, the lead waits in a queue and is retried every minute. The customer gets a confirmation only after the CRM write has actually succeeded.

08

Everything is logged

Every tool call, every manager decision, every failure and every replaced model answer. You can see what the agent did yesterday and why.

PITFALLS

Where a no-code tool silently loses data

Three traps in n8n itself, found during development. They don't show in a test run: everything works until something breaks.

How these were caught

The automated tests break the storage for real — they rename a table column instead of setting a «failure» flag in code — and check what the customer and the manager see. That's exactly how the «confirmed» without a CRM record was found.

RESULTS

What the company got

Customer reply Immediate, at any hour: in the evening and at weekends the customer gets an answer from the price list and leaves a request without waiting until morning
Manager's work The request arrives already complete — service, address, time, phone. The decision takes one click
Failures A model or CRM failure loses neither the customer nor the lead: everything is logged and the manager gets an alert
Automated tests 77 checks of the agent's logic on a live n8n instance — all passing
Workflows 12, each with one job: entry, core, tools, manager, log, retry, error handler
Deployment One command from scratch on the client's server: container, tables, price list, import and publishing
AI model Any OpenAI- or Anthropic-compatible model on the client's key. The model is swapped in one node — the checks and logic stay the same

ESTIMATE

What this gives a typical service

This is an estimate, not the client's report: the assumptions are typical of a small air-conditioning service in season and are listed below. When we go through your task, I'll redo it with your numbers.

≈ 35

leads a month no longer go to competitors

Evening and weekend enquiries get an answer right away: 300 × 35% × ⅓

≈ 170,000 ₽

extra revenue a month

35 leads × 60% turned into orders × 8,000 ₽ average ticket

≈ 25 hours

of manager time a month

300 enquiries × 5 minutes of chat that the agent takes over

Assumptions

300 chat enquiries a month in season. 35% of them come in the evening, at night or at weekends; if the answer only arrives in the morning, a third of those customers go elsewhere. 60% of leads become orders, with an average ticket of 8,000 ₽. A manager spends 6 minutes chatting before a lead is complete — with the agent, 1 minute to check it.

SEE ALSO

CONTACT

Want an agent like this for your leads?

I'll build an agent like this on your process: your price list, your CRM, your channel. It can be a subscription — with no development fee. Message me on Telegram and we'll go through the task.

Message on Telegram dnovoselov@bk.ru

I reply within 3 hours on weekdays

I work under a contract and an NDA. My price ranges are in the Pricing section.