# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Boom CDP Custom Objects API version: 1.0.0 extends: openapi/boom-ai-cdp-custom-objects-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['/api/v1/cdp/custom-objects'].get update: x-apievangelist-phrasing: intent: List custom objects of one type effect: read questions: - Which orders or other custom records have I stored in the CDP for a given type? - Can I page through all custom objects of one type, newest first? instructions: - text: List my {type} custom objects. slots: type: query.type - text: Show the latest {limit} custom objects of type {type}. slots: type: query.type limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects'].post update: x-apievangelist-phrasing: intent: Create or update a custom object effect: write questions: - How do I save a single order or subscription record into the CDP? - Are a custom object's attributes merged or fully replaced when I upsert it again? instructions: - text: Upsert {type} object {externalId} with attributes {attributes}. slots: type: requestBody.type externalId: requestBody.externalId attributes: requestBody.attributes - text: Save a {type} record {externalId} labeled {displayName}. slots: type: requestBody.type externalId: requestBody.externalId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects/{type}/{externalId}'].get update: x-apievangelist-phrasing: intent: Read one custom object effect: read questions: - What attributes are stored on a specific custom object? - Can I look up a custom record by its type and my own external id? instructions: - text: Get {type} object {externalId}. slots: type: path.type externalId: path.externalId - text: Show me the stored {type} record with id {externalId}. slots: type: path.type externalId: path.externalId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects/{type}/{externalId}'].delete update: x-apievangelist-phrasing: intent: Delete a custom object effect: destructive questions: - What happens to a custom object's relationships when I delete it? - Is deleting a custom object safe to repeat? instructions: - text: Delete {type} object {externalId}. slots: type: path.type externalId: path.externalId - text: Remove the {type} record {externalId} and its links. slots: type: path.type externalId: path.externalId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects/batch'].post update: x-apievangelist-phrasing: intent: Bulk upsert custom objects effect: write questions: - How many custom objects can I load into the CDP in a single request? - Is it safe to retry a bulk custom object import that failed partway? instructions: - text: 'Bulk upsert these custom objects: {items}.' slots: items: requestBody.items - text: 'Import this batch of up to 1000 custom records: {items}.' slots: items: requestBody.items method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects/types'].get update: x-apievangelist-phrasing: intent: List custom object types effect: read questions: - Which custom object types have been defined for my organization? - What kinds of custom records can I store in the CDP today? instructions: - text: List my custom object types. - text: Show every custom object type defined in the CDP. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects/types'].post update: x-apievangelist-phrasing: intent: Define a new custom object type effect: write questions: - How do I define a new kind of custom record, like orders, before loading any? - Why is my custom object upsert rejected for an unknown type? instructions: - text: Create a custom object type {name} labeled {displayName}. slots: name: requestBody.name displayName: requestBody.displayName - text: Define object type {name} ({displayName}) described as {description}. slots: name: requestBody.name displayName: requestBody.displayName description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/custom-objects/types/{type}'].get update: x-apievangelist-phrasing: intent: Read one custom object type effect: read questions: - What is the label and description of a particular custom object type? - Does a given custom object type exist yet? instructions: - text: Get custom object type {type}. slots: type: path.type - text: Show the definition of object type {type}. slots: type: path.type method: generated generated: '2026-09-26'