Act! CRM · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for act.web.api Opportunities API
46 actions
46 updates
phrasing
extends
openapi/act-opportunities-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Act! CRM's API. It is a proposal applied on top of the contract, not a document Act! CRM publishes.
What the actions change
x-apievangelist-phrasing
Targets 46 · first 16 shown; the file carries all of them
$.info
$.paths['/api/companies/{companyId}/associated-opportunities/{opportunityId}'].put
$.paths['/api/companies/{companyId}/associated-opportunities/{opportunityId}'].delete
$.paths['/api/companies/{companyId}/associated-opportunities'].get
$.paths['/api/companies/{companyId}/associated-opportunities'].put
$.paths['/api/companies/{companyId}/associated-opportunities'].delete
$.paths['/api/contacts/{contactId}/associated-opportunities/{opportunityId}'].put
$.paths['/api/contacts/{contactId}/associated-opportunities/{opportunityId}'].delete
$.paths['/api/contacts/{contactId}/associated-opportunities'].get
$.paths['/api/contacts/{contactId}/associated-opportunities'].put
$.paths['/api/contacts/{contactId}/associated-opportunities'].delete
$.paths['/api/groups/{groupId}/associated-opportunities/{opportunityId}'].put
$.paths['/api/groups/{groupId}/associated-opportunities/{opportunityId}'].delete
$.paths['/api/groups/{groupId}/associated-opportunities'].get
$.paths['/api/groups/{groupId}/associated-opportunities'].put
$.paths['/api/groups/{groupId}/associated-opportunities'].delete
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for act.web.api Opportunities API
version: 1.0.0
extends: openapi/act-opportunities-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 45
- target: $.paths['/api/companies/{companyId}/associated-opportunities/{opportunityId}'].put
update:
x-apievangelist-phrasing:
intent: Link one opportunity to a company
effect: write
questions:
- How do I attach a single deal to a company record in Act!?
- Can I tie one existing opportunity to a company account?
instructions:
- text: Link opportunity {opportunityId} to company {companyId}.
slots:
opportunityId: path.opportunityId
companyId: path.companyId
- text: Associate deal {opportunityId} with the company {companyId}.
slots:
opportunityId: path.opportunityId
companyId: path.companyId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/companies/{companyId}/associated-opportunities/{opportunityId}'].delete
update:
x-apievangelist-phrasing:
intent: Unlink one opportunity from a company
effect: destructive
questions:
- How can I detach a single deal from a company without deleting the deal?
- What happens to the opportunity when I remove it from one company?
instructions:
- text: Unlink opportunity {opportunityId} from company {companyId}.
slots:
opportunityId: path.opportunityId
companyId: path.companyId
- text: Remove the association between company {companyId} and deal {opportunityId}.
slots:
companyId: path.companyId
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/companies/{companyId}/associated-opportunities'].get
update:
x-apievangelist-phrasing:
intent: List opportunities linked to a company
effect: read
questions:
- Which deals are linked to a particular company?
- Can I filter a company's opportunities with an OData query?
instructions:
- text: Show all opportunities linked to company {companyId}.
slots:
companyId: path.companyId
- text: List the open deals for company {companyId}.
slots:
companyId: path.companyId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/companies/{companyId}/associated-opportunities'].put
update:
x-apievangelist-phrasing:
intent: Link several opportunities to a company at once
effect: write
questions:
- Can I attach a batch of deals to one company in a single call?
- How do I bulk-link a list of opportunity ids to a company?
instructions:
- text: Link opportunities {opportunities} to company {companyId} in one go.
slots:
opportunities: requestBody.opportunities
companyId: path.companyId
- text: Bulk-associate the deal list {opportunities} with company {companyId}.
slots:
opportunities: requestBody.opportunities
companyId: path.companyId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/companies/{companyId}/associated-opportunities'].delete
update:
x-apievangelist-phrasing:
intent: Unlink several opportunities from a company
effect: destructive
questions:
- Can I detach a whole list of deals from a company at once?
- Is there a bulk way to remove opportunities from a company record?
instructions:
- text: Unlink opportunities {opportunities} from company {companyId} in bulk.
slots:
opportunities: requestBody.opportunities
companyId: path.companyId
- text: Remove the deal list {opportunities} from company {companyId}.
slots:
opportunities: requestBody.opportunities
companyId: path.companyId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/associated-opportunities/{opportunityId}'].put
update:
x-apievangelist-phrasing:
intent: Link one opportunity to a contact
effect: write
questions:
- How do I attach a single deal to a contact person?
- Can I tie an existing opportunity to one contact record?
instructions:
- text: Link opportunity {opportunityId} to contact {contactId}.
slots:
opportunityId: path.opportunityId
contactId: path.contactId
- text: Associate deal {opportunityId} with the contact {contactId}.
slots:
opportunityId: path.opportunityId
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/associated-opportunities/{opportunityId}'].delete
update:
x-apievangelist-phrasing:
intent: Unlink one opportunity from a contact
effect: destructive
questions:
- How can I detach a single deal from a contact without deleting it?
- Can I remove one opportunity from a contact's record?
instructions:
- text: Unlink opportunity {opportunityId} from contact {contactId}.
slots:
opportunityId: path.opportunityId
contactId: path.contactId
- text: Remove the association between contact {contactId} and deal {opportunityId}.
slots:
contactId: path.contactId
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/associated-opportunities'].get
update:
x-apievangelist-phrasing:
intent: List opportunities linked to a contact
effect: read
questions:
- Which deals is a given contact involved in?
- Can I filter a contact's opportunities using OData?
instructions:
- text: Show all opportunities linked to contact {contactId}.
slots:
contactId: path.contactId
- text: List the deals contact {contactId} is part of.
slots:
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/associated-opportunities'].put
update:
x-apievangelist-phrasing:
intent: Link several opportunities to a contact at once
effect: write
questions:
- Can I attach a batch of deals to one contact in a single request?
- How do I bulk-link opportunity ids to a contact?
instructions:
- text: Link opportunities {opportunities} to contact {contactId} in one go.
slots:
opportunities: requestBody.opportunities
contactId: path.contactId
- text: Bulk-associate the deal list {opportunities} with contact {contactId}.
slots:
opportunities: requestBody.opportunities
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/associated-opportunities'].delete
update:
x-apievangelist-phrasing:
intent: Unlink several opportunities from a contact
effect: destructive
questions:
- Can I detach a whole list of deals from a contact at once?
- Is there a bulk way to remove opportunities from a contact?
instructions:
- text: Unlink opportunities {opportunities} from contact {contactId} in bulk.
slots:
opportunities: requestBody.opportunities
contactId: path.contactId
- text: Remove the deal list {opportunities} from contact {contactId}.
slots:
opportunities: requestBody.opportunities
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/groups/{groupId}/associated-opportunities/{opportunityId}'].put
update:
x-apievangelist-phrasing:
intent: Link one opportunity to a group
effect: write
questions:
- How do I add a single deal to a group?
- Can I associate one existing opportunity with a contact group?
instructions:
- text: Link opportunity {opportunityId} to group {groupId}.
slots:
opportunityId: path.opportunityId
groupId: path.groupId
- text: Associate deal {opportunityId} with the group {groupId}.
slots:
opportunityId: path.opportunityId
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/groups/{groupId}/associated-opportunities/{opportunityId}'].delete
update:
x-apievangelist-phrasing:
intent: Unlink one opportunity from a group
effect: destructive
questions:
- How can I take a single deal out of a group?
- Does removing an opportunity from a group delete the opportunity?
instructions:
- text: Unlink opportunity {opportunityId} from group {groupId}.
slots:
opportunityId: path.opportunityId
groupId: path.groupId
- text: Remove the association between group {groupId} and deal {opportunityId}.
slots:
groupId: path.groupId
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/groups/{groupId}/associated-opportunities'].get
update:
x-apievangelist-phrasing:
intent: List opportunities linked to a group
effect: read
questions:
- Which deals belong to a particular group?
- Can I query a group's opportunities with an OData filter?
instructions:
- text: Show all opportunities linked to group {groupId}.
slots:
groupId: path.groupId
- text: List the deals in group {groupId}.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/groups/{groupId}/associated-opportunities'].put
update:
x-apievangelist-phrasing:
intent: Link several opportunities to a group at once
effect: write
questions:
- Can I add a batch of deals to a group in one request?
- How do I bulk-link opportunity ids to a group?
instructions:
- text: Link opportunities {opportunities} to group {groupId} in one go.
slots:
opportunities: requestBody.opportunities
groupId: path.groupId
- text: Bulk-associate the deal list {opportunities} with group {groupId}.
slots:
opportunities: requestBody.opportunities
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/groups/{groupId}/associated-opportunities'].delete
update:
x-apievangelist-phrasing:
intent: Unlink several opportunities from a group
effect: destructive
questions:
- Can I pull a whole list of deals out of a group at once?
- Is there a bulk way to remove opportunities from a group?
instructions:
- text: Unlink opportunities {opportunities} from group {groupId} in bulk.
slots:
opportunities: requestBody.opportunities
groupId: path.groupId
- text: Remove the deal list {opportunities} from group {groupId}.
slots:
opportunities: requestBody.opportunities
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}'].get
update:
x-apievangelist-phrasing:
intent: Get an opportunity's details
effect: read
questions:
- How do I look up a single deal by its id?
- What fields come back for one opportunity, like stage, probability and close date?
instructions:
- text: Fetch opportunity {opportunityId}.
slots:
opportunityId: path.opportunityId
- text: Show me the stage and estimated close date of deal {opportunityId}.
slots:
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}'].put
update:
x-apievangelist-phrasing:
intent: Replace an opportunity's details
effect: write
questions:
- How do I overwrite an entire opportunity record with new values?
- Can I mark a deal as won by sending the full opportunity back?
instructions:
- text: Replace opportunity {opportunityId} with name {name} and status {status}.
slots:
opportunityId: path.opportunityId
name: requestBody.name
status: requestBody.status
- text: Do a full update of deal {opportunityId}, setting its estimated close date to {estimatedCloseDate}.
slots:
opportunityId: path.opportunityId
estimatedCloseDate: requestBody.estimatedCloseDate
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an opportunity
effect: destructive
questions:
- How do I permanently remove a deal from my pipeline?
- Can a deleted opportunity be recovered?
instructions:
- text: Delete opportunity {opportunityId}.
slots:
opportunityId: path.opportunityId
- text: Remove the deal {opportunityId} from the database.
slots:
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}'].patch
update:
x-apievangelist-phrasing:
intent: Change a few fields on an opportunity
effect: write
questions:
- Can I update just the probability of a deal without resending everything?
- How do I change only the close date on an opportunity?
instructions:
- text: Set the win probability of opportunity {opportunityId} to {probability}.
slots:
opportunityId: path.opportunityId
probability: requestBody.probability
- text: Patch deal {opportunityId} so its actual close date is {actualCloseDate}.
slots:
opportunityId: path.opportunityId
actualCloseDate: requestBody.actualCloseDate
- text: Record {reason} as the reason deal {opportunityId} changed status.
slots:
reason: requestBody.reason
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes/{processId}'].get
update:
x-apievangelist-phrasing:
intent: Get a sales process
effect: read
questions:
- How do I see the details of one sales process?
- What does a single opportunity process definition contain?
instructions:
- text: Fetch sales process {processId}.
slots:
processId: path.processId
- text: Show me the name and description of process {processId}.
slots:
processId: path.processId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes/{processId}'].put
update:
x-apievangelist-phrasing:
intent: Replace a sales process definition
effect: write
questions:
- How do I overwrite a whole sales process, including its stages?
- Can I redefine every stage of an existing process in one call?
instructions:
- text: Replace sales process {processId} with name {name} and stages {stages}.
slots:
processId: path.processId
name: requestBody.name
stages: requestBody.stages
- text: Fully update process {processId} with the description {description}.
slots:
processId: path.processId
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes/{processId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a sales process
effect: destructive
questions:
- How do I remove a sales process I no longer use?
- Can I delete an opportunity process entirely?
instructions:
- text: Delete sales process {processId}.
slots:
processId: path.processId
- text: Remove the opportunity process {processId}.
slots:
processId: path.processId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes/{processId}'].patch
update:
x-apievangelist-phrasing:
intent: Rename or tweak a sales process
effect: write
questions:
- Can I just rename a sales process without touching its stages?
- How do I change only the description of an opportunity process?
instructions:
- text: Rename sales process {processId} to {name}.
slots:
processId: path.processId
name: requestBody.name
- text: Patch the status of process {processId} to {status}.
slots:
processId: path.processId
status: requestBody.status
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/products/{productId}'].get
update:
x-apievangelist-phrasing:
intent: Get one product line on an opportunity
effect: read
questions:
- How do I look up a single product line item on a deal?
- What price, quantity and discount does one opportunity product carry?
instructions:
- text: Fetch product line {productId} on opportunity {opportunityId}.
slots:
productId: path.productId
opportunityId: path.opportunityId
- text: Show the price and quantity of item {productId} in deal {opportunityId}.
slots:
productId: path.productId
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/products/{productId}'].put
update:
x-apievangelist-phrasing:
intent: Replace a product line on an opportunity
effect: write
questions:
- How do I overwrite a whole product line item on a deal?
- Can I resend an opportunity product with a new price and quantity?
instructions:
- text: Replace product line {productId} on opportunity {opportunityId} with quantity {quantity} at price {price}.
slots:
productId: path.productId
opportunityId: path.opportunityId
quantity: requestBody.quantity
price: requestBody.price
- text: Fully update item {productId} in deal {opportunityId} with the name {name}.
slots:
productId: path.productId
opportunityId: path.opportunityId
name: requestBody.name
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/products/{productId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a product line from an opportunity
effect: destructive
questions:
- How do I take a product off a deal?
- Can I delete one line item from an opportunity?
instructions:
- text: Remove product line {productId} from opportunity {opportunityId}.
slots:
productId: path.productId
opportunityId: path.opportunityId
- text: Delete item {productId} from deal {opportunityId}.
slots:
productId: path.productId
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/products/{productId}'].patch
update:
x-apievangelist-phrasing:
intent: Adjust a product line on an opportunity
effect: write
questions:
- Can I change just the quantity of a product on a deal?
- How do I update only the discounted price of a line item?
instructions:
- text: Change the quantity of product line {productId} on opportunity {opportunityId} to {quantity}.
slots:
productId: path.productId
opportunityId: path.opportunityId
quantity: requestBody.quantity
- text: Patch item {productId} in deal {opportunityId} to a discounted price of {discountPrice}.
slots:
productId: path.productId
opportunityId: path.opportunityId
discountPrice: requestBody.discountPrice
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/stages/{stageId}'].get
update:
x-apievangelist-phrasing:
intent: Get a pipeline stage
effect: read
questions:
- How do I look up one stage of a sales process?
- What probability is set on a given pipeline stage?
instructions:
- text: Fetch pipeline stage {stageId}.
slots:
stageId: path.stageId
- text: Show the name and probability of stage {stageId}.
slots:
stageId: path.stageId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/stages/{stageId}'].put
update:
x-apievangelist-phrasing:
intent: Replace a pipeline stage
effect: write
questions:
- How do I overwrite every field of a pipeline stage?
- Can I fully redefine a stage's name, order and probability?
instructions:
- text: Replace stage {stageId} with name {name}, position {number} and probability {probability}.
slots:
stageId: path.stageId
name: requestBody.name
number: requestBody.number
probability: requestBody.probability
- text: Fully update pipeline stage {stageId} with description {description}.
slots:
stageId: path.stageId
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/stages/{stageId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a pipeline stage
effect: destructive
questions:
- How do I remove a stage from my sales pipeline?
- Can I delete a single opportunity stage?
instructions:
- text: Delete pipeline stage {stageId}.
slots:
stageId: path.stageId
- text: Remove opportunity stage {stageId}.
slots:
stageId: path.stageId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/stages/{stageId}'].patch
update:
x-apievangelist-phrasing:
intent: Adjust a pipeline stage
effect: write
questions:
- Can I change only the win probability of a stage?
- How do I rename one stage without resending the rest of it?
instructions:
- text: Set the probability of stage {stageId} to {probability}.
slots:
stageId: path.stageId
probability: requestBody.probability
- text: Rename pipeline stage {stageId} to {name}.
slots:
stageId: path.stageId
name: requestBody.name
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/lookup'].get
update:
x-apievangelist-phrasing:
intent: Convert an opportunity filter into criteria JSON
effect: read
questions:
- How do I turn an OData filter on opportunities into criteria JSON for a dynamic list preview?
- Can I translate an opportunity query into lookup criteria?
instructions:
- text: Convert my opportunity OData filter into dynamic-list criteria JSON.
- text: Build lookup criteria from an opportunity filter query.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities'].get
update:
x-apievangelist-phrasing:
intent: List or search opportunities
effect: read
questions:
- What deals are in my pipeline right now?
- Can I search all opportunities with an OData filter, like by status?
instructions:
- text: List all my opportunities.
- text: Search every opportunity in the database for deals that are still open.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities'].post
update:
x-apievangelist-phrasing:
intent: Create an opportunity
effect: write
questions:
- How do I add a new deal to my pipeline?
- Can I set the expected close date and products when creating an opportunity?
instructions:
- text: Create an opportunity named {name} expected to close on {estimatedCloseDate}.
slots:
name: requestBody.name
estimatedCloseDate: requestBody.estimatedCloseDate
- text: Open a new deal {name} for companies {companies} with source {source}.
slots:
name: requestBody.name
companies: requestBody.companies
source: requestBody.source
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunity-lists'].get
update:
x-apievangelist-phrasing:
intent: Get several opportunities by id
effect: read
questions:
- Can I fetch a specific set of opportunities by passing their ids?
- How do I load many deals at once when I already know their ids?
instructions:
- text: Fetch the opportunities with ids {ids}.
slots:
ids: query.ids
- text: 'Load just these deals: {ids}.'
slots:
ids: query.ids
method: generated
generated: '2026-10-01'
- target: $.paths['/api/{entityName}/{id}/associated-opportunities'].get
update:
x-apievangelist-phrasing:
intent: List opportunities linked to a custom entity record
effect: read
questions:
- Which deals are attached to a record in one of my custom entities?
- Can I see the opportunities linked to a custom entity row?
instructions:
- text: List opportunities linked to {entityName} record {id}.
slots:
entityName: path.entityName
id: path.id
- text: Show the deals tied to custom entity {entityName} row {id}.
slots:
entityName: path.entityName
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/access'].get
update:
x-apievangelist-phrasing:
intent: See who can access an opportunity
effect: read
questions:
- Who has access to a particular deal?
- Is an opportunity public, private or limited to certain users?
instructions:
- text: Show the access level for opportunity {opportunityId}.
slots:
opportunityId: path.opportunityId
- text: List who is allowed to see deal {opportunityId}.
slots:
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/access'].put
update:
x-apievangelist-phrasing:
intent: Change who can access an opportunity
effect: write
questions:
- How do I restrict a deal to specific users?
- Can I change an opportunity's access level to limited?
instructions:
- text: Limit access to opportunity {opportunityId} to accessors {accessors}.
slots:
opportunityId: path.opportunityId
accessors: requestBody.accessors
- text: Set the access level of deal {opportunityId} to {type}.
slots:
opportunityId: path.opportunityId
type: requestBody.type
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes'].get
update:
x-apievangelist-phrasing:
intent: List sales processes
effect: read
questions:
- What sales processes are defined in my database?
- Can I filter the list of opportunity processes with OData?
instructions:
- text: List all sales processes.
- text: Show every opportunity process we have set up.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes'].post
update:
x-apievangelist-phrasing:
intent: Create a sales process
effect: write
questions:
- How do I set up a new sales process with custom stages?
- Can I define the stages when I create a process?
instructions:
- text: Create a sales process called {name} with stages {stages}.
slots:
name: requestBody.name
stages: requestBody.stages
- text: Add a new opportunity process {name} described as {description}.
slots:
name: requestBody.name
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/products'].get
update:
x-apievangelist-phrasing:
intent: List products on an opportunity
effect: read
questions:
- What products and services are attached to a deal?
- How do I see every line item on an opportunity?
instructions:
- text: List all product lines on opportunity {opportunityId}.
slots:
opportunityId: path.opportunityId
- text: Show every item in deal {opportunityId}.
slots:
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/{opportunityId}/products'].post
update:
x-apievangelist-phrasing:
intent: Add a product to an opportunity
effect: write
questions:
- How do I add a product line to an existing deal?
- Can I set quantity, price and discount when adding an item to an opportunity?
instructions:
- text: Add {quantity} of product {productID} to opportunity {opportunityId}.
slots:
quantity: requestBody.quantity
productID: requestBody.productID
opportunityId: path.opportunityId
- text: Add a line item {name} priced at {price} to deal {opportunityId}.
slots:
name: requestBody.name
price: requestBody.price
opportunityId: path.opportunityId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/stages'].get
update:
x-apievangelist-phrasing:
intent: List all pipeline stages
effect: read
questions:
- What stages exist across all my sales processes?
- Can I query every opportunity stage regardless of process?
instructions:
- text: List every pipeline stage across all processes.
- text: Show all opportunity stages in the database.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes/{processId}/stages'].get
update:
x-apievangelist-phrasing:
intent: List the stages of one sales process
effect: read
questions:
- Which stages make up a specific sales process?
- In what order do the stages of a process run?
instructions:
- text: List the stages of sales process {processId}.
slots:
processId: path.processId
- text: Show the stage order for process {processId}.
slots:
processId: path.processId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/opportunities/processes/{processId}/stages'].post
update:
x-apievangelist-phrasing:
intent: Add a stage to a sales process
effect: write
questions:
- How do I add a new stage to an existing sales process?
- Can I set the probability and position of a stage when I create it?
instructions:
- text: Add a stage {name} to process {processId} with probability {probability}.
slots:
name: requestBody.name
processId: path.processId
probability: requestBody.probability
- text: Create stage {name} at position {number} in sales process {processId}.
slots:
name: requestBody.name
number: requestBody.number
processId: path.processId
method: generated
generated: '2026-10-01'