Daily watchlist close-of-day digest in Slack

By General Input

Every weekday at 4:15pm ET, post a tidy close-of-day summary of every ticker on your watchlist to Slack, with alerts when prices cross your targets.

Integrations

  • RapidAPI
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • Finance
  • Personal Productivity

Build a code workflow that runs on a cron trigger every weekday (Monday through Friday) at 4:15pm America/New_York and posts a close-of-day watchlist digest to Slack.

Step 1. Read my watchlist from Google Sheets. Use Google Sheets' Get Values operation against the 'watchlist' tab of a spreadsheet I'll configure. Each row has columns: ticker, target_above, target_below, notes. Skip the header row. The list of tickers comes entirely from this tab. Treat target_above and target_below as optional numeric thresholds (either or both may be blank).

Step 2. For each ticker, fetch today's market data using RapidAPI's Call a Subscribed Hub API operation. Default to the Real-Time Finance Data API on the RapidAPI Hub (host: real-time-finance-data.p.rapidapi.com), with YH Finance as a fallback option I can swap in. From the response, extract: close price, day change percent, day volume, 52-week high, and 52-week low. If the API returns no data for a ticker, log a warning and keep going. Respect rate limits with a small delay between calls and retry on 429.

Step 3. Append one row per ticker per day to the 'history' tab of the same spreadsheet using Google Sheets' Append Values operation. Columns: date (YYYY-MM-DD in ET), ticker, close, change_pct, volume.

Step 4. Build a single Slack digest message and send it with Slack's Send a Message operation to the channel #markets (make the channel a configurable input). Format it tightly using Slack mrkdwn:

- Header line with today's date in ET and a quick summary count (e.g. 'Watchlist close: 12 tickers, 3 alerts').

- A compact table section with one line per ticker showing: ticker, close price, an up arrow (▲) or down arrow (▼) with the day change percent, day volume in shortened form (e.g. 12.4M), and the notes field if present.

- A separate 'Alerts' section listing only tickers whose close >= target_above or close <= target_below from the watchlist. For each alert, show ticker, close, which threshold it crossed, and the threshold value. Omit the section entirely if there are no alerts.

Keep the formatting tight (one row per ticker, no blank padding lines, no em dashes). Use periods or commas instead of em dashes anywhere in the message. The whole digest should fit comfortably without a 'See more' truncation in Slack.

Inputs I should be able to configure: the Google Sheets spreadsheet ID, the watchlist tab name (default 'watchlist'), the history tab name (default 'history'), the Slack channel (default '#markets'), the RapidAPI host for the finance API, and the cron timezone (default America/New_York).

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats