Chat History shows every text conversation handled by your chat agents. It has two tabs: Chats for conversations started through the chat API or the website widget, and SMS for text message threads on your phone numbers.
Open it from DATA > Chat History. Voice calls are in Call history.
Chats tab#
The All channels selector filters by channel: API (create-chat and create-chat-completion) or Website widget (the hosted widget). The list refreshes every 10 seconds.
| Column | Content |
|---|---|
| Started | start_timestamp |
| Agent | Chat agent name |
| Channel | api or widget |
| Messages | Number of agent and user messages |
| Status | ongoing or ended |
| Outcome | Successful or Unsuccessful, from post-chat analysis |
| Summary | chat_analysis.chat_summary |
Chat drawer#
Click a row to open the drawer. It shows the chat ID, status, channel, agent, start time and cost (chat_cost.combined_cost), then:
- Post-chat analysis: the summary, a Successful or Unsuccessful badge, the user sentiment, and one badge per custom analysis field. While analysis runs after the chat ends you see "Analysing...".
- The messages, with tool calls shown as
Function: <name>and flow node moves asMoved to <node>. - End chat for chats that are still ongoing.
The drawer refreshes every 3 seconds until the chat has ended and has its analysis.
Post-chat analysis#
When a chat ends, Tried runs the same analysis engine as for calls, using the chat agent's post_chat_analysis_data fields and post_chat_analysis_model (default gpt-5.6-terra). The chat agent's analysis_summary_prompt and analysis_successful_prompt are applied. The result is stored as chat_analysis:
| Field | Type | Description |
|---|---|---|
chat_summary |
string | Summary of the chat. |
chat_successful |
boolean | Whether the agent achieved the goal. |
user_sentiment |
Positive | Negative | Neutral | Unknown |
User sentiment. |
custom_analysis_data |
object | Your custom fields by name. |
Chats have no in_voicemail. Field types and options are the same as for calls: see Define extraction fields.
Chats end when you call end-chat, click End chat, or after the chat agent's end_chat_after_silence_ms of inactivity (default one hour).
Chat webhooks#
Chat agents send chat_started, chat_ended and chat_analyzed to the chat agent's webhook_url, or to the workspace webhook when it is not set. The payload is { "event": "...", "chat": { ... } }. Limit which events are sent with the chat agent's webhook_events.
Re-run chat analysis#
POST /rerun-chat-analysis/:chat_id runs the analysis again on an ended chat with the chat agent's current settings and sends chat_analyzed again. It returns 400 for a chat that is still ongoing.
SMS tab#
The SMS tab lists text threads between your numbers and customers.
| Column | Content |
|---|---|
| Customer | The customer's number |
| From | Your number |
| Messages | Message count |
| Last message | Time of the latest message |
| Status | Thread status |
Start SMS conversation opens a form with From number, Customer number and Agent; Send opening message sends the agent's first text. Click a thread to read it. The thread view also has a box to reply as the customer (POST /sms-chats/:id/simulate-inbound), so you can test a thread with mock providers, which have no inbound SMS.
Needs keys Real SMS needs a telephony provider (Telnyx or Twilio) with messaging on the number.
API equivalents#
| Task | Endpoint |
|---|---|
| List chats | GET /list-chats with optional chat_agent_id, status (ongoing or ended), channel and limit (1 to 1000, default 200) |
| Get a chat | GET /get-chat/:id |
| End a chat | PATCH /end-chat/:id (also POST) |
| Update metadata or variables | PATCH /update-chat/:chat_id |
| Delete a chat | DELETE /delete-chat/:chat_id |
| Re-run analysis | POST /rerun-chat-analysis/:chat_id |
| List SMS threads | GET /list-sms-chats |