Act! CRM · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for act.web.api Groups API
30 actions
30 updates
phrasing
extends
openapi/act-groups-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Act! CRM's API. It is a proposal applied on top of the contract, not a document Act! CRM publishes.
What the actions change
x-apievangelist-phrasing
Targets 30 · first 16 shown; the file carries all of them
$.info
$.paths['/api/contacts/{contactId}/associated-groups'].get
$.paths['/api/contacts/{contactId}/associated-groups'].put
$.paths['/api/contacts/{contactId}/associated-groups'].delete
$.paths['/api/contacts/{contactId}/associated-groups/{groupId}'].put
$.paths['/api/contacts/{contactId}/associated-groups/{groupId}'].delete
$.paths['/api/opportunities/{opportunityId}/associated-groups'].get
$.paths['/api/opportunities/{opportunityId}/associated-groups'].put
$.paths['/api/opportunities/{opportunityId}/associated-groups'].delete
$.paths['/api/opportunities/{opportunityId}/associated-groups/{groupId}'].put
$.paths['/api/opportunities/{opportunityId}/associated-groups/{groupId}'].delete
$.paths['/api/groups/{groupId}'].get
$.paths['/api/groups/{groupId}'].put
$.paths['/api/groups/{groupId}'].delete
$.paths['/api/groups/{groupId}'].patch
$.paths['/api/groups'].get
OpenAPI Overlay
# 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'