Daily deals digest in Slack from a Google Sheets watchlist

Every morning at 8am, post a curated digest of the best current Google Shopping deals across your team's watchlist categories, with prices, stores, and product images, straight into Slack.

Agentic Task
Real-Time Product SearchGoogle SheetsSlack BotMarketingOperationsDaily DigestsContent GenerationResearch & Monitoring
PromptCreate

Build me an agent workflow that posts a curated daily deals digest to Slack every morning at 8am. The trigger is a cron schedule (08:00 in my workspace timezone, every day).

At each run, the agent should:

1) Read a configured Google Sheets watchlist using Google Sheets Get Values. The sheet has one row per tracked category with three columns: query (e.g. "noise canceling headphones", "ergonomic office chair", "gaming GPU"), min_discount_pct (integer, e.g. 20), and channel (the Slack channel ID or name to post results in, e.g. #deals-tech). The spreadsheet ID, tab name, and header row should be inputs the user configures when they connect the workflow.

2) For every row, call Real-Time Product Search Search Deals with the row's query to pull current Google Shopping deals. Filter the returned deals down to those whose discount percent is at or above the row's min_discount_pct. If nothing in a row clears the floor, skip that row silently — do not post an empty section.

3) For the most promising hits across all rows (top candidates by discount size and apparent value), optionally call Real-Time Product Search Get Product Details to flesh out the title, image URL, rating, and seller before deciding what to include.

4) Use editorial judgement to pick the 5 to 8 most compelling deals across all categories for today. Dedupe near-identical listings (same product across multiple queries, or the same SKU from multiple sellers — keep the best offer). For each selected deal, write a one to two sentence blurb covering the price, the store, the discount percent, and why it stands out (price relative to typical, seller reputation, strong ratings, etc.).

5) Group the selected deals by the target Slack channel from the watchlist row they came from. For each channel that has at least one deal, call Slack Bot Send a Message to post a single digest message to that channel. Use Slack mrkdwn formatting (`*bold*`, `<url|text>`). Each deal in the digest should include: product title (linked to the buy URL), price + original price + discount percent, store name, a one-liner blurb, and the product image URL on its own line so Slack unfurls it. Lead the message with a short header like "*Today's deals* — DATE".

Inputs the user should configure when they connect the workflow: the Google Sheets spreadsheet ID and tab name for the watchlist, the timezone for the 8am cron, and optional editorial preferences (e.g. "prefer new condition only", "cap price at $X", "skip Amazon resellers").

Connections required: Google Sheets (read), Slack Bot (chat:write, plus chat:write.public if the bot won't be a member of every target channel), and Real-Time Product Search (RapidAPI key).

Additional information

What does this prompt do?
  • Reads a Google Sheets tab where each row is a category you want tracked, the minimum discount worth posting, and the Slack channel to post it in.
  • Pulls fresh Google Shopping deals for every row and pulls extra detail (title, image, rating, seller) on the most promising hits.
  • Picks the 5 to 8 most compelling deals across all your categories, dedupes near-identical listings, and writes a short blurb for each one.
  • Posts the digest to Slack with product images and buy links, and quietly skips any category where nothing clears your discount floor.
What do I need to use this?
  • A Google account with access to a Google Sheets watchlist (one row per query, with columns for the search term, minimum discount percent, and target Slack channel).
  • A Slack workspace with a bot installed in every channel you want digests posted to.
  • A Real-Time Product Search account to pull live Google Shopping prices and deals.
How can I customize it?
  • Change the schedule. Run it once a day, twice a day, weekdays only, or right before your team's daily standup.
  • Edit the watchlist sheet to add or remove categories, raise or lower the minimum discount, or send different rows to different channels.
  • Tune the editorial style. Tell the agent to keep blurbs to one line, focus on a price ceiling, prefer certain stores, or skip refurbished and used listings.

Frequently asked questions

How do I set up the watchlist sheet?
Create a Google Sheet with one row per thing you want tracked. Use three columns: the search query (for example noise canceling headphones), the minimum discount percent that's worth posting, and the Slack channel to post it in. The agent reads every row each morning.
What happens if nothing in a category is on sale?
The agent quietly skips that category for the day. You only get a Slack message when there's at least one deal that clears your discount floor, so the channel doesn't fill up with noise.
Can I send different categories to different Slack channels?
Yes. The channel is set per row in the watchlist, so headphone deals can go to a tech channel and office chair deals can go somewhere else. The agent groups deals by channel when it posts.
How does the agent decide which deals are interesting?
It looks at the discount size, the price relative to the rest of the listings, the seller's reputation, and the product's ratings. It then writes a short blurb explaining why each deal stood out so your team can decide at a glance.
Will it post duplicates if the same product shows up under two queries?
No. The agent dedupes near-identical listings before posting so you don't see the same TV under both television deals and 4k tv deals.

Stop hand-curating deal posts every morning.

Connect Google Sheets, Slack, and Real-Time Product Search once, and Geni publishes a fresh deals digest to your team every morning at 8am.