# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Infobip OpenAPI Specification Customer Engagement API version: 1.0.0 extends: openapi/infobip-customer-engagement-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 254 - target: $.paths['/people/2/persons'].get update: x-apievangelist-phrasing: intent: Look up one person or list people profiles effect: read questions: - How do I look up a customer profile in Infobip People by their email or phone? - Can I list all people profiles filtered by my own conditions, a page at a time? - What's the maximum number of people profiles returned per page when listing? instructions: - text: Find the person profile whose {type} identifier is {identifier}. slots: type: query.type identifier: query.identifier - text: List people profiles matching the filter {filter}, {limit} per page. slots: filter: query.filter limit: query.limit - text: Show me how many people profiles exist in total. method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons'].put update: x-apievangelist-phrasing: intent: Overwrite a person profile effect: write questions: - Can I completely overwrite a person's profile with new data in one request? - What happens to fields I leave out when I replace a whole person profile? instructions: - text: Overwrite the full profile of the person with {type} identifier {identifier}, setting first name {firstName} and last name {lastName}. slots: type: query.type identifier: query.identifier firstName: requestBody.firstName lastName: requestBody.lastName - text: Replace the entire profile of person {identifier} so their city is {city} and country {country}. slots: identifier: query.identifier city: requestBody.city country: requestBody.country method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons'].post update: x-apievangelist-phrasing: intent: Create a person profile effect: write questions: - How can I add a single new customer profile to People? - Can I set custom attributes and tags when creating one new person? instructions: - text: Create a new person named {firstName} {lastName}. slots: firstName: requestBody.firstName lastName: requestBody.lastName - text: Add a new person profile with external ID {externalId} and tags {tags}. slots: externalId: requestBody.externalId tags: requestBody.tags method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons'].delete update: x-apievangelist-phrasing: intent: Delete a person profile effect: destructive questions: - Can I permanently remove a single customer's profile from People? - What identifier do I need to delete one person profile? instructions: - text: Delete the person whose {type} identifier is {identifier}. slots: type: query.type identifier: query.identifier - text: Remove person profile {identifier} from People. slots: identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons'].patch update: x-apievangelist-phrasing: intent: Update selected fields on a person profile effect: write questions: - Can I change just a few fields on a person profile without resending everything? - Is there a partial update that keeps a person's other attributes untouched? instructions: - text: Patch person {identifier} so only their preferred language becomes {preferredLanguage}. slots: identifier: query.identifier preferredLanguage: requestBody.preferredLanguage - text: Update just the birth date of the person with {type} identifier {identifier} to {birthDate}. slots: type: query.type identifier: query.identifier birthDate: requestBody.birthDate method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/contactInformation'].put update: x-apievangelist-phrasing: intent: Replace all contact details on a person effect: write questions: - Can I replace every email and mobile number on a person with a fresh set? - What happens to existing phone numbers when I set a person's contact information? instructions: - text: Replace all emails and phones on person {identifier} with {contactInformation}. slots: identifier: query.identifier contactInformation: requestBody.contactInformation - text: Set the contact information of the person with {type} identifier {identifier} to exactly {contactInformation}. slots: type: query.type identifier: query.identifier contactInformation: requestBody.contactInformation method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/contactInformation'].delete update: x-apievangelist-phrasing: intent: Remove specific emails or phones from a person effect: destructive questions: - Can I delete one outdated email address from a person without touching the rest? - How would I strip a specific mobile number off a customer's profile? instructions: - text: Remove the contact details {contactInformation} from person {identifier}. slots: contactInformation: requestBody.contactInformation identifier: query.identifier - text: Delete these emails and phones {contactInformation} from the person with {type} ID {identifier}. slots: contactInformation: requestBody.contactInformation type: query.type identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/contactInformation'].patch update: x-apievangelist-phrasing: intent: Add emails or phones to a person effect: write questions: - Can I add a second email address to an existing person while keeping the old one? - Is it possible to append a new mobile number to someone's profile? instructions: - text: Add the contact details {contactInformation} to person {identifier}, keeping existing ones. slots: contactInformation: requestBody.contactInformation identifier: query.identifier - text: Append a new email or phone {contactInformation} to the person with {type} identifier {identifier}. slots: contactInformation: requestBody.contactInformation type: query.type identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/batch'].post update: x-apievangelist-phrasing: intent: Create many person profiles at once effect: write questions: - Can I import up to a thousand new people profiles in a single call? - What's the size limit for bulk-creating people? instructions: - text: 'Bulk-create these person profiles: {people}.' slots: people: requestBody.people - text: 'Create all of the following people in one batch: {people}.' slots: people: requestBody.people method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/batch'].delete update: x-apievangelist-phrasing: intent: Delete many person profiles at once effect: destructive questions: - Can I delete hundreds of people profiles in one request? - What is the cap on how many persons a bulk delete can remove? instructions: - text: 'Bulk-delete these person profiles: {people}.' slots: people: requestBody.people - text: 'Remove all of these people from People in one batch: {people}.' slots: people: requestBody.people method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/batch'].patch update: x-apievangelist-phrasing: intent: Update many person profiles at once effect: write questions: - Can I update the attributes of many existing people in one request? - Is there a bulk edit for person profiles, and how many can it take? instructions: - text: 'Bulk-update these existing person profiles with the new data: {people}.' slots: people: requestBody.people - text: 'Apply these profile changes to many people at once: {people}.' slots: people: requestBody.people method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/match'].post update: x-apievangelist-phrasing: intent: Match identities to existing person profiles effect: read questions: - Can I check which of my emails or phone numbers already belong to a person profile? - How can I get the internal person IDs for a list of external identities? instructions: - text: 'Match these identities against existing people and return their person IDs: {identities}.' slots: identities: requestBody.identities - text: Find which of {identities} already have a profile in People. slots: identities: requestBody.identities method: generated generated: '2026-09-26' - target: $.paths['/people/3/persons/merge'].post update: x-apievangelist-phrasing: intent: Merge duplicate person profiles effect: write questions: - Can I merge duplicate profiles that belong to the same customer? - Which identifiers are used to decide that two profiles should be merged? instructions: - text: 'Merge these duplicate person profiles into one: {persons}.' slots: persons: requestBody.persons - text: Combine the profiles in {persons} that share the same email or external ID. slots: persons: requestBody.persons method: generated generated: '2026-09-26' - target: $.paths['/people/3/persons/upsert'].put update: x-apievangelist-phrasing: intent: Create or fully replace profiles by identifier effect: write questions: - Can I create people who don't exist yet and completely replace those who do, in one call? - What does a full upsert do to fields missing from a matched profile? instructions: - text: 'Fully upsert these person profiles, replacing any that match by external ID, email or phone: {persons}.' slots: persons: requestBody.persons - text: Create-or-replace the profiles {persons} in one full upsert batch. slots: persons: requestBody.persons method: generated generated: '2026-09-26' - target: $.paths['/people/3/persons/upsert'].patch update: x-apievangelist-phrasing: intent: Create or partially update profiles by identifier effect: write questions: - Can I create missing people and only patch the fields I send on the ones that already exist? - Is there an upsert that preserves attributes I don't include? instructions: - text: 'Partially upsert these person profiles, keeping unsent fields on matches: {persons}.' slots: persons: requestBody.persons - text: Create-or-patch the profiles {persons}, matching on external ID, email or phone. slots: persons: requestBody.persons method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies'].get update: x-apievangelist-phrasing: intent: Look up one company or list companies effect: read questions: - How do I find a company in People by its domain or name? - Can I list all the companies I've stored, with a filter? instructions: - text: Get the company named {name}. slots: name: query.name - text: Look up the company with domain {domain}. slots: domain: query.domain - text: List companies matching {filter}, page {page}. slots: filter: query.filter page: query.page method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies'].post update: x-apievangelist-phrasing: intent: Create a company record effect: write questions: - Can I add a new B2B account as a company in People? - What details can I store on a company, like industry, VAT number or account manager? instructions: - text: Create a company called {name} in the {industry} industry. slots: name: requestBody.name industry: requestBody.industry - text: Add a company {name} with domains {domains} and VAT number {vatNumber}. slots: name: requestBody.name domains: requestBody.domains vatNumber: requestBody.vatNumber method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies'].delete update: x-apievangelist-phrasing: intent: Delete a company record effect: destructive questions: - Can I delete a single company from People by its external ID? - Which lookup fields can I use to remove one company? instructions: - text: Delete the company with ID {id}. slots: id: query.id - text: Remove the company whose domain is {domain}. slots: domain: query.domain method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies'].patch update: x-apievangelist-phrasing: intent: Update part of a company record effect: write questions: - Can I change a company's customer stage without resending its whole record? - Is it possible to replace a company's domains or tags rather than add to them? instructions: - text: Update the company with external ID {externalId} so its customer stage is {customerStage}. slots: externalId: query.externalId customerStage: requestBody.customerStage - text: Rename company {id} to {name}. slots: id: query.id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies/batch'].post update: x-apievangelist-phrasing: intent: Create many companies at once effect: write questions: - Can I bulk-create a thousand company records in one request? - What's the batch limit when importing companies? instructions: - text: 'Bulk-create these companies: {companies}.' slots: companies: requestBody.companies - text: 'Import all of these company records in one batch: {companies}.' slots: companies: requestBody.companies method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies/batch'].delete update: x-apievangelist-phrasing: intent: Delete many companies at once effect: destructive questions: - Can I bulk-remove a list of companies from People? - What is the maximum number of companies one batch delete accepts? instructions: - text: 'Bulk-delete these companies: {companies}.' slots: companies: requestBody.companies - text: 'Remove all of these company records in a single batch: {companies}.' slots: companies: requestBody.companies method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies/batch'].patch update: x-apievangelist-phrasing: intent: Update many companies at once effect: write questions: - Can I update many company records in a single call? - Is there a bulk edit for companies, and what's its size cap? instructions: - text: 'Bulk-update these companies with their new details: {companies}.' slots: companies: requestBody.companies - text: 'Apply these changes to many companies at once: {companies}.' slots: companies: requestBody.companies method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies/persons'].delete update: x-apievangelist-phrasing: intent: Unlink people from a company effect: destructive questions: - Can I detach several people from the company they're linked to? - How many persons can I remove from a company at once? instructions: - text: Remove the people {people} from the company with ID {id}. slots: people: requestBody.people id: query.id - text: Unlink {people} from the company named {name}. slots: people: requestBody.people name: query.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/companies/persons'].patch update: x-apievangelist-phrasing: intent: Link people to a company effect: write questions: - Can I associate a group of contacts with a company account? - What's the limit on adding persons to a company in one go? instructions: - text: Add the people {people} to the company with ID {id}. slots: people: requestBody.people id: query.id - text: Link {people} to the company with domain {domain}. slots: people: requestBody.people domain: query.domain method: generated generated: '2026-09-26' - target: $.paths['/people/2/tags'].get update: x-apievangelist-phrasing: intent: List People tags effect: read questions: - What tags have been created for segmenting people profiles? - Can I page through all People tags and get a total count? instructions: - text: List all People tags. - text: Show People tags page {page}, {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/people/2/tags'].post update: x-apievangelist-phrasing: intent: Create a People tag effect: write questions: - Can I create a new tag to label people profiles? - Where do I define a tag before assigning it to persons? instructions: - text: Create a People tag named {name}. slots: name: requestBody.name - text: Add a new profile tag called {name}. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/tags/{name}'].get update: x-apievangelist-phrasing: intent: Get a People tag effect: read questions: - Can I check whether a particular People tag exists? - When was a given profile tag created or last modified? instructions: - text: Get the People tag {name}. slots: name: path.name - text: Show details of the profile tag called {name}. slots: name: path.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/tags/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a People tag effect: destructive questions: - Can I delete a profile tag I no longer use? - Is there a way to remove a People tag entirely? instructions: - text: Delete the People tag {name}. slots: name: path.name - text: Remove the profile tag called {name} for good. slots: name: path.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/tags/{name}/persons'].delete update: x-apievangelist-phrasing: intent: Remove a tag from many people effect: destructive questions: - Can I take a tag off many people profiles at once? - How many persons can I untag in one batch? instructions: - text: 'Remove the tag {name} from these people: {people}.' slots: name: path.name people: requestBody.people - text: Strip the profile tag {name} off {people}. slots: name: path.name people: requestBody.people method: generated generated: '2026-09-26' - target: $.paths['/people/2/tags/{name}/persons'].patch update: x-apievangelist-phrasing: intent: Assign a tag to many people effect: write questions: - Can I apply one tag to a thousand people profiles in a single call? - How do I bulk-tag a group of contacts? instructions: - text: 'Assign the tag {name} to these people: {people}.' slots: name: path.name people: requestBody.people - text: Tag {people} with {name}. slots: people: requestBody.people name: path.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/customAttributes'].get update: x-apievangelist-phrasing: intent: List custom attributes effect: read questions: - Which custom attributes are defined on people profiles? - Can I page through all custom profile fields and their data types? instructions: - text: List all custom attributes defined in People. - text: Show custom attributes page {page}, {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/people/2/customAttributes'].post update: x-apievangelist-phrasing: intent: Create a custom attribute effect: write questions: - Can I add a custom field like loyalty tier to people profiles? - What data types can a new custom attribute have? instructions: - text: Create a custom attribute {name} with data type {dataType}. slots: name: requestBody.name dataType: requestBody.dataType - text: Add a custom profile field called {name} of type {dataType}. slots: name: requestBody.name dataType: requestBody.dataType method: generated generated: '2026-09-26' - target: $.paths['/people/2/customAttributes/{name}'].get update: x-apievangelist-phrasing: intent: Get a custom attribute effect: read questions: - Can I see the definition and data type of one custom attribute? - What schema does a particular custom profile field use? instructions: - text: Get the custom attribute {name}. slots: name: path.name - text: Show the definition of custom field {name}. slots: name: path.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/customAttributes/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a custom attribute effect: destructive questions: - Can I remove a custom attribute definition from People? - Is it possible to drop a custom profile field I no longer need? instructions: - text: Delete the custom attribute {name}. slots: name: path.name - text: Remove the custom profile field {name}. slots: name: path.name method: generated generated: '2026-09-26' - target: $.paths['/people/2/customAttributes/{name}/append'].post update: x-apievangelist-phrasing: intent: Append an item to a list-of-objects attribute effect: write questions: - Can I add one new object to a person's LIST_OF_OBJECTS custom attribute? - How would I push an extra purchase record into a person's list-type field? instructions: - text: Append a new item to custom attribute {name} for person {identifier}. slots: name: path.name identifier: query.identifier - text: Add an entry to the list-of-objects field {name} on the person with {type} identifier {identifier}. slots: name: path.name type: query.type identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}/items'].get update: x-apievangelist-phrasing: intent: Get items from a person's list attribute effect: read questions: - Can I fetch specific items from a list attribute on a person identified by email or phone? - Which items does a person's list attribute hold right now? instructions: - text: Get items {itemIds} from list {listName} of the person with {type} identifier {identifier}. slots: itemIds: query.itemIds listName: path.listName type: query.type identifier: query.identifier - text: Show the items {itemIds} in list attribute {listName} for person {identifier}. slots: itemIds: query.itemIds listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}/items'].post update: x-apievangelist-phrasing: intent: Add items to a person's list attribute effect: write questions: - Can I add new items to a list attribute on a profile looked up by identifier? - Does appending to a list attribute return the whole updated list? instructions: - text: Append items to list {listName} of the person with {type} identifier {identifier}. slots: listName: path.listName type: query.type identifier: query.identifier - text: Add new entries to the {listName} list attribute for person {identifier}. slots: listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}/items'].delete update: x-apievangelist-phrasing: intent: Delete items from a person's list attribute effect: destructive questions: - Can I delete certain entries from a person's list attribute by item ID? - What's returned after removing items from a list attribute? instructions: - text: Delete items {itemIds} from list {listName} of the person with {type} identifier {identifier}. slots: itemIds: query.itemIds listName: path.listName type: query.type identifier: query.identifier - text: Remove entries {itemIds} from the {listName} list attribute on person {identifier}. slots: itemIds: query.itemIds listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}/items/{itemId}'].put update: x-apievangelist-phrasing: intent: Replace one item in a person's list attribute effect: write questions: - Can I swap out a single item in a list attribute with a completely new version? - Is replacing a list item different from patching its fields? instructions: - text: Replace item {itemId} in list {listName} for the person with {type} identifier {identifier}. slots: itemId: path.itemId listName: path.listName type: query.type identifier: query.identifier - text: Fully overwrite list attribute item {itemId} of {listName} on person {identifier}. slots: itemId: path.itemId listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}/items/{itemId}'].patch update: x-apievangelist-phrasing: intent: Update fields of one list attribute item effect: write questions: - Can I change just one field of a list attribute item and keep its other values? - What happens to fields I omit when patching a single list item? instructions: - text: Update only the sent fields of item {itemId} in list {listName} for the person with {type} identifier {identifier}. slots: itemId: path.itemId listName: path.listName type: query.type identifier: query.identifier - text: Patch list attribute item {itemId} of {listName} on person {identifier}. slots: itemId: path.itemId listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists'].get update: x-apievangelist-phrasing: intent: Get a person's list attributes effect: read questions: - Can I retrieve several list attributes of one profile at once? - What are all the items in a person's list-type attributes? instructions: - text: Get the list attributes {listNames} of the person with {type} identifier {identifier}. slots: listNames: query.listNames type: query.type identifier: query.identifier - text: Show every item in lists {listNames} for person {identifier}. slots: listNames: query.listNames identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists'].delete update: x-apievangelist-phrasing: intent: Delete a person's list attributes effect: destructive questions: - Can I wipe entire list attributes from a profile in one call? - Is there a way to clear several list attributes on one person? instructions: - text: Delete the list attributes {listNames} from the person with {type} identifier {identifier}. slots: listNames: query.listNames type: query.type identifier: query.identifier - text: Clear out lists {listNames} entirely on person {identifier}. slots: listNames: query.listNames identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}'].put update: x-apievangelist-phrasing: intent: Replace all items in a person's list attribute effect: write questions: - Can I overwrite every item in a person's list attribute with a new set? - Does replacing a list attribute drop items I don't resend? instructions: - text: Replace all items in list {listName} of the person with {type} identifier {identifier}. slots: listName: path.listName type: query.type identifier: query.identifier - text: Overwrite the whole {listName} list attribute on person {identifier} with new items. slots: listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/3/lists/{listName}'].patch update: x-apievangelist-phrasing: intent: Update items in a person's list attribute effect: write questions: - Can I patch several items of a list attribute while leaving missing items alone? - What happens to list items I don't include in a list-level update? instructions: - text: Update the sent items and fields of list {listName} for the person with {type} identifier {identifier}. slots: listName: path.listName type: query.type identifier: query.identifier - text: Patch multiple entries of the {listName} list attribute on person {identifier}, keeping the rest. slots: listName: path.listName identifier: query.identifier method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}/items'].get update: x-apievangelist-phrasing: intent: Get list items by person ID (older endpoint) effect: read questions: - Using the older person-ID endpoint, can I read specific items from a person's list? - Is there a deprecated way to fetch list items by internal person ID? instructions: - text: Using the older person-ID endpoint, get items {itemIds} from list {listName} of person {personId}. slots: itemIds: query.itemIds listName: path.listName personId: path.personId - text: Fetch items {itemIds} of {listName} for internal person ID {personId} via the deprecated API. slots: itemIds: query.itemIds listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}/items'].post update: x-apievangelist-phrasing: intent: Add list items by person ID (older endpoint) effect: write questions: - Can I still append list items using a person's internal ID on the legacy endpoint? - Does the deprecated append-items call return the updated list? instructions: - text: Using the older person-ID endpoint, append items to list {listName} of person {personId}. slots: listName: path.listName personId: path.personId - text: Add entries to {listName} for internal person ID {personId} via the deprecated API. slots: listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}/items'].delete update: x-apievangelist-phrasing: intent: Delete list items by person ID (older endpoint) effect: destructive questions: - On the legacy person-ID endpoint, can I delete individual list items? - Is there a deprecated call that removes list entries by item ID for an internal person ID? instructions: - text: Using the older person-ID endpoint, delete items {itemIds} from list {listName} of person {personId}. slots: itemIds: query.itemIds listName: path.listName personId: path.personId - text: Remove entries {itemIds} from {listName} for internal person ID {personId} via the deprecated API. slots: itemIds: query.itemIds listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}/items/{itemId}'].put update: x-apievangelist-phrasing: intent: Replace a list item by person ID (older endpoint) effect: write questions: - Can the legacy person-ID endpoint fully replace one list item? - Is there a deprecated way to overwrite a single list entry? instructions: - text: Using the older person-ID endpoint, replace item {itemId} in list {listName} of person {personId}. slots: itemId: path.itemId listName: path.listName personId: path.personId - text: Overwrite entry {itemId} of {listName} for internal person ID {personId} via the deprecated API. slots: itemId: path.itemId listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}/items/{itemId}'].patch update: x-apievangelist-phrasing: intent: Update a list item by person ID (older endpoint) effect: write questions: - On the deprecated person-ID endpoint, can I patch only some fields of a list item? - Does the legacy item update preserve fields I leave out? instructions: - text: Using the older person-ID endpoint, update the given fields of item {itemId} in list {listName} of person {personId}. slots: itemId: path.itemId listName: path.listName personId: path.personId - text: Patch entry {itemId} of {listName} for internal person ID {personId} via the deprecated API, keeping other fields. slots: itemId: path.itemId listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists'].get update: x-apievangelist-phrasing: intent: Get a person's lists by person ID (older endpoint) effect: read questions: - Can I read several of a person's lists by internal ID on the legacy endpoint? - Is there a deprecated call that returns all items of named lists for a person ID? instructions: - text: Using the older person-ID endpoint, get lists {listNames} of person {personId}. slots: listNames: query.listNames personId: path.personId - text: Show all items of {listNames} for internal person ID {personId} via the deprecated API. slots: listNames: query.listNames personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists'].delete update: x-apievangelist-phrasing: intent: Delete a person's lists by person ID (older endpoint) effect: destructive questions: - Can the legacy person-ID endpoint delete whole lists from a profile? - Is there a deprecated way to drop several list instances for one person? instructions: - text: Using the older person-ID endpoint, delete lists {listNames} of person {personId}. slots: listNames: query.listNames personId: path.personId - text: Remove the list instances {listNames} for internal person ID {personId} via the deprecated API. slots: listNames: query.listNames personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}'].put update: x-apievangelist-phrasing: intent: Replace a person's list by person ID (older endpoint) effect: write questions: - On the legacy person-ID endpoint, can I replace an entire list? - Is there a deprecated call that overwrites all items in one list? instructions: - text: Using the older person-ID endpoint, replace list {listName} of person {personId}. slots: listName: path.listName personId: path.personId - text: Overwrite all of {listName} for internal person ID {personId} via the deprecated API. slots: listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/persons/{personId}/lists/{listName}'].patch update: x-apievangelist-phrasing: intent: Update a person's list by person ID (older endpoint) effect: write questions: - Can the deprecated person-ID endpoint patch several items of a list while preserving the rest? - Is there a legacy list-level partial update keyed by person ID? instructions: - text: Using the older person-ID endpoint, update the given items of list {listName} of person {personId}. slots: listName: path.listName personId: path.personId - text: Patch multiple entries of {listName} for internal person ID {personId} via the deprecated API, preserving others. slots: listName: path.listName personId: path.personId method: generated generated: '2026-09-26' - target: $.paths['/people/2/contactInformation/push/{pushRegId}'].get update: x-apievangelist-phrasing: intent: Get a push device registration effect: read questions: - Can I see the stored data for one mobile push device registration? - What device details are kept for a push registration ID? instructions: - text: Get push registration {pushRegId} for app code {AppCode}. slots: pushRegId: path.pushRegId AppCode: header.AppCode - text: Show the device data behind push registration {pushRegId}. slots: pushRegId: path.pushRegId method: generated generated: '2026-09-26' - target: $.paths['/people/2/contactInformation/push/{pushRegId}'].patch update: x-apievangelist-phrasing: intent: Update a push device registration effect: write questions: - Can I mark a push device as a person's primary device? - Is it possible to update the additional data stored on a push registration? instructions: - text: 'Set push registration {pushRegId} as primary: {isPrimary}.' slots: pushRegId: path.pushRegId isPrimary: requestBody.isPrimary - text: Update push registration {pushRegId} for application {applicationId} with additional data {additionalData}. slots: pushRegId: path.pushRegId applicationId: requestBody.applicationId additionalData: requestBody.additionalData method: generated generated: '2026-09-26' - target: $.paths['/people/2/contactInformation/push/{pushRegId}/depersonalize'].post update: x-apievangelist-phrasing: intent: Detach a push device from its person effect: write questions: - Can I unlink a mobile device from the person it's attached to so it stops getting their messages? - What happens when I depersonalize a push installation? instructions: - text: Depersonalize push registration {pushRegId} so it's no longer tied to a person. slots: pushRegId: path.pushRegId - text: Detach device {pushRegId} under app code {AppCode} from its current profile. slots: pushRegId: path.pushRegId AppCode: header.AppCode method: generated generated: '2026-09-26' - target: $.paths['/people/2/contactInformation/push/{pushRegId}/personalize'].post update: x-apievangelist-phrasing: intent: Attach a push device to a person effect: write questions: - Can I link a mobile push installation to a person by their phone, email or external ID? - What if the device is already tied to someone else when I personalize it? instructions: - text: Personalize push registration {pushRegId} with the identity {identity}. slots: pushRegId: path.pushRegId identity: requestBody.identity - text: Attach device {pushRegId} to person {identity}, force-depersonalizing any previous owner ({forceDepersonalize}). slots: pushRegId: path.pushRegId identity: requestBody.identity forceDepersonalize: query.forceDepersonalize method: generated generated: '2026-09-26' - target: $.paths['/people/3/events'].post update: x-apievangelist-phrasing: intent: Import many People events in one batch effect: write questions: - Can I backfill historical customer events from the last month in bulk? - How far back can batch-imported People events go? instructions: - text: Batch import these People events for multiple persons. - text: Upload a batch of past customer events from the last 30 days. method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/2/persons/{personId}/definitions/{definitionId}/events'].post update: x-apievangelist-phrasing: intent: Track an event for one person effect: write questions: - How do I record that a specific customer performed an event, like a purchase? - Can I automatically create the person if they don't exist when sending an event? instructions: - text: Send event {definitionId} for person {personId} identified by {identifierType}. slots: definitionId: path.definitionId personId: path.personId identifierType: query.identifierType - text: 'Track {definitionId} with properties {properties} for {personId} by {identifierType}, create if missing: {createPerson}.' slots: definitionId: path.definitionId properties: requestBody.properties personId: path.personId createPerson: query.createPerson identifierType: query.identifierType method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/2/definitions'].get update: x-apievangelist-phrasing: intent: List event definitions effect: read questions: - Which event definitions, standard, custom or template, are set up in my account? - Can I search event definitions by text or category? instructions: - text: List all event definitions in category {category}. slots: category: query.category - text: Search event definitions for {searchText}. slots: searchText: query.searchText method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/2/definitions'].post update: x-apievangelist-phrasing: intent: Create an event definition effect: write questions: - Can I define a new custom event type with its own fields? - Is it possible to create an event definition from a template? instructions: - text: Create a custom event definition {definitionId} titled {title} with fields {fields}. slots: definitionId: requestBody.definitionId title: requestBody.title fields: requestBody.fields - text: Create an event definition from template {templateId}. slots: templateId: requestBody.templateId method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/2/definitions/{definitionId}'].get update: x-apievangelist-phrasing: intent: Get an event definition effect: read questions: - What fields and data types does one event definition have? - Is a particular event definition standard or custom? instructions: - text: Get event definition {definitionId}. slots: definitionId: path.definitionId - text: Show the fields of the {definitionId} event. slots: definitionId: path.definitionId method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/2/definitions/{definitionId}'].post update: x-apievangelist-phrasing: intent: Add fields to or retitle an event definition effect: write questions: - Can I add new fields to an existing custom event definition? - Are removals allowed when changing an event definition, or only additions? instructions: - text: Rename event definition {definitionId} to {title}. slots: definitionId: path.definitionId title: requestBody.title - text: Add fields {fields} to event definition {definitionId}, keeping the title {title}. slots: fields: requestBody.fields definitionId: path.definitionId title: requestBody.title method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/1/export'].post update: x-apievangelist-phrasing: intent: Export People events to an S3 bucket effect: write questions: - Can I export People event data to my own S3 bucket? - What time range and credentials does an event export need? instructions: - text: Export People events from {startTime} to {endTime} to bucket {bucket} in {region} using role {roleArn}. slots: startTime: requestBody.startTime endTime: requestBody.endTime bucket: requestBody.bucket region: requestBody.region roleArn: requestBody.roleArn - text: Start an event export of definitions {definitionIdList} into {bucket} ({region}) between {startTime} and {endTime} with role {roleArn}. slots: definitionIdList: requestBody.definitionIdList bucket: requestBody.bucket region: requestBody.region startTime: requestBody.startTime endTime: requestBody.endTime roleArn: requestBody.roleArn method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/1/export/status/{requestId}'].get update: x-apievangelist-phrasing: intent: Check an event export's status effect: read questions: - Has my People events export finished yet? - What's the current state of an event export request? instructions: - text: Check the status of event export {requestId}. slots: requestId: path.requestId - text: Tell me whether export request {requestId} is done. slots: requestId: path.requestId method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/1/export/{requestId}'].delete update: x-apievangelist-phrasing: intent: Cancel an event export request effect: destructive questions: - Can I stop an event export I already submitted? - Is cancelling an event export immediate or asynchronous? instructions: - text: Cancel event export request {requestId}. slots: requestId: path.requestId - text: Abort the running People events export {requestId}. slots: requestId: path.requestId method: generated generated: '2026-09-26' - target: $.paths['/peopleevents/1/export/definitions'].get update: x-apievangelist-phrasing: intent: List event definitions usable in exports effect: read questions: - Which event definitions can I filter an events export by? - Where can I get the definition IDs to restrict a data export? instructions: - text: List the event definitions available for filtering an export. - text: Show which custom and standard events I can include in an S3 events export. method: generated generated: '2026-09-26' - target: $.paths['/people/3/segments'].get update: x-apievangelist-phrasing: intent: List segments effect: read questions: - What audience segments exist in my account? - Can I page and sort through my People segments? instructions: - text: List all my segments. - text: Show segments page {page}, {size} per page, sorted by {sort}. slots: page: query.page size: query.size sort: query.sort method: generated generated: '2026-09-26' - target: $.paths['/people/3/segments'].post update: x-apievangelist-phrasing: intent: Create an audience segment effect: write questions: - Can I build a segment of people from a query or events? - What do I need to define a new audience segment? instructions: - text: Create a segment named {name} with query {query}. slots: name: requestBody.name query: requestBody.query - text: Create segment {name} based on events {events}. slots: name: requestBody.name events: requestBody.events method: generated generated: '2026-09-26' - target: $.paths['/people/3/segments/{segmentId}'].get update: x-apievangelist-phrasing: intent: Get a segment effect: read questions: - Can I see the definition of one segment? - What query does a specific segment use? instructions: - text: Get segment {segmentId}. slots: segmentId: path.segmentId - text: Show the rules behind segment {segmentId}. slots: segmentId: path.segmentId method: generated generated: '2026-09-26' - target: $.paths['/people/3/segments/{segmentId}'].put update: x-apievangelist-phrasing: intent: Update a segment effect: write questions: - Can I change the conditions of an existing segment? - Is it possible to rename a segment? instructions: - text: Rename segment {segmentId} to {name}. slots: segmentId: path.segmentId name: requestBody.name - text: Update segment {segmentId} named {name} to use query {query}. slots: segmentId: path.segmentId name: requestBody.name query: requestBody.query method: generated generated: '2026-09-26' - target: $.paths['/people/3/segments/{segmentId}'].delete update: x-apievangelist-phrasing: intent: Delete a segment effect: destructive questions: - Can I remove a segment I no longer need? - Does deleting a segment require its ID? instructions: - text: Delete segment {segmentId}. slots: segmentId: path.segmentId - text: Remove the audience segment {segmentId}. slots: segmentId: path.segmentId method: generated generated: '2026-09-26' - target: $.paths['/people/3/segments/{segmentId}/persons'].get update: x-apievangelist-phrasing: intent: List people in a segment effect: read questions: - Who are the people that currently fall into a segment? - Can I page through a segment's members? instructions: - text: List the persons in segment {segmentId}. slots: segmentId: path.segmentId - text: Show members of segment {segmentId}, page {page}. slots: segmentId: path.segmentId page: query.page method: generated generated: '2026-09-26' - target: $.paths['/moments/1/flows/{campaignId}/participants'].post update: x-apievangelist-phrasing: intent: Add up to 1000 participants to a flow effect: write questions: - Can I enroll a batch of people into a Moments flow and get a callback when done? - How many participants can I add to a flow in one request? instructions: - text: Add participants {participants} to flow {campaignId}. slots: participants: requestBody.participants campaignId: path.campaignId - text: Enroll {participants} into flow {campaignId} and notify {notifyUrl} when processed. slots: participants: requestBody.participants campaignId: path.campaignId notifyUrl: requestBody.notifyUrl method: generated generated: '2026-09-26' - target: $.paths['/moments/1/flows/{campaignId}/participants/report'].get update: x-apievangelist-phrasing: intent: Report on participants added to a flow effect: read questions: - How can I confirm everyone I added to a flow was actually enrolled? - Can I get the result report for a bulk flow enrollment? instructions: - text: Get the add-participants report for flow {campaignId}, operation {operationId}. slots: campaignId: path.campaignId operationId: query.operationId - text: Show which persons from operation {operationId} made it into flow {campaignId}. slots: operationId: query.operationId campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/communication/1/flows/{campaignId}/participants'].post update: x-apievangelist-phrasing: intent: Add a single person to a flow effect: write questions: - Can I create or update one person and drop them into a flow in the same call? - Is it possible to pass flow variables when adding someone to a flow? instructions: - text: Add the person with phone {phone} to flow {campaignId} using data {personData}. slots: phone: query.phone campaignId: path.campaignId personData: requestBody.personData - text: Put {email} into flow {campaignId} with flow variables {flowVariables} and person data {personData}. slots: email: query.email campaignId: path.campaignId flowVariables: requestBody.flowVariables personData: requestBody.personData method: generated generated: '2026-09-26' - target: $.paths['/communication/1/flows/{campaignId}/participants'].delete update: x-apievangelist-phrasing: intent: Remove a person from a flow effect: destructive questions: - Can I pull a customer out of a flow they're currently in? - Which identifiers can I use to remove someone from a flow? instructions: - text: Remove the participant with email {email} from flow {campaignId}. slots: email: query.email campaignId: path.campaignId - text: Take phone number {phone} out of flow {campaignId}. slots: phone: query.phone campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/forms/1/forms'].get update: x-apievangelist-phrasing: intent: List forms effect: read questions: - What forms have I built, and which are active? - Can I filter my forms by type or status? instructions: - text: List all my forms. - text: Show forms of type {formType} with status {formStatus}. slots: formType: query.formType formStatus: query.formStatus method: generated generated: '2026-09-26' - target: $.paths['/forms/1/forms/{id}'].get update: x-apievangelist-phrasing: intent: Get a form effect: read questions: - Can I fetch the definition of a single form by ID? - What fields does a particular form contain? instructions: - text: Get form {id}. slots: id: path.id - text: Show me the structure of form {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/forms/1/forms/{id}/views'].post update: x-apievangelist-phrasing: intent: Record a form view effect: write questions: - How should I count a view when my own page displays an Infobip form? - Can I increase a form's view counter so statistics stay accurate? instructions: - text: Increment the view count of form {id}. slots: id: path.id - text: Record one more view for form {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/forms/1/forms/{id}/data'].post update: x-apievangelist-phrasing: intent: Submit a form response effect: write questions: - Can I post a visitor's answers to a form through the API? - Is there a way to tag where a form submission came from? instructions: - text: Submit this data to form {id}. slots: id: path.id - text: Send a submission to form {id} with source {source}. slots: id: path.id source: header.ib-submission-source method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations'].get update: x-apievangelist-phrasing: intent: List contact-center conversations effect: read questions: - Can I list open conversations in a given queue? - Which conversations were closed within a certain date range? - What filters exist for listing conversations, like tag, agent or priority? instructions: - text: List conversations with status {status} in queue {queueIds}. slots: status: query.status queueIds: query.queueIds - text: Show conversations assigned to agent {agentId} created after {createdAfter}. slots: agentId: query.agentId createdAfter: query.createdAfter method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations'].post update: x-apievangelist-phrasing: intent: Open a new conversation effect: write questions: - Can I open a new customer conversation through the API? - Are any fields required when creating a conversation? instructions: - text: Create a conversation with topic {topic} and priority {priority}. slots: topic: requestBody.topic priority: requestBody.priority - text: Open a new conversation in queue {queueId}. slots: queueId: requestBody.queueId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}'].get update: x-apievangelist-phrasing: intent: Get a conversation effect: read questions: - Can I fetch the current status and assignee of a single conversation? - What details does one conversation record include? instructions: - text: Get conversation {conversationId}. slots: conversationId: path.conversationId - text: Show me the details of conversation {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}'].put update: x-apievangelist-phrasing: intent: Replace a conversation's details effect: write questions: - Can I overwrite all editable fields of a conversation at once? - Are closed conversations editable? instructions: - text: Update conversation {conversationId} with topic {topic}, status {status} and priority {priority}. slots: conversationId: path.conversationId topic: requestBody.topic status: requestBody.status priority: requestBody.priority - text: Fully replace the details of conversation {conversationId}, setting summary {summary}. slots: conversationId: path.conversationId summary: requestBody.summary method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}'].patch update: x-apievangelist-phrasing: intent: Change selected conversation fields effect: write questions: - Can I change only the priority of a conversation? - How can I close a conversation by setting its status? instructions: - text: Set the priority of conversation {conversationId} to {priority}. slots: conversationId: path.conversationId priority: requestBody.priority - text: Change just the status of conversation {conversationId} to {status}. slots: conversationId: path.conversationId status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/tags'].post update: x-apievangelist-phrasing: intent: Tag a conversation effect: write questions: - Can I label a conversation with a tag for reporting? - Is tagging a conversation useful for routing it? instructions: - text: Add tag {tagName} to conversation {conversationId}. slots: tagName: requestBody.tagName conversationId: path.conversationId - text: Label conversation {conversationId} as {tagName}. slots: conversationId: path.conversationId tagName: requestBody.tagName method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/assignee'].put update: x-apievangelist-phrasing: intent: Assign a conversation to an agent effect: write questions: - Can I hand a conversation over to a specific agent? - How does an agent take over a conversation from a bot? instructions: - text: Assign conversation {conversationId} to agent {agentId}. slots: conversationId: path.conversationId agentId: requestBody.agentId - text: Reassign {conversationId} so {agentId} takes it over. slots: conversationId: path.conversationId agentId: requestBody.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/assignee'].delete update: x-apievangelist-phrasing: intent: Unassign the agent from a conversation effect: destructive questions: - Can I remove the assigned agent from a conversation without rerouting it? - Is there a way to leave a conversation with no assignee? instructions: - text: Unassign the agent from conversation {conversationId}. slots: conversationId: path.conversationId - text: Clear the assignee on {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/tags/{tagName}'].delete update: x-apievangelist-phrasing: intent: Remove a tag from a conversation effect: destructive questions: - Can I take a tag off one conversation without deleting the tag itself? - Does removing a conversation tag affect other conversations? instructions: - text: Remove tag {tagName} from conversation {conversationId}. slots: tagName: path.tagName conversationId: path.conversationId - text: Untag {conversationId} from {tagName}. slots: conversationId: path.conversationId tagName: path.tagName method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/route'].post update: x-apievangelist-phrasing: intent: Reroute a conversation effect: write questions: - Can I send a conversation back through routing to find a new queue? - What happens to the current agent when I reroute a conversation? instructions: - text: Route conversation {conversationId} again. slots: conversationId: path.conversationId - text: Push {conversationId} back into routing so it gets reassigned. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/simulate-routing'].get update: x-apievangelist-phrasing: intent: Preview routing for a conversation effect: read questions: - Which routing rule would currently apply to a conversation, without actually moving it? - Can I test my routing setup against a real conversation? instructions: - text: Simulate routing for conversation {conversationId}. slots: conversationId: path.conversationId - text: Show which queue {conversationId} would land in under current routing rules. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/related-comments'].get update: x-apievangelist-phrasing: intent: Get social comments related to a conversation effect: read questions: - Can I see the older and newer social comments around an inbound comment in a conversation? - How many related social comments are returned? instructions: - text: Get the related social comments for conversation {conversationId}. slots: conversationId: path.conversationId - text: Show the comment thread surrounding the inbound comment in {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/links'].get update: x-apievangelist-phrasing: intent: List conversations linked to a conversation effect: read questions: - Which other conversations are linked to this one? - Can I see a customer's related conversation history via links? instructions: - text: Get conversations linked to {conversationId}. slots: conversationId: path.conversationId - text: List every conversation connected to conversation {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/tags'].get update: x-apievangelist-phrasing: intent: List conversation tags effect: read questions: - What tags exist for categorizing contact-center conversations? - Can I see which tags are on a specific conversation? instructions: - text: List conversation tags whose name contains {name}. slots: name: query.name - text: Show the tags applied to conversation {conversationId}. slots: conversationId: query.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/tags'].post update: x-apievangelist-phrasing: intent: Create a conversation tag effect: write questions: - Can I define a new tag for customer intents in the contact center? - What does a conversation tag need when I create it? instructions: - text: Create a conversation tag named {name}. slots: name: requestBody.name - text: Add {name} as a new tag for categorizing conversations. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/tags/{tagName}'].delete update: x-apievangelist-phrasing: intent: Delete a conversation tag everywhere effect: destructive questions: - Can I delete a conversation tag and strip it from every conversation? - Is deleting a contact-center tag reversible? instructions: - text: Delete the conversation tag {tagName} from the account. slots: tagName: path.tagName - text: Permanently remove tag {tagName} from all conversations. slots: tagName: path.tagName method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/messages'].get update: x-apievangelist-phrasing: intent: List messages in a conversation effect: read questions: - Can I pull the message history of a conversation? - How would I get only inbound messages from one channel in a conversation? instructions: - text: Get messages in conversation {conversationId}. slots: conversationId: path.conversationId - text: Show {direction} messages on channel {channel} in conversation {conversationId}. slots: direction: query.direction channel: query.channel conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/messages'].post update: x-apievangelist-phrasing: intent: Send a message in a conversation effect: write questions: - Can I send an outbound message as part of an existing conversation? - Which content types can I post into a conversation? instructions: - text: Send {content} from {from} to {to} over {channel} in conversation {conversationId} as {contentType}. slots: content: requestBody.content from: requestBody.from to: requestBody.to channel: requestBody.channel conversationId: path.conversationId contentType: requestBody.contentType - text: Reply in conversation {conversationId} on channel {channel} to {to} from {from} with {content}. slots: conversationId: path.conversationId channel: requestBody.channel to: requestBody.to from: requestBody.from content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/events'].post update: x-apievangelist-phrasing: intent: Send a typing or other event to a conversation effect: write questions: - Can I show the customer a typing indicator in a conversation? - What kinds of conversation events can I send, like typing started or stopped? instructions: - text: Send a {type} event from {from} to {to} on {channel} in conversation {conversationId}. slots: type: requestBody.type from: requestBody.from to: requestBody.to channel: requestBody.channel conversationId: path.conversationId - text: Signal typing started in {conversationId} on {channel} from {from} to {to} with event type {type}. slots: conversationId: path.conversationId channel: requestBody.channel from: requestBody.from to: requestBody.to type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/notes'].get update: x-apievangelist-phrasing: intent: List notes on a conversation effect: read questions: - Can I read the internal notes my team left on a conversation? - Is there pagination for conversation notes? instructions: - text: Get notes on conversation {conversationId}. slots: conversationId: path.conversationId - text: List team notes for {conversationId}, page {page}. slots: conversationId: path.conversationId page: query.page method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/notes'].post update: x-apievangelist-phrasing: intent: Add an internal note to a conversation effect: write questions: - Can I leave an internal note for my team on a customer conversation? - Are notes visible to the customer or just agents? instructions: - text: Add note {content} to conversation {conversationId}. slots: content: requestBody.content conversationId: path.conversationId - text: 'Leave an internal note on {conversationId} from agent {agentId}: {content}.' slots: conversationId: path.conversationId agentId: requestBody.agentId content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/notes/{noteId}'].get update: x-apievangelist-phrasing: intent: Get one conversation note effect: read questions: - Can I retrieve a single note by its ID? - Who wrote a particular note on a conversation? instructions: - text: Get note {noteId} from conversation {conversationId}. slots: noteId: path.noteId conversationId: path.conversationId - text: Show me note {noteId} on {conversationId}. slots: noteId: path.noteId conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents'].get update: x-apievangelist-phrasing: intent: List contact-center agents effect: read questions: - Which agents are currently available in my contact center? - Can I find agents by email, role or queue? instructions: - text: List agents with availability {availability}. slots: availability: query.availability - text: Find the agent with email {email}. slots: email: query.email - text: Show agents in queue {queueIds} with role {role}. slots: queueIds: query.queueIds role: query.role method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents'].post update: x-apievangelist-phrasing: intent: Add a contact-center agent effect: write questions: - Can I add a new agent to my contact center through the API? - What role and status does a new agent need? instructions: - text: Create agent {displayName} with role {role} and status {status}. slots: displayName: requestBody.displayName role: requestBody.role status: requestBody.status - text: Add a new {role} called {displayName}, starting with status {status}. slots: role: requestBody.role displayName: requestBody.displayName status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}'].get update: x-apievangelist-phrasing: intent: Get a contact-center agent effect: read questions: - Can I look up one agent's role and status? - What details are stored for a contact-center agent? instructions: - text: Get agent {agentId}. slots: agentId: path.agentId - text: Show the profile of agent {agentId}. slots: agentId: path.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}'].put update: x-apievangelist-phrasing: intent: Update an agent's profile effect: write questions: - Can I change an agent's display name or role? - Is it possible to disable an agent account? instructions: - text: 'Update agent {agentId}: name {displayName}, role {role}, status {status}.' slots: agentId: path.agentId displayName: requestBody.displayName role: requestBody.role status: requestBody.status - text: Set agent {agentId} enabled to {enabled}, keeping name {displayName}, role {role} and status {status}. slots: agentId: path.agentId enabled: requestBody.enabled displayName: requestBody.displayName role: requestBody.role status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}/conversations'].get update: x-apievangelist-phrasing: intent: List conversations assigned to an agent effect: read questions: - What conversations is a particular agent working on? - Can I page through one agent's assigned conversations? instructions: - text: List conversations assigned to agent {agentId}. slots: agentId: path.agentId - text: Show {agentId}'s conversation workload, page {page}. slots: agentId: path.agentId page: query.page method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}/status'].put update: x-apievangelist-phrasing: intent: Change an agent's status effect: write questions: - Can I set an agent to away or busy programmatically? - What statuses can an agent be switched to? instructions: - text: Set agent {agentId} status to {status}. slots: agentId: path.agentId status: requestBody.status - text: Mark {agentId} as {status}. slots: agentId: path.agentId status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}/queues'].post update: x-apievangelist-phrasing: intent: Add an agent to a queue effect: write questions: - Can I put an agent into a specific queue? - How do I give an agent access to another queue's conversations? instructions: - text: Add agent {agentId} to queue {queueId}. slots: agentId: path.agentId queueId: requestBody.queueId - text: Put {agentId} into queue {queueId}. slots: agentId: path.agentId queueId: requestBody.queueId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}/queues/{queueId}'].delete update: x-apievangelist-phrasing: intent: Remove an agent from a queue effect: destructive questions: - Can I take an agent out of a queue without deleting the queue? - Does removing an agent from a queue affect the queue itself? instructions: - text: Remove agent {agentId} from queue {queueId}. slots: agentId: path.agentId queueId: path.queueId - text: Take {agentId} out of {queueId}. slots: agentId: path.agentId queueId: path.queueId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/agents/{agentId}/heartbeat'].put update: x-apievangelist-phrasing: intent: Send an agent heartbeat effect: write questions: - How do I keep an agent's session marked alive with a heartbeat? - Can I ping the contact center to show an agent is still connected? instructions: - text: Send a heartbeat for agent {agentId}. slots: agentId: path.agentId - text: Refresh the heartbeat of {agentId}. slots: agentId: path.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/queues'].get update: x-apievangelist-phrasing: intent: List queues effect: read questions: - Which queues are set up in my contact center? - Can I find the queues a certain agent belongs to? instructions: - text: List queues named {name}. slots: name: query.name - text: Show queues that agent {agentId} is in. slots: agentId: query.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/queues'].post update: x-apievangelist-phrasing: intent: Create a queue effect: write questions: - Can I create a new queue to organize conversations by team? - Is it possible to turn on auto-assignment when creating a queue? instructions: - text: Create a queue named {name}. slots: name: requestBody.name - text: Create queue {name} with auto-assignment {isAutoAssignmentEnabled} and working hours {workingHoursId}. slots: name: requestBody.name isAutoAssignmentEnabled: requestBody.isAutoAssignmentEnabled workingHoursId: requestBody.workingHoursId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/queues/{queueId}'].put update: x-apievangelist-phrasing: intent: Update a queue's settings effect: write questions: - Can I change a queue's auto-assignment algorithm or sticky-agent timeout? - Is it possible to restrict a queue after creating it? instructions: - text: Rename queue {queueId} to {name}. slots: queueId: path.queueId name: requestBody.name - text: Set queue {queueId} to use auto-assignment algorithm {autoAssignmentAlgorithm}. slots: queueId: path.queueId autoAssignmentAlgorithm: requestBody.autoAssignmentAlgorithm method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/queues/{queueId}'].delete update: x-apievangelist-phrasing: intent: Delete a queue effect: destructive questions: - Can I remove a queue I no longer need? - What do I need to delete a contact-center queue? instructions: - text: Delete queue {queueId}. slots: queueId: path.queueId - text: Remove the queue {queueId} from the contact center. slots: queueId: path.queueId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/routing'].get update: x-apievangelist-phrasing: intent: Get routing rules effect: read questions: - What routing rules decide which queue gets a conversation? - Can I see only the enabled routing rules? instructions: - text: Show my conversation routing rules. - text: List routing rules {ruleIds}. slots: ruleIds: query.ruleIds method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/routing'].put update: x-apievangelist-phrasing: intent: Create or replace the routing setup effect: write questions: - Can I define the full set of routing rules in one call? - Does saving routing replace the existing rules? instructions: - text: Replace my routing setup with a new set of rules. - text: Create the conversation routing configuration from scratch. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/routing'].delete update: x-apievangelist-phrasing: intent: Delete all routing rules effect: destructive questions: - Can I wipe out my entire routing configuration? - Does deleting routing remove every rule inside it? instructions: - text: Delete my whole routing setup. - text: Remove all conversation routing rules. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/bots'].get update: x-apievangelist-phrasing: intent: List connected bots effect: read questions: - Which external bots are connected to my contact center? - Can I page through configured bots? instructions: - text: List my connected bots. - text: Show bots page {page}. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/bots'].post update: x-apievangelist-phrasing: intent: Connect an external bot effect: write questions: - Can I connect my own chatbot to handle conversations via a webhook? - What channel and destination does a new bot need? instructions: - text: Create bot {displayName} on {channel} for destination {destination} with webhook {webhookUrl}. slots: displayName: requestBody.displayName channel: requestBody.channel destination: requestBody.destination webhookUrl: requestBody.webhookUrl - text: Connect a bot named {displayName} to {destination} on {channel}. slots: displayName: requestBody.displayName destination: requestBody.destination channel: requestBody.channel method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/bots/{botId}'].get update: x-apievangelist-phrasing: intent: Get a bot effect: read questions: - Can I see how a connected bot is configured? - What webhook does a specific bot use? instructions: - text: Get bot {botId}. slots: botId: path.botId - text: Show the configuration of bot {botId}. slots: botId: path.botId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/bots/{botId}'].put update: x-apievangelist-phrasing: intent: Update a bot's configuration effect: write questions: - Can I change a bot's webhook URL or session timeout? - Is it possible to disable a bot without deleting it? instructions: - text: 'Update bot {botId}: name {displayName}, channel {channel}, destination {destination}, webhook {webhookUrl}.' slots: botId: path.botId displayName: requestBody.displayName channel: requestBody.channel destination: requestBody.destination webhookUrl: requestBody.webhookUrl - text: Set a session timeout of {sessionTimeoutInSec} seconds on bot {botId} ({displayName}, {channel}, {destination}). slots: sessionTimeoutInSec: requestBody.sessionTimeoutInSec botId: path.botId displayName: requestBody.displayName channel: requestBody.channel destination: requestBody.destination method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/bots/{botId}'].delete update: x-apievangelist-phrasing: intent: Delete a bot effect: destructive questions: - Can I remove a bot, and what happens to its open conversations? - Is there a way to disconnect a bot permanently? instructions: - text: Delete bot {botId}. slots: botId: path.botId - text: Remove bot {botId} and reroute its open conversations. slots: botId: path.botId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/metadata'].get update: x-apievangelist-phrasing: intent: Get conversation metadata effect: read questions: - Can I read the custom metadata stored on a conversation? - What extra data is attached to a conversation? instructions: - text: Get metadata for conversation {conversationId}. slots: conversationId: path.conversationId - text: Show the custom data stored on {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/metadata'].put update: x-apievangelist-phrasing: intent: Set conversation metadata effect: write questions: - Can I store my own key-value data on a conversation? - Does writing conversation metadata overwrite what's there? instructions: - text: Set the metadata of conversation {conversationId}, overwriting existing values. slots: conversationId: path.conversationId - text: Replace all custom data on {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/metadata'].delete update: x-apievangelist-phrasing: intent: Delete conversation metadata effect: destructive questions: - Can I clear all metadata from a conversation? - Is there a way to remove the custom data attached to a conversation? instructions: - text: Delete metadata from conversation {conversationId}. slots: conversationId: path.conversationId - text: Wipe the custom data on {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/conversations/{conversationId}/metadata'].patch update: x-apievangelist-phrasing: intent: Partially update conversation metadata effect: write questions: - Can I add one metadata key to a conversation without losing the others? - What happens if I patch metadata on a conversation that has none? instructions: - text: Merge new metadata keys into conversation {conversationId}. slots: conversationId: path.conversationId - text: Partially update the custom data on {conversationId}, creating it if absent. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/templates'].get update: x-apievangelist-phrasing: intent: List message templates effect: read questions: - Which message templates are available for conversations on a given channel? - Can I filter templates by language? instructions: - text: List templates for channel {channel}. slots: channel: query.channel - text: Show {language} templates with content type {contentType}. slots: language: query.language contentType: query.contentType method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/templates/{templateId}'].get update: x-apievangelist-phrasing: intent: Get a message template effect: read questions: - Can I view the content of one template? - What does a specific conversation template contain? instructions: - text: Get template {templateId}. slots: templateId: path.templateId - text: Show the body of template {templateId}. slots: templateId: path.templateId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/forms'].get update: x-apievangelist-phrasing: intent: List conversation forms effect: read questions: - Which agent forms are set up for wrapping up conversations? - Can I find the default conversation form? instructions: - text: List conversation forms titled {title}. slots: title: query.title - text: 'Show conversation forms that are enabled: {isEnabled}.' slots: isEnabled: query.isEnabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/forms'].post update: x-apievangelist-phrasing: intent: Create a conversation form effect: write questions: - Can I build a form agents fill in during a conversation? - What does a new conversation form require? instructions: - text: Create conversation form {title} with fields {fields}, enabled {isEnabled}. slots: title: requestBody.title fields: requestBody.fields isEnabled: requestBody.isEnabled - text: Build agent form {title} using fields {fields}, enabled {isEnabled}, default {isDefault}. slots: title: requestBody.title fields: requestBody.fields isEnabled: requestBody.isEnabled isDefault: requestBody.isDefault method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/forms/{id}'].get update: x-apievangelist-phrasing: intent: Get a conversation form effect: read questions: - Can I view one conversation form and its fields? - Which fields are on a specific agent form? instructions: - text: Get conversation form {id}. slots: id: path.id - text: Show the layout of agent form {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/forms/{id}'].put update: x-apievangelist-phrasing: intent: Update a conversation form effect: write questions: - Can I change the fields or title of an agent form? - Is it possible to disable a conversation form? instructions: - text: Update conversation form {id} with title {title}, fields {fields}, enabled {isEnabled}. slots: id: path.id title: requestBody.title fields: requestBody.fields isEnabled: requestBody.isEnabled - text: Retitle agent form {id} to {title}, keeping fields {fields} and enabled {isEnabled}. slots: id: path.id title: requestBody.title fields: requestBody.fields isEnabled: requestBody.isEnabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/forms/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a conversation form effect: destructive questions: - Can I remove an agent form I don't use? - How would I delete a conversation form? instructions: - text: Delete conversation form {id}. slots: id: path.id - text: Remove agent form {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/fields'].get update: x-apievangelist-phrasing: intent: List conversation form fields effect: read questions: - What fields are available to put on agent forms? - Can I search form fields by title? instructions: - text: List conversation form fields. - text: Find form fields titled {title}. slots: title: query.title method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/fields'].post update: x-apievangelist-phrasing: intent: Create a conversation form field effect: write questions: - Can I add a dropdown or text field for agents to fill in? - Is it possible to validate a form field with a regex? instructions: - text: Create a form field {title} of type {type}, enabled {isEnabled}. slots: title: requestBody.title type: requestBody.type isEnabled: requestBody.isEnabled - text: Add a {type} field {title} with options {options}, enabled {isEnabled}. slots: type: requestBody.type title: requestBody.title options: requestBody.options isEnabled: requestBody.isEnabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/fields/{id}'].get update: x-apievangelist-phrasing: intent: Get a conversation form field effect: read questions: - Can I see the type and options of one form field? - What regex does a given form field use? instructions: - text: Get form field {id}. slots: id: path.id - text: Show the options on agent form field {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/fields/{id}'].put update: x-apievangelist-phrasing: intent: Update a conversation form field effect: write questions: - Can I change the options of an existing form field? - Is it possible to rename a form field? instructions: - text: 'Update form field {id}: title {title}, type {type}, enabled {isEnabled}.' slots: id: path.id title: requestBody.title type: requestBody.type isEnabled: requestBody.isEnabled - text: Set the options of field {id} to {options}, keeping title {title}, type {type}, enabled {isEnabled}. slots: id: path.id options: requestBody.options title: requestBody.title type: requestBody.type isEnabled: requestBody.isEnabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/fields/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a conversation form field effect: destructive questions: - What happens to agent inputs when I delete a form field? - Can I permanently remove a form field? instructions: - text: Delete form field {id}. slots: id: path.id - text: Remove agent form field {id} and its inputs in open conversations. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/triggers'].get update: x-apievangelist-phrasing: intent: List form triggers effect: read questions: - Which triggers assign forms to conversations? - Can I look up form triggers by title? instructions: - text: List form triggers. - text: Find form triggers titled {title}. slots: title: query.title method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/triggers'].post update: x-apievangelist-phrasing: intent: Create a form trigger effect: write questions: - Can I automatically attach a form to conversations that match an expression? - Where does a new trigger go in the trigger order? instructions: - text: Create trigger {title} that assigns form {formId} when {expression}. slots: title: requestBody.title formId: requestBody.formId expression: requestBody.expression - text: Add a form trigger {title} with expression {expression} for form {formId}. slots: title: requestBody.title expression: requestBody.expression formId: requestBody.formId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/triggers/{id}'].get update: x-apievangelist-phrasing: intent: Get a form trigger effect: read questions: - Can I see the expression and form of one trigger? - How many times has a trigger fired? instructions: - text: Get form trigger {id}. slots: id: path.id - text: Show the rule behind trigger {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/triggers/{id}'].put update: x-apievangelist-phrasing: intent: Replace a form trigger effect: write questions: - Can I fully rewrite a form trigger's expression and target form? - Does changing a trigger's position shift the others? instructions: - text: Update trigger {id} with title {title}, expression {expression}, form {formId}. slots: id: path.id title: requestBody.title expression: requestBody.expression formId: requestBody.formId - text: Replace trigger {id} and move it to position {orderIndex} ({title}, {expression}, {formId}). slots: id: path.id orderIndex: requestBody.orderIndex title: requestBody.title expression: requestBody.expression formId: requestBody.formId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/triggers/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a form trigger effect: destructive questions: - Can I remove a trigger so a form stops being auto-assigned? - How do I delete a form trigger? instructions: - text: Delete form trigger {id}. slots: id: path.id - text: Remove trigger {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversation-forms/triggers/{id}'].patch update: x-apievangelist-phrasing: intent: Patch a form trigger effect: write questions: - Can I just reorder or disable one form trigger? - Is there a partial update for triggers? instructions: - text: Patch trigger {id} to enabled {isEnabled} ({title}, {expression}, {formId}). slots: id: path.id isEnabled: requestBody.isEnabled title: requestBody.title expression: requestBody.expression formId: requestBody.formId - text: Move trigger {id} to order index {orderIndex} via patch, with title {title}, expression {expression}, form {formId}. slots: id: path.id orderIndex: requestBody.orderIndex title: requestBody.title expression: requestBody.expression formId: requestBody.formId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversations/{conversationId}/form'].get update: x-apievangelist-phrasing: intent: Get a conversation's form values effect: read questions: - What did the agent fill in on the form for a conversation? - Can I read the dispositions recorded on a conversation? instructions: - text: Get the form and field values for conversation {conversationId}. slots: conversationId: path.conversationId - text: Show dispositions of form {formId} on {conversationId}. slots: formId: query.formId conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversations/{conversationId}/form'].put update: x-apievangelist-phrasing: intent: Set a conversation's form values effect: write questions: - Can I record disposition values on a conversation from my own system? - Does writing form values overwrite existing dispositions? instructions: - text: Set dispositions {fields} on conversation {conversationId}. slots: fields: requestBody.fields conversationId: path.conversationId - text: Overwrite the form values of {conversationId} with {fields}. slots: conversationId: path.conversationId fields: requestBody.fields method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversations/{conversationId}/form/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a disposition from a conversation effect: destructive questions: - Can I remove one agent input from a conversation's form? - How do I clear a single disposition value? instructions: - text: Delete disposition {id} from conversation {conversationId}. slots: id: path.id conversationId: path.conversationId - text: Remove field input {id} on {conversationId}. slots: id: path.id conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversations/{conversationId}/form/assign'].post update: x-apievangelist-phrasing: intent: Assign a form to a conversation effect: write questions: - Can I manually attach a specific form to a conversation? - Which form will agents see on a conversation after I assign one? instructions: - text: Assign form {formId} to conversation {conversationId}. slots: formId: query.formId conversationId: path.conversationId - text: Attach agent form {formId} to {conversationId}. slots: formId: query.formId conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/2/conversations/{conversationId}/form/unassign'].post update: x-apievangelist-phrasing: intent: Unassign a form from a conversation effect: write questions: - Can I detach the form from a conversation? - What does unassigning a conversation form do? instructions: - text: Unassign the form from conversation {conversationId}. slots: conversationId: path.conversationId - text: Detach the agent form on {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/account/configuration'].put update: x-apievangelist-phrasing: intent: Set the account webhook URL (deprecated) effect: write questions: - Can I still set the account-level conversations webhook URL on the deprecated configuration endpoint? - When is the conversations account configuration endpoint being removed? instructions: - text: Set the account configuration webhook URL to {webhookUrl} using the deprecated endpoint. slots: webhookUrl: requestBody.webhookUrl - text: Update my conversations account webhook to {webhookUrl}. slots: webhookUrl: requestBody.webhookUrl method: generated generated: '2026-09-26' - target: $.paths['/ccca/1/agent-configs/{agentId}'].get update: x-apievangelist-phrasing: intent: Get an agent's configuration effect: read questions: - What agent-specific settings are configured for one agent? - Can I read an agent's individual configuration? instructions: - text: Get the configuration for agent {agentId}. slots: agentId: path.agentId - text: Show the agent-specific settings of {agentId}. slots: agentId: path.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/outbound-call-conversation'].post update: x-apievangelist-phrasing: intent: Create an outbound call conversation effect: write questions: - Can I create a conversation for an outbound call before the agent dials? - What's needed to log an agent's outbound call as a conversation? instructions: - text: Create an outbound call conversation from {from} to {to} for agent {agentId}. slots: from: requestBody.from to: requestBody.to agentId: requestBody.agentId - text: Open a call conversation so agent {agentId} can ring {to} from {from}. slots: agentId: requestBody.agentId to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/waiting-strategies'].get update: x-apievangelist-phrasing: intent: List call waiting strategies effect: read questions: - Which waiting strategies play music or messages to callers in queue? - Can I list waiting strategies for one queue? instructions: - text: List all waiting strategies. - text: Show waiting strategies for queue {queueId}. slots: queueId: query.queueId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/waiting-strategies'].post update: x-apievangelist-phrasing: intent: Create a call waiting strategy effect: write questions: - Can I set up hold music and a max wait time for callers in a queue? - What condition types can a waiting strategy use? instructions: - text: Create a waiting strategy with max wait {maximumWaitTime}, condition type {conditionType} and condition {condition}. slots: maximumWaitTime: requestBody.maximumWaitTime conditionType: requestBody.conditionType condition: requestBody.condition - text: Add waiting strategy {name} with greeting {greetingMessage}, max wait {maximumWaitTime}, condition {conditionType} {condition}. slots: name: requestBody.name greetingMessage: requestBody.greetingMessage maximumWaitTime: requestBody.maximumWaitTime conditionType: requestBody.conditionType condition: requestBody.condition method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/waiting-strategies/{id}'].get update: x-apievangelist-phrasing: intent: Get a call waiting strategy effect: read questions: - Can I view one waiting strategy's music and messages? - How long can callers wait under a given strategy? instructions: - text: Get waiting strategy {id}. slots: id: path.id - text: Show the settings of waiting strategy {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/waiting-strategies/{id}'].put update: x-apievangelist-phrasing: intent: Update a call waiting strategy effect: write questions: - Can I change the max wait time on an existing waiting strategy? - Is it possible to swap the hold music in a waiting strategy? instructions: - text: Update waiting strategy {id} with max wait {maximumWaitTime}, condition type {conditionType}, condition {condition}. slots: id: path.id maximumWaitTime: requestBody.maximumWaitTime conditionType: requestBody.conditionType condition: requestBody.condition - text: Change the music on hold of strategy {id} to {musicOnHold} ({maximumWaitTime}, {conditionType}, {condition}). slots: id: path.id musicOnHold: requestBody.musicOnHold maximumWaitTime: requestBody.maximumWaitTime conditionType: requestBody.conditionType condition: requestBody.condition method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/waiting-strategies/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a call waiting strategy effect: destructive questions: - Can I remove a waiting strategy? - How do I delete caller waiting settings by ID? instructions: - text: Delete waiting strategy {id}. slots: id: path.id - text: Remove the caller waiting strategy {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/account-recording-config'].get update: x-apievangelist-phrasing: intent: Get account call recording settings effect: read questions: - Is call recording enabled for my whole contact-center account? - What media type does account-wide call recording use? instructions: - text: Show the account call recording configuration. - text: Tell me whether inbound and outbound calls are recorded account-wide. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/account-recording-config'].put update: x-apievangelist-phrasing: intent: Create or update account call recording settings effect: write questions: - Can I turn account-wide call recording on or off? - Can I switch account recording between audio and video? instructions: - text: Update account call recording to media type {mediaType}, enabled {enabled}. slots: mediaType: requestBody.mediaType enabled: requestBody.enabled - text: Set account recording for inbound {inbound} and outbound {outbound} using {mediaType}. slots: inbound: requestBody.inbound outbound: requestBody.outbound mediaType: requestBody.mediaType method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/account-recording-config'].post update: x-apievangelist-phrasing: intent: Create account call recording settings effect: write questions: - How do I set up call recording for the account for the first time? - Can I enable auto-compose when first creating account recording settings? instructions: - text: Create an account recording configuration with media type {mediaType}. slots: mediaType: requestBody.mediaType - text: Create account-level recording with {mediaType} and auto-compose {autoCompose}. slots: mediaType: requestBody.mediaType autoCompose: requestBody.autoCompose method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/agent-recording-configs'].get update: x-apievangelist-phrasing: intent: List agent call recording settings effect: read questions: - Which agents have their own call recording settings? - Can I get the recording configurations for several agents at once? instructions: - text: List agent recording configurations. - text: Show recording settings for agents {agentIds}. slots: agentIds: query.agentIds method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/agent-recording-configs/{agentId}'].get update: x-apievangelist-phrasing: intent: Get one agent's call recording settings effect: read questions: - Are one particular agent's calls being recorded? - Does an agent use the default account recording or their own? instructions: - text: Get the recording configuration for agent {agentId}. slots: agentId: path.agentId - text: Show whether agent {agentId} has call recording on. slots: agentId: path.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/agent-recording-configs/{agentId}'].put update: x-apievangelist-phrasing: intent: Create or update an agent's recording settings effect: write questions: - Can I override call recording for one specific agent? - Is it possible to make an agent fall back to the account default recording? instructions: - text: Update recording for agent {agentId} to media type {mediaType}. slots: agentId: path.agentId mediaType: requestBody.mediaType - text: Set agent {agentId} to use the default recording ({useDefault}) with {mediaType}. slots: agentId: path.agentId useDefault: requestBody.useDefault mediaType: requestBody.mediaType method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/agent-recording-configs/{agentId}'].post update: x-apievangelist-phrasing: intent: Create an agent's recording settings effect: write questions: - How do I add a first-time recording configuration for one agent? - Can I create an agent recording setup covering only inbound calls? instructions: - text: Create a recording configuration for agent {agentId} with media type {mediaType}. slots: agentId: path.agentId mediaType: requestBody.mediaType - text: Create agent recording for {agentId} with inbound {inbound} and {mediaType}. slots: agentId: path.agentId inbound: requestBody.inbound mediaType: requestBody.mediaType method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/recording/metadata'].get update: x-apievangelist-phrasing: intent: Search call recording metadata effect: read questions: - Can I find call recordings for a specific conversation? - How do I list recordings longer than a certain duration? - Which recordings were deleted, and by whom? instructions: - text: Find recordings for conversation {conversationId}. slots: conversationId: query.conversationId - text: List recordings started between {startedAtFrom} and {startedAtTo}. slots: startedAtFrom: query.startedAtFrom startedAtTo: query.startedAtTo method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/recording/download/{recordingId}'].get update: x-apievangelist-phrasing: intent: Download a call recording effect: read questions: - Can I download the audio file of a call recording? - Is it possible to fetch only a byte range of a recording? instructions: - text: Download call recording {recordingId}. slots: recordingId: path.recordingId - text: Fetch bytes {Range} of recording {recordingId}. slots: Range: header.Range recordingId: path.recordingId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/account-wrap-up-config'].get update: x-apievangelist-phrasing: intent: Get account wrap-up settings effect: read questions: - How long do agents stay busy after a call before they're available again? - Can agents extend their wrap-up time under the account settings? instructions: - text: Show the account wrap-up configuration. - text: Tell me the account-wide after-call wrap-up time. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/account-wrap-up-config'].put update: x-apievangelist-phrasing: intent: Update account wrap-up settings effect: write questions: - Can I change how many seconds agents get to wrap up after a call? - Is it possible to let agents extend wrap-up time? instructions: - text: Set account wrap-up to {wrapUpSeconds} seconds, extendable {canExtendWrapUp}, enabled {enabled}. slots: wrapUpSeconds: requestBody.wrapUpSeconds canExtendWrapUp: requestBody.canExtendWrapUp enabled: requestBody.enabled - text: Disable account after-call wrap-up ({enabled}), with {wrapUpSeconds} seconds and extension {canExtendWrapUp}. slots: enabled: requestBody.enabled wrapUpSeconds: requestBody.wrapUpSeconds canExtendWrapUp: requestBody.canExtendWrapUp method: generated generated: '2026-09-26' - target: $.paths['/ccca/1/agent-configs/{agentId}/wrap-up'].put update: x-apievangelist-phrasing: intent: Set one agent's wrap-up time effect: write questions: - Can I give a single agent a different wrap-up time than the account? - Where do I configure per-agent after-call wrap-up? instructions: - text: Set agent {agentId} wrap-up time to {wrapUpSeconds} seconds. slots: agentId: path.agentId wrapUpSeconds: requestBody.wrapUpSeconds - text: Configure a custom wrap-up for {agentId}. slots: agentId: path.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/agent/{agentId}/wrap-up-time/add/{seconds}'].patch update: x-apievangelist-phrasing: intent: Extend an agent's current wrap-up effect: write questions: - Can I give an agent a few more seconds of wrap-up after this call? - Is extending wrap-up time limited to positive numbers? instructions: - text: Add {seconds} seconds of wrap-up time for agent {agentId}. slots: seconds: path.seconds agentId: path.agentId - text: Extend {agentId}'s current wrap-up by {seconds} seconds. slots: agentId: path.agentId seconds: path.seconds method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/agent/{agentId}/wrap-up-time/clear'].patch update: x-apievangelist-phrasing: intent: End an agent's wrap-up now effect: write questions: - Can I end an agent's wrap-up early so they're available again? - How do I take an agent out of wrapping status? instructions: - text: Clear the wrap-up time for agent {agentId}. slots: agentId: path.agentId - text: End {agentId}'s wrapping status now. slots: agentId: path.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/conversation/{conversationId}/transfer/agent'].patch update: x-apievangelist-phrasing: intent: Transfer a call to another agent effect: write questions: - Can I transfer a live call to a different agent? - What happens if the target agent isn't available for a call transfer? instructions: - text: Transfer the call in conversation {conversationId} to agent {agentId}. slots: conversationId: path.conversationId agentId: requestBody.agentId - text: Hand the call {conversationId} over to agent {agentId}. slots: conversationId: path.conversationId agentId: requestBody.agentId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/transfer/queues'].get update: x-apievangelist-phrasing: intent: List queues available for call transfer effect: read questions: - Which queues can I transfer a call to right now? - Is a given queue currently active for transfers? instructions: - text: List queues eligible as call transfer destinations. - text: Show transfer-eligible queues with their activity status, page {page}. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/conversation/{conversationId}/transfer/queue'].patch update: x-apievangelist-phrasing: intent: Transfer a call to another queue effect: write questions: - Can I move a caller into a different queue mid-call? - Does the target queue need to be within working hours to receive a transfer? instructions: - text: Transfer the call in conversation {conversationId} to queue {queueId}. slots: conversationId: path.conversationId queueId: requestBody.queueId - text: Move caller {conversationId} to queue {queueId}. slots: conversationId: path.conversationId queueId: requestBody.queueId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/conversation/{conversationId}/transfer/external-number'].patch update: x-apievangelist-phrasing: intent: Transfer a call to an external number effect: write questions: - Can an agent forward a call to an outside phone number? - Which caller ID is shown when transferring to an external number? instructions: - text: Dial out and hand the call in {conversationId} to outside phone {externalNumber}. slots: conversationId: path.conversationId externalNumber: requestBody.externalNumber - text: Forward call {conversationId} to external number {externalNumber} from {from}. slots: conversationId: path.conversationId externalNumber: requestBody.externalNumber from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/transfer-configs/external-number'].get update: x-apievangelist-phrasing: intent: Get external-number transfer settings effect: read questions: - Are agents allowed to transfer calls to any external number? - What tag governs external-number transfers? instructions: - text: Show the transfer-to-external-number configuration. - text: Tell me whether transfers to any phone number are enabled. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/transfer-configs/external-number'].put update: x-apievangelist-phrasing: intent: Update external-number transfer settings effect: write questions: - Can I allow agents to transfer calls to any number? - Can I restrict external transfers to numbers under a tag? instructions: - text: 'Enable transfer to any external number: {transferToAnyNumberEnabled}.' slots: transferToAnyNumberEnabled: requestBody.transferToAnyNumberEnabled - text: Limit external transfers to numbers tagged {tagName}. slots: tagName: requestBody.tagName method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/transfer-configs/transfer-strategy'].get update: x-apievangelist-phrasing: intent: Get the call transfer strategy effect: read questions: - What music and announcement do callers hear during a transfer? - Can I view my current transfer strategy? instructions: - text: Show the call transfer strategy. - text: Tell me which hold music plays during call transfers. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/transfer-configs/transfer-strategy'].put update: x-apievangelist-phrasing: intent: Update the call transfer strategy effect: write questions: - Can I change the music played while a call is being transferred? - Is it possible to add an announcement during transfers? instructions: - text: Set transfer music to {musicOnHold}. slots: musicOnHold: requestBody.musicOnHold - text: Play announcement {announcementMessage} while transferring calls. slots: announcementMessage: requestBody.announcementMessage method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/{conversationId}/hold'].patch update: x-apievangelist-phrasing: intent: Put a caller on hold effect: write questions: - Can an agent put the customer on hold during a call? - How is hold triggered for a call conversation? instructions: - text: Put the caller in conversation {conversationId} on hold. slots: conversationId: path.conversationId - text: Hold call {conversationId}. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/{conversationId}/unhold'].patch update: x-apievangelist-phrasing: intent: Take a caller off hold effect: write questions: - How do I resume a call after putting the client on hold? - Can I release a customer from hold through the API? instructions: - text: Take the caller in conversation {conversationId} off hold. slots: conversationId: path.conversationId - text: Resume call {conversationId} from hold. slots: conversationId: path.conversationId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/hold-configs-per-queue'].get update: x-apievangelist-phrasing: intent: List hold configurations effect: read questions: - What hold music setups exist for my queues? - Can I page through hold configurations? instructions: - text: List hold configurations. - text: Show hold configurations page {pageNumber}, {pageSize} per page. slots: pageNumber: query.pageNumber pageSize: query.pageSize method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/hold-configs-per-queue'].post update: x-apievangelist-phrasing: intent: Create a hold configuration for queues effect: write questions: - Can I set custom hold music for certain queues? - Which queues does a new hold configuration apply to? instructions: - text: Create hold configuration {name} for queues {queueIds}. slots: name: requestBody.name queueIds: requestBody.queueIds - text: Add hold setup {name} with music {onHoldMusic} on queues {queueIds}. slots: name: requestBody.name onHoldMusic: requestBody.onHoldMusic queueIds: requestBody.queueIds method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/hold-configs-per-queue/{id}'].get update: x-apievangelist-phrasing: intent: Get a hold configuration effect: read questions: - Can I see which queues a hold configuration covers? - What announcement is in a given hold setup? instructions: - text: Get hold configuration {id}. slots: id: path.id - text: Show hold setup {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/hold-configs-per-queue/{id}'].put update: x-apievangelist-phrasing: intent: Update a hold configuration effect: write questions: - Can I change which queues use a hold configuration? - Is it possible to make a hold setup the default? instructions: - text: Update hold configuration {id} named {name} to cover queues {queueIds}. slots: id: path.id name: requestBody.name queueIds: requestBody.queueIds - text: 'Make hold setup {id} ({name}, queues {queueIds}) the default: {default}.' slots: id: path.id name: requestBody.name queueIds: requestBody.queueIds default: requestBody.default method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/hold-configs-per-queue/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a hold configuration effect: destructive questions: - Can I remove a hold music setup? - How do I delete a hold configuration by ID? instructions: - text: Delete hold configuration {id}. slots: id: path.id - text: Remove hold setup {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/call-timeouts'].get update: x-apievangelist-phrasing: intent: Get call timeout settings effect: read questions: - How long does an inbound call ring before timing out? - What are my current call timeout settings? instructions: - text: Show the call timeout configuration. - text: Tell me the inbound and outbound call timeouts. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/call-timeouts'].put update: x-apievangelist-phrasing: intent: Update call timeout settings effect: write questions: - Can I change how long inbound calls ring before timing out? - What happens if I leave a call timeout field empty? instructions: - text: Set the inbound call timeout to {inbound}. slots: inbound: requestBody.inbound - text: Update call timeouts to inbound {inbound} and outbound {outbound}. slots: inbound: requestBody.inbound outbound: requestBody.outbound method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/call-timeouts'].delete update: x-apievangelist-phrasing: intent: Remove the custom call timeout effect: destructive questions: - Can I revert to the default inbound call timeout? - How do I delete a custom call timeout? instructions: - text: Remove my custom inbound call timeout. - text: Reset call timeout to the default. method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours'].get update: x-apievangelist-phrasing: intent: List working hours schedules effect: read questions: - Which working hours schedules exist in my contact center? - Can I find the default working hours? instructions: - text: List working hours named {name}. slots: name: query.name - text: 'Show working hours schedules that are enabled: {enabled}.' slots: enabled: query.enabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours'].post update: x-apievangelist-phrasing: intent: Create a working hours schedule effect: write questions: - Can I set business hours with an away message for out-of-hours customers? - What does a working hours schedule need, like timezone and week layout? instructions: - text: Create working hours {name} in {timezone} with week {workWeek} and away message {message}. slots: name: requestBody.name timezone: requestBody.timezone workWeek: requestBody.workWeek message: requestBody.message - text: Set up business hours {name} ({timezone}, {workWeek}) sending {message} after hours. slots: name: requestBody.name timezone: requestBody.timezone workWeek: requestBody.workWeek message: requestBody.message method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{id}'].get update: x-apievangelist-phrasing: intent: Get a working hours schedule effect: read questions: - Can I view one working hours schedule's timezone and days? - What away message does a schedule send? instructions: - text: Get working hours {id}. slots: id: path.id - text: Show the schedule for working hours {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{id}'].put update: x-apievangelist-phrasing: intent: Replace a working hours schedule effect: write questions: - Can I fully redefine a working hours schedule? - Is it possible to change the timezone of a schedule? instructions: - text: Update working hours {id} to {name}, {timezone}, week {workWeek}, message {message}. slots: id: path.id name: requestBody.name timezone: requestBody.timezone workWeek: requestBody.workWeek message: requestBody.message - text: 'Replace schedule {id} completely: name {name}, timezone {timezone}, week {workWeek}, away text {message}.' slots: id: path.id name: requestBody.name timezone: requestBody.timezone workWeek: requestBody.workWeek message: requestBody.message method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a working hours schedule effect: destructive questions: - Can I delete a working hours schedule? - How do I remove business hours I no longer use? instructions: - text: Delete working hours {id}. slots: id: path.id - text: Remove schedule {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a working hours schedule effect: write questions: - Can I change only the away message on a schedule? - Is there a partial update for business hours? instructions: - text: Patch working hours {id} with a new away message {message} ({name}, {timezone}, {workWeek}). slots: id: path.id message: requestBody.message name: requestBody.name timezone: requestBody.timezone workWeek: requestBody.workWeek - text: Toggle schedule {id} enabled to {enabled} via partial update ({name}, {timezone}, {workWeek}, {message}). slots: id: path.id enabled: requestBody.enabled name: requestBody.name timezone: requestBody.timezone workWeek: requestBody.workWeek message: requestBody.message method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{id}/status'].get update: x-apievangelist-phrasing: intent: Check whether working hours are open now effect: read questions: - Is my contact center currently within working hours? - Can I check the live open or closed status of a schedule? instructions: - text: Get the current status of working hours {id}. slots: id: path.id - text: Tell me if schedule {id} is open right now. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{workingHoursId}/holiday'].post update: x-apievangelist-phrasing: intent: Add a holiday to working hours effect: write questions: - Can I add a public holiday so customers get the away message that day? - What dates does a working hours holiday need? instructions: - text: Add holiday {name} from {startDate} to {endDate} to working hours {workingHoursId}. slots: name: requestBody.name startDate: requestBody.startDate endDate: requestBody.endDate workingHoursId: path.workingHoursId - text: Create a holiday called {name} on schedule {workingHoursId}. slots: name: requestBody.name workingHoursId: path.workingHoursId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/working-hours/{workingHoursId}/holiday/{id}'].delete update: x-apievangelist-phrasing: intent: Remove a holiday from working hours effect: destructive questions: - Can I remove a holiday I added to a schedule? - How do I delete a working hours holiday? instructions: - text: Remove holiday {id} from working hours {workingHoursId}. slots: id: path.id workingHoursId: path.workingHoursId - text: Delete holiday {id} on schedule {workingHoursId}. slots: id: path.id workingHoursId: path.workingHoursId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/tts/options/placeholders/{ttsPurpose}'].get update: x-apievangelist-phrasing: intent: List supported TTS placeholders effect: read questions: - Which placeholders can I use in text-to-speech messages for a given purpose? - What dynamic values are supported in voice TTS prompts? instructions: - text: List supported TTS placeholders for purpose {ttsPurpose}. slots: ttsPurpose: path.ttsPurpose - text: Show which text-to-speech variables work for {ttsPurpose}. slots: ttsPurpose: path.ttsPurpose method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/away-audio-message/{workingHoursConfigId}'].get update: x-apievangelist-phrasing: intent: Get the away audio message effect: read questions: - What audio message do callers hear outside working hours? - Can I retrieve the away voice message tied to a schedule? instructions: - text: Get the away audio message for working hours {workingHoursConfigId}. slots: workingHoursConfigId: path.workingHoursConfigId - text: Show the after-hours voice message on schedule {workingHoursConfigId}. slots: workingHoursConfigId: path.workingHoursConfigId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/voice/2/away-audio-message/{workingHoursConfigId}'].delete update: x-apievangelist-phrasing: intent: Delete the away audio message effect: destructive questions: - Can I remove the after-hours audio message from a schedule? - How do I delete an away voice message? instructions: - text: Delete the away audio message for working hours {workingHoursConfigId}. slots: workingHoursConfigId: path.workingHoursConfigId - text: Remove the after-hours voice message on schedule {workingHoursConfigId}. slots: workingHoursConfigId: path.workingHoursConfigId method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/web-forms/{id}/submissions'].post update: x-apievangelist-phrasing: intent: Submit a web form entry effect: write questions: - Can I post a customer's web form entry so it opens a conversation? - Can web form submissions include attachments or CC addresses? instructions: - text: Submit web form {id} from {from} with content {content}. slots: id: path.id from: requestBody.from content: requestBody.content - text: 'Send a submission to web form {id} from {from}, subject {subject}: {content}.' slots: id: path.id from: requestBody.from subject: requestBody.subject content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/web-forms/{id}'].get update: x-apievangelist-phrasing: intent: Get a web form effect: read questions: - Can I see how a contact-center web form is configured? - Which channel does a web form create conversations on? instructions: - text: Get web form {id}. slots: id: path.id - text: Show the setup of web form {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/web-forms/{id}'].put update: x-apievangelist-phrasing: intent: Replace a web form effect: write questions: - Can I fully update a web form's channel and destination? - Is it possible to change a web form's URL? instructions: - text: 'Update web form {id}: name {name}, channel {channel}, destination {destination}, enabled {enabled}.' slots: id: path.id name: requestBody.name channel: requestBody.channel destination: requestBody.destination enabled: requestBody.enabled - text: Replace web form {id} with URL {url} ({name}, {channel}, {destination}, {enabled}). slots: id: path.id url: requestBody.url name: requestBody.name channel: requestBody.channel destination: requestBody.destination enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/web-forms/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a web form effect: destructive questions: - Can I delete a contact-center web form? - How would I remove a web form permanently? instructions: - text: Delete web form {id}. slots: id: path.id - text: Remove the web form {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/web-forms/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a web form effect: write questions: - Can I just disable a web form without changing anything else? - Is there a patch for web forms? instructions: - text: Patch web form {id} to enabled {enabled} ({name}, {channel}, {destination}). slots: id: path.id enabled: requestBody.enabled name: requestBody.name channel: requestBody.channel destination: requestBody.destination - text: Partially update web form {id} tags to {tagIds} ({name}, {channel}, {destination}, {enabled}). slots: id: path.id tagIds: requestBody.tagIds name: requestBody.name channel: requestBody.channel destination: requestBody.destination enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/ccaas/1/web-forms'].post update: x-apievangelist-phrasing: intent: Create a web form effect: write questions: - Can I create a web form that turns submissions into conversations? - What channel and destination does a new web form need? instructions: - text: Create web form {name} on {channel} to {destination}, enabled {enabled}. slots: name: requestBody.name channel: requestBody.channel destination: requestBody.destination enabled: requestBody.enabled - text: Build a new contact form {name} for {destination} over {channel} with enabled {enabled}. slots: name: requestBody.name destination: requestBody.destination channel: requestBody.channel enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/bots/1/testing/start'].post update: x-apievangelist-phrasing: intent: Start a bot test session effect: write questions: - Can I run a simulated conversation to test my chatbot? - What do I need to start a bot test scenario? instructions: - text: Start a test of bot {botId} with webhook {webhookUrl}. slots: botId: requestBody.botId webhookUrl: requestBody.webhookUrl - text: Begin a bot simulation for {botId} as sender {sender}, posting results to {webhookUrl}. slots: botId: requestBody.botId sender: requestBody.sender webhookUrl: requestBody.webhookUrl method: generated generated: '2026-09-26' - target: $.paths['/bots/1/testing/{testId}/stop'].post update: x-apievangelist-phrasing: intent: Stop a bot test session effect: write questions: - How do I end a bot simulation I started? - Can I finish a running bot test scenario? instructions: - text: Stop bot test {testId}. slots: testId: path.testId - text: End the bot simulation {testId}. slots: testId: path.testId method: generated generated: '2026-09-26' - target: $.paths['/bots/1/testing/{testId}/send-message'].post update: x-apievangelist-phrasing: intent: Send a message into a bot test effect: write questions: - Can I send a fake inbound user message to my bot during a test? - How do I simulate what a user types in a bot test? instructions: - text: Send {message} to bot test {testId} as user {userDestination}. slots: message: requestBody.message testId: path.testId userDestination: requestBody.userDestination - text: Simulate user {userDestination} saying {message} in test {testId}. slots: userDestination: requestBody.userDestination message: requestBody.message testId: path.testId method: generated generated: '2026-09-26' - target: $.paths['/saas/1/{resourceType}/{resourceId}/export'].get update: x-apievangelist-phrasing: intent: Export a SaaS resource to a file effect: read questions: - Can I export a resource, like a flow or bot, as a file? - Which resource types can be exported from my account? instructions: - text: Export {resourceType} {resourceId} as a file. slots: resourceType: path.resourceType resourceId: path.resourceId - text: Download an export of the {resourceType} resource {resourceId}. slots: resourceType: path.resourceType resourceId: path.resourceId method: generated generated: '2026-09-26' - target: $.paths['/saas/1/{resourceType}/import'].post update: x-apievangelist-phrasing: intent: Import a SaaS resource from a file effect: write questions: - Can I import an exported resource file into my account? - How do I bring a resource from another account into mine? instructions: - text: Import the {resourceType} from file {file}. slots: resourceType: path.resourceType file: requestBody.file - text: Upload {file} as a new {resourceType} resource. slots: file: requestBody.file resourceType: path.resourceType method: generated generated: '2026-09-26' - target: $.paths['/saas/1/{resourceType}/{resourceId}/share'].post update: x-apievangelist-phrasing: intent: Share a SaaS resource with other accounts effect: write questions: - Can I share a resource with other Infobip accounts? - How do I copy a resource to several accounts at once? instructions: - text: Share {resourceType} {resourceId} with accounts {accounts}. slots: resourceType: path.resourceType resourceId: path.resourceId accounts: requestBody.accounts - text: Send a copy of resource {resourceId} ({resourceType}) to {accounts}. slots: resourceId: path.resourceId resourceType: path.resourceType accounts: requestBody.accounts method: generated generated: '2026-09-26' - target: $.paths['/saas/1/request/{requestId}/status'].get update: x-apievangelist-phrasing: intent: Check a resource share request's status effect: read questions: - Did my resource share request finish? - What's the status of a SaaS share request? instructions: - text: Get the status of share request {requestId}. slots: requestId: path.requestId - text: Check whether resource share {requestId} completed. slots: requestId: path.requestId method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/me'].get update: x-apievangelist-phrasing: intent: List my Vocalize campaigns effect: read questions: - Which Vocalize voice campaigns do I own? - Can I show only active campaigns that already have scores? instructions: - text: List my Vocalize campaigns. - text: 'Show only my active Vocalize campaigns: {activeOnly}.' slots: activeOnly: query.activeOnly method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns'].post update: x-apievangelist-phrasing: intent: Create a Vocalize campaign effect: write questions: - Can I launch a voice challenge campaign with start and end dates? - What settings can a new Vocalize campaign have, like a keyword? instructions: - text: Create Vocalize campaign {name} running from {activeFrom} to {activeUntil}. slots: name: requestBody.name activeFrom: requestBody.activeFrom activeUntil: requestBody.activeUntil - text: Create campaign {name} with keyword {keywordSpec}, active {activeFrom} to {activeUntil}. slots: name: requestBody.name keywordSpec: requestBody.keywordSpec activeFrom: requestBody.activeFrom activeUntil: requestBody.activeUntil method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/{campaignId}'].get update: x-apievangelist-phrasing: intent: Get a Vocalize campaign effect: read questions: - Can I view the details of one Vocalize campaign? - When does a given voice campaign start and end? instructions: - text: Get Vocalize campaign {campaignId}. slots: campaignId: path.campaignId - text: Show campaign {campaignId}'s configuration. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/{campaignId}'].delete update: x-apievangelist-phrasing: intent: Delete a Vocalize campaign effect: destructive questions: - Can I delete a voice campaign entirely? - How do I remove a Vocalize campaign? instructions: - text: Delete Vocalize campaign {campaignId}. slots: campaignId: path.campaignId - text: Remove voice campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/{campaignId}/settings'].patch update: x-apievangelist-phrasing: intent: Update Vocalize campaign limits effect: write questions: - Can I cap how many attempts a user gets per day in a campaign? - Is it possible to change the speech-to-text provider for a campaign? instructions: - text: Limit campaign {campaignId} to {maxDailyAttemptsPerUser} attempts per user per day. slots: campaignId: path.campaignId maxDailyAttemptsPerUser: requestBody.maxDailyAttemptsPerUser - text: Set the daily attempt cap of campaign {campaignId} to {maxDailyAttemptsPerCampaign} in total. slots: campaignId: path.campaignId maxDailyAttemptsPerCampaign: requestBody.maxDailyAttemptsPerCampaign method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/{campaignId}/leaderboard'].get update: x-apievangelist-phrasing: intent: Get a Vocalize campaign leaderboard effect: read questions: - Who are the top scorers in my voice campaign? - Can I see the leaderboard for just one day? instructions: - text: Show the leaderboard for campaign {campaignId}. slots: campaignId: path.campaignId - text: Get the campaign {campaignId} leaderboard for day {day}. slots: campaignId: path.campaignId day: query.day method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/{campaignId}/stats'].get update: x-apievangelist-phrasing: intent: Get Vocalize campaign statistics effect: read questions: - How many attempts and scores has my voice campaign received? - Can I get totals for a Vocalize campaign? instructions: - text: Get statistics for campaign {campaignId}. slots: campaignId: path.campaignId - text: Show total attempts and scores for Vocalize campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/campaigns/{campaignId}/reset'].delete update: x-apievangelist-phrasing: intent: Wipe all scores from a Vocalize campaign effect: destructive questions: - Can I reset a campaign by deleting every score and attempt? - Is clearing campaign scores reversible? instructions: - text: Delete all scores and attempts in campaign {campaignId}. slots: campaignId: path.campaignId - text: Reset the leaderboard of campaign {campaignId} to empty. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/scores'].put update: x-apievangelist-phrasing: intent: Submit a user's voice attempt effect: write questions: - Can I record a user's audio attempt and score it for a campaign? - Does a user's first attempt need a display name? instructions: - text: Submit audio {audioUrl} in {languageCode} for user {userId} in campaign {campaignId}. slots: audioUrl: requestBody.audioUrl languageCode: requestBody.languageCode userId: requestBody.userId campaignId: requestBody.campaignId - text: Record an attempt by {userId} named {name} for campaign {campaignId} using {audioUrl} ({languageCode}). slots: userId: requestBody.userId name: requestBody.name campaignId: requestBody.campaignId audioUrl: requestBody.audioUrl languageCode: requestBody.languageCode method: generated generated: '2026-09-26' - target: $.paths['/vocalize/2/scores/stats'].get update: x-apievangelist-phrasing: intent: Get a user's score statistics effect: read questions: - How is one user doing in a voice campaign? - Can I see a single participant's score stats? instructions: - text: Get score stats for user {userId} in campaign {campaignId}. slots: userId: query.userId campaignId: query.campaignId - text: Show how {userId} is scoring in {campaignId}. slots: userId: query.userId campaignId: query.campaignId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/search'].post update: x-apievangelist-phrasing: intent: Search the knowledge base effect: read questions: - Can I full-text search across all my knowledge base content? - Which knowledge base content mentions a given phrase? instructions: - text: Search the knowledge base for {searchExp}. slots: searchExp: requestBody.searchExp - text: Full-text search knowledge content for {searchExp} with filter {filter}. slots: searchExp: requestBody.searchExp filter: requestBody.filter method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles'].get update: x-apievangelist-phrasing: intent: List knowledge base articles effect: read questions: - Can I list knowledge base articles with a certain tag? - Which articles are still in draft? instructions: - text: List articles tagged {tag}. slots: tag: query.tag - text: Show knowledge base articles with status {status}. slots: status: query.status method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles'].post update: x-apievangelist-phrasing: intent: Create a knowledge base article effect: write questions: - Can I publish a new help article to the knowledge base? - What fields does a new article need, like category and tags? instructions: - text: Create article {name} in category {categoryId} with content {content}, status {status}, tags {tags} and links {links}. slots: name: requestBody.name categoryId: requestBody.categoryId content: requestBody.content status: requestBody.status tags: requestBody.tags links: requestBody.links - text: 'Write a draft article {name}: {content} ({status}, {categoryId}, {tags}, {links}).' slots: name: requestBody.name content: requestBody.content status: requestBody.status categoryId: requestBody.categoryId tags: requestBody.tags links: requestBody.links method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}'].get update: x-apievangelist-phrasing: intent: Get a knowledge base article effect: read questions: - Can I fetch the full content of one article? - Can reading an article be counted as a view? instructions: - text: Get article {articleId}. slots: articleId: path.articleId - text: Open article {articleId} with record view {recordView}. slots: articleId: path.articleId recordView: query.recordView method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}'].put update: x-apievangelist-phrasing: intent: Update a knowledge base article effect: write questions: - Can I rewrite the content of an existing article? - Is it possible to move an article to another category? instructions: - text: 'Update article {articleId}: {name}, {content}, {status}, {categoryId}, {tags}, {links}.' slots: articleId: path.articleId name: requestBody.name content: requestBody.content status: requestBody.status categoryId: requestBody.categoryId tags: requestBody.tags links: requestBody.links - text: Move article {articleId} to folder {folderId}, keeping {name}, {content}, {status}, {categoryId}, {tags}, {links}. slots: articleId: path.articleId folderId: requestBody.folderId name: requestBody.name content: requestBody.content status: requestBody.status categoryId: requestBody.categoryId tags: requestBody.tags links: requestBody.links method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}'].delete update: x-apievangelist-phrasing: intent: Delete a knowledge base article effect: destructive questions: - Can I delete a help article? - Is article deletion a hard or soft delete? instructions: - text: Delete article {articleId}. slots: articleId: path.articleId - text: Remove knowledge base article {articleId}. slots: articleId: path.articleId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}/status'].patch update: x-apievangelist-phrasing: intent: Publish or unpublish an article effect: write questions: - Can I switch an article from draft to published? - What workflow statuses can an article have? instructions: - text: Set article {articleId} status to {status}. slots: articleId: path.articleId status: requestBody.status - text: Publish article {articleId} by changing its status to {status}. slots: articleId: path.articleId status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}/history'].get update: x-apievangelist-phrasing: intent: List an article's version history effect: read questions: - Can I see previous versions of a knowledge base article? - How far back does an article's history go? instructions: - text: Get the version history of article {articleId}. slots: articleId: path.articleId - text: List past revisions of {articleId}, page {page}. slots: articleId: path.articleId page: query.page method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}/comments'].get update: x-apievangelist-phrasing: intent: List comments on an article effect: read questions: - What comments have people left on an article? - Can I read the discussion on one help article? instructions: - text: Get comments on article {articleId}. slots: articleId: path.articleId - text: Show the discussion under {articleId}. slots: articleId: path.articleId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}/comments'].post update: x-apievangelist-phrasing: intent: Comment on an article effect: write questions: - Can I add a comment to a knowledge base article? - Is it possible to leave feedback on an article through the API? instructions: - text: Comment {content} on article {articleId}. slots: content: requestBody.content articleId: path.articleId - text: Add a comment to {articleId} saying {content}. slots: articleId: path.articleId content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}/comments/{commentId}'].put update: x-apievangelist-phrasing: intent: Edit a comment on an article effect: write questions: - Can I edit a comment I already posted on an article? - How do I change the text of an article comment? instructions: - text: Change comment {commentId} on article {articleId} to {content}. slots: commentId: path.commentId articleId: path.articleId content: requestBody.content - text: 'Edit my comment {commentId} under {articleId}: {content}.' slots: commentId: path.commentId articleId: path.articleId content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/articles/{articleId}/comments/{commentId}'].delete update: x-apievangelist-phrasing: intent: Delete a comment on an article effect: destructive questions: - Who is allowed to delete a comment on an article? - Can I remove a comment from an article? instructions: - text: Delete comment {commentId} on article {articleId}. slots: commentId: path.commentId articleId: path.articleId - text: Remove comment {commentId} from {articleId}. slots: commentId: path.commentId articleId: path.articleId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/categories'].get update: x-apievangelist-phrasing: intent: List knowledge base categories effect: read questions: - What categories organize my knowledge base? - Can I find a category by name or scope? instructions: - text: List knowledge base categories. - text: Find categories named {name} with scope {scope}. slots: name: query.name scope: query.scope method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/folders'].get update: x-apievangelist-phrasing: intent: List knowledge base folders effect: read questions: - Which folders exist inside a knowledge base category? - Can I search folders by name? instructions: - text: List folders in category {categoryId}. slots: categoryId: query.categoryId - text: Find knowledge base folders named {name}. slots: name: query.name method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/content-tree/nodes/categories'].get update: x-apievangelist-phrasing: intent: List top-level content tree categories effect: read questions: - What are the top-level category nodes of my knowledge base tree? - Can I expand the content tree down to a particular node? instructions: - text: List top-level content tree categories. - text: Show the content tree expanded to node {expandedToNodeId}. slots: expandedToNodeId: query.expandedToNodeId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/content-tree/nodes'].post update: x-apievangelist-phrasing: intent: Add a node to the content tree effect: write questions: - Can I add a new node to the knowledge base navigation tree? - Where in the tree does a new node get placed? instructions: - text: Create a {type} node {name} for target {targetId} at position {position}. slots: type: requestBody.type name: requestBody.name targetId: requestBody.targetId position: requestBody.position - text: Add tree node {name} ({type}) pointing to {targetId}, placed {position}. slots: name: requestBody.name type: requestBody.type targetId: requestBody.targetId position: requestBody.position method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/content-tree/nodes/{nodeId}/move'].post update: x-apievangelist-phrasing: intent: Move a content tree node effect: write questions: - Can I reorder nodes in the knowledge base tree? - How do I move a node before or after another node? instructions: - text: Move node {nodeId} to {position} of node {targetNodeId}. slots: nodeId: path.nodeId position: requestBody.position targetNodeId: requestBody.targetNodeId - text: Reposition tree node {nodeId} {position} {targetNodeId}. slots: nodeId: path.nodeId position: requestBody.position targetNodeId: requestBody.targetNodeId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/content-tree/nodes/{nodeId}'].get update: x-apievangelist-phrasing: intent: List a content tree node's children effect: read questions: - What sits directly under a node in the content tree? - Can I browse the children of one tree node? instructions: - text: Get the children of content tree node {nodeId}. slots: nodeId: path.nodeId - text: Show what's under tree node {nodeId}. slots: nodeId: path.nodeId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/content-tree/nodes/{nodeId}'].put update: x-apievangelist-phrasing: intent: Rename a content tree node effect: write questions: - Can I rename a node in the content tree? - Is there a way to update a tree node's label? instructions: - text: Rename content tree node {nodeId} to {name}. slots: nodeId: path.nodeId name: requestBody.name - text: Change tree node {nodeId}'s name to {name}. slots: nodeId: path.nodeId name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/content-tree/nodes/{nodeId}'].delete update: x-apievangelist-phrasing: intent: Delete a content tree node effect: destructive questions: - Does deleting a content tree node also remove its children? - Can I remove a branch of the knowledge base tree? instructions: - text: Delete content tree node {nodeId}. slots: nodeId: path.nodeId - text: Remove tree node {nodeId} and everything beneath it. slots: nodeId: path.nodeId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/tags'].get update: x-apievangelist-phrasing: intent: List knowledge base tags effect: read questions: - What tags are used on knowledge base articles? - Can I search knowledge base tags by name? instructions: - text: List knowledge base tags. - text: Find knowledge base tags named {name}. slots: name: query.name method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/tags'].post update: x-apievangelist-phrasing: intent: Create a knowledge base tag effect: write questions: - Can I create a new tag for help articles? - Are there naming restrictions on knowledge base tags? instructions: - text: Create knowledge base tag {name}. slots: name: requestBody.name - text: Add an article tag called {name}. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/tags/{tagId}'].get update: x-apievangelist-phrasing: intent: Get a knowledge base tag effect: read questions: - Can I look up one knowledge base tag by ID? - What details are stored on an article tag? instructions: - text: Get knowledge base tag {tagId}. slots: tagId: path.tagId - text: Show article tag {tagId}. slots: tagId: path.tagId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/tags/{tagId}'].put update: x-apievangelist-phrasing: intent: Rename a knowledge base tag effect: write questions: - Can I rename a knowledge base tag? - How do I fix a typo in an article tag? instructions: - text: Rename knowledge base tag {tagId} to {name}. slots: tagId: path.tagId name: requestBody.name - text: Change article tag {tagId}'s name to {name}. slots: tagId: path.tagId name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/attachments/{attachmentId}'].get update: x-apievangelist-phrasing: intent: Get knowledge base attachment details effect: read questions: - Can I get the download URL of a knowledge base attachment? - What metadata is stored on an uploaded attachment? instructions: - text: Get attachment {attachmentId} details. slots: attachmentId: path.attachmentId - text: Show the download link for attachment {attachmentId}. slots: attachmentId: path.attachmentId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/attachments/{attachmentId}'].delete update: x-apievangelist-phrasing: intent: Delete a knowledge base attachment effect: destructive questions: - Can I delete a file I uploaded to the knowledge base? - How do I remove an attachment? instructions: - text: Delete attachment {attachmentId}. slots: attachmentId: path.attachmentId - text: Remove knowledge base file {attachmentId}. slots: attachmentId: path.attachmentId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/attachments/{attachmentId}/linked-article'].get update: x-apievangelist-phrasing: intent: Find the article an attachment belongs to effect: read questions: - Which article is a given attachment linked to? - Can I trace an uploaded file back to its article? instructions: - text: Get the article linked to attachment {attachmentId}. slots: attachmentId: path.attachmentId - text: Show which article uses file {attachmentId}. slots: attachmentId: path.attachmentId method: generated generated: '2026-09-26' - target: $.paths['/knowledge-base/1/attachments'].post update: x-apievangelist-phrasing: intent: Upload a knowledge base attachment effect: write questions: - Can I upload an image or file for use in knowledge base articles? - Is an uploaded attachment validated? instructions: - text: Upload {file} as a knowledge base attachment. slots: file: requestBody.file - text: Add the file {file} to the knowledge base. slots: file: requestBody.file method: generated generated: '2026-09-26'