Keep every café's usual order in one standing-order sheet, give cafés a short change form, and use AI to read the messy messages into change rows and to write the reminder texts. The sheet does the adding up; AI does the reading and writing; you check the weekly list of what changed before anything goes to the oven.
The phrase to design out is "the usual". A message saying "usual for Thursday, plus two extra sourdough" is only safe if a written Thursday usual exists, and most bakeries keep that in someone's head or in last month's texts. Build the sheet first. An AI without it will cheerfully guess, and a wrong guess turns into trays of bread at 5 am.
Why "the usual" breaks when it lives in your head
Say a bakery bakes for 18 cafés, Tuesday to Saturday, starting at 1 am with vans out by half past five. Roughly three-quarters of the volume repeats every week. The rest arrives as texts, emails, phone calls and the occasional voice note, around 25 changes in an average week (illustrative figures; count your own). Each one forces the same small chain of work: find the café's usual, work out what the message changes, update the bake sheet, remember to tell whoever packs the van.
Three things go wrong in that chain. "The usual" quietly means different things: the standing quantity, last week's quantity or whatever was delivered last time. Changes arrive on four channels and one gets missed. And nobody confirms back, so a café that thinks it asked for 60 rolls finds 40 on the shelf. AI can't fix the first problem and does well on the second and third, as long as it reads from a written standing order rather than from memory.
Everything here is about wholesale. Counter sales, cakes and seasonal pre-orders are a different job, covered in the pre-order form tutorial for Christmas and Easter. For which tool suits which bakery job overall, see best AI for a bakery business.
One sheet that holds every café's usual order
The standing tab is the spine of everything else. Use one row per account, product and weekday, rather than a wide grid with a column per day, because rows are easy for formulas and for an AI to read. Give every product a short name that includes its unit, so "Sourdough loaf, 800 g, each" can't be confused with "sourdough, per tray".
| Account | Product | Weekday | Qty | Notes |
|---|---|---|---|---|
| A01 | Sourdough loaf, 800 g, each | Thu | 12 | Sliced |
| A01 | Seeded roll, each | Thu | 40 | |
| A01 | Croissant, each | Thu | 24 | |
| A02 | Sourdough loaf, 800 g, each | Thu | 8 | Delivery by 6:30 |
| A02 | Ciabatta, each | Thu | 16 | Delivery by 6:30 |
| A02 | Croissant, each | Thu | 12 | Delivery by 6:30 |
| A03 | Sourdough loaf, 800 g, each | Thu | 6 | |
| A03 | Brioche bun, each | Thu | 30 | |
| A04 | Baguette, each | Thu | 20 | Uncut |
| A04 | Sourdough loaf, 800 g, each | Thu | 10 | Uncut |
In this example A01 is a roadside café, A02 a brunch café, A03 a coffee bar and A04 a deli. Keep the plain account code in the Account column, because formulas need an exact match, and keep names, price tier, delivery window and cut-off time on a separate accounts tab rather than repeating them on every row. If you haven't written the standing orders down yet, AI can draft them from your old messages. Paste the last few weeks of one café's messages and ask for rows plus a list of what it couldn't determine.
Below are messages from account A03. Draft its standing order as rows
(Account, Product, Weekday, Qty). Only include a quantity that a
message actually states, and mark every row DRAFT. List everything
you could not determine as questions I should ask the café. Do not
guess what "usual" or "same as last time" means.
Tue 1 Sep: Usual please, thx
Thu 3 Sep: 6 sour, 30 brioche
Tue 8 Sep: Usual + 2 sour
Thu 10 Sep: same as last Thu
Sat 12 Sep: 4 sour only, no brioche this week
A useful answer from a model (illustrative) gives two DRAFT Thursday rows, 6 sourdough and 30 brioche, because the 3 September message states them and "same as last Thu" repeats them. It gives no Tuesday row, since "usual" is never defined and "+2 sour" has no base to add to. It flags Saturday, because "4 sour only" might be one week's cut or the new usual. That is what you want from it: two rows to confirm and three questions for the café (what is Tuesday, is Thursday still right, is Saturday a one-off). The sheet gets filled from the café's answers, not from inferences.
Whatever the draft says, send each café its standing order in a plain message and ask it to correct you. That first confirmation is the only time you will need to ask everyone, and it settles the usual in writing.
A change form each café can use in under a minute
Most weekly changes are routine: a few extra, a lower number, a skipped day. Give each café a link to a short form and make it the preferred route, because a form needs no reading at all. Messages will still arrive, and the next section deals with those. A Google Form works. In the form's More menu choose "Pre-fill form", fill in one café's account number, then "Get link", and send that café its own link. Test every link yourself before it goes out.
| Question | Type | Why it is there |
|---|---|---|
| Account | Short answer, pre-filled per café | Nobody picks the wrong account or forgets to say who they are |
| Delivery date | Date | Removes "Thursday" and "next week" ambiguity |
| What do you want to do? | Choice of three options worded exactly Add, Set and Skip, with one line of help text under the question: "Add = extra on top of your usual. Set = change to this exact number. Skip = no delivery that day." | The answer is the exact word the sheet's formulas look for, so a response needs no translating ("add extra" would not match) |
| Product | Dropdown from your product list, plus "something else" | Names match the sheet exactly, so formulas can find them |
| Quantity | Number, in the product's own unit | No dozens or trays hiding in a text box |
| Anything we should know? | Paragraph | "Party for 40" explains a jump and helps you spot a typo |
Put the cut-off at the top of the form in one sentence: "Changes for next-day delivery must reach us by 2 pm; after that we'll try but can't promise." End with a thank-you message that says what happens next: "Logged. We'll text you the final order the day before." Ask the AI to draft the wording and the product dropdown list from your price list, then read both aloud as a café owner would.
Form responses land on their own tab. With the questions in the order above, the first six columns of each response (timestamp, account, date, change type, product, quantity) copy straight onto the Changes tab described below, which holds every change, whichever way it arrived. Make Product and Quantity optional on the form, because a Skip needs neither. Three more columns there are filled by hand: Source (Form, WhatsApp, email, phone), Raw message (the café's own words, pasted, or the form's note) and Status. Keeping the raw words next to every change means that when someone says "I never asked for that", you can show what they sent.
Turning WhatsApp messages into change rows without guessing
For messages that don't come through the form, paste them into ChatGPT or Claude with a fixed prompt. The prompt does three things: it defines the change types, it forbids restating the usual, and it makes the model say "query" instead of guessing. Store it in a Project's instructions so you don't retype it each week.
You turn café messages into change rows for a wholesale bakery.
Today is Sun 25 Oct.
Output one row per change: Account, Delivery date, Type, Product,
Qty, Status, Note.
Types:
Add = extra units on top of the usual (Qty is the extra amount).
Set = replace the usual with this quantity (Qty is the new total).
Skip = no delivery at all on that date (one row, no product).
Rules:
1. Never output the standing quantity as a change. A row exists only
for what differs from the usual.
2. Use the delivery date, not the day the message was sent. Resolve
"Thursday" and "next week" from today's date and write the date as
YYYY-MM-DD.
3. Use only products from the list below, or their aliases. Anything
else: Status CHECK.
4. Quantities are in each. Convert dozens and half-dozens and say so
in Note. Any other unit (tray, bag, case): Status QUERY.
5. A change applies to one delivery only. If the message says "every
week" or "from now on", Status QUERY and put "standing change:
confirm, then edit the Standing tab" in Note.
6. If the date, product or quantity is unclear, do not guess. Status
QUERY, and put the question to ask the café in Note.
PRODUCTS: [paste the product list]
ALIASES: [paste nicknames, e.g. "sour" = Sourdough loaf, 800 g, each]
MESSAGES:
A01, Fri: Can we have an extra dozen croissants on Thursday? Staff breakfast.
A02, Sat: We're shut Thursday, no delivery please
A03, Sat: Can you drop the brioche to 24 on Thursday and add 6 cinnamon swirls to try?
A04, Sun: Same as last week but 3 dozen baguettes on Saturday
A05, Sun: Can we have a few more loaves on Saturday?
Here is the kind of table a good run produces (illustrative):
| Account | Date | Type | Product | Qty | Status | Note |
|---|---|---|---|---|---|---|
| A01 | 2026-10-29 | Add | Croissant, each | 12 | OK | Extra dozen converted to 12 |
| A02 | 2026-10-29 | Skip | OK | No delivery, this date only | ||
| A03 | 2026-10-29 | Set | Brioche bun, each | 24 | OK | |
| A03 | 2026-10-29 | Add | Cinnamon swirl, each | 6 | CHECK | Not on the product list; trial, confirm price |
| A04 | 2026-10-31 | Set | Baguette, each | 36 | CHECK | 3 dozen = 36; assumed this replaces the usual baguettes, confirm |
| A05 | 2026-10-31 | QUERY | Which loaf, and how many is "a few"? |
Even rows marked OK deserve a glance, and three habits keep the parse honest. Check every converted unit against the café's own words. Treat CHECK rows as unconfirmed: they go into a confirm-back message before they count, and QUERY rows are not entered at all until the café answers. And look for any row whose quantity equals the standing quantity, because that means rule 1 was broken and the sums will double count (a mistake covered below). If a product appears that isn't on your list, add it to the list, with a unit and a price, before it goes anywhere near the Week tab. Cafés rarely use your product names ("sour", "the seeded ones"), so keep a short alias list and paste it in too. The matching problem is covered in more depth in this tutorial on AI reading emailed wholesale orders.
The week tab: formulas that do the sums, not the AI
Language models read text well and add up unreliably, so keep the arithmetic in the sheet. A Week tab mirrors the standing tab row for row and works out the final quantity for each account, product and delivery date. The column layouts below are the ones the formulas assume.
| Tab | Columns |
|---|---|
| Standing | A Account, B Product, C Weekday (Mon, Tue and so on), D Qty |
| Changes | A Timestamp, B Account, C Delivery date, D Type (Add, Set or Skip), E Product, F Qty, G Source, H Raw message, I Status (OK, CHECK or Replaced) |
| Week | A Account, B Product, C Weekday, D Standing qty (these four are formulas pointing at the Standing tab, such as =Standing!A2), E Date, F Adds, G Final |
Put the Monday of the week in cell I1 of the Week tab. Then three formulas, filled down, do the work:
E2 (delivery date):
=IF(C2="","",$I$1+MATCH(C2,{"Mon","Tue","Wed","Thu","Fri","Sat","Sun"},0)-1)
F2 (confirmed extras for that account, product and date):
=SUMIFS(Changes!$F:$F,Changes!$B:$B,A2,Changes!$C:$C,E2,Changes!$E:$E,B2,Changes!$D:$D,"Add",Changes!$I:$I,"OK")
G2 (final quantity):
=IF(COUNTIFS(Changes!$B:$B,A2,Changes!$C:$C,E2,Changes!$D:$D,"Skip",Changes!$I:$I,"OK")>0,0,
IF(COUNTIFS(Changes!$B:$B,A2,Changes!$C:$C,E2,Changes!$E:$E,B2,Changes!$D:$D,"Set",Changes!$I:$I,"OK")>0,
MAXIFS(Changes!$F:$F,Changes!$B:$B,A2,Changes!$C:$C,E2,Changes!$E:$E,B2,Changes!$D:$D,"Set",Changes!$I:$I,"OK"),
D2+F2))
In words: a Skip for that account and date makes everything zero; otherwise a Set replaces the standing quantity; otherwise the final quantity is the standing quantity plus any extras. Only rows whose Status is OK count, so a CHECK row stays out of the sums until the café confirms it and you change its status. A Set is the last word on its line, and an Add on the same line is ignored. So when a café revises a line it has already changed ("make that 30 now"), enter the new total as a Set and mark the older row Replaced instead of deleting it, which keeps its raw message on record. If two OK Set rows ever exist for one line, MAXIFS takes the larger one, which is why the check column below flags the pair.
Three practical notes. Make the Weekday column on the Standing tab a dropdown (Data, then Data validation) so "Thur" can't creep in: a weekday the formula doesn't recognise turns that line's date and final quantity into #N/A errors. If your spreadsheet's locale uses semicolons between arguments, or prints weekdays differently, adjust the formulas and the weekday names to match. And paste a multi-line formula into the formula bar, not onto the cell, or Sheets splits it across rows. AI is useful here, but for writing: describe your own column layout and ask it for the formulas, then test them.
Test on four cases before you trust it. First, enter a Skip for one café and one date, and check every line for that café and date reads zero. Second, enter an Add of 12 against a product with a standing quantity of 24 and check the final quantity is 36. Third, enter a Set of 24 against a standing 30 and check it reads 24. Fourth, change that Set's status to CHECK and check the line goes back to 30. Then add one more column to the Changes tab, J, with a check formula, so a typo, a new product or an unconfirmed row can't vanish silently:
J2:
=IF(B2="","",IF(I2<>"OK","not counted",
IF(D2="Skip",IF(COUNTIFS(Week!$A:$A,B2,Week!$E:$E,C2)>0,"ok","NO MATCH"),
IF(COUNTIFS(Week!$A:$A,B2,Week!$B:$B,E2,Week!$E:$E,C2)=0,"NO MATCH",
IF(COUNTIFS($B:$B,B2,$C:$C,C2,$E:$E,E2,$D:$D,"Set",$I:$I,"OK")>1,"TWO SETS","ok")))))
"NO MATCH" means the change names a product or date that has no Week row (for a Skip, a date on which the café gets nothing), so it is not being counted. "not counted" means the row's status isn't OK (a CHECK still waiting for an answer, or a Replaced row), and "TWO SETS" means a revised Set still has its older row marked OK. That is how the cinnamon swirls in the example above get noticed: they need a row at the bottom of the Standing tab with a quantity of 0, the Week tab's formulas filled down one more row to pick it up, and a price, before the Add counts. For the totals the kitchen needs, a pivot table of Week column G by product and date gives the production sheet, and the same table by account gives the van's drop list. Turning those totals into oven slots is covered in this tutorial on bakery production planning, and these Google Sheets AI prompts help if you want an assistant to build the pivot with you.
The Sunday check: this week against the standing order
Once the changes are in, one table tells the baker what is different about the week. Here is Thursday 29 October for the four accounts used so far (illustrative). The numbers come from the Week tab's pivot, not from an AI.
| Product | Standing total | This week | Difference | Why |
|---|---|---|---|---|
| Sourdough loaf, 800 g | 36 | 28 | -8 | A02 skipped (8) |
| Seeded roll | 40 | 40 | 0 | |
| Croissant | 36 | 36 | 0 | A01 +12, A02 skipped (-12) |
| Ciabatta | 16 | 0 | -16 | A02 skipped |
| Brioche bun | 30 | 24 | -6 | A03 set to 24 |
| Baguette | 20 | 20 | 0 | |
| Cinnamon swirl (trial) | 0 | 6 | +6 | A03 trial, confirmed |
| Total units | 178 | 154 | -24 |
Look at the croissant line. The total is unchanged at 36, but the split moved: A01 now takes all 36 and A02 takes none. A total-only check would pass it, which is why the "why" column and the per-café diff matter. Ask the AI for that diff in words, giving it only the two columns to compare:
Below are the Thursday 2026-10-29 rows from the Standing and Week tabs
(Account, Product, Standing qty, Final qty). List every account and
product where the two differ, one line each, like "A01 Croissant 24 to
36 (+12)". Then list the accounts with no difference. Do not
recalculate anything; use the numbers as given. If a Final quantity
is more than 50% above or below Standing, mark the line CALL.
The answer is a short list the baker can read in a minute: A01 croissants 24 to 36, A02 skipped entirely, A03 brioche 30 to 24 and a new trial line, A04 unchanged. Lines marked CALL get a phone call or a message before the bake. The 50% rule is mine; set your own, and notice that a skip will trip it on every line, which is fine because a skip should always be confirmed back.
A second sanity check compares each line with the average of the last four deliveries on the same weekday. A seeded-roll order of 400 against a history of 40 is probably a stray zero, and no rule about the usual will catch it. A conditional-formatting rule in the sheet does this without an AI at all, and the assistant is useful for writing it.
The whole Sunday routine, for the 25 or so changes in the earlier example, looks like this (my illustrative timings):
- Paste the week's WhatsApp and email messages into the parse prompt, 10 minutes including reading the output.
- Enter the rows on the Changes tab and clear every CHECK and QUERY flag by messaging the café, 10 minutes.
- Look at the NO MATCH column and the pivot, 5 minutes.
- Run the diff and the history check, 5 minutes.
- Send the reminders, covered next, about 6 minutes.
That is around 35 minutes on Sunday, plus about three minutes on each delivery day for the day-before messages. Doing the same week by hand in this illustration takes about 130: roughly 75 for finding usuals and updating the sheet at three minutes a change, 40 for retyping totals and 15 for chasing answers.
Reminder texts: four messages and the sheet that writes them
A reminder does two jobs. It lets the café catch a mistake while it is cheap to fix, and it creates a written record of the final order. Every reminder should state the final quantities, say what happens if the café does nothing, and give a cut-off. With a standing order the default is delivery as written, so most cafés never need to reply. Four messages cover almost every week.
1. Week ahead (Sunday evening)
Hi [first name], your order for the week at [café]: Tue: [lines].
Thu: [lines]. Sat: [lines]. Nothing to do if that is right. To change
anything use [form link] by 2 pm the day before. Thanks, [your name]
2. Day before (about 11 am)
Hi [first name], tomorrow's delivery ([day]): [lines]. Reply CHANGE by
2 pm if anything is wrong, or we will deliver it as written.
3. Chaser for a big or unclear change
Hi [first name], quick check on [day]: you asked for [new quantity]
of [product]; your usual is [standing quantity]. Is that right for
this [day] only? We start baking at 1 am, so we need a yes by 2 pm
on [day before].
4. Exception (a shortage or substitution)
Hi [first name], we are short of [product] for tomorrow. Can we swap
your [quantity] for [alternative] at the same price, or would you
rather skip it? Please reply by 11 am.
Ask the AI to polish the wording once, not every week: "Rewrite these four templates in my bakery's voice: friendly, brief, no emojis. Keep every square-bracket placeholder and the cut-off sentences word for word. Don't add offers or news to any of them." Keep reminders purely about the order. A promotion slipped into a delivery reminder turns it into a sales message, and some messaging channels price and treat those differently.
The rule for this section is that numbers come from formulas and words come from AI. If a model retypes "12 sourdough, 36 croissants" from a table, it will eventually transpose a digit, and you will not notice until a café does. So let the sheet build the lines. In Google Sheets, add a helper column H to the Week tab and a Messages tab with one row per account:
Week!H2 (label for one line):
=G2&" x "&B2
Messages!B1: the delivery date, for example 2026-10-29
Messages!A2: account code Messages!B2: contact first name
Messages!C2 (the order lines for that account and date):
=IF(COUNTIFS(Week!$A$2:$A,A2,Week!$E$2:$E,$B$1,Week!$G$2:$G,">0")=0,"no delivery",TEXTJOIN(", ",TRUE,FILTER(Week!$H$2:$H,Week!$A$2:$A=A2,Week!$E$2:$E=$B$1,Week!$G$2:$G>0)))
Messages!D2 (the day-before message):
=IF(C2="no delivery","Hi "&B2&", confirming there is no delivery tomorrow, as agreed.","Hi "&B2&", tomorrow's delivery ("&TEXT($B$1,"ddd")&"): "&C2&". Reply CHANGE by 2 pm if anything is wrong, or we will deliver it as written.")
Fill the Messages tab down for all 18 accounts and each row now holds a ready message whose numbers can't drift from the Week tab. The COUNTIFS at the front of C2 means only a day with no lines prints "no delivery"; if something else breaks, you see an error instead of a confident wrong message, which is the reason not to wrap the whole formula in IFERROR. For A03 on 29 October it would read: "Hi [first name], tomorrow's delivery (Thu): 6 x Sourdough loaf, 800 g, each, 24 x Brioche bun, each, 6 x Cinnamon swirl, each. Reply CHANGE by 2 pm if anything is wrong, or we will deliver it as written." It is not pretty, so keep the product names short in your list ("Sourdough", "Brioche bun"). Fill the tab only for accounts that have a delivery or a logged skip that day, or an account with no Thursday row would be told "no delivery" every week. The chasers and exceptions are different. They need tone and a decision, so write those yourself with the AI's help and read them once before sending.
One policy keeps the volume of messages sensible. Message 1 goes to every café on Sunday and acts as the standing reminder. Message 2 goes only to accounts whose order differs from the standing one that day, which the diff list tells you, plus any café that had a mistake in the last month. In the Thursday example that is three messages, to A01, A02 and A03, and none to A04. For the shortage message, this tutorial on backorder notification emails has a fuller template.
Sending them: by hand, scheduled email or WhatsApp's paid route
Use the channel each café already answers within the hour, and record it as a column on the accounts tab. Then pick how much machinery to put behind it.
- By hand. Copy each row's message from the Messages tab into your phone. At about 20 seconds each, the Sunday batch for 18 cafés takes six minutes, costs nothing and means you see every reply as it lands. Start here and stay here for a month.
- Scheduled email. If a café prefers email, Gmail's schedule send lets you queue messages for a set time, and it holds up to 100 scheduled emails. Write them on Sunday evening and have them arrive at 6 am on Monday.
- WhatsApp's free app. The free WhatsApp Business app is a manual tool, so it behaves like the by-hand route with a friendlier interface for the cafés that live in WhatsApp.
- WhatsApp's paid platform. This is the route for automated sending, through a messaging provider. Reminders you start yourself must go out as pre-approved template messages, and Meta charges per delivered message, at a rate that depends on the message category and the recipient's country calling code. Since 1 October 2026, service messages beyond 1,000 a month per business number, and utility template messages sent inside an open customer-service window, are also chargeable, and the account needs a payment method. I haven't quoted a per-message rate because Meta publishes a table that varies by market and can change at the start of any quarter. Read Meta's pricing page before you commit.
Automation comes last. A scheduled Zap or Make scenario can send the Messages tab rows without you, but a wrong message sent automatically is the same wrong message sent 18 times. A sensible test is four consecutive weeks in which you sent every message without editing it. Until then, the six minutes by hand is cheaper than the mistakes.
Six lines of terms to agree with your cafés
The sheet and the reminders only work if cafés know the rules. These six lines are operating rules, not a legal contract. If your cafés sign a trade agreement, have a qualified adviser check it.
- The written order stands. The standing list is the order unless a change has been logged, and an order is delivered as written if you hear nothing.
- Cut-off. Changes for next-day delivery must arrive by 2 pm. Later changes are best effort and may be declined.
- Size limits. A change of more than 25% on one line, or any new product, needs 48 hours' notice (illustrative threshold; set one that matches your dough and your ovens).
- Closures and holidays. Tell us by Wednesday for the following week. A skip applies only to the date named.
- Corrections. If we get an order wrong, tell us the same morning with a photo, and we will credit it on the next invoice.
- Record. The form response or the message we log is the order of record, so please use the form for changes where you can.
Ask the AI for a friendly one-page note built from those lines, and a two-line version for the foot of the weekly message. Roll the terms out with the first confirmation message, so every café agrees to the standing order and the rules in one go.
Three mistakes from the first month, and what caught each
These are illustrative, from the example bakery's first month, and each one slipped through the AI step.
The usual that got counted twice. A03 wrote "Usual please, plus 2 extra sourdough for Thursday." The first version of the prompt had no rule 1, so the model returned two rows: Add 6 sourdough, restating the usual, and Add 2. The Week tab dutifully added both to the standing 6 and showed 14 loaves instead of 8. The Sunday diff flagged the line as CALL, because it was more than 50% above standing, and the baker spotted it before the bake. The fix was rule 1, and a habit of reading any row whose quantity matches the standing quantity as a sign the model restated it.
The dozen that became three. A04 asked for "3 dozen baguettes". An early run entered Qty 3 and lost the unit, which would have meant three baguettes against a Saturday usual of 24. The same CALL rule caught it, this time as a fall of more than 85%. Rule 4 now converts dozens and sends any other unit to QUERY.
The change that was meant to last. A02 wrote, "From now on can we have 10 sourdough on Thursdays instead of 8?" With no rule 5, the model produced a single Set row for the next Thursday. The following Thursday, A02 got 8 again and phoned at 7 am. Nothing in the sheet was wrong; it had done what it was told. This is the failure no check inside the sheet will catch, because the error is in what a person asked. So standing changes are now QUERY rows that a person confirms and edits into the Standing tab, followed by a message to the café saying the standing order changed and from when.
What the three have in common is that they were caught by a number looking odd or by the café, not by the AI. Plan for that: the checks around the AI are the system, and the prompt is only one part of it.
Counting errors, minutes and false alarms
- Order errors per week. Count deliveries where a café says a quantity was wrong, and log the cause: message misread, change missed, unit slip, or kitchen error. The target is none, and the causes tell you which rule to tighten.
- Order-admin minutes per week. Time yourself for two weeks before the change and two weeks after. In this tutorial's illustration the week drops from about 130 minutes to about 50, counting Sunday plus the day-before messages.
- Share of changes arriving through the form. It starts at zero. If it isn't climbing after a month, the form is too long or the cut-off isn't clear.
- CALL flags that were real. If nearly every CALL turns out to be a false alarm, widen the 50% threshold. If real mistakes are slipping past it, narrow it.
A rough sum on the first two: saving about 80 minutes a week is nearly six hours a month. If you value your own time at $30 an hour, that is about $175 a month (illustrative), against a chat assistant that is free or about $20 a month on a paid individual plan, and a form and a spreadsheet you already have. The saving that matters more is quieter: fewer 7 am calls about bread that wasn't there.
Questions bakers ask about wholesale and AI
Can ChatGPT or Claude remember the standing orders for me?
Don't rely on it. Chat assistants can lose or blur details between conversations, and memory settings change. Keep the sheet as the single source of truth and paste a fresh copy of the standing tab into each weekly session. A Project can hold your rules, such as the Add, Set and Skip definitions, but the quantities should always come from the sheet you are looking at.
Is it safe to paste café orders into a chatbot?
Orders are ordinary business data, but you can still reduce exposure. Use account numbers instead of café names in prompts, leave out phone numbers and addresses, and use a business plan if you have one: ChatGPT Business and Claude Team don't train on your content by default. On personal plans, check the model-training switch in privacy settings.
Do I need Zapier or Make to automate this?
Not to start. Run it by hand for a month first. If you automate later, Zapier's free plan covers 100 tasks a month with two-step Zaps only, and a paid plan starts at $19.99 a month billed annually for 750 tasks. Make's free plan gives 1,000 credits a month, and a weekly scenario uses few of them. Test one run and read the usage count before trusting any estimate.
How many cafés before this is worth setting up?
The standing sheet pays back with as few as three accounts, because it ends arguments about what the usual is. The change form and the reminders earn their keep once changes arrive most weeks, which for many bakeries starts at around eight to ten accounts. Track your own order-admin minutes for two weeks and decide from that.
Further reads
- How Bakeries Can Use AI to Predict Demand and Cut Unsold Stock — Forecast what to bake beyond the standing orders.
- Bakery Pricing Calculator: Build One With ChatGPT and a Spreadsheet — Price wholesale lines so a standing order stays profitable.
- How Much Should a Bakery Spend on AI? A Monthly Budget by Job — Budget the tools by job before you subscribe.
- Business Operations Automation AI for a Bakery: What Is Worth Automating — Which other bakery jobs are worth automating next.
- Starting a Chocolate Business: Costing, Labels and Where to Sell With AI — Per-bar costing, allergen label checks and a margin comparison of farmers market, online and wholesale, with illustrative numbers.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Docs Editors help (pre-filled form links); Meta's WhatsApp Business Platform pricing documentation (template categories, per-message charges, 1 October 2026 changes); Zapier and Make plan pages; OpenAI and Anthropic help pages on Projects and privacy.