Bakery Pre-Order Form for Christmas and Easter With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Bakery Pre-Order Form for Christmas and Easter With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Bakery Pre-Order Form for Christmas and Easter With AI.

For Christmas and Easter, a bakery pre-order form should close on a cut-off date, cap every collection slot and every product, take a deposit when the customer orders, and confirm by email straight away. Then send reminders ten days before, two days before and on the morning. Work the caps out from your counter and ovens; AI drafts the wording.

Ready-made pre-order templates give you the fields and leave out the sums behind them: how many orders one half-hour slot can take, how many yule logs one decorator can finish in a day, what happens to a deposit when nobody turns up. Those sums decide whether the 24th runs smoothly, and they are the part AI should not guess.

Follow me on Instagram@sagnikteaches

A sample season: five products, three collection days, 120 orders

The sample bakery has a counter, two bakers and one person serving (every figure here is illustrative). Last year it took festive orders by phone, direct message and a notebook, and some half-hours on the 24th were far busier than others. This year it opens one order form for each collection day, 22, 23 and 24 December, with eight half-hour slots a day from 09:00 to 13:00.

Connect on LinkedInSagnik Bhattacharya

Five products go on the form. Each has a daily cap set by the bench or the oven, not by hoped-for demand.

Subscribe on YouTube@sagnikteaches
ProductPriceDaily capWhat sets the cap
Yule log, serves 8$3812One decorator, about 25 minutes a log, five hours a day at most
Stollen, 500 g$1920Finished and boxed each morning from the week's bakes
Mince pies, box of 6$1530Two rack loads of 90 pies a day
Cranberry and walnut loaf$927Shares the oven with the daily bread
Gingerbread, box of 8$1624Eight oven trays of 24 biscuits

Set these before you write any copy or choose a price (a pricing sheet built from your own costs does the second job). A form with no caps sells whatever people ask for, and the 24th is the day everyone asks.

Slots follow the same logic, except that the limit is the counter. Say one person hands over a labelled, paid-for order in about two minutes (time ten real handovers with a stopwatch rather than trust this figure). Six pre-orders in a 30-minute slot use 12 minutes and leave 18 for walk-in customers and anyone arriving late. Eight slots at six orders each gives 48 orders a day, or 144 across the three days. The 120 orders in this sample fill 83% of that, and the busiest day fills 96%.

One form per collection day, built field by field

One form per collection day gives each day its own product stock and its own slot caps. That matters because of how form tools count. Jotform, for example, can count a product's stock down and mark it "Sold Out" at zero (Product Settings, Stocks tab, "Enable Stock Control"). Its appointment field has a Group type, in which several people can book the same slot, but its help page documents only a maximum per day, so confirm in the field's settings that each slot can be capped at six. Stock is counted per form, so a single form for all three days would hold one stock figure per product, not one per product per day, which is no help when the bottleneck is the decorating bench on one particular day. Whatever tool you choose needs four abilities: cap a time slot, count a product's stock down, close itself on a date and take a payment. Test each one with a dummy order before you design around it.

Check the plan limits too. Jotform's free plan lists 5 forms and 10 payment submissions a month; Bronze lists 25 forms and 100 payment submissions ($39 a month, or $34 a month billed annually); Silver lists 250 payment submissions (read October 2026; check the live page). Three day forms and a waiting-list form make four, so the form count is no problem. The payment count is: this bakery's orders split about 63 in November and 57 in December, so Bronze covers it with room for test orders, while a bakery taking all 120 in one month would need the next plan up.

FieldRule on the formWhy it is there
Collection dayFixed by which of the three forms the customer openedEach day has its own stock and slot caps
ItemsQuantity selector per product, at most 4 of any one product; stock counts down and the product greys out when sold outOne customer cannot take a day's supply
Collection slotTime-slot field with six places per slot; full slots cannot be chosenThe counter cap
Name and emailBoth requiredThe label on the bag; where the confirmation goes
Mobile numberOptional, with a separate unticked box: "Text me on the morning of collection"Consent is stored with the order
Allergies or dietary needsRequired choice, "Nothing to tell you" or "Yes, details below", plus a text boxA blank box gets read as "no allergies" at the pick-up shelf
InscriptionText, 25 characters, shown only when a yule log is chosenKeeps the bench and the order in step
Collecting for someone elseOptional nameThe person at the counter knows who to expect
TermsRequired tick box linking to the deposit and change wordingEvidence that the customer saw them
PaymentDeposit by card through the form's payment integrationThe order is confirmed only when the deposit arrives
Order numberGenerated by the form and quoted in every messageThe key to every row in your sheet

