> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clarionhealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# End of Sequence Report

> Receive notifications when an outreach sequence completes

## Overview

The End of Sequence Report webhook is triggered when an entire outreach sequence ends. This provides a comprehensive report of all outreach attempts made during the sequence, including call details and outcomes.

## Webhook Payload

When a sequence ends, Clarion sends a POST request to your configured webhook URL with the following payload:

<ParamField body="id" type="integer" required>
  The unique identifier for the sequence.
</ParamField>

<ParamField body="status" type="string" required>
  The status of the sequence (e.g., `ended`).
</ParamField>

<ParamField body="outcome_description" type="string">
  Optional human-readable description of the sequence outcome (e.g., from conversation evaluation). May be null.
</ParamField>

<ParamField body="last_updated" type="string" required>
  ISO 8601 timestamp when the sequence was last updated.
</ParamField>

<ParamField body="outreach" type="array" required>
  Array of outreach steps performed during the sequence.

  <Expandable title="Outreach step properties">
    <ParamField body="type" type="string" required>
      The type of outreach: `call | sms`
    </ParamField>

    <ParamField body="step" type="integer" required>
      The step number in the sequence.
    </ParamField>

    <ParamField body="call" type="object">
      The call details for this outreach step. See Call Object below for fields.
    </ParamField>

    <ParamField body="sms" type="object">
      The sms details for this outreach step. See SMS Object below for fields.
    </ParamField>
  </Expandable>
</ParamField>

### Call Object

Each call in the `outreach` array contains the following fields:

<ParamField body="id" type="integer" required>
  The unique identifier for the call.
</ParamField>

<ParamField body="assistant_id" type="integer" required>
  The ID of the assistant that handled the call.
</ParamField>

<ParamField body="started_at" type="string">
  ISO 8601 timestamp when the call started.
</ParamField>

<ParamField body="ended_at" type="string">
  ISO 8601 timestamp when the call ended.
</ParamField>

<ParamField body="call_status" type="string" required>
  The status of the call. Possible values: `queued`, `ringing`, `in-progress`, `forwarding`, `ended`.
</ParamField>

<ParamField body="duration_ms" type="integer">
  The duration of the call in milliseconds.
</ParamField>

<ParamField body="ended_reason" type="string">
  The reason why the call ended (e.g., `customer-ended`, `assistant-ended`).
</ParamField>

<ParamField body="transcript" type="string">
  Full conversation transcript with speaker labels (`AI:` and `User:`).
</ParamField>

<ParamField body="source_number" type="string">
  The phone number that initiated the call (E.164 format).
</ParamField>

<ParamField body="destination_number" type="string">
  The phone number that received the call (E.164 format).
</ParamField>

<ParamField body="call_type" type="string">
  The type of call (e.g., `outboundPhoneCall`, `inboundPhoneCall`).
</ParamField>

<ParamField body="analysis" type="object">
  Call analysis metrics and custom data extractions.

  <Expandable title="Analysis properties">
    <ParamField body="repetition_count" type="integer">
      Number of times the assistant had to repeat information.
    </ParamField>

    <ParamField body="interruption_count" type="integer">
      Number of times the conversation was interrupted.
    </ParamField>

    <ParamField body="custom" type="object">
      Custom analysis fields configured for your assistant.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="summary" type="string">
  AI-generated summary of the call.
</ParamField>

<ParamField body="outcome" type="string">
  The outcome of the call (e.g., `resolved`, `unresolved`, `voicemail`).
</ParamField>

<ParamField body="failure_reason" type="string">
  If the call was unsuccessful, this indicates the reason. Possible values: `declined`, `escalated`, `requested-callback`, `customer-dropped`, `assistant-ended`, `opt-out`.
</ParamField>

<ParamField body="voicemail_message" type="string">
  Content of voicemail message if one was left.
</ParamField>

### SMS Object

Each sms encounter in the `outreach` array contains the following fields:

<ParamField body="id" type="integer" required>
  The unique identifier for the SMS encounter.
</ParamField>

<ParamField body="assistant_id" type="integer" required>
  The ID of the assistant that handled this SMS encounter.
</ParamField>

<ParamField body="started_at" type="string">
  ISO 8601 timestamp when the SMS encounter started.
</ParamField>

<ParamField body="ended_at" type="string">
  ISO 8601 timestamp when the SMS encounter ended.
</ParamField>

<ParamField body="status" type="string" required>
  The status of the SMS encounter. Possible values: `active`, `paused`, `ended`.
</ParamField>

<ParamField body="ended_reason" type="string">
  The reason why the encounter ended. Possible values: `conversation-timeout`, `resolved`, `contact-declined`, `contact-opt-out`, `system-error`, `unknown`.
</ParamField>

<ParamField body="transcript" type="string">
  Full conversation transcript with speaker labels (`AI:` and `User:`).
</ParamField>

<ParamField body="source_number" type="string">
  The phone number that initiated the SMS encounter (E.164 format).
</ParamField>

<ParamField body="destination_number" type="string">
  The phone number that was the recipient of the SMS encounter (E.164 format).
</ParamField>

<ParamField body="analysis" type="object">
  SMS encounter custom data extractions.

  <Expandable title="Analysis properties">
    <ParamField body="custom" type="object">
      Custom analysis fields configured for your assistant.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="summary" type="string">
  AI-generated summary of the call.
</ParamField>
