---
title: "Handle Sol Degraded"
method: POST
path: "/api/forms/sol-degraded"
tags: ["Forms"]
---

# Handle Sol Degraded

`POST /api/forms/sol-degraded`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/forms/sol-degraded`
- Auth: none declared

Capture a lead from a chat surface whose assistant is unavailable.

Public endpoint — no auth. Requires only ``email``; everything else is
what the widget already holds client-side. Upserts the lead (source
``sol_degraded``), persists the transcript into chat_sessions/chat_turns
(same tables chat-api mirrors into), and pings Slack as a hot lead.

## Request body

- SolDegradedCreate: utm_*, referrer_url, landing_page, first_touch_landing_page come from WebAttributionMixin (www passes its attribution; the Sol App sends none).
  - `utm_source` string, nullable
  - `utm_medium` string, nullable
  - `utm_campaign` string, nullable
  - `utm_content` string, nullable
  - `utm_term` string, nullable
  - `referrer_url` string, nullable
  - `landing_page` string, nullable
  - `first_touch_landing_page` string, nullable
  - `email` string, email, required
  - `session_id` string, nullable
  - `surface` 'intake' | 'shortlist' | 'lp' | 'app'
  - `page_url` string, nullable
  - `transcript` SolDegradedTranscriptMessage[]
    - `role` 'user' | 'assistant', required
    - `content` string, required
    - `timestamp` integer, nullable
  - `error_kind` string, nullable

## Response `201`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