Leave off anything you will not use: a delivery address (this bakery does not deliver), a date of birth, "how did you hear about us". Custom cakes do not belong on this form at all; they need a conversation about size, flavour and design first, which is what an AI enquiry assistant for custom cake orders is for.

The cut-off should be a setting, not a task someone remembers. In Jotform it is the Form Status setting, which can disable a form on a specific date, at a submission limit, or on whichever comes first, and shows a warning message to anyone who arrives afterwards. Write that message with as much care as the form: say that orders for that day have closed and give a phone number for late requests.

AI is most useful at this stage as a reviewer of your list, not its author. Give it the facts and ask what is missing:

I run a small bakery. Draft the field list for a festive pre-order form using only the facts below.
For each field give: label, type, required or optional, and the rule. Then list up to five things
that look missing or risky. Do not invent hours, prices or policies.

FACTS
Collection: 22, 23 and 24 December, 09:00-13:00, half-hour slots, 6 orders per slot. One form per day.
Products (price, daily cap): yule log serves 8 ($38, 12); stollen 500 g ($19, 20); mince pies box of 6
($15, 30); cranberry and walnut loaf ($9, 27); gingerbread box of 8 ($16, 24). Maximum 4 of one product
per order. Inscriptions on yule logs only, 25 characters. 30% deposit at order, balance at the counter.
Everything is made in one kitchen that also handles nuts, milk, eggs, gluten and sesame. No delivery.

A typical first draft (illustrative) comes back with about fourteen fields, and three are wrong: a delivery address, although the facts say no delivery; the collection time as a free-text box, when it has to be the capped slot field; and "how did you hear about us" as a required question. Two are worth keeping: "collecting for someone else", which was not on your list, and a warning that an empty allergy box gets read as "none". Accept the two, delete the three, and compare the rest with the table above.

Deposit wording: a draft that reads well and says the wrong thing

Give the AI your policy as plain bullet points and let it do the drafting. The policy here (illustrative) is a 30% deposit at order, rounded up to the next dollar, with the balance at the counter by card or cash; changes or cancellation free until 7 days before the collection day; the deposit kept inside those 7 days, because the order is baked specially; and a missed slot held until 14:00 on the day, then released with the deposit kept.

Rewrite this policy as one short paragraph for the order form, in plain words.
Use only the facts below. Do not soften it and do not add anything. No exclamation marks.

[paste the policy bullets]

This is the kind of paragraph that comes back when the prompt is loose (illustrative):

Your deposit secures your festive order and is fully refundable if your plans change. We will always do our best to accommodate cancellations. Your order will be ready at your chosen time, and we will happily hold it for you until we close.

It reads warmly and contradicts the policy four times. "Fully refundable" ignores the 7-day rule. "Do our best to accommodate" promises flexibility nobody agreed. "Ready at your chosen time" hides that a slot is a window, not a moment. "Until we close" stretches the hold from 14:00 to the end of the day, and held orders take shelf space on the busiest day of the year. The version that went on the form:

A deposit of 30%, rounded up to the next dollar, confirms your order. The balance is due when you collect, by card or cash. You can change the day, the slot or the items, or cancel for a full refund of the deposit, up to 7 days before your collection day. After that we bake your order specially, so the deposit is not refundable. Please collect during your slot. If you cannot, we hold your order until 14:00 that day; after that it is released and the deposit is kept.

Two checks stop trouble later. First, place a test order and look at what the form actually charges, because some tools can take 30% of a basket while others can only charge the whole total or a fixed amount, and the wording has to match the charge. How to take deposits online with Stripe or Square covers the payment side. Second, have the final text read by someone qualified in consumer rules where you trade: cancellation and refund rights on pre-paid orders vary, and AI does not know which apply to you.

Deposit or full payment is a separate decision. Ask whether an uncollected item could be sold over the counter that day. Loaves, boxes of pies and boxes of biscuits can, so a deposit protects you well enough. A personalised or very large item that nobody else will buy is better paid in full when ordered, and the wording gets simpler: no balance, no 14:00 deadline for money, only a collection window.

Five touches from order to collection

An order needs only a handful of messages, and each has one job. The form sends the confirmation by itself. The rest can come from you, a saved template and a filtered sheet. Times count back from the collection day.

