Talon.One · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Third-party Segment API

14 actions 14 updates phrasing extends openapi/talon-one-segment-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 14

$.info
$.paths['/segment/customer_profile/{customerProfileId}'].put
$.paths['/segment/customer_profile_v2/{customerProfileId}'].put
$.paths['/segment/v2/customer_profiles/{customerProfileId}'].put
$.paths['/segment/customer_profiles/{customerProfileId}/audiences'].put
$.paths['/segment/customer_profiles/audiences'].put
$.paths['/segment/v2/customer_profiles/audiences'].put
$.paths['/segment/event'].put
$.paths['/segment/v2/events'].put
$.paths['/segment/audiences'].post
$.paths['/segment/audiences/{audienceId}'].put
$.paths['/segment/audiences/{audienceId}'].delete
$.paths['/segment/customer_sessions/{customerSessionId}'].put
$.paths['/segment/v2/customer_sessions/{customerSessionId}'].put

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 Third-party Segment API
  version: 1.0.0
extends: openapi/talon-one-segment-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['/segment/customer_profile/{customerProfileId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Upsert a customer profile via Segment (deprecated v1)
      effect: write
      questions:
      - Is the original v1 Segment customer profile upsert still supported?
      - What did the first Segment profile endpoint do with attributesInfo?
      instructions:
      - text: Upsert customer profile {customerProfileId} with attributes {attributes} via the deprecated v1 Segment endpoint on {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          attributes: requestBody.attributes
          destination-hostname: header.destination-hostname
      - text: Use the legacy v1 Segment profile upsert for {customerProfileId} on host {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/customer_profile_v2/{customerProfileId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Upsert a customer profile via Segment (deprecated v2)
      effect: write
      questions:
      - What was the deprecated customer_profile_v2 Segment endpoint used for?
      - Could the old v2 Segment upsert change a profile's audiences as well as attributes?
      instructions:
      - text: Upsert profile {customerProfileId} with audience changes {audiencesChanges} using the deprecated customer_profile_v2 Segment route on {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          audiencesChanges: requestBody.audiencesChanges
          destination-hostname: header.destination-hostname
      - text: Call the legacy customer_profile_v2 Segment upsert for {customerProfileId} on {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/v2/customer_profiles/{customerProfileId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update or create a customer profile from Segment
      effect: write
      questions:
      - What is the current way to sync a Segment identify call into a customer profile?
      - Can I skip attributes that don't exist yet when updating a profile from Segment?
      instructions:
      - text: Update customer profile {customerProfileId} from Segment with attributes {attributes} on {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          attributes: requestBody.attributes
          destination-hostname: header.destination-hostname
      - text: 'Sync Segment profile {customerProfileId} to {destination-hostname}, skipping unknown attributes: {skipNonExistingAttributes}.'
        slots:
          customerProfileId: path.customerProfileId
          destination-hostname: header.destination-hostname
          skipNonExistingAttributes: query.skipNonExistingAttributes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/customer_profiles/{customerProfileId}/audiences'].put
  update:
    x-apievangelist-phrasing:
      intent: Change one profile's audiences from Segment
      effect: write
      questions:
      - Can I add a single customer to Segment audiences using the Segment audience ID?
      - Does changing one profile's audiences from Segment trigger rules?
      instructions:
      - text: Update the audiences of profile {customerProfileId} with {data} from Segment on {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          data: requestBody.data
          destination-hostname: header.destination-hostname
      - text: Remove customer {customerProfileId} from the Segment audiences in {data} via {destination-hostname}.
        slots:
          customerProfileId: path.customerProfileId
          data: requestBody.data
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/customer_profiles/audiences'].put
  update:
    x-apievangelist-phrasing:
      intent: Update audiences for many profiles from Segment
      effect: write
      questions:
      - Can I update audience membership for a batch of customers coming from Segment?
      - Are missing customer profiles created when I bulk update audiences from Segment?
      instructions:
      - text: Bulk update audiences for multiple profiles with {data} from Segment on {destination-hostname}.
        slots:
          data: requestBody.data
          destination-hostname: header.destination-hostname
      - text: Apply Segment audience changes {data} to many customer profiles via the v1 bulk route on {destination-hostname}.
        slots:
          data: requestBody.data
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/v2/customer_profiles/audiences'].put
  update:
    x-apievangelist-phrasing:
      intent: Update audiences for many profiles by external ID
      effect: write
      questions:
      - Can I bulk update audiences using the audience ID from the third-party integration?
      - What's the v2 bulk route for Segment audience changes keyed by external ID?
      instructions:
      - text: Bulk update audiences by external audience ID with {data} on {destination-hostname}.
        slots:
          data: requestBody.data
          destination-hostname: header.destination-hostname
      - text: Apply externally identified audience changes {data} to many profiles via the v2 Segment route on {destination-hostname}.
        slots:
          data: requestBody.data
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/event'].put
  update:
    x-apievangelist-phrasing:
      intent: Track a custom event from Segment (deprecated v1)
      effect: write
      questions:
      - How did the deprecated v1 Segment track event endpoint work?
      - Which fields did the original Segment event call require?
      instructions:
      - text: Send event {eventType} of type {type} for profile {customerProfileId} through the deprecated v1 Segment event route on {destination-hostname}.
        slots:
          eventType: requestBody.eventType
          type: requestBody.type
          customerProfileId: requestBody.customerProfileId
          destination-hostname: header.destination-hostname
      - text: Use the legacy Segment event endpoint to track {eventType} ({type}) for {customerProfileId} on {destination-hostname}.
        slots:
          eventType: requestBody.eventType
          type: requestBody.type
          customerProfileId: requestBody.customerProfileId
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/v2/events'].put
  update:
    x-apievangelist-phrasing:
      intent: Track a custom event from Segment
      effect: write
      questions:
      - How do I trigger promotion rules from a Segment track call?
      - Does the custom event need to exist in the Campaign Manager before Segment sends it?
      instructions:
      - text: Track Segment event {eventType} for customer {customerProfileId} on {destination-hostname}.
        slots:
          eventType: requestBody.eventType
          customerProfileId: requestBody.customerProfileId
          destination-hostname: header.destination-hostname
      - text: Send event {eventType} with attributes {eventAttributes} from Segment to {destination-hostname}.
        slots:
          eventType: requestBody.eventType
          eventAttributes: requestBody.eventAttributes
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/audiences'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an audience from Segment
      effect: write
      questions:
      - How do I bring a Segment audience over so I can target it in rules?
      - What does creating the first audience unlock in the Rule Builder?
      instructions:
      - text: Create audience {audienceName} with Segment ID {audienceId} on {destination-hostname}.
        slots:
          audienceName: requestBody.audienceName
          audienceId: requestBody.audienceId
          destination-hostname: header.destination-hostname
      - text: Register the new Segment audience {audienceId} named {audienceName} via {destination-hostname}.
        slots:
          audienceId: requestBody.audienceId
          audienceName: requestBody.audienceName
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/audiences/{audienceId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename a Segment audience
      effect: write
      questions:
      - Can I rename an audience that came from Segment?
      - What is required to update an existing Segment audience?
      instructions:
      - text: Rename Segment audience {audienceId} to {audienceName} on {destination-hostname}.
        slots:
          audienceId: path.audienceId
          audienceName: requestBody.audienceName
          destination-hostname: header.destination-hostname
      - text: Update existing Segment audience {audienceId} with name {audienceName} via {destination-hostname}.
        slots:
          audienceId: path.audienceId
          audienceName: requestBody.audienceName
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/audiences/{audienceId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a Segment audience
      effect: destructive
      questions:
      - Does deleting a Segment audience also remove its customer associations?
      - How can I drop an audience that Segment created?
      instructions:
      - text: Delete Segment audience {audienceId} on {destination-hostname}.
        slots:
          audienceId: path.audienceId
          destination-hostname: header.destination-hostname
      - text: Remove the Segment-synced audience {audienceId} and its memberships via {destination-hostname}.
        slots:
          audienceId: path.audienceId
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/customer_sessions/{customerSessionId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a customer session from Segment (deprecated v1)
      effect: write
      questions:
      - What did the deprecated v1 Segment customer session endpoint accept?
      - Could the legacy Segment session update send its response to a callback URL?
      instructions:
      - text: Update session {customerSessionId} with {customerSession} via the deprecated v1 Segment session route on {destination-hostname}.
        slots:
          customerSessionId: path.customerSessionId
          customerSession: requestBody.customerSession
          destination-hostname: header.destination-hostname
      - text: Use the legacy Segment session endpoint for {customerSessionId} on {destination-hostname}, calling back to {X-Callback-Destination-URI}.
        slots:
          customerSessionId: path.customerSessionId
          destination-hostname: header.destination-hostname
          X-Callback-Destination-URI: header.X-Callback-Destination-URI
      method: generated
      generated: '2026-09-26'
- target: $.paths['/segment/v2/customer_sessions/{customerSessionId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update or create a customer session from Segment
      effect: write
      questions:
      - How do I send a Segment cart to get the promotions that apply to it?
      - Can Segment session updates include coupon codes and loyalty cards?
      - Is it possible to receive the session response asynchronously at a callback URL?
      instructions:
      - text: Update Segment session {customerSessionId} with cart items {cartItems} on {destination-hostname}.
        slots:
          customerSessionId: path.customerSessionId
          cartItems: requestBody.cartItems
          destination-hostname: header.destination-hostname
      - text: Apply coupon codes {couponCodes} to Segment session {customerSessionId} for profile {profileId} on {destination-hostname}.
        slots:
          couponCodes: requestBody.couponCodes
          customerSessionId: path.customerSessionId
          profileId: requestBody.profileId
          destination-hostname: header.destination-hostname
      - text: Set Segment session {customerSessionId} to state {state} on {destination-hostname}.
        slots:
          customerSessionId: path.customerSessionId
          state: requestBody.state
          destination-hostname: header.destination-hostname
      method: generated
      generated: '2026-09-26'