How can we help you?

Exporting Reports and Transcripts as JSON

The Engagement report's Export panel, with JSON File selected alongside HTML, PDF, and Excel

Transcript Export

Open any individual chat transcript and click the export button. JSON File is one of the three export formats, alongside HTML and XML.

The JSON export carries the same fields as the XML export — visitor info, chat lines, survey results, and custom data — just serialized differently. If your process already parses the XML export, switching to JSON is a drop-in change, not a new integration.

Transcript JSON Structure

{
  "Id": "string",
  "EngagementType": 0,
  "SiteName": "string",
  "SiteID": 0,
  "GroupName": "string",
  "GroupID": 0,
  "Tier": 0,
  "IsAgentToAgent": false,
  "StartTime": "2026-01-01T00:00:00",
  "EndTime": "2026-01-01T00:00:00",
  "Answered": "2026-01-01T00:00:00",
  "Rejected": "2026-01-01T00:00:00",
  "Queued": "2026-01-01T00:00:00",
  "Transferred": "2026-01-01T00:00:00",
  "NumTransfers": 0,
  "PrechatSurvey": "2026-01-01T00:00:00",
  "PostchatSurvey": "2026-01-01T00:00:00",
  "HasConverted": false,
  "Rating": 0,
  "StartHour": 0,
  "Length": "string",
  "TotalSeconds": 0,
  "Visitor": {
    "Id": "string",
    "SessionID": "string",
    "AreaCode": 0,
    "BrowserType": "string",
    "City": "string",
    "Country": "string",
    "CountryCode": "string",
    "DNS": "string",
    "EmailAddress": "string",
    "GroupVisited": 0,
    "IsInvite": false,
    "ISP": "string",
    "Keywords": "string",
    "Latitude": 0,
    "Longitude": 0,
    "Location": "string",
    "Organization": "string",
    "PostalCode": "string",
    "ReferredBy": "string",
    "Region": "string",
    "URLReferrer": "string",
    "UserLevel": 0,
    "IsCreator": false,
    "IP": "string",
    "DisplayName": "string",
    "HeadshotUrl": "string",
    "WhenJoined": "2026-01-01T00:00:00",
    "WhenExited": "2026-01-01T00:00:00",
    "LastRetrievedText": "2026-01-01T00:00:00",
    "LastSentText": "2026-01-01T00:00:00",
    "LastTyped": "2026-01-01T00:00:00",
    "FirstVisit": "2026-01-01T00:00:00"
  },
  "LiveChatLines": [
    {
      "Id": 0,
      "DateCreated": "2026-01-01T00:00:00",
      "UserID": 0,
      "FromDisplay": "string",
      "LineType": 0,
      "LineCreator": 0,
      "LineVisibility": 0,
      "OwnerLevel": 0,
      "Text": "string",
      "Rating": 0,
      "PremadeID": 0
    }
  ],
  "SurveyResults": [
    {
      "Id": "string",
      "Question": "string",
      "Answer": "string",
      "SurveyType": 0
    }
  ],
  "CustomData": [
    {
      "Attribute": "string",
      "Value": "string"
    }
  ]
}

Id is the transcript/engagement ID — the field to key off of if you're tying a chat back to a record in your own CRM.

Visitor — one object with:

FieldNotes
Id, SessionIDVisitor and session identifiers
DisplayName, EmailAddressVisitor-provided identity info
IP, DNS, ISP, OrganizationNetwork info
City, Region, Country, CountryCode, PostalCode, AreaCode, Latitude, Longitude, LocationGeolocation
BrowserTypeVisitor's browser
Keywords, ReferredBy, URLReferrerHow the visitor arrived
GroupVisited, UserLevel, IsInvite, IsCreatorChat context
HeadshotUrlSet for agent-to-agent chats
WhenJoined, WhenExited, FirstVisit, LastRetrievedText, LastSentText, LastTypedTimestamps

LiveChatLines — array, one object per chat message:

FieldNotes
IdLine ID
DateCreatedTimestamp
UserIDSender's user ID (agent/bot) or 0 for the visitor
FromDisplaySender's display name
LineType, LineCreator, LineVisibilityWho sent it and how it's shown
OwnerLevelRole of the sender
TextThe message content
RatingLine-level rating, if applicable
PremadeIDCanned message ID, if the line came from one

SurveyResults — array, one object per pre-chat/post-chat survey answer:

FieldNotes
IdSurvey result ID
QuestionThe survey question text
AnswerThe visitor's answer
SurveyTypeWhich survey this came from (pre-chat, post-chat, etc.)

CustomData — array of key/value pairs for any custom visitor attributes captured on the chat:

FieldNotes
AttributeThe custom field name
ValueThe custom field value

Engagement Report

From Reports > Engagement > Export, JSON File is one of five export options, alongside HTML, PDF, XLSX, and XML. JSON is available on the Engagement report only — other report types keep their existing export options.

The JSON export includes exactly the same columns your account has enabled for that report — whatever you'd see in an XLSX export is what you'll get in JSON, just structured as an array of objects instead of a spreadsheet. Each object's keys are the same underlying field names shown below; your account's exact set can be narrower (if some columns are disabled) or include a few extra keys (enabled custom variables or survey questions specific to your account).

Engagement Report JSON Fields

JSON KeyColumn Label
GroupGroup
DateEngagementStartedStart Time
InitialQueueWaitTimeInitial Queue Wait Time
TransferredQueueWaitTimeTransferred Queue Wait Time
UserAgent
ChattedWithBotChatted With Bot
VisitorVisitor
VisitorEmailVisitor Email
ChatTimeChat Time
InitialResponseTimeInitial Response Time
ChatRequestedFromPageChat Requested From Page
ReferredByReferrer
IsMobileMobile
TotalEngagementTimeTotal Time
AgentEngagementTimeAgent Engagement Time
QueueResultResult
SiteSite
CityCity
CountryCountry
DateEngagementEndedEnd Time
EndedByAgentEnded by Agent
PostalCodePostal Code
RegionRegion
ISPISP
IPAddressIP Address
ResultedInConversionResulted in Conversion
SatisfactionLevelSatisfaction Level
SubmittedPostEngagementSurveySubmitted Post Engagement Survey
SubmittedPreEngagementSurveySubmitted Pre Engagement Survey
NumTransfersTransfers
NumberOfIdleAutoRouteTransfersIdle Transfers
NumChatTurnsChat Turns
NumBotTurnsBot Turns
NumAgentMessagesAgent Messages
NumVisitorMessagesVisitor Messages
NumBotMessagesBot Messages
EngagementClosedReasonEngagement Closed Reason
ClosedByClosed By
FromInvitationFrom Invitation
CreatedCRMRecordCreated CRM Record
CRMRecordTypeCRM Record
UtmContentUTM Content
UtmMediumUTM Medium
UtmCampaignUTM Campaign
UtmSourceUTM Source
UtmTermUTM Term

Note: for date ranges of 90 days or more, use the scheduled email export instead.

Why Use JSON

JSON is meant for pulling report or transcript data into your own scripts or integrations programmatically, rather than opening a file by hand. If you're building an automated process that needs the engagement ID or other transcript/report fields — for example, to reliably tie a chat back to a record in your own CRM — JSON gives you that data in a format that's easy to parse without any manual steps in between.

Share: Email

Was this article helpful?