---
title: "Promote Smartadvocate Intake Draft"
method: POST
path: "/smartadvocate/intake-draft/{smartadvocate_intake_draft_id}/promote"
tags: ["SmartAdvocate"]
---

# Promote Smartadvocate Intake Draft

`POST /smartadvocate/intake-draft/{smartadvocate_intake_draft_id}/promote`

Promote a draft intake: create the contact and case in SmartAdvocate.

Uses the (user-edited) fields from the request. Dedup is re-checked at
promote time (the draft's snapshot may be stale):

- If the caller's phone matches an existing synced SA contact, only the
  case is created, attached via PlaintiffContactID.
- If the matched contact already has a case with the same incident date,
  the promote is refused (409) unless override_duplicates is set.

## Path parameters

- `smartadvocate_intake_draft_id` string, uuid, required

## Request body

- SmartAdvocateIntakeDraftPromoteRequest — Promote a draft intake: create the contact (unless matched) and case in SmartAdvocate. Fields carry the user's edits from the promote dialog. Case group/type IDs fall back to the customer's configured intake defaults when omitted.
  - `first_name` string, required
  - `last_name` string, required
  - `email` string, nullable
  - `phone_number` string, nullable
  - `date_of_birth` string, date, nullable
  - `gender` string, nullable
  - `address_line1` string, nullable
  - `city` string, nullable
  - `state` string, nullable
  - `zip_code` string, nullable
  - `case_summary` string, nullable
  - `incident_date` string, date, nullable
  - `case_group_id` integer, nullable
  - `case_type_id` integer, nullable
  - `override_duplicates` boolean — Create the case even when an existing case with the same incident date was found for the matched contact

## Response `200`

Successful Response

- SmartAdvocateIntakeDraftResponse — LLM-drafted SmartAdvocate intake (contact + case) derived from a call transcript.
  - `smartadvocate_intake_draft_id` string, uuid, required
  - `call_id` string, uuid, required
  - `first_name` string, nullable
  - `last_name` string, nullable
  - `email` string, nullable
  - `phone_number` string, nullable
  - `date_of_birth` string, date, nullable
  - `gender` string, nullable
  - `address_line1` string, nullable
  - `city` string, nullable
  - `state` string, nullable
  - `zip_code` string, nullable
  - `case_summary` string, nullable
  - `incident_date` string, date, nullable
  - `incident_state` string, nullable
  - `case_type_hint` string, nullable
  - `matched_sa_contact_id` integer, nullable — Existing SA contact matched by the caller's phone number; promotion attaches the case to it instead of creating a new contact
  - `matched_sa_contact_name` string, nullable
  - `ambiguous_contact_match` boolean — Multiple person contacts share the caller's phone number; the match shown is a best guess and needs manual review
  - `duplicate_case_numbers` string[] — Existing case numbers on the matched contact with the same incident date (likely repeat caller about the same accident)
  - `status` string
  - `sa_contact_id` integer, nullable
  - `sa_case_id` integer, nullable
  - `sa_case_number` string, nullable
  - `was_dry_run` boolean, nullable
  - `auto_promoted` boolean
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/openintake/apis/fastapi.md) · [All operations](https://skmtc.dev/openintake/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openintake/fastapi/revisions/4a81645b59f6/schema)
