7c5dfa63b897
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.
Query parameters
Request body
Response
Successful Response