# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Optimizely Campaigns API version: 1.0.0 extends: openapi/optimizely-campaigns-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: 17 - target: $.paths['/campaigns'].get update: x-apievangelist-phrasing: intent: List editorial calendar campaigns effect: read questions: - Which content campaigns are on my editorial calendar? - Can I page through campaigns with a limit and offset? instructions: - text: List the content campaigns in my editorial calendar. - text: Show {limit} editorial campaigns starting at offset {offset}. slots: limit: query.limit offset: query.offset method: generated generated: '2026-09-26' - target: $.paths['/campaigns'].post update: x-apievangelist-phrasing: intent: Create a content marketing campaign effect: write questions: - How do I create a new campaign in my content marketing calendar? - Can a new campaign be nested under a parent campaign with start and end dates? - Is it possible to give a new campaign an owner and a color? instructions: - text: Create a campaign titled {title}. slots: title: requestBody.title - text: Create campaign {title} running from {start_date} to {end_date} under parent {parent_campaign}. slots: title: requestBody.title start_date: requestBody.start_date end_date: requestBody.end_date parent_campaign: requestBody.parent_campaign - text: Start a new campaign {title} owned by {owner_id}. slots: title: requestBody.title owner_id: requestBody.owner_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaignId}'].get update: x-apievangelist-phrasing: intent: Get an editorial calendar campaign effect: read questions: - What are the details of one content campaign on my editorial calendar? - Can I look up an editorial calendar campaign by its campaignId? instructions: - text: Get editorial calendar campaign {campaignId}. slots: campaignId: path.campaignId - text: Show me the calendar entry for content campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}'].get update: x-apievangelist-phrasing: intent: Get a content campaign record by id effect: read questions: - Where do I read the CMP campaign record that its fields, comments and attachments hang off? - What does the content marketing platform return for a campaign I fetch by plain id? instructions: - text: Fetch the CMP campaign record {id}. slots: id: path.id - text: Pull up content marketing campaign {id} before I edit its fields. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}'].patch update: x-apievangelist-phrasing: intent: Update a content campaign's title or dates effect: write questions: - How do I rename a content marketing campaign or move its dates? - Can I reassign the owner of a CMP campaign? instructions: - text: Retitle content campaign {id} to {title}. slots: id: path.id title: requestBody.title - text: Move content campaign {id} to run {start_date} through {end_date}. slots: id: path.id start_date: requestBody.start_date end_date: requestBody.end_date - text: Make {owner_id} the owner of content campaign {id}. slots: id: path.id owner_id: requestBody.owner_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}/comments'].post update: x-apievangelist-phrasing: intent: Comment on a campaign effect: write questions: - Can I post a comment on a campaign and mention a teammate? - Does a campaign comment support Markdown and attachments? instructions: - text: Comment {value} on campaign {id}. slots: id: path.id value: requestBody.value - text: Post a note on campaign {id} saying {value} with attachments {attachments}. slots: id: path.id value: requestBody.value attachments: requestBody.attachments method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}/fields'].get update: x-apievangelist-phrasing: intent: List a campaign's custom fields effect: read questions: - Which custom fields are defined on a given campaign? - Can I page through a campaign's fields with a page size? instructions: - text: List the fields on campaign {id}. slots: id: path.id - text: Show {page_size} fields of campaign {id} from offset {offset}. slots: id: path.id page_size: query.page_size offset: query.offset method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}/fields'].post update: x-apievangelist-phrasing: intent: Add a field to a campaign effect: write questions: - How do I attach a new custom field to a campaign? - Can I extend a campaign with an additional field? instructions: - text: Add a field to campaign {id}. slots: id: path.id - text: Attach a new custom field to campaign {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}/brief'].get update: x-apievangelist-phrasing: intent: Get a campaign's brief effect: read questions: - Where can I read the brief written for a campaign? - What does the brief of a content campaign contain? instructions: - text: Get the brief for campaign {id}. slots: id: path.id - text: Show me campaign {id}'s creative brief. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{id}/attachments'].post update: x-apievangelist-phrasing: intent: Attach an uploaded file to a campaign effect: write questions: - How do I attach a file I already uploaded to a campaign? - What upload key do I need to add an attachment to a campaign? instructions: - text: Attach uploaded file {key} named {name} to campaign {id}. slots: id: path.id key: requestBody.key name: requestBody.name - text: Add attachment {name} from upload session {key} to campaign {id}. slots: id: path.id key: requestBody.key name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaign_id}/fields/{field_id}'].put update: x-apievangelist-phrasing: intent: Set a campaign field's value effect: write questions: - How do I change the value of one custom field on a campaign? - Can I update a single campaign field without touching the rest of the campaign? instructions: - text: Update field {field_id} on campaign {campaign_id}. slots: campaign_id: path.campaign_id field_id: path.field_id - text: Set a new value for field {field_id} of campaign {campaign_id}. slots: campaign_id: path.campaign_id field_id: path.field_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaign_id}'].get update: x-apievangelist-phrasing: intent: Get an experimentation campaign effect: read questions: - What are the full details of a Web Experimentation personalization campaign? - Can I look up an experimentation campaign by campaign_id to see its project and status? instructions: - text: Get experimentation campaign {campaign_id}. slots: campaign_id: path.campaign_id - text: Show project and status details for personalization campaign {campaign_id}. slots: campaign_id: path.campaign_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaign_id}'].delete update: x-apievangelist-phrasing: intent: Archive or delete a campaign effect: destructive questions: - How do I remove a personalization campaign I no longer need? - Does deleting a campaign archive it or remove it permanently? instructions: - text: Delete campaign {campaign_id}. slots: campaign_id: path.campaign_id - text: Archive personalization campaign {campaign_id}. slots: campaign_id: path.campaign_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaign_id}'].patch update: x-apievangelist-phrasing: intent: Rename or change status of a campaign effect: write questions: - How do I change the status of an experimentation campaign? - Can I move a personalization campaign to another project or rename it? instructions: - text: Set the status of campaign {campaign_id} to {status}. slots: campaign_id: path.campaign_id status: requestBody.status - text: Rename experimentation campaign {campaign_id} to {name}. slots: campaign_id: path.campaign_id name: requestBody.name - text: Move campaign {campaign_id} into project {project_id}. slots: campaign_id: path.campaign_id project_id: requestBody.project_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaign_id}/results'].get update: x-apievangelist-phrasing: intent: Get a campaign's statistical results effect: read questions: - How is my personalization campaign performing statistically? - Where can I see the results of a campaign? instructions: - text: Get results for campaign {campaign_id}. slots: campaign_id: path.campaign_id - text: Show the statistical performance of campaign {campaign_id}. slots: campaign_id: path.campaign_id method: generated generated: '2026-09-26' - target: $.paths['/campaigns/{campaign_id}/results/share'].get update: x-apievangelist-phrasing: intent: Get a shareable results link for a campaign effect: read questions: - Can I share a campaign's results page with someone who has no Optimizely account? - Is a public read-only results link risky to share widely? instructions: - text: Get a shareable results link for campaign {campaign_id}. slots: campaign_id: path.campaign_id - text: Generate a read-only share URL for the results page of campaign {campaign_id}. slots: campaign_id: path.campaign_id method: generated generated: '2026-09-26' - target: $.paths['/export/campaigns/{campaign_id}/results/csv'].get update: x-apievangelist-phrasing: intent: Export campaign results as CSV effect: read questions: - How do I download a campaign's results as a CSV file? - Can I export campaign results segmented by device or browser? - Is it possible to limit the CSV export to a time window? instructions: - text: Export results for campaign {campaign_id} as CSV. slots: campaign_id: path.campaign_id - text: Export CSV results for campaign {campaign_id} from {start_time} to {end_time}. slots: campaign_id: path.campaign_id start_time: query.start_time end_time: query.end_time - text: Download campaign {campaign_id} results as CSV segmented by device {device}. slots: campaign_id: path.campaign_id device: query.device method: generated generated: '2026-09-26'