Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Admin API V1 Salespersons API
12 actions
12 updates
phrasing
extends
openapi/optimizely-salespersons-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Optimizely's API. It is a proposal applied on top of the contract, not a document Optimizely publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/api/v1/admin/Salespersons'].get
$.paths['/api/v1/admin/Salespersons'].post
$.paths['/api/v1/admin/Salespersons({id})'].get
$.paths['/api/v1/admin/Salespersons({id})'].put
$.paths['/api/v1/admin/Salespersons({id})'].delete
$.paths['/api/v1/admin/Salespersons({id})'].patch
$.paths['/api/v1/admin/Salespersons/Default.Default()'].get
$.paths['/api/v1/admin/salespersons/delete'].delete
$.paths['/api/v1/admin/salespersons({key})/customerorders({customerorderKey})'].get
$.paths['/api/v1/admin/salespersons({key})/customers({customerKey})'].get
$.paths['/api/v1/admin/salespersons({key})/customproperties({custompropertyKey})'].get
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 Admin API V1 Salespersons API
version: 1.0.0
extends: openapi/optimizely-salespersons-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/api/v1/admin/Salespersons'].get
update:
x-apievangelist-phrasing:
intent: List salespersons
effect: read
questions:
- Who are all the sales reps configured in my Optimizely commerce admin?
- Can I filter salespersons to just outside reps?
- Is there a way to sort sales reps by year-to-date sales?
instructions:
- text: List all salespersons.
- text: Find salespersons matching {filter}.
slots:
filter: query.$filter
- text: Show the top {top} salespersons ordered by {orderby}.
slots:
top: query.$top
orderby: query.$orderby
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Salespersons'].post
update:
x-apievangelist-phrasing:
intent: Create a salesperson
effect: write
questions:
- How do I add a new sales rep with their number, email and phone?
- Can I set a maximum discount percent when creating a salesperson?
instructions:
- text: Create salesperson {name} with number {salespersonNumber} and email {email}.
slots:
name: requestBody.name
salespersonNumber: requestBody.salespersonNumber
email: requestBody.email
- text: Add a new sales rep {name} reporting to sales manager {salesManagerId}.
slots:
name: requestBody.name
salesManagerId: requestBody.salesManagerId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Salespersons({id})'].get
update:
x-apievangelist-phrasing:
intent: Get one salesperson
effect: read
questions:
- What contact details are on file for a specific sales rep?
- How do I see one salesperson's margin and discount limits?
instructions:
- text: Get salesperson {id}.
slots:
id: path.id
- text: Show sales rep {id} with only the fields {select}.
slots:
id: path.id
select: query.$select
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Salespersons({id})'].put
update:
x-apievangelist-phrasing:
intent: Replace a salesperson record
effect: write
questions:
- How do I overwrite a sales rep's entire record in one request?
- Can I replace all fields of a salesperson rather than patching a few?
instructions:
- text: Replace salesperson {id} with a full record named {name}, email {email}.
slots:
id: path.id
name: requestBody.name
email: requestBody.email
- text: Overwrite the complete record for sales rep {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Salespersons({id})'].delete
update:
x-apievangelist-phrasing:
intent: Delete a salesperson
effect: destructive
questions:
- How do I remove a single sales rep by ID?
- Can I make a salesperson delete conditional on the record's ETag?
instructions:
- text: Delete salesperson {id}.
slots:
id: path.id
- text: Delete sales rep {id} if the ETag still matches {ifMatch}.
slots:
id: path.id
ifMatch: header.If-Match
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Salespersons({id})'].patch
update:
x-apievangelist-phrasing:
intent: Partially update a salesperson
effect: write
questions:
- Can I change just a sales rep's phone number or title?
- How do I lower one salesperson's maximum discount percent?
instructions:
- text: Update the email of salesperson {id} to {email}.
slots:
id: path.id
email: requestBody.email
- text: Set the max discount for sales rep {id} to {maxDiscountPercent} percent.
slots:
id: path.id
maxDiscountPercent: requestBody.maxDiscountPercent
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Salespersons/Default.Default()'].get
update:
x-apievangelist-phrasing:
intent: Get the default salesperson template
effect: read
questions:
- What default values does a new salesperson record start with?
- Is there a blank salesperson template I can fetch?
instructions:
- text: Fetch the default salesperson template.
- text: Get default values for a new sales rep.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/salespersons/delete'].delete
update:
x-apievangelist-phrasing:
intent: Bulk delete salespersons
effect: destructive
questions:
- How do I delete several sales reps in one call?
- Can I pass a list of IDs to remove multiple salespersons?
instructions:
- text: Bulk delete salespersons {ids}.
slots:
ids: query.ids
- text: 'Remove all of these sales reps at once: {ids}.'
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/salespersons({key})/customerorders({customerorderKey})'].get
update:
x-apievangelist-phrasing:
intent: Get an order handled by a salesperson
effect: read
questions:
- How do I look up a specific customer order attributed to a sales rep?
- Can I fetch one order from a salesperson's orders?
instructions:
- text: Get order {customerorderKey} for salesperson {key}.
slots:
customerorderKey: path.customerorderKey
key: path.key
- text: Show customer order {customerorderKey} under sales rep {key}.
slots:
customerorderKey: path.customerorderKey
key: path.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/salespersons({key})/customers({customerKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer assigned to a salesperson
effect: read
questions:
- How do I check a particular customer on a sales rep's account list?
- Can I pull one customer record through its assigned salesperson?
instructions:
- text: Get customer {customerKey} assigned to salesperson {key}.
slots:
customerKey: path.customerKey
key: path.key
- text: Show account {customerKey} from sales rep {key}'s customers.
slots:
customerKey: path.customerKey
key: path.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/salespersons({key})/customproperties({custompropertyKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a custom property of a salesperson
effect: read
questions:
- How do I read a custom property stored on a sales rep?
- Can I fetch one custom field value for a salesperson?
instructions:
- text: Get custom property {custompropertyKey} of salesperson {key}.
slots:
custompropertyKey: path.custompropertyKey
key: path.key
- text: Show custom field {custompropertyKey} on sales rep {key}.
slots:
custompropertyKey: path.custompropertyKey
key: path.key
method: generated
generated: '2026-09-26'