WhenChannelIts jobWhat it must contain
Straight awayEmail from the formProof of the orderItems, day and slot, deposit paid, balance due, the change deadline, order number, shop phone
10 days beforeEmailLast call for changesThe slot, "changes close in 3 days", a request to reply if allergy details have changed
2 days beforeText if they ticked the box, otherwise emailCollection detailsDay, slot, balance in dollars, order number, who may collect
Morning of collectionTextNudgeOrder number, slot start, shop address
30 minutes after the slot, if still on the shelfTextRescue"We are holding your order until 14:00"

The 10-day message sits three days ahead of the 7-day deadline on purpose. A reminder that arrives on the deadline day gives people nothing to act on. Draft the three you send yourself from one fact sheet:

Write three messages for a bakery's festive pre-orders: the 10-days-before email, the 2-days-before text
and the morning-of text. Use only the facts below and these merge fields: [first name] [order number]
[day] [slot start] [slot end] [balance] [shop name] [shop phone]. Emails under 70 words, texts under 45.
Plain words, no exclamation marks, no promise that is not in the facts.

FACTS
Changes or cancellation are free until 7 days before collection; after that the deposit is kept.
Balance is due at the counter, card or cash. Orders are held until 14:00 on the collection day, then
released. Someone else may collect if we have their name. Bring the order number.
Collection slots are half-hours between 09:00 and 13:00.

A looser prompt ("write a friendly reminder text for festive orders") returns something like this for the 2-day message (illustrative):

Your festive treats are ready from 9am! Pop in whenever suits you and we'll have everything waiting. Anything changes, just reply and we'll sort it out.

"From 9am" ignores a customer whose slot is 11:00 to 11:30. "Whenever suits you" undoes the slot caps. "Just reply and we'll sort it out" invites changes after the deadline, and the text gives no balance and no order number. The fact-led prompt produced this one, which the owner approved unchanged:

Hi [first name], order [order number] is ready on [day], [slot start] to [slot end]. Balance due at the counter: $[balance], card or cash. Bring this message. Someone else collecting? Reply with their name. We hold orders until 14:00. [shop name]

Sending the reminders: by hand, or from a tool

Run the numbers before buying anything. The sample season sends 120 confirmations from the form itself and 360 reminders (three per order), plus a handful of rescue texts. By hand, with a saved template and a filter on the order sheet (collection date equals today plus 2), one reminder run takes about 15 to 20 minutes (illustrative; time your own). At this size that is the right answer.

An automation tool earns its place once you would spend more time sending than baking. Zapier's Professional plan lists at $29.99 a month billed monthly, or $19.99 a month billed annually, and includes 750 tasks a month, with each action step counting as one task (check the live pricing page). Every reminder lands in December, because the 10-day message for a 22 December pick-up goes out on 12 December. So 360 reminders use just under half of the allowance, plus a few dozen tasks if a daily lookup step runs. The free plan allows 100 tasks and two-step Zaps only, and a reminder that must look up the day's orders before sending needs more steps than that. Whichever tool you look at, count the steps per message first.

Ten awkward dummy orders before any customer sees the form

A form that works for the owner's own test can still break on the second real customer. Have the AI write the awkward cases, then place them yourself, on a phone as well as a computer.

Here is the spec for my pre-order form: [paste the field table and the caps].
Write ten dummy orders designed to break it. For each give the order and what the form should do.
Include at least one that tries to exceed a product cap, a slot cap and the cut-off.

These ten cover most of what goes wrong (illustrative):

#Dummy orderWhat should happen
1Five stollen in one orderRefused at the per-order maximum of 4
2Seven orders into one slotThe seventh cannot choose that slot
3Two people after the last yule log, in two browser windowsOne succeeds; the other sees a "not enough stock" message; the count never goes below zero
4A 40-character inscription with an apostrophe and an emojiRefused or trimmed, and the pick list prints it correctly
5Allergy choice left emptyThe form will not submit
6A declined card, then an abandoned payment pageNo order is confirmed and you know whether stock or a slot was held
7An order after the cut-off (set the closing time ten minutes ahead for this test)Your closing message shows, and says something useful
8Mobile number typed, text box left untickedNo text is ever sent to that number
9Two orders from one email for different daysBoth accepted, two order numbers
10Refund a test deposit from the payment dashboardYou know where to click, and what the customer's email says

