Punchh · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Platform Functions Custom Segments API

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

What the actions change

x-apievangelist-phrasing

Targets 11

$.info
$.paths['/api2/dashboard/custom_segments'].get
$.paths['/api2/dashboard/custom_segments'].post
$.paths['/api2/dashboard/custom_segments'].delete
$.paths['/api2/dashboard/custom_segments'].patch
$.paths['/api2/dashboard/custom_segments/members'].get
$.paths['/api2/dashboard/custom_segments/members'].post
$.paths['/api2/dashboard/custom_segments/members'].delete
$.paths['/api2/dashboard/custom_segments/members/bulk_add'].post
$.paths['/api2/dashboard/custom_segments/members/bulk_remove'].delete
$.paths['/api2/dashboard/custom_segments/members/add_users'].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 Platform Functions Custom Segments API
  version: 1.0.0
extends: openapi/punchh-custom-segments-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 10
- target: $.paths['/api2/dashboard/custom_segments'].get
  update:
    x-apievangelist-phrasing:
      intent: List all custom segments
      effect: read
      questions:
      - What custom segments has my business created?
      - Can I see every custom guest list we've built?
      instructions:
      - text: List all of our custom segments.
      - text: Show the custom segments, including segment {ID}.
        slots:
          ID: path.ID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an empty custom segment
      effect: write
      questions:
      - How do I create a new custom segment to hold a hand-picked list of guests?
      - Are users added at the time a custom segment is created?
      instructions:
      - text: Create a custom segment named {name}.
        slots:
          name: requestBody.name
      - text: Make a new custom segment {name} described as {description}.
        slots:
          name: requestBody.name
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a custom segment
      effect: destructive
      questions:
      - How do I permanently remove a custom segment we no longer use?
      - Can a deleted custom segment be recovered?
      instructions:
      - text: Delete custom segment {custom_segment_id}.
        slots:
          custom_segment_id: query.custom_segment_id
      - text: Remove the custom segment {custom_segment_id} from the database.
        slots:
          custom_segment_id: query.custom_segment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rename or redescribe a custom segment
      effect: write
      questions:
      - Can I change the name or description of an existing custom segment?
      - What fields of a custom segment can be edited?
      instructions:
      - text: Rename custom segment {custom_segment_id} to {name}.
        slots:
          custom_segment_id: query.custom_segment_id
          name: query.name
      - text: Update the description of custom segment {custom_segment_id} to {description}.
        slots:
          custom_segment_id: query.custom_segment_id
          description: query.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments/members'].get
  update:
    x-apievangelist-phrasing:
      intent: Check whether a guest is in a custom segment
      effect: read
      questions:
      - Is a particular guest already a member of this custom segment?
      - Can I check segment membership by email instead of user ID?
      instructions:
      - text: Check if {email} belongs to custom segment {custom_segment_id}.
        slots:
          email: query.email
          custom_segment_id: query.custom_segment_id
      - text: Is user {user_id} in custom segment {custom_segment_id}? Look it up.
        slots:
          user_id: query.user_id
          custom_segment_id: query.custom_segment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments/members'].post
  update:
    x-apievangelist-phrasing:
      intent: Add one guest to a custom segment
      effect: write
      questions:
      - How do I add a single guest to a custom segment?
      - If I pass both an email and a user ID when adding a guest, which one wins?
      instructions:
      - text: Add {email} to custom segment {custom_segment_id}.
        slots:
          email: requestBody.email
          custom_segment_id: requestBody.custom_segment_id
      - text: Put user {user_id} into custom segment {custom_segment_id}.
        slots:
          user_id: requestBody.user_id
          custom_segment_id: requestBody.custom_segment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments/members'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove one guest from a custom segment
      effect: destructive
      questions:
      - How do I take a single guest out of a custom segment?
      - Can I remove someone from a segment using just their email?
      instructions:
      - text: Remove {email} from custom segment {custom_segment_id}.
        slots:
          email: query.email
          custom_segment_id: query.custom_segment_id
      - text: Take user {user_id} out of custom segment {custom_segment_id}.
        slots:
          user_id: query.user_id
          custom_segment_id: query.custom_segment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments/members/bulk_add'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk add guests to a segment from a CSV
      effect: write
      questions:
      - Can I upload a CSV of user IDs and emails to fill a custom segment?
      - What columns does the bulk add CSV file need?
      instructions:
      - text: Upload CSV {bulk_guest_activity_file} to add users to custom segment {custom_segment_id} as job {name}.
        slots:
          bulk_guest_activity_file: requestBody.bulk_guest_activity_file
          custom_segment_id: requestBody.custom_segment_id
          name: requestBody.name
      - text: Run a bulk CSV add named {name} into segment {custom_segment_id} from {bulk_guest_activity_file}.
        slots:
          name: requestBody.name
          custom_segment_id: requestBody.custom_segment_id
          bulk_guest_activity_file: requestBody.bulk_guest_activity_file
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments/members/bulk_remove'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk remove guests from a segment via CSV
      effect: destructive
      questions:
      - How do I remove many guests from a custom segment at once with a file?
      - Does the bulk removal CSV use the same user_id and email columns?
      instructions:
      - text: Remove the users in CSV {bulk_guest_activity_file} from custom segment {custom_segment_id} as job {name}.
        slots:
          bulk_guest_activity_file: requestBody.bulk_guest_activity_file
          custom_segment_id: requestBody.custom_segment_id
          name: requestBody.name
      - text: Bulk-remove guests from segment {custom_segment_id} using file {bulk_guest_activity_file}, job name {name}.
        slots:
          custom_segment_id: requestBody.custom_segment_id
          bulk_guest_activity_file: requestBody.bulk_guest_activity_file
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/custom_segments/members/add_users'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk add guests to a list segment by ID or email
      effect: write
      questions:
      - Can I add a list of emails and user IDs to a custom list segment without uploading a file?
      - Which identifiers come back as invalid when adding users in bulk, and can it run asynchronously?
      instructions:
      - text: Add these users {user_identifiers} to custom list segment {custom_segment_id}.
        slots:
          user_identifiers: requestBody.user_identifiers
          custom_segment_id: requestBody.custom_segment_id
      - text: Asynchronously add {user_identifiers} to list segment {custom_segment_id} using method {bulk_method}.
        slots:
          user_identifiers: requestBody.user_identifiers
          custom_segment_id: requestBody.custom_segment_id
          bulk_method: requestBody.bulk_method
      method: generated
      generated: '2026-10-01'