- Brand
- EatWithMe
- Category
- Operations
- Primary Subcategory
- ERP & Operational Business Data
Integration details
Description
Analyze restaurant sales and revenue in ChatGPT. Connect an EatWithMe account with OAuth to select authorized restaurants, review active and connected status, and explore sales rows, item details, transaction and location identifiers, and staff/order attribution such as cashier or employee fields. Use sales tools only for sales and revenue analysis; do not use transaction or staff data to identify guests or infer customer identities. Staff attribution identifies staff only. Customer and guest names and contact details are not available. Access is read-only and limited to restaurants the connected account is authorized to view.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- ERP & Operational Business Data
- Secondary Subcategories
- None listed
- Brand
- EatWithMe
- Access
- Account required
- First tracked
- 2026-10-27
- Tool count
- 37
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for EatWithMe
Get updates when EatWithMe’s Discoverability Score or category rank changes.
Competing in ChatGPT ERP & Operational Business Data
View Category37 tools agents can invoke
Requires the advertisements add permission in the restaurant (like the admin UI), or the superadmin role. Creates an advertisement with an optional picture. `restaurantId` and `name` are required; the picture is `imageBase64` (the raw Base64-encoded bytes of a PNG, JPEG or GIF picture, optionally as a data URI; a file path, file id or URL is not accepted; a picture which is too large is scaled down and converted to JPEG automatically). Pictures are never fetched from public URLs, file ids or file paths: the picture is always uploaded in the call as `imageBase64`. The public `url` in the results is only where the stored picture is published, never an input. The advertisements named exactly `banner` (the banner image at the top of the webshop page), `banner_phone` and `banner_tablet` (the banner for phones and tablets), `footer` (the footer image), `background` and `logo` feed the webshop: an advertisement with one of these names which is active and has an image is published at `.../eatwithme.server/tableService/{restaurantId}/getImageByName/{name}` (the `url` of the result), so the CSS can use it, e.g. `body[theme="basic"] #generic-information { background-image: url(https://instance.eatwithme.online/instance11/eatwithme.server/tableService/1/getImageByName/footer); background-size: cover; }`. A name can be used by one active advertisement only. Check `getAdvertisements` first: when an advertisement with the name exists, change it with `updateAdvertisement` instead. Call it with `dryRun` true first, show the returned `changes` to the user, tell the user that an active webshop advertisement goes live for the customers, and ask for confirmation before saving.
Requires the stockmanagement incoming stocks add permission in the restaurant (like the admin UI), or the superadmin role. Records an incoming stock (goods received from a supplier, with the invoice / delivery note numbers, the prices and the VAT). When it is not a draft, the stock of the items is increased from the date of the delivery, which is recalculated in the background (`stockRecalculation` started). So: 1) find the supplier, VAT categories and store with `getIncomingStockDeliveries` (`suppliers`, `vatCategories`, `stores`) and the items with `searchMenuItems`; 2) ask the user what was received (state the `unitSize` of each item, i.e. what one unit is), the prices (net or gross, per unit or in total) and the VAT category; 3) call `createIncomingStockDelivery` with `dryRun` true, read the supplier, date, invoice, entries (`count`, `unitSize`, prices, VAT) and totals back to the user and ask for confirmation, and whether to save it as a draft (the default, the stock does not change) or final; 4) save with `dryRun` false, once. Only items counted in the stock (inventory items) which are active can be received. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; the other ids are the restaurant's own ids.
Requires the stockmanagement inventories add permission in the restaurant (like the admin UI; a template also needs its view permission), or the superadmin role. Creates a stock inventory from the counts given by the user. Workflow: 1) `getInventories` with `template` true to find the template, then `getInventories` with its `inventoryId` to get its entries (`skippedEntries` are not countable, tell the user); 2) walk the user through the entries in the order of the template, a few at a time (for example by category), saying for each the `name` and the `unitSize` (what one unit is) and asking for the count; accept a number of units or an amount with unit (250 g); 3) when the user has answered, call `createInventory` with `dryRun` true and the `entries` (and `templateId`), read back the entries, `uncounted` items and the `store`, `date` and `draft` to the user and ask for confirmation, and ask whether it should be saved as a draft (default, no stock change) or final; 4) save with `dryRun` false. Call it only once for one counting. Items not counted are not stored, so their stock does not change; ask the user whether those are really zero or were skipped. Only items counted in the stock (inventory items) can be counted; recipe based products and the templates inherited from a master restaurant are not supported. A final inventory (`draft` false) recalculates the stock in the background (`stockRecalculation` started); a draft has no effect on the stock until it is finalized in the admin UI. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; `storeId`, `templateId` and `menuItemId` are the restaurant's own ids returned by `getInventories` and `searchMenuItems`.
Requires the stockmanagement inventory scrapping add permission in the restaurant (like the admin UI), or the superadmin role. Records an inventory scrapping (disposal) of wasted, spoiled, broken or otherwise written off stock: the stock of the items is reduced from the date of the scrapping, which is recalculated in the background (`stockRecalculation` started). It changes the stock and cannot be undone with this tool, so: 1) find the items with `searchMenuItems` and the store with `getInventoryScrappings` (`stores`); 2) ask the user what was scrapped, how much (state the `unitSize` of each item, i.e. what one unit is) and the reason; 3) call `createInventoryScrapping` with `dryRun` true, read the `store`, `date` and entries (`count`, `unitSize`, `comment`) back to the user and ask for confirmation; 4) save with `dryRun` false, once. Only items counted in the stock (inventory items) which are active can be scrapped; recipe based products are not supported. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; `storeId` and `menuItemId` are the restaurant's own ids returned by `getInventoryScrappings` and `searchMenuItems`.
Requires the administration or products full access permission in the restaurant (like the admin UI), or the superadmin role. Creates a new menu category (root category or subcategory) in a restaurant. `restaurantId` and `name` are required. A TOP LEVEL category (no `parentCategoryId`) also needs a course (`timing`: asap, appetizer, maincourse, desert or last) and a VAT category (`vatCategoryId`, and `takeawayVatCategoryId` for takeaway); its subcategories and items inherit the course and VAT from it, so they do not need them. If the VAT category is missing the error lists the available VAT category ids. Every other field accepted by `updateMenuCategory` can be given too. Ids are the menu ids returned by `getMenuStructure` and `searchMenuItems`. Call it with `dryRun` true first and show the `changes` to the user before saving. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately. Inheritance: a category passes its settings down to its subcategories and items: course (`timing`), VAT, production lines, NTAK main and sub category, channel and other `settings`, and the add-ons and option groups (`menuItemAdditions`, `menuCategoryAdditions`). Every one of these can be overridden on an individual item, but a setting that is common to all items of a category must be set only on the category (the highest category where it is valid), not on the items. Set it on an item only when that item differs from its category, and do not repeat the category's value on every item. Create the option categories (the categories whose items are offered through option groups) under one top level 'container' category named Options (Opciók in Hungarian); reuse it if it already exists (check with `getMenuStructure`), otherwise create it first.
Requires the administration or products full access permission in the restaurant (like the admin UI), or the superadmin role. Creates a new menu item (a drink in a drink category, otherwise a meal) in a restaurant. `restaurantId`, `categoryId`, `name` and at least one `availableQuantities` entry with a price are required. `availableQuantities` are the portion sizes the item is sold in, each with its price (e.g. [{"quantity":1,"price":1490,"default":true}] for a dish sold per piece, or 0.3 and 0.5 for a drink sold in those sizes); the POS, kiosk and online menu only sell an item through its quantities, `default` marks the preselected one. The item takes its VAT, course (`timing`) and production lines from its category unless given; the category chain needs a VAT category or `vatCategoryId` has to be given. Every other field accepted by `updateMenuItem` (prices via `availableQuantities` or `unitPrice`, option groups, ingredients, allergens, settings, ...) can be given too. All ids are the menu ids returned by `searchMenuItems` and `getMenuStructure`. Call it with `dryRun` true first and show the `changes` to the user before saving. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately. Inheritance: a category passes its settings down to its subcategories and items: course (`timing`), VAT, production lines, NTAK main and sub category, channel and other `settings`, and the add-ons and option groups (`menuItemAdditions`, `menuCategoryAdditions`). Every one of these can be overridden on an individual item, but a setting that is common to all items of a category must be set only on the category (the highest category where it is valid), not on the items. Set it on an item only when that item differs from its category, and do not repeat the category's value on every item. Create the option categories (the categories whose items are offered through option groups) under one top level 'container' category named Options (Opciók in Hungarian); reuse it if it already exists (check with `getMenuStructure`), otherwise create it first.
Requires the administration or administration servings add permission in the restaurant (like the admin UI), or the superadmin role. Creates a quantity type, the unit of the portions of the restaurant (dl, pcs, portion, ...; the servings page of the admin UI). `restaurantId` and `name` or `names` are required. The returned `id` is the `quantityTypeId` to give to the `availableQuantities` entries of `createMenuItem` and `updateMenuItem`; `getRestaurantSettings` lists the existing quantity types. Call it with `dryRun` true first and show the `changes` to the user before saving. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately.
Requires the advertisements delete permission in the restaurant (like the admin UI), or the superadmin role. Deletes an advertisement; it is not shown or served any more (a deleted `banner` or `footer` disappears from the webshop). To hide it temporarily use `updateAdvertisement` with `isActive` false. Call it with `dryRun` true first and ask the user to confirm before deleting.
Requires the stockmanagement incoming stocks delete permission in the restaurant (like the admin UI), or the superadmin role. Deletes an incoming stock with all its entries. When it was not a draft, its stock is taken back: the stock is recalculated in the background (`stockRecalculation` started). It cannot be undone, so: 1) find the delivery with `getIncomingStockDeliveries`; 2) call `deleteIncomingStockDelivery` with `dryRun` true, read the supplier, date, invoice and entries back to the user and ask for explicit confirmation; 3) call it again with `dryRun` false, once. `restaurantId` is the global restaurant id from getAuthorizedRestaurants.
Requires the administration or products full access permission in the restaurant (like the admin UI), or the superadmin role. Deletes a menu category the way the admin UI does: the category is detached from its parent and marked deleted, and its subcategories and items disappear from the menu with it (`hiddenSubcategories` and `hiddenItems` in the result tell how many). Call it with `dryRun` true first and ask the user to confirm before deleting. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately.
Requires the administration or products full access permission in the restaurant (like the admin UI), or the superadmin role. Deletes a menu item the way the admin UI does: the item is marked deleted and disappears from the menu (it can be restored with `updateMenuItem` and `deleted` false). Call it with `dryRun` true first and ask the user to confirm before deleting. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately.
Requires the administration or administration servings delete permission in the restaurant (like the admin UI), or the superadmin role. Permanently deletes a quantity type (it cannot be restored). A quantity type which is still used by the quantities of any menu item cannot be deleted; the error tells how many entries use it, and those quantities have to be given another `quantityTypeId` with `updateMenuItem` first. Call it with `dryRun` true first and ask the user to confirm before deleting. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately.
Requires the stockmanagement inventories modify permission in the restaurant (like the admin UI), or the superadmin role. Finalizes an existing draft inventory (a stock count saved with `draft` true, for example by `createInventory`): it is not a draft any more and the stock is recalculated from the date of the inventory for every counted item, in the background (`stockRecalculation` started). This changes the stock and cannot be undone with this tool, so: 1) find the inventory with `getInventories` (the `draft` flag) and read its entries with `inventoryId`; 2) call `finalizeInventory` with `dryRun` true, read the `date`, the `store` and the entries (`count`, `unitSize`) back to the user and ask for confirmation; 3) call it again with `dryRun` false, once. A template, an inventory which is already final and an inventory with recipe based products are rejected (finalize those in the admin UI, Stock management, Inventories). `restaurantId` is the global restaurant id from getAuthorizedRestaurants; `inventoryId` is the restaurant's own id returned by `getInventories`.
Read only. Lists the advertisements (administration > advertisements) of a restaurant with their preview pictures, and the status of the webshop images (`webshopImages`: published, missing, not active, no image or duplicate). Requires the advertisements view permission in the restaurant, or the superadmin role. Every advertisement has `id`, `name`, `isActive`, `priority`, the validity (`fromDate`, `toDate`, `fromTime`, `toTime` in minutes, `days`; empty means always), the menu item and category ids it applies to, `hasImage`, the picture details and the public `url`. The advertisements named exactly `banner` (the banner image at the top of the webshop page), `banner_phone` and `banner_tablet` (the banner for phones and tablets), `footer` (the footer image), `background` and `logo` feed the webshop: an advertisement with one of these names which is active and has an image is published at `.../eatwithme.server/tableService/{restaurantId}/getImageByName/{name}` (the `url` of the result), so the CSS can use it, e.g. `body[theme="basic"] #generic-information { background-image: url(https://instance.eatwithme.online/instance11/eatwithme.server/tableService/1/getImageByName/footer); background-size: cover; }`. A name can be used by one active advertisement only. Advertisements named `ads_...` are shown by the POS and waiter apps. `restaurantId` is the global restaurant id from getAuthorizedRestaurants.
Return the restaurants this client is authorized to query. Call it first: every restaurant has a `restaurantId` (its global id), the value to pass as `restaurantId` to all other tools, together with its `instance`.
Use this for raw order-level stock consumption records from the tenant consumptionstockentry table. It is intended for detailed audit, traceability, and reconciling what was consumed by which order or menu item, not for summary stock totals or supplier purchasing recommendations.
Read only. Lists the incoming stocks (goods received from a supplier: invoices and delivery notes, the `Incoming stocks` of the admin UI) of a restaurant, the newest first, or returns one with all its entries (`deliveryId`). Requires the stockmanagement incoming stocks view permission in the restaurant, or the superadmin role; users restricted to stores see only their stores. Every delivery has `id`, `date`, `draft` (a draft does not change the stock), `supplier`, `invoiceId`, `deliveryNoteId`, `netTotal`, `bruttoTotal`, `createdBy`, `entryCount` and, with entries, `entries` (`entryId`, `menuItemId`, `name`, `unitSize` = what one received unit is, e.g. 1 kg, `count` = the number of units, `total`, `store`, `vatCategory`, `netUnitPrice`, `bruttoUnitPrice`, `netPrice`, `bruttoPrice`, `expiryDate`, `code`; `unmatched` true for an invoice line not yet matched to a menu item). The list result also has `suppliers`, `vatCategories` and `stores` to choose from when creating a delivery, and `total`, `offset`, `limit` for paging. This is different from `getIncomingStocks`, which is the report of the received entries. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; all other ids are the restaurant's own ids, as used by the menu tools.
Use this to inspect delivered inventory entries for an authorized restaurant over a date range. It is meant for procurement review, supplier tracking, and stock-in history; not for order consumption or sales analysis.
Read only. Lists the stock inventories (stock counts) of a restaurant, the newest first, or its inventory templates (`template` true), or returns one with all its entries (`inventoryId`). Requires the stockmanagement inventories view permission in the restaurant (templates: inventories or inventory templates view), or the superadmin role; users restricted to stores see only their stores. Every inventory has `id`, `date`, `draft` (a draft does not change the stock yet), `store`, `createdBy`, `created`, `modifiedBy`, `entryCount` and, with entries, `entries` (`menuItemId`, `name`, `category`, `unitSize` = what one counted unit is, e.g. 1 kg or 0.7 l, `count` = the number of units counted, `total` = unitSize times count, `expiryDate`; `originalCount` with the stock view permission). A template has `templateName` and the entries to ask for when counting; template items which cannot be counted any more are in `skippedEntries` with the reason. The list result also has `stores` (id, name) and `total`, `offset`, `limit` for paging. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; all other ids are the restaurant's own ids, as used by the menu tools.
Read only. Lists the inventory scrappings (disposals: wasted, spoiled, broken or otherwise written off stock) of a restaurant, the newest first, or returns one with all its entries (`scrappingId`). Requires the stockmanagement inventory scrapping view permission in the restaurant, or the superadmin role; users restricted to stores see only their stores. Every scrapping has `id`, `date`, `store`, `createdBy`, `created`, `modifiedBy`, `entryCount` and, with entries, `entries` (`menuItemId`, `name`, `category`, `unitSize` = what one scrapped unit is, e.g. 1 kg or 0.7 l, `count` = the number of units scrapped, `total` = unitSize times count, `expiryDate`, `comment` = the reason). The list result also has `stores` (id, name) and `total`, `offset`, `limit` for paging. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; all other ids are the restaurant's own ids, as used by the menu tools.
Read only. Use this to see who changed the menu of a restaurant, when and what: the change log of menu items, menu categories and quantity types (created, modified, deleted, restored, activated, deactivated, moved, reordered), the latest change first. Requires the administration, menu change log or products full access permission in the restaurant (like the menu change log page of the admin UI), or the superadmin role. Every entry has `time`, `modifiedBy` (e-mail), `modifierName`, `source` (admin = the admin UI, mcp = this API), `entityType` (Meal, Drink, MealCategory, DrinkCategory, QuantityType), `entityId`, `entityName`, `modificationType` and `changes` (a list of {field, from, to}; `fromLabel` and `toLabel` hold the names of referenced categories, VAT categories, production lines and quantity types). Without `from` the last 30 days are returned (all the history of an entity when `itemId` or `categoryId` is given); entries older than one year are deleted. The result has `total`, `offset` and `limit` for paging. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; `itemId` and `categoryId` are the menu ids returned by `searchMenuItems` and `getMenuStructure`.
Shows the pictures of a menu item or a menu category: the preview pictures and, per channel, the size, the last update, the public `url` and which picture the channel really uses. A menu item has a `default` (basic) picture, a `big` picture and an own picture for the channels `wolt`, `foodora`, `falatozz` and `choice` (ChoiceQR); a channel without its own picture uses the `big` picture, then the `default` one (`effectiveFrom` tells which). A menu category has only the default picture. Use it for questions like 'Show the picture of the Margarita Pizza' and 'Which picture does Wolt show for the Mojito?', and to check the result after `setMenuImage`. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; `itemId` and `categoryId` are the ids returned by `searchMenuItems` and `getMenuStructure`.
Use this to inspect how a restaurant menu is structured: category hierarchy, item placement, mandatory/included ingredients (the recipe), optional add-ons, option groups, channel visibility (wolt, foodora, choice, kiosk, webshop, falatozz), available quantities (portion sizes with price, cost, default flag and per-channel availability), and price/cost/profit context for a specific menu item or category. The recipe is built from mandatory and included option ingredients, so this tool is best for questions like 'Explain how Margarita Pizza is set up' or 'What are the ingredients and options in Pizza category'. Option groups (optionGroups) reference an option category: if no items of that category are explicitly listed for the menu item (in optionalAdditions), every item of the option category is available; if items of that category ARE explicitly listed, the available items are restricted to only those explicitly listed items.
Read only. Returns the complete CSS of the restaurant (the `css` property of the restaurant, applied to the webshop and the apps) with its `length`, and the status (`webshopImages`) of the advertisements which feed the webshop images. Only a user with the superadmin role can use it for now. Use it first when the user wants to discuss or change the look of the webshop: show or summarize the current CSS, then change it with `setRestaurantCss`. The CSS typically imports a font, defines `:root` variables (colors, fonts) and styles `body[theme="basic"]` elements, with media queries for small screens. The advertisements named exactly `banner` (the banner image at the top of the webshop page), `banner_phone` and `banner_tablet` (the banner for phones and tablets), `footer` (the footer image), `background` and `logo` feed the webshop: an advertisement with one of these names which is active and has an image is published at `.../eatwithme.server/tableService/{restaurantId}/getImageByName/{name}` (the `url` of the result), so the CSS can use it, e.g. `body[theme="basic"] #generic-information { background-image: url(https://instance.eatwithme.online/instance11/eatwithme.server/tableService/1/getImageByName/footer); background-size: cover; }`. A name can be used by one active advertisement only. `restaurantId` is the global restaurant id from getAuthorizedRestaurants.
Use this to learn how a restaurant is configured and which options exist before creating or changing menu items and categories. Returns the restaurant profile (name, address, languages, default language, base currency, currencies, payment methods) and the option lists with their ids: `vatCategories` (for vatCategoryId), `quantityTypes` (for quantityTypeId), `timings` (the courses and whether each is enabled), `productionLines` (for productionLineIds) and `labels`, plus the restaurant `settings` tree (business day, service fee, enabled features such as takeaway, pickup, kiosk, webshop, Wolt, Foodora, menu and price calculation options, ...). The tree shows which settings exist and their current values. Use `path` (for example enabled-features/wolt) to read only one part of the tree, or `includeSettings` false to get only the option lists. Secrets such as keys, tokens and passwords are hidden. `restaurantId` is the global restaurant id from getAuthorizedRestaurants; all other ids in the result are the restaurant's own ids, as used by the menu tools.
Return the current active and connected status for a specific authorized restaurant. Does not expose service URLs or hostnames.
Use this for revenue, sales trend, and order-value analysis for an authorized restaurant over a date range. It returns transaction-level sales rows and staff attribution only; do not use it to identify guests, retrieve customer contact data, or infer personal identities.
Use this to find stock items that are below their desired level and to get supplier suggestions for reordering. Best for inventory replenishment planning and a quick purchasing shortlist, not for detailed historical transaction auditing.
Use this for aggregated stock movement reporting: opening stock, consumption, incoming goods, shortages, scrapping, outgoing movements, and final stock for a restaurant over time. It is designed for inventory analysis and trend reporting, not for raw order-level consumption details.
Lightweight flat list of the menu items of a restaurant (id, name, shortName, categoryId, categoryPath, unitPrice, active), searchable by name. Use this first to find the id of a menu item or to list the items of a category, then call getMenuStructure with itemIds only for the items whose recipe, options, channels or quantities you need. The name search is case and accent insensitive, every word of the search text must appear in the item name or short name. Deleted items are never returned.
Requires the same permission as modifying the menu item or category in the admin UI (administration, or products full access; stock list access is enough for items), or the superadmin role. Sets, replaces or removes a picture of a menu item or a menu category. `restaurantId`, `itemId` or `categoryId`, and the new picture (`imageBase64` = the raw Base64-encoded bytes of the picture, optionally as a data URI; a file path, file id or URL is not accepted) or `remove` true are required. `channel` selects the picture: `default` (the basic picture shown in the POS, waiter and online menu), `big`, `wolt`, `foodora`, `falatozz`, `choice` (ChoiceQR) or `all`; a category has only `default`. A channel without its own picture uses the `big` picture, then the `default` one, so set a channel picture only when it has to differ. Setting `default` also updates `big` when the item has no big picture or it is a copy of the default one, as the admin UI does. PNG, JPEG and GIF pictures are accepted (WebP, HEIC and SVG are not); a picture which is too large is scaled down (longest side 2000 px) and converted to JPEG automatically, transparency becomes white. `remove` deletes the picture of the channel. Call it with `dryRun` true first, show the returned `changes` to the user and ask for confirmation before saving; check the result with `getMenuImages`. The picture is only stored in the restaurant's own menu data, nothing is sent to Wolt, Foodora, Falatozz or ChoiceQR by this tool. The channel names only select which stored picture of the item is changed.
Only a user with the superadmin role can use it for now. PUBLISHES the CSS of the restaurant to its live, public webshop and apps: it replaces the `css` property of the restaurant, and customers see the new look after a page refresh. `restaurantId` and `css` (the COMPLETE new stylesheet, not a patch) are required: read the current CSS with `getRestaurantCss`, change it as discussed with the user and send the whole result. Call it with `dryRun` true first, tell the user what will change and that it goes live for the customers of the restaurant, and ask for confirmation before saving. The images of the page (banner, footer) are managed with the advertisement tools: The advertisements named exactly `banner` (the banner image at the top of the webshop page), `banner_phone` and `banner_tablet` (the banner for phones and tablets), `footer` (the footer image), `background` and `logo` feed the webshop: an advertisement with one of these names which is active and has an image is published at `.../eatwithme.server/tableService/{restaurantId}/getImageByName/{name}` (the `url` of the result), so the CSS can use it, e.g. `body[theme="basic"] #generic-information { background-image: url(https://instance.eatwithme.online/instance11/eatwithme.server/tableService/1/getImageByName/footer); background-size: cover; }`. A name can be used by one active advertisement only.
Requires the advertisements modify permission in the restaurant (like the admin UI), or the superadmin role. Changes the name, the active state, the priority or the picture of an advertisement (`imageBase64`, the Base64-encoded bytes of the new picture, replaces the picture, `removeImage` deletes it); the other fields (validity, menu items) are not changed. `restaurantId` and `advertisementId` are required. Use it to replace the `banner` or `footer` picture of the webshop, or to hide it with `isActive` false. Pictures are never fetched from public URLs, file ids or file paths: the picture is always uploaded in the call as `imageBase64`. The public `url` in the results is only where the stored picture is published, never an input. The advertisements named exactly `banner` (the banner image at the top of the webshop page), `banner_phone` and `banner_tablet` (the banner for phones and tablets), `footer` (the footer image), `background` and `logo` feed the webshop: an advertisement with one of these names which is active and has an image is published at `.../eatwithme.server/tableService/{restaurantId}/getImageByName/{name}` (the `url` of the result), so the CSS can use it, e.g. `body[theme="basic"] #generic-information { background-image: url(https://instance.eatwithme.online/instance11/eatwithme.server/tableService/1/getImageByName/footer); background-size: cover; }`. A name can be used by one active advertisement only. Call it with `dryRun` true first, show the returned `changes` to the user, tell the user that the change goes live in the webshop for the customers, and ask for confirmation before saving; check the result with `getAdvertisements`.
Requires the stockmanagement incoming stocks modify permission in the restaurant (like the admin UI), or the superadmin role. Changes an existing incoming stock: its supplier, date, invoice / delivery note numbers, draft flag (`draft` false finalizes it) and its entries. When the delivery is or was not a draft, the stock is recalculated in the background (`stockRecalculation` started). It changes the stock and cannot be undone with this tool, so: 1) read the delivery with `getIncomingStockDeliveries` (`deliveryId`); 2) ask the user what to change; 3) call `updateIncomingStockDelivery` with `dryRun` true, read the result (supplier, date, entries, totals) back to the user and ask for confirmation, especially when entries are removed; 4) call it again with `dryRun` false, once. To change entries send the complete list (see `entries`). A delivery with invoice lines not yet matched to a menu item (`unmatched`) can have its entries changed only in the admin UI. `restaurantId` is the global restaurant id from getAuthorizedRestaurants.
Requires the administration, products full access or stock list permission in the restaurant (like the admin UI; deleting, activating or moving needs administration or products full access), or the superadmin role. Modifies any parameter of an existing menu category: names, descriptions, flags, position, availability period, VAT, production lines, allergens, add-ons and option groups offered for its items (`menuItemAdditions`, `menuCategoryAdditions`), channel settings, moving it under another parent (`parentCategoryId`) and soft deletion. Only the fields that are present are changed. Ids are the menu ids returned by `getMenuStructure`. Call it with `dryRun` true first and show the returned `changes` (field, from, to) to the user before saving. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately. Inheritance: a category passes its settings down to its subcategories and items: course (`timing`), VAT, production lines, NTAK main and sub category, channel and other `settings`, and the add-ons and option groups (`menuItemAdditions`, `menuCategoryAdditions`). Every one of these can be overridden on an individual item, but a setting that is common to all items of a category must be set only on the category (the highest category where it is valid), not on the items. Set it on an item only when that item differs from its category, and do not repeat the category's value on every item. Create the option categories (the categories whose items are offered through option groups) under one top level 'container' category named Options (Opciók in Hungarian); reuse it if it already exists (check with `getMenuStructure`), otherwise create it first.
Requires the administration, products full access or stock list permission in the restaurant (like the admin UI; deleting or activating needs administration or products full access), or the superadmin role. Modifies any parameter of an existing menu item: names, descriptions, flags, prices and portion sizes (`availableQuantities`), cost, VAT, category, production lines, allergens, recipe ingredients and add-ons (`menuItemAdditions`), option groups (`menuCategoryAdditions`), channel settings and soft deletion. Only the fields that are present are changed, everything else is kept. All ids are the menu ids returned by `searchMenuItems` and `getMenuStructure`. Call it with `dryRun` true first and show the returned `changes` (field, from, to) to the user before saving. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately. Inheritance: a category passes its settings down to its subcategories and items: course (`timing`), VAT, production lines, NTAK main and sub category, channel and other `settings`, and the add-ons and option groups (`menuItemAdditions`, `menuCategoryAdditions`). Every one of these can be overridden on an individual item, but a setting that is common to all items of a category must be set only on the category (the highest category where it is valid), not on the items. Set it on an item only when that item differs from its category, and do not repeat the category's value on every item. Create the option categories (the categories whose items are offered through option groups) under one top level 'container' category named Options (Opciók in Hungarian); reuse it if it already exists (check with `getMenuStructure`), otherwise create it first.
Requires the administration or administration servings modify permission in the restaurant (like the admin UI), or the superadmin role. Renames a quantity type (the unit of the portions). `restaurantId`, `quantityTypeId` and `name` or `names` are required. All the menu items which use the quantity type show the new name (`usedByQuantities` in the result tells how many quantity entries use it). Call it with `dryRun` true first and show the returned `changes` to the user before saving. The change is not pushed to POS devices or third-party channels (Wolt, Foodora) immediately.
EatWithMe ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve EatWithMe's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are EatWithMe alternatives on ChatGPT?
As of 2026-11-02, EatWithMe competes with AIES.cz, AIMS360 Fashion & Consumer ERP, AirPlx Radio, Asset Vision, Automatika Connect, Belgian Annual Accounts, BizBeat Business Insights, Bizwiki Business Lookup and 18 more in ChatGPT ERP & Operational Business Data, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.