Conversations
List conversations with filters
Return conversations matching any combination of filters: contactId, applicationId, userId, agentId (Prompt._id), channel, direction (works across all channels - voice via Call.direction, non-voice via latest message isIncoming), conversationState, conversationId, time range. Cursor-paginated by lastMessageTime. RBAC: SUPERADMIN sees all orgs, ADMIN/DEPT_HEAD/SALES_REP scoped per role. Also powers the ListConversationsAction workflow node.
Authorization
bearerAuth In: header
Query Parameters
A user id returns conversations that user is assigned to; the literal 'unassigned' returns conversations with no assignee (every one for SUPERADMIN and ADMIN; for scoped roles only those on lines the caller can read, and an empty list when they read none).
Value in
- "sms"
- "webchat"
- "email"
- "voice"
- "facebook"
Value in
- "inbound"
- "outbound"
Value in
- "resolved"
- "pending_agent_message"
- "pending_user_message"
- "pending_contact_message"
Inclusive lower bound (matched on lastMessageTime, falling back to createdAt). Full ISO 8601 datetime or date-only YYYY-MM-DD.
Inclusive upper bound. Full ISO 8601 datetime or date-only YYYY-MM-DD (extended to end-of-day UTC).
1 <= value <= 20050ISO timestamp from the previous page's nextCursor.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/conversation/list"{ "conversations": [ { "conversationId": "65d3e0f0a0b0c0d0e0f0a0b0", "contactId": "65c2d0e0f0a0b0c0d0e0f0a0", "organizationId": "65a1b0c0d0e0f0a0b0c0d0e0", "channelType": "sms", "isAutopilot": true, "isResolved": false, "lastMessageTime": "2026-05-18T13:45:00.000Z", "createdAt": "2026-05-18T13:00:00.000Z", "updatedAt": "2026-05-18T13:45:00.000Z" } ], "hasMore": false, "nextCursor": null}