Ferndesk

Assistant conversations

Get a conversation transcript

Returns a conversation with its plain-text transcript and the articles it referenced.

The transcript is user/assistant text only: tool calls, reasoning, internal metadata fences, escalation drafts, and sentiment are never exposed. Requires the conversations:read scope.

Required scope: conversations:read

GET /assistant/conversations/{id}

Get a conversation transcript

curl --request GET \
  --url 'https://api.ferndesk.com/v1/assistant/conversations/{ID}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "id": "<string>",
  "createdAt": "<string>",
  "updatedAt": "<string>",
  "status": "<string>",
  "source": "help",
  "pageUrl": "<string>",
  "user": {
    "id": "<string>",
    "name": "<string>"
  },
  "summary": "<string>",
  "coverage": "covered",
  "feedback": "positive",
  "escalated": true,
  "messageCount": 1
}

Conversation transcript

Authorizations

  • Authorization string required header

    All requests require a Bearer token in the Authorization header. API keys are prefixed with fdsk_ and should be kept secret. You can generate and manage keys from the Developer settings page.

    Keys can be restricted to any subset of these scopes (each endpoint lists the scope it requires via x-required-scopes):

    • content:read: Read and search help center articles, collections, sections, and translations
    • content:write: Create and edit article drafts, users, tasks; move articles and collections
    • content:publish: Publish, unpublish, restore, and trash content (make changes live)
    • analytics:read: Read help center reporting, analytics, and article feedback
    • conversations:read: Read AI assistant conversations and transcripts
    • webhooks:manage: Create and manage outbound webhook subscriptions

    Granting content:write or content:publish implies content:read. Keys minted before scoping have null scopes = full access (legacy mode).

Path Parameters

  • id string required

    Resource ID for the requested entity. Example: art_01JXY9AZK4KV

Response

application/json
  • id string
  • createdAt string

    ISO 8601 timestamp in UTC.

  • updatedAt string

    ISO 8601 timestamp in UTC.

  • status string

    Conversation lifecycle status.

  • source string enum | null

    Where the conversation originated: the help center (help) or the embedded widget (widget).

  • pageUrl string | null

    The page the end user was on when the conversation started, if captured.

  • user anyOf

    The identified help center user for this conversation, or null when the end user was anonymous.

    + Show Child Attributes
    • anyOf options 2 variants anyOf

      One or more options can apply.

      + Show Child Attributes
      • option 1 object
        + Show Child Attributes
        • id string

          Ferndesk help center user ID (hcusr_...).

        • name string | null

          Help center user display name.

      • option 2 null
  • summary string | null

    AI-generated one-line summary, if available.

  • coverage string enum | null

    How well the help center covered the question.

  • feedback string enum | null

    End-user thumbs feedback on the conversation, or null if none was left.

  • escalated boolean

    Whether the conversation was escalated to a human.

  • messageCount integer

    Number of end-user messages in the conversation.

  • transcript[] object array

    Plain-text transcript. User and assistant turns only; tool calls, reasoning, internal metadata, and empty turns are excluded. A conversation transcript turn.

    + Show Child Attributes
    • role string enum enum

      Allowed values: user, assistant.

    • text string

      Plain-text message content (metadata fences stripped, tool calls and reasoning dropped).

  • references[] object array

    Articles the assistant cited across the conversation. An article the assistant referenced in the conversation.

    + Show Child Attributes
    • articleId string

      Ferndesk article ID (art_...).

    • title string

      Article title at the time of the reference (falls back to current title).