Customer.io · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Customer.io App Campaigns API
14 actions
14 updates
phrasing
extends
openapi/customer-io-campaigns-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Customer.io's API. It is a proposal applied on top of the contract, not a document Customer.io publishes.
What the actions change
x-apievangelist-phrasing
Targets 14
$.info
$.paths['/v1/campaigns'].get
$.paths['/v1/campaigns/{campaign_id}'].get
$.paths['/v1/campaigns/{campaign_id}/metrics'].get
$.paths['/v1/campaigns/{campaign_id}/metrics/links'].get
$.paths['/v1/campaigns/{campaign_id}/actions'].get
$.paths['/v1/campaigns/{campaign_id}/messages'].get
$.paths['/v1/campaigns/{campaign_id}/actions/{action_id}'].get
$.paths['/v1/campaigns/{campaign_id}/actions/{action_id}'].put
$.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}'].get
$.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}'].put
$.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/metrics'].get
$.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/metrics/links'].get
$.paths['/v1/campaigns/{campaign_id}/journey_metrics'].get
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 Customer.io App Campaigns API
version: 1.0.0
extends: openapi/customer-io-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: 13
- target: $.paths['/v1/campaigns'].get
update:
x-apievangelist-phrasing:
intent: List campaigns
effect: read
questions:
- What campaigns do I have in my workspace?
- How do I find a campaign's ID?
instructions:
- text: List all my campaigns.
- text: Show every campaign with its metadata.
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a campaign
effect: read
questions:
- How do I look up one campaign's settings and trigger?
- Is a specific campaign currently active?
instructions:
- text: Get campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
- text: Show the metadata for campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/metrics'].get
update:
x-apievangelist-phrasing:
intent: Get campaign metrics
effect: read
questions:
- How is my campaign performing on sends, opens and clicks?
- Can I get campaign metrics for a date range in my timezone?
instructions:
- text: Get version {version} metrics for campaign {campaign_id}.
slots:
version: query.version
campaign_id: path.campaign_id
- text: Show campaign {campaign_id} metrics from {start} to {end} using API version {version}.
slots:
campaign_id: path.campaign_id
start: query.start
end: query.end
version: query.version
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/metrics/links'].get
update:
x-apievangelist-phrasing:
intent: Get link click metrics for a campaign
effect: read
questions:
- Which links across my campaign get clicked most?
- Can I see only unique link clicks for a campaign?
instructions:
- text: Show link click metrics for campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
- text: Get unique link clicks for campaign {campaign_id} by {period}.
slots:
campaign_id: path.campaign_id
period: query.period
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions'].get
update:
x-apievangelist-phrasing:
intent: List the actions in a campaign workflow
effect: read
questions:
- What steps are in my campaign workflow?
- How do I get the action IDs of the tiles in a campaign?
instructions:
- text: List the actions in campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
- text: Show the workflow tiles of campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/messages'].get
update:
x-apievangelist-phrasing:
intent: List deliveries sent by a campaign
effect: read
questions:
- Who received messages from my campaign last week?
- Can I include draft messages when listing a campaign's deliveries?
instructions:
- text: List deliveries from campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
- text: Show campaign {campaign_id} deliveries of type {type} between {start_ts} and {end_ts}.
slots:
campaign_id: path.campaign_id
type: query.type
start_ts: query.start_ts
end_ts: query.end_ts
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions/{action_id}'].get
update:
x-apievangelist-phrasing:
intent: Get one action in a campaign
effect: read
questions:
- How do I read the content of one message in a campaign?
- Can I see the settings of a specific campaign workflow tile?
instructions:
- text: Get action {action_id} in campaign {campaign_id}.
slots:
action_id: path.action_id
campaign_id: path.campaign_id
- text: Show the message body of campaign {campaign_id} action {action_id}.
slots:
campaign_id: path.campaign_id
action_id: path.action_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions/{action_id}'].put
update:
x-apievangelist-phrasing:
intent: Update a message in a campaign
effect: write
questions:
- How do I change the email body of a campaign message through the API?
- Can I update the HTTP request in a campaign webhook action?
instructions:
- text: Update the content of action {action_id} in campaign {campaign_id}.
slots:
action_id: path.action_id
campaign_id: path.campaign_id
- text: Replace the message body of campaign {campaign_id} action {action_id}.
slots:
campaign_id: path.campaign_id
action_id: path.action_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}'].get
update:
x-apievangelist-phrasing:
intent: Get a translated campaign message
effect: read
questions:
- How do I see the German version of a campaign message?
- Can I fetch one language translation of a campaign action?
instructions:
- text: Get the {language} translation of action {action_id} in campaign {campaign_id}.
slots:
language: path.language
action_id: path.action_id
campaign_id: path.campaign_id
- text: Show campaign {campaign_id} action {action_id} in {language}.
slots:
campaign_id: path.campaign_id
action_id: path.action_id
language: path.language
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}'].put
update:
x-apievangelist-phrasing:
intent: Update a translated campaign message
effect: write
questions:
- How do I edit the Japanese translation of a campaign message?
- Can I change one language variant of a campaign action without affecting the default?
instructions:
- text: Update the {language} translation of campaign {campaign_id} action {action_id}.
slots:
language: path.language
campaign_id: path.campaign_id
action_id: path.action_id
- text: Replace the {language} body of action {action_id} in campaign {campaign_id}.
slots:
language: path.language
action_id: path.action_id
campaign_id: path.campaign_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/metrics'].get
update:
x-apievangelist-phrasing:
intent: Get metrics for one campaign action
effect: read
questions:
- How is one message in my campaign performing?
- Can I get sends and opens for a single campaign tile over a date range?
instructions:
- text: Get version {version} metrics for action {action_id} in campaign {campaign_id}.
slots:
version: query.version
action_id: path.action_id
campaign_id: path.campaign_id
- text: Show campaign {campaign_id} action {action_id} metrics from {start} to {end}, version {version}.
slots:
campaign_id: path.campaign_id
action_id: path.action_id
start: query.start
end: query.end
version: query.version
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/actions/{action_id}/metrics/links'].get
update:
x-apievangelist-phrasing:
intent: Get link clicks for one campaign action
effect: read
questions:
- Which links in a single campaign email were clicked?
- What's the default period for link metrics on a campaign action?
instructions:
- text: Show link clicks for action {action_id} of campaign {campaign_id}.
slots:
action_id: path.action_id
campaign_id: path.campaign_id
- text: Get link metrics for campaign {campaign_id} action {action_id} by {period}.
slots:
campaign_id: path.campaign_id
action_id: path.action_id
period: query.period
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/campaigns/{campaign_id}/journey_metrics'].get
update:
x-apievangelist-phrasing:
intent: Get campaign journey metrics
effect: read
questions:
- How many people triggered, entered and were messaged by my campaign?
- Can I see campaign journey metrics at hourly or daily resolution?
instructions:
- text: Get journey metrics for campaign {campaign_id} from {start} to {end} at {resolution} resolution.
slots:
campaign_id: path.campaign_id
start: query.start
end: query.end
resolution: query.resolution
- text: Show how many people entered campaign {campaign_id} between {start} and {end}, grouped by {resolution}.
slots:
campaign_id: path.campaign_id
start: query.start
end: query.end
resolution: query.resolution
method: generated
generated: '2026-09-26'