# 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 People API version: 1.0.0 extends: openapi/boom-ai-cdp-people-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: 6 - target: $.paths['/api/v1/cdp/people'].get update: x-apievangelist-phrasing: intent: List people in the CDP effect: read questions: - Who are the most recently added people in my customer data? - Can I page through every person profile in the CDP? instructions: - text: List the people in my CDP, newest first. - text: Show the next {limit} people after cursor {cursor}. slots: limit: query.limit cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/people'].post update: x-apievangelist-phrasing: intent: Create or update a person effect: write questions: - How do I add a customer with their phone number so Boom can reach them? - Are a person's custom attributes merged or overwritten when I update them? instructions: - text: Upsert person {externalId} with email {email} and phone {phoneNumber}. slots: externalId: requestBody.externalId email: requestBody.email phoneNumber: requestBody.phoneNumber - text: Save person {externalId} named {firstName} {lastName}. slots: externalId: requestBody.externalId firstName: requestBody.firstName lastName: requestBody.lastName - text: Set the custom attributes of person {externalId} to {attributes}. slots: externalId: requestBody.externalId attributes: requestBody.attributes method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/people/{externalId}'].get update: x-apievangelist-phrasing: intent: Read one person by external id effect: read questions: - What profile data do we hold for a customer with a known external id? - Can I fetch a person directly by my own system's id? instructions: - text: Get person {externalId}. slots: externalId: path.externalId - text: Show the CDP profile for customer {externalId}. slots: externalId: path.externalId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/people/{externalId}'].delete update: x-apievangelist-phrasing: intent: Delete a person effect: destructive questions: - Are a person's events kept when I delete their profile? - How do I remove a customer from the CDP? instructions: - text: Delete person {externalId}. slots: externalId: path.externalId - text: Remove customer {externalId} and their outgoing links. slots: externalId: path.externalId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/people/batch'].post update: x-apievangelist-phrasing: intent: Bulk upsert people effect: write questions: - How many customers can I import into the CDP in one request? - Is a bulk people import safe to retry? instructions: - text: 'Bulk upsert these people: {items}.' slots: items: requestBody.items - text: 'Import up to 1000 customer profiles at once: {items}.' slots: items: requestBody.items method: generated generated: '2026-09-26' - target: $.paths['/api/v1/cdp/people/search'].get update: x-apievangelist-phrasing: intent: Search people by name, email or phone effect: read questions: - How do I find a customer when I only know part of their email or phone number? - Can I search people by name and get the best matches first? instructions: - text: Search my people for {query}. slots: query: query.query - text: Find the top {limit} people matching {query}. slots: query: query.query limit: query.limit method: generated generated: '2026-09-26'