Opportunities#
Live read/write proxy to Salesforce Opportunity records used to originate XC/IC deals. Every call hits Salesforce directly (via jsforce) — nothing here is cached locally.Concepts#
Search: search on the list endpoint matches Opportunity ID, Opportunity Name, Opportunity Number, or LOA name.
Auto-filled fields on create: from the given account_id, the API fills opportunity_currency_iso_code, invoicing_company, service_delivery_manager_id, and assigned_service_delivery_id — these can still be overridden explicitly in the request body.
Fields with mandatory defaults: several fields are effectively fixed by the backend regardless of input — factory_opportunity: true, is_renewable: false (as of now), forecast_category/forecast_category_dc: "Commit", record_type: "XC-IC", opportunity_type: "XC/IC" — sending a different value for these has no effect. They're marked (IGNORE) in each endpoint's body schema.
service_type only accepts XC or EXC (not IC, despite this being an XC/IC-labeled integration).
Update is a full optional fork of create: PATCH accepts the same fields as POST, all optional — only the fields provided are changed.
Endpoints#
GET /v1/xc/salesforce/opportunitiesSearch/list, paginated via limit/offset.GET /v1/xc/salesforce/opportunities/{id}A single Opportunity by ID.POST /v1/xc/salesforce/opportunitiesCreates a new Opportunity.PATCH /v1/xc/salesforce/opportunities/{id}Updates one or more fields.Attachments#
See the Attachments subfolder for listing, uploading, and downloading files linked to an Opportunity.Source#
Router: routes/v1/xc/salesforce.router.js
Controller: controllers/salesforce/opportunity.controller.js
Service: services/salesforce/opportunity.service.js
Schema: schemas/salesforce/opportunity.schema.js
Modified at 2026-09-25 18:24:55