| Property | Value |
|---|
| Dataset code | D22 |
| Section code | S4 — Communications |
| Endpoint path | /exports/S4/D22 |
| Cursor field | updated_at |
| Page size | 1–1000 (default 500) |
| Availability | Phase 1 — generally available |
| Pagination | Via (variable page size — joined through a parent) |
Email and messaging conversation threads. Each row captures the platform, purpose, status, and delivery state of a thread. Message text and media (text, audio, image, video, document) are excluded.
Fields
| Field | Type | Description | Notes |
|---|
public_id | string | Stable unique identifier for this conversation row. Use as the primary key for warehouse upserts. Derived from the underlying Mongo _id. | Available as of v1.1 |
platform | string | Messaging/email platform the thread is on. | |
purpose | string | Business purpose of the conversation. | |
type | string | Conversation type. | |
by | string | Initiator/actor of the conversation. | |
operation | string | Operation associated with the thread. | |
status | string | Conversation status. | |
visibility | string | Visibility of the conversation. | |
delivery_status | object | Delivery state of the message. | See sub-fields below |
created_at | string | Row creation timestamp (ISO-8601). | |
updated_at | string | Last-modified timestamp (ISO-8601). | Cursor field |
delivery_status object
| Field | Type | Description |
|---|
status | string | Delivery status (e.g. delivered, bounced). |
code | string | null | Provider delivery/error code. |
error_detail | string | null | Human-readable detail when delivery failed. |
Sample row
{
"public_id": "664a1b2c3d4e5f6071829455",
"platform": "EMAIL",
"purpose": "REMINDER",
"type": "OUTBOUND",
"by": "SYSTEM",
"operation": "SEND",
"status": "SENT",
"visibility": "INTERNAL",
"delivery_status": {
"status": "DELIVERED",
"code": "250",
"error_detail": null
},
"created_at": "2026-05-17T06:18:44.220Z",
"updated_at": "2026-05-17T06:19:02.905Z"
}
This dataset is via — it is filtered to your tenant by joining through its parent (user_lender_detail_id → UserLenderDetails). 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.
Use cases
- Conversation thread volume analysis.
- Delivery / bounce monitoring across email and other platforms.
- Cross-channel customer engagement tracking.
Page size may be smaller than the requested limit on multi-tenant DBs. Rely on nextCursor: null to detect the end of data.