AI implementation in fence manufacturing: 636 prices out of the red and 84% of leads that never reached a site survey
An AI implementation case in fence manufacturing: a full-cycle fence and gate maker with its own workshop and seven installation crews, about 30 people, roughly ₽160M a year in turnover and about 4,200 leads a season. In five weeks the corporate Claude became the owner’s working tool: it is connected to seven company systems, rebuilt a year of financials from source documents, took the website price calculator out of the red, found where leads are lost, reviews the sales managers’ work every morning and, since October 20, answers customers on Avito on the night shift. Part of the effect is already working; part is still a calculation that can be checked against facts in spring 2027.
Published · Breakdown by Anton Ro Baten
Case at a glance
- Company
- Full-cycle fence and gate manufacturing and installation: own workshop, own crews, automation, pile foundations
- Scale
- About 30 people · 7 crews · ~₽160M a year · ~4,200 leads a season
- Request
- See the real profit and find where money and leads are lost: the data sat in five disconnected systems
- Timeline
- 5 weeks · mid-September to October 21, 2026
- Status
- Implementation continues; the calculated effect of the new prices will be checked against facts in spring 2027
- 636fence and gate options in the website calculator — none in the red
- +24%profit at +2.4% price — a calculation on the same January–September orders
- 16%of leads reached a site survey, while 91% of surveys became contracts
- 9:00by this time the head of sales has a review of every call of the day, per manager
PromptSum up the five weeks of the rollout — for the owner.
- Week 1Environment
Workspace, single sign-on, connectors to the CRM, Avito and 1C
- September 22Financial check
the “−₽1.5M” turned out to be ₽13.7M left in the company
- October 7Prices from cost
636 options — none in the red
- October 9Manager review
every call of the day — by 9:00
- October 20Night shift
an AI manager in Avito chats
Point A: where they started
- The data sat in five disconnected systems: the CRM, Avito, the 1C accounting of two sole-proprietor entities, an installation spreadsheet and the website. A simple question meant merging spreadsheets by hand.
- Nobody saw the real profit: more than half of the expense invoices in 1C were stuck as drafts, and the two entities’ costs were never consolidated.
- Website prices had grown historically: nobody knew which fence made money and which sold at a loss.
- Nobody listened to calls. The owner personally pulled postponed leads, wrote to customers and assigned follow-ups.
- The goal of “15 crews and a second site” existed without any calculation of what it runs into.
- The keys to the infrastructure were not with the owner: a contractor controlled the website and the domain, there was no corporate email, and work lived in personal mailboxes. A year earlier a manager left with the access, and passwords were changed by hand.
PromptWho holds the keys to the website, the domain and email right now?
- Who holds the keys
Before: A contractor controlled the website and the domain; work lived in personal mailboxes
After: The owner is the super administrator of the corporate environment
- Email
Before: There was no corporate email
After: Email on the company domain — same address
- When someone leaves
Before: A manager left with the access — passwords were changed by hand
After: Access is granted and revoked with one button
- Data
Before: Stays with the person who left
After: Stays with the company
What we did
An environment, not a chatbot
The first three sessions went not into AI but into the foundation. Corporate Google Workspace on the company domain with the owner as the super administrator; email moved without changing the address; single sign-on (SSO); a Claude Team plan; one working environment for everyone. Access is granted and revoked with one button, and the data stays with the company, not with whoever left.
Our own connectors to the CRM, Avito and 1C
There was no ready connector to amoCRM for the task, so we wrote our own integration: a separate $6-a-month server, Docker, a secure connection on a company subdomain. The same for Avito (about 55 functions) and 1C (a separate read-only “AI analyst” user). Claude works with the data directly, without exports.
Safeguards from day one
Any change in the CRM, on Avito or in prices is shown as a preview and applied only after the owner confirms. Messaging customers is allowed only for deals with a dedicated tag, with quiet hours, a limit on unanswered messages and no duplicates. Customer phone numbers are hidden and every action is logged. Before touching prices, a full copy of the calculator settings was taken — more than 1,100 fields, rollback in minutes.
A year rebuilt from source documents
More than 40 exports from 1C and the CRM for the year: profit and loss reports, invoices, cash and bank of both entities, piece-work orders, payroll, the sales funnel. Four independent revenue sources — sales, reports, receipts and purchases — matched each other.
Prices from cost
A cost model: purchasing, crew rates, delivery, site survey, the manager’s commission, taxes, rent, the winter payroll and advertising at ₽9,652 per deal. The bar is a margin of at least ₽20,000 per crew-day. Installation rates and minimums were changed, material prices were not; every change was checked with a live calculation on the website.
A daily review of the sales managers
Every night all calls of the day are transcribed and the chats analysed. By 9:00 the head of sales has a document per manager in the CRM: metrics, what worked, what to fix, a breakdown of every call and a ready message to the customer to book a site survey. Done by hand from October 9 to 19, then on a schedule.
An AI manager on the night shift
Trained on 35 calls of the best manager and the department’s chats: strong techniques kept as they are, mistakes fixed — a conversation always ends with a survey date or a callback. Tested in a dialogue where the head of sales played the customer, then the owner corrected every step. Since October 20, from 21:00 to 9:00 it answers Avito chats, prices the job with the calculator, books surveys no earlier than the next day and sends a report in the morning. It works under the head of sales’ supervision, and the company does not hide it.
Purchasing, finance, strategy
The supplier order is assembled from the installation schedule, with unclear items — colour, thickness, quantity — flagged separately. An expense report for both entities: 1,954 payments in 22 categories; a passport of the 1C database. The 2027 strategy starts from a Point A confirmed by the owner: 10 crews by June, four priorities, roles and a 90-day plan.
PromptShow me what is connected and what you are allowed to do.
- amoCRMwrites after confirmation
Funnel, lost deals, calls, estimates, survey booking, chats
- Avito · ~55 functionschanges with log and rollback
324 listings, spend, chats, reviews, bids, competitors
- 1C: operations and accountingread-only
Documents, postings, balances; a separate “AI analyst” user
- Website calculatorcalculation
Prices any fence or gate the way the customer sees it
- Installation scheduleread-only
701 installations, 668 linked to deals; crews and materials
- Google Workspaceread and write
Email, calendar, Drive, knowledge base, portfolio
- Browserwith confirmation
Website admin and web dashboards
- Messages to customers only for deals with a dedicated tag
- Before any price change — a copy of 1,100+ fields, rollback in minutes
- Customer phone numbers hidden, every action logged
- The customer asks “when can you come?” — and is not offered two specific dates
- A discount comes up before the customer objects to the price
- “From 30,000” in the listing falls apart in the very first call
- Promises differ from the contract — so one set of terms was written
Hello! About your fence: the surveyor can come on Thursday from 10 to 12 or on Saturday from 14 to 16. Which suits you better?
Estimate check: ₽176,300 in the CRM differed from the calculator by ₽6,300 — inside was a ₽1,000 shortfall: 100×100 posts priced as 80×80.
PromptHow did the AI manager’s first night go?
- Customer · played by the head of sales
I need a sliding gate with automation. How much?
- AI manager
Two quick questions: how wide is the opening, and which infill — profiled sheet or 3D panel? I’ll price it turnkey.
- Customer
A bit pricey. A competitor is cheaper.
- AI manager
Recalculated for your request: ₽135,680. Without automation — ₽107,180. Let’s compare the packages item by item: frame, automation, warranty. The surveyor can come on Thursday or Friday.
- ₽144,080
- ₽137,180
- ₽135,680
- no automation ₽107,180
- First 2–3 clarifying questions, then the price
- Default sliding-gate frame — 60×40
- On “too expensive” — compare packages, not a new discount
- No false promises like “I’ll pass it on in 15 minutes”
Since October 20 the AI manager covers Avito chats from 21:00 to 9:00 under the head of sales’ supervision. On the first night it continued a manager’s conversation with no price mismatch and stayed silent where a customer’s reply was pending.
What AI found in the data
- Only 16% of leads reached a site survey, while 91% of surveys became contracts. The bottleneck is the first contact, not the contract price or the surveyor. Avito chats are the worst at 8%, and the main reason is silence (70 of 104 such losses company-wide).
- Of 35 “they will get back to us” losses, 28 were phone calls: the price was named, the next contact was not set.
- Response time is 4–14 minutes during working hours, but one in ten evening Avito leads waited about 11 hours for an answer until morning.
- Long fences on the website sold at a loss of up to −5%, chain-link at up to −41%. Work on 90 m cost ₽159,176 and on 91 m ₽124,522: 100 metres came out cheaper than 90. Channel steel sold at ₽1,500 per metre — below the purchase price.
- The installation minimum was calculated as ₽42,000 instead of the intended ₽15,000; a sliding-gate frame cost differently in two calculators — ₽22,000 and ₽24,000.
- The workshop is loaded at 68% and the surveyor at 46%: the “welders are the bottleneck” hypothesis was disproved, and a second surveyor is not needed yet. Crews are loaded at 87% over the season — 110–119% in summer and 35–80% in spring and September: 189 free crew-days.
- Overhead is ₽41,904 for every crew working day: an order can now be priced by crew-days.
- Advertising is ₽7.2M a year at ₽1,720 per lead; an Avito deal costs half as much as one from Yandex Direct.
- Sliding gates with automation are ₽20–40K more expensive than competitors’: this explained the managers’ complaint that “we lose on automation”.
- On Avito, fences were listed under “Goods”, so for “turnkey fence” searches the company ranked 32nd–64th or not at all. Some listings spent ₽1,800–2,640 per contact versus ₽45–315 for the working ones; about ₽12K went to job-vacancy listings.
- The growth ceiling: tax regime limits, the long GAZelle truck and survey capacity converge at ~10 crews. The goal of “15 crews” moved to 2028.
- A ₽176,300 estimate in the CRM differed from the calculator by ₽6,300, and inside the difference was a ₽1,000 shortfall: 100×100 posts priced as 80×80. Managers sometimes edit PDF estimates by hand, so the CRM amount differs from what the customer received.
PromptWhat do we now know about the business — in numbers?
- Lead → survey16%
91% of surveys become contracts: the bottleneck is the first contact
- Crew load87%
110–119% in summer, 35–80% in spring and September: 189 free crew-days
- Workshop68%
the “welders are the bottleneck” hypothesis is disproved
- Surveyor46%
a second surveyor is not needed yet
- Overhead₽41,904
for every crew working day
- Advertising₽7.2M
a year; ₽1,720 per lead, an Avito deal costs half as much as Yandex Direct
- Website pricesdown to −41%
chain-link at a loss; long fences down to −5%
- Growth ceiling~10 crews
tax regime, the long GAZelle truck and surveys; the goal of “15” moves to 2028
- 1C records62,955
postings since May 2024, 45 of them dated in the future
Two cross-checks matched on their own: ₽7.2M of advertising ÷ ₽1,720 = 4,186 leads against the company’s “about 4,200”; Avito spend is 3.3% of the channel’s contract total against an independent “about 3.8%”.
PromptWhere are we losing customers? Be honest — after the CRM fix.
- Avito chat208 leads8%
silence: 70 of 104 such losses
- Call to the main number98 leads18%
“they will get back to us” with no next contact set
- Avito call89 leads19%
“they will get back to us” — 17 losses
- Website and calculator48 leads29%
price
- Separate ad number44 leads0%
spam — 43 of 44
- Word of mouth19 leads63%
September leads are still being worked: shares compare across channels but run higher than the annual 16%. Junk is 160 of 420 losses; price is about a quarter, evenly across channels.
PromptCheck the website calculators against real deals.
−₽34,654 for one extra metre
- ₽159,176
- ₽124,522
- 90 metres
- 91 metres
And 100 metres came out cheaper than 90. Length boundaries moved into the settings and were checked in every calculator; the installation minimum was recalculated from cost, channel steel raised from ₽1,500 to ₽2,800 per metre.
Point B: results
Website calculator prices — since October 7
| Metric | Result |
|---|---|
| Fence and gate options at a loss after all costs | long fences down to −5%, chain-link down to −41% → 0 of 636 |
| Price for the customer | +2.4% on average; mid-length fences got slightly cheaper |
| Left in the company on January–September orders (calculation) | ₽13.7M → ₽17.0M · +₽3.3M · +24% |
| Margin per crew-day: 3D panels, 10 m | ₽7,800 → ₽18,600 |
| Same, 30 m | ₽12,300 → ₽23,000 |
| Same, 100 m | ₽16,900 → ₽21,800 |
| November–December: long fences adjusted for short days (calculation) | down to −13% · ≈ +₽0.6M |
Sales department
| Metric | Result |
|---|---|
| Review of the managers’ calls | nobody listened to calls → every call and chat of the day — by 9:00, per manager |
| Avito chats in the evening and at night | one in ten evening leads waited ≈11 hours → an AI manager answers from 21:00 to 9:00 |
| Transcribing one call | 139 seconds → 25–80 seconds |
| Customer terms: survey, warranties, payment, installation queue, refunds | promises differed from the contract → one set of terms for managers and AI |
Avito: end-to-end analytics down to the contract amount, July → September
| Metric | Result |
|---|---|
| Cost per contact | ₽1,095 → ₽382 |
| Spend per contract | ₽8,850 → ₽3,487 |
| Contracts and their total | 20 · ₽3.2M → 39 · ₽7.5M |
| Deals linked to listings | 11% → 52% in October |
Why +2.4% on price gives +24% on profit: profit is about a tenth of turnover, and the mark-up is shared with nobody and goes into it in full. Hence the tenfold leverage — and the answer to why a ₽160M business should go through 1,100 calculator fields.
PromptWhat do the new prices give on this year’s orders?
- 10 metresBefore₽7,800After₽18,600
- 30 metresBefore₽12,300After₽23,000
- 100 metresBefore₽16,900After₽21,800
The bar is at least ₽20,000 per crew-day. Installation rates and minimums changed; material prices did not.
- Left in the company+₽3.3MOld₽13.7MNew₽17.0M
Profit is about a tenth of turnover, and the mark-up is shared with nobody and goes into it in full: hence the tenfold leverage. Calculated on actual orders with the same number of customers; to be checked against facts in spring 2027.
PromptDoes Avito pay off? Show the analytics down to the contract amount.
- ₽1,095
- ₽716
- ₽382
- ₽569
- July
- August
- September
- October 1–12
Spend per contract — ₽8,850 → ₽3,487, deals linked to listings — 11% → 52%. We don’t credit AI with the drop: the new bids are only prepared, and October has not matured.
How we measured
- On September 22 the first estimate on incomplete data showed a loss of about ₽1.5M: costs ran ahead of revenue, and prepayments for unfinished work created the feeling of money. That figure was not accepted as a result, and the year was rebuilt from source documents.
- The verified picture: ₽13.7M stays in the company for January–September, about ₽15.5M for 12 months — after the owner’s salary.
- Two cross-checks matched on their own: ₽7.2M of advertising ÷ ₽1,720 per lead = 4,186 leads against the company’s “about 4,200”; ₽459K of Avito spend for July–September is 3.3% of the channel’s contract total against an independent estimate of “about 3.8% of revenue”.
- +₽3.3M is a calculation: the new prices applied to actual January–September orders, assuming the number of customers does not change. It will be checked against 1C and the CRM in spring 2027.
- The funnel is September: 582 leads in the main funnel after the CRM accounting was fixed. These leads are still being worked, so the shares compare across channels but run higher than the annual 16%.
- Every figure was cross-checked against several sources and confirmed by the owner.
PromptThe first estimate showed minus one and a half million. Is that true?
Incomplete data: invoices stuck as drafts, the two entities’ costs never consolidated
left in the company for January–September, about ₽15.5M for 12 months — after the owner’s salary
- Salesmatches
- Profit reportsmatches
- Receiptsmatches
- Purchasesmatches
More than 40 exports from 1C and the CRM for the year. On dirty data AI gives a convincing and wrong answer: first check where the data lives, only then trust it.
What AI does not get credit for
- We don’t credit AI with the drop in Avito cost per contact from ₽1,095 to ₽382 or with the growth in September contracts: the new listing bids are only prepared so far, and October contracts have not matured.
- Decisions on prices, bids and messages to customers are made by the owner: AI shows every change as a preview and applies it only after confirmation.
What didn’t work
- Two figures turned out wrong: the first financial estimate showed a ≈₽1.5M loss instead of ₽13.7M staying in the company, and the first CRM report showed “99% of leads unanswered” because calls and chats were stored on contacts, not on deals.
- Three calculations diverged from reality: gate bundling distorted the mark-ups in 1C, a 5% target slipped into the model instead of 2%, and for fences with sliding gates the calculator applies a lower minimum. All three were caught by checking against the website before any decision.
- Two incidents in the website admin: 3D panel prices were zeroed and the thickness list collapsed. Both were fixed quickly; now there is a reference copy before changes, test edits only with consent, and a reload and check after every save.
- Mass data collection from Avito through the browser triggered an IP block. Since then — the official API, and the browser only in small portions.
- Of three stalled deals Claude handles in messengers, one is lost: the customer had already installed a cheaper gate from a competitor. Two are being negotiated.
What’s next
- Automate the first contact: response time, a task for the next contact, follow-ups without the owner. The goal is lead-to-survey conversion from 16% to 22%.
- A night bot in messengers for tagged deals, a voice bot for missed calls (the prototype is ready) and a customer bot on the knowledge base.
- Early booking for the 2027 season from the base of lost leads and past customers — for the 189 free crew-days; a recalculation of fences with sliding gates.
- Management reports from 1C: an audit of counterparties and balances, then profit and loss, cash flow and monthly balances.
- A measurement in three to four weeks against the September baseline: “Avito chat → survey” conversion (8%), “they will get back to us” losses (28 of 35), night leads handled by the AI manager, cost per contact, contracts and their total at the same budget (39 contracts, ₽7.5M).
- The 2027 goal is 10 crews by June and about ₽30M staying in the company versus ₽15.5M now.
PromptSum up the effect. Separate what is done from calculations — no embellishment.
- DoneAll 636 calculator options are at zero or above after all costs—
- CalculationThe same January–September orders at the new prices+₽3.3M over 9 months
- CalculationNovember–December: long fences adjusted for short days instead of a loss of up to −13%≈ +₽0.6M
- Potential“Avito lead → survey” from 12% to 20% at the same budget≈ ×1.5 contracts
- Potential189 free crew-days — early booking for the seasonmethod to be checked
- 2027 goal10 crews by June≈₽30M vs ₽15.5M
Takeaways for your business
- AI in a mid-sized business starts not with a chatbot but with the question of who holds the keys to the infrastructure, where the data lives and whether it can be trusted.
- On dirty data AI gives a convincing and wrong answer: the first estimate showed a loss where the company makes ₽13.7M. Cross-check the sources first, then draw conclusions.
- Price is the shortest lever on profit if it is calculated from cost: with profit at a tenth of turnover, +2.4% on price gives +24% on profit.
- Look for the bottleneck in the funnel, not in feelings: “the welders can’t keep up” and “we need a second surveyor” were not confirmed, while 84% of leads were lost before the survey.
- Changes in live systems only with a copy and a check after every save.
More cases
- Live AI caseCosmetics manufacturer on Wildberries & Ozon26automations in 6 weeks — 3 were planned
- Live AI caseCar rental for taxi drivers−20%payroll: ₽2.5M → ₽2.0M a month
- Scaling before the AI eraMarposadkabel×5revenue: ₽400M → ₽2B+