Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Optimizely Campaigns API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/campaigns'].get
$.paths['/campaigns'].post
$.paths['/campaigns/{campaignId}'].get
$.paths['/campaigns/{id}'].get
$.paths['/campaigns/{id}'].patch
$.paths['/campaigns/{id}/comments'].post
$.paths['/campaigns/{id}/fields'].get
$.paths['/campaigns/{id}/fields'].post
$.paths['/campaigns/{id}/brief'].get
$.paths['/campaigns/{id}/attachments'].post
$.paths['/campaigns/{campaign_id}/fields/{field_id}'].put
$.paths['/campaigns/{campaign_id}'].get
$.paths['/campaigns/{campaign_id}'].delete
$.paths['/campaigns/{campaign_id}'].patch
$.paths['/campaigns/{campaign_id}/results'].get

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 Optimizely Campaigns API
  version: 1.0.0
extends: openapi/optimizely-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: 17
- target: $.paths['/campaigns'].get
  update:
    x-apievangelist-phrasing:
      intent: List editorial calendar campaigns
      effect: read
      questions:
      - Which content campaigns are on my editorial calendar?
      - Can I page through campaigns with a limit and offset?
      instructions:
      - text: List the content campaigns in my editorial calendar.
      - text: Show {limit} editorial campaigns starting at offset {offset}.
        slots:
          limit: query.limit
          offset: query.offset
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a content marketing campaign
      effect: write
      questions:
      - How do I create a new campaign in my content marketing calendar?
      - Can a new campaign be nested under a parent campaign with start and end dates?
      - Is it possible to give a new campaign an owner and a color?
      instructions:
      - text: Create a campaign titled {title}.
        slots:
          title: requestBody.title
      - text: Create campaign {title} running from {start_date} to {end_date} under parent {parent_campaign}.
        slots:
          title: requestBody.title
          start_date: requestBody.start_date
          end_date: requestBody.end_date
          parent_campaign: requestBody.parent_campaign
      - text: Start a new campaign {title} owned by {owner_id}.
        slots:
          title: requestBody.title
          owner_id: requestBody.owner_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaignId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an editorial calendar campaign
      effect: read
      questions:
      - What are the details of one content campaign on my editorial calendar?
      - Can I look up an editorial calendar campaign by its campaignId?
      instructions:
      - text: Get editorial calendar campaign {campaignId}.
        slots:
          campaignId: path.campaignId
      - text: Show me the calendar entry for content campaign {campaignId}.
        slots:
          campaignId: path.campaignId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a content campaign record by id
      effect: read
      questions:
      - Where do I read the CMP campaign record that its fields, comments and attachments hang off?
      - What does the content marketing platform return for a campaign I fetch by plain id?
      instructions:
      - text: Fetch the CMP campaign record {id}.
        slots:
          id: path.id
      - text: Pull up content marketing campaign {id} before I edit its fields.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a content campaign's title or dates
      effect: write
      questions:
      - How do I rename a content marketing campaign or move its dates?
      - Can I reassign the owner of a CMP campaign?
      instructions:
      - text: Retitle content campaign {id} to {title}.
        slots:
          id: path.id
          title: requestBody.title
      - text: Move content campaign {id} to run {start_date} through {end_date}.
        slots:
          id: path.id
          start_date: requestBody.start_date
          end_date: requestBody.end_date
      - text: Make {owner_id} the owner of content campaign {id}.
        slots:
          id: path.id
          owner_id: requestBody.owner_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}/comments'].post
  update:
    x-apievangelist-phrasing:
      intent: Comment on a campaign
      effect: write
      questions:
      - Can I post a comment on a campaign and mention a teammate?
      - Does a campaign comment support Markdown and attachments?
      instructions:
      - text: Comment {value} on campaign {id}.
        slots:
          id: path.id
          value: requestBody.value
      - text: Post a note on campaign {id} saying {value} with attachments {attachments}.
        slots:
          id: path.id
          value: requestBody.value
          attachments: requestBody.attachments
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}/fields'].get
  update:
    x-apievangelist-phrasing:
      intent: List a campaign's custom fields
      effect: read
      questions:
      - Which custom fields are defined on a given campaign?
      - Can I page through a campaign's fields with a page size?
      instructions:
      - text: List the fields on campaign {id}.
        slots:
          id: path.id
      - text: Show {page_size} fields of campaign {id} from offset {offset}.
        slots:
          id: path.id
          page_size: query.page_size
          offset: query.offset
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}/fields'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a field to a campaign
      effect: write
      questions:
      - How do I attach a new custom field to a campaign?
      - Can I extend a campaign with an additional field?
      instructions:
      - text: Add a field to campaign {id}.
        slots:
          id: path.id
      - text: Attach a new custom field to campaign {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}/brief'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign's brief
      effect: read
      questions:
      - Where can I read the brief written for a campaign?
      - What does the brief of a content campaign contain?
      instructions:
      - text: Get the brief for campaign {id}.
        slots:
          id: path.id
      - text: Show me campaign {id}'s creative brief.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{id}/attachments'].post
  update:
    x-apievangelist-phrasing:
      intent: Attach an uploaded file to a campaign
      effect: write
      questions:
      - How do I attach a file I already uploaded to a campaign?
      - What upload key do I need to add an attachment to a campaign?
      instructions:
      - text: Attach uploaded file {key} named {name} to campaign {id}.
        slots:
          id: path.id
          key: requestBody.key
          name: requestBody.name
      - text: Add attachment {name} from upload session {key} to campaign {id}.
        slots:
          id: path.id
          key: requestBody.key
          name: requestBody.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaign_id}/fields/{field_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Set a campaign field's value
      effect: write
      questions:
      - How do I change the value of one custom field on a campaign?
      - Can I update a single campaign field without touching the rest of the campaign?
      instructions:
      - text: Update field {field_id} on campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
          field_id: path.field_id
      - text: Set a new value for field {field_id} of campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
          field_id: path.field_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaign_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an experimentation campaign
      effect: read
      questions:
      - What are the full details of a Web Experimentation personalization campaign?
      - Can I look up an experimentation campaign by campaign_id to see its project and status?
      instructions:
      - text: Get experimentation campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      - text: Show project and status details for personalization campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaign_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive or delete a campaign
      effect: destructive
      questions:
      - How do I remove a personalization campaign I no longer need?
      - Does deleting a campaign archive it or remove it permanently?
      instructions:
      - text: Delete campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      - text: Archive personalization campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaign_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rename or change status of a campaign
      effect: write
      questions:
      - How do I change the status of an experimentation campaign?
      - Can I move a personalization campaign to another project or rename it?
      instructions:
      - text: Set the status of campaign {campaign_id} to {status}.
        slots:
          campaign_id: path.campaign_id
          status: requestBody.status
      - text: Rename experimentation campaign {campaign_id} to {name}.
        slots:
          campaign_id: path.campaign_id
          name: requestBody.name
      - text: Move campaign {campaign_id} into project {project_id}.
        slots:
          campaign_id: path.campaign_id
          project_id: requestBody.project_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaign_id}/results'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign's statistical results
      effect: read
      questions:
      - How is my personalization campaign performing statistically?
      - Where can I see the results of a campaign?
      instructions:
      - text: Get results for campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      - text: Show the statistical performance of campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/campaigns/{campaign_id}/results/share'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a shareable results link for a campaign
      effect: read
      questions:
      - Can I share a campaign's results page with someone who has no Optimizely account?
      - Is a public read-only results link risky to share widely?
      instructions:
      - text: Get a shareable results link for campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      - text: Generate a read-only share URL for the results page of campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/export/campaigns/{campaign_id}/results/csv'].get
  update:
    x-apievangelist-phrasing:
      intent: Export campaign results as CSV
      effect: read
      questions:
      - How do I download a campaign's results as a CSV file?
      - Can I export campaign results segmented by device or browser?
      - Is it possible to limit the CSV export to a time window?
      instructions:
      - text: Export results for campaign {campaign_id} as CSV.
        slots:
          campaign_id: path.campaign_id
      - text: Export CSV results for campaign {campaign_id} from {start_time} to {end_time}.
        slots:
          campaign_id: path.campaign_id
          start_time: query.start_time
          end_time: query.end_time
      - text: Download campaign {campaign_id} results as CSV segmented by device {device}.
        slots:
          campaign_id: path.campaign_id
          device: query.device
      method: generated
      generated: '2026-09-26'