Zoho CRM · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Deal Contact Roles API

7 actions 7 updates phrasing extends openapi/zoho-crm-contact-roles-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Zoho CRM's API. It is a proposal applied on top of the contract, not a document Zoho CRM publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 7

$.info
$.paths['/{module}/{dealId}/Contact_Roles'].get
$.paths['/{module}/{dealId}/Contact_Roles'].put
$.paths['/{module}/{dealId}/Contact_Roles'].delete
$.paths['/{module}/{dealId}/Contact_Roles/{contactId}'].get
$.paths['/{module}/{dealId}/Contact_Roles/{contactId}'].put
$.paths['/{module}/{dealId}/Contact_Roles/{contactId}'].delete

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 Deal Contact Roles API
  version: 1.0.0
extends: openapi/zoho-crm-contact-roles-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: 6
- target: $.paths['/{module}/{dealId}/Contact_Roles'].get
  update:
    x-apievangelist-phrasing:
      intent: List contacts and their roles on a deal
      effect: read
      questions:
      - Which contacts are involved in a deal and what role does each play?
      - Can I choose which fields come back when listing a deal's contact roles?
      instructions:
      - text: List the contact roles on {module} deal {dealId} with fields {fields}.
        slots:
          module: path.module
          dealId: path.dealId
          fields: query.fields
      - text: Show who is on deal {dealId} in {module} and their roles, returning {fields}.
        slots:
          dealId: path.dealId
          module: path.module
          fields: query.fields
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{module}/{dealId}/Contact_Roles'].put
  update:
    x-apievangelist-phrasing:
      intent: Add or update contact roles on a deal in bulk
      effect: write
      questions:
      - Can I add several contacts to a deal with their roles in one request?
      - How do I bulk update the roles of contacts already on a deal?
      instructions:
      - text: 'Add or update these contact roles on {module} deal {dealId}: {data}.'
        slots:
          module: path.module
          dealId: path.dealId
          data: requestBody.data
      - text: Bulk set contact roles for deal {dealId} in {module}.
        slots:
          dealId: path.dealId
          module: path.module
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{module}/{dealId}/Contact_Roles'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove several contacts from a deal
      effect: destructive
      questions:
      - Can I remove multiple contact role associations from a deal at once?
      - What IDs do I pass to detach several contacts from a deal?
      instructions:
      - text: Remove contact role relations {ids} from {module} deal {dealId}.
        slots:
          ids: query.ids
          module: path.module
          dealId: path.dealId
      - text: Detach the contact relations {ids} from deal {dealId} in {module}.
        slots:
          ids: query.ids
          dealId: path.dealId
          module: path.module
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{module}/{dealId}/Contact_Roles/{contactId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one contact's role on a deal
      effect: read
      questions:
      - What role does a particular contact hold on a specific deal?
      - Can I check a single contact's relation to a deal?
      instructions:
      - text: Get contact {contactId}'s role on {module} deal {dealId}, returning {fields}.
        slots:
          contactId: path.contactId
          module: path.module
          dealId: path.dealId
          fields: query.fields
      - text: Show the {fields} of contact {contactId}'s relation to deal {dealId} in {module}.
        slots:
          fields: query.fields
          contactId: path.contactId
          dealId: path.dealId
          module: path.module
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{module}/{dealId}/Contact_Roles/{contactId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Assign a role to one contact on a deal
      effect: write
      questions:
      - How do I add a single contact to a deal as the decision maker?
      - Can I change the role one contact plays on a deal?
      instructions:
      - text: Assign contact {contactId} to {module} deal {dealId} with role {data}.
        slots:
          contactId: path.contactId
          module: path.module
          dealId: path.dealId
          data: requestBody.data
      - text: Change contact {contactId}'s role on deal {dealId} in {module}.
        slots:
          contactId: path.contactId
          dealId: path.dealId
          module: path.module
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{module}/{dealId}/Contact_Roles/{contactId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove one contact from a deal
      effect: destructive
      questions:
      - How do I take one contact off a deal?
      - Can I delete a single contact-deal relation by the contact's ID?
      instructions:
      - text: Remove contact {contactId} from {module} deal {dealId}.
        slots:
          contactId: path.contactId
          module: path.module
          dealId: path.dealId
      - text: Delete the relation between contact {contactId} and deal {dealId} in {module}.
        slots:
          contactId: path.contactId
          dealId: path.dealId
          module: path.module
      method: generated
      generated: '2026-09-26'