Test 6 deserves care. Jotform's help says that for gateways using an off-site payment page, stock drops only after the gateway confirms payment, and for incomplete payments only when you mark the submission as completed. Your gateway and tool may behave differently, so find out with a declined card rather than in December.

In a first run (illustrative) the failures sit in the gaps between rules. The maximum of 4 per product let three customers take four yule logs each, which is a whole day's 12, so logs went down to a maximum of 2. The closing message still read "Orders are open". Rerun all ten after every change to the form, because fixing one rule can quietly break another.

Week by week: how the 120 orders arrived

The three forms opened on 3 November and closed at midnight on 15 December, seven days before the first collection day. Orders did not arrive evenly (illustrative):

WeekOrdersWhat happened
1 (3 to 9 Nov)12Soft launch to regulars and the counter. Two customers took "collection slot" for a delivery slot, so the label became "Collection time"
214A card by the till and one post; nothing to change
315Ten mock handovers timed on a quiet afternoon: 1 minute 50 seconds on average, so the cap of six stays
422First full slot (24 December, 10:00) and the first waiting-list requests
531Yule logs for the 24th reach 12 of 12 and grey out; three enquiries by message are pointed to the 22nd and 23rd
6 (to 15 Dec)26Last changes inside the 7-day window handled by hand; the forms close at midnight

When a slot is full, the form shows a closed message with a link to a one-line waiting-list form: name, email, which days would do. When someone cancels, or an uncollected order is released, the first name on the list gets this (illustrative):

Hi [first name], a place has opened on [day] at [slot start]. It is yours if you reply YES by [time today]. We will then send the deposit link. If we have not heard by then we will offer it to the next person on the list. [shop name]

The end position, by collection day:

Collection dayOrdersSlot places usedItemsTakings
22 December3434 of 48 (71%)75$1,278
23 December4040 of 48 (83%)87$1,497
24 December4646 of 48 (96%)102$1,748
Total120120 of 144 (83%)264$4,523

Deposits at 30% came to about $1,357 of the $4,523, which leaves about $3,166 to take at the counter. On the 24th the first six slots held six orders each and the last two held five, so only two places went unused. The average order was about $37.69, from 2.2 items.

From export to bake sheet: the order the AI counted twice

The morning after the cut-off, export the orders to a sheet and add a "status" column for anything changed or cancelled by phone. Remove names, emails and mobile numbers before anything goes into an AI chat. A bake sheet needs the order number, day, slot, items, allergy flag and inscription, and nothing that identifies a customer.

Below is an export of festive pre-orders, one row per order, with names and contact details removed.
Columns: order_no, status, day, slot, items (product x quantity, separated by semicolons), allergy_flag,
inscription. If a column I mention is missing, say so instead of guessing.
Ignore rows where status is "cancelled". Give me:
1. Total units of each product per day, as a table.
2. Orders per slot, flagging any slot above 6.
3. Any product total above its daily cap: yule log 12, stollen 20, mince pies 30, loaf 27, gingerbread 24.
4. Every order with allergy_flag = yes: order_no, slot and the allergy text.
Do not infer anything that is not in the data. List ambiguous rows separately.

Never bake from the AI's totals alone. Build the same table in the sheet with SUMIFS (Google Sheets AI prompts will write the formula if you describe your columns) and compare. This is the 24 December check (illustrative):

ProductAI totalSheet total
Yule log1312
Stollen1818
Mince pies2727
Cranberry and walnut loaf2525
Gingerbread2020

The log row disagrees. The AI's 13 is over the daily cap of 12, which is exactly why the prompt asks for a cap check. Order 2071 appears twice: the customer resubmitted the form to change a slot, and the first copy, cancelled by phone, was still in the export. The sheet ignored it because the sheet has a status column. The export pasted into the AI did not, and the AI said so in its last line, below the tables, where it is easy to miss. Two fixes: changes are made by editing the order, never by submitting again, and the status column goes into every export the AI sees. Read the end of the AI's answer first.

One more check before any flour is weighed: match order numbers to payments. 120 live orders should show 120 deposits, and a row without one is a slot held for nothing. With the totals agreed, the bake plan is the next job, and planning oven slots and a prep timeline picks up from here.

Collection day: the shelf, the handover and the order nobody collects

