CRM
Per-user, per-day activity counts with previous-period totals
Human actions only, attributed to the actor (never the record owner). previousTotals covers the equal-length period immediately before from. Ratios (connect rate, show rate, win rate) are client-side divisions.
Authorization
Query parameters
frominteger | nullInclusive start of the range (epoch ms).
tointeger | nullExclusive end of the range (epoch ms).
userIdstringOmit = the caller's own metrics. team = one entry per workspace member (owner/admin only). A member id = that member (owner/admin only).
tzstringIANA zone the day buckets are cut in (default America/New_York).
listIdstringScope every metric to that list's members and vocabulary. A 1-element alias for listIds — do not pass both.
listIdsstringCSV of list ids to scope to (union, not intersection — a record that's a member of more than one selected list is still counted once in every distinct-record metric and once per day-bucket). A list id the caller can't see is silently dropped, not an error. Do not pass alongside listId.
Responses
200objectThe activity report.Show attributesHide attributes
dataobjectrequiredShow child attributesHide child attributes
fromnumberrequiredtonumberrequiredusersobject[]requiredShow child attributesHide child attributes
daysobject[]requiredAscending by date; all-zero days omitted (fill gaps client-side).
previousTotalsobjectrequiredrecordsContactedintegerrequiredDistinct records with ≥1 outreach touch in the period. Totals-only — never per day (distincts don't sum).
totalsobjectrequireduserIdstringrequired400objectValidation error401objectUnauthorized403objectForbidden (authenticated, but missing required context — e.g. no active organization)404objectNot found413objectResponse payload too large — detail endpoint capped to fit Lambda response limits503objectSearch timed out or the cluster is overloaded — retry after `Retry-After` seconds.