Update a co-sell referral (incl. status / stage transitions)
PATCH https://api.suger.cloud/org/{orgId}/cosell/referral/{referralId}
Update fields of an existing co-sell referral. Used primarily for business field edits (amount, close date, contacts, etc.). Supports AWS / AZURE / GCP. Legal Suger unified status values (DB enum, UPPER_SNAKE_CASE): DRAFT, PENDING_CREATE, CREATE_FAILED, UPDATE_FAILED, IN_REVIEW, PENDING_ACCEPTANCE, ACTION_REQUIRED, ACTIVE, EXPIRED, CLOSED_WON, CLOSED_LOST, CLOSED_ERROR, REJECTED. IMPORTANT: For AWS the unified `status` is recomputed server-side from `info.aceOpportunityV2.lifeCycle`; passing a top-level `status` is not the way to drive state transitions. Instead, edit the partner-specific lifecycle fields and let the server derive `status`. For AWS inbound referrals, sending a body with `info.aceEngagementInvitation` (and no `info.aceOpportunityV2`) triggers the accept/reject engagement-invitation flow. NOTE: changing fields here only updates Suger. To push the change to the partner, call SyncSingleReferral with `direction=OUTBOUND` afterwards. `partner=SUGER` (Suger PRM) is not exposed through this MCP tool. Use this when: user wants to edit a referral's fields or progress an AWS inbound referral via invitation accept/reject.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
orgId | path | string | yes | Organization ID |
referralId | path | string | yes | Cosell Referral ID |
isLinkageUpdate | query | boolean | no | When true, persist ONLY the CRM-linkage fields (salesforceOpportunityId / salesforceAccountId / hubspotDealId / dynamics365OpportunityId) and skip the partner update validator and outbound sync. The body's partner-opportunity content is ignored. Use this for an account/opportunity match that must link even when the referral's partner-opp would otherwise fail validation (e.g. an AWS referral at Committed stage still carrying solution \ |
syncToSlack | query | boolean | no | When true, mirror the new all-visibility root conversation(s) in this request to the partner's Slack channel (the 'Slack thread' composer mode). Plain Comments and internal notes leave it false; replies mirror based on their root regardless of this flag. Request-only — never persisted. |
Request Body
Required. Content-Type: application/json · Schema: orm.CosellReferral
Responses
200 — OK
Content-Type: application/json · Schema: OperationExecutionDetails
400 — Bad request error
Content-Type: application/json · Schema: ErrorResponse
500 — Internal server error
Content-Type: application/json · Schema: ErrorResponse