Daily litigation watchlist sweep from Airtable to Slack

By General Input

Every morning, check your Airtable watchlist for new court filings on the organizations and people you track, log the hits, and post a prioritized Slack digest.

Integrations

  • CourtListener
  • Airtable
  • Slack Bot

Type

Agentic Task

Categories

  • Operations

Build an agent workflow that runs every weekday morning at 8am ET and produces one Slack digest of yesterday's court activity for the people and organizations on my litigation watchlist.

Source of truth is Airtable. I have a base with a Watchlist table whose rows hold a name (organization or individual), an optional party type (organization or person), and an optional jurisdiction filter (a court name or jurisdiction code). Each watchlist row is linked to a Hits table that records past activity. The agent should ask me once for the base id, the Watchlist table id, the Hits table id, and the Slack channel to post to, then store those for future runs.

On each run, the agent should:

1. Use Airtable List Records to pull every row from the Watchlist table.

2. For each watchlist entry, use the CourtListener Search operation across dockets and RECAP filings, scoped to the entry's name (and jurisdiction filter if present), filtered to filings from the last 24 hours via date_filed. Use the same query language as the CourtListener website.

3. For every docket that matches, call CourtListener List Docket Entries to pull the actual new filings from yesterday and capture docket number, court, filing date, filing type (e.g. complaint, motion, order, opinion), and the entry's short description.

4. For each new filing, append a row to that entity's linked Hits table in Airtable via Create Records, with columns for docket number, court, filing date, filing type, a one-line summary the agent writes, and a link to the docket on CourtListener. Batch creates (Airtable accepts up to 10 records per call) and dedupe against existing Hits rows so a filing is never logged twice.

5. Summarize what changed per entity in plain English: did a new case open, was a motion filed, did a judge issue a ruling. The agent should use judgment to separate material updates (new cases, rulings, dispositive motions) from procedural noise (routine scheduling orders, certificates of service).

6. Post a single Slack digest to the configured channel via the Slack Bot Send a Message operation. Lead with the most material updates as bold bullets calling out the entity, the court, and what happened. Collapse minor procedural activity under an "Other activity" bullet list at the bottom. If nothing material happened, say so in one line rather than skipping the post.

Use Slack mrkdwn formatting (asterisks for bold, angle-bracket links). Keep the digest short enough to read on a phone. If a watchlist row has no hits for the day, do not mention it. If CourtListener returns nothing for any row, still post a one-line "No new activity today" message so the team knows the sweep ran.

This is agent-shaped because the judgment call about which filings are material vs procedural noise is the whole point — a flat data dump would be useless to the legal team.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them