Talon.One · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Talon One Campaigns API

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

What the actions change

x-apievangelist-phrasing

Targets 13

$.info
$.paths['/v1/integration/campaigns'].get
$.paths['/v1/applications/{applicationId}/campaigns'].get
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}'].get
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}'].put
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}'].delete
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/copy'].post
$.paths['/v1/applications/{applicationId}/campaigns_search'].post
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/rulesets'].get
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/rulesets/{rulesetId}'].get
$.paths['/v2/applications/{applicationId}/campaigns/{campaignId}/rulesets/{rulesetId}'].get
$.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/analytics'].get
$.paths['/v1/applications/{applicationId}/campaign_analytics/export'].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 Talon One Campaigns API
  version: 1.0.0
extends: openapi/talon-one-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: 12
- target: $.paths['/v1/integration/campaigns'].get
  update:
    x-apievangelist-phrasing:
      intent: List running campaigns for an integration
      effect: read
      questions:
      - Which promotions are live right now that my storefront should know about?
      - Can my integration list running campaigns for a specific store or audience?
      instructions:
      - text: List the campaigns currently running for my integration.
      - text: Show running campaigns for store {storeId} that start after {startAfter}.
        slots:
          storeId: query.storeId
          startAfter: query.startAfter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns'].get
  update:
    x-apievangelist-phrasing:
      intent: List campaigns in an Application
      effect: read
      questions:
      - What campaigns does my Application have, including disabled and expired ones?
      - Can I filter campaigns by tag, state, or the template they came from?
      - Which campaigns in an Application end before a certain date?
      instructions:
      - text: List the campaigns in Application {applicationId}.
        slots:
          applicationId: path.applicationId
      - text: Show {campaignState} campaigns in Application {applicationId} tagged {tags}.
        slots:
          campaignState: query.campaignState
          applicationId: path.applicationId
          tags: query.tags
      - text: List campaigns in Application {applicationId} created from template {templateId}.
        slots:
          applicationId: path.applicationId
          templateId: query.templateId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign
      effect: read
      questions:
      - What are the settings, dates and limits of a particular campaign?
      - Can I fetch one campaign's configuration by its ID?
      instructions:
      - text: Get campaign {campaignId} in Application {applicationId}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
      - text: Show the configuration of campaign {campaignId} from Application {applicationId}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a campaign
      effect: write
      questions:
      - How do I change a campaign's end date or disable it?
      - Can I edit a campaign when campaign staging and revisions is turned on?
      instructions:
      - text: Set campaign {campaignId} in Application {applicationId} to state {state}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
          state: requestBody.state
      - text: Change the end time of campaign {campaignId} in Application {applicationId} to {endTime}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
          endTime: requestBody.endTime
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a campaign
      effect: destructive
      questions:
      - How do I permanently delete a campaign I no longer need?
      - Can I remove a test campaign from an Application?
      instructions:
      - text: Delete campaign {campaignId} from Application {applicationId}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
      - text: Permanently remove campaign {campaignId} in Application {applicationId}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/copy'].post
  update:
    x-apievangelist-phrasing:
      intent: Copy a campaign into other Applications
      effect: write
      questions:
      - How do I reuse the same campaign in another Application or region?
      - Can I rename a campaign or change its dates when copying it?
      instructions:
      - text: Copy campaign {campaignId} from Application {applicationId} into Applications {applicationIds}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
          applicationIds: requestBody.applicationIds
      - text: Duplicate campaign {campaignId} of Application {applicationId} into {applicationIds} under the name {name}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
          applicationIds: requestBody.applicationIds
          name: requestBody.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns_search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search campaigns by custom attributes
      effect: read
      questions:
      - Which campaigns have a specific custom attribute value, like a region or budget owner?
      - Can I search only enabled campaigns by their attributes?
      instructions:
      - text: Find campaigns in Application {applicationId} matching attributes {attributes}.
        slots:
          applicationId: path.applicationId
          attributes: requestBody.attributes
      - text: Search {campaignState} campaigns in Application {applicationId} with attributes {attributes}.
        slots:
          campaignState: query.campaignState
          applicationId: path.applicationId
          attributes: requestBody.attributes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/rulesets'].get
  update:
    x-apievangelist-phrasing:
      intent: List a campaign's ruleset revisions
      effect: read
      questions:
      - What revisions have a campaign's rules gone through?
      - Why does the rulesets list include deleted rules?
      instructions:
      - text: List all ruleset revisions of campaign {campaignId} in Application {applicationId}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
      - text: Show the rule history for campaign {campaignId}, Application {applicationId}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/rulesets/{rulesetId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign ruleset (v1)
      effect: read
      questions:
      - What rules does one specific ruleset revision contain, using the original v1 endpoint?
      - Can I fetch a single ruleset by ID through the older version of the API?
      instructions:
      - text: Get ruleset {rulesetId} of campaign {campaignId} in Application {applicationId} using the v1 endpoint.
        slots:
          rulesetId: path.rulesetId
          campaignId: path.campaignId
          applicationId: path.applicationId
      - text: Show v1 ruleset {rulesetId} for campaign {campaignId}, Application {applicationId}.
        slots:
          rulesetId: path.rulesetId
          campaignId: path.campaignId
          applicationId: path.applicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/applications/{applicationId}/campaigns/{campaignId}/rulesets/{rulesetId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign ruleset as JSON (v2)
      effect: read
      questions:
      - Can I get a campaign's ruleset as a plain JSON object from the v2 endpoint?
      - Which ruleset endpoint returns the rules in the newer v2 JSON format?
      instructions:
      - text: Get ruleset {rulesetId} of campaign {campaignId} in Application {applicationId} as v2 JSON.
        slots:
          rulesetId: path.rulesetId
          campaignId: path.campaignId
          applicationId: path.applicationId
      - text: Fetch the v2 JSON of ruleset {rulesetId} for campaign {campaignId}, Application {applicationId}.
        slots:
          rulesetId: path.rulesetId
          campaignId: path.campaignId
          applicationId: path.applicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaigns/{campaignId}/analytics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign's performance analytics
      effect: read
      questions:
      - How did one campaign perform last month in revenue and discounts given?
      - Can I see a campaign's analytics broken down by day?
      instructions:
      - text: Get analytics for campaign {campaignId} in Application {applicationId} from {rangeStart} to {rangeEnd}.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
          rangeStart: query.rangeStart
          rangeEnd: query.rangeEnd
      - text: Show campaign {campaignId}'s performance in Application {applicationId} between {rangeStart} and {rangeEnd} at {granularity} granularity.
        slots:
          campaignId: path.campaignId
          applicationId: path.applicationId
          rangeStart: query.rangeStart
          rangeEnd: query.rangeEnd
          granularity: query.granularity
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{applicationId}/campaign_analytics/export'].get
  update:
    x-apievangelist-phrasing:
      intent: Export campaign analytics for an Application to CSV
      effect: read
      questions:
      - Can I download a spreadsheet comparing all campaigns' results in an Application?
      - How do I export analytics for only a few selected campaigns?
      instructions:
      - text: Export per-campaign analytics for Application {applicationId} from {rangeStart} to {rangeEnd}.
        slots:
          applicationId: path.applicationId
          rangeStart: query.rangeStart
          rangeEnd: query.rangeEnd
      - text: Download a CSV of analytics for campaigns {campaignIds} in Application {applicationId} between {rangeStart} and {rangeEnd}.
        slots:
          campaignIds: query.campaignIds
          applicationId: path.applicationId
          rangeStart: query.rangeStart
          rangeEnd: query.rangeEnd
      method: generated
      generated: '2026-09-26'