Snap a vendor price sheet, get inventory items in Mays

The Sysco rep dropped off a new dairy price sheet: thirty-odd lines of milk, cream, oat milk, butter and yogurt, each with a pack size and a case price. At most cafés, that sheet turns into an evening of typing. One column goes into a spreadsheet, the same numbers go into the inventory screen, and the sheet ends up stuck to the office wall in case someone needs the SKU later.
If Mays is connected to the AI app you already use, the evening of typing becomes one message and one preview. This post walks through it, step by step, for a fictional café: Harbor Lane Café, with locations in Midtown and Riverside.
Part of our series Run your restaurant with your AI: one real situation per post, with the words you type and what happens in Mays. The prompts and results are illustrative examples.
What the manager types
The kitchen manager at Midtown takes a photo of the sheet, drops it into the chat and writes:
"This is Sysco's new dairy price sheet. Add every item to Midtown's inventory in Mays. Use the case as the pack, put our par at 4 cases for whole milk and oat milk, and 2 for everything else."
That's it. No column mapping, no import template, no CSV.
What the AI does in Mays
- It reads the photo. The AI app (ChatGPT, Claude or Grok) reads the sheet itself: names, pack sizes, prices and the vendor's item codes. Mays never receives the photo; it receives the list the AI typed from it.
- It asks Mays for a preview. It sends that list to Mays as one request to add inventory items at Midtown, up to 50 items in one go. Each item can carry its count unit (bottle, lb, each), a category, the pack it's bought in (case = 6 half-gallons), a par level and one vendor with a price per pack and the vendor's SKU.
- Mays checks the list and changes nothing yet. It compares each item with what's already in Mays at that location (or shared by every location): the same name and count unit, in any letter case, counts as a duplicate. Duplicates are flagged and skipped unless you say to add them anyway. Two identical lines in the list itself get the same treatment.
- You read the preview and say yes. Only then does Mays create the items, set their pars and record the vendor price, the same way the New item form would.
If the vendor isn't in Mays yet, the AI tells you which names come closest. An admin can ask it to add the vendor first.
What you see
The preview is a table, one row per item in the order of the sheet: name, unit, category, pack, par, vendor, price per pack, and what will happen to it, create or skip (already in Mays). Above it, Mays lists its warnings in plain words, for example:
- "3 already exist and will be skipped: Whole milk, Heavy cream, Butter."
- "2 items have no vendor or price yet, so they will not appear on orders until one is added."
That second line matters. An item without a vendor price won't show up when Mays suggests an order from your pars, so it's worth fixing before you say yes. Tell the AI "the yogurt is $21.40 a case" and it asks for a fresh preview.
When everything looks right, you reply "yes, add them". Mays answers with what it did: how many items were added, which duplicates were skipped and, if any single item failed, why.
What it replaces
The old way had at least three copies of the same data:
Before | With Mays connected to your AI |
|---|---|
Type the price sheet into a spreadsheet to compare vendors | The AI reads the sheet once |
Re-type every line into the inventory screen | One preview, one yes |
Hunt for duplicates by scrolling the item list | Mays flags them in the preview |
Keep the paper for the SKUs | The SKU is saved with the vendor price |
Nobody copies a number from one window and pastes it into another. That's the point of the whole series.
Updating prices later
Price sheets change. When the next one arrives, you don't add items again, you update them: "Sysco now charges $31.20 a case for oat milk." The AI finds the item and asks Mays for a preview of the price change before anything is saved. To check what's already there first, ask "What do we pay Sysco for oat milk at Riverside?". Looking things up changes nothing.
Who can do it
The same rules as in Mays itself:
- Manage inventory is needed to add items.
- A location manager adds items, pars and prices at their own locations.
- Items for every location (org-wide items, with a par per location) and new vendors are an admin's.
- Prices show for anyone who can view inventory, as in the Mays app.
Changes also need two switches: an admin turns on Allow AI apps to take actions for the organization, and you tick make changes when you connect. Without them, the AI can still look items up and tell you what's below par, but it can't add anything. If it's unsure, ask "What can this Mays connection do?" and it checks.
What Mays doesn't do here
- It doesn't keep the photo. The items, pars, packs and prices are stored; the picture of the sheet is not. Keep the paper or the file if you need it.
- It doesn't guess. If a line on the sheet is blurry, the AI should ask you. Read the preview before you say yes: it shows exactly what the AI understood.
- It doesn't compare vendors for you on the sheet. Once two vendors have prices for an item, Mays picks the cheapest one per item when it suggests an order.
- Adding items doesn't change stock. On-hand counts change when you count or post an invoice, not when you create an item.
Try it with your next price sheet
- Connect Mays to ChatGPT, Claude or Grok. The setup pages are at mays.app/ai (ChatGPT, Claude, Grok), and Connect Mays to ChatGPT, Claude or Grok explains what you approve.
- Photograph the sheet and name the location in your message.
- Read the preview, fix anything that's off, and say yes.
For everything an inventory item holds, see Inventory items.
Try Mays free for 30 days, with no credit card, and connect it to the AI you already use.