Skip to content

Query conversation records

Request

Query the individual rows of a conversation-anchored record. Pagination travels in the request body: echo meta.next back as pagination.pageKey to fetch the following page. A column with no value is absent from the row, so key sets differ between rows. An empty period is an empty page, not a 404.

Security
ApiKeyAuth
Path
recordIdstringrequired

A conversation-anchored record id from List Records

Bodyapplication/jsonrequired

The record query: its primary anchor, any secondary filters, the timezone and a page request

primaryFilterConversationIdsPrimaryFilter (object) or ConversationPeriodPrimaryFilter (object)(ConversationPrimaryFilter)required
One of:

Anchors the query on specific conversations; no period predicate is applied at all

filtersArray of objects(SecondaryFilter)

Absent means no secondary filtering

timezonestringrequired

The zone the period is evaluated in; an invalid zone is rejected as a 400

paginationobject(PageRequest)

A request for one page of a paginated query; absent means the first page at the server's default size

includeLabelsboolean

Absent defaults to true; false drops every label but keeps the cell shape

POST
/beta/intelligence/conversations/records/{recordId}
curl -i -X POST \
  'https://dev.dixa.io/beta/intelligence/conversations/records/{recordId}' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "primaryFilter": {
      "period": {
        "interval": {
          "from": "2026-06-01T00:00:00Z",
          "to": "2026-07-01T00:00:00Z"
        }
      }
    },
    "filters": [
      {
        "attribute": "channel",
        "values": [
          "Email",
          "ContactForm"
        ],
        "operator": "IsOne"
      },
      {
        "attribute": "tag",
        "values": [
          "5e7a9c13-2f84-4b60-9d31-6c8a5e2f7b04",
          "b3c81f6d-7a95-4e28-8c40-1f6b9d3a5e72"
        ],
        "operator": "IsAll"
      }
    ],
    "timezone": "Europe/Copenhagen",
    "pagination": {
      "pageLimit": 50
    },
    "includeLabels": true
  }'

Responses

One page of rows, each a map from column name to cell value, plus the adjacent-page pageKeys

Bodyapplication/json
dataArray of objects

The page's rows, one object per record row, in the record's own order. Which columns a row can carry is listed under fields in the record's catalogue entry

metaobject(PageResponse)required

The adjacent pages' pageKeys and the page size that was applied

Response
One row per event. Columns with no value are absent from the row, so key sets differ per row
{ "data": [ { … }, { … } ], "meta": { "next": "eyJ0aW1lc3RhbXAiOiIyMDI2LTA2LTE4VDExOjAzOjI3LjQ4WiIsInNlY29uZGFyeUtleSI6IjgxMjM0ODEiLCJsaW1pdCI6NTAsImRpcmVjdGlvbiI6Im5leHQifQ", "pageLimit": 50 } }