---
title: "Get Previous Engaged Call"
method: GET
path: "/sessions/{session_id}/previous-engaged-call"
tags: ["calls"]
---

# Get Previous Engaged Call

`GET /sessions/{session_id}/previous-engaged-call`

## Request

- Base URL: `https://dev.whispa.net` (the document declares no server; this is the origin it was published from)
- URL: `https://dev.whispa.net/sessions/{session_id}/previous-engaged-call`
- Auth: one of:
  - OAuth 2
    - Password
    - Token URL: `auth/bearer/login`
  - API key in cookie `access_token`

Latest relevant prior call summary (and recent-attempt count) for the
live session's phone number. Always 200; empty response when the anchor
session is not a live external call or the number is unknown.

## Path parameters

- `session_id` string, uuid, required

## Response `200`

Successful Response

- PreviousEngagedCallResponse: Previous-contact lookup for a live session (always 200; empty is normal).
  - `phone` string, nullable: Canonical E.164 the lookup ran on; null when the anchor session has no normalizable customer number (withheld/unknown).
  - `pending` boolean: A newer prior call to this number is still finalizing — the client should refetch briefly (bounded), the answer may improve.
  - `call` PreviousEngagedCall: The most recent relevant prior conversation with a phone number. The public name is retained for API compatibility; eligible outcomes also include refused, wrong-person, callback-requested, and escalated calls.
    - `call_id` string, uuid, required
    - `started_at` string, date-time, required
    - `duration_seconds` integer, nullable
    - `call_direction` 'incoming' | 'outgoing' | 'internal': Direction of the call. - INCOMING: Customer called agent - OUTGOING: Agent called customer - INTERNAL: Extension-to-extension call
    - `call_mode` 'training' | 'production' | 'ai_agent', required: Call mode enumeration.
    - `conversation_outcome` 'engaged' | 'refused' | 'wrong_person' | 'other', required: AI-classified judgement of what kind of conversation occurred. Only applicable when answered_by=HUMAN. Runtime actions such as scheduling a callback or transferring the caller are recorded independently in ``WorkflowDisposition`` and must never overwrite this judgement.
    - `commitment_shape` 'new_arrangement' | 'immediate_payment' | 'settlement' | 'arrangement_repair' | 'promise_reset' | 'deferral' | 'refused' | 'other': Taxonomy of commitment outcomes extracted from a collections call.
    - `summary_markdown` string, required
    - `can_view_detail` boolean, required: Whether the requester may open /calls/{call_id}. The summary is deliberately shared across agents; the full call detail stays owner-or-admin, so the UI must gate its deep link on this.
  - `recent_call_count` integer: Prior conversations (transfer legs collapsed) with this number in the recent window before this call, any outcome.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/whispa/apis/whispa-api.md) - [All operations](https://skmtc.dev/whispa/apis/whispa-api/llms.txt) - [OpenAPI document](https://skmtc.dev/whispa/apis/whispa-api/revisions/12c2e4aca43c?raw)
