Pre-market watchlist briefing in Slack
Every US trading day at 8:30am ET, get a written watchlist briefing in Slack covering biggest movers, 52-week extremes, and valuation flags before the bell.
Integrations
YCharts
Google Sheets
Slack
Type
Categories
- Finance
- Personal Productivity
Build me a pre-market watchlist briefing as an agent workflow. It should run on a cron every US trading weekday (Monday through Friday) at 8:30am ET.
Step 1. Read my watchlist tickers from Google Sheets using the Get Values operation. The tickers live in a single column of a sheet I will configure on the workflow (spreadsheet ID, sheet/tab name, and A1 range). Parse the column into a clean list of ticker strings and trim whitespace. Skip blank rows.
Step 2. For each ticker, call YCharts using the Get Company Data Points operation to pull: current price, prior close, 1-day percent change, P/E ratio, market cap, 52-week high, and 52-week low. Batch the symbols into a single YCharts call where possible (YCharts allows up to 100 symbols per request). If YCharts returns an error for a specific ticker (per-symbol meta.status of "error" or a missing result), skip that ticker and continue. Do not fail the whole run because one symbol is bad. Keep a short list of the skipped tickers so you can mention them at the end of the briefing.
Step 3. Write a short narrative briefing (roughly 150 to 300 words). It should:
Lead with the biggest movers (top gainers and top decliners by 1-day percent change). Name the tickers, the price, and the percent move.
Call out any tickers trading near a 52-week extreme (within roughly 3 percent of the 52-week high or low). Say which extreme and how close.
Flag any unusual valuation signals (for example, a P/E that looks unusually high or low for the watchlist, or a notable market cap shift). Keep this short and qualitative.
End with a one-line note listing any tickers that were skipped because YCharts did not return data, if there were any.
Step 4. Post the briefing to a Slack channel using the Send a Message operation. The target channel is a workflow setting. Format the message using Slack mrkdwn (not standard Markdown), which means:
Use *single asterisks* for bold around ticker symbols, section headings, and the most important numbers.
Use _underscores_ for italics sparingly.
Lead with a date-stamped headline like *Pre-market watchlist — Mon May 29*.
Use short sections (Movers, Near 52-week extremes, Valuation flags) so the post is scannable on mobile.
Prices should be formatted with a dollar sign and two decimals. Percent moves should include a sign and a percent symbol (for example, +2.4% or -1.1%). Market cap should be human-readable (for example, $2.1T or $48.6B).
Error handling and run safety:
If the Google Sheet read fails or returns zero tickers, post a one-line Slack message saying the watchlist could not be loaded and stop. Do not silently no-op.
If YCharts is fully down (all symbols error or the call itself fails), post a one-line Slack message saying market data is unavailable and stop.
Otherwise always post the briefing, even if some tickers were skipped.
Configurable settings I want exposed on the workflow: the Google Sheet (spreadsheet ID, sheet/tab name, A1 range for the ticker column), the Slack channel to post to, and the schedule (default 8:30am ET, Monday through Friday). Keep the agent instructions clear so I can later edit the tone of the briefing or what counts as a notable mover.
What it does
- Pulls your watchlist tickers from a Google Sheet and looks up the latest price and fundamentals for each one before the US market opens.
- Writes a short, scannable narrative briefing that calls out the biggest overnight movers, tickers trading near 52-week highs or lows, and unusual valuation signals.
- Posts the briefing to a Slack channel of your choice every weekday at 8:30am ET, formatted so tickers, prices, and percent moves are easy to skim on mobile.
- Skips any ticker that fails to return data instead of breaking the whole run, so a single bad symbol never costs you the briefing.
What you’ll need
- A Google Sheet with the ticker symbols you want covered, one per row.
- A YCharts API subscription so the workflow can look up prices and fundamentals.
- A Slack workspace and a channel where the briefing should be posted.
How to customize it
- Change the schedule. Move the post time earlier or later, or run it twice a day (pre-market and post-close).
- Edit the watchlist any time by adding or removing tickers in the Google Sheet. No code changes needed.
- Tweak what the briefing highlights. Ask for sector groupings, dividend yield callouts, or a different definition of "near 52-week high."
- Swap the Slack channel, route different watchlists to different channels, or DM the briefing to yourself instead.
Use cases
- Daily Digests
- AI Reports
- Research & Monitoring