Turn your pantry sheet into a ready-to-buy Instacart cart
Every Thursday we check your pantry sheet, find what is running low, and post a one-click Instacart cart to Slack so nobody retypes a shopping list.
Every Thursday at 9am, check our office pantry inventory in Google Sheets and hand our office manager a ready-to-buy Instacart cart for everything that is running low. Use a cron trigger.
Start by reading the Pantry Inventory tab with the Google Sheets Get Values operation. Each row holds an item name, a UPC barcode, the unit we buy it in, the current count on hand, and the par level we want to keep in stock. Treat the first row as headers and resolve columns by header name rather than fixed positions, so the sheet can be reordered without breaking the run.
Keep only the rows where the current count is below the par level, and compute the reorder quantity as par level minus current count. Skip rows missing an item name or with non-numeric counts. If no rows are below par, end the run immediately without posting to Slack and without writing to the sheet, so the channel stays quiet on well-stocked weeks.
Build the cart with the Instacart Create Shopping List Page operation, turning each short row into one line item. Reference the product by upcs when the row has a UPC and by name when it does not. Note that upcs and product_ids are mutually exclusive on a single line item, and UPCs take priority for product matching. Put the reorder quantity and unit into line_item_measurements, which is the shopping-list field, not measurements, which is recipe-only. Stick to each, lb, and oz for pantry goods and map anything unrecognized to each.
Instacart returns a 400 when the same identifier appears on more than one line item, so dedupe rows before building the payload: group by UPC when present and by lowercased item name when not, summing the reorder quantities of merged rows. Expose a max items cap as a configurable knob defaulting to 50, and take the largest shortfalls first when the list exceeds it.
Post the result to Slack with the Send a Message operation in our office ops channel. Include how many items are short, an itemized list with each item name plus its reorder quantity and unit, and the one-click Instacart link from products_link_url so the office manager picks a store and checks out without retyping anything. Format the message with Slack mrkdwn.
Finally, use the Google Sheets Update Values operation to stamp the run date and the generated Instacart link back onto the sheet, so we have a record of what was reordered and when. Keep in mind the generated link expires after 30 days by default.
Example output
Additional information
What does this prompt do?
- Reads your pantry inventory sheet every Thursday morning and compares what is on hand against the target level you set for each item.
- Builds a ready-to-buy Instacart cart with only the items that are short, at the exact quantity needed to get back to your target.
- Posts the shortage list and a one-click checkout link to your office ops Slack channel, so your office manager just picks a store and checks out.
- Stamps the run date and the cart link back onto the sheet, and stays completely silent on weeks when nothing is running low.
What do I need to use this?
- A Google Sheet with a Pantry Inventory tab, one row per item you stock
- Each row needs an item name, the unit you buy it in, the current count, and the target level you want to keep on hand
- A barcode column is optional, but items that have one get matched to the right product much more accurately
- A Slack workspace and the channel your office team actually watches
- An Instacart account with access to their developer platform, which is what generates the shareable cart link
How can I customize it?
- Change the day and time. Thursday at 9am is just a starting point; some offices run it Monday morning, others twice a week.
- Point it at a different channel, or send it as a direct message to whoever actually does the ordering.
- Set a cap on how many items land in a single cart, or only reorder once an item falls a certain amount below target instead of any amount.
FAQs
What happens on a week when nothing is running low?
Do I need a barcode for every item?
Does this actually place the order and spend money?
Can I use this for things other than pantry snacks?
What if the same item shows up on two rows?
Related templates
New roof inspection requests from your website form land in JobNimbus within a minute, with no duplicate records and nothing retyped by your team.
Every weekday at 7am, your active courses are checked for missing work, silent logins, and slipping grades, with a ranked list sent to your advising channel.
Every new customer request gets a priority, triage labels, a friendly reply with the right help article, and a Slack ping only when it is truly urgent.
Every Monday at 8am, see exactly which assignments have work waiting, sorted worst first, posted to Slack and logged to a spreadsheet.
When a bot opens a version bump pull request, we read the real documentation for that exact version and tell you whether it is safe to merge.
The moment a deal hits Closed Won, the right contract starts in Ironclad, the link lands on the deal, and your sales channel hears who owns the next step.
Stop retyping the pantry list into a shopping cart.
Let the sheet do the counting and hand your office manager a cart that is ready to check out.