# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for 2026-07 Promotions API version: 1.0.0 extends: openapi/lightspeed-promotions-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: 8 - target: $.paths['/discount'].post update: x-apievangelist-phrasing: intent: Preview the best promotion for a sale effect: read questions: - Which promotion gives the best discount for this basket? - Can I test a promo code against a sale without changing anything on the server? instructions: - text: Work out the best discount for sale {sale} for customer {customer} at outlet {outlet} on channel {channel}. slots: sale: requestBody.sale customer: requestBody.customer outlet: requestBody.outlet_id channel: requestBody.channel - text: Check promo code {code} against sale {sale} at outlet {outlet} for customer {customer} via {channel}. slots: code: requestBody.promo_code sale: requestBody.sale outlet: requestBody.outlet_id customer: requestBody.customer channel: requestBody.channel method: generated generated: '2026-09-26' - target: $.paths['/promotions'].get update: x-apievangelist-phrasing: intent: List promotions by end date effect: read questions: - What promotions are set up for my retail store? - Can I list only promotions that end after a certain date? instructions: - text: List all my promotions. - text: List promotions ending on or after {from}. slots: from: query.end_time_from - text: List promotions that end before {to}. slots: to: query.end_time_to method: generated generated: '2026-09-26' - target: $.paths['/promotions'].post update: x-apievangelist-phrasing: intent: Create a promotion effect: write questions: - How do I set up a buy-one-get-one or percentage-off deal? - Can a promotion require a promo code and target certain customer groups? instructions: - text: Create promotion {name} starting {start} with condition {condition} and action {action}, promo codes {use_code}. slots: name: requestBody.name start: requestBody.start_time condition: requestBody.condition action: requestBody.action use_code: requestBody.use_promo_code - text: Set up promotion {name} from {start} to {end} for outlets {outlets}, condition {condition}, action {action}, promo code use {use_code}. slots: name: requestBody.name start: requestBody.start_time end: requestBody.end_time outlets: requestBody.outlet_ids condition: requestBody.condition action: requestBody.action use_code: requestBody.use_promo_code method: generated generated: '2026-09-26' - target: $.paths['/promotions/search'].get update: x-apievangelist-phrasing: intent: Search promotions by name, outlet or dates effect: read questions: - Which promotions have 'summer' in their name? - Can I find promotions running at a specific outlet? instructions: - text: Search promotions whose name contains {name}. slots: name: query.name - text: Find promotions linked to outlet {outlet} starting after {start}. slots: outlet: query.outlet_id start: query.start_time method: generated generated: '2026-09-26' - target: $.paths['/promotions/{promotion_id}'].get update: x-apievangelist-phrasing: intent: Get a promotion effect: read questions: - What are the conditions and discount of one specific promotion? - Can I see when a promotion starts and ends? instructions: - text: Get promotion {promotion}. slots: promotion: path.promotion_id - text: Show the rules of promotion {promotion}. slots: promotion: path.promotion_id method: generated generated: '2026-09-26' - target: $.paths['/promotions/{promotion_id}'].put update: x-apievangelist-phrasing: intent: Update a promotion effect: write questions: - Can I change the end date of a running promotion? - Do I have to send every field when editing a promotion? instructions: - text: Update promotion {promotion} with name {name}, start {start}, condition {condition}, action {action}, promo code use {use_code}. slots: promotion: path.promotion_id name: requestBody.name start: requestBody.start_time condition: requestBody.condition action: requestBody.action use_code: requestBody.use_promo_code - text: Extend promotion {promotion} to end at {end}, resending all its fields. slots: promotion: path.promotion_id end: requestBody.end_time method: generated generated: '2026-09-26' - target: $.paths['/promotions/{promotion_id}/products'].get update: x-apievangelist-phrasing: intent: List products a promotion applies to effect: read questions: - Which products are discounted by a promotion and at what price? - Can I search a promotion's products by product name? instructions: - text: List the products covered by promotion {promotion}. slots: promotion: path.promotion_id - text: Find products named {name} in promotion {promotion}. slots: name: query.name promotion: path.promotion_id method: generated generated: '2026-09-26' - target: $.paths['/promotions/{promotion_id}/promocodes'].get update: x-apievangelist-phrasing: intent: List a promotion's promo codes effect: read questions: - What promo codes belong to a promotion? - Can I export the codes customers can enter for a deal? instructions: - text: List the promo codes for promotion {promotion}. slots: promotion: path.promotion_id - text: Show every code customers can use for promotion {promotion}. slots: promotion: path.promotion_id method: generated generated: '2026-09-26'