Klaviyo · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Klaviyo Campaigns API

27 actions 27 updates phrasing extends openapi/klaviyo-campaigns-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Klaviyo's API. It is a proposal applied on top of the contract, not a document Klaviyo publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 27 · first 16 shown; the file carries all of them

$.info
$.paths['/api/campaigns'].get
$.paths['/api/campaigns'].post
$.paths['/api/campaigns/{id}'].get
$.paths['/api/campaigns/{id}'].delete
$.paths['/api/campaigns/{id}'].patch
$.paths['/api/campaign-messages/{id}'].get
$.paths['/api/campaign-messages/{id}'].patch
$.paths['/api/campaign-send-jobs/{id}'].get
$.paths['/api/campaign-send-jobs/{id}'].patch
$.paths['/api/campaign-recipient-estimation-jobs/{id}'].get
$.paths['/api/campaign-recipient-estimations/{id}'].get
$.paths['/api/campaign-clone'].post
$.paths['/api/campaign-message-assign-template'].post
$.paths['/api/campaign-send-jobs'].post
$.paths['/api/campaign-recipient-estimation-jobs'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Klaviyo Campaigns API
  version: 1.0.0
extends: openapi/klaviyo-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: 26
- target: $.paths['/api/campaigns'].get
  update:
    x-apievangelist-phrasing:
      intent: List email or SMS campaigns
      effect: read
      questions:
      - How do I list all my email campaigns in Klaviyo?
      - Why do I have to filter by channel before I can list campaigns?
      - Can I sort campaigns by when they were created or scheduled?
      instructions:
      - text: List my campaigns matching {filter}.
        slots:
          filter: query.filter
      - text: Show SMS campaigns using filter {filter}, sorted by {sort}.
        slots:
          filter: query.filter
          sort: query.sort
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new campaign
      effect: write
      questions:
      - What do I need to set up a new email campaign from scratch?
      - Can I define the audience and send strategy when creating a campaign?
      instructions:
      - text: 'Create a campaign with these settings: {campaign}.'
        slots:
          campaign: requestBody.data
      - text: Set up a new draft campaign targeting the audiences in {campaign}.
        slots:
          campaign: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one campaign by ID
      effect: read
      questions:
      - How can I see the status and settings of a single campaign?
      - Can I include the campaign's messages and tags when fetching it?
      instructions:
      - text: Get campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Show campaign {campaign_id} with its related {include}.
        slots:
          campaign_id: path.id
          include: query.include
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a campaign
      effect: destructive
      questions:
      - How do I permanently remove a campaign I no longer need?
      - Is deleting a campaign by ID reversible?
      instructions:
      - text: Delete campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Remove the old campaign {campaign_id} from my account.
        slots:
          campaign_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a campaign's settings
      effect: write
      questions:
      - Can I change the name or audience of a campaign that already exists?
      - How do I reschedule a campaign's send strategy after creating it?
      instructions:
      - text: Update campaign {campaign_id} with {changes}.
        slots:
          campaign_id: path.id
          changes: requestBody.data
      - text: Rename campaign {campaign_id} and change its audiences to {changes}.
        slots:
          campaign_id: path.id
          changes: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one campaign message
      effect: read
      questions:
      - How do I see the subject line and content settings of a campaign message?
      - Can I fetch a single campaign message by its own ID?
      instructions:
      - text: Get campaign message {message_id}.
        slots:
          message_id: path.id
      - text: Show campaign message {message_id} including its {include}.
        slots:
          message_id: path.id
          include: query.include
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a campaign message
      effect: write
      questions:
      - Can I change the subject line or preview text on a campaign message?
      - What's the way to edit a message's content settings before it sends?
      instructions:
      - text: Update campaign message {message_id} with {changes}.
        slots:
          message_id: path.id
          changes: requestBody.data
      - text: Change the subject and preview text of message {message_id} to {changes}.
        slots:
          message_id: path.id
          changes: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-send-jobs/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a campaign send job
      effect: read
      questions:
      - Has my campaign actually finished sending?
      - Where do I check the status of a campaign send I triggered?
      instructions:
      - text: Get campaign send job {send_job_id}.
        slots:
          send_job_id: path.id
      - text: Check whether send job {send_job_id} is still in progress.
        slots:
          send_job_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-send-jobs/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Cancel or revert a campaign send
      effect: destructive
      questions:
      - Can I stop a campaign that's currently sending?
      - Is it possible to put a sending campaign back into draft instead of canceling it?
      instructions:
      - text: Cancel the send for campaign job {send_job_id}.
        slots:
          send_job_id: path.id
      - text: Revert send job {send_job_id} to draft using {action}.
        slots:
          send_job_id: path.id
          action: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-recipient-estimation-jobs/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a recipient estimation job
      effect: read
      questions:
      - Has the job refreshing my campaign's recipient count finished?
      - Where can I see the status of a recipient estimation job?
      instructions:
      - text: Get recipient estimation job {job_id}.
        slots:
          job_id: path.id
      - text: Check if estimation job {job_id} is done running.
        slots:
          job_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-recipient-estimations/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign's estimated recipients
      effect: read
      questions:
      - About how many people will receive this campaign?
      - What is the current estimated audience size for a campaign?
      instructions:
      - text: Get the estimated recipient count for campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Tell me how many people campaign {campaign_id} is expected to reach.
        slots:
          campaign_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-clone'].post
  update:
    x-apievangelist-phrasing:
      intent: Clone an existing campaign
      effect: write
      questions:
      - Can I duplicate a past campaign as the starting point for a new one?
      - Does a cloned campaign get its own new ID and name?
      instructions:
      - text: Clone the campaign described in {clone_request}.
        slots:
          clone_request: requestBody.data
      - text: 'Duplicate a campaign under a new name: {clone_request}.'
        slots:
          clone_request: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-message-assign-template'].post
  update:
    x-apievangelist-phrasing:
      intent: Assign a template to a campaign message
      effect: write
      questions:
      - How do I apply one of my email templates to a campaign message?
      - Does assigning a template to a message change the original template?
      instructions:
      - text: Assign the template to the campaign message as described in {assignment}.
        slots:
          assignment: requestBody.data
      - text: Use template and message IDs {assignment} to set the message's design.
        slots:
          assignment: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-send-jobs'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a campaign
      effect: write
      questions:
      - How do I trigger a campaign to go out now?
      - Is sending a campaign synchronous, or does it run as a background job?
      instructions:
      - text: Send campaign {campaign}.
        slots:
          campaign: requestBody.data
      - text: Start the send job for campaign {campaign} right away.
        slots:
          campaign: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-recipient-estimation-jobs'].post
  update:
    x-apievangelist-phrasing:
      intent: Refresh a campaign's recipient estimate
      effect: write
      questions:
      - My audience changed; how do I recalculate how many people a campaign will reach?
      - Can I kick off a fresh recipient count for a campaign?
      instructions:
      - text: Refresh the recipient estimate for campaign {campaign}.
        slots:
          campaign: requestBody.data
      - text: Start a new recipient estimation job for {campaign}.
        slots:
          campaign: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/campaign'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the campaign a message belongs to
      effect: read
      questions:
      - Which campaign does this campaign message belong to?
      - Can I get the full parent campaign from a message ID?
      instructions:
      - text: Get the campaign that message {message_id} belongs to.
        slots:
          message_id: path.id
      - text: Show the full parent campaign for message {message_id}.
        slots:
          message_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/relationships/campaign'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the campaign ID for a message
      effect: read
      questions:
      - Can I fetch only the parent campaign ID for a campaign message?
      - What's the campaign relationship on a given message?
      instructions:
      - text: Get just the campaign ID for message {message_id}.
        slots:
          message_id: path.id
      - text: Return the campaign relationship of message {message_id}.
        slots:
          message_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/template'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the template used by a campaign message
      effect: read
      questions:
      - Which template is a campaign message using right now?
      - Can I see the full HTML template assigned to a message?
      instructions:
      - text: Get the template assigned to campaign message {message_id}.
        slots:
          message_id: path.id
      - text: Show the full template content for message {message_id}.
        slots:
          message_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/relationships/template'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the template ID for a campaign message
      effect: read
      questions:
      - Can I get only the template ID a campaign message points to?
      - What's the template relationship on a message?
      instructions:
      - text: Look up which template ID campaign message {message_id} points to.
        slots:
          message_id: path.id
      - text: Return the template relationship of message {message_id}.
        slots:
          message_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/image'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the image on a campaign message
      effect: read
      questions:
      - Which image is attached to a campaign message?
      - Can I see the full image record used by a push or SMS message?
      instructions:
      - text: Get the image attached to campaign message {message_id}.
        slots:
          message_id: path.id
      - text: Show image details for message {message_id}.
        slots:
          message_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/relationships/image'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the image ID for a campaign message
      effect: read
      questions:
      - Can I get only the image ID a campaign message references?
      - What's the image relationship on a message?
      instructions:
      - text: Look up the image ID referenced by campaign message {message_id}.
        slots:
          message_id: path.id
      - text: Return the image relationship of message {message_id}.
        slots:
          message_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaign-messages/{id}/relationships/image'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change the image on a campaign message
      effect: write
      questions:
      - How do I swap the image used in a campaign message?
      - Can I point a message at a different uploaded image?
      instructions:
      - text: Set the image on campaign message {message_id} to {image}.
        slots:
          message_id: path.id
          image: requestBody.data
      - text: Replace message {message_id}'s image with {image}.
        slots:
          message_id: path.id
          image: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}/tags'].get
  update:
    x-apievangelist-phrasing:
      intent: List a campaign's tags
      effect: read
      questions:
      - What tags are applied to a particular campaign?
      - Can I get the full tag records for one campaign?
      instructions:
      - text: List the tags on campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Show full tag details for campaign {campaign_id}.
        slots:
          campaign_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}/relationships/tags'].get
  update:
    x-apievangelist-phrasing:
      intent: Get tag IDs for a campaign
      effect: read
      questions:
      - Can I fetch only the tag IDs on a campaign?
      - What tag relationships does a campaign have?
      instructions:
      - text: Get just the tag IDs for campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Return tag relationships of campaign {campaign_id}.
        slots:
          campaign_id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}/campaign-messages'].get
  update:
    x-apievangelist-phrasing:
      intent: List a campaign's messages
      effect: read
      questions:
      - What messages make up a given campaign?
      - Can I see the full content settings of every message in a campaign?
      instructions:
      - text: List the messages in campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Show every message of campaign {campaign_id} with its {include}.
        slots:
          campaign_id: path.id
          include: query.include
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/campaigns/{id}/relationships/campaign-messages'].get
  update:
    x-apievangelist-phrasing:
      intent: Get message IDs for a campaign
      effect: read
      questions:
      - Can I get only the message IDs that belong to a campaign?
      - What message relationships does a campaign carry?
      instructions:
      - text: Get just the message IDs for campaign {campaign_id}.
        slots:
          campaign_id: path.id
      - text: Return message relationships of campaign {campaign_id}.
        slots:
          campaign_id: path.id
      method: generated
      generated: '2026-09-26'