---
title: "Make New Plan For Contact"
method: POST
path: "/api/pipeline/deals/by-contact/{contact_id}/make-new-plan"
tags: ["pipeline"]
---

# Make New Plan For Contact

`POST /api/pipeline/deals/by-contact/{contact_id}/make-new-plan`

Start a new deal cycle for a known contact.

Inserts a fresh `prospecting_deals` row (cycle_number = max(prior) + 1)
pointing at the contact, stamped with the user-supplied goal, then
enqueues a pipeline_deal_replan job seeded with `mode_hint='initial_plan'`.

First-cycle behavior: if no prior cycles exist, cycle_number=1 and
prior_cycle_deal_id=None. The endpoint is idempotent at the cycle level
via UNIQUE(org_id, dedupe_key, cycle_number).

## Query parameters

- `user_id` string, nullable
- `org_id` string, nullable

## Request body

- MakeNewPlanRequest — Body for /deals/by-contact/{contact_id}/make-new-plan. Starts a new deal cycle for a contact who has prior won/lost cycles (or for a brand-new manual add when no prior cycle exists).
  - `goal_summary` string, required
  - `goal_service_ids` string[]
  - `goal_targeting` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/every/apis/every-api.md) · [All operations](https://skmtc.net/every/apis/every-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/every/every-api/revisions/ca82da2b8d97/schema)
