Your learning path
Find your role and do those modules first. Your role is shown under your name at the top right of the console (for example Host · Mama's Kitchen). Everyone should do modules 1 to 3.
https://resto.custocareai.com; if your partner gave you your own address, use the
one in your login email instead.| Role (as shown in the console) | What the role is for | Do these modules |
|---|---|---|
| Admin | Full access, including billing and publishing. Usually the owner or general manager. | All of them |
| Supervisor | Runs a branch shift, handles escalations. Everything except Billing and Email settings. | 1–14, 16, 17, 19, 20 |
| Host | Front of house: bookings and waitlist, orders, table calls, conversations, guests, tickets, messages. | 1–5, 7, 8, 10–12, 19, 20 |
| Kitchen | Kitchen display, sold-out items and stock counts. | 1–6, 9 (sold out, stock and use-by only), 19, 20 |
| Delivery | Assigned deliveries only. | 1–3, 8, 19, 20 |
| Finance | Payments, refunds, reconciliation, accounting, billing. | 1–3, 5 (refunds), 11 (messages and guest data), 17, 18, 19, 20, then Payments, accounting and growth |
| Analyst | Read-only reports and analytics. | 1–4, 11, 17, 19 |
| Accountant | Read-only accounting: books, reports, exports. | 1–3, 17, 19, then Payments, accounting and growth |
| Rider | Riders do not need a login: they get a delivery link on their phone. | Module 8 (the rider part) |
New in this course
What Ruby does on her own with guests (module 4), the pages guests open on their phones (module 10) and setting up branches, hours and operations (module 14).
Partners: sign in to Partner training.
Welcome and how Resto works with Ruby
The big picture in five minutes.
- What Ruby does and what your team does
- How an order travels from a guest's call to the guest's door
- Where Ruby gets her answers
Ruby is your AI host. She answers phone calls, WhatsApp, SMS and the chat bubble on your website. She takes orders, books tables, sends payment links and answers questions. When she is stuck, she hands the guest to a person. Your team works in the console: a web page that shows every order, booking and conversation live.
Ruby does
Answers calls and chats, takes orders and bookings, checks the menu and what is sold out, sends payment links, answers your FAQ, asks for ratings.
Your team does
Accepts and cooks orders, seats guests, sends riders out, steps in on calls, fixes problems in Tickets, keeps the menu and settings right.
Ruby knows
Only what you put in the console: your menu, branches, opening hours, delivery zones, FAQ answers and settings. Keep them accurate and publish your changes.
Signing in safely
Your login, your password, one place at a time.
- Where to sign in and how to set your own password the first time
- The one-session rule and the 5-minute automatic sign-out
- What to do when you are locked out
- Why your sign-in page shows your own logo and colours
Choose a new password 1
- 1 Shown the first time you sign in with a temporary password (from an invite or a reset).
- 2 At least 8 characters, and not the temporary one.
- 3 Save and continue opens the console.
First sign-in
- Open your login email. It is called "Your KasadaAI CustoCare-Resto login" (or your partner's product name). It has the sign-in page, your username (your work email) and a password.
- Open the sign-in page from the email, for example https://resto.custocareai.com/login?tenant=mamas-kitchen.
- Type your Email and Password, then press Sign in.
- Choose a new password when asked (see the screen above), then Save and continue.
Your own sign-in page
The address in your login email ends in ?tenant=mamas-kitchen (your restaurant's short name). That
page shows your logo, colours and product name: the heading says Sign in and, under it,
your product name followed by console. The look comes from
SettingsBranding (module 10). Bookmark it on every staff
device. If your partner gave you its own address, that page carries your partner's look instead.
Rules that keep your account safe
| Rule | What you see | What to do |
|---|---|---|
| One session per user. You can be signed in at one place at a time. | "You're already signed in on another device (Accra, Ghana · since 09:12). Sign out there first, or ask your admin to sign you out." | Sign out on the other device, or ask an admin. Signing in again from the same browser is fine. |
| Automatic sign-out after 5 minutes with no mouse, keyboard or touch. | At 4 minutes a Still there? box counts down. Then: "You were signed out after 5 minutes of inactivity." | Press Stay signed in. This also applies to a kitchen screen on the wall. |
| Lock after 5 wrong passwords, for 15 minutes. | "Too many failed sign-in attempts. Try again in N minutes, or ask your admin to reset your password." | Wait, or ask your admin to Unlock you or Reset password (module 15). |
| Signed out by someone else | The sign-in page shows why, for example "An admin signed you out." | Sign in again. If you do not know why, ask your admin. |
Tour of the console
Every button in the frame, numbered.
- The main menu on the left and why yours may be shorter
- The top bar: branch picker, Live, Publish, Kasada Dialpad, Ask CustoCare, Alerts, My profile
- What the Dashboard shows
Answers calls and chats for 2 branches · 1 live now.
Admin · Mama's Kitchen9
Here is how Mama's Kitchen is doing
42
GHS 6,180
18
81%
Urgent tickets, stuck orders, allergies and unpaid links
Osu kitchen 62% · East Legon kitchen 40%
- 1 Main menu. You only see the areas your role may use. Red numbers are new orders, open tickets or live conversations.
- 2 AI host card: Ruby's name, the branches she covers and how many conversations are live.
- 3 Branch picker: All branches or one branch. Every page follows it.
- 4 Live: green = receiving live updates. Reconnecting… or Offline: refresh the page or sign in again.
- 5 Publish: menu and Ruby changes are drafts until an admin or supervisor publishes them. Others see Live · v12.
- 6 Kasada Dialpad (headset): the console phone. The dot is green when ready (module 12).
- 7 Ask CustoCare: ask questions about your own data in plain words.
- 8 Alerts: urgent or overdue tickets under Needs attention.
- 9 My profile (click your name): your phone extension and softphone password. The door icon next to it is Sign out.
- 10 Dashboard cards: Needs attention, Live activity, Kitchen load, Upcoming reservations, Top items, Order pipeline.
Pop-ups, theme and the console on a phone
Table pop-ups
When a guest taps Waiter on a table's QR page (module 10), a pop-up appears on every page for about 15 seconds, for example T4: Waiter requested. Others say Bill requested, Needs help or Wants to pay cash. Press View to open Reservations, where the request waits under Open table bills until you press Done.
AdminSupervisorHost
Light or dark
The moon button in the top bar (Toggle theme) switches the console to dark; the sun button switches it back. Dark is easier on the eyes on a kitchen or bar screen at night. The choice is kept in that browser.
On a phone
The left menu folds away on small screens. Tap the menu button at the top left (Open menu) to show it, and the cross to close it. Everything else works the same, so a manager can check orders and tickets on the go.
The Dashboard also shows a Holiday hours notice for today and the next 14 days, with a Manage link to the branch settings (module 14).
What Ruby does with guests
Everything Ruby handles on her own, and what you see in the console afterwards.
- What Ruby can do for a guest without staff: orders, bookings, payments, status, directions
- The rules she always follows: a clear yes before she confirms, no card numbers or PINs
- Where her work shows up for your team
Ruby answers from your console data only: your published menu, your branches and hours, your FAQ answers and your settings. Every order, booking, ticket and message she creates appears in the console straight away, marked Ruby (AI). The examples below use Mama's Kitchen, a made-up restaurant.
What Ruby does on her own
| The guest wants… | What Ruby does | What your team sees |
|---|---|---|
| To order | Finds each dish (also by the names in Aliases), asks for every required choice, checks what is sold out at that branch, prices the cart and reads it all back. She places the order only after a clear yes. | A new card on OrdersBoard with Ruby (AI) and the channel. |
| A price before deciding | Prices the cart with the delivery fee (always called an estimate), any promo code and loyalty points. She suggests one side or drink per order and never pushes after a no. | An add-on the guest accepted carries an AI upsell badge in the order drawer. |
| "The usual" (returning guest) | Greets the guest by first name and offers their usual once: "You usually have 1 Jollof & chicken and 1 Sobolo for pickup. Same again?" If a dish is no longer available, she says so. | A normal order. Their favourites are on the guest's profile in Customers. |
| A group or office order | Reads back the details, then texts the organiser a link to share. Each person adds their own food and can pay their share. | CampaignsGroup orders, then one order on the board. |
| A pickup time when you are busy | When the kitchen is busy she says so and offers the next pickup times the kitchen can meet. When it is overloaded, delivery may pause for a short while; pickup still works. | The kitchen strip on the Orders page shows the load and Delivery auto-paused. |
| Their order code | Every order has a code such as MK-1042. She reads it out and it is in the guest's text. Guests use it to ask about the order later. | The code is on the card, the kitchen ticket, the receipt and the delivery sticker. |
| To check or cancel an order | Gives the status and expected time by order code, or finds the caller's latest orders. While a delivery is on its way she reads out the tracking link. If it is late: "we've texted you the new time". She cancels by herself only before the kitchen starts; after that she opens a change-request ticket so a person calls back. | A cancelled order, or a ticket in Tickets. |
| To pay | Sends a secure payment link by SMS, or a mobile money prompt straight to the guest's phone (MTN MoMo, Telecel Cash, AirtelTigo Money). She first reads back the amount and the number with the middle digits hidden. The guest approves on their own phone with their own PIN. If the network texts a one-time code (or a Telecel Cash voucher), Ruby asks the guest to read that code, then checks the payment came in before the call ends. | Payments: method Mobile money prompt or the link. |
| A table | Checks live availability, offers up to three nearby times when the slot is full, and says when a deposit is needed. She reads the booking policy, then books after a clear yes. The guest gets a confirmation text. | The booking in Reservations, with the policy recorded. |
| To change or cancel a booking | Reads the policy first ("Before I do: …") and goes ahead only after the guest agrees. She warns when the change is inside your cancellation cutoff. A paid deposit is refunded outside the cutoff and kept inside it. | The updated booking; a refund ticket for Finance when a deposit goes back. |
| To wait for a table | Adds the party to the waitlist with an estimated wait. | ReservationsWaitlist. |
| Directions | Reads the branch address, landmark and today's hours. She takes delivery addresses as landmarks ("behind Osu Castle") and reads them back. | The landmark is on the order and the delivery sticker. |
| The right branch | Knows which branch was called. If it is closed (including holiday hours: "It's closed today for Independence Day"), she says so at the start and offers an advance order for when it opens. If another branch delivers to the caller's area, she says which. | Scheduled orders for the opening time. |
| A rider needs help | Riders on your roster can call the restaurant line. Lost: Ruby calls the guest, asks for directions from a landmark and puts them on the rider's page. Guest not answering: she calls them to come out. | OrdersRidersRider help and the order history. |
| Anything else | Answers word for word from your FAQ answers. Asks about allergies and reads your allergy disclaimer; never promises a dish is safe. If a guest is unwell or had a reaction, she logs an urgent complaint. When she cannot help, she offers a call-back or a person. | Tickets (urgent ones also under the bell). |
Ruby at work: three examples
Press Replay under a conversation to watch it again. Names and numbers are examples.
A returning guest orders and pays by mobile money
A booking change, with the policy read first
A holiday, and an order for tomorrow
Check what Ruby did after a call
- Open Conversations and the call or chat. AdminSupervisorHost
- Read Ruby's summary and the transcript, then press View order or View booking to see what she created.
- Follow up anything she passed to a person in Tickets (cancellations after the kitchen started, call-backs, complaints).
- Teach her: what she struggled with turns into fixes in Ruby insights (module 13). AdminSupervisor
Taking and managing orders
The Orders page: Board, List and Riders.
- The order statuses and the button that moves each one forward
- How to key in a phone or counter order
- Rejecting, cancelling, adding items and refunds
- The badges: channel, risk, held orders and delay texts
Closed orders are Completed, Cancelled or Rejected. Before the kitchen starts (New, Accepted) you Reject; after that you Cancel order. New and accepted orders turn amber after 10 minutes and red after 20.
Orders
2× Jollof & chicken
22 min
1× Banku & tilapia
3× Kelewele
No sticker yet
Rider: Kojo
- 1 Board for service, List to search every order, Riders for your delivery riders.
- 2 New-order sound on or off.
- 3 New order to key in an order. While one is parked it says Resume order.
- 4 Pause new orders for a branch. Ruby then says the kitchen is busy and offers a booking.
Move an order forward
- Open OrdersBoard.
- Click the order card to open the order drawer (customer, items, allergies, payment, status timeline, calls).
- Press the main button: Accept, Start preparing, Mark ready, then Complete (pickup, dine-in) or Out for delivery (module 8).
| Button | Who may press it |
|---|---|
| Accept | AdminSupervisorKitchenHost |
| Start preparing · Mark ready | AdminSupervisorKitchen |
| Out for delivery · Complete · Delivered | AdminSupervisorKitchenHostDelivery |
| Reject · Cancel order | AdminSupervisorKitchenHost |
Key in a phone or counter order
- Press OrdersNew order AdminSupervisorHost
- Customer and fulfilment: choose Dine-in, Walk-in, Pickup, Delivery, Scheduled or Catering, the Branch and, for dine-in, the Table. Walk-in and dine-in guests paying cash need no phone number.
- Add items from the Menu, add an Allergy note or Promo code if needed.
- Place the order. It goes straight to Accepted. Busy at the counter? Press Minimize and come back with Resume order.
Change, stop or refund
| Task | Where (order drawer) | Who |
|---|---|---|
| Add items to an open dine-in or walk-in order | Add items | HostSupervisorAdmin |
| Remove an item (always with a reason) | Remove | SupervisorAdmin |
| Stop an order. The guest gets the reason by SMS or WhatsApp; any payment is refunded automatically | Reject or Cancel order, then Reason for the customer | AdminSupervisorKitchenHost |
| Refund part of a payment (Finance approves before it goes back) | Request refund | AdminSupervisorFinance |
| Print: kitchen ticket (no prices), sales receipt, delivery sticker | Kitchen ticket Receipt Delivery sticker | Anyone who can open the order |
Read the badges on an order
Voice · Ruby (AI) 1
Waiting for code High risk 2
WhatsApp · Ruby (AI)
Customer notified of delay 3
Bolt Food 4
Paid on the platform
Held before the kitchen: Waiting for code · Ruby texted the guest a 6-digit code to read back.
- 1 Channel badge: Voice, WhatsApp, SMS, Web chat, Walk-in, or a delivery platform (Bolt Food, Glovo). Next to it: Ruby (AI) or Staff.
- 2 Risk: every order gets a risk score. Medium risk or High risk shows on the card (hover for the reasons). A high-risk cash delivery Ruby took is held in the New column: Waiting for code, Waiting for payment or Needs staff check.
- 3 Customer notified of delay: the order ran late and the guest was texted an apology with the new time (and a voucher, if you set one).
- 4 Orders from delivery platforms arrive paid, as pickup (the courier collects). Set-up is in the integrations course.
- 5 Checks & tracking in the order drawer: the score and its reasons, each delay update, the rider link and the guest tracking link.
Clear a held order AdminSupervisorHost
- Open OrdersBoard and click the card with the amber hold badge in New.
- Read Checks & tracking: why it is held and the risk reasons (for example first order from this number, large cash on delivery, a far zone).
- Waiting for code: the guest reads the code to Ruby and the order goes to the kitchen by itself. Lost the text? Press Resend code.
- Needs staff check: call the guest. Then Approve (sent to the kitchen) or Reject. Accept on a held order also approves it.
Orders you key in yourself are scored but never held. Unchecked holds are cancelled after 30 minutes. What needs a code, a payment or a staff check is chosen in SettingsOperationsOrder protection, and delay texts in Delay updates (module 14).
The kitchen
The Orders board on the kitchen tablet, sold-out items and pausing.
- How the kitchen uses the board during service
- How to mark a dish sold out so Ruby stops selling it
- When to pause new orders
- Stock counts that sell out a dish by themselves, and use-by dates
There is no separate kitchen app. A Kitchen login sees Dashboard, Orders, Menu and Forecast. Put the OrdersBoard on a tablet in the kitchen.
Menu
| Item | Price | Available at |
|---|---|---|
| Jollof & chicken Mains | GHS 85 | Osu East Legon |
| Banku & tilapia Mains | GHS 120 | Sold out · Osu 1 East Legon |
- 1 The switch per branch. Off = "Banku & tilapia marked sold out at Osu". Ruby stops offering it there at once (no Publish needed).
During service
- Turn the sound on (bell button on the Orders page) so you hear new orders.
- Work left to right. Oldest orders are first in each column. Watch for amber and red timers.
- Read allergies in the order drawer. Print the Kitchen ticket: it shows what to cook, allergies, mode and order code, with no prices.
- Mark ready when the food is done. The guest is told automatically (module 16, Notifications).
- Run out of a dish? MenuItems, switch it off for your branch. Switch it on again when it is back.
- Swamped? On the Orders page switch on Pause new orders. It shows "Paused · Ruby is not taking orders". Orders already in the kitchen are not affected.
Stock counts and use-by dates AdminSupervisorKitchen
Instead of switching dishes off by hand, you can count them. Accepted orders take stock; at 0 the dish is sold out at that branch by itself, so Ruby stops offering it. Restocking lifts an automatic sold-out (one you switched off by hand stays off).
- MenuItems, find the dish and press Track stock (it says Stock once tracked).
- In the Stock · dish box, per branch: In stock, Low-stock warning at, Daily restock to (optional) and Use by (optional).
- Press Save stock. The dish shows a chip: Stock: 12, Low: 3 or Out of stock.
- Use by tells the menu advisor when the food goes off: MenuAdvisor then suggests a time-limited special to clear it. Nothing changes until a manager approves and publishes.
Sync stock (Menu toolbar, admin and supervisor) reads the counts from your till when the Loyverse integration is connected in Settings → Integrations. Automatic restock each morning is a switch in SettingsOperationsStock.
Reservations and tables
Bookings, the timeline, the waitlist and table QR bills.
- How to add a booking and seat a guest
- The waitlist for walk-ins
- Where tables and QR codes are set up
- Live availability, changes and cancellations with the policy, deposits and the cancellation cutoff
Reservations
TodayNew booking118
2
4%
3
| Time | Guest | Party | Table | Status | Via |
|---|---|---|---|---|---|
| 19:30 | Ama B. VIP | 4 | T4 | Confirmed | Phone call |
| 20:00 | Kwesi A. | 8 | T7 + T8 | Awaiting deposit |
- 1 New booking: Guest, Date, Time, Party size, Duration, Table, Occasion, Booked via, Notes for the team.
- 2 List, Timeline (click an empty slot to book that table), Waitlist.
Statuses: Confirmed, Awaiting deposit, Seated, Completed, No-show (and cancelled).
Seat a booked guest
- Open Reservations and click the booking. HostSupervisorAdmin
- Check allergies, VIP, visits and no-shows in the drawer. If the booking has a policy, tick I read the policy to the guest.
- Press Seat now. Need another table? Move table.
- When they leave, press Complete & free table. Never came? Mark no-show.
Walk-ins when you are full
- ReservationsWaitlistAdd walk-in: party size and quoted wait.
- When a table frees up, notify them by SMS, then Seat party at a free table.
Book with live availability
- ReservationsNew booking HostSupervisorAdmin: choose the Guest (or type a name and phone), Date, Time and Party size.
- Availability fills in live: "3 tables free". Pick a table. Nothing free? It says Nothing free for 6 at 20:00 and lists Nearest free times on this day; tap one, or add the party to the waitlist.
- Deposit required box: read it to the guest. The booking stays Awaiting deposit until the link is paid.
- Tick I read the booking policy to the guest, then press Confirm booking (or Book & send deposit link). The console says "Confirmation sent to the guest." The text uses the Reservation confirmation template in Settings → Notifications.
Change or cancel a booking, with the policy
- Change: open the booking, press Edit, change the time, party or table, tick I read the policy to the guest for this change and press Save changes. The guest gets an updated confirmation.
- Cancel: open the booking, press Cancel booking, read the cancellation terms shown, tick I read the policy to the guest, then Cancel booking (or Keep booking). The table is released.
- Paid deposit? The dialog reminds you: "Refund the deposit from Payments if the policy allows it." Unpaid one? Resend deposit link in the booking's Deposit box.
The booking drawer's Booking policy box shows when the policy was read to the guest and what was said, whether by you or by Ruby.
Set the policy, the cancellation cutoff and deposits AdminSupervisor
| What | Where | Fields |
|---|---|---|
| Booking policy and cancellation cutoff | SettingsPayments setupBooking policy | Hold tables for (minutes), Cancel at least (hours before), No-show policy, Deposit and cancellation terms, then Save policy. The card shows what Ruby says: "Before I confirm: … Shall I book it?" |
| Deposits for large parties | SettingsPayments setupBooking deposits | Require deposits, Party size threshold, Amount per person, Link expiry (minutes) (unpaid bookings are released after this) |
| Deposits after no-shows | SettingsOperationsOrder protection | No-shows before a booking deposit and That deposit, per guest: a guest who missed that many bookings pays a deposit next time, whatever the party size |
Tables and QR codes AdminSupervisor
Tables live under SettingsBusiness & branches → your branch → Tables: Add table with Name, Area, Seats and Combinable. Print QR sheet gives a code per table: guests scan it, order from their seat and pay. Open QR bills show under Open table bills; press Clear table when guests leave.
Delivery, riders and the delivery sticker
From Ready to the guest's door.
- Adding riders and sending a delivery out
- The delivery sticker: what it is and why it must go on the food
- What the rider and the guest see
Phone: 020 000 0000
Address: 12 Example Street, Osu
Landmark: opposite the blue church
Allergies: peanuts
2× Jollof & chicken, 1× Sobolo
Rider collects: GHS 0 (paid)
Example only. The real sticker shows the order code in large type, customer, phone, address, landmark, allergies, items and what the rider collects.
Add your riders (once) AdminSupervisor
- OrdersRidersAdd rider
- Fill Name, Phone and Branch (or Any branch), keep Active on, then Save rider.
Send a delivery out AdminSupervisorKitchenHostDelivery
- Open the Ready order and press Out for delivery.
- Delivery sticker box: press Print sticker, stick it on the food, tick The sticker is printed and stuck on the food.
- Press Continue to rider, choose the Rider, check the ETA, then Send out.
- When delivered, the rider marks it on their phone, or you press Delivered.
When a rider needs help
- The rider taps one button under Need help? on their delivery page: I'm lost, Customer not picking up or I've arrived. Riders can also call the restaurant line: Ruby knows them by their roster number.
- Ruby acts: lost, she calls the guest for directions from a landmark, and they appear on the rider's page as Directions from the customer. Not picking up, she calls the guest to come out. Arrived, the guest gets a text with the rider's number.
- You follow it in OrdersRidersRider help and in the order history. AdminSupervisor
Ruby's calls need Outbound calls on in Settings → Features; without it the guest gets a message asking them to call the rider.
The rider's phone
Riders do not sign in. They get a link that shows Deliver to, Directions, Call guest, Share (live location) and Mark delivered. Need help? is there too.
The guest's phone
A tracking page with the progress, Expected around a time, and the rider's live location once shared. How the guest is told is set in SettingsNotifications → When a delivery is on its way.
Delivery fees are always told to guests as estimates: ride-app surge pricing can change the final cost. Zones, fees and times are set per branch in SettingsBusiness & branches → Delivery zones.
The menu
Items, import, specials, promo codes and Publish.
- Adding and editing a dish, with the options Ruby asks about
- Importing a whole menu from a file, photo, PDF or website, with new categories made for you
- Searching the menu, managing categories and adding dish photos
- Publishing safely
Ruby checks every order against this menu: names, prices, options, allergens, and what is sold out right now. Only Admin and Supervisor edit it; Kitchen can only mark items sold out.
Add item
Size: Regular / Large (+15)
Allergens 3
Peanuts
Diet, spice and prep
Spice level · Prep time (minutes): 15
Photo · Preview 4
- 1 What callers say, so Ruby recognises the dish.
- 2 Sizes and extras Ruby must ask for before she confirms.
- 3 Ruby reads allergens back. Be complete.
- 4 See how Ruby will describe the dish.
Add a dish
- MenuItemsAdd item AdminSupervisor
- Fill the sections above. Save: it is "Saved as a draft. Ruby uses it after you publish."
- Need a new category? Press Manage next to the Categories heading (on a small screen: Manage categories at the end of the category chips).
Find a dish, sort categories, add photos
| Task | Where | Who |
|---|---|---|
| Find a dish fast | MenuItems: the search box Search names, aliases, descriptions, then narrow with Any diet and Any allergens (for example Free from peanuts) | Everyone who opens the menu |
| Add, rename, reorder or delete categories | MenuItemsManage (next to Categories): rename inline, Move up / Move down (the order guests and Ruby see), add one at the bottom. A category can be deleted only once it is empty. A brand-new menu shows Add your first category. | AdminSupervisor |
| Add a dish photo guests see | Edit the dish → Photo → Upload photo (later Replace photo). JPEG, PNG or WebP, up to 5 MB; large photos are resized. Save the dish first. | AdminSupervisor |
Photos show on the online ordering page and the table QR page (module 10), and Ruby can send a dish photo on web chat and WhatsApp. Like every menu edit, a photo goes live when you publish.
Import a whole menu
CSV or Excel
MenuImport → Download template, fill it, Choose file (or Or paste CSV text). Rows are checked before anything is saved. Keep Create missing categories ticked: rows with a category you do not have yet show a New category badge, and the category is created for you. Press Import N valid rows; the items go into the draft.
Photo, PDF or website
On the same Import tab: Menu from a photo, PDF or website. Choose Photo or PDF, Website or Paste text, then Read menu. Check every dish (especially allergens), then Import. Nothing is saved until you review it.
Publish
- Press Publish 2 changes in the top bar. AdminSupervisor
- The console first tests Ruby against your draft menu (dishes and aliases, prices with choices, sold-out items, allergen filters).
- All good: Publish. A check failed: fix it, or Publish anyway with a reason (saved in the audit log).
Specials
MenuSpecialsNew special: a deal or limited-time dish. It can repeat every week (e.g. a buffet every Sunday). Ruby mentions it only while it is on.
Promo codes
MenuPromo codesNew promo code: a code for a campaign (e.g. MAMA10). Ruby accepts it on calls and chats.
Guest pages
The pages guests open on their phones, and what your team does when they use them.
- What guests can do on each page: order and pay online, book, call a waiter, split the bill, finish an order, join a group order, rate
- How table calls and table bills reach your team
- How to put your own logo and colours on every page
Guests never sign in. Each page opens from a link (in a text, on your website or social pages) or a QR code, and uses the same menu, prices, hours and rules as Ruby. Every page carries your branding.
The table QR page
Table T4 · OsuWaiter1
- 1 Waiter opens Call a member of staff: Call waiter, Bring the bill or I need help, with an optional note ("Anything we should bring?").
- 2 Menu to order from the seat (straight to the kitchen as a dine-in order for that table); Bill shows the running bill.
- 3 Split the bill: Whole bill, Split evenly between a number of people, or My items (tick your own dishes).
- 4 Pay by MoMo or Card (a secure payment link, also texted if a phone is given) or Pay cash to staff. When payments cover the bill, the table bill closes by itself: "All paid. Thank you!"
Answer a table call AdminSupervisorHost
- A pop-up appears on any console page, for example T4: Waiter requested (or Bill requested, Needs help, Wants to pay cash). Press View.
- Go to the table. On Reservations, the Open table bills panel lists each table's running total, pending links and requests.
- Press Done next to the request once handled. Guest paid cash? Use Record cash.
- When the guests leave, press Clear table. Clearing a table that still owes money asks for a reason, saved in the audit log.
Every guest page at a glance
| Page | How the guest gets it | What the guest can do | What your team sees |
|---|---|---|---|
| Order online "Order from Mama's Kitchen" | Your ordering link (website, social pages, WhatsApp) | Pick the Branch, Pickup or delivery and the Delivery area, add dishes (with photos and allergens), choose Mobile Money, Card or Cash and press Place order. Pay online: the confirmation "Order MK-1051 received" has a Pay GHS … with Mobile Money (or Card) button. | A web order on the board, handled by the guest. Payment in Payments. |
| Book a table | Your booking link | Branch, Date, Time, Guests, then Check availability: free, or other times to tap. The policy shows under "Before you book:". Large parties see the deposit on the Book for … button, then "Almost booked" and Pay deposit. | The booking in Reservations (Awaiting deposit until paid). |
| Holiday hours on both pages | Automatic | "Closed today: Independence Day" and "Holiday hours: …" for the coming days, under the chosen branch. | Set per branch in Holiday hours (module 14). |
| Finish your order | A text after a call or chat ended with a priced cart but no order ("Your order is saved") | See the cart re-priced, choose How do you want it?, add Your details and Payment, then Place order. | CampaignsRecovered carts. The text uses the Abandoned cart template, off until you switch it on, and only goes to guests who opted in to offers. |
| Group order | The share link Ruby texts the organiser (or one made in Campaigns → Group orders) | Who's in, Add your food, Your picks, Your name and Phone (for your payment link), then Add to the group order; each person can Pay their share. The organiser can Close for changes and Send to the kitchen. | One order on the board, every line labelled with the person's name. |
| Rate us (feedback) | A text after a completed order or visit | "How was your order?": tap 1 to 5 stars, add a comment, Send rating. A low rating shows "We're sorry, and thank you for telling us" and, if you set one up, a recovery voucher code for the next order ("We've also sent it to your phone."). A high rating invites the guest to leave a public review. | Low ratings open an urgent ticket in Tickets; all ratings are in Reports & exports → Ratings & feedback. |
| Track my order | The "on its way" text | Progress, Expected around, the rider's live location, "Running late — sorry!" if delayed, and a Call button. | Module 8. |
The ordering and booking pages are switched on, and their links copied, in SettingsOnline ordering; the full set-up is in the Marketplaces, integrations and outbound calls course. Payment links and refunds are in Payments, accounting and growth.
Put your brand on every page Admin
- SettingsBranding. Everyone can read it; only admins change it.
- Identity: Product name, Company name, Support email, SMS sender name (up to 11 letters or digits) and AI persona name (what the AI host calls itself instead of "Ruby"). Leave a field empty to use the default.
- Logo, favicon and colours: Upload a Logo and a Favicon (PNG, JPEG, WebP, SVG or ICO up to 256 KB), pick the Primary colour and Accent colour. Check the Preview.
- Press Save changes. The console, your sign-in page and every guest page (ordering, booking, table, tracking, feedback) use it. A new persona name reaches calls after you publish.
Guests, tickets and messages
Customers, tags and blocking, who sees what, Tickets, ratings, loyalty and the Message log.
- The guest profile: allergies, tags, consent, block and erase, and calling or emailing a guest
- The Blocked callers list, and which guest details each role can see
- Tickets: making one by hand, urgent health complaints, preferred call times
- Ratings, loyalty, campaigns and the Message log with its filters and Resend
Customers
- 1 Call (Connect me or Ruby calls them, module 12) and Send email (when the guest has an email address).
- 2 "Ruby reads these back and adds a kitchen note on every order."
- 3 Tags: type in Add a tag and press Add, or pick a suggestion (VIP, Catering, Corporate, Influencer, Staff). The VIP tab and VIP badges follow the VIP tag.
- 4 What the guest agreed to receive: WhatsApp updates (order and booking messages) and Promotions (offers and specials). Promotions only go to guests who opted in.
- 5 Block customer (with a reason only staff see): Ruby politely declines orders and bookings from this number. Erase customer removes personal data and cannot be undone.
Blocked callers AdminSupervisorHost
- CustomersBlocked shows the Blocked callers list: Number, Customer, Why and when.
- Why says who blocked them: Staff, Abusive language (Ruby warns callers who are abusive and blocks them after repeated warnings) or Integration.
- Blocked numbers cannot reach Ruby on calls, SMS or WhatsApp. Made a mistake? Press Unblock: "Unblocked: they can reach Ruby again".
Who sees which guest details
| Role | Guest phone | Guest email | Delivery address and landmark |
|---|---|---|---|
| AdminSupervisorFinance | Full | Full | Full |
| HostAnalyst | Masked, for example +233 •• ••• 4567 | Hidden | Hidden |
| Delivery | Only for their own active deliveries | Hidden | Only for their own active deliveries |
| Kitchen | Hidden | Hidden | Hidden |
Call without seeing the number
A host who sees a masked number can still press Call on the guest, order or booking. The console rings your extension or has Ruby call the guest, without ever showing the number.
Exports are masked too
CSV downloads (for example Reports & exportsExports) hide the phone, email and address columns in the same way for your role. Guest names always stay visible.
Email a guest AdminSupervisorFinance
- Open the guest in Customers (or a conversation with them) and press Send email.
- Write the Subject and Message. It is sent from your restaurant's email address, with your restaurant's name.
- Press Send email. It is listed in the Email log (Settings → Email) and the audit log.
Hosts do not see guests' email addresses, so they do not get this button. Your mail server is set in module 16.
Tickets: things that need a person
- Tickets lists callbacks, complaints, change requests and missed calls, sorted by due time. HostSupervisorAdmin
- Watch the tiles: Overdue, Due in 15 min, Unassigned. Urgent ones also show under the bell (Alerts). Filter by status, branch and priority.
- Open a ticket, press Call back now, then Resolve, write the Outcome and Mark resolved.
Log a ticket by hand
- TicketsNew ticket. Choose Callback or Complaint.
- Find the Customer (search name or phone), pick the Branch and the Priority: the hint shows when it falls due (for example "Due in 15 min").
- Write the Subject. For a callback, add the Preferred call time (for example "Today 15:00–17:00"); for a complaint, What happened.
- Press Create ticket.
Preferred call time: callback tickets show it in the drawer. Switch on Ruby calls back automatically and Ruby calls at the start of that window (it needs the call-back automation in Settings → Features; see the outbound calls course).
Ratings
Ruby asks for a 1–5 rating after orders (switch Feedback in SettingsFeatures). Low scores open a ticket. Read them in Reports & exportsRatings & feedback.
Loyalty
Guests earn points by phone number and Ruby tells them their balance. Turn on Loyalty in Features, then set Programme rules in CampaignsLoyalty.
Campaigns
Campaigns tabs: Win-back, Recovered carts, Group orders, Loyalty. AdminSupervisor More in Payments, accounting and growth.
The Message log AdminSupervisorHostFinance
- Messages: every SMS and WhatsApp sent to guests (payment links, confirmations, updates).
- Filter with the tabs All, Sent, Failed, Skipped, the All channels and All types lists, or search Phone, reference or text. Failed and skipped rows say why (for example the guest opted out).
- Resend on a row sends the same message again as a new row ("Message sent again"). Consent is checked again.
- Admins and supervisors can open Templates (top right) to change the wording.
Live calls and conversations
Find a conversation, listen in, join, take over, Connect me, and the Kasada Dialpad.
- The live call buttons and when to use each
- Calling a guest: Connect me or Ruby calls them
- Setting up and switching on the console softphone
- Finding a conversation and opening the order or booking it created
+233 20 000 0000
- 1 Listen in: your extension rings; you hear the caller and Ruby, nobody hears you. Click again to stop.
- 2 Join call: the caller and Ruby both hear you, and Ruby keeps handling the call.
- 3 Coach Ruby: type guidance (Send guidance). The caller hears nothing; Ruby follows it from her next turn.
- 4 Hold / Resume call: the caller hears music, Ruby pauses.
- 5 Take over call: Ruby leaves and the caller is connected to you. She cannot rejoin a phone call.
- 6 Hang up: only for abusive or spam calls.
Who: HostSupervisorAdmin. On chats you reply in the box and can Hand back to Ruby. To switch from listening to joining, stop first, then start the other (your extension rings again).
Find a conversation AdminSupervisorHostAnalyst
- Conversations: pick a tab, All, Live, Needs human or Closed. The list shows the channel and whether Ruby is handling it.
- Search with Search calls & chats (a name, a number, a word from the chat) and narrow by channel: Voice, WhatsApp, SMS or Web chat.
- Open it. The header shows the guest (View profile), the channel, branch and time, Outbound call when Ruby called out, the outcome and the sentiment, and Ruby's summary above the transcript.
- Jump to what it created: View order or View booking opens the order or booking made during that call or chat.
Call a guest
- Press Call on an order, a booking, a ticket or a customer, or open the Kasada Dialpad (headset in the top bar).
- Choose How: Connect me rings your extension first, then the guest (no AI). Ruby calls them: Ruby introduces herself and the restaurant, then handles it. Add a Note for Ruby.
- Follow the call live. It appears in the order or ticket timeline, and Ruby's calls arrive in Conversations.
Ruby calls them needs Outbound calls switched on in SettingsFeatures. No extension yet? The dialog says "Set it in your profile".
The console softphone (Kasada Dialpad)
With the softphone on, the console itself is your phone. No desk phone or separate app. Incoming calls show a card with Answer / Decline on any page. The dot on the headset: green Ready, amber Connecting…, red Not connected, grey Off.
Staff make and take calls in the console, as their own extension, without a separate phone app. Each person adds their softphone password in My profile.
- 1 The restaurant admin's switch. On by default.
- 2 Shown when your partner or Kasada AI has it off ("Switched off by your partner" / "Switched off by Kasada AI"). Your switch is kept and works again once they switch it back on.
- Admin: SettingsFeaturesConsole softphoneSoftphone on for our staff Admin
Full URL:https://resto.custocareai.com/settings/features. "Settings" is the main menu item; "Features" is the section inside Settings. - Each person: click your name → My profile → Phone extension (optional) and the softphone password → Save. Your admin gets both from Kasada AI support.
- Allow the microphone when the browser asks. Check the headset dot is green.
Ruby's settings and insights
Settings → AI agent: persona, scripts, languages, local words, voice, hand-over to a person. Then Ruby insights.
- How to change Ruby's name, tone and greeting
- How to test her before you publish
- What Ruby may do, and where her answers come from
- What "Saved; Ruby updated" means, the voice check and local words with Hear it
- When Ruby hands a caller to a person
- Ruby insights: evidence, FAQ answers and import, history
- 1 How Ruby introduces herself and sounds in every channel.
- 2 Use the Insert: variables so one script works for every branch.
- 3 Chat with Ruby here to test changes before you publish.
Other cards: Language & vocabulary (Primary language, English accent, extra languages, Custom vocabulary), Voice & speech, Phone keypad, Suggest add-ons, Guests mix languages, Landmark addresses, Offer a person when Ruby is stuck, Guardrails.
Change Ruby's greeting
- SettingsAI agent AdminSupervisor
- Edit Greeting under Scripts. Press Save changes: the console says Saved; Ruby updated.
- Test it in Try Ruby.
- Publish in the top bar. Ruby's phone, WhatsApp and chat settings update.
What Ruby may do
Big switches are in SettingsFeatures: Ordering, Reservations, Payments, Delivery, Catering, Waitlist, Feedback, Promotions, Outbound calls, Loyalty. Per branch, Service types (in Business & branches) say what Ruby may offer there.
Ruby answers from your information
- Your published menu, prices, options and allergens
- Branch addresses, landmarks, opening hours and delivery zones
- Your FAQ answers (Ruby insights → FAQ answers)
- Your scripts, specials and promo codes
So keep it right
- Missing hours or zones mean Ruby cannot answer well
- Unpublished changes are not used
- A dish not on the menu cannot be sold
- An unknown question goes to a person (Offer a person when Ruby is stuck)
"Saved; Ruby updated" and the voice check
| After Save changes you see | What it means | What to do |
|---|---|---|
| Saved; Ruby updated | Your settings are saved and Ruby's phone, WhatsApp and chat set-up already has them. | Nothing. Publish as usual for menu and draft changes. |
| Saved; Ruby will pick this up when CustoCare is reachable | Saved in the console, but Ruby's side could not be reached just now. | Nothing is lost: it goes out with the next save. If it keeps showing, contact Kasada AI support. |
| Under Voice: "This voice is not available for Ruby any more. Choose another." (or a similar message) | The voice check: the console only accepts a voice Ruby's phone line supports, and saves nothing until it is fixed. | Pick a voice from the list (or Default voice) and save again. |
When Ruby hands a caller to a person
- Set the line per branch: SettingsBusiness & branchesEdit branch → Location & contact → Fallback human line ("Ruby transfers here when a caller asks for a person"). AdminSupervisor
- Choose when Ruby offers a person: SettingsAI agentGuardrails: switch on Offer a person when Ruby is stuck and set Replies before offering a person (2 to 10). On chats this is a hand-off to staff in Conversations.
- Write what she says first: Escalation script in the same card ("Said just before transferring to the branch's fallback human line").
- Busy times: Voice & speechMax concurrent calls. Extra callers go to the fallback human line, or hear a short busy message.
- Optional keypad: Phone keypadAdd key, for example key 0 with the action Transfer. Transfer without a number uses the branch's fallback human line.
- Press Save changes, then publish.
Local words, with Hear it
- SettingsAI agentLanguage & vocabulary, scroll to Local lexicon. It starts as the Built-in Ghana lexicon; press Customise to make your own editable copy.
- Use the tabs Dish names, Landmarks, Phrases and Local English, or Search words.
- Add word: Word or phrase, Type, Language, Meaning, Pronunciation (plain respelling, stress in capitals, for example WAA-chay). Link a dish word to Same as this dish, or a landmark to its Delivery area.
- Press the speaker button (Hear it) to listen to the pronunciation, keep Ruby uses this word on, then Save as draft. Publish to make it live.
Test it in Try Ruby: the language list there offers "Try in Twi" (and the other languages you switched on).
Ruby insights: fix what Ruby struggled with AdminSupervisor
Ruby insights
Last 7 days ▾Analyse now1Change: "kele" also finds Kelewele
- 1 Analyse now looks at the chosen period. Ruby is also checked every week by herself.
- 2 Suggestions waiting for you, what was Applied or Dismissed (and by whom), your FAQ answers, and the History of every analysis.
- 3 Evidence: the caller's own words and how often it happened. Open jumps to the conversation.
- 4 Apply saves the change as a draft (an alias, a word, a shorter greeting, an FAQ answer). If the answer needs real facts it says Write answer & apply. Dismiss hides it for good.
- Add your own answers: Ruby insightsFAQ answersAdd answer: Question, Answer (the way Ruby should say it), Keywords, Branch (or All branches), Ruby uses this answer, then Save as draft.
- Import many at once: FAQ answersImport → Download template, fill in question, answer, keywords (separated by ;), branch (empty = all branches) and enabled (yes/no), then Choose a .csv or .xlsx file. Each row shows New, Update (a question you already have gets the new answer) or Skipped. Press Import N answers.
- History lists each analysis: When, Period, Trigger (Weekly or the person who pressed it), Conversations, Suggestions and Status.
- Publish in the top bar so Ruby uses the fixes.
Branches, hours and operations
The set-up Ruby depends on: business and branches, opening and holiday hours, delivery zones, kitchen capacity, channels, operations, versions.
- Setting up the business profile and each branch, with its fallback human line
- Opening hours, holiday hours and delivery zones
- Kitchen capacity and the Operations settings (pacing, delay texts, order protection, stock)
- The channel cards you can change, and how to roll back a published version
Mama's Kitchen Osu Accepting orders
Archive branchMon · Open · Opens 10:00 · Closes 22:00 · Last order 21:30
Closed Independence Day
Labone · Fee GHS 20 (estimate) · Min order GHS 60 · ETA 35 min
Items cooked at once 12 · Prep minutes per slot 15 · Now: 62%
- 1 Location & contact: Branch name, Address, Landmark (Ruby uses it for directions and riders), Public phone (Ruby matches calls to the branch by it) and Fallback human line (where Ruby transfers a caller who wants a person).
- 2 Opening hours: Ruby stops taking same-day orders at the Last order time. Closed days: she offers orders for the next open day.
- 3 Holiday hours: special dates that replace the weekly hours. They apply as soon as you save, without Publish.
- 4 Delivery zones: areas, estimated fee, minimum order and typical time. Without zones Ruby offers pickup and dine-in only.
- 5 Kitchen capacity: how much the kitchen can cook at once, which sets the live kitchen load.
1 · Business profile and branches
- SettingsBusiness & branches. In Business profile → Profile: Trading name (used in greetings and SMS), Brand colour, Currency (admin only; it can change until the first payment) and Time zone. AdminSupervisor
- New branch: Add branch Admin: Branch name, Branch code (short, lowercase, cannot change later), Address, Landmark, Public phone, Fallback human line, Service types and Accept orders right away. Press Add branch: "Branch added as draft".
- Existing branch: click its card (Edit branch), change Location & contact and Service types (what Ruby may offer there), then Save changes: "Branch saved as draft".
- Publish in the top bar. Ruby starts offering the branch once it is published.
A branch you no longer use: Archive branch (Ruby stops offering it; its orders and reports stay; Restore branch any time). Delete is only for a branch added by mistake, with no orders or bookings.
2 · Opening hours and holiday hours
- Weekly hours: Edit branchOpening hours. For each day: the open switch, Opens, Closes, Last order. The copy button (Copy to all days) applies one day to the whole week. Save changes, then publish.
- A holiday or special day: Edit branchHoliday hoursAdd date. AdminSupervisor (supervisors for their branches)
- Pick the Date, write a Note guests hear (for example "Independence Day"), then either tick Closed all day or set Opens, Closes and Last orders (optional).
- Press Save date: "Holiday hours saved. Ruby uses them straight away." No Publish needed.
Holiday hours reach Ruby ("It's closed today for Independence Day"), the online ordering and booking pages, table ordering, pickup times, bookings and the waitlist. The Dashboard shows a Holiday hours notice for the next 14 days.
3 · Delivery zones
- Edit branchDelivery zonesAdd zone.
- Fill Zone name, Areas (press Enter after each; include the local names callers use), Estimated delivery fee, Minimum order and Typical delivery time (min).
- Press Add zone, then Save changes and publish. Fees are always told to guests as estimates.
4 · Kitchen capacity AdminSupervisor
- Edit branchKitchen capacity: Items cooked at once (how many dishes the line works on in parallel) and Prep minutes per slot.
- Press Save capacity. Quotes use the new capacity straight away.
- When the load is high Ruby quotes longer times and offers later pickup slots; when it is overloaded, delivery pauses by itself (Delivery auto-paused). Ready again sooner? Press Resume delivery now.
5 · Channel cards (what you can change)
| Card in Settings → Channels | What you do there |
|---|---|
| Voice | See the phone numbers Ruby answers, per branch, and their status. Switch the channel off to hand calls back to your staff. |
| WhatsApp Business | See the display name, number and whether it is Connected or Pending. |
| SMS | Sender ID (shown instead of a number) and Reply-to number. |
| Message signature | Up to 80 characters added to the end of Ruby's SMS and WhatsApp replies (not web chat), for example your name and phone number. |
| Web chat widget | Accent colour, Opening message, Allowed websites, and Embed snippet → Copy snippet to paste on every page of your website. |
Press Save changes; the console says Saved; Ruby updated. New phone numbers and connecting WhatsApp are arranged with Kasada AI support or your partner.
6 · Operations Admin
SettingsOperations: how Ruby and the console react to a busy kitchen, late orders, risky orders and stock. Changes apply immediately (no Publish). Supervisors can read it; admins change it.
| Card | Main settings |
|---|---|
| Kitchen pacing | Pause delivery automatically when the kitchen is overloaded, Pause delivery above load, Resume delivery below load |
| Delay updates | Send delay updates, Warn early from the kitchen backlog, Grace minutes, Next update after (min), Maximum updates per order, Apology voucher (promo code). The text is the Delivery delay template in Notifications. |
| Order protection | Score orders and hold high-risk cash deliveries; High-risk cash orders need: a 6-digit code texted to the guest, payment first, or a staff check; the risk thresholds; No-shows before a booking deposit and That deposit, per guest |
| Stock | Restock to the daily level at the start of each day |
Run checks now (top right) looks for late orders straight away and says how many delay updates it sent. Press Save changes at the bottom after editing.
7 · Versions and rollback AdminSupervisor
- SettingsVersions & audit. Published versions lists every publish; the newest has a Live badge.
- Something went wrong after a publish? Press Roll back on the version that worked, then Restore as draft. Its AI settings and features come back as draft changes.
- Publish in the top bar to make the restored version live.
- Audit log (same page): who changed what. Use Search actions and the Everyone list to filter by person.
Team and roles
Settings → Team & roles. Admins only.
- How to invite a team member and what they receive
- Unlock, reset a password, sign people out
- Reading the sign-in activity
Team & roles
Sign out everyoneInvite user 1| Name | Role · branches | Active | Signed in | Actions |
|---|---|---|---|---|
| Esi (example) | Host · Osu | Accra · Chrome | Sign out · Reset password | |
| Yaw (example) | Kitchen · Osu Locked | — | Unlock 2 · Reset password |
- 1 Invite user opens Invite a team member. Sign out everyone ends every session except yours.
- 2 Locked badge after 5 wrong passwords. Unlock keeps the password.
- 3 Full name, Work email, Role, Branches, and optional extension and softphone password.
Invite a team member
- SettingsTeam & rolesInvite user Admin
- Fill the form and press Send invite.
- The console says Login details emailed to esi@mamaskitchen.example. They get the sign-in page, username and a one-time password, and choose their own password at first sign-in.
- If it says "We couldn't email the login. Share the password below with them.", press Copy and give it to them in person or a private message. It is shown only once.
Help someone who cannot sign in
| Problem | Action |
|---|---|
| Locked out (Locked badge) | Unlock. Their password stays the same. |
| Forgot password | Reset password: type a new one (8+ characters), or leave it empty for a one-time password shown once (they choose their own next). |
| "Already signed in on another device" | Sign out on their row. |
| Left the team | Switch off Active. Their sessions end. |
Sign-in activity (same section) lists every sign-in attempt and sign-out with When, User, Result and Where · device, kept 180 days. Results include Signed in, Wrong password, Locked out, Already signed in elsewhere and Signed out by admin.
The Roles & permissions table on the same page shows what each role can do. Contact Kasada AI support to create custom roles.
Settings tour
Every section and what it is for.
- Where each setting lives
- How guests are told about ready orders, deliveries and seating
- Setting up your own email and channels
| Settings section | What it holds | Who |
|---|---|---|
| Business & branches | Business profile (Trading name, Brand colour, Currency, Time zone), branches: Location & contact (with the Fallback human line), Service types, Opening hours, Holiday hours, Delivery zones, Kitchen capacity, Tables. Add branch, Archive branch (module 14). | Admin, Supervisor |
| AI agent | Ruby's persona, scripts, languages, voice, guardrails (module 13) | Admin, Supervisor |
| Channels | Voice (numbers per branch), WhatsApp Business, SMS (Sender ID), Web chat widget (Embed snippet), Message signature | Admin, Supervisor |
| Notifications | When an order is ready, When a delivery is on its way, When a guest is seated, Templates, Message log | Admin, Supervisor |
| Your own outgoing mail server, Send test email, Email log | Admin only | |
| Features | Switch capabilities on or off; Console softphone; Delivery sticker before dispatch; Outbound call automations | Admin, Supervisor (softphone: admin) |
| Payments setup | Payment methods per branch, booking deposits, Booking policy and cancellation cutoff (module 7); payments in detail: Payments, accounting and growth | Admin, Supervisor |
| Team & roles | Users, roles, sign-in activity (module 15) | Admin |
| Integrations · Online ordering | Connections to other systems, delivery platforms, public order and booking pages: see Marketplaces, integrations and outbound calls | Admin, Supervisor |
| Operations | Kitchen pacing, delay updates, order protection, stock (module 14) | Admin (supervisors read) |
| Branding | Your names, logo, favicon and colours on the console, sign-in page and guest pages (module 10) | Admin (everyone reads) |
| Versions & audit | Published versions, Roll back, the audit log (module 14) | Admin, Supervisor |
How guests hear their order is ready
- SettingsNotifications → card When an order is ready. AdminSupervisor
- Pick Send the message by SMS or WhatsApp (WhatsApp only to guests who opted in; others get SMS).
- Pick the action: Send SMS/Send WhatsApp, Ruby calls the guest, Ruby calls, then … if no answer, Call and …, or Off.
- Tick the Order types (Pickup, Scheduled pickup, Catering pickup, Dine-in), set Call from / Call until, and Try again if there is no answer. Save.
- Do the same in When a delivery is on its way and When a guest is seated (Send the welcome message).
Calls need Outbound calls on in Features. Delivery orders never get "ready": they get "on its way" with the rider's name and tracking link.
Send emails from your own address Admin
- SettingsEmail: fill in the details from your email provider (Mail server, Security, Username, Password), then From address, From name and Reply-to.
- Send test email, then Save email settings.
- Switch on the email templates you want in SettingsNotifications (they start off).
Change the email password later Admin
- SettingsEmail. Under Password a saved password shows only as Set: it is stored encrypted and never shown again.
- Press Replace and type the new password (leave it empty to keep the current one; Cancel to stop). Clear removes it ("Will be removed when you save", with Undo).
- Press Send test email, then Save email settings.
To email one guest yourself, use Send email on the guest or the conversation (module 11). The Email log lists every email with Resend.
Reports and analytics
Analytics, Reports & exports, ROI report, Forecast, Payments and Accounting.
- Which page answers which question
- How to download your data
- The monthly summary to the owner
Analytics
Revenue & AI revenue, Contacts vs AI-handled, Conversion funnel, Orders by channel and fulfilment, Guest ratings. Export CSV.
Admin, Supervisor, Finance, Analyst
Reports & exports
Tabs: Branches & channels, Ratings & feedback, Exports (Download reports as CSV for Excel or Sheets).
Admin, Supervisor, Finance, Analyst
ROI report
Revenue through AI, staff hours saved, no-shows prevented, recovered carts. Print / PDF, CSV, Send to owner.
Admin, Supervisor, Finance, Analyst
Forecast
Expected orders and covers for the next 7 days, hourly plan, prep per dish, staff hours.
Admin, Supervisor, Kitchen, Finance, Analyst
Payments
Payment links, deposits and refunds, and each day's reconciliation.
Admin, Supervisor, Finance
Accounting
The restaurant's books. Finance sets it up first (Set up accounting, choose the Country).
Admin, Finance; Accountant and Analyst read only
Payments, refunds, reconciliation, accounting, campaigns and loyalty step by step: Payments, accounting and growth.
Download this month's orders per branch
- Reports & exportsExports AdminFinanceAnalyst (guest phone, email and address columns are masked for roles that may not see them)
- Set From, To and Branch at the top.
- Press CSV next to the report you want.
Billing and your invoices
The Billing page in Resto. Full detail is in the CustoCare Billing course.
- What the Billing page shows
- How to pay or top up
- What happens if an account is suspended
Billing
RefreshOpen billing portal 1Mama's Kitchen · Plan: Growth
Ruby (AI) · Calls · Staff sign-in
Estimate including tax; invoiced after the month ends.
| Invoice | Period | Total | Status | |
|---|---|---|---|---|
| INV-0007 | Sep 2026 | GHS 950.00 | Due | Pay now 3 |
- 1 Open billing portal: you are signed in automatically.
- 2 Usage this month against your plan's allowances.
- 3 Pay now on an open invoice. Prepaid accounts see Prepaid credit and Top up.
- Billing AdminFinance
- Check This month's estimate, then pay open invoices with Pay now.
- If your partner bills you, the page says "Invoiced by your partner."
For plans, invoices, payment methods and the billing portal step by step, open the CustoCare Billing course for account owners.
Troubleshooting and glossary
Quick answers for the most common problems.
- What to check first when something looks wrong
- The words used in the console
| You see | Why | Fix |
|---|---|---|
| Top bar says Reconnecting… or Offline | Live updates lost | Check the internet, refresh the page, or sign in again |
| "This area isn't available for your role" | Your role cannot open that page | Ask an admin |
| Ruby quotes an old price or misses a new dish | Change not published | Admin or supervisor presses Publish |
| Ruby is not taking orders at a branch | Pause new orders is on, or the branch is closed | Orders page: switch Pause new orders off; check Opening hours |
| Cannot send a delivery out | Sticker not printed and stuck | Print sticker, tick the box, Continue to rider |
| "No active riders for this branch" | No rider on the roster | Orders → Riders → Add rider |
| Listen in / Connect me: "Set your extension in your profile first" | No extension saved | Click your name → My profile → Phone extension |
| Headset dot red: Not connected | Wrong softphone password, or the phone system cannot be reached | Re-enter the softphone password in My profile; allow the microphone; contact support |
| "Switched off by Kasada AI" / "by your partner" | A higher switch is off | Ask Kasada AI or your partner |
| "Turn on Outbound calls in Settings → Features to use this." | Ruby calls are off | Admin switches on Outbound calls |
| Guests not getting emails | Template off or no mail server | Notifications: switch the email template on; Settings → Email → Send test email; check the Email log |
| Locked out / already signed in elsewhere | Safety rules (module 2) | Admin: Unlock or Sign out in Team & roles |
| "Saved; Ruby will pick this up when CustoCare is reachable" | Ruby's side could not be reached at that moment | Nothing is lost; it goes out with the next save. If it keeps happening, contact Kasada AI support |
| A voice cannot be saved in Settings → AI agent | The voice check: that voice is not available for Ruby | Choose another voice from the list, or Default voice |
| An order waits in New with Waiting for code or Needs staff check | Held by order protection (high-risk cash delivery) | Order drawer → Checks & tracking → Resend code, or call the guest and Approve / Reject |
| Ruby says a branch is closed on a normal day | A holiday date, the opening hours, or Pause new orders | Edit branch → Holiday hours and Opening hours; the Orders page switch |
| Guest: "This table code isn't working" | The table's QR code was replaced | Print the new code from the branch's Tables section |
| Ruby keeps transferring callers to the wrong number | Fallback human line not set or out of date | Edit branch → Location & contact → Fallback human line, then publish |
Glossary
- Ruby
- Your AI host. The name can be changed in Settings → AI agent.
- Console
- The Resto web page your team uses.
- Branch
- One location of your restaurant, with its own hours, zones and tables.
- Publish
- Make menu and Ruby changes live. Until then they are drafts.
- Board
- The Orders view with columns New, Accepted, Preparing, Ready, Out for delivery.
- Kitchen ticket
- A printed slip for the cooks: items, allergies, mode, order code. No prices.
- Delivery sticker
- A printed label stuck on the food bag before it goes out. Not a support ticket.
- Ticket
- A callback, complaint, change request or missed call that needs a person (Tickets menu).
- Conversation
- One call or chat with a guest, with its transcript.
- Extension
- Your short internal phone number (for example 3001). Live call buttons ring it.
- Kasada Dialpad
- The phone in the console's top bar (headset icon).
- Connect me
- Your phone rings first, then the guest. No AI on the call.
- AI containment
- The share of calls and chats Ruby resolved without staff.
- Waitlist
- Walk-ins waiting for a table when every table is taken.
- Holiday hours
- Special dates per branch (closed, or different hours) that replace the weekly hours at once.
- Fallback human line
- The branch number Ruby transfers a caller to when they want a person.
- Held order
- A high-risk cash delivery waiting for a code, a payment or a staff check before it reaches the kitchen.
- Risk score
- A 0 to 100 score on every order; Medium risk and High risk show as badges.
- Order code
- The order's reference, for example MK-1042, on the card, the texts, the ticket and the sticker.
- Local lexicon
- Local dish names, landmarks and phrases Ruby listens for (Settings → AI agent).
- Use by
- The time stocked food goes off; the menu advisor suggests a special to clear it.
- Guest pages
- Pages guests open without signing in: order online, book, table QR, finish your order, group order, rating, tracking.
- Partner
- A reseller who onboards and supports restaurants.
Final checklist
Tick these off. Your ticks are saved in this browser.
- Whether your restaurant and your team are ready for service
Admin: before go-live
- Every branch has address, landmark, public phone and Opening hours (Settings → Business & branches)
- Delivery zones with fees and times, or none if you do not deliver
- Tables added and QR sheet printed (if you use table ordering)
- Menu complete with prices, options and allergens, and published
- Ruby's greeting, closing and allergy disclaimer set and tested in Try Ruby
- FAQ answers for parking, children, events and corkage
- Features chosen (Ordering, Reservations, Delivery, Outbound calls…)
- Notifications: order ready, on its way, seated
- Settings → Email set and a test email received
- Every team member invited with the right role and branch
- Riders added under Orders → Riders
- Console softphone on, and extensions set in My profile
- Fallback human line set for every branch; Offer a person when Ruby is stuck and the Escalation script set
- Holiday hours added for the coming public holidays
- Booking policy, cancellation cutoff and booking deposits checked (Settings → Payments setup)
- Kitchen capacity set per branch; Operations reviewed (delay updates, order protection)
- Branding saved: logo, colours, product and persona name
- Message signature and web chat widget set in Settings → Channels
- Ordering and booking pages tested on a phone; table QR page tested at one table
Everyone: start of every shift
- Signed in with my own login; Live pill is green
- Branch picker set to my branch
- New-order sound on (Orders page bell)
- Sold-out dishes switched off in Menu → Items
- Printer works for kitchen tickets and delivery stickers
- Checked Needs attention and Tickets
- Headset dot green (if you use the softphone)
- Held orders and Open table bills checked
Cheat sheet
Print this page (Ctrl+P or Cmd+P). The cheat sheet starts on its own page. Mama's Kitchen is an example.
Order buttons
- New → Accept → Start preparing → Mark ready
- Pickup / dine-in: Complete
- Delivery: Out for delivery → Print sticker → tick → Continue to rider → Send out → Delivered
- Stop: Reject (before cooking) · Cancel order (after)
Kitchen
- Sold out: Menu → Items → switch off for your branch
- Swamped: Orders → Pause new orders
- Kitchen ticket: order drawer → Kitchen ticket (no prices)
Front of house
- Seat: Reservations → booking → Seat now → Complete & free table
- Walk-in when full: Reservations → Waitlist → Add walk-in
- Counter order: Orders → New order → Walk-in
- Table call pop-up: View → Open table bills → Done → Clear table
- Change / cancel booking: tick "I read the policy…" first
- Held order: Checks & tracking → Approve / Resend code / Reject
Ruby on her own
- Places orders and bookings only after a clear yes
- Cancels orders only before the kitchen starts (else a ticket)
- Never takes card numbers or PINs: link, mobile money prompt or cash
- Health complaints = Urgent ticket, call back first
Live calls (ring your extension)
- Listen in: nobody hears you
- Join call: both hear you, Ruby stays
- Coach Ruby: typed, caller hears nothing
- Take over call: Ruby leaves
- Connect me: you first, then the guest
Admin
- Invite: Settings → Team & roles → Invite user → Send invite
- Locked out: Team & roles → Unlock / Reset password
- Softphone: Settings → Features → Console softphone
- Ruby: Settings → AI agent → test in Try Ruby → Publish
- Fixes: Ruby insights → Analyse now → Apply → Publish
- Brand: Settings → Branding → Save changes
Set-up (module 14)
- Holiday: Edit branch → Holiday hours → Add date → Save date (live at once)
- Person line: Edit branch → Fallback human line
- Kitchen: Edit branch → Kitchen capacity → Save capacity
- Undo a publish: Versions & audit → Roll back → Restore as draft → Publish
Sign-in rules
- One place at a time · signed out after 5 min idle
- 5 wrong passwords = locked 15 min
- Passwords: 8+ characters
