All articles

A bakery, WhatsApp and AI: how I automated orders for fresh bread

A small bakery, dozens of customers and the same daily round of WhatsApp messages. How it turned into a system that collects orders on its own and uses AI only where rigid logic fails.

Say "order automation" and most people picture an online shop or processing large enquiries from email. But what do you do with a product that is too small for an online shop and too perishable for paperwork? Fresh sourdough bread, for example.

How it all started

I have been working with Michal Konečný as his personal technical adviser for some time now. Recently he described a problem that other producers with a narrower range of products may recognise too.

He has two kinds of customers: regular and occasional. The regular ones run themselves. The occasional ones, though, mean the same round every day: offer what will be available on which day and how much, wait for a reply, and write down whether the customer confirmed, changed or cancelled. Over WhatsApp or on the phone.

Every new customer added a bit more work. The time spent checking grew linearly with their number, at exactly the moment Michal should have been baking.

Why vibe coding was not enough

Michal had already tried to simplify part of the process with AI agents himself. It half worked, and orders got lost in the gaps. You cannot build a fully debugged automated system by vibe coding. Or you can, but at the cost of the vibe coder's mental health. :D

The solution: an admin panel + WhatsApp

I designed an admin panel connected to his website, where Michal sets up his customers and their parameters. The rest runs on its own:

  1. In the morning, the system sends the occasional customers an offer through the WhatsApp Business API.
  2. With one button, the customer confirms the order or chooses Change.
  3. The result is written into the system and the bakery knows exactly how much of what to bake. No phone calls and no copying things by hand.
Sample WhatsApp message in Czech: a proposed order for Tuesday 13 October (3× Klasik, 2× Cibule), asking the customer to confirm it by 18:00 today using the button below, or choose Change to edit it. Below the message are the buttons Confirm and Change.
A sample template of the morning message with a proposed order (in Czech).

But people are not buttons

In an ideal world, that would be enough. In the real world, a customer says: "Today I want two more loaves and no rolls." That is why there is a Change button.

The customer simply writes what they need. And here is the catch: everyone writes differently. Some use abbreviations, some make typos, some write a whole paragraph. Expecting customers to follow an exact format is a utopia.

This is where AI comes in:

  • If the system recognises the message by its format, it processes it straight away.
  • If not, it sends the text through an API to a language model, which extracts a predicted order from it.
  • The system sends that back to the customer on WhatsApp for confirmation.
  • The customer confirms or corrects it, and the loop repeats until the order is right. 🔄

So the AI never decides on its own. It only translates human language into structured data, and the customer always has the final say.

Diagram of the order life cycle (labels in Czech): Michal sets up customers in the admin panel. For a regular customer the order is created automatically from their settings. An occasional customer gets a morning offer on WhatsApp and can confirm it, cancel it or describe a change in free text. When the system does not recognise the message format, a language model extracts a predicted order, which goes back to WhatsApp for review; if it is wrong, the customer corrects it and the loop repeats. The confirmed order is written into the system and becomes the baking plan.
The order life cycle from the morning offer to the baking plan (labels in Czech). Click to open the diagram at full size.

The result

Michal no longer spends his mornings calling around and copying orders. Customers order where they already are, on WhatsApp. And every day the bakery knows exactly how much to bake.

Automation does not have to mean a big online shop. Sometimes all it takes is a well-designed process, one communication channel and AI used exactly where rigid logic fails.