SendPulse · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Sendpulse Contacts API

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

What the actions change

x-apievangelist-phrasing

Targets 58 · first 16 shown; the file carries all of them

$.info
$.paths['/contacts/get-list'].post
$.paths['/contacts/get-list-by-email'].post
$.paths['/contacts'].post
$.paths['/contacts/create'].post
$.paths['/contacts/{contactId}'].get
$.paths['/contacts/{contactId}'].put
$.paths['/contacts/{contactId}'].delete
$.paths['/contacts/{contactId}/deals'].get
$.paths['/contacts/{contactId}/comments'].post
$.paths['/contacts/{contactId}/comments/{commentId}'].put
$.paths['/contacts/{contactId}/comments/{commentId}'].delete
$.paths['/contacts/{contactId}/edu-payments'].get
$.paths['/contacts/{contactId}/edu-statistic'].get
$.paths['/contacts/external/{externalContactId}'].get
$.paths['/contacts/messenger-external/{messengerContactId}'].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 Sendpulse Contacts API
  version: 1.0.0
extends: openapi/sendpulse-contacts-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-02'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 57
- target: $.paths['/contacts/get-list'].post
  update:
    x-apievangelist-phrasing:
      intent: Filter and list CRM contacts
      effect: read
      questions:
      - Which CRM contacts were created in a given date range?
      - Can I filter my CRM contacts by tag, responsible manager or source?
      instructions:
      - text: List CRM contacts created between {from} and {to}.
        slots:
          from: requestBody.from
          to: requestBody.to
      - text: Filter CRM contacts tagged {tagIds} and owned by {responsibleIds}.
        slots:
          tagIds: requestBody.tagIds
          responsibleIds: requestBody.responsibleIds
      - text: Page through CRM contacts, {limit} at a time from offset {offset}.
        slots:
          limit: requestBody.limit
          offset: requestBody.offset
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/get-list-by-email'].post
  update:
    x-apievangelist-phrasing:
      intent: Find CRM contacts by email address
      effect: read
      questions:
      - Is there already a CRM contact with this email address?
      - Can I search CRM contacts by a partial email instead of the full address?
      instructions:
      - text: Find CRM contacts with email {email}.
        slots:
          email: requestBody.email
      - text: Search CRM contacts by email {email}, exact match set to {isEmailFullSearch}.
        slots:
          email: requestBody.email
          isEmailFullSearch: requestBody.isEmailFullSearch
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a CRM contact (deprecated endpoint)
      effect: write
      questions:
      - Does the older deprecated create-contact endpoint still accept phones, emails and tags in one call?
      - Can I use the legacy POST /contacts route to add a contact with attachments?
      instructions:
      - text: Using the deprecated endpoint, create a contact owned by {responsibleId} with emails {emails} and phones {phones}.
        slots:
          responsibleId: requestBody.responsibleId
          emails: requestBody.emails
          phones: requestBody.phones
      - text: Via the legacy create route, add contact {firstName} for {responsibleId} with tags {tags}.
        slots:
          firstName: requestBody.firstName
          responsibleId: requestBody.responsibleId
          tags: requestBody.tags
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a CRM contact
      effect: write
      questions:
      - What's the current way to add a new contact to my CRM?
      - Can I store my own external ID on a contact when creating it?
      instructions:
      - text: Create CRM contact {firstName} {lastName} assigned to {responsibleId}.
        slots:
          firstName: requestBody.firstName
          lastName: requestBody.lastName
          responsibleId: requestBody.responsibleId
      - text: Add a new CRM contact for {responsibleId} with external ID {externalContactId}.
        slots:
          responsibleId: requestBody.responsibleId
          externalContactId: requestBody.externalContactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a CRM contact's details
      effect: read
      questions:
      - What does the CRM know about a contact, including phones, emails and deal count?
      - Can I fetch a single CRM contact record by its ID?
      instructions:
      - text: Show CRM contact {contactId}.
        slots:
          contactId: path.contactId
      - text: Get phones, emails and deal count for CRM contact {contactId}.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a CRM contact
      effect: write
      questions:
      - How do I change the name on an existing CRM contact?
      - Can I reassign a CRM contact to a different team member?
      instructions:
      - text: Rename CRM contact {contactId} to {firstName} {lastName}, owner {responsibleId}.
        slots:
          contactId: path.contactId
          firstName: requestBody.firstName
          lastName: requestBody.lastName
          responsibleId: requestBody.responsibleId
      - text: Make {responsibleId} responsible for CRM contact {contactId}.
        slots:
          responsibleId: requestBody.responsibleId
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a CRM contact
      effect: destructive
      questions:
      - How do I permanently remove a contact from my CRM?
      - Can I delete a duplicate CRM contact record?
      instructions:
      - text: Delete CRM contact {contactId}.
        slots:
          contactId: path.contactId
      - text: Remove contact record {contactId} from the CRM.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/deals'].get
  update:
    x-apievangelist-phrasing:
      intent: List a contact's deals
      effect: read
      questions:
      - Which deals is a CRM contact involved in?
      - Can I see every deal related to one person?
      instructions:
      - text: List the deals for CRM contact {contactId}.
        slots:
          contactId: path.contactId
      - text: Show all deals linked to contact {contactId}.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/comments'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a note to a CRM contact
      effect: write
      questions:
      - How do I leave a note on a CRM contact's card?
      - Can I log a comment against a contact record?
      instructions:
      - text: Add the note {message} to CRM contact {contactId}.
        slots:
          message: requestBody.message
          contactId: path.contactId
      - text: 'Log a comment on contact {contactId}: {message}.'
        slots:
          contactId: path.contactId
          message: requestBody.message
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/comments/{commentId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a note on a CRM contact
      effect: write
      questions:
      - Can I edit a note I already left on a CRM contact?
      - How do I correct the text of an existing contact comment?
      instructions:
      - text: Change note {commentId} on contact {contactId} to {message}.
        slots:
          commentId: path.commentId
          contactId: path.contactId
          message: requestBody.message
      - text: Rewrite existing comment {commentId} on CRM contact {contactId} as {message}.
        slots:
          commentId: path.commentId
          contactId: path.contactId
          message: requestBody.message
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/comments/{commentId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a note from a CRM contact
      effect: destructive
      questions:
      - How do I remove a note from a CRM contact?
      - Can I delete one comment on a contact's card?
      instructions:
      - text: Delete note {commentId} from contact {contactId}.
        slots:
          commentId: path.commentId
          contactId: path.contactId
      - text: Remove comment {commentId} on CRM contact {contactId}.
        slots:
          commentId: path.commentId
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/edu-payments'].get
  update:
    x-apievangelist-phrasing:
      intent: List a contact's course payments
      effect: read
      questions:
      - What has a student contact paid for my online courses?
      - Can I see the EDU payment records tied to one contact?
      instructions:
      - text: List the EDU course payments for contact {contactId}.
        slots:
          contactId: path.contactId
      - text: Show what student contact {contactId} has paid for courses.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/edu-statistic'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's course learning statistics
      effect: read
      questions:
      - How is a student contact progressing through my courses?
      - Can I pull EDU learning statistics for a single contact?
      instructions:
      - text: Get the EDU statistics for contact {contactId}.
        slots:
          contactId: path.contactId
      - text: Show course progress stats for student contact {contactId}.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/external/{externalContactId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Find a CRM contact by my external ID
      effect: read
      questions:
      - Does a CRM contact already exist for the ID from my own system?
      - Can I look up a contact using the external contact ID I stored?
      instructions:
      - text: Find the CRM contact with external ID {externalContactId}.
        slots:
          externalContactId: path.externalContactId
      - text: Check whether external contact {externalContactId} exists in the CRM.
        slots:
          externalContactId: path.externalContactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/messenger-external/{messengerContactId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Find a CRM contact by messenger contact ID
      effect: read
      questions:
      - Which CRM contact matches a chatbot messenger contact?
      - Can I map a messenger contact ID back to its CRM record?
      instructions:
      - text: Find the CRM contact for messenger contact {messengerContactId}.
        slots:
          messengerContactId: path.messengerContactId
      - text: Look up the CRM record linked to chatbot contact {messengerContactId}.
        slots:
          messengerContactId: path.messengerContactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/relation/{companyId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Link a contact to a company
      effect: write
      questions:
      - How do I associate a CRM contact with the company they work for?
      - Can I add a person to a company record?
      instructions:
      - text: Link contact {contactId} to company {companyId}.
        slots:
          contactId: path.contactId
          companyId: path.companyId
      - text: Add person {contactId} to company {companyId}.
        slots:
          contactId: path.contactId
          companyId: path.companyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contactId}/relation/{companyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unlink a contact from a company
      effect: destructive
      questions:
      - How do I remove a contact from a company they've left?
      - Can I break the link between a person and a company without deleting either?
      instructions:
      - text: Unlink contact {contactId} from company {companyId}.
        slots:
          contactId: path.contactId
          companyId: path.companyId
      - text: Take person {contactId} off company {companyId}.
        slots:
          contactId: path.contactId
          companyId: path.companyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/get'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a chatbot contact by ID
      effect: read
      questions:
      - What tags, variables and activity does a chatbot subscriber have?
      - Can I fetch a bot contact's profile and date added by its ID?
      instructions:
      - text: Get chatbot contact {id}.
        slots:
          id: query.id
      - text: Show the tags, variables and activity of bot subscriber {id}.
        slots:
          id: query.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/getByTag'].get
  update:
    x-apievangelist-phrasing:
      intent: List chatbot contacts with a tag
      effect: read
      questions:
      - Which chatbot subscribers have a specific tag?
      - Can I page through the bot contacts carrying a tag?
      instructions:
      - text: List contacts of bot {bot_id} tagged {tag}.
        slots:
          bot_id: query.bot_id
          tag: query.tag
      - text: Show {size} subscribers of bot {bot_id} with tag {tag}, skipping {skip}.
        slots:
          size: query.size
          bot_id: query.bot_id
          tag: query.tag
          skip: query.skip
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/getByVariable'].get
  update:
    x-apievangelist-phrasing:
      intent: List chatbot contacts by variable value
      effect: read
      questions:
      - Which bot subscribers have a variable set to a certain value?
      - Can I find chatbot contacts by variable name instead of variable ID?
      instructions:
      - text: Find contacts of bot {bot_id} where {variable_name} equals {variable_value}.
        slots:
          bot_id: query.bot_id
          variable_name: query.variable_name
          variable_value: query.variable_value
      - text: List subscribers whose variable {variable_id} is {variable_value}.
        slots:
          variable_id: query.variable_id
          variable_value: query.variable_value
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/sendText'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a plain text chatbot message to a contact
      effect: write
      questions:
      - How do I send a simple text message to a chatbot subscriber?
      - Can I attach a message tag when texting a contact outside the messaging window?
      instructions:
      - text: Text contact {contact_id} the message {text} as type {message_type}.
        slots:
          contact_id: requestBody.contact_id
          text: requestBody.text
          message_type: requestBody.message_type
      - text: Send plain text {text} to contact {contact_id} as {message_type} with tag {message_tag}.
        slots:
          text: requestBody.text
          contact_id: requestBody.contact_id
          message_type: requestBody.message_type
          message_tag: requestBody.message_tag
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/send'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a structured chatbot message to a contact
      effect: write
      questions:
      - Can I send a rich message object, not just text, to a chatbot subscriber by contact ID?
      - What's the endpoint for sending a full message payload to a bot contact?
      instructions:
      - text: Send the message payload {message} to contact {contact_id}.
        slots:
          message: requestBody.message
          contact_id: requestBody.contact_id
      - text: Deliver structured message {message} to bot subscriber {contact_id}.
        slots:
          message: requestBody.message
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/sendTyping'].post
  update:
    x-apievangelist-phrasing:
      intent: Show a typing indicator to a contact
      effect: write
      questions:
      - Can my bot show the 'typing…' indicator to a subscriber?
      - How do I make a chat look like an agent is typing a reply?
      instructions:
      - text: Show a typing indicator to contact {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      - text: Display 'typing' in the chat with {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/setVariable'].post
  update:
    x-apievangelist-phrasing:
      intent: Set a variable value on a chatbot contact
      effect: write
      questions:
      - How do I store a custom variable value on a bot subscriber?
      - Can I update several variables on a chatbot contact at once?
      instructions:
      - text: Set variables {variables} on contact {contact_id}.
        slots:
          variables: requestBody.variables
          contact_id: requestBody.contact_id
      - text: Save variable values {variables} for bot subscriber {contact_id}.
        slots:
          variables: requestBody.variables
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/deleteVariable'].post
  update:
    x-apievangelist-phrasing:
      intent: Clear a variable value from a chatbot contact
      effect: destructive
      questions:
      - How do I erase a variable value stored on a bot subscriber?
      - Can I delete a contact's variable by name rather than ID?
      instructions:
      - text: Delete variable {variable_name} from contact {contact_id}.
        slots:
          variable_name: requestBody.variable_name
          contact_id: requestBody.contact_id
      - text: Clear the value of variable {variable_id} on bot subscriber {contact_id}.
        slots:
          variable_id: requestBody.variable_id
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/mark-read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a contact's chat messages as read
      effect: write
      questions:
      - Can I reset the unread count on a subscriber's chat to zero?
      - How do I mark all of a contact's messages as read?
      instructions:
      - text: Mark all messages from contact {contact_id} as read.
        slots:
          contact_id: query.contact_id
      - text: Clear the unread counter for the chat with {contact_id}.
        slots:
          contact_id: query.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/mark-unread'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a contact's chat as unread
      effect: write
      questions:
      - Can I flag a chat as unread so I remember to come back to it?
      - Is there a way to mark a subscriber's last message unread again?
      instructions:
      - text: Mark the chat with contact {contact_id} as unread.
        slots:
          contact_id: query.contact_id
      - text: Flag the last message from {contact_id} as unread.
        slots:
          contact_id: query.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/setTag'].post
  update:
    x-apievangelist-phrasing:
      intent: Tag a chatbot contact
      effect: write
      questions:
      - How do I add tags to a chatbot subscriber?
      - Can I assign several tags to a bot contact in one call?
      instructions:
      - text: Tag contact {contact_id} with {tags}.
        slots:
          contact_id: requestBody.contact_id
          tags: requestBody.tags
      - text: Assign tags {tags} to bot subscriber {contact_id}.
        slots:
          tags: requestBody.tags
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/deleteTag'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove a tag from a chatbot contact
      effect: destructive
      questions:
      - How do I untag a chatbot subscriber?
      - Can I take one tag off a bot contact?
      instructions:
      - text: Remove tag {tag} from contact {contact_id}.
        slots:
          tag: requestBody.tag
          contact_id: requestBody.contact_id
      - text: Untag bot subscriber {contact_id} from {tag}.
        slots:
          contact_id: requestBody.contact_id
          tag: requestBody.tag
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/disable'].post
  update:
    x-apievangelist-phrasing:
      intent: Stop campaigns and autoflows to a contact
      effect: write
      questions:
      - Can I stop sending campaigns and autoflows to a chatbot subscriber without deleting them?
      - How do I disable a contact in my bot audience?
      instructions:
      - text: Disable contact {contact_id} so campaigns and autoflows skip them.
        slots:
          contact_id: requestBody.contact_id
      - text: Turn off all bot messaging to subscriber {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/enable'].post
  update:
    x-apievangelist-phrasing:
      intent: Re-enable a disabled contact
      effect: write
      questions:
      - How do I resume campaigns to a subscriber I previously disabled?
      - Can I re-enable a chatbot contact in my audience?
      instructions:
      - text: Enable contact {contact_id} again.
        slots:
          contact_id: requestBody.contact_id
      - text: Resume campaigns and autoflows for disabled subscriber {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/delete'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete a chatbot contact from the audience
      effect: destructive
      questions:
      - What happens if I delete a chatbot subscriber — can they come back?
      - Can I remove a contact from my bot's audience and subscriber list?
      instructions:
      - text: Delete bot contact {contact_id} from the audience.
        slots:
          contact_id: requestBody.contact_id
      - text: Remove subscriber {contact_id} from my chatbot's audience list.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/getPauseAutomation'].get
  update:
    x-apievangelist-phrasing:
      intent: Check how long autoflows are paused for a contact
      effect: read
      questions:
      - How much time is left on an autoflow pause for a subscriber?
      - Are autoflows currently paused for this chatbot contact?
      instructions:
      - text: Show the remaining autoflow pause time for contact {contact_id}.
        slots:
          contact_id: query.contact_id
      - text: Check whether automation is paused for subscriber {contact_id}.
        slots:
          contact_id: query.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/setPauseAutomation'].post
  update:
    x-apievangelist-phrasing:
      intent: Pause autoflows for a contact
      effect: write
      questions:
      - Can I pause a bot's automated flows while a human agent talks to a subscriber?
      - How do I stop autoflows for a contact for a set number of minutes?
      instructions:
      - text: Pause autoflows for contact {contact_id} for {minutes} minutes.
        slots:
          contact_id: requestBody.contact_id
          minutes: requestBody.minutes
      - text: Hold all automation for subscriber {contact_id} for {minutes} minutes.
        slots:
          contact_id: requestBody.contact_id
          minutes: requestBody.minutes
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/deletePauseAutomation'].post
  update:
    x-apievangelist-phrasing:
      intent: Resume paused autoflows for a contact
      effect: write
      questions:
      - How do I end an autoflow pause early for a subscriber?
      - Can I turn the bot's automation back on for a contact right away?
      instructions:
      - text: Resume autoflows for contact {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      - text: Cancel the automation pause on subscriber {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/notes'].get
  update:
    x-apievangelist-phrasing:
      intent: List operator notes on a chatbot contact
      effect: read
      questions:
      - What operator notes have agents left about a chat subscriber?
      - Can I read the internal notes on a bot contact?
      instructions:
      - text: List operator notes for contact {contact_id} on bot {bot_id}.
        slots:
          contact_id: query.contact_id
          bot_id: query.bot_id
      - text: Show the internal agent notes about subscriber {contact_id} in bot {bot_id}.
        slots:
          contact_id: query.contact_id
          bot_id: query.bot_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/createNote'].post
  update:
    x-apievangelist-phrasing:
      intent: Add an operator note to a chatbot contact
      effect: write
      questions:
      - How can an agent leave an internal note on a chat subscriber?
      - Can I add an operator note that the contact won't see?
      instructions:
      - text: Add operator note {text} to contact {contact_id} on bot {bot_id}.
        slots:
          text: requestBody.text
          contact_id: requestBody.contact_id
          bot_id: requestBody.bot_id
      - text: 'Leave an internal agent note for subscriber {contact_id} in bot {bot_id}: {text}.'
        slots:
          contact_id: requestBody.contact_id
          bot_id: requestBody.bot_id
          text: requestBody.text
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/updateNote'].post
  update:
    x-apievangelist-phrasing:
      intent: Edit an operator note on a chatbot contact
      effect: write
      questions:
      - Can I edit an operator note that's already on a chat subscriber?
      - How do I fix the text of an existing agent note?
      instructions:
      - text: Change operator note {note_id} on contact {contact_id} in bot {bot_id} to {text}.
        slots:
          note_id: requestBody.note_id
          contact_id: requestBody.contact_id
          bot_id: requestBody.bot_id
          text: requestBody.text
      - text: Rewrite agent note {note_id} for subscriber {contact_id} on bot {bot_id} as {text}.
        slots:
          note_id: requestBody.note_id
          contact_id: requestBody.contact_id
          bot_id: requestBody.bot_id
          text: requestBody.text
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/deleteNote'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete an operator note from a chatbot contact
      effect: destructive
      questions:
      - Can I remove an operator note I no longer need from a chat subscriber?
      - What do I need to delete one agent note from a bot contact?
      instructions:
      - text: Delete operator note {note_id} from contact {contact_id} on bot {bot_id}.
        slots:
          note_id: requestBody.note_id
          contact_id: requestBody.contact_id
          bot_id: requestBody.bot_id
      - text: Remove agent note {note_id} from subscriber {contact_id} in bot {bot_id}.
        slots:
          note_id: requestBody.note_id
          contact_id: requestBody.contact_id
          bot_id: requestBody.bot_id
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts/operators/assign'].post
  update:
    x-apievangelist-phrasing:
      intent: Assign an operator to a contact's chat
      effect: write
      questions:
      - How do I hand a chat over to a specific team member?
      - Can I make one operator responsible for a subscriber's conversation?
      instructions:
      - text: Assign operator {operator_id} to the chat with contact {contact_id}.
        slots:
          operator_id: requestBody.operator_id
          contact_id: requestBody.contact_id
      - text: Make {operator_id} responsible for subscriber {contact_id}'s chat.
        slots:
          operator_id: requestBody.operator_id
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/operators/unAssign'].post
  update:
    x-apievangelist-phrasing:
      intent: Unassign operators from a contact's chat
      effect: write
      questions:
      - Can I remove whoever is assigned to a subscriber's chat?
      - How do I put a chat back into the unassigned queue?
      instructions:
      - text: Unassign all operators from the chat with contact {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      - text: Clear the responsible agent on subscriber {contact_id}'s conversation.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/openChat'].post
  update:
    x-apievangelist-phrasing:
      intent: Open a contact's chat
      effect: write
      questions:
      - Can I mark a subscriber's chat as open to raise its priority?
      - How do I reopen a conversation so agents see it first?
      instructions:
      - text: Open the chat with contact {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      - text: Raise the priority of subscriber {contact_id}'s conversation by opening it.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/closeChat'].post
  update:
    x-apievangelist-phrasing:
      intent: Close a contact's chat
      effect: write
      questions:
      - How do I close a conversation once it's resolved?
      - Can I lower a chat's priority by marking it closed?
      instructions:
      - text: Close the chat with contact {contact_id}.
        slots:
          contact_id: requestBody.contact_id
      - text: Mark subscriber {contact_id}'s conversation as closed.
        slots:
          contact_id: requestBody.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/sms/numbers'].put
  update:
    x-apievangelist-phrasing:
      intent: Update variables for many SMS numbers in a list
      effect: write
      questions:
      - Can I update the same variables on many phone numbers in a mailing list at once?
      - What's the bulk way to change SMS contact variables?
      instructions:
      - text: Set variables {variables} on phones {phones} in mailing list {addressBookId}.
        slots:
          variables: requestBody.variables
          phones: requestBody.phones
          addressBookId: requestBody.addressBookId
      - text: Bulk-update SMS variables {variables} for numbers {phones} in list {addressBookId}.
        slots:
          variables: requestBody.variables
          phones: requestBody.phones
          addressBookId: requestBody.addressBookId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/sms/numbers'].post
  update:
    x-apievangelist-phrasing:
      intent: Add phone numbers to an SMS mailing list
      effect: write
      questions:
      - How do I add phone numbers to a mailing list for SMS campaigns?
      - Can I load a batch of plain phone numbers into an address book?
      instructions:
      - text: Add phones {phones} to mailing list {addressBookId}.
        slots:
          phones: requestBody.phones
          addressBookId: requestBody.addressBookId
      - text: 'Import these numbers into address book {addressBookId}: {phones}.'
        slots:
          addressBookId: requestBody.addressBookId
          phones: requestBody.phones
      method: generated
      generated: '2026-10-01'


# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sendpulse/refs/heads/main/overlays/sendpulse-contacts-api-phrasing-overlay.yaml