Bakery and confectionery
AI ecosystem for a bakery with several shops
A voice AI agent answers calls, takes orders and qualifies customers with BANT, and every Friday it sends the owner a weekly forecast with the main risks.
- Client
- Bakery with several shops
- Format
- Commercial case
- Stack
- Happ.tools, n8n, OpenAI GPT-5-mini
- 0manual steps per call instead of 4
- 24/7advice and order taking
- 1 reportfor the owner every week, no manual analysis

The problem
The bakery handles lots of calls and messages every day: customers ask about products, order pastries and check delivery options. Each request had to be answered, the order written down, a manager notified and the customer added to the records. That meant at least 4 manual steps per call.
Customers could not get through outside working hours, order details got lost, managers heard about new orders late, and the owner had no overall picture of customers and calls.
The solution
A voice AI assistant built on Happ.tools with its own knowledge base about the bakery. In a single conversation it:
- advises the customer on products, prices and delivery;
- takes the order: items, quantity, pickup or delivery, address and date;
- quietly assesses how ready the customer is to buy using BANT, and hands the call to a manager when needed.
The agent can switch from voice to text chat without changing the logic.
Around the assistant there are 4 n8n workflows:
- Init. Before the call starts, it looks up the customer in the CRM by phone number and passes their name to the agent, so returning customers are greeted by name.
- Create_order. As soon as the customer confirms an order, the manager receives it in Telegram: items, address and date.
- Post_call. After the call, GPT-5-mini turns the transcript into structured data using a JSON schema: request type, sentiment, call outcome, a score for each BANT component and an overall
Ai_Scorefrom 0 to 100. Anything the customer did not mention is flagged explicitly instead of being made up. The CRM updates an existing customer or creates a new one, with no duplicates. - CEO Forecast. Every Friday at 18:10 a separate AI agent combines all calls and leads and sends the owner a Telegram report: the forecast for the week, the top 3 risks with links to specific calls, and recommendations with deadlines.
The result
| Before | After | |
|---|---|---|
| Manual steps per call | at least 4 | 0 |
| Order notifications | manual, delayed | instant in Telegram |
| Customer readiness scoring | not done | BANT + Ai_Score for every call |
| Owner analytics | irregular, manual | weekly, automatic |
| Customer advice | working hours only | around the clock |
The CRM currently runs on Google Sheets, but it can be replaced with any other CRM without changing the core logic.
How the work went
How work on this project went, from understanding the problem to launch and improvements.
- 01
Discovery
Mapped how the bakery takes calls and orders today: who answers, what gets written down and where details get lost. Every call needed at least 4 manual steps, and customers could not get through outside working hours.
- 02
Solution design
Wrote the conversation flow and the agent’s knowledge base, the BANT criteria and a JSON schema for call analysis. Split the logic into 4 independent n8n workflows so each can be changed on its own.
- 03
Build
Set up the voice agent on Happ.tools and built the Init, Create_order, Post_call and CEO Forecast workflows. Connected a Google Sheets CRM and Telegram notifications.
- 04
Testing
Ran test calls across different scenarios: a question, an order, a new and a returning customer, a complaint, missing details. Checked that orders reach Telegram and the CRM creates no duplicates.
- 05
Launch
The agent answers calls around the clock, the manager gets each order in Telegram as soon as it is confirmed, and the owner gets a report and a weekly forecast every Friday.
- 06
Optimisation
The transcript and Ai_Score of every call show where the agent is inaccurate, and they are used to extend the knowledge base and the prompt. The CRM can be swapped for another one without changing the core logic.



