Sync CourtListener docket activity to Notion every hour

Mirror new filings, orders, and motions from every case you track into a Notion case tracker, hands free.

Deterministic Code
CourtListenerNotionOperationsData SyncResearch & Monitoring
PromptCreate

Every hour on the hour, mirror new CourtListener docket activity into our Notion "Case Tracker" database. This is a deterministic feed-to-database sync with no summarization or AI judgement: I just want the court record copied into Notion exactly once per filing.

At the top of the workflow, expose the configuration as workflow variables so I can edit them without changing code:

1) A list of CourtListener docket IDs to track. 2) The Notion database ID of the Case Tracker database. 3) A per-docket watermark variable storing the date_created of the most recent docket entry we have already synced for that docket. Default each watermark to empty so the first run can backfill or pick a sensible starting date.

Trigger: cron, every hour on the hour.

For each tracked docket ID, run this sequence:

Step 1: Call CourtListener Get Docket for that docket ID to fetch case metadata. Hold onto case_name, docket_number, court, and absolute_url. We will reuse them on every Notion row for this docket.

Step 2: Call CourtListener List Docket Entries scoped to that docket, ordered by -date_filed, and filtered so date_created is strictly greater than the saved watermark for this docket. Paginate until there are no more results. Collect the new entries in chronological order (oldest new entry first) so we write them into Notion in the order they were filed.

Step 3: For each new docket entry, call Notion Create a Page as a child of the Case Tracker database, with these properties: Case Name (title) = case_name from Get Docket; Docket Number (rich_text) = docket_number; Court (rich_text) = court; Entry Date (date) = date_filed; Entry Number (number) = entry_number; Document Description (rich_text) = description; CourtListener URL (url) = https://www.courtlistener.com plus the docket's absolute_url. Skip rows where required fields are missing rather than failing the run.

Step 4: After all new entries for that docket have been written to Notion successfully, update the per-docket watermark workflow variable to the date_created of the newest entry processed. If any Notion write failed for a given entry, do not advance the watermark past that entry, so the next run retries it. This keeps the sync idempotent and prevents duplicate rows.

Respect CourtListener rate limits: pace requests so we stay under 5 per minute, and if a 429 comes back, honor the Retry-After header before continuing.

Additional information

What does this prompt do?
  • Watches a fixed list of CourtListener dockets you care about and checks them every hour.
  • Adds a new row to your Notion case tracker for each new filing, with case name, docket number, court, entry date, and a link back to the docket.
  • Remembers what it has already synced, so the same filing never lands twice.
  • Runs as a deterministic pipeline, so there is no AI guesswork between the court record and your database.
What do I need to use this?
  • A CourtListener account so we can read docket activity on your behalf.
  • A Notion workspace with a Case Tracker database shared with your General Input connection.
  • The list of CourtListener docket IDs you want to track.
How can I customize it?
  • Change the check cadence from hourly to a different schedule, like every 15 minutes or once a day.
  • Add or remove docket IDs from the tracked list as your caseload changes.
  • Tweak which properties land in Notion, for example adding a Status column or a link to the underlying document.

Frequently asked questions

Will the same filing show up twice in Notion?
No. The workflow keeps a per-docket watermark of the last filing it synced, so each new run only picks up entries added since the previous run.
Do I need a paid CourtListener account?
A free account works for getting started. If you track many dockets or want to poll faster than hourly, CourtListener offers higher rate limits for paid plans and approved research projects.
Can I track state court cases too?
Yes. Any docket that appears in CourtListener, including federal and state court cases sourced through PACER and RECAP, can be added to the tracked list.
How do I add a new case to track?
Open the workflow, find the list of docket IDs at the top, and add the new CourtListener docket ID. The next hourly run will start mirroring its filings.
Does this pull the actual filed documents?
Each Notion row includes the docket entry's description and a link back to CourtListener, where you can open the underlying document. The workflow itself does not download or summarize the PDFs.

Stop manually checking court dockets every morning.

Connect CourtListener and Notion once, and let Geni keep your case tracker current every hour.