# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Iterable Campaigns API version: 1.0.0 extends: openapi/iterable-campaigns-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 16 - target: $.paths['/api/campaigns'].get update: x-apievangelist-phrasing: intent: Page through campaign metadata by state effect: read questions: - Can I page through all my campaigns and filter them by campaign state? - Which of my Iterable campaigns are currently running, sorted by creation date? instructions: - text: List campaigns in the {campaignState} state, page {page} with {pageSize} per page. slots: campaignState: query.campaignState page: query.page pageSize: query.pageSize - text: Show campaign metadata sorted by {sort}. slots: sort: query.sort method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/abort'].post update: x-apievangelist-phrasing: intent: Abort a running campaign effect: destructive questions: - How do I stop a blast campaign that is already sending? - Is there a way to abort a campaign mid-send? instructions: - text: Abort campaign {campaignId} right now. slots: campaignId: requestBody.campaignId - text: Halt the in-progress send of campaign {campaignId}. slots: campaignId: requestBody.campaignId method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/activateTriggered'].post update: x-apievangelist-phrasing: intent: Activate a triggered campaign effect: write questions: - Can I turn on a triggered campaign through the API? - What do I call to make a triggered campaign live again? instructions: - text: Activate triggered campaign {campaignId}. slots: campaignId: requestBody.campaignId - text: Switch triggered campaign {campaignId} back on so it starts sending. slots: campaignId: requestBody.campaignId method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/archive'].post update: x-apievangelist-phrasing: intent: Archive one or more campaigns effect: destructive questions: - Can I archive several campaigns at once, like the archive button in the UI? - What happens to scheduled or recurring campaigns when I archive them? instructions: - text: Archive campaigns {campaignIds}. slots: campaignIds: requestBody.campaignIds - text: Move campaigns {campaignIds} to the archive and cancel any scheduled sends. slots: campaignIds: requestBody.campaignIds method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a scheduled or recurring campaign effect: destructive questions: - How do I cancel a campaign that is scheduled but hasn't sent yet? - Can I stop a recurring campaign from sending future runs? instructions: - text: Cancel scheduled campaign {campaignId}. slots: campaignId: requestBody.campaignId - text: Call off the recurring campaign {campaignId}. slots: campaignId: requestBody.campaignId method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/create'].post update: x-apievangelist-phrasing: intent: Create a blast or triggered campaign from a template effect: write questions: - Can I create a campaign with labels, a send mode and a default time zone via the API? - Which channels can a campaign created from an existing template use? - Is it possible to create a campaign and schedule it to send in recipients' local time? instructions: - text: Create campaign {name} from template {templateId} targeting lists {listIds}. slots: name: requestBody.name templateId: requestBody.templateId listIds: requestBody.listIds - text: Create campaign {name} using template {templateId} for lists {listIds}, scheduled for {sendAt} with send mode {sendMode}. slots: name: requestBody.name templateId: requestBody.templateId listIds: requestBody.listIds sendAt: requestBody.sendAt sendMode: requestBody.sendMode - text: Create campaign {name} from template {templateId} for lists {listIds}, tagged with labels {labelIds}. slots: name: requestBody.name templateId: requestBody.templateId listIds: requestBody.listIds labelIds: requestBody.labelIds method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/deactivateTriggered'].post update: x-apievangelist-phrasing: intent: Deactivate a triggered campaign effect: write questions: - Can I pause a triggered campaign without archiving it? - What turns off a triggered campaign so API calls stop sending it? instructions: - text: Deactivate triggered campaign {campaignId}. slots: campaignId: requestBody.campaignId - text: Turn off triggered campaign {campaignId} for now. slots: campaignId: requestBody.campaignId method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/metrics'].get update: x-apievangelist-phrasing: intent: Get metrics for campaigns in a date window effect: read questions: - What is the rate limit when pulling campaign metrics from the /api/campaigns endpoint? - Can I get metrics for several campaigns between two dates? instructions: - text: Get metrics for campaign {campaignId} from {startDateTime} to {endDateTime}. slots: campaignId: query.campaignId startDateTime: query.startDateTime endDateTime: query.endDateTime - text: Pull the /api campaign metrics for campaign {campaignId}. slots: campaignId: query.campaignId method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/recurring/{id}/childCampaigns'].get update: x-apievangelist-phrasing: intent: List child campaigns of a recurring campaign effect: read questions: - How can I see every campaign a recurring campaign has generated? - Can I filter a recurring campaign's child runs by state? instructions: - text: List child campaigns of recurring campaign {id}. slots: id: path.id - text: Show child campaigns of recurring campaign {id} in state {campaignState}, page {page}. slots: id: path.id campaignState: query.campaignState page: query.page method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/trigger'].post update: x-apievangelist-phrasing: intent: Trigger a campaign to send to lists effect: write questions: - Can I fire a triggered campaign at specific lists via the API? - Is it possible to exclude suppression lists when triggering a campaign? instructions: - text: Trigger campaign {campaignId} for lists {listIds}. slots: campaignId: requestBody.campaignId listIds: requestBody.listIds - text: Trigger campaign {campaignId} for lists {listIds}, suppressing lists {suppressionListIds}. slots: campaignId: requestBody.campaignId listIds: requestBody.listIds suppressionListIds: requestBody.suppressionListIds method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/{campaignId}/schedule'].post update: x-apievangelist-phrasing: intent: Schedule an existing campaign to send later effect: write questions: - Can I schedule an already-created campaign for a future time? - Does scheduling support sending in each recipient's time zone? instructions: - text: Schedule campaign {campaignId} to send at {sendAt}. slots: campaignId: path.campaignId sendAt: requestBody.sendAt - text: Schedule campaign {campaignId} for {sendAt} in recipient local time {recipientTimeZone}. slots: campaignId: path.campaignId sendAt: requestBody.sendAt recipientTimeZone: requestBody.recipientTimeZone method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/{campaignId}/send'].post update: x-apievangelist-phrasing: intent: Send an existing campaign immediately effect: write questions: - How do I send a campaign I already built right now instead of scheduling it? - Can an existing campaign be launched immediately through the API? instructions: - text: Send campaign {campaignId} now. slots: campaignId: path.campaignId - text: Launch existing campaign {campaignId} immediately. slots: campaignId: path.campaignId method: generated generated: '2026-10-01' - target: $.paths['/api/campaigns/{id}'].get update: x-apievangelist-phrasing: intent: Get one campaign by ID effect: read questions: - Where can I look up the details of a single campaign by its ID? - What does a campaign record include when fetched individually? instructions: - text: Get campaign {id}. slots: id: path.id - text: Show me the details of campaign {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/campaigns'].get update: x-apievangelist-phrasing: intent: List all campaigns via the simple endpoint effect: read questions: - Is there an unpaginated list of every campaign with its type and template? - Which endpoint returns all campaigns in the project with no filters at all? instructions: - text: List every campaign using the plain /campaigns endpoint. - text: Give me all campaigns with their type, status and template, unfiltered. method: generated generated: '2026-10-01' - target: $.paths['/campaigns/create'].post update: x-apievangelist-phrasing: intent: Create a campaign via the simple endpoint effect: write questions: - Can I create a campaign with just a name, template and list using the basic /campaigns/create endpoint? - Which minimal fields does the simple create-campaign call need? instructions: - text: Use the basic /campaigns/create call to make campaign {name} with template {templateId} and lists {listIds}. slots: name: requestBody.name templateId: requestBody.templateId listIds: requestBody.listIds - text: Via /campaigns/create, set up campaign {name} from template {templateId} for lists {listIds} sending at {sendAt}. slots: name: requestBody.name templateId: requestBody.templateId listIds: requestBody.listIds sendAt: requestBody.sendAt method: generated generated: '2026-10-01' - target: $.paths['/campaigns/metrics'].get update: x-apievangelist-phrasing: intent: Get campaign engagement metrics effect: read questions: - How many opens, clicks, bounces and complaints did my campaign get? - Can I see sends and unsubscribes for a campaign from the plain /campaigns/metrics endpoint? instructions: - text: Get opens, clicks and unsubscribes for campaign {campaignId} from /campaigns/metrics. slots: campaignId: query.campaignId - text: Pull engagement numbers for campaign {campaignId} since {startDateTime} using the simple metrics endpoint. slots: campaignId: query.campaignId startDateTime: query.startDateTime method: generated generated: '2026-10-01'