Skip to main content

Sales Opportunities

Entity›Activity›Activity.SalesOpportunity

Sales opportunities represent potential deals in the sales pipeline. They track the progression of a lead through various phases, from initial contact to closing. Each opportunity can have a probability percentage, estimated and weighted amounts, an expected order date, and a link to the pipeline it belongs to.

Use the Activity_SalesOpportunity endpoint to manage your sales pipeline. Opportunities inherit all fields from Activity (subject, amount, financial totals) and add sales-specific fields like Probability, WeightedAmount, EstimatedAmount, and ExpectedOrderDate.

Endpoints​

List Sales Opportunities​

Retrieve a paginated list of sales opportunities.

GET/v1/odata/Activity_SalesOpportunity

Single Sales Opportunity​

Retrieve a single sales opportunity by its ID.

GET/v1/odata/Activity_SalesOpportunity({id})

With expanded relations:

GET/v1/odata/Activity_SalesOpportunity({id})?$expand=Relationship,Contact,ProductLines,Phase,Pipeline

Create Sales Opportunity​

Create a new sales opportunity.

POST/v1/odata/Activity_SalesOpportunity

Update Sales Opportunity​

Update an existing sales opportunity. Provide only the fields to update.

PUT/v1/odata/Activity_SalesOpportunity({id})

Delete Sales Opportunity​

Delete a sales opportunity by ID.

DELETE/v1/odata/Activity_SalesOpportunity({id})

Fields​

Standard Fields (all entities)​

FieldTypeDescription
IDGuidPrimary key (UUID)
_TypeStringEntity type discriminator (e.g., Activity.SalesOpportunity)
_NameStringComputed display name
SortIndexDoubleSorting order
CreationDateDateTimeOffsetDate the record was created
LastMutationDateDateTimeOffsetDate of the last modification
IsActiveBooleanWhether the record is active
IsClosedBooleanWhether the record is closed

Sales Opportunity Fields​

FieldTypeDescription
ProbabilityDoubleWin probability percentage (0–100)
WeightedAmountDoubleAmount weighted by probability
EstimatedAmountDoubleEstimated deal amount
ExpectedOrderDateDateExpected order / close date

Inherited Fields (from Activity)​

FieldTypeDescription
SubjectStringActivity subject / title
NumberStringAuto-generated activity number (e.g., 2026-00001)
AmountDoubleActivity amount
CurrencyStringCurrency code (e.g., EUR)
IsVatIncludedBooleanWhether prices include VAT
DiscountPercentageDoubleDiscount percentage
RelationDescriptionStringDescription of the linked relation
NumberOfProductLinesDoubleNumber of product lines
NumberOfOpenTasksDoubleNumber of open tasks linked to this activity
NumberOfPlannedActionsDoubleNumber of planned actions
BillingAmountDoubleAmount to be invoiced
BillingAmountInCurrencyDoubleAmount to be invoiced (in currency)
AmountInCurrencyDoubleAmount (in currency)
TotalSalesExcludingVATDoubleSubtotal excluding VAT
TotalSalesIncludingVATDoubleTotal including VAT
VatAmountDoubleVAT amount
TotalDiscountExcludingVATDoubleTotal discount amount
TotalMarginDoubleTotal profit margin
TotalPurchaseAmountDoubleTotal purchase/cost amount

Relationships​

RelationshipTarget EntityCardinalityDescription
RelationshipRelationshipN:1Linked relation (customer/contact)
ContactRelation.Person.ContactN:1Contact person
ProductLinesProductLine1:NProduct lines / line items
InvolvedInvolved1:NInvolved parties
PhaseDatastore.Phase.ActivitySalesOpportunityN:1Sales phase / stage
PipelinePipelineN:1Sales pipeline
SourceDatastore.SourceN:1Lead source
SalesRepresentativeRelation.Person.Contact.EmployeeN:1Assigned sales rep
LostReasonDatastore.LostReasonN:1Reason for losing the deal
LostToCompetitorRelationship.Organization.CompetitorN:1Competitor the deal was lost to
PriceListPriceListN:1Price list
LinkedActivitiesActivity1:NLinked activities
ActivityActivityN:1Parent activity
TimeRegistrationsTimeRegistration1:NTime registrations

Expanding Relationships​

GET/v1/odata/Activity_SalesOpportunity({id})?$expand=Phase
GET/v1/odata/Activity_SalesOpportunity({id})?$expand=Relationship,Contact,ProductLines,Phase,Pipeline
GET/v1/odata/Activity_SalesOpportunity({id})/ProductLines
GET/v1/odata/Activity_SalesOpportunity({id})/Involved
DELETE/v1/odata/Activity_SalesOpportunity({id})/Pipeline/$ref

Filtering Examples​

GET/v1/odata/Activity_SalesOpportunity?$filter=contains(Subject, '{Subject}')&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=Probability gt {Probability}&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=WeightedAmount gt {WeightedAmount}&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=EstimatedAmount gt {EstimatedAmount}&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=ExpectedOrderDate lt {ExpectedOrderDate}&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=Amount gt {Amount}&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=IsClosed eq {IsClosed}&$top={top}
GET/v1/odata/Activity_SalesOpportunity?$filter=CreationDate gt {CreationDate}&$top={top}

Custom Query​

Build your own OData query against Activity_SalesOpportunity. Open Run and edit the whole request inline — swap the entity set, change the $filter, or add $expand, $select, $orderby, $top, $skip. Type $ for suggestions; use ↺ Reset to restore this example.

GET/v1/odata/Activity_SalesOpportunity?$top=10