sales

Move Deal

Move a deal, and -- when the move is to won -- open the activation obligation in the SAME transaction (Stage E: "the activation sequence for a signed agency as one transaction").

⛔THIS ROUTE IS THE ONLY CALLER OF service.move_deal IN THE APPLICATION (verified 2026-09-20), which is why the composition sits here rather than inside the service. If a second caller ever appears, it inherits this obligation and must open it too -- a won deal with no activation work is an agency nobody is activating, which is the exact failure Stage E names. The service's own docstring carries the same warning so the next writer does not have to find this one.

⛔THE OWNER IS RESOLVED FROM CONFIGURATION AND NEVER GUESSED, and never the acting human. EXECUTIVE_MANAGER_PRINCIPAL_ID is the same variable tools/executive_engine/loop.py already resolves the manager from, with its own documented reason: production carries four kind='agent' principals and there is no unambiguous "the Rooster principal" to look up. Unset means no obligation is opened AND THE RESPONSE SAYS SO (activation: "no_owner_configured") -- a silent skip here would be a won deal that looks activated.

post/api/sales/deals/{deal_id}/move

Request

  • Base URL: https://api.pigeonly.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.pigeonly.com/api/sales/deals/{deal_id}/move
  • Auth: none declared

Path parameters

deal_idstring uuid required

Request body

to_stagestring required

Response

Successful Response

object required

Changes

No recorded changes to this operation across all 1 revision of this API.