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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'