Punchh · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Punchh Users API

44 actions 44 updates phrasing extends openapi/punchh-users-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 44 · first 16 shown; the file carries all of them

$.info
$.paths['/api2/mobile/users/login'].post
$.paths['/api2/mobile/users/connect_with_facebook'].post
$.paths['/api2/mobile/apple_registrations'].post
$.paths['/api2/mobile/users/logout'].delete
$.paths['/api2/mobile/users/profile'].get
$.paths['/api2/mobile/users'].put
$.paths['/api2/mobile/users'].post
$.paths['/api2/mobile/users'].delete
$.paths['/api2/mobile/users/forgot_password'].post
$.paths['/api2/mobile/users/account_history'].get
$.paths['/api2/mobile/user_relations/{id}'].put
$.paths['/api2/mobile/user_relations/{id}'].delete
$.paths['/api2/mobile/user_relations'].post
$.paths['/api2/mobile/users/send_verification_email'].post
$.paths['/api2/mobile/session_tokens'].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 Punchh Users API
  version: 1.0.0
extends: openapi/punchh-users-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: 43
- target: $.paths['/api2/mobile/users/login'].post
  update:
    x-apievangelist-phrasing:
      intent: Sign a guest in to the loyalty app
      effect: write
      questions:
      - How do I log a guest into a restaurant's loyalty app with their email and password?
      - What user details come back when a guest signs in to the mobile app?
      instructions:
      - text: Sign in guest {user} to the mobile loyalty app.
        slots:
          user: requestBody.user
      - text: Log guest {user} in from device {device} and return their profile.
        slots:
          user: requestBody.user
          device: header.punchh-app-device-id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/connect_with_facebook'].post
  update:
    x-apievangelist-phrasing:
      intent: Register or log in a guest with Facebook
      effect: write
      questions:
      - Can guests register on the loyalty app using their Facebook account?
      - Which Facebook details are passed when a guest connects with Facebook?
      instructions:
      - text: Connect guest {user} to the app using their Facebook ID.
        slots:
          user: requestBody.user
      - text: Register a new app guest through Facebook login with details {user}.
        slots:
          user: requestBody.user
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/apple_registrations'].post
  update:
    x-apievangelist-phrasing:
      intent: Sign a guest in with Apple
      effect: write
      questions:
      - Does the loyalty app support Sign in with Apple using Apple's private relay email?
      - What happens to a guest's session if they revoke app access from their Apple ID?
      instructions:
      - text: Sign guest {user} in with their Apple ID.
        slots:
          user: requestBody.user
      - text: Register guest {user} through Apple sign-in for app client {client}.
        slots:
          user: requestBody.user
          client: requestBody.client
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/logout'].delete
  update:
    x-apievangelist-phrasing:
      intent: Log a guest out of the mobile app
      effect: destructive
      questions:
      - How do I end a guest's session in the mobile loyalty app?
      - Can I clear the push token when a guest logs out of the app?
      instructions:
      - text: Log out the guest on device {device}.
        slots:
          device: header.punchh-app-device-id
      - text: End app session {access_token} and drop push token {gcm_token}.
        slots:
          access_token: requestBody.access_token
          gcm_token: requestBody.gcm_token
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/profile'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the signed-in guest's profile
      effect: read
      questions:
      - What profile details can the app show for the guest who is signed in?
      - Where do I read a logged-in app user's name, email and other details?
      instructions:
      - text: Fetch the profile of the guest signed in on device {device}.
        slots:
          device: header.punchh-app-device-id
      - text: Show my loyalty app profile details.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users'].put
  update:
    x-apievangelist-phrasing:
      intent: Update the signed-in guest's profile
      effect: write
      questions:
      - Can a guest change their own name or phone number from the mobile app?
      - Why does a guest's birthday not change after the second update even though I get a 200?
      instructions:
      - text: Update my app profile with {user}.
        slots:
          user: requestBody.user
      - text: Change the signed-in guest's profile on device {device} to {user} right away.
        slots:
          device: header.punchh-app-device-id
          user: requestBody.user
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Register a new guest in the mobile app
      effect: write
      questions:
      - How do I sign up a new guest on a business's loyalty app?
      - Why must I pass a real first and last name when the business uses referral codes?
      instructions:
      - text: Register new app guest {user}.
        slots:
          user: requestBody.user
      - text: Sign up {user} for the loyalty program from device {device}.
        slots:
          user: requestBody.user
          device: header.punchh-app-device-id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users'].delete
  update:
    x-apievangelist-phrasing:
      intent: Request deletion of the guest's own account
      effect: destructive
      questions:
      - Can a guest ask to have their loyalty account deleted from inside the app?
      - How long until a guest's account is actually deleted after they request it?
      instructions:
      - text: Mark the account signed in on device {device} for deletion.
        slots:
          device: header.punchh-app-device-id
      - text: Submit my own account deletion request from the app.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/forgot_password'].post
  update:
    x-apievangelist-phrasing:
      intent: Email a guest a password reset link
      effect: write
      questions:
      - How does a guest who forgot their app password get a reset link?
      - Can the mobile app trigger a password reset email for a guest?
      instructions:
      - text: Send a password reset email to app guest {user}.
        slots:
          user: requestBody.user
      - text: Start the forgot-password flow for {user} in the mobile app.
        slots:
          user: requestBody.user
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/account_history'].get
  update:
    x-apievangelist-phrasing:
      intent: Show a guest's loyalty account history
      effect: read
      questions:
      - Where can a guest see their past check-ins and redemptions in the app?
      - Does the app's account history include gift card transactions?
      - Can I filter a guest's account history to only certain event types?
      instructions:
      - text: Show my loyalty account history in the app.
      - text: List my account history filtered to {event_filter} events.
        slots:
          event_filter: requestBody.event_filter
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/user_relations/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a guest's spouse or kid entry
      effect: write
      questions:
      - Can a guest fix the birthday of a child they already added to their profile?
      - Is it possible to rename a spouse saved on a loyalty account?
      instructions:
      - text: Change the birthday on relation {id} to {birthday}.
        slots:
          id: path.id
          birthday: requestBody.birthday
      - text: Rename existing family relation {id} to {name}.
        slots:
          id: path.id
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/user_relations/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a spouse or kid from a guest's profile
      effect: destructive
      questions:
      - How do I remove a child or spouse a guest previously added to their account?
      - Can a family relation be deleted from the loyalty profile?
      instructions:
      - text: Delete family relation {id} from my profile.
        slots:
          id: path.id
      - text: Remove the spouse or kid saved as relation {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/user_relations'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a spouse or kid to a guest's profile
      effect: write
      questions:
      - Can guests add their kids' birthdays to their loyalty profile?
      - Which relation types can a guest add besides a spouse?
      instructions:
      - text: Add my kid {name} born {birthday} to my profile.
        slots:
          name: requestBody.name
          birthday: requestBody.birthday
      - text: Create a {relation} relation named {name} with birthday {birthday}.
        slots:
          relation: requestBody.relation
          name: requestBody.name
          birthday: requestBody.birthday
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/send_verification_email'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a guest an account verification email
      effect: write
      questions:
      - How do I resend the account verification email to a guest?
      - Can the app ask Punchh to email a guest to verify their address?
      instructions:
      - text: Send a verification email to the guest signed in to app client {client}.
        slots:
          client: requestBody.client
      - text: Resend my account verification email.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/session_tokens'].post
  update:
    x-apievangelist-phrasing:
      intent: Get a short-lived token for POS or kiosk lookup
      effect: write
      questions:
      - Can a guest identify themselves at a kiosk using a temporary token from the app?
      - What is the session token used for when looking a guest up at the POS?
      instructions:
      - text: Generate a short-lived session token for app client {client}.
        slots:
          client: requestBody.client
      - text: Create a temporary token so the POS can look me up.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/async_users'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a guest's profile asynchronously
      effect: write
      questions:
      - Is there a way to queue a guest profile change instead of applying it immediately?
      - Which endpoint updates a guest's details in the background rather than synchronously?
      instructions:
      - text: Queue an asynchronous profile update with {user}.
        slots:
          user: requestBody.user
      - text: Update guest details {user} in the background.
        slots:
          user: requestBody.user
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/aws_s3_pre_signed_url'].post
  update:
    x-apievangelist-phrasing:
      intent: Get a pre-signed URL to upload an image
      effect: write
      questions:
      - How does the app upload a guest's image file, such as a receipt photo?
      - Can I get a pre-signed upload URL for an image from the app?
      instructions:
      - text: Get a pre-signed upload URL for image {filename}.
        slots:
          filename: requestBody.filename
      - text: Upload the photo named {filename} to storage.
        slots:
          filename: requestBody.filename
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/balance'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the guest's balance, badges and redemptions
      effect: read
      questions:
      - What does the app's user balance call return besides points?
      - Where can I see a guest's active redemptions, badges and notification count together?
      instructions:
      - text: Fetch my balance summary with active redemptions and badges.
      - text: Show the balance, notifications and badges for app client {client}.
        slots:
          client: requestBody.client
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/conversions'].post
  update:
    x-apievangelist-phrasing:
      intent: Convert a guest's points to cash, fuel or charity
      effect: write
      questions:
      - Can guests turn their loyalty points into a fuel discount or a charity donation?
      - What conversion rule does a points-to-cash conversion need?
      instructions:
      - text: Convert {source_value} points into {converted_value} using rule {rule}.
        slots:
          source_value: requestBody.source_value
          converted_value: requestBody.converted_value
          rule: requestBody.conversion_rule_id
      - text: Apply conversion rule {rule} to {source_value} of my points.
        slots:
          rule: requestBody.conversion_rule_id
          source_value: requestBody.source_value
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/deals'].get
  update:
    x-apievangelist-phrasing:
      intent: List deals available to the guest in the app
      effect: read
      questions:
      - Which deals can a guest browse in the mobile app?
      - How many deals come back per page if I don't set a page size?
      instructions:
      - text: List the deals available to me in the app.
      - text: Show page {page} of my app deals with {per_page} per page.
        slots:
          page: requestBody.page
          per_page: requestBody.per_page
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/deals'].post
  update:
    x-apievangelist-phrasing:
      intent: Save a deal to the guest's account
      effect: write
      questions:
      - How does a guest claim a deal so it shows up in their account?
      - Can I add a specific deal to a guest's account from the app?
      instructions:
      - text: Save deal {redeemable_uuid} to my account.
        slots:
          redeemable_uuid: requestBody.redeemable_uuid
      - text: Claim the deal {redeemable_uuid} for me in the app.
        slots:
          redeemable_uuid: requestBody.redeemable_uuid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/estimate_points'].get
  update:
    x-apievangelist-phrasing:
      intent: Estimate points a purchase would earn
      effect: read
      questions:
      - Can I show a guest how many points an order will earn before they pay?
      - Does the points estimate include special promotions or campaigns?
      instructions:
      - text: Estimate the points I'd earn on a {receipt_amount} order.
        slots:
          receipt_amount: requestBody.receipt_amount
      - text: Predict points for a {receipt_amount} receipt at store {store_number}.
        slots:
          receipt_amount: requestBody.receipt_amount
          store_number: requestBody.store_number
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/balance_timelines'].get
  update:
    x-apievangelist-phrasing:
      intent: Show a guest's currency and fuel balance timeline
      effect: read
      questions:
      - How has a guest's banked currency or fuel discount changed over time?
      - What does the balance timeline return for a business that only uses currency?
      instructions:
      - text: Show the balance timeline for session {access_token}.
        slots:
          access_token: requestBody.access_token
      - text: Get my currency and fuel discount timeline in the app.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/user_enrollments'].post
  update:
    x-apievangelist-phrasing:
      intent: Enroll the guest in a social cause campaign
      effect: write
      questions:
      - Can a guest join a social cause campaign from the mobile app?
      - Which campaign types support guest enrollment today?
      instructions:
      - text: Enroll me in campaign {item_id} of type {item_type}.
        slots:
          item_id: requestBody.item_id
          item_type: requestBody.item_type
      - text: Sign me up for social cause campaign {item_id} in the app.
        slots:
          item_id: requestBody.item_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/user_enrollments'].patch
  update:
    x-apievangelist-phrasing:
      intent: Remove the guest from a social cause campaign
      effect: write
      questions:
      - How does a guest leave a social cause campaign they joined in the app?
      - Can I unenroll a guest from a campaign without deleting their account?
      instructions:
      - text: Unenroll me from {item_type} campaign {item_id} in the app.
        slots:
          item_type: requestBody.item_type
          item_id: requestBody.item_id
      - text: Take me out of my current {item_type} campaign.
        slots:
          item_type: requestBody.item_type
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/deals/{redeemable_uuid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the details of one deal
      effect: read
      questions:
      - What are the terms of a specific deal shown in the app?
      - Can I look up one deal by its UUID?
      instructions:
      - text: Show the details of deal {redeemable_uuid}.
        slots:
          redeemable_uuid: path.redeemable_uuid
      - text: Open deal {redeemable_uuid} and tell me what it offers.
        slots:
          redeemable_uuid: path.redeemable_uuid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/lifetime_stats'].get
  update:
    x-apievangelist-phrasing:
      intent: Show a guest's lifetime loyalty stats
      effect: read
      questions:
      - How many visits and points has a guest racked up since they joined?
      - Is there a summary of a member's loyalty activity since sign-up?
      instructions:
      - text: Show my lifetime loyalty stats since I signed up.
      - text: Get lifetime statistics for the guest on app client {client}.
        slots:
          client: requestBody.client
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/points_expiry_timeline'].get
  update:
    x-apievangelist-phrasing:
      intent: Show when a guest's points expire each month
      effect: read
      questions:
      - When are a guest's loyalty points going to expire?
      - Which settings must be on before the points expiry timeline works?
      instructions:
      - text: Show my upcoming points expiry dates.
      - text: List points expiring with status {status} over a {lookback_period} lookback.
        slots:
          status: requestBody.status
          lookback_period: requestBody.lookback_period
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/google_sign_in'].post
  update:
    x-apievangelist-phrasing:
      intent: Sign a guest in with Google
      effect: write
      questions:
      - Can guests log into the loyalty app with their Google account?
      - What must be enabled before Google Sign-in works for a business?
      instructions:
      - text: Sign in with Google using ID token {google_id_token}.
        slots:
          google_id_token: requestBody.google_id_token
      - text: Register {first_name} {last_name} via Google token {google_id_token}.
        slots:
          first_name: requestBody.first_name
          last_name: requestBody.last_name
          google_id_token: requestBody.google_id_token
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/users/request_reactivation'].post
  update:
    x-apievangelist-phrasing:
      intent: Request reactivation of a deactivated profile
      effect: write
      questions:
      - Can a guest whose profile was deactivated ask to be reactivated from the app?
      - When is a guest allowed to request their own reactivation?
      instructions:
      - text: Request reactivation of the deactivated profile for {email}.
        slots:
          email: requestBody.email
      - text: Ask to reactivate my account with email {email} and phone {phone}.
        slots:
          email: requestBody.email
          phone: requestBody.phone
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/ban'].post
  update:
    x-apievangelist-phrasing:
      intent: Ban a guest from the loyalty program
      effect: destructive
      questions:
      - How do I stop a fraudulent guest from checking in or redeeming rewards?
      - Can a ban also cover every device linked to the guest?
      instructions:
      - text: Ban user {user_id} for reason {reason}.
        slots:
          user_id: requestBody.user_id
          reason: requestBody.reason
      - text: 'Ban guest {user_id} for {reason}, banning all linked devices: {all_devices}.'
        slots:
          user_id: requestBody.user_id
          reason: requestBody.reason
          all_devices: requestBody.ban_all_associated_devices
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/ban'].delete
  update:
    x-apievangelist-phrasing:
      intent: Lift a ban on a guest
      effect: destructive
      questions:
      - How do I let a banned guest check in and redeem again?
      - Can an admin remove a ban placed on a loyalty member?
      instructions:
      - text: Unban user {user_id}.
        slots:
          user_id: query.user_id
      - text: Remove the ban on guest {user_id} so they can redeem again.
        slots:
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/send_message'].post
  update:
    x-apievangelist-phrasing:
      intent: Message a guest and gift points or rewards
      effect: write
      questions:
      - Can I send a guest a message and gift them points at the same time?
      - Is it possible to advance a guest's challenge progress with an admin message?
      - Which reward types can be gifted in a single message to a user?
      instructions:
      - text: Send user {user_id} a message titled {subject} saying {message}.
        slots:
          user_id: requestBody.user_id
          subject: requestBody.subject
          message: requestBody.message
      - text: Gift {gift_count} points to user {user_id} for {gift_reason}.
        slots:
          gift_count: requestBody.gift_count
          user_id: requestBody.user_id
          gift_reason: requestBody.gift_reason
      - text: Give user {user_id} redeemable {redeemable_id} expiring {end_date}.
        slots:
          user_id: requestBody.user_id
          redeemable_id: requestBody.redeemable_id
          end_date: requestBody.end_date
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/reactivate'].post
  update:
    x-apievangelist-phrasing:
      intent: Reactivate a deactivated guest
      effect: write
      questions:
      - How do admins bring a deactivated guest back so they can check in again?
      - Can a deactivated loyalty member be restored from the dashboard?
      instructions:
      - text: Reactivate user {user_id}.
        slots:
          user_id: query.user_id
      - text: Restore deactivated guest {user_id} to active status.
        slots:
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/deactivate'].delete
  update:
    x-apievangelist-phrasing:
      intent: Deactivate a guest
      effect: destructive
      questions:
      - What is the first step before deleting a guest from the platform?
      - Can I suspend a guest's check-ins and emails without deleting them?
      instructions:
      - text: Deactivate user {user_id}.
        slots:
          user_id: query.user_id
      - text: Suspend guest {user_id} from check-ins, redemptions and emails.
        slots:
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a deactivated guest for deletion
      effect: destructive
      questions:
      - How do admins permanently delete a guest who was already deactivated?
      - Does a guest have to be deactivated before they can be deleted?
      instructions:
      - text: Delete deactivated user {user_id}.
        slots:
          user_id: requestBody.user_id
      - text: Mark guest {user_id} for deletion because {reason}.
        slots:
          user_id: requestBody.user_id
          reason: requestBody.reason
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update any field on a guest as an admin
      effect: write
      questions:
      - Can an admin edit a guest's profile fields from the dashboard?
      - Why didn't an admin birthday change stick for a guest?
      instructions:
      - text: As an admin, update user {id} with {user}.
        slots:
          id: requestBody.id
          user: requestBody.user
      - text: Edit the guest with email {email} and set {user}.
        slots:
          email: requestBody.email
          user: requestBody.user
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/send_user_details_export'].post
  update:
    x-apievangelist-phrasing:
      intent: Email a guest their data export
      effect: write
      questions:
      - How do I send a guest a copy of their personal data?
      - Can the guest data export go only to the admin who asked for it?
      instructions:
      - text: Email a data export for user {user_id}.
        slots:
          user_id: requestBody.user_id
      - text: Send the export for user {user_id} to me only, admin-only set to {email_admin_only}.
        slots:
          user_id: requestBody.user_id
          email_admin_only: requestBody.email_admin_only
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/extensive_timeline'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a guest's extended timeline
      effect: read
      questions:
      - Where can support staff see a guest's full extended activity timeline?
      - Is there a more detailed history view for a single guest than the app shows?
      instructions:
      - text: Get the extended timeline for user {user_id}.
        slots:
          user_id: query.user_id
      - text: Pull guest {user_id}'s full activity history from the dashboard.
        slots:
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/user_favourite_locations'].get
  update:
    x-apievangelist-phrasing:
      intent: List a guest's favorite locations
      effect: read
      questions:
      - Which stores has a guest marked as their favorites?
      - Can I see a guest's favorite locations for eClub?
      instructions:
      - text: List favorite locations for user {user_id}.
        slots:
          user_id: query.user_id
      - text: Show which stores guest {user_id} favorited.
        slots:
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/user_favourite_locations'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove one of a guest's favorite locations
      effect: destructive
      questions:
      - How do I remove a store from a guest's favorites?
      - Can several favorite locations be deleted in one call?
      instructions:
      - text: Remove favorite location {fav_id} from user {user_id}.
        slots:
          fav_id: query.user_favourite_location_id
          user_id: query.user_id
      - text: Unfavorite entry {fav_id} for guest {user_id}.
        slots:
          fav_id: query.user_favourite_location_id
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/info'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a guest by ID, email or phone
      effect: read
      questions:
      - How can an admin find a guest by email address or phone number?
      - Why can't I search guests by phone number?
      instructions:
      - text: Find the guest with email {email}.
        slots:
          email: requestBody.email
      - text: Look up user information for phone {phone}.
        slots:
          phone: requestBody.phone
      - text: Get the profile of user {user_id} as an admin.
        slots:
          user_id: requestBody.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/users/redemption'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up redemptions applied to an order
      effect: read
      questions:
      - Which offers and discounts were applied to a specific online or POS order?
      - Can I reconcile redemptions by transaction number?
      instructions:
      - text: Look up redemptions on transaction {transaction_no}.
        slots:
          transaction_no: requestBody.transaction_no
      - text: Show which discounts were applied to order {transaction_no}.
        slots:
          transaction_no: requestBody.transaction_no
      method: generated
      generated: '2026-10-01'