Your item data doesn't need to already be a spreadsheet, and it doesn't need to already match Gaia's Bulk Upload template. An AI assistant can take whatever you have, a spreadsheet, a PDF, a scanned list, even plain text, and convert it. Paste the prompt below into an AI assistant such as Claude or ChatGPT, and attach:
Your source data, whatever format it's in.
A blank Item Import template, downloaded from your Pantry. It carries your district's own categories and units.
A Pantry export, if you already have items in Gaia. This lets the assistant update the items you have instead of adding duplicates.
Always review the converted file yourself before uploading it, and check the import preview screen carefully; it will flag anything Gaia can't read.
The prompt
You are converting a list of food and supply items into Gaia's Item Import template so it can be uploaded to a Gaia Pantry. I'm giving you my source data (a spreadsheet, a PDF, a scanned document, or plain text), a blank Item Import template, and possibly a Pantry export of the items I already have in Gaia. Follow these rules exactly. Don't guess anywhere: when you aren't sure, leave the field blank and list the item at the end with the reason.
The output file. Use the blank template exactly as it is: same columns, headers spelled exactly as they appear, and delete the example row. Keep its hidden "Dropdown Lists" sheet. Type plain values into every cell, no formulas.
Items I already have. If I gave you a Pantry export, check each source item against it by name, manufacturer and manufacturer code. When it's already in Gaia, copy its Gaia Code from the export onto the row and fill in only the fields the source actually changes; leave the rest blank, since blank means "leave as is." When it's new, leave Gaia Code blank.
Duplicates. The item template has no vendor field, so the same ingredient listed once per vendor, or once per pack size, becomes a single row. Merge two source rows only when their name, manufacturer, manufacturer code and serving size all match. A 2 oz and a 3 oz egg roll are two items. Never merge or split rows based on the vendor's own item number; vendors reuse and renumber those.
Field mapping:
Name: the cleaned or revised ingredient name if one exists in the source. If not, use the raw ingredient name.
Alias: the raw or original ingredient name, but only if it's different from Name. This preserves the old name for search.
External Record ID: a stable ID that's unique per ingredient in the source. After merging duplicates, double check it's actually unique. Don't assume it is.
Shortcode: the same value as External Record ID, for now.
Manufacturer and Manufacturer Code: the manufacturer's name and the manufacturer's own product code. Keep these separate from any "Vendor" or "Vendor Product #" information in the source. Vendor information doesn't belong in this template at all.
Item Type: Food by default. Only use Supplies when the source clearly marks something as non-food, like disposables or trays. If you go by words in the name, match whole words only, so "straw" doesn't catch "Strawberries," and include plurals like "Gloves" and "Trays."
Category: use only the values in the template's Category dropdown; they're specific to my district. Build an explicit mapping from the source's own categories to those values before converting any rows, and show it to me. Don't guess row by row.
Allergens: only pull from data that is explicitly labeled as allergens. Never infer an allergen from free-text notes or comments, even if they mention one by name.
Tags: optional. Use this for sourcing flags like Buy American, Local, or USDA commodity, or a kitchen or site name, only if the source has them and nothing else fits. Note in your output that this column can be removed if not needed.
Notes: QA or compliance comments, discontinued flags, and the item's real purchase or recipe unit, see the Base Unit rule below. Skip boilerplate values like "Clear TC" or "0"; only carry over substantive comments.
The most important rule, Base Unit and Base Amount Quantity.
Every item in Gaia needs a Base Unit and a Base Amount Quantity. This is not the ingredient's purchase or recipe unit, like "per pound" or "per each." It is the exact quantity every nutrition fact on the item is measured against.
Do not default this to a typical purchase or recipe unit. Before filling it in, sanity check a few nutrition values in the source against known references, for example a raw tomato is about 18 calories per 100 grams, to work out what basis the source's own nutrition numbers actually use. Use that same basis for every item; don't assume it's the same in every source you convert.
Look for a stated size before you estimate one. Sources often put the size in the item name, for example "Egg Roll, Vegetarian, 2 oz." If the nutrition is per piece, that item's Base Unit is ounce and its Base Amount Quantity is 2. Use the Base Unit names in the template's dropdown.
The ingredient's real purchase or recipe unit, whatever the source calls it, has no field in this template. Put it in Notes instead, clearly labeled so it's never mistaken for the nutrition basis.
Supply items, like trays or other disposables, always get Base Unit = each and Base Amount Quantity = 1, never the pack's count.
Nutrition panel: pull Calories, Total Fat, Saturated Fat, Trans Fat, Cholesterol, Sodium, Total Carbohydrates, Dietary Fiber, Total Sugars, Added Sugars, Protein, Vitamin A, Vitamin C, Calcium, and Iron from wherever the source's nutrition facts are, matched back to the right item. Treat sentinel values like "N/A" or "not found" as blank, not zero.
Leave blank: UPC, Item as Recipe, Special Diets, Monounsaturated Fats, Polyunsaturated Fats, Vitamin D, Potassium, Water, Phosphorus, Ash, and every USDA meal component field (Grain, Fruit, Vegetable, Red/Orange, Dark Green, Starchy, Beans/Peas/Lentils, Other Veg, Meat, Milk), unless the source states them explicitly.
Before you hand back the file, check: every Item Type, Category and Base Unit value is in the template's dropdowns exactly; no two rows share an External Record ID or Shortcode; no two rows have the same name, manufacturer, manufacturer code and serving size; every row has a Name, Base Unit and Base Amount Quantity. Then list: your category mapping, every item you weren't sure about and why, and how many rows are new versus updates of items I already have.