Omnisend · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Campaigns API
15 actions
15 updates
phrasing
extends
openapi/omnisend-campaigns-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Omnisend's API. It is a proposal applied on top of the contract, not a document Omnisend publishes.
What the actions change
x-apievangelist-phrasing
Targets 15
$.info
$.paths['/campaigns'].get
$.paths['/campaigns'].post
$.paths['/campaigns/{id}'].get
$.paths['/campaigns/{id}'].delete
$.paths['/campaigns/{id}'].patch
$.paths['/campaigns/{id}/ab-test/resume'].post
$.paths['/campaigns/{id}/ab-test/stop'].post
$.paths['/campaigns/{id}/ab-test/winner'].post
$.paths['/campaigns/{id}/cancel'].post
$.paths['/campaigns/{id}/copy'].post
$.paths['/campaigns/{id}/send'].post
$.paths['/campaigns/{id}/test-email'].post
$.paths['/campaigns/{id}/utm'].get
$.paths['/campaigns/{id}/utm'].put
OpenAPI Overlay
# 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'