> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt.

# Logs

> Access detailed logs for calls, chats, API requests, and webhook interactions in one centralized location.

![Logs page in the Synthflow dashboard](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/9e41f5fa7d8e5db7e7f3efc2624cca68da53d05b69a0a7db35ee0411471f6dda/docs/assets/screenshots/logs_0.png)

Synthflow provides a unified logging system that gives you complete visibility into all your agent operations. Open the **Logs** page in your Synthflow dashboard to access four log types in one centralized place:

* **[Call logs](#call-logs)**: Complete call history with transcripts and metadata
* **[Chat logs](#chat-logs)**: Conversation history for chat agents across API, widget, WhatsApp, and SMS
* **[API logs](#api-logs)**: Audit trail of all API requests triggered by your agents
* **[Webhook logs](#webhook-logs)**: Webhook interactions and delivery status

## Call logs

![Call details drawer with overview, transcript, and actions](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/a640365dc5075554f050a1e861d3c7ac56d13fa9c4851061e4bf3b11d3c818c4/docs/assets/screenshots/logs_1.png)

Call logs give you full visibility into every call your agents handle. Beyond the dashboard, you can [export call logs to CSV](/export-call-data) for reporting or consume the same data programmatically through the [post-call webhook](/webhooks), which also documents the full list of statuses and end-call reasons.

Click on any call log to view detailed information in the call details drawer, organized into four tabs:

<Tabs>
  <Tab title="Overview">
    The **Overview** page shows the call's status, timing, and agent-related information:

    * **Status**: The call's [current state or outcome](/webhooks#call-status-options) (e.g. Completed, Failed, No Answer)
    * **Deployment**: Channel that handled the call (e.g. Telephony)
    * **Telephony Type**: Specific telephony entry point used (e.g. Widget, Phone)
    * **End call reason**: [Why the call ended](/webhooks#end-call-reason-options), when applicable
    * **Date**: Date the call occurred
    * **Started**: Timestamp when the call began
    * **Ended**: Timestamp when the call ended
    * **Duration**: Total call duration
    * **Agent**: Name of the agent that handled the call
    * **Agent ID**: Unique identifier of the agent
    * **Agent Version**: [Version](/version-control) of the agent configuration used
    * **Contact**: Contact identifier or number
    * **Contact Name**: Resolved name for the contact (or `Unknown Contact`)
    * **Labels**: Any custom labels assigned to the call

    <Note>
      The **Duration** shown in the call log reflects the total call duration, which includes all phases of the call such as PBX delay, ringing time, and conversation time. The **Recording**, however, only captures the conversation portion of the call. This means the recording duration will often be shorter than the total duration displayed in the log.

      For example, a call with a logged duration of 18 seconds may include a PBX delay (e.g., \~4 seconds), ringing (e.g., \~7 seconds), and actual conversation (e.g., \~7 seconds). In this case, the recording would only be 7 seconds long since it starts when the conversation begins.
    </Note>
  </Tab>

  <Tab title="Transcript">
    The **Recording** section plays the call's audio. Use the thumbs up or thumbs down buttons to rate the call and help fine-tune your agent.

    The **Transcript** section shows the conversation in chronological order:

    * **Call started** marker with the call's start timestamp
    * Speaker-labeled turns with the agent name and `Customer`
    * Timestamps on every turn
    * Inline markers for [actions](/actions-overview) and [knowledge base](/create-a-knowledge-base) lookups

    You can opt out of saving recordings, transcripts, and other sensitive data from the agent's [Security & Compliance](/security-and-compliance) settings.
  </Tab>

  <Tab title="Actions">
    The **Actions** tab lists everything that ran during the call, including [actions](/actions-overview) and [knowledge base](/create-a-knowledge-base) lookups. For each entry you typically see a name, timestamp, status, and expandable request/response details.

    * **Action name**: The custom action or knowledge base operation (for example a search titled like your knowledge base)
    * **Action ID**: Unique identifier for tracking (where shown)
    * **Timestamp**: When the action ran
    * **Status**: Success or failure
    * **Parameters / Request**: Inputs sent for that step
    * **Response / Return value**: Data returned

    For action-related API traffic, jump to the matching entry in [API logs](#api-logs) using the Call ID link.
  </Tab>

  <Tab title="Telephony">
    The **Telephony** tab opens the [SIP call ladder](/sip-call-ladder), a visual diagram of the SIP signaling flow for the call. Use it to inspect message exchanges (INVITE, 200 OK, BYE), debug connectivity issues, and download the [PCAP file](/sip-call-ladder#downloading-pcap-files) for deeper analysis in Wireshark.
  </Tab>
</Tabs>

## Chat logs

![Chat details drawer with overview, transcript, and actions](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/b8950a25d14776d43c933e1ef25348a3194ebf17161dc6a433c1fd0f3718c22c/docs/assets/screenshots/logs_5.png)

Chat logs give you full visibility into every chat conversation your agents handle. Conversations are recorded when end users interact with a [chat agent](/launch-chat-agents) over API, widget, WhatsApp, or SMS, and when you [test an agent with chat](/test-your-agent#chat) from the agent editor. You can also consume the same data programmatically through the [post-conversation webhook](/launch-chat-agents#post-conversation-webhook).

Click on any chat log to view detailed information in the chat details drawer, organized into three tabs:

<Tabs>
  <Tab title="Overview">
    The **Overview** page shows the chat's status, timing, and agent-related information:

    * **Status**: The chat's [current state](/launch-chat-agents#post-conversation-webhook) (e.g. `In Progress`, `Completed`)
    * **End reason**: [Why the conversation ended](/launch-chat-agents#post-conversation-webhook), when applicable (e.g. `completed`, `inactivity_timeout`)
    * **Date**: Date the conversation started
    * **Started**: Timestamp when the first message was sent
    * **Ended**: Timestamp when the conversation ended
    * **Duration**: Total elapsed time
    * **Agent**: Name of the chat agent that handled the conversation
    * **Agent ID**: Unique identifier of the agent
    * **Agent Version**: [Version](/version-control) of the agent configuration used
  </Tab>

  <Tab title="Transcript">
    The **Transcript** section shows the conversation in chronological order:

    * **Call Started** marker with the conversation's start timestamp
    * Speaker-labeled turns with the agent name (for example, `AI Agent`) and `User`
    * Timestamps on every turn
    * A **Show events** toggle to display inline [actions](/actions-overview) and [knowledge base](/create-a-knowledge-base) events alongside messages

    You can opt out of saving transcripts and other sensitive data from the agent's [Security & Compliance](/security-and-compliance) settings.
  </Tab>

  <Tab title="Actions">
    The **Actions** tab lists everything the chat agent ran during the conversation, including [actions](/actions-overview), [knowledge base](/create-a-knowledge-base) lookups, and variables collected.

    For each entry you typically see a name, timestamp, status, and expandable request/response details.
  </Tab>
</Tabs>

## API logs

![API logs table with method, status, and call ID columns](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/ff020c814d637a73792ee6b06081e01719659f14c88fa2cf634f34d005dc7493/docs/assets/screenshots/logs_3.png)

API logs track every outbound API request your agents make during calls and chats, including [custom actions](/about-custom-actions#create-and-configure-a-custom-action) and other integrations. Each entry links back to the [Call logs](#call-logs) entry that triggered it.

Click on any API log to inspect the request and response, organized into two tabs:

<Tabs>
  <Tab title="Request">
    The **Details** block shows the agent and call context behind the request:

    * **Agent**: Name of the agent that triggered the request
    * **Agent ID**: Unique identifier of the agent
    * **Agent Version**: [Version](/version-control) of the agent configuration used
    * **Trace ID**: Correlation ID used to connect related logs across services. Share it with support when investigating issues.
    * **Call ID**: Identifier of the phone call or session that triggered the request. Use it to jump to the matching entry in [Call logs](#call-logs).
    * **Date**: Date the request was made
    * **Started**: Timestamp when the request was issued
    * **Finished**: Timestamp when the response was received
    * **Time During Call**: Time elapsed in the call when the request fired
  </Tab>

  <Tab title="Response">
    The **Details** block summarizes response sizing and timing:

    * **Headers Size**: Size of the response headers
    * **Body Size**: Size of the response body
    * **Total Response Size**: Combined size of headers and body
    * **Time to First Byte (TTFB)**: Time from request to first byte of response
    * **Total Duration**: Total time to complete the request
  </Tab>
</Tabs>

## Webhook logs

![Webhook logs table with delivery status and response time](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/11bd490ffb0dbe0bbc8e2a5787153c81835de1e1b112bb532d08687f500ec987/docs/assets/screenshots/logs_4.png)

Webhook logs track every webhook delivery to and from your workspace, including [inbound webhooks](/inbound-webhook-api), [post-call webhooks](/webhooks), and custom integrations. Each entry links back to the [Call logs](#call-logs) entry that triggered it. Click on any webhook log to inspect the request and response, organized into two tabs:

<Tabs>
  <Tab title="Request">
    The **Details** block shows the agent, call context, and webhook category:

    * **Agent**: Name of the agent that triggered the webhook
    * **Agent ID**: Unique identifier of the agent
    * **Agent Version**: [Version](/version-control) of the agent configuration used
    * **Trace ID**: Correlation ID used to connect related logs across services. Share it with support when investigating issues.
    * **Call ID**: Identifier of the phone call or session that triggered the webhook. Use it to jump to the matching entry in [Call logs](#call-logs).
    * **Type**: Webhook category (e.g. `External`, `Inbound`, `Custom Action`)
    * **Date**: Date the webhook was triggered
    * **Started**: Timestamp when the request was issued
    * **Finished**: Timestamp when the response was received
    * **Duration**: Total time the webhook took to complete
  </Tab>

  <Tab title="Response">
    The **Details** block summarizes the response:

    * **Status Code**: HTTP response status code received from the endpoint
    * **Size**: Size of the response payload
  </Tab>
</Tabs>

## Best practices

* **Always filter by date range** when querying logs. Large log volumes are slower to load without a time filter.
* **Search by identifier** (Call ID, Action ID, Agent name) rather than freeform keywords for faster, more accurate results.
* **Export in chunks** by applying filters and date ranges before exporting, and run exports regularly if you need to keep records beyond your plan's retention window.
* **Review API and webhook logs proactively** for failed requests, unusual response times, recurring error patterns, and webhook delivery failures that may indicate endpoint or integration issues.

## API access

Call, API, and webhook logs are also available programmatically. See the [API reference](/api-reference/platform-api/webhook-logs/list-webhook-logs) for the full set of endpoints and parameters. Chat logs are not yet available via the API.

## FAQ

<AccordionGroup>
  <Accordion title="Where do I find logs for a specific agent?">
    From the **Logs** page, use the **Agents** filter to scope every log type (calls, chats, API, webhook) to a specific agent.
  </Accordion>

  <Accordion title="Why is the recording shorter than the call duration?">
    The **Duration** field includes PBX delay, ringing, and conversation time, while the recording only captures the conversation portion. A logged duration of 18 seconds can correspond to a 7-second recording if there were 4 seconds of PBX delay and 7 seconds of ringing.
  </Accordion>

  <Accordion title="How do I trace a custom action that failed during a call?">
    Open the call from [Call logs](#call-logs), switch to the **Actions** tab to find the failed step, then jump to [API logs](#api-logs) using the linked Call ID to inspect the request, response, and retry history.
  </Accordion>

  <Accordion title="How long are logs retained?">
    Retention depends on your plan. Export logs regularly using the **Export** button (call logs) or the [API reference](/api-reference/platform-api/webhook-logs/list-webhook-logs) if you need historical records beyond your plan's retention window.
  </Accordion>
</AccordionGroup>