Print one pick list per slot: order number, the name for the label, items, balance due, and an allergy flag carrying the customer's own words. Bags are labelled and sealed by 08:30 and shelved by slot, with a coloured sticker on any bag that has an allergy note, so whoever is at the counter reads it aloud. A handover is four steps: check the order number, take the balance, repeat the allergy note if there is one, tick "collected" on the list. That is the handover the two-minute estimate behind the slot cap assumed.

The rescue text goes out 30 minutes after a slot ends, for any bag still on the shelf. At 14:00 the order is released: anything that can be sold over the counter goes on sale, and the deposit is kept, as the form said. In this sample three orders went uncollected, all on the 24th, which is 2.5% of 120. The deposits kept came to about $34 (30% of the $37.69 average is about $11.31, times three), against three orders' worth of baking that mostly sold at the counter anyway. If uncollected orders keep recurring, move the products that cannot be resold to payment in full.

Easter: clone the form, change four things, check one sum

Duplicate the Christmas forms rather than rebuild them. Four things change. The dates: Easter moves every year, so set the opening and closing dates from the calendar and count back seven days for the change deadline. The product list: usually shorter, perhaps hot cross buns by the box, an Easter loaf and a few decorated biscuits. The caps: recalculated from your trays. The collection days: often fewer. Then rerun the ten dummy orders, because a duplicate carries over any stock counts and slot limits you forgot to reset.

The sum to check is which cap binds first. Suppose the oven turns out eight trays of 24 hot cross buns a day: 192 buns, or 32 boxes of six. Slots might allow six slots of four orders, which is 24 orders a day. If customers average 1.8 boxes an order (illustrative), 32 boxes serve only about 18 orders, so the oven runs out long before the counter does, and the product cap is the one to show customers prominently. Set the per-order maximum at 4 boxes so that no single order takes more than an eighth of the day's bake.

What stays with the owner

AI drafted the field list, the wording, the messages, the test orders and the first pass at the totals. Four things never went to it for a decision. The caps, because they come from a stopwatch and an oven, not from text. The prices, which come from your costs. The refund and cancellation terms, which need a qualified reader. And what an item contains: allergy statements come from your recipes and your allergen policy, and a model that tidies a sentence into "nut-free" has made a safety claim on your behalf. Read every allergy line aloud before it goes live, and ask the authority that oversees food businesses where you trade what must appear on the form.

Four numbers to keep when the season ends

  1. The date each product sold out. If the yule logs went on 5 December, either raise the cap or open earlier next year, whichever the decorating bench allows.
  2. The slots that filled first, and the ones still empty on the last day. Move capacity to where people ask for it instead of only adding more.
  3. Changes made inside the 7-day window. Many of them means the deadline is too early for your customers or the 10-day reminder is too late.
  4. Orders left uncollected. The figure that tells you whether a deposit is enough.

Keep the four beside the orders, under the season's name, and next year's caps start from facts. Predicting demand and cutting unsold stock with AI shows how to turn season figures into quantities for ordinary weeks.

Questions bakers ask once the form is built

Do I need permission to text customers reminders?

Rules on messaging customers differ by place and by type of message, so ask your adviser or your text-message provider what applies to you. A sensible minimum is a separate, unticked box on the form for texts, stored with the order, and an email-only route for anyone who leaves it blank. Do not use that box to add people to marketing lists.

What if someone orders by phone or at the counter?

Enter it into the same form yourself, using your own phone or a counter tablet, so slot counts and product stock stay true. Orders kept in a notebook are the main way caps get broken, because the form cannot count what it never sees. Give the customer the same confirmation and order number as everyone else.

How early should the form open and when should it close?

Open early enough that the quiet weeks show you how orders arrive, and close early enough to order ingredients and plan the bake. The sample bakery opened its forms about seven weeks before the first collection day and closed them seven days before it, which is also its change deadline. Your suppliers' lead times may push the cut-off earlier.

Can AI answer customers who ask about availability?

Let it draft replies that you send, but take live availability from the form, never from the AI's memory. A chat assistant that quotes a slot as free when the form says full creates exactly the double booking the caps exist to stop. For enquiries about custom cakes, a separate enquiry flow suits better than this form.

Further reads

Sources: Jotform pricing page and help pages on form status, product stock control and the Appointment field (read October 2026); Zapier pricing page (October 2026). Every count, price, slot cap and time in the examples is illustrative.

Want your pre-order flow set up before the rush?

On a 1:1 call we'll map how orders reach you today, set slot and product caps from your real counter and oven capacity, and decide which messages are worth automating.

Book a 1:1 call with me