# 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' - target: $.paths['/sms/numbers'].delete update: x-apievangelist-phrasing: intent: Remove phone numbers from an SMS mailing list effect: destructive questions: - How do I take phone numbers out of an SMS mailing list? - Can I delete several numbers from an address book at once? instructions: - text: Remove phones {phones} from mailing list {addressBookId}. slots: phones: requestBody.phones addressBookId: requestBody.addressBookId - text: Delete numbers {phones} from address book {addressBookId}. slots: phones: requestBody.phones addressBookId: requestBody.addressBookId method: generated generated: '2026-10-01' - target: $.paths['/sms/numbers/variables'].post update: x-apievangelist-phrasing: intent: Add phone numbers with variables to a mailing list effect: write questions: - Can I add phone numbers to a list together with per-number variables like name? - What's the way to import SMS contacts with complex variables attached? instructions: - text: Add phones with their variables {phones} to mailing list {addressBookId}. slots: phones: requestBody.phones addressBookId: requestBody.addressBookId - text: Import numbers plus personalization data {phones} into address book {addressBookId}. slots: phones: requestBody.phones addressBookId: requestBody.addressBookId method: generated generated: '2026-10-01' - target: $.paths['/addressbooks/{id}/phone'].put update: x-apievangelist-phrasing: intent: Change the phone number tied to an email in a list effect: write questions: - How do I change the phone number of a subscriber in a mailing list, matched by their email? - Can I update a list subscriber's phone using their email address? instructions: - text: Set the phone for {email} in mailing list {id} to {phone}. slots: email: requestBody.email id: path.id phone: requestBody.phone - text: In address book {id}, change subscriber {email}'s number to {phone}. slots: id: path.id email: requestBody.email phone: requestBody.phone method: generated generated: '2026-10-01' - target: $.paths['/addressbooks/{id}/phones/variable'].post update: x-apievangelist-phrasing: intent: Change variables for one phone number in a list effect: write questions: - Can I update the variables on a single phone contact in a mailing list? - How do I edit personalization data for just one SMS number? instructions: - text: Set variables {variables} for phone {phone} in mailing list {id}. slots: variables: requestBody.variables phone: requestBody.phone id: path.id - text: Update just number {phone} in address book {id} with {variables}. slots: phone: requestBody.phone id: path.id variables: requestBody.variables method: generated generated: '2026-10-01' - target: $.paths['/sms/numbers/info/{addressBookId}/{phoneNumber}'].get update: x-apievangelist-phrasing: intent: Get details of a phone number in a mailing list effect: read questions: - What variables and status are stored for a phone number in my SMS list? - Is a particular number in a given address book? instructions: - text: Get info on phone {phoneNumber} in mailing list {addressBookId}. slots: phoneNumber: path.phoneNumber addressBookId: path.addressBookId - text: Show what address book {addressBookId} holds for number {phoneNumber}. slots: addressBookId: path.addressBookId phoneNumber: path.phoneNumber method: generated generated: '2026-10-01' - target: $.paths['/contacts/getByTelegramId'].get update: x-apievangelist-phrasing: intent: Find a bot contact by Telegram ID effect: read questions: - Which bot subscriber matches a Telegram user ID? - Can I look up a Telegram contact through a business connection? instructions: - text: Find the contact with Telegram ID {telegram_id} in bot {bot_id}. slots: telegram_id: query.telegram_id bot_id: query.bot_id - text: Look up Telegram user {telegram_id} on bot {bot_id} via business connection {business_connection_id}. slots: telegram_id: query.telegram_id bot_id: query.bot_id business_connection_id: query.business_connection_id method: generated generated: '2026-10-01' - target: $.paths['/contacts/react'].post update: x-apievangelist-phrasing: intent: React to a contact's message with an emoji effect: write questions: - Can my bot react to a subscriber's message with an emoji? - How do I add a thumbs-up reaction to a specific chat message? instructions: - text: React with {reaction} to message {message_id} from contact {contact_id}. slots: reaction: requestBody.reaction message_id: requestBody.message_id contact_id: requestBody.contact_id - text: Put a {reaction} reaction on {contact_id}'s message {message_id}. slots: reaction: requestBody.reaction contact_id: requestBody.contact_id message_id: requestBody.message_id method: generated generated: '2026-10-01' - target: $.paths['/contacts/getByPhone'].get update: x-apievangelist-phrasing: intent: Find a bot contact by phone number effect: read questions: - Which chatbot subscriber has a given phone number? - Can I pull a bot contact's tags and variables using their phone? instructions: - text: Find the contact with phone {phone} in bot {bot_id}. slots: phone: query.phone bot_id: query.bot_id - text: Look up bot {bot_id}'s subscriber by number {phone}. slots: bot_id: query.bot_id phone: query.phone method: generated generated: '2026-10-01' - target: $.paths['/contacts/sendByPhone'].post update: x-apievangelist-phrasing: intent: Send a free-form message to a contact by phone effect: write questions: - Can I message an active chatbot subscriber using only their phone number? - Is it possible to send an image or file to a contact by phone instead of contact ID? instructions: - text: Send {message} to phone {phone} through bot {bot_id}. slots: message: requestBody.message phone: requestBody.phone bot_id: requestBody.bot_id - text: Message the active contact at {phone} on bot {bot_id} with a free-form {message}. slots: phone: requestBody.phone bot_id: requestBody.bot_id message: requestBody.message method: generated generated: '2026-10-01' - target: $.paths['/contacts/sendTemplate'].post update: x-apievangelist-phrasing: intent: Send an approved template message to a contact effect: write questions: - How do I send a pre-approved template message to an existing subscriber by contact ID? - Can a template I send include buttons, variables or an image header? instructions: - text: Send template {template} to contact {contact_id}. slots: template: requestBody.template contact_id: requestBody.contact_id - text: Deliver approved template message {template} to subscriber {contact_id}. slots: template: requestBody.template contact_id: requestBody.contact_id method: generated generated: '2026-10-01' - target: $.paths['/contacts/sendTemplateByPhone'].post update: x-apievangelist-phrasing: intent: Send an approved template message to a phone number effect: write questions: - Can I send a template message to a phone number that isn't a contact yet? - What's the way to start a conversation with a new number using an approved template? instructions: - text: Send template {template} to phone {phone} via bot {bot_id}. slots: template: requestBody.template phone: requestBody.phone bot_id: requestBody.bot_id - text: Reach new number {phone} on bot {bot_id} with approved template {template}. slots: phone: requestBody.phone bot_id: requestBody.bot_id template: requestBody.template method: generated generated: '2026-10-01' - target: $.paths['/contacts/setName'].post update: x-apievangelist-phrasing: intent: Set a chatbot contact's display name effect: write questions: - Can I change how a chatbot subscriber's name is displayed? - How do I rename a bot contact? instructions: - text: Set the name of contact {contact_id} to {name}. slots: contact_id: requestBody.contact_id name: requestBody.name - text: Rename bot subscriber {contact_id} as {name}. slots: contact_id: requestBody.contact_id name: requestBody.name method: generated generated: '2026-10-01'