---
title: "Undo an attendance outcome within the allowed window"
method: POST
path: "/api/call-events/{id}/undo-outcome"
tags: ["Call events"]
---

# Undo an attendance outcome within the allowed window

`POST /api/call-events/{id}/undo-outcome`

## Request

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

Clears a mistaken attendance mark and puts the call back in the queue. The window is 48 hours from when the outcome was set, not from the last edit, so summary and CRM writes can't quietly extend it. You'll get a 400 once it's passed.

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

## Path parameters

- `id` string, uuid, required

## Headers

- `x-luca-expected-outcome-updated-at` union
  - string, date-time
  - 'none'
- `Luca-API-Version` '1'

## 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)
