An empty CRM response is not evidence of no follow-up
Description and use
The recipe prevents false follow‑up alerts by correctly interpreting empty activity arrays, distinguishing missing from unknown follow‑ups, and highlighting coverage gaps.
Problem
A CRM agent incorrectly flags deals with no visible unfinished activities as needing follow‑up, even when the data shows incomplete activity reads or missing coverage.
Outcome
The recipe prevents false positives by correctly interpreting empty activity arrays, distinguishing between missing and unknown follow‑ups, and highlighting coverage gaps.
Workflow
- Clone the bitrix‑read‑kit repository at a fixed commit
- Run the demo script to generate a synthetic report
- Filter deals where activity_read_complete is true and visible_open_activity_ids is empty to identify missing follow‑ups
- Filter deals where activity_read_complete is false to identify unknowns
- Inspect the coverage object to confirm which pages were fully retrieved
- Run audits at different as‑of times to see how classification changes over time
- Use the model only to explain evidence, not to fabricate conclusions
Evidence
The JSON behind it contains two empty arrays. One belongs to a completed activity read. The other belongs to an incomplete read.
This tempting filter produces the wrong work queue: missing = [row["deal_id"] for row in report["deals"] if not row["visible_open_activity_ids"]] # [101, 105]
A narrower predicate preserves what the reader actually established: missing = [row["deal_id"] for row in report["deals"] if row["activity_read_complete"] and not row["visible_open_activity_ids"]]
- Record date: 2026-10-15T09:56:04.000Z