# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for act.web.api Groups API version: 1.0.0 extends: openapi/act-groups-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 29 - target: $.paths['/api/contacts/{contactId}/associated-groups'].get update: x-apievangelist-phrasing: intent: List a contact's groups effect: read questions: - Which groups is a contact a member of? - Can I filter the groups a contact belongs to with an OData query? instructions: - text: List the groups for contact {contactId}. slots: contactId: path.contactId - text: Show which groups contact {contactId} is in. slots: contactId: path.contactId method: generated generated: '2026-10-01' - target: $.paths['/api/contacts/{contactId}/associated-groups'].put update: x-apievangelist-phrasing: intent: Add a contact to several groups effect: write questions: - Can I add one contact to multiple groups at once? - What puts a contact into a whole list of groups in one call? instructions: - text: Add contact {contactId} to groups {groups}. slots: contactId: path.contactId groups: requestBody.groups - text: Associate the groups {groups} with contact {contactId}. slots: contactId: path.contactId groups: requestBody.groups method: generated generated: '2026-10-01' - target: $.paths['/api/contacts/{contactId}/associated-groups'].delete update: x-apievangelist-phrasing: intent: Remove a contact from several groups effect: destructive questions: - Can I remove a contact from several groups in one call? - What takes a contact out of a batch of groups at once? instructions: - text: Remove contact {contactId} from groups {groups}. slots: contactId: path.contactId groups: requestBody.groups - text: Dissociate the groups {groups} from contact {contactId}. slots: contactId: path.contactId groups: requestBody.groups method: generated generated: '2026-10-01' - target: $.paths['/api/contacts/{contactId}/associated-groups/{groupId}'].put update: x-apievangelist-phrasing: intent: Add a contact to one group effect: write questions: - How do I add a contact to one specific group? - Is there a call that attaches a single group to a contact? instructions: - text: Add contact {contactId} to group {groupId}. slots: contactId: path.contactId groupId: path.groupId - text: Put contact {contactId} in group {groupId}. slots: contactId: path.contactId groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/contacts/{contactId}/associated-groups/{groupId}'].delete update: x-apievangelist-phrasing: intent: Remove a contact from one group effect: destructive questions: - How do I take a contact out of a single group? - Can I drop just one group membership from a contact? instructions: - text: Remove contact {contactId} from group {groupId}. slots: contactId: path.contactId groupId: path.groupId - text: Take contact {contactId} out of group {groupId}. slots: contactId: path.contactId groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/opportunities/{opportunityId}/associated-groups'].get update: x-apievangelist-phrasing: intent: List an opportunity's groups effect: read questions: - Which groups is a sales opportunity linked to? - Can I see the groups attached to one deal? instructions: - text: List the groups for opportunity {opportunityId}. slots: opportunityId: path.opportunityId - text: Show which groups opportunity {opportunityId} belongs to. slots: opportunityId: path.opportunityId method: generated generated: '2026-10-01' - target: $.paths['/api/opportunities/{opportunityId}/associated-groups'].put update: x-apievangelist-phrasing: intent: Link several groups to an opportunity effect: write questions: - Can I link a deal to multiple groups at once? - What associates a list of groups with an opportunity? instructions: - text: Link opportunity {opportunityId} to groups {groups}. slots: opportunityId: path.opportunityId groups: requestBody.groups - text: Associate the groups {groups} with opportunity {opportunityId}. slots: opportunityId: path.opportunityId groups: requestBody.groups method: generated generated: '2026-10-01' - target: $.paths['/api/opportunities/{opportunityId}/associated-groups'].delete update: x-apievangelist-phrasing: intent: Unlink several groups from an opportunity effect: destructive questions: - Can I unlink an opportunity from a batch of groups in one request? - What removes several groups from a deal at once? instructions: - text: Unlink opportunity {opportunityId} from groups {groups}. slots: opportunityId: path.opportunityId groups: requestBody.groups - text: Dissociate the groups {groups} from opportunity {opportunityId}. slots: opportunityId: path.opportunityId groups: requestBody.groups method: generated generated: '2026-10-01' - target: $.paths['/api/opportunities/{opportunityId}/associated-groups/{groupId}'].put update: x-apievangelist-phrasing: intent: Link one group to an opportunity effect: write questions: - How do I attach a single group to an opportunity? - Can I add one deal to a specific group? instructions: - text: Link opportunity {opportunityId} to group {groupId}. slots: opportunityId: path.opportunityId groupId: path.groupId - text: Add opportunity {opportunityId} to group {groupId}. slots: opportunityId: path.opportunityId groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/opportunities/{opportunityId}/associated-groups/{groupId}'].delete update: x-apievangelist-phrasing: intent: Unlink one group from an opportunity effect: destructive questions: - How do I detach a single group from an opportunity? - Can I take one deal out of a specific group? instructions: - text: Unlink opportunity {opportunityId} from group {groupId}. slots: opportunityId: path.opportunityId groupId: path.groupId - text: Take opportunity {opportunityId} out of group {groupId}. slots: opportunityId: path.opportunityId groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}'].get update: x-apievangelist-phrasing: intent: Get a group effect: read questions: - Where do I look up a group by its ID? - What details does a single group record hold? instructions: - text: Show group {groupId}. slots: groupId: path.groupId - text: Get the details for group {groupId}. slots: groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}'].put update: x-apievangelist-phrasing: intent: Replace a group's details effect: write questions: - How do I fully update a group's details? - Can I rename a group and change its description in one full update? instructions: - text: Update group {groupId} with name {name} and description {description}. slots: groupId: path.groupId name: requestBody.name description: requestBody.description - text: Overwrite group {groupId} and set its record manager to {recordManagerID}. slots: groupId: path.groupId recordManagerID: requestBody.recordManagerID method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}'].delete update: x-apievangelist-phrasing: intent: Delete a group effect: destructive questions: - How do I delete a group? - Can I permanently remove a group by its ID? instructions: - text: Delete group {groupId}. slots: groupId: path.groupId - text: Remove group {groupId} from the database. slots: groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}'].patch update: x-apievangelist-phrasing: intent: Partially update a group effect: write questions: - Can I change just a group's name without touching anything else? - Is there a partial update for groups? instructions: - text: Rename group {groupId} to {name}. slots: groupId: path.groupId name: requestBody.name - text: Set the private flag on group {groupId} to {isPrivate}. slots: groupId: path.groupId isPrivate: requestBody.isPrivate method: generated generated: '2026-10-01' - target: $.paths['/api/groups'].get update: x-apievangelist-phrasing: intent: List groups effect: read questions: - What groups exist in my Act! database? - Can I filter the full group list with an OData query? instructions: - text: List all groups. - text: Show every group in the database. method: generated generated: '2026-10-01' - target: $.paths['/api/groups'].post update: x-apievangelist-phrasing: intent: Create a group effect: write questions: - How do I create a new group? - Can I create a subgroup under an existing parent group? instructions: - text: Create a group named {name}. slots: name: requestBody.name - text: Create a subgroup {name} under parent group {parentID}. slots: name: requestBody.name parentID: requestBody.parentID method: generated generated: '2026-10-01' - target: $.paths['/api/{entityName}/{id}/associated-groups'].get update: x-apievangelist-phrasing: intent: List a custom entity record's groups effect: read questions: - Which groups is a custom entity record associated with? - Can I list groups for a record of one of my custom entity types? instructions: - text: List groups for {entityName} record {id}. slots: entityName: path.entityName id: path.id - text: Show the groups linked to custom record {id} of type {entityName}. slots: entityName: path.entityName id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}/associated-groups'].get update: x-apievangelist-phrasing: intent: List groups associated with a group effect: read questions: - Which other groups are associated with a given group? - Can I see the groups linked to another group? instructions: - text: List groups associated with group {groupId}. slots: groupId: path.groupId - text: Show the groups linked to group {groupId}. slots: groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/lists/{listId}/dynamic-criteria'].get update: x-apievangelist-phrasing: intent: Get a dynamic list's criteria effect: read questions: - What criteria define a dynamic list? - Where can I read the rules behind a saved dynamic list? instructions: - text: Show the criteria for dynamic list {listId}. slots: listId: path.listId - text: Get the filter rules of dynamic list {listId}. slots: listId: path.listId method: generated generated: '2026-10-01' - target: $.paths['/api/lists/{listId}/dynamic-criteria'].put update: x-apievangelist-phrasing: intent: Edit a dynamic list's criteria effect: write questions: - How do I change the rules of a dynamic list? - Can I set the date format used when editing dynamic list criteria? instructions: - text: Update the criteria for dynamic list {listId}. slots: listId: path.listId - text: Edit dynamic list {listId} criteria using date format {dateFormat}. slots: listId: path.listId dateFormat: query.dateFormat method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/metadata'].get update: x-apievangelist-phrasing: intent: Get dynamic list field metadata effect: read questions: - What fields can a dynamic list filter on? - Where do I get the metadata for building dynamic list criteria? instructions: - text: Get the dynamic list metadata. - text: Show the fields available for dynamic list criteria. method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/operators'].get update: x-apievangelist-phrasing: intent: List dynamic list operators effect: read questions: - Which comparison operators can dynamic list criteria use? - What operators apply to each data type in a dynamic list? instructions: - text: List the dynamic list operators. - text: Show the operators available per data type for dynamic lists. method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}/access'].get update: x-apievangelist-phrasing: intent: Get a group's access levels effect: read questions: - Who has access to a group? - How can I check the access level set on a group? instructions: - text: Show the access levels for group {groupId}. slots: groupId: path.groupId - text: List who can access group {groupId}. slots: groupId: path.groupId method: generated generated: '2026-10-01' - target: $.paths['/api/groups/{groupId}/access'].put update: x-apievangelist-phrasing: intent: Change who can access a group effect: write questions: - How do I change which users can access a group? - Can I share a group with a specific set of accessors? instructions: - text: Set the accessors of group {groupId} to {accessors}. slots: groupId: path.groupId accessors: requestBody.accessors - text: Change group {groupId} access to type {type} with accessors {accessors}. slots: groupId: path.groupId type: requestBody.type accessors: requestBody.accessors method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/company-preview'].post update: x-apievangelist-phrasing: intent: Preview companies a dynamic list matches effect: read questions: - Can I preview which companies a dynamic list's criteria would match? - Does the company preview include private companies? instructions: - text: Preview the companies matching my dynamic list criteria. - text: Preview matching companies with includePrivate {includePrivate}. slots: includePrivate: query.includePrivate method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/preview'].post update: x-apievangelist-phrasing: intent: Preview dynamic list results effect: read questions: - Can I preview dynamic list results before saving the criteria? - Can the general dynamic list preview include users? instructions: - text: Preview the results of my dynamic list criteria. - text: Preview dynamic list results with includeUsers {includeUsers}. slots: includeUsers: query.includeUsers method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/contact-preview'].post update: x-apievangelist-phrasing: intent: Preview contacts a dynamic list matches effect: read questions: - Which contacts would my dynamic list criteria pull in? - Can the contact preview also return users? instructions: - text: Preview the contacts matching my dynamic list criteria. - text: Preview matching contacts with includeUsers {includeUsers}. slots: includeUsers: query.includeUsers method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/group-preview'].post update: x-apievangelist-phrasing: intent: Preview groups a dynamic list matches effect: read questions: - Which groups would a dynamic list's criteria match? - Can I preview matching groups including private ones? instructions: - text: Preview the groups my dynamic list criteria match. - text: Preview matching groups with includePrivate {includePrivate}. slots: includePrivate: query.includePrivate method: generated generated: '2026-10-01' - target: $.paths['/api/dynamic-list/opportunity-preview'].post update: x-apievangelist-phrasing: intent: Preview opportunities a dynamic list matches effect: read questions: - Which opportunities would my dynamic list criteria return? - Can I preview matching deals in a specific date format? instructions: - text: Preview the opportunities matching my dynamic list criteria. - text: Preview matching opportunities using date format {dateFormat}. slots: dateFormat: query.dateFormat method: generated generated: '2026-10-01'