---
title: "Create an MC2 case from a public-site Contact Us submission"
method: POST
path: "/api/v1/cases/intake/member-feedback"
tags: ["Case Intake"]
---

# Create an MC2 case from a public-site Contact Us submission

`POST /api/v1/cases/intake/member-feedback`

## Request

- Base URL: `https://api.cloverhealth.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cloverhealth.com/api/v1/cases/intake/member-feedback`
- Auth: API key in header `X-MC2-Signature`

Requires scope: cases:intake

Returns 202 whether the case was newly created or an existing one was
matched by `source_reference`; `created` distinguishes the two. Case type,
priority and SLA come from the `uncategorized:contact_us_web_form`
CaseTypeConfig row, so they are tunable without a deploy.

## Request body

- ContactUsIntakeRequest: A submission from the public site's member Contact Us form. Mirrors `member_leads.MemberFeedback` in full: the four member-entered fields, plus `form_language` and the tracking block from its `SalesForceLead` base. `name` is one free-text field rather than separate first/last, and `phone` arrives in whatever format the member typed — normalization happens during member matching.
  - `name` string, required
  - `message` string, required
  - `source_reference` string, required: Stable id of the originating row, e.g. 'member_feedback:4821'. Replaying the same value returns the existing case instead of creating a duplicate.
  - `email` string, nullable
  - `phone` string, nullable
  - `form_language` string, nullable
  - `submitted_at` string, nullable: ISO-8601 timestamp of the original submission.
  - `tracking` ContactUsTracking: Campaign/attribution fields carried by every public-site lead form. These mirror the `SalesForceLead` base model one-for-one. They are modelled explicitly rather than accepted as a free-form dict so that a field the public site stops sending shows up as a schema change here, instead of silently vanishing from the case (GE-1441: "make sure all the fields are included in case").
    - `segment_id` string, nullable
    - `utm_campaign` string, nullable
    - `utm_medium` string, nullable
    - `utm_source` string, nullable
    - `utm_content` string, nullable
    - `utm_gclid` string, nullable
    - `utm_leadtype` string, nullable
    - `utm_adset` string, nullable
    - `dnis` string, nullable: Inbound tracking phone number.
    - `kpid` string, nullable: Kenshoo tracking id.

## Response `202`

Accepted

- ContactUsIntakeResponse
  - `status` string, required
  - `case_id` integer, required
  - `member_matched` boolean, required
  - `created` boolean, required

## Changes

- **2026-09-10** `c89d05848d30`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cloverhealth/apis/clover-api/changes/api/v1/cases/intake/member-feedback/post.md)

---

[API](https://skmtc.dev/cloverhealth/apis/clover-api.md) - [All operations](https://skmtc.dev/cloverhealth/apis/clover-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloverhealth/apis/clover-api/revisions/824d541751f2?raw)
