See llms.txt for all machine-readable content.

Back to Templates

Monitor PyPI releases and downloads with Apify, OpenAI, Google Sheets, Slack, and Gmail

Quick Overview

This workflow monitors selected PyPI packages by running an Apify actor to collect release and download activity, scores each update with OpenAI, stores results in Google Sheets, and sends Slack approval alerts for high-priority items plus Gmail digests and a weekly email report.

How it works

  1. Runs on a daily schedule (or manually), and also runs a separate weekly schedule to produce a 7-day report.
  2. On daily runs, starts an Apify actor run to fetch PyPI package release and download stats, then waits and polls the Apify API until the run succeeds or fails.
  3. Downloads the Apify dataset results, removes invalid entries, and deduplicates already-seen package/version pairs using persisted workflow memory.
  4. Calculates a rule-based activity score per package and uses OpenAI (via an LLM chain with structured JSON output) to produce a fit score, verdict, summary, and red flags, then blends rule and AI scores into a final tier.
  5. Upserts each scored record into Google Sheets keyed by package@version, then routes hot items to Slack for approve/dismiss review, warm items to a Gmail HTML digest, and keeps cold items in the sheet only.
  6. For hot Slack reviews, writes the approval decision back to Google Sheets, and on the weekly schedule, reads the sheet to email a 7-day summary report via Gmail.
  7. If any execution fails, formats the error details and posts an alert message to a Slack channel.

Setup

  1. Add an Apify API token as an HTTP Header Auth credential (Authorization: Bearer <token>) and select it on the Apify HTTP Request nodes.
  2. Connect your OpenAI credential (or replace the chat model node with another provider) and keep the model selection updated.
  3. Connect Google Sheets OAuth credentials, create a sheet tab with the expected columns, and set the Google Sheet ID and tab name in the Config node.
  4. Connect Slack OAuth credentials, set the Slack channel ID in Config (and in the error-alert Slack node), and ensure the channel allows interactive approve/dismiss messages.
  5. Connect Gmail OAuth credentials and set the digest recipient email address in Config.
  6. Update the package list, scoring thresholds, AI criteria, and schedules in Config to match what you want to monitor.