Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Optimizely Customers API

36 actions 36 updates phrasing extends openapi/optimizely-customers-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 36 · first 16 shown; the file carries all of them

$.info
$.paths['/commerce/customers/{customerId}'].get
$.paths['/api/v1/admin/Customers'].get
$.paths['/api/v1/admin/Customers'].post
$.paths['/api/v1/admin/Customers({id})'].get
$.paths['/api/v1/admin/Customers({id})'].put
$.paths['/api/v1/admin/Customers({id})'].delete
$.paths['/api/v1/admin/Customers({id})'].patch
$.paths['/api/v1/admin/Customers/Default.Default()'].get
$.paths['/api/v1/admin/Customers/Default.archive'].post
$.paths['/api/v1/admin/Customers({id})/Default.userProfilesWithRolesFilter()'].get
$.paths['/api/v1/admin/customers/formessage(messageId={messageId})'].get
$.paths['/api/v1/admin/customers({key})/userProfilesWithRolesFilter'].get
$.paths['/api/v1/admin/customers/archive'].delete
$.paths['/api/v1/admin/customers/delete'].delete
$.paths['/api/v1/admin/customers({key})/budgetcalendars({budgetcalendarKey})'].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 Optimizely Customers API
  version: 1.0.0
extends: openapi/optimizely-customers-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: 35
- target: $.paths['/commerce/customers/{customerId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a commerce customer account
      effect: read
      questions:
      - How do I look up a commerce customer account by its customer ID?
      - What account details come back for a single commerce customer?
      instructions:
      - text: Get the commerce customer account {customerId}.
        slots:
          customerId: path.customerId
      - text: Show me the storefront account details for commerce customer {customerId}.
        slots:
          customerId: path.customerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers'].get
  update:
    x-apievangelist-phrasing:
      intent: List and filter customer records
      effect: read
      questions:
      - How can I list every customer record in the Optimizely commerce admin?
      - Can I filter the admin customer list, say to only bill-to customers on credit hold?
      - Is there a way to page through customers and get a total count?
      instructions:
      - text: List all customers in the admin console.
      - text: List customers matching the filter {filter}, sorted by {orderby}.
        slots:
          filter: query.$filter
          orderby: query.$orderby
      - text: Return the first {top} customers with a total count.
        slots:
          top: query.$top
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a customer record
      effect: write
      questions:
      - How do I add a new B2B customer account through the admin API?
      - What fields must I supply when creating a customer, like customer number and company name?
      instructions:
      - text: Create a customer {customerNumber} for company {companyName} with email {email}.
        slots:
          customerNumber: requestBody.customerNumber
          companyName: requestBody.companyName
          email: requestBody.email
      - text: Add a new customer with ERP number {erpNumber} and a credit limit of {creditLimit}.
        slots:
          erpNumber: requestBody.erpNumber
          creditLimit: requestBody.creditLimit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an admin customer record by ID
      effect: read
      questions:
      - Is there a call to fetch one customer record from the admin API by its ID?
      - Can I expand related data when retrieving a single admin customer?
      instructions:
      - text: Get admin customer record {id}.
        slots:
          id: path.id
      - text: Fetch customer {id} and expand {expand}.
        slots:
          id: path.id
          expand: query.$expand
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a customer record
      effect: write
      questions:
      - What's the call to overwrite an entire customer record with a full new version?
      - Which customer fields do I need to resend when replacing the whole record?
      instructions:
      - text: Replace customer {id} entirely, with company name {companyName} and email {email}.
        slots:
          id: path.id
          companyName: requestBody.companyName
          email: requestBody.email
      - text: Overwrite the full record of customer {id} using customer number {customerNumber}.
        slots:
          id: path.id
          customerNumber: requestBody.customerNumber
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete one customer record
      effect: destructive
      questions:
      - How do I permanently delete a single customer by ID?
      - Can I guard a customer delete with an ETag so I don't remove a changed record?
      instructions:
      - text: Delete customer {id}.
        slots:
          id: path.id
      - text: Delete customer {id} only if its ETag still matches {etag}.
        slots:
          id: path.id
          etag: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update fields on a customer
      effect: write
      questions:
      - How do I change just a few fields on an existing customer, like the credit limit?
      - Can I put a customer on credit hold without resending the whole record?
      instructions:
      - text: Set the credit limit of customer {id} to {creditLimit}.
        slots:
          id: path.id
          creditLimit: requestBody.creditLimit
      - text: Put customer {id} on credit hold ({creditHold}).
        slots:
          id: path.id
          creditHold: requestBody.creditHold
      - text: Update the email on customer {id} to {email}.
        slots:
          id: path.id
          email: requestBody.email
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the default customer template
      effect: read
      questions:
      - What does a blank default customer look like before I fill it in?
      - Where do I get the default values for a new customer record?
      instructions:
      - text: Get the default customer record template.
      - text: Show me the default field values for a new customer.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers/Default.archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive customers by ID list
      effect: write
      questions:
      - How do I archive several customers at once instead of deleting them?
      - Can I archive customers through the archive action by passing their IDs?
      instructions:
      - text: Archive customers {ids} using the archive action.
        slots:
          ids: query.ids
      - text: Run the customer archive action for IDs {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})/Default.userProfilesWithRolesFilter()'].get
  update:
    x-apievangelist-phrasing:
      intent: List a customer's users filtered by role
      effect: read
      questions:
      - Which user profiles with roles belong to a customer, via the userProfilesWithRolesFilter function?
      - How do I call the role-filtered user profile function on a customer ID?
      instructions:
      - text: Call userProfilesWithRolesFilter for customer {id}.
        slots:
          id: path.id
      - text: List role-filtered user profiles on customer {id} through the OData function.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers/formessage(messageId={messageId})'].get
  update:
    x-apievangelist-phrasing:
      intent: List customers available for a message
      effect: read
      questions:
      - Which customers can a given site message be targeted to?
      - How do I see the customers available for a message ID?
      instructions:
      - text: List the customers available for message {messageId}.
        slots:
          messageId: path.messageId
      - text: Show which customers message {messageId} can be assigned to.
        slots:
          messageId: path.messageId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/userProfilesWithRolesFilter'].get
  update:
    x-apievangelist-phrasing:
      intent: Get role-filtered users via customer key route
      effect: read
      questions:
      - Is there a plain route, not the OData function, for a customer's users with roles?
      - How do I get user profiles with roles using the customer key path?
      instructions:
      - text: Get users with roles for customer key {key} via the userProfilesWithRolesFilter route.
        slots:
          key: path.key
      - text: Fetch the role-filtered user list on the customers({key}) route.
        slots:
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers/archive'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive customers through the archive route
      effect: destructive
      questions:
      - Can I archive a batch of customers with a DELETE call on the archive route?
      - What happens to customers sent to the customers/archive endpoint?
      instructions:
      - text: Archive customers {ids} via the DELETE archive route.
        slots:
          ids: query.ids
      - text: Send customer IDs {ids} to the customers/archive endpoint.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk delete customers by ID
      effect: destructive
      questions:
      - How do I delete many customers in one request?
      - Can I bulk remove customer records by passing a list of IDs?
      instructions:
      - text: Bulk delete customers {ids}.
        slots:
          ids: query.ids
      - text: 'Permanently remove all of these customers: {ids}.'
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/budgetcalendars({budgetcalendarKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a customer's budget calendar
      effect: read
      questions:
      - Is there a call to read one budget calendar attached to a customer?
      - Which budget periods does a customer's budget calendar define?
      instructions:
      - text: Get budget calendar {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.budgetcalendarKey
      - text: Show the budget periods in calendar {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.budgetcalendarKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/carriers({carrierKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a carrier assigned to a customer
      effect: read
      questions:
      - Can I check a specific shipping carrier linked to a customer?
      - Is a given carrier allowed for this customer account?
      instructions:
      - text: Get carrier {item} assigned to customer {customer}.
        slots:
          customer: path.key
          item: path.carrierKey
      - text: Show shipping carrier {item} details for customer {customer}.
        slots:
          customer: path.key
          item: path.carrierKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customercostcodes({customercostcodeKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a customer's cost code
      effect: read
      questions:
      - Where do I look up a cost code defined for a customer?
      - What does a particular customer cost code describe?
      instructions:
      - text: Get cost code {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.customercostcodeKey
      - text: Show the description of cost code {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.customercostcodeKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customerorders({customerorderKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one order placed by a customer
      effect: read
      questions:
      - Can I pull a specific order that a customer placed?
      - Can I read an order through its customer's record?
      instructions:
      - text: Get order {item} placed by customer {customer}.
        slots:
          customer: path.key
          item: path.customerorderKey
      - text: Show order {item} from customer {customer}'s order history.
        slots:
          customer: path.key
          item: path.customerorderKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customerproducts({customerproductKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a customer-specific product entry
      effect: read
      questions:
      - Where can I see a customer-specific product entry, like their own part number?
      - Where are customer product settings stored for one account?
      instructions:
      - text: Get customer product entry {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.customerproductKey
      - text: Show the customer-specific product setting {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.customerproductKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customerproductsets({customerproductsetKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product set assigned to a customer
      effect: read
      questions:
      - Where do I find a product set assigned to a customer?
      - Which product set is linked to this customer account?
      instructions:
      - text: Get product set {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.customerproductsetKey
      - text: Show product set {item} assigned to customer {customer}.
        slots:
          customer: path.key
          item: path.customerproductsetKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property on a customer
      effect: read
      questions:
      - Where would I read a custom property stored on a customer?
      - Can I fetch one extra attribute I added to a customer record?
      instructions:
      - text: Get custom property {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.custompropertyKey
      - text: Show the value of custom field {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.custompropertyKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/globalwishlists({wishlistKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a global wish list for a customer
      effect: read
      questions:
      - Can I open a global wish list shared with a customer?
      - Which global lists are available to a customer account?
      instructions:
      - text: Get global wish list {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      - text: Show shared global list {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/productvisibilityadditions({productKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a product made visible to a customer
      effect: read
      questions:
      - How do I confirm a product was explicitly added to a customer's visible catalog?
      - Is a given product in the visibility additions for this customer?
      instructions:
      - text: Get visibility addition for product {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.productKey
      - text: Check whether product {item} was added to customer {customer}'s visible products.
        slots:
          customer: path.key
          item: path.productKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/productvisibilityexceptions({productKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a product hidden from a customer
      effect: read
      questions:
      - Can I see if a product is excluded from what a customer can view?
      - Is a product on a customer's visibility exception list?
      instructions:
      - text: Get visibility exception for product {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.productKey
      - text: Check whether product {item} is hidden from customer {customer}.
        slots:
          customer: path.key
          item: path.productKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/restrictiongroupadditions({restrictiongroupKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a restriction group added to a customer
      effect: read
      questions:
      - How do I check a restriction group added to a customer?
      - Which catalog restriction group additions apply to this account?
      instructions:
      - text: Get restriction group addition {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.restrictiongroupKey
      - text: Show added restriction group {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.restrictiongroupKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/restrictiongroupcustomers({restrictiongroupcustomerKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a customer's restriction group membership
      effect: read
      questions:
      - Where is the membership row linking a customer to a restriction group?
      - Is this customer a member of a particular restriction group?
      instructions:
      - text: Get restriction group membership {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.restrictiongroupcustomerKey
      - text: Show the restriction group customer link {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.restrictiongroupcustomerKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/restrictiongroupexceptions({restrictiongroupKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a restriction group excepted for a customer
      effect: read
      questions:
      - Where can I see a restriction group a customer is exempted from?
      - Which restriction group exceptions are set on this customer?
      instructions:
      - text: Get restriction group exception {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.restrictiongroupKey
      - text: Show exempted restriction group {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.restrictiongroupKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/ruleclauses({ruleclauseKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a rule clause tied to a customer
      effect: read
      questions:
      - Where do I read a rule clause attached to a customer?
      - What conditions does a customer's rule clause contain?
      instructions:
      - text: Get rule clause {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.ruleclauseKey
      - text: Show the conditions in rule clause {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.ruleclauseKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/userprofiles({userprofileKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user profile under a customer
      effect: read
      questions:
      - Is there a call to fetch one buyer user profile belonging to a customer?
      - Can I read a specific user's profile through their customer account?
      instructions:
      - text: Get user profile {item} under customer {customer}.
        slots:
          customer: path.key
          item: path.userprofileKey
      - text: Show buyer user {item} on customer account {customer}.
        slots:
          customer: path.key
          item: path.userprofileKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/websites({websiteKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a website assigned to a customer
      effect: read
      questions:
      - Which website is a customer assigned to?
      - Can I read a storefront website through its customer link?
      instructions:
      - text: Get website {item} assigned to customer {customer}.
        slots:
          customer: path.key
          item: path.websiteKey
      - text: Show storefront site {item} linked to customer {customer}.
        slots:
          customer: path.key
          item: path.websiteKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/wishlistadditions({wishlistKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a wish list added to a customer
      effect: read
      questions:
      - Can I read a wish list explicitly added to a customer?
      - Which wish list additions are granted to this customer?
      instructions:
      - text: Get wish list addition {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      - text: Show added wish list {item} granted to customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/wishlistexceptions({wishlistKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a wish list excluded for a customer
      effect: read
      questions:
      - Where can I see a wish list a customer is excluded from?
      - Is a shared wish list on this customer's exception list?
      instructions:
      - text: Get wish list exception {item} for customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      - text: Show excluded wish list {item} on customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/wishlists({wishlistKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a customer's own wish list
      effect: read
      questions:
      - Is there a call to read one of a customer's own saved wish lists?
      - What products are in a particular wish list a customer owns?
      instructions:
      - text: Get wish list {item} owned by customer {customer}.
        slots:
          customer: path.key
          item: path.wishlistKey
      - text: Show the products saved in customer {customer}'s list {item}.
        slots:
          customer: path.key
          item: path.wishlistKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/profiles'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a customer profile's attributes
      effect: read
      questions:
      - How do I get the attributes and identifiers stored for a customer profile?
      - Which identifiers are linked to a customer, like email or customer ID?
      instructions:
      - text: Look up the customer profile matching {params}.
        slots:
          params: query.params
      - text: Get attributes and identifiers for the customer identified by {params}.
        slots:
          params: query.params
      method: generated
      generated: '2026-09-26'
- target: $.paths['/profiles'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update customer attributes
      effect: write
      questions:
      - How do I create or update customer profiles with new attributes?
      - Can I send updated identifiers for a customer in one call?
      instructions:
      - text: Create or update customer profiles with the attributes I provide.
      - text: Upsert these customer identifiers and attributes into the profiles store.
      method: generated
      generated: '2026-09-26'