Automation · Orders and fulfillment
Take a table's order and send it to the kitchen from chat
An AI agent takes a table's order over WhatsApp, resolves every dish against the real Fudo menu and creates the ticket that reaches the kitchen.
How do I send a table's order to the kitchen without retyping it into the POS?
The server types the order in chat the way they would say it out loud, and a Met connected to Fudo does the rest: it locates the table in its room, resolves each dish against the menu loaded in Fudo (that is where the identifier and the price come from, never the model), and creates the ticket with the number of guests. From that moment the order is in the kitchen. If the guests order more, the Met finds that table's open ticket and adds the new lines instead of opening a second one. And when someone asks how it is going, it answers dish by dish, because the detailed status lives on each line, not on the ticket as a whole. Two things this does not do, worth knowing up front: the Fudo API only accepts dine-in sales (it requires the table, so no delivery or takeaway) and it never touches the register, payments or tips.
What starts it
When the customer writes
Nothing is scheduled. The Met assigned to the channel receives the server's message, written in plain language ("table 12, two lemonades and one steak medium, party of four"), and answers in the same conversation. It works the same from the server's phone or from a tablet shared on the floor.
Nothing to set up. The Met assigned to that channel picks up the conversation and runs the procedure inside it.
Who runs it
Floor operations Met
Not a named, seeded Met: an internal operations Met that talks to the restaurant team, not to the guest. Its job is that what was said at the table reaches the kitchen unchanged, without the step of retyping it into a screen while people are waiting.
Channels: WhatsApp
What you need connected
- Fudo Run stores and orders
5 steps · 7 tools
The procedure, step by step
Each step shows the tool that runs. They belong to the real connector: if one of them stopped existing, this page would not build.
- 1
Locate the table in its room
The listing returns tables with their number and the room they belong to, and flags which ones have an open sale when Fudo provides that data. It matters because a venue with two rooms can have two table 12s, and the ticket requires exactly one. If Fudo does not return occupancy, the Met says so instead of claiming the table is free.
- 2
Resolve every dish against the real menu
This is where the order is made right or wrong. The search returns the identifier, the price and whether the dish is still active on the menu, and that identifier is exactly what the ticket asks for. When the server names a whole category ("today's starters"), the category listing resolves it with its menu order and the kitchen it is sent to. The price comes from Fudo, never from the model: if a dish is inactive, the Met says so instead of loading it.
- 3
Create the ticket so it enters the kitchen
The ticket opens on the table with the guest count and the lines already resolved. That is the moment the order stops being a conversation and becomes kitchen work: there is no later confirmation step and no intermediate tray. The two fields Fudo requires are the table and the guest count, and the Met asks for them before creating anything if the message lacks them.
- 4
Add later orders without opening a second ticket
Half an hour later nobody remembers the ticket number. The venue's open ticket listing, newest first, finds it by table, and the new lines go onto the ticket that already exists. That is the difference between one check and two split checks for the same table, which is a register problem, not a kitchen one.
- 5
Answer where each dish stands
The query returns the ticket status, its total, its table and where each line stands: pending, being prepared, ready or served. The Met answers dish by dish on purpose, because that is how Fudo hands over the data: a ticket can have the starter served and the main not started, and saying "your order is on its way" would average two different things.
Before you start
What you need ready
The Met solves none of these for you. If one is missing, the automation stops there.
-
A Fudo account with the menu loaded
The menu must exist in Fudo with its categories, prices and active dishes. The connector reads the menu, it does not create it: a dish that does not exist in Fudo cannot be ordered from chat.
-
Fudo API credentials
Generated from the Fudo account and configured per workspace in Meteor. The connector contract came from Fudo's public OpenAPI and the transport is verified by probe, so test against your own account before putting it into a shift with guests in the room.
-
Tables created in Fudo, with their room
The ticket requires a table, so the room has to be loaded. If you have two rooms using the same numbering, giving them distinct names in Fudo is what keeps the Met from having to ask which table 12 you mean.
The limits
What this automation does NOT solve
Better said here than discovered halfway through the rollout.
-
No delivery or takeaway orders. This Fudo API only accepts dine-in sales and requires the table. If your operation is delivery, this recipe is not for you.
-
It does not charge the check or close the register. None of the seven tools touch payments, tips, payment methods or the shift close. The ticket enters the kitchen and billing stays in Fudo, handled by a person.
-
It does not void or correct a line already loaded. A dish entered by mistake is removed from Fudo: the connector does not expose voiding, on purpose.
-
It does not edit the menu. It reads products, prices and categories exactly as loaded in Fudo, but it does not create dishes, change amounts or activate anything.
-
It does not book tables or always state which ones are occupied. It flags occupancy only when Fudo returns active sales alongside the tables.
-
It does not return a single order status. The detailed status lives on each line, so the answer is always dish by dish.
FAQ
Questions about this automation
No. They write the way they would speak: the table, the dishes and how many people. The Met resolves the names against the real menu and asks only for what is missing, which is almost always the guest count, because Fudo requires it to open the ticket.
The search works over the menu loaded in Fudo, so it resolves variants and shorthand of the real name. What it does not do is guess: if no match is clear it asks, instead of loading a random dish, which is the expensive mistake on a full floor.
Technically the flow is the same, but think it through first: the connector does not charge, so the guest would order in chat and pay at the table as always. And since there is no voiding over the API, any correction goes back to the staff. That is why this recipe is written for the floor team, not for the public.
The Met says it could not create the ticket, and that is the right answer. There is no local queue holding the order for a later retry: an order the Met reported as loaded without it being loaded is worse than an order somebody has to type again.
Credentials are configured per workspace, so each venue gets its own. The open ticket listing belongs to the venue of those credentials, which is exactly what you want: a server should not find another location's ticket.
By asking. The order query returns the ticket with its table, its total and the status of every line, and the kitchen moves that status in Fudo. If it shows up with its dishes pending, it went through.
No, and it should not. Fudo remains where the menu, the register and the shift close live. What changes is the retyping step: what was said at the table enters the system without somebody keying it in again.
Keep going
Other automations built on the same tools
Orders and fulfillment
Accept, prepare and close Rappi orders without living on the tablet
How do I stop losing Rappi orders because nobody accepted them in time?
- Starts:
- when the outside system calls
- Steps:
- 6, with 10 real tools
- Needs:
- Rappi
Orders and fulfillment
Quote a Chilexpress shipment over WhatsApp
How do I quote a Chilexpress shipment over WhatsApp without calculating the rate myself?
- Starts:
- when the customer writes
- Steps:
- 5, with 6 real tools
- Needs:
- Chilexpress
Orders and fulfillment
Quote a TCC shipment from WhatsApp
How do I quote a TCC shipment from WhatsApp?
Finance and operations
- Starts:
- when the customer writes
- Steps:
- 5, with 8 real tools
- Needs:
- TCC · Meteor CRM
Orders and fulfillment
Create a Shopify order over WhatsApp for cash on delivery
How do I take a Shopify order over WhatsApp and leave it marked for cash on delivery?
- Starts:
- when the customer writes
- Steps:
- 5, with 7 real tools
- Needs:
- Shopify
Want this automation running on your own data?
We will show it to you with your accounts connected, not with a canned demo.