---
title: "Edit a call summary before it is pushed to the CRM"
method: PUT
path: "/api/call-events/{id}/summary"
tags: ["Call events"]
---

# Edit a call summary before it is pushed to the CRM

`PUT /api/call-events/{id}/summary`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/call-events/{id}/summary`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

Replaces the generated summary with the coach's own wording and pushes it. If the old text already reached the CRM, the push updates that same note instead of adding a second one.

**API key scopes:** `call_events:write`. You also need an `Idempotency-Key` header.

## Path parameters

- `id` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Request body

- CallSummaryUpdate
  - `summary` string, required

## Response `200`

ok

- CallEventResponse
  - `callEvent` object, required
    - `id` string, required
    - `leadId` string, required
    - `leadName` string, nullable, required
    - `leadChannel` string, nullable, required
    - `bookingId` string, nullable, required
    - `bookedAt` string, required
    - `scheduledAt` string, nullable, required
    - `completedAt` string, nullable, required
    - `outcome` 'completed' | 'no_show' | 'rescheduled' | 'cancelled' | 'null', nullable, required
    - `outcomeUpdatedAt` string, nullable, required
    - `coachRating` number, nullable, required
    - `coachNotes` string, nullable, required
    - `summary` string, nullable, required
    - `summarySource` 'auto' | 'coach_triggered' | 'coach_edited' | 'provider' | 'null', nullable, required
    - `summaryStatus` 'idle' | 'generating' | 'ready' | 'failed', required
    - `summaryStructured` object, nullable, required
      - `leadGoals` string[]
      - `keyObjections` string[]
      - `bookingTriggers` string[]
      - `riskFactors` string[]
      - `coachingRecommendation` string
      - `crmNote` string
    - `crmSynced` boolean, required
    - `crmSyncStatus` 'pending' | 'syncing' | 'local_only' | 'synced' | 'failed' | 'permanently_failed' | 'null', nullable, required
    - `crmSyncError` string, nullable, required
    - `crmPermanentlyFailed` boolean, required
    - `feedbackFields` object, nullable, required
      - `wasQualified` 'yes' | 'kinda' | 'no'
      - `surprise` string
      - `objectionHandlingAccurate` boolean
      - `followUpNeeded` boolean
      - `followUpNote` string
    - `callSequenceNumber` number, required
    - `createdAt` string, required

## Other responses

- `400`: validation failed
- `401`: unauthorized
- `404`: not found
- `409`: conflict
- `429`: rate limited
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
