Everything the shop does on WhatsApp, in one place
The CRM is where both branches' WhatsApp conversations, cake orders, deliveries and customers live. This handbook explains each screen, what the system does on its own, and what it leaves to you — so every member of the team gives customers the same experience.
Start here
The CRM lives at crm.drentova.com. You sign in with your own email and password — there is no self-registration; an administrator sends you an invitation link and you set your password from it. Works in any browser, on a laptop or a phone.
The left-hand menu
- Dashboard — today's numbers at a glance.
- Inbox — every WhatsApp conversation, both numbers.
- Notifications — things that happened while you were away.
- Contacts — every customer, with tags and details.
- Pipelines — deals on a drag-and-drop board (optional).
- Cake requests — the order board, from quote to completed.
- Deliveries — what is waiting to go out and what is on the road.
- Broadcasts — one message to many customers, using approved templates.
- Automations and Flows — the rules and the order form builder.
- AI agents — the assistant's setup, fact sheet and playground.
- Settings — numbers, templates, branches, team, Shopify.
Four roles, and what each can do
- Owner — full control, including who is on the team.
- Admin — everything, including settings and team members.
- Agent — the day-to-day: inbox, contacts, orders, deliveries, broadcasts. No settings.
- Viewer — read-only. Can browse but not reply or change anything.
New to the team? Read chapters 1, 3, 4 and 11, then do Try it. Managing the shop? Add 8, 14 and 15. The Staff playbook is the page to keep open on your first week. Words in boxes are exactly what you'll see on screen.
Dashboard
The first screen after signing in. Four numbers, two charts and a live activity feed — enough to know how the day is going without opening anything else.
Active conversations · New contacts today · Open deals value · Messages sent today
Each shows today against yesterday. “Active” means conversations that are open or pending — the ones someone may still need to reply to.
Conversations over time · Average first response time
Incoming and outgoing messages per day, and how many minutes it took to answer a customer's first unreplied message, by weekday, against a target. That second chart is the honest measure of the inbox.
What just happened
Messages, deals, broadcasts and rules firing, newest first.
New contact · New deal · New broadcast · New automation
Shortcuts to the same screens in the menu.
Inbox
Three panes: the conversation list on the left, the thread in the middle, the customer's card on the right. Both branch numbers land here, one conversation per customer, and a small badge on each conversation says which number they used.
The list
- Filters along the top: All Unread Open Pending Closed, plus Tags and Number when there are two.
- Pending is the one to watch: it means a person needs to act — the order form finished, or the assistant handed over.
- Search by name, phone or words in the last message.
- A conversation a customer writes to after it was closed re-opens on its own.
The thread
- Status — Open, Pending or Closed. Assign — put the conversation in a colleague's name, or your own.
- Messages the assistant sent carry a small AI badge; order-form messages read like any other outgoing message.
- The 24-hour timer above the composer counts down from the customer's last message. While it runs you can type freely; when it shows Expired, only a template can be sent (why, in the playbook).
- Esc closes the thread and returns to the list, like WhatsApp Web.
Composing a reply
- Type and press Enter. Shift+Enter for a new line.
- Attach a Photo, Video, Document, or record a Voice note.
- Quick replies — saved answers you use every day (set up in Settings). Any message you've typed can be saved as one.
- ✨ Draft a reply with AI — the assistant writes a draft from the conversation and the fact sheet; you edit it before sending. Nothing goes out until you press Send.
- Templates — the approved messages that work outside the 24-hour window.
The customer's card
- Name, number, tags, custom fields, and the cake requests attached to this conversation.
- Earlier history — the chats from before the CRM, imported from the shop's old phones. Read-only, for your reference; the system does not use them.
- On any photo the customer sends: Use as reference attaches it to their cake request so the kitchen sees it on the board.
Who answers a message — one rule, in order
When a message arrives, the system asks three questions in a fixed order. The first one that says “yes” answers the customer, and the others stand aside. A customer never hears from two of them at once.
Is an order form open — or did they type cake?
If a form is already mid-way, the message is the customer's next answer, whatever it says. If not, the exact words cake, custom cake or order cake open a new one.
Does an automatic rule match?
Rules are small “when X, send Y” actions — a welcome message for first-time customers, for example (chapter 14).
None set up today — this step passes straight throughCan the assistant help?
Only for typed text, only when nobody on the team holds the conversation, and only up to its limit. Otherwise it stays quiet.
Your team
Everything else lands in the inbox for a person — including every conversation the assistant or the form has passed over.
Before anyone answers: the first second
- The customer is recognised by phone number
A number we have seen before opens their existing card. A new number gets a new card, named from their WhatsApp profile.
- The message joins their one conversation
Whether they wrote to the Al Sadd number or the Al Aziziya number, it is the same conversation, badged with the number they used.
- Is this their very first message to us?
Checked before filing. “First” means first in this inbox — see chapter 5.
- Duplicates are dropped
WhatsApp occasionally delivers the same message twice. The second copy is ignored, so a customer is never answered twice for one message.
- The conversation moves to the number they wrote to
Your reply always leaves from the branch number the customer last used — from their side, they are still talking to the same shop they messaged.
- Then: who answers?
The four lanes above — and a note is kept of who answered and why the others did not, so “why did this customer get no reply?” always has an answer.
Why the form comes first. Once a customer is answering “what size?”, their next message must be treated as the size — not as a new question for the assistant. Holding that place in the conversation is what the order form does.
Why the assistant comes last. It is a fallback for questions nothing else claimed. It never interrupts an order in progress and never speaks in a conversation a person has taken.
A first-time customer and a known one
The rule is the same for both. What differs is that a known customer's conversation carries memory — and that memory decides who is allowed to speak.
First-time customer
- A new customer card is created from their number and WhatsApp name.
- Nothing is open, nobody holds the conversation, the assistant has a full allowance.
- If they typed exactly cake, the Order form begins.
- Anything else typed — “hi”, “how much is a 2 kg cake?”, “are you open?” — goes to the Assistant.
- A photo, voice note or sticker with no words: Nobody answers. It waits in the inbox for a person.
Known customer
- Their existing card and conversation open; the full history is right there for whoever replies.
- The same rule runs — but the conversation's memory can close some doors, as the table below shows.
- A customer who was once passed to your team stays with your team. The assistant does not come back on its own.
What the conversation remembers
Any of these, if true, changes who answers a known customer:
When a branch number moves onto the CRM, every customer who writes afterwards is meeting the inbox for the first time — a new card, a fresh conversation, a first message. Their years of chat live in the Earlier history panel for your team to read, but the system treats their first message exactly as it would a stranger's: cake opens the form, anything else goes to the assistant.
The order form — seven questions, then it's on the board
The form opens only on the exact words cake, custom cake or order cake — capitals and stray spaces don't matter. “How much for a birthday cake?” does not open it; that is a question, and the assistant answers it. This is deliberate: the assistant tells customers to send the single word when they are ready to order.
- Pickup or delivery
Two buttons. Only a tap moves on — typing “delivery” does not count (chapter 7).
- Which branch
A list of your active branches, from Settings. For pickup: where they will collect. For delivery: which kitchen bakes it.
- Size
Typed freely. Whatever they write is kept word-for-word for the kitchen.
- Flavour
Typed freely — including their own idea.
- Message on the cake
Or “none”.
- Date needed
Typed freely. The board also tries to read it as a calendar date — and when it isn't sure (“next weekend”), it shows needs confirming rather than guess, so a person checks.
- Delivery address
Delivery orders only. Pickup customers skip this and finish one step earlier.
When the last answer arrives
- A cake request appears on the board, status Awaiting quote, with every answer exactly as typed.
- The conversation is marked Pending in the inbox, with a note: “Custom cake request — 2 kg lotus for Friday (delivery). Message on cake: Happy birthday Sara. Send photos of any reference cake here, then quote a price.”
- The form itself sends no closing message. The next thing the customer hears is a person with a price. Pick these up promptly.
Unexpected replies inside the form
Two things move the form forward: tapping one of its buttons, or typing anything at all in reply to a typed question. That single fact explains every row below.
| The form asked “What size?” and the customer… | What the system does | Who's speaking |
|---|---|---|
| types 2 kg · two kilos · 2000 gram · 2000g | All accepted, word-for-word, as the size. The form does not translate or check units — the kitchen reads exactly what the customer wrote and decides. The form moves on to flavour. | Order form |
| types fuck you | Accepted as the size. The form has no sense of tone while it is running; it asks for the flavour next. Your team will see the words on the cake request and in the conversation. | Order form |
| types talk to a human · call me · stop | Accepted as the size — the form does not recognise these as a request to leave. The customer reaches a person when the form finishes (three more questions) or when they go quiet for a day. See chapter 18. | Order form |
| types cake again | Accepted as the size. An open form always outranks starting a new one. | Order form |
| sends a photo, voice note, sticker or location with no words | Not an answer to a typed question. The form repeats the question. If it happens a second time, it repeats once more. On the third, it stops and passes the conversation to your team with whatever was collected so far. | Order form → Your team |
| taps a button from earlier in the chat | Not an answer to the current question — same as a photo: repeat, repeat, then pass to your team. | Order form → Your team |
| says nothing for 24 hours | The form closes quietly. Nothing is sent. Their next message is treated fresh — cake starts again from the top. | Nobody |
At the button steps
- Pickup / Delivery and the branch list only accept a tap.
- Typing delivery instead of tapping counts as unexpected: the buttons are sent again, twice at most, then the conversation passes to your team.
When the form hands over early
- The conversation is marked Pending.
- A cake request still appears on the board, with the answers collected so far and the rest blank.
- The customer receives no message at that moment. A person should pick it up and finish the order by hand.
The assistant — what it knows, and when it steps aside
The assistant answers typed questions using the shop's fact sheet — opening hours, branches, flavours, starting prices, how to order. It replies in the customer's language, Arabic or English. It is live today on the shop's number.
Assistant It answers when…
- The message is typed text — not a photo, voice note or button tap.
- No order form is open and no rule answered.
- Nobody on the team holds the conversation.
- It has not used its 3 replies in this conversation.
- The question is covered by the fact sheet. It is told: prefer handing over to guessing.
Your team It hands over when…
- The customer asks for a person — “talk to someone”, “call me”.
- The customer sounds upset or is complaining.
- The question needs something not in the fact sheet — a specific price, a custom design, an order's status.
- It has used its third reply in this conversation.
The one line it always sends when stepping aside
“Let me pass this to one of our team — they'll reply to you here.”سأحوّل رسالتك إلى أحد أفراد فريقنا وسيرد عليك هنا.
Always both languages, always the same words, and deliberately no time promise. “Someone will reply shortly” at 1 am would be a lie; “they'll reply to you here” is a promise the shop can keep. The customer is never left in silence wondering whether they were ignored.
The allowance stops a long back-and-forth with a bot. After the third reply, the fourth message gets the line above and the conversation is yours. When you have dealt with it, Resume assistant in the inbox hands the conversation back with a fresh allowance and releases the assignment. Nothing else brings the assistant back — leaving a conversation assigned keeps it quiet indefinitely.
Setting it up — the AI agents page
Three tabs. Admins and owners can change them; everyone can read.
Agent setup
The AI provider and its key (entered once, then hidden), a Business context & instructions box in plain words, and the switches: Enable AI assistant (turns on ✨ Draft in the inbox), Auto-reply to inbound messages, Max auto-replies per conversation (3), and Hand off to — who receives handed-over conversations.
Knowledge base
The documents the assistant answers from: hours, branches, flavours, price bands, ordering, policies. Add a document, or edit one. Each paragraph should stand alone and name its subject — the assistant reads paragraphs, not whole pages.
Playground & usage
Type a customer message and see what the assistant would say. The usage card counts drafts, auto-replies and spend.
Contacts & pipelines
Every customer who has ever messaged either number has a card, created automatically. You can also add people by hand or import a list.
Contacts
- Search by name, phone or email. Filter by tags.
- Add Contact — name is required; phone with country code (+974…).
- Import — a CSV of customers, mapped column by column.
- Tags — colour labels for grouping: VIP, Corporate, Ramadan 2026. Broadcasts pick their audience by tag.
- Custom fields — extra details on every card (Birthday, Preferred branch). Set up in Settings → Fields & tags.
- Deleting a contact is permanent and asks you to confirm. It does not delete their WhatsApp messages from their phone — only from the CRM.
Pipelines
- A drag-and-drop board of deals — useful for corporate or event orders that take weeks, not for everyday cakes (those live on the cake requests board).
- Create a pipeline; default stages from New lead to Won are created for you.
- A deal has a title, a customer, a value, an expected close date and notes, and can be linked to a conversation.
- The Dashboard's Open deals value and the pipeline donut read from here. Currency is set in Settings → Deals & currency.
Broadcasts — one message to many
An Eid greeting, a new flavour, a Ramadan pre-order reminder. Because most customers are outside the 24-hour window, a broadcast can only use an approved template — a message Meta has reviewed in advance. Four steps.
- Choose a template
From the approved list. Marketing templates need approval like any other; ask an admin to create and submit one in Settings → Templates well before the date.
- Select the audience
By tag, or all contacts. The count updates as you choose.
- Personalise
Fill the template's blanks — the customer's name, a date, a link — and add a header image if the template has one.
- Schedule or send
Now, or at a time. Sending runs on the server, paced so Meta accepts it; you can close the tab.
Reading the results
- Each broadcast shows a funnel: Sent → Delivered → Read → Replied.
- Per-recipient status, filterable, with Export CSV.
- If some recipients failed, Retry failed sends to those again.
A customer who answers a broadcast lands in the inbox like anyone else and is handled by the same rule — cake opens the form, a question goes to the assistant. If the broadcast invites replies, expect the assistant to be busy for an hour.
Cake requests — the order board
Every custom cake, from the moment the form hands it over (or you type in a phone order) until it is collected or delivered. Each card shows the customer, branch, size, flavour, date, message on the cake, price and payment — and its status, which is the whole workflow.
What you do on a card
- Edit — quote the price, fix a size the customer clarified, add internal notes for the kitchen.
- Change status — move it along. Three statuses also message the customer (below).
- Send payment link — creates a secure Shopify payment page for the quoted price and sends it to the customer. Resend link sends the same one again. When they pay, Shopify tells the CRM and the order becomes Confirmed on its own.
- Cash on delivery — records that the customer will pay the driver; the card shows Cash due on delivery. Mark cash collected when the money is in — the driver does this from the app, or you can here.
- Open chat — jumps to the conversation.
- Reference photos — the pictures attached from the inbox with Use as reference. Pick one to show on the board; the kitchen bakes from these.
- New request — for phone and walk-in orders. Same card, filled by you.
Messages the board sends for you
Word for word — these are frozen at approval and cannot be edited on the fly. The customer's name and your branch fill the blanks.
- ConfirmedHi Sara, your custom cake order is confirmed. We'll message you here as soon as it's ready.
- Confirmed · cash on deliveryHi Sara, your custom cake order is confirmed. Please have QAR 250 ready in cash for the driver. We'll message you here as soon as it's ready.
- Ready · pickupHi Sara, your cake is ready for collection at our Al Sadd branch.
- Ready · deliveryHi Sara, your cake is ready. Our team will be in touch about delivery.
- CancelledHi Sara, your cake request has been cancelled. If that wasn't expected, just reply here and we'll take a look.
- Payment linkHi Sara, your custom cake comes to QAR 250. Pay securely here: [link] and we will confirm your order as soon as it goes through.
“Friday” becomes a real date on the board. “Next weekend” or “14/3” (March or 14th?) shows — needs confirming or — or 3 March? next to it. The board never guesses a date silently — a wrong date costs a cake, a missing one costs a question.
Deliveries — from the counter to the door
Two lists and a map. Waiting to go out is every delivery order that is ready and has no run yet; Out now is every run on the road, with its driver and when they were last seen.
- The cake is Ready and the order says Delivery
It appears under Waiting to go out, with the customer, the address and the order details.
- Press Send out
A driver is chosen automatically — first a driver whose home branch matches, then whoever is carrying the least. You can pick one yourself instead, or send without a driver and assign later. Not by distance: the system does not know where an idle driver is, on purpose.
- The driver is told, immediately
A push notification on their phone and an entry in their app's notification list. The run appears on their day. If a driver doesn't respond, reassign from the card — Assign a driver.
- The driver starts the run
The customer gets a message with a tracking link (and the cash amount, if paying on delivery). While the run is in progress the driver's position updates on the On the road map here and on the customer's page. Tracking stops the moment the run ends.
- Delivered
The driver marks it delivered and, for cash orders, records the money. The order becomes Completed.
What the customer sees
The tracking link opens a plain page with the shop's name and no login:
- Getting ready to leave — assigned, not yet started.
- Following your driver — a map with the driver's dot, moving.
- Delivered — Enjoy your cake.
The message the driver's start sends
- Delivery startedHi Sara, your cake is on its way. You can follow your driver here: [link] and we'll see you at the door.
- Delivery started · cashHi Sara, your cake is on its way. You can follow your driver here: [link] and please have QAR 250 ready in cash for them.
The Honey Cake app — kitchen and drivers
An Android app for the two roles that are not at a desk. One ordinary email-and-password login; the app opens on the screen for that person's role. These logins are app-only and cannot open the CRM.
Kitchen — a board on the tablet
- One shared station account per branch, signed in once and left on. Nobody owns it, so it gets no notifications — a chime at 2 am is a chime somebody silences.
- Shows that branch's orders, soonest due first, in large type, with the reference photos and the message on the cake.
- Exactly two gestures: Start baking (→ In production) and Ready. Marking Ready is what sends the customer their “your cake is ready” message — the whole chain, WhatsApp order → kitchen → WhatsApp reply, in one tap.
- Updates live; no refreshing.
Driver — their day, in their pocket
- Opens on today: what is left to deliver, what is done, cash still to collect.
- Each stop: customer, address, order, phone. Start begins the run and the tracking; Navigate hands the address to Waze or Google Maps; Delivered ends it. Tracking runs only between Start and Delivered, and Android shows a notification the whole time so the driver knows.
- Cash received on a cash order — the board in the CRM updates the moment it's tapped.
- History of their own deliveries (addresses and times only), a profile with their branch, and a notification list of every run assigned to them.
- Optional fingerprint / face unlock when reopening the app. It protects a phone left on a table; it is not a second password.
An administrator, in Settings → Team members: invite the person (or create the station), then give the account its app role — Kitchen for a branch, or Driver with a home branch. Drivers who don't use email are given an address on the shop's behalf; they never need to read it.
Rules & the form builder
Two screens for people who set the shop up, not for the daily inbox. Automations are rules — when this happens, do that. Flows are conversations with buttons and questions — the order form is one.
Automations — “when X, do Y”
Pick a trigger, add steps, switch it on. Every run is logged.
- When… a customer messages for the first time · a new contact is created · a message contains a keyword · a button is tapped · a tag is added · a conversation is assigned · on a schedule.
- Do… send a message, buttons or a list · send a template · add or remove a tag · assign the conversation · update a contact field · create a deal · wait · branch on a condition · close the conversation.
Flows — the order form and its cousins
- The live Custom cake request flow is the order form from chapter 6. Its Runs page shows every time it ran, where each customer got to, and how many times it repeated a question.
- A flow is Draft until you activate it; only Active flows answer customers.
- Ready-made templates: a welcome menu, an FAQ menu, a lead capture — and the cake request.
- The fallback on each flow is the “repeat twice, then hand over” behaviour from chapter 7, and the 24-hour quiet timeout. Both can be changed per flow.
Settings
Grouped as Account (yours) and Workspace (the shop's). Workspace settings are for admins and owners.
| Section | What it is for | Good to know |
|---|---|---|
| Overview | One page of status: WhatsApp connected or not, team size, templates, tags — and Connection health, which checks the live credentials with Meta and Shopify each time you open it. | If Connection health says Needs reconnecting, tell whoever manages the Meta account the same day. Nothing sends while it is red, and nothing else alerts you. |
| Your profile · Login & security · Appearance | Your name and photo; your password and signed-in devices; light/dark and the accent colour on this device. | Changing your email needs confirming from both the old and the new address. |
| The connection to Meta, one card per branch number, with which one is primary. Shows whether Meta is delivering messages to the CRM. | Set up once, during the number move. Do not re-enter credentials casually — the access token here is the long-lived kind, and the short-lived one Meta's site offers dies in an hour. | |
| Templates | The messages Meta has approved for use outside the 24-hour window: the eleven order and delivery messages from chapters 11–12, and any marketing templates you add. | Editing an approved template sends it back to Meta for review and it cannot be used until approved again. Create a new one instead when in doubt. Sync from Meta pulls in templates approved elsewhere. |
| Quick replies | Saved answers for the inbox composer. | Anyone can use them; write them in both languages. |
| Fields & tags | Tags for grouping customers; custom fields for details every card should carry. | Deleting a tag removes it from every customer. |
| Deals & currency | The default currency for pipelines and the dashboard (QAR). | — |
| Branches | Al Sadd and Al Aziziya: name, address, whether each does pickup and delivery, active or not. | The names here are what customers see in the order form's branch list. Deactivate a branch to take it out of the form while keeping past orders readable; don't delete it. |
| Shopify | The connection to the shop's online store: order confirmations, payment links, and (later) the product catalogue for the assistant. | When a customer pays on the website, they get “we've received your order… payment is confirmed” here on WhatsApp — matched by phone number, so the store must collect phone numbers at checkout. |
| Team members | Who has access, their role, and pending invitations. Invite member makes a one-time link valid for 1, 7 or 30 days — send it over WhatsApp. | The link is shown once. Removing a member keeps their login but takes them out of the shop's account. Give kitchen and driver accounts their app role here. |
| API keys | For connecting other software. | Not needed day to day. |
Try it: who answers this?
Type what a customer might send and set the situation. The answer follows the same rules as the live inbox.
Watch it happen
Pick a situation and step through the conversation. The panel beside the phone explains each turn.
Staff playbook — what you see, and what to do
The inbox and the board tell you the state of every conversation and order. Here is what each one means and the one action it asks of you.
Pending, with a cake note
The order form finished (or handed over early). The request is on the board as Awaiting quote.
Assistant handed over, with a summary note
The customer asked for a person, was unhappy, asked something off the fact sheet, or hit the third reply. They have already been told a person will reply here.
Unread, no note, no reply from the system
A photo, voice note or sticker with no words — or the conversation is held by someone, or paused. Nobody answered on purpose.
Assistant replied — was it right?
Every assistant reply carries the AI badge in the thread.
“How do I order?”
The form only opens on the exact word.
The 24-hour window
WhatsApp lets us send free-form messages only within 24 hours of the customer's last message. After that, only pre-approved templates can go out — the timer above the composer shows where you stand.
A date that says “needs confirming”
The customer wrote something the board could not read as one date.
An amber toast after changing a status
The status changed but the customer was not messaged — usually a pickup order with no branch, or a phone order with no chat.
“Sent out, but the driver did not stick”
The run was created but no driver could be assigned — usually no driver is set up for that branch.
The assistant never promises a time, never quotes a final price, never invents a date or a delivery slot — it is built not to. When you reply as a person, the same habit keeps the shop's promises honest: say what will happen, not when, unless you know.
Two things to know today
Both come from the same design choice — the order form is simple and predictable — and both have an easy team habit until they are refined.
The form marks the conversation Pending but does not hand it to a named person or pause the assistant. So if the customer writes “so how much is it?” before a person has picked the request up, the Assistant may answer — and it does not know the price.
Team habit: the moment a cake request appears on the board, assign the conversation to yourself. Once a person holds it, the assistant is silent.
“Talk to a human” typed at the size question is recorded as the size. The customer reaches a person when the form completes, when it gives up after repeated non-answers, or after a day of silence — but not on request.
Team habit: glance at new cake requests as they arrive. A size that reads “call me” is a customer who wants you now — open the conversation and take over by hand.
Words we use
This handbook uses everyday names. The CRM's menu sometimes uses the technical one; here is the mapping.
Choose a scenario above, then press Next message.