OpenAPI 3.1.02026-08-19461216488.8 KB

1c7d3d9ad035

prospecting

Dismiss Deal

Dismiss a deal — removes it from review.

The dialog's chip + note (in learning_feedback) is the single source of "why dismissed": we derive a denormalized stage_change_reason for fast reads on the dismissed card and queue the structured payload as a skill-learning signal so the agent learns from the rejection.

A dismissal also writes a GLOBAL prospecting_suppressions row, so the rejection is a durable signal about that PERSON rather than about one goal. Before this, dismissing only set review_state; the goal-scoped exclusion then let the same contact resurface under any other goal — including one the user created by refining their own targeting. Global scope is deliberate (founder, 2026-08-11): "a rejected candidate should be high signal on that contact for all scans". The soft, supersedable half of that model is the org-skill learning, not this row.

Deal state and global suppression are attempted by one transactional RPC. If suppression cannot be recorded, the dismissal still commits and the RPC writes a durable retry row. Deals without a linked contact are still dismissed; the RPC skips suppression because there is no contact to store.

post/api/prospecting/deals/{deal_id}/dismiss

Query parameters

user_idstring nullable
org_idstring nullable

Request body

Response

Successful Response

{"stackTrail":"paths:/api/prospecting/deals/{deal_id}/dismiss:post:responses:200:content:application/json:schema","oasType":"schema","type":"unknown"}