# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for SendPulse CRM Public ECommerce Product API version: 1.0.0 extends: openapi/sendpulse-ecommerce-product-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: 19 - target: $.paths['/products/all'].post update: x-apievangelist-phrasing: intent: Search the product catalog with filters effect: read questions: - Can I find products in my catalog by category and price range? - Which of my products are hidden or out of stock? - Is there a way to search products by name and sort the results? instructions: - text: Search my products for {search}. slots: search: requestBody.search - text: Filter catalog products in category {categoryId}, {limit} at a time. slots: categoryId: requestBody.categoryId limit: requestBody.limit method: generated generated: '2026-10-01' - target: $.paths['/products/categories/{categoryId}/{productId}'].get update: x-apievangelist-phrasing: intent: Get a product within a specific category effect: read questions: - Can I look up a product through the category it belongs to? - What details come back for a product when I fetch it by category and product ID? instructions: - text: Get product {productId} from category {categoryId}. slots: productId: path.productId categoryId: path.categoryId - text: Show me item {productId} as listed under category {categoryId}. slots: productId: path.productId categoryId: path.categoryId method: generated generated: '2026-10-01' - target: $.paths['/products/deals'].post update: x-apievangelist-phrasing: intent: Add a product to a CRM deal effect: write questions: - How do I attach a product from my catalog to a sales deal? - Can I set the quantity and price when adding a product to a deal? - Is it possible to add a product to a deal even when it is out of stock? instructions: - text: Add product {productId} to deal {dealId}. slots: productId: requestBody.productId dealId: requestBody.dealId - text: Put {quantity} units of product {productId} on deal {dealId}. slots: quantity: requestBody.quantity productId: requestBody.productId dealId: requestBody.dealId method: generated generated: '2026-10-01' - target: $.paths['/products/deals/{dealId}'].get update: x-apievangelist-phrasing: intent: List the products on a deal effect: read questions: - Which products are attached to a particular deal? - Can I see everything a customer is buying in one deal? instructions: - text: List the products on deal {dealId}. slots: dealId: path.dealId - text: Show what was added to deal {dealId}. slots: dealId: path.dealId method: generated generated: '2026-10-01' - target: $.paths['/products/deals/{headId}'].put update: x-apievangelist-phrasing: intent: Change quantity or amount of a deal product effect: write questions: - Can I change how many units of a product are in a deal? - What if I need to adjust the amount of a product line already on a deal? instructions: - text: Set the quantity of deal product line {headId} to {quantity}. slots: headId: path.headId quantity: requestBody.quantity - text: Change the amount on deal product line {headId} to {amount}. slots: headId: path.headId amount: requestBody.amount method: generated generated: '2026-10-01' - target: $.paths['/products/contacts/{contactId}/deals'].get update: x-apievangelist-phrasing: intent: List products across a contact's deals effect: read questions: - What products has a given contact got across all of their deals? - Can I see every product tied to one contact's deals at once? instructions: - text: List the products in all deals for contact {contactId}. slots: contactId: path.contactId - text: Show what contact {contactId} has bought through deals. slots: contactId: path.contactId method: generated generated: '2026-10-01' - target: $.paths['/products/categories/{categoryId}/{productId}/deals/{headId}'].delete update: x-apievangelist-phrasing: intent: Remove a product from a deal effect: destructive questions: - How do I take a product off a deal? - Can I detach one product line from a deal without deleting the product? instructions: - text: Detach product {productId} in category {categoryId} from deal line {headId}. slots: productId: path.productId categoryId: path.categoryId headId: path.headId - text: Remove deal product line {headId} for item {productId} of category {categoryId}. slots: headId: path.headId productId: path.productId categoryId: path.categoryId method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}'].get update: x-apievangelist-phrasing: intent: Get a product by its ID effect: read questions: - Can I fetch a single product just by its ID? - What information is stored for one product in my catalog? instructions: - text: Get product {productId}. slots: productId: path.productId - text: Show me the full details of product {productId}. slots: productId: path.productId method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}'].put update: x-apievangelist-phrasing: intent: Edit a product's details effect: write questions: - How do I change a product's name, description or images? - Can I update the stock balance or visibility of an existing product? - Is it possible to edit a product's SEO settings? instructions: - text: Rename product {productId} to {name}. slots: productId: path.productId name: requestBody.name - text: Set the stock balance of product {productId} to {balance}. slots: productId: path.productId balance: requestBody.balance method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}'].delete update: x-apievangelist-phrasing: intent: Delete a product from the catalog effect: destructive questions: - Can I permanently remove a product from my store catalog? - What happens when I delete a product by its ID? instructions: - text: Delete product {productId}. slots: productId: path.productId - text: Remove product {productId} from my catalog. slots: productId: path.productId method: generated generated: '2026-10-01' - target: $.paths['/products/categories/{categoryId}'].put update: x-apievangelist-phrasing: intent: Rename or move a product category effect: write questions: - Can I rename a product category? - Is it possible to move a category under a different parent category? instructions: - text: Rename product category {categoryId} to {name}. slots: categoryId: path.categoryId name: requestBody.name - text: Move category {categoryId} under parent category {parentId}. slots: categoryId: path.categoryId parentId: requestBody.parentId method: generated generated: '2026-10-01' - target: $.paths['/products/categories/{categoryId}'].delete update: x-apievangelist-phrasing: intent: Delete a product category effect: destructive questions: - How do I delete a product category I no longer use? - Can I remove a category from my catalog structure? instructions: - text: Delete product category {categoryId}. slots: categoryId: path.categoryId - text: Remove the catalog category {categoryId}. slots: categoryId: path.categoryId method: generated generated: '2026-10-01' - target: $.paths['/products/categories'].get update: x-apievangelist-phrasing: intent: List product categories effect: read questions: - What product categories have I set up? - Can I see the category tree of my catalog? instructions: - text: List all my product categories. - text: Show the categories in my product catalog. method: generated generated: '2026-10-01' - target: $.paths['/products/categories'].post update: x-apievangelist-phrasing: intent: Create a product category effect: write questions: - Can I add a new category to organize my products? - Is it possible to create a subcategory under an existing category? instructions: - text: Create a product category called {name}. slots: name: requestBody.name - text: Add category {name} under parent category {parentId}. slots: name: requestBody.name parentId: requestBody.parentId method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}/prices'].put update: x-apievangelist-phrasing: intent: Update a product's prices effect: write questions: - How do I change the price of a product? - Can I set new prices on a product without editing its other details? instructions: - text: Update the prices of product {productId} to {prices}. slots: productId: path.productId prices: requestBody.prices - text: Change product {productId} pricing. slots: productId: path.productId method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}/sections'].put update: x-apievangelist-phrasing: intent: Replace sections on a product (PUT) effect: write questions: - Can I replace the sections assigned to a product using a PUT request? - Is there a PUT endpoint that overwrites a product's section list? instructions: - text: Replace the sections on product {productId} with {sections} via PUT. slots: productId: path.productId sections: requestBody.sections - text: Use the PUT sections endpoint to update product {productId}. slots: productId: path.productId method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}/sections'].post update: x-apievangelist-phrasing: intent: Update sections on a product (POST) effect: write questions: - Can I update a product's sections with a POST request? - Which endpoint posts new section data to a product? instructions: - text: Post sections {sections} to product {productId}. slots: sections: requestBody.sections productId: path.productId - text: Use the POST sections endpoint for product {productId}. slots: productId: path.productId method: generated generated: '2026-10-01' - target: $.paths['/products/{productId}/sections/{sectionId}'].delete update: x-apievangelist-phrasing: intent: Delete a section from a product effect: destructive questions: - Can I remove one section from a product? - How do I delete a single product section by its ID? instructions: - text: Delete section {sectionId} from product {productId}. slots: sectionId: path.sectionId productId: path.productId - text: Remove section {sectionId} on product {productId}. slots: sectionId: path.sectionId productId: path.productId method: generated generated: '2026-10-01' - target: $.paths['/products'].post update: x-apievangelist-phrasing: intent: Create a new product effect: write questions: - How do I add a new product to my catalog? - Can I create a digital product with its prices and images in one call? - What fields can I set when creating a product, like vendor code or stock balance? instructions: - text: Create a product named {name}. slots: name: requestBody.name - text: Add product {name} with vendor code {vendorCode} in category {categoryId}. slots: name: requestBody.name vendorCode: requestBody.vendorCode categoryId: requestBody.categoryId method: generated generated: '2026-10-01'