Customer.io · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Customer.io Track Track Customers API

9 actions 9 updates phrasing extends openapi/customer-io-track-customers-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.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/api/v1/customers/{identifier}'].put
$.paths['/api/v1/customers/{identifier}'].delete
$.paths['/api/v1/customers/{identifier}/devices'].put
$.paths['/api/v1/customers/{identifier}/devices/{device_id}'].delete
$.paths['/api/v1/customers/{identifier}/suppress'].post
$.paths['/api/v1/customers/{identifier}/unsuppress'].post
$.paths['/unsubscribe/{delivery_id}'].post
$.paths['/api/v1/merge_customers'].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 Customer.io Track Track Customers API
  version: 1.0.0
extends: openapi/customer-io-track-customers-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: 8
- target: $.paths['/api/v1/customers/{identifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Add or update a person
      effect: write
      questions:
      - How do I create or update a person's profile with the Track API?
      - Can I set a person's email and created date when adding them?
      instructions:
      - text: Add or update person {identifier} with email {email}.
        slots:
          identifier: path.identifier
          email: requestBody.email
      - text: 'Update person {identifier} and mark them unsubscribed: {unsubscribed}.'
        slots:
          identifier: path.identifier
          unsubscribed: requestBody.unsubscribed
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/customers/{identifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a person
      effect: destructive
      questions:
      - How do I delete a person and all their data?
      - Could a later update call recreate a person I deleted?
      instructions:
      - text: Delete person {identifier}.
        slots:
          identifier: path.identifier
      - text: Remove {identifier} and all their information.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/customers/{identifier}/devices'].put
  update:
    x-apievangelist-phrasing:
      intent: Add or update a person's device
      effect: write
      questions:
      - How do I register an iOS or Android push token for a person?
      - Can a person have more than one device?
      instructions:
      - text: Add device {device} to person {identifier}.
        slots:
          device: requestBody.device
          identifier: path.identifier
      - text: Register push token {device} for {identifier}.
        slots:
          device: requestBody.device
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/customers/{identifier}/devices/{device_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a device from a person
      effect: destructive
      questions:
      - How do I remove an old device from a person's profile?
      - Why does a deleted device keep reappearing?
      instructions:
      - text: Delete device {device_id} from person {identifier}.
        slots:
          device_id: path.device_id
          identifier: path.identifier
      - text: Remove push device {device_id} for {identifier}.
        slots:
          device_id: path.device_id
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/customers/{identifier}/suppress'].post
  update:
    x-apievangelist-phrasing:
      intent: Suppress a person permanently
      effect: destructive
      questions:
      - How do I delete a person and block them from being re-added?
      - What happens to API calls referencing a suppressed identifier?
      instructions:
      - text: Suppress person {identifier}.
        slots:
          identifier: path.identifier
      - text: Delete and block {identifier} from coming back.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/customers/{identifier}/unsuppress'].post
  update:
    x-apievangelist-phrasing:
      intent: Unsuppress a person
      effect: write
      questions:
      - How do I allow a suppressed person to be added again?
      - Does unsuppressing restore the person's old data?
      instructions:
      - text: Unsuppress person {identifier}.
        slots:
          identifier: path.identifier
      - text: Allow {identifier} to be re-added.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/unsubscribe/{delivery_id}'].post
  update:
    x-apievangelist-phrasing:
      intent: Unsubscribe a person from a delivery link
      effect: write
      questions:
      - How do I handle unsubscribes from my own custom unsubscribe page?
      - Can I set someone's global unsubscribe status from a delivery ID?
      instructions:
      - text: Unsubscribe the recipient of delivery {delivery_id}.
        slots:
          delivery_id: path.delivery_id
      - text: Set unsubscribe to {unsubscribe} for the person who got delivery {delivery_id}.
        slots:
          unsubscribe: requestBody.unsubscribe
          delivery_id: path.delivery_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/merge_customers'].post
  update:
    x-apievangelist-phrasing:
      intent: Merge two duplicate people
      effect: destructive
      questions:
      - How do I merge two duplicate profiles into one?
      - Which profile survives when I merge duplicates?
      instructions:
      - text: Merge {secondary} into {primary}.
        slots:
          secondary: requestBody.secondary
          primary: requestBody.primary
      - text: Combine duplicate profile {secondary} with primary {primary}.
        slots:
          secondary: requestBody.secondary
          primary: requestBody.primary
      method: generated
      generated: '2026-09-26'