# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Campaigns API version: 1.0.0 extends: openapi/omnisend-campaigns-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-02' generator: build-phrasing.py label: Generated by API Evangelist operations: 14 - target: $.paths['/campaigns'].get update: x-apievangelist-phrasing: intent: List campaigns effect: read questions: - Which of my campaigns are still drafts? - Can I list only SMS campaigns created this month? - What booster campaigns belong to a specific parent campaign? instructions: - text: List campaigns with status {status}. slots: status: query.status - text: List {channel} campaigns whose name contains {nameContains}. slots: channel: query.channel nameContains: query.nameContains - text: List the campaigns whose parent campaign is {parentCampaignID}. slots: parentCampaignID: query.parentCampaignID method: generated generated: '2026-10-02' - target: $.paths['/campaigns'].post update: x-apievangelist-phrasing: intent: Create a campaign draft effect: write questions: - How do I create a new email campaign draft? - Can I set up a booster resend for a campaign that was already sent? - What's needed to create an A/B test campaign? instructions: - text: Create a {channel} campaign draft of type {type} named {name}. slots: channel: requestBody.channel type: requestBody.type name: requestBody.name - text: Create a {type} campaign on channel {channel} with booster settings {boosterSettings}. slots: type: requestBody.type channel: requestBody.channel boosterSettings: requestBody.boosterSettings method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}'].get update: x-apievangelist-phrasing: intent: Get one campaign effect: read questions: - What content and audience does one particular campaign have? - Can I check a single campaign's current status by its ID? instructions: - text: Show campaign {id}. slots: id: path.id - text: Fetch the settings, audience and status of campaign {id}. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a campaign effect: destructive questions: - Can I delete a campaign I don't need anymore? - What's the way to get rid of an existing booster so I can replace it? instructions: - text: Delete campaign {id}. slots: id: path.id - text: Remove the existing booster campaign {id} so I can create a new one. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}'].patch update: x-apievangelist-phrasing: intent: Edit a draft campaign effect: write questions: - Why does editing my campaign return a conflict once it's scheduled? - Can I change the audience or content of a campaign that is still a draft? instructions: - text: Rename draft campaign {id} to {name}. slots: id: path.id name: requestBody.name - text: Update the audience of draft campaign {id} to {audience}. slots: id: path.id audience: requestBody.audience - text: Change the sending settings of draft campaign {id} to {sendingSettings}. slots: id: path.id sendingSettings: requestBody.sendingSettings method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/ab-test/resume'].post update: x-apievangelist-phrasing: intent: Resume a stopped A/B test effect: write questions: - Can I restart automatic winner selection on an A/B test I stopped earlier? - What does resuming a stopped A/B test campaign do? instructions: - text: Resume the stopped A/B test on campaign {id}. slots: id: path.id - text: Let automatic winner selection consider campaign {id} again. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/ab-test/stop'].post update: x-apievangelist-phrasing: intent: Stop a running A/B test effect: write questions: - How do I halt automatic winner picking on a running A/B test? - Can I freeze an A/B test while the campaign is in started status? instructions: - text: Stop the A/B test on campaign {id}. slots: id: path.id - text: Halt the winner-selection phase of A/B campaign {id}. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/ab-test/winner'].post update: x-apievangelist-phrasing: intent: Pick an A/B test winner manually effect: write questions: - Can I manually choose which A/B variant wins and gets sent? - What happens right after I pick an A/B test winner myself? instructions: - text: Pick variant {variantID} as the winner of campaign {id}'s A/B test. slots: variantID: requestBody.variantID id: path.id - text: Send variant {variantID} of A/B campaign {id} as the winner now. slots: variantID: requestBody.variantID id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a campaign effect: destructive questions: - Can I cancel a scheduled campaign before it goes out? - Which campaign statuses can be canceled, and can an SMS campaign be canceled once started? instructions: - text: Cancel campaign {id}. slots: id: path.id - text: Cancel the scheduled or paused send of campaign {id}. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/copy'].post update: x-apievangelist-phrasing: intent: Copy a campaign into a new draft effect: write questions: - How do I reuse a sent campaign by making an editable draft copy? - Does duplicating a campaign change the original one? instructions: - text: Copy campaign {id} into a new draft. slots: id: path.id - text: Duplicate campaign {id} with its content, audience and settings. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/send'].post update: x-apievangelist-phrasing: intent: Send a draft campaign effect: write questions: - How do I send a draft campaign out to its audience? - Can I send the same campaign a second time after it has gone out? instructions: - text: Send campaign {id}. slots: id: path.id - text: Submit draft campaign {id} for sending on its schedule. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/test-email'].post update: x-apievangelist-phrasing: intent: Send a test email of a campaign effect: write questions: - Can I email myself a preview of a draft campaign before sending it? - How many addresses can receive a campaign test email? instructions: - text: Send a test of campaign {id} to {recipients}. slots: id: path.id recipients: requestBody.recipients - text: Email a preview of draft campaign {id} to {recipients}. slots: id: path.id recipients: requestBody.recipients method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/utm'].get update: x-apievangelist-phrasing: intent: Get a campaign's UTM settings effect: read questions: - What UTM tags are set on my campaign's links? - Can I see the per-variant UTM settings of an A/B campaign? instructions: - text: Show UTM settings for campaign {id}. slots: id: path.id - text: Get the UTM tags of each variant in A/B campaign {id}. slots: id: path.id method: generated generated: '2026-10-02' - target: $.paths['/campaigns/{id}/utm'].put update: x-apievangelist-phrasing: intent: Replace a campaign's UTM settings effect: write questions: - How do I change the UTM tags on a draft campaign? - Can I set different UTM tags for each A/B test variant? instructions: - text: Set UTM tags {tags} on campaign {id}. slots: tags: requestBody.tags id: path.id - text: Set per-variant UTM tags {variants} on A/B campaign {id}. slots: variants: requestBody.variants id: path.id method: generated generated: '2026-10-02'