Batch create co-sell referrals
POST https://api.suger.cloud/org/{orgId}/cosell/referral/batchCreate
Create multiple co-sell referrals in one call. Supports AWS / AZURE / GCP (CRM-driven bulk share) and SUGER (PRM bulk deal-registration upload). Each item in the batch is an `orm.CosellReferral` value following the same partner-specific nested required-field rules as CreateCosellReferral — see that operation's description for the exact `info.aceOpportunityV2` / `info.microsoftReferralSet` / `info.gcpOpportunityV2` / `info.sugerOpportunity` paths. IMPORTANT: keep batch size small (at most 20). Larger batches risk hitting partner API rate limits (AWS ACE in particular). For very large imports, split into multiple calls. Use this when: user wants to share a small set of opportunities with a partner at once. For one-off creates, use CreateCosellReferral.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
orgId | path | string | yes | Organization ID |
Request Body
Required. Content-Type: application/json · Schema: shared.BatchCreateCosellReferralsRequest
shared.BatchCreateCosellReferralsRequest fields:
| Field | Type | Required | Description |
|---|---|---|---|
cosellReferrals | object | yes | |
crmPartner | Partner | yes | |
partner | Partner | yes |
Responses
200 — OK
Content-Type: application/json · Schema: OperationExecutionDetails
OperationExecutionDetails fields:
| Field | Type | Required | Description |
|---|---|---|---|
newWorkflowStarted | boolean | no | |
referralId | string | no | ReferralID is the created referral's id, set by the SUGER co-sell create so the caller can chain follow-up calls (e.g. InviteCosellPartners) onto the new engagement without re-querying. Empty elsewhere. |
runID | string | no | |
slackMirrorWarning | string | no | SlackMirrorWarning is a non-blocking advisory set when a SUGER co-sell console message was saved but could not be mirrored to the partner's Slack channel (no workspace connected, no channel mapped, bot not in the channel, or a transient post failure). Empty when the message mirrored or Slack is not involved. The console surfaces it as a warning toast; the message is always persisted regardless (best-effort mirror). |
status | string | no | |
workflowID | string | no |
400 — Bad request error
Content-Type: application/json · Schema: ErrorResponse
ErrorResponse fields:
| Field | Type | Required | Description |
|---|---|---|---|
code | ErrorCode | no | |
info | object | no | |
message | string | no |
500 — Internal server error
Content-Type: application/json · Schema: ErrorResponse
ErrorResponse fields:
| Field | Type | Required | Description |
|---|---|---|---|
code | ErrorCode | no | |
info | object | no | |
message | string | no |
View as Markdown · Interactive API reference
Spotted something wrong or out of date on this page? Tell us and we'll correct it.