Skip to main content
Each row is an outcome our agents logged after attempting contact — PTP captured, RPC achieved, no-answer, busy, settled, and so on. The outcome_option field uses a controlled vocabulary. Structured outcome details (PTP date, amount, callback date) live in D24, which is not yet enabled.

Fields

Sample row

Pagination characteristics

This dataset is via — it is filtered to your tenant by joining through its parent (user_lender_detail_idUserLenderDetails). It is also very large (tens of millions of rows in shared tenant DBs), so on multi-tenant databases a single response may contain fewer rows than your limit even when more data exists. The cursor still advances correctly — keep paging until nextCursor is null. See Pagination → Variable page size.
Always pull D23 in time-windowed slices. Because of the dataset’s size, an unbounded request (no since/until) forces a scan across the entire collection and can exceed the API gateway timeout, returning a 504. To pull reliably:
  • Pass a since (and optionally until) window and walk forward in slices — for a full backfill, iterate month-by-month (or smaller for the busiest tenants).
  • Within each window, page with the cursor until nextCursor is null, then advance to the next window.
  • Consider a smaller limit (e.g. 200500) so each page does less work.
  • ?includeTotal=true requires a time window on this dataset — without one it returns totalNote: "window_required".

Use cases

  • Outcome-mix dashboards (PTP rate, RPC rate, refusal rate).
  • Agent productivity benchmarking.
  • Cohort-level reach/contact analytics.
Page size may be smaller than the requested limit on multi-tenant DBs. Rely on nextCursor: null to detect the end of data. Free-text notes, phone, and email are deliberately excluded.