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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'