Skip to main content

Zeszyt: a florist CRM that replaced carbon-copy order slips with a phone

An order taken at the counter in seconds, the arrangement described by voice, and an AI draft the florist only has to check. Customers can also order on their own through the website.

Industry: Florist (two shops in Gorzów Wielkopolski, Poland)

In short

  • Only 2 required fields at the counter: customer phone and pickup day
  • An instant large order number, e.g. 7/20, to copy onto the bag
  • Voice is transcribed on the florist's own server, not by an external service
  • Evaluation on 18 cases: the chosen model got 100% of items and quantities right, about 0.06 cent per order
  • 1185 server tests, 452 app tests and 61 end-to-end tests on four device profiles

About the project

Bukieteria is a family florist in Gorzów Wielkopolski with two shops. The busiest time of the year is before All Saints' Day: grave arrangements, wreaths and decorations, each slightly different and described in the florists' own terms. The team works at the counter and in the workshop, on phones.

The challenge

Orders were taken on carbon-copy slips. Arrangements were described in florist jargon (head, legs, cover, back, fresh or artificial, colours, how many roses), the number went into a notebook and onto the bag, and the second shop numbered its orders separately. Nobody wrote down phone numbers, so there was no customer database. With a queue at peak season, every minute at the counter and every lost slip costs money.

Goals

  • Take an order at the counter faster than on paper, without changing the team's habits
  • Turn the arrangement description into structured items without retyping
  • Build a customer database from day one
  • Let customers order on their own through the website
  • Give the owner daily limits, team control and a full change log

Technical challenges

Florist jargon

Words like head, legs, cover or back are not something an AI model knows from the internet. The draft relies on the shop's dictionary and a strict data schema, and items the AI is unsure about are highlighted for checking.

Speed at the counter

The florist cannot wait for the AI. The order is created immediately from the phone number and pickup day, and the recording is processed in the background in a server queue. It also works offline, with a queue on the phone.

Customer data

Voice recordings contain names and numbers. Voice stays on the florist's server, only text with personal data replaced by placeholders goes to the AI model, and recordings are deleted 30 days after pickup.

Solution and implementation

At the counter: phone, day and a recording

The florist signs in with an SMS code, enters the customer's phone and pickup day, and describes the arrangement by voice, with a checklist on screen: how many, what, fresh or artificial, colours. She immediately gets a number to copy onto the bag.

Real-time demo at the counter. The red circle shows each tap; data is test data.

A large order number

The system assigns a number in the number/day format, separately for each shop. Nothing changes at the counter: the number goes on the bag and the slip, as before.

Screen with the large order number to copy onto the bag

An AI draft to check

The recording is transcribed and the AI turns it into order items. Uncertain fields are highlighted, contradictions go onto a list to clarify, and the AI never overwrites the phone, day or shop entered by hand. The florist corrects and approves.

Order draft with a highlighted uncertain item and a list to clarify

Customers order on their own

On the florist's website the customer signs in with her phone number and an SMS code. She can type, record a voice note, add a photo or pick a bouquet from the catalogue, sees what the AI understood, and sends it. The order waits for confirmation in Zeszyt, and after the decision the customer gets an SMS.

The customer records an order and sends it, then a florist confirms it in Zeszyt. Test data.

Daily flower summary

The workshop sees the day's orders by number with statuses, and the summary adds up roses, orchids or chrysanthemums, fresh and artificial separately. When an order is ready, the customer gets an SMS with the number and pickup point.

Daily flower summary, ready to print

Owner panel

Order limits and closed days for each shop, team and permission management, and a full audit log: who changed what and when, with the value before and after.

Day calendar: order limit and closed days for a shop

Results

An order at the counter in seconds

Phone, day and an instant number. The arrangement is recorded by voice instead of being written on a carbon-copy slip.

A customer database from the first order

Every order has the customer's phone, so next time the shop sees her history and can send an SMS.

Website orders without a phone call

The customer orders from home by text, voice, photo or from the catalogue, and the team confirms with one tap.

Everything in one place for two shops

Separate numbering, limits and summaries for each shop, while the owner sees the whole picture and every change.

Takeaways

Team habits first, technology second

The number on the bag stayed the same as on the slip. The counter routine is the same as before, just on a phone, so the change for the team is small.

AI drafts, people decide

A model that flags uncertainty more often is better for orders. One extra yellow field is cheaper than the wrong arrangement.

The same works in other businesses

A bakery taking cake orders, a tailor, a bike repair shop or a framing workshop: anywhere orders are taken on paper, by phone or on WhatsApp.

Scope

  • Phone app (PWA)
  • Voice order taking
  • AI order draft
  • Customer orders via the website
  • Owner panel
  • SMS to customers

Technologies

  • React
  • Node.js
  • PostgreSQL
  • Whisper on our own server
  • Claude Haiku 5.5
  • SMSAPI
  • Playwright (tests on phones)

Frequently asked questions

Does a florist need a CRM?

Yes, once there are so many orders that slips and a notebook stop working: All Saints' Day, Mother's Day or Valentine's Day. At Bukieteria it is a phone app where an order is taken in seconds.

How is an order taken in Zeszyt?

The florist enters the customer's phone and pickup day, and the system instantly assigns a number such as 7/20. Then she records the arrangement by voice or photographs the slip, and the AI turns it into a draft to check.

Can the AI get an order wrong?

The AI approves nothing on its own. It makes a draft to check, highlights uncertain parts and never changes the phone, day or shop entered by hand. The florist decides.

What happens to voice recordings?

Recordings are transcribed on the florist's server. Only text with the phone and name replaced by placeholders goes to the AI model, and recordings are deleted 30 days after pickup.

Can customers order on their own?

Yes. They sign in with a phone number and SMS code, describe the order by text, voice or photo, or pick a bouquet from the catalogue. A florist confirms it and the customer gets an SMS.

Can you build a system like this for my business?

Yes. I start by talking at the counter or desk: how orders are taken today, who takes them and what gets lost. Then I build a phone version the team uses from day one.

All case studies