Zoho CRM · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Zoho Crm Actions API
49 actions
49 updates
phrasing
extends
openapi/zoho-crm-actions-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.
What the actions change
x-apievangelist-phrasing
Targets 49 · first 16 shown; the file carries all of them
$.info
$.paths['/{module}/{recordId}/actions/associate_email'].post
$.paths['/{module}/actions/unenrol_from_cadences'].post
$.paths['/{module}/actions/enrol_in_cadences'].post
$.paths['/{module}/{record}/actions/change_owner'].post
$.paths['/{module}/actions/change_owner'].post
$.paths['/{moduleApiName}/actions/fetch_full_data'].get
$.paths['/{moduleApiName}/{id}/actions/fetch_full_data'].get
$.paths['/{module}/{masterRecordId}/actions/merge'].get
$.paths['/{module}/{masterRecordId}/actions/merge'].post
$.paths['/{moduleApiName}/{recordId}/actions/get_related_records_count'].post
$.paths['/{moduleApiName}/{id}/actions/convert'].post
$.paths['/{moduleApiName}/{recordId}/actions/send_mail_merge'].post
$.paths['/{moduleApiName}/{recordId}/actions/sign_mail_merge'].post
$.paths['/{moduleApiName}/{recordId}/actions/download_mail_merge'].post
$.paths['/{module}/actions/mass_change_owner'].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 Zoho Crm Actions API
version: 1.0.0
extends: openapi/zoho-crm-actions-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: 48
- target: $.paths['/{module}/{recordId}/actions/associate_email'].post
update:
x-apievangelist-phrasing:
intent: Associate emails with a CRM record
effect: write
questions:
- How do I link an existing email to a specific contact or lead record?
- Can I attach sent emails to a deal record after the fact so they show in its history?
instructions:
- text: Associate this email with record {recordId} in the {module} module.
slots:
module: path.module
recordId: path.recordId
- text: Link the email details in {data} to {module} record {recordId}.
slots:
module: path.module
recordId: path.recordId
data: requestBody.data
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/unenrol_from_cadences'].post
update:
x-apievangelist-phrasing:
intent: Unenroll records from cadences
effect: write
questions:
- How do I take leads out of a follow-up cadence they were enrolled in?
- Can I stop several records from receiving a cadence's scheduled follow-ups at once?
instructions:
- text: Unenroll records {ids} in {module} from cadences {cadences_ids}.
slots:
module: path.module
ids: requestBody.ids
cadences_ids: requestBody.cadences_ids
- text: Remove these {module} records from their cadence follow-ups.
slots:
module: path.module
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/enrol_in_cadences'].post
update:
x-apievangelist-phrasing:
intent: Enroll records into a manual cadence
effect: write
questions:
- How do I enroll a batch of leads into a manual cadence in Zoho CRM?
- Can I add existing contacts to a follow-up cadence through the API?
instructions:
- text: Enroll {module} records {ids} into cadences {cadences_ids}.
slots:
module: path.module
ids: requestBody.ids
cadences_ids: requestBody.cadences_ids
- text: Start the manual cadence for these {module} records.
slots:
module: path.module
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{record}/actions/change_owner'].post
update:
x-apievangelist-phrasing:
intent: Change the owner of one record
effect: write
questions:
- How do I reassign a single deal to a different sales rep?
- When I change one record's owner, can its related tasks and notes move with it?
instructions:
- text: Make {owner} the owner of {module} record {record}.
slots:
module: path.module
record: path.record
owner: requestBody.owner
- text: Reassign {module} record {record} to {owner} and notify them.
slots:
module: path.module
record: path.record
owner: requestBody.owner
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/change_owner'].post
update:
x-apievangelist-phrasing:
intent: Change the owner of several chosen records
effect: write
questions:
- How do I reassign a hand-picked list of leads to one new owner in a single call?
- Can I change the owner of multiple records by their IDs and carry related records over too?
instructions:
- text: Transfer {module} records {ids} to owner {owner}.
slots:
module: path.module
ids: requestBody.ids
owner: requestBody.owner
- text: Give {owner} ownership of these selected {module} records.
slots:
module: path.module
owner: requestBody.owner
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/actions/fetch_full_data'].get
update:
x-apievangelist-phrasing:
intent: Fetch full rich text for several records
effect: read
questions:
- How do I get the complete, untruncated rich text fields for a batch of records?
- What is the maximum number of rich text fields I can request when pulling full data for multiple records?
instructions:
- text: Fetch full rich text field {fields} for {moduleApiName} records {ids}.
slots:
moduleApiName: path.moduleApiName
ids: query.ids
fields: query.fields
- text: Pull the complete rich text content of {moduleApiName} records {ids}.
slots:
moduleApiName: path.moduleApiName
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{id}/actions/fetch_full_data'].get
update:
x-apievangelist-phrasing:
intent: Fetch full rich text for one record
effect: read
questions:
- How can I read the whole content of a long rich text field on one record?
- If I don't name fields, does fetching full data for a record return every rich text field?
instructions:
- text: Get all rich text fields in full for {moduleApiName} record {id}.
slots:
moduleApiName: path.moduleApiName
id: path.id
- text: Show the untruncated {fields} field of {moduleApiName} record {id}.
slots:
moduleApiName: path.moduleApiName
id: path.id
fields: query.fields
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{masterRecordId}/actions/merge'].get
update:
x-apievangelist-phrasing:
intent: Check the status of a record merge job
effect: read
questions:
- How do I find out whether an asynchronous merge of duplicate records has finished?
- Can I track the progress of a merge job started on a master record?
instructions:
- text: Check merge job {job_id} for master record {masterRecordId} in {module}.
slots:
module: path.module
masterRecordId: path.masterRecordId
job_id: query.job_id
- text: Show the merge job status for {module} master record {masterRecordId}.
slots:
module: path.module
masterRecordId: path.masterRecordId
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{masterRecordId}/actions/merge'].post
update:
x-apievangelist-phrasing:
intent: Merge duplicate records into a master record
effect: destructive
questions:
- How do I merge duplicate contacts into one master record?
- Can I choose which field values survive when combining duplicate records?
instructions:
- text: Merge the duplicates in {merge} into {module} master record {masterRecordId}.
slots:
module: path.module
masterRecordId: path.masterRecordId
merge: requestBody.merge
- text: Combine duplicate {module} records into master record {masterRecordId}.
slots:
module: path.module
masterRecordId: path.masterRecordId
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/get_related_records_count'].post
update:
x-apievangelist-phrasing:
intent: Count related records under a parent record
effect: read
questions:
- How many notes, tasks or deals are attached to a given account without fetching them all?
- Can I count a record's related list entries filtered by approval or conversion status?
instructions:
- text: Count the related records of {moduleApiName} record {recordId}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
- text: Get related list counts {get_related_records_count} for {moduleApiName} record {recordId}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
get_related_records_count: requestBody.get_related_records_count
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{id}/actions/convert'].post
update:
x-apievangelist-phrasing:
intent: Convert a quote or sales order to the next stage
effect: write
questions:
- How do I turn a quote into a sales order automatically?
- Can a sales order be converted straight into an invoice through the API?
instructions:
- text: Convert {moduleApiName} record {id} into its next inventory document.
slots:
moduleApiName: path.moduleApiName
id: path.id
- text: Turn quote {id} into a sales order.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/send_mail_merge'].post
update:
x-apievangelist-phrasing:
intent: Send an email from a mail merge template
effect: write
questions:
- How do I email a record a document generated from a mail merge template?
- Can a mail merge email include file attachments or inline images?
instructions:
- text: Send the mail merge email for {moduleApiName} record {recordId}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
- text: Email record {recordId} in {moduleApiName} using mail merge settings {send_mail_merge}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
send_mail_merge: requestBody.send_mail_merge
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/sign_mail_merge'].post
update:
x-apievangelist-phrasing:
intent: Send a mail merge document for signature
effect: write
questions:
- How do I send a merged contract document out for e-signature and approval?
- What setup is needed in Writer before I can send a mail merge document for signing?
instructions:
- text: Send the merged document for {moduleApiName} record {recordId} for signing.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
- text: Route a mail merge for signature on {moduleApiName} record {recordId} with {sign_mail_merge}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
sign_mail_merge: requestBody.sign_mail_merge
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/download_mail_merge'].post
update:
x-apievangelist-phrasing:
intent: Download a merged mail merge document
effect: read
questions:
- How can I download the document a mail merge template produces for a record?
- Can I get the merged file for a deal without emailing it to anyone?
instructions:
- text: Download the mail merge document for {moduleApiName} record {recordId}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
- text: Generate and download the merged file {download_mail_merge} for record {recordId} in {moduleApiName}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
download_mail_merge: requestBody.download_mail_merge
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/mass_change_owner'].get
update:
x-apievangelist-phrasing:
intent: Check a mass change owner job
effect: read
questions:
- How do I see whether a mass owner reassignment job has completed?
- Is there a way to check how many records a mass change owner job has processed?
instructions:
- text: Check mass change owner job {job_id} in {module}.
slots:
module: path.module
job_id: query.job_id
- text: Show the progress of owner reassignment job {job_id} for {module}.
slots:
module: path.module
job_id: query.job_id
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/mass_change_owner'].post
update:
x-apievangelist-phrasing:
intent: Reassign owner for every record in a custom view
effect: write
questions:
- How do I reassign all records in a saved custom view to a new owner?
- Can I limit a mass owner change to a territory or extra criteria?
instructions:
- text: Change the owner of all {module} records in custom view {cvid} to {owner}.
slots:
module: path.module
cvid: requestBody.cvid
owner: requestBody.owner
- text: Mass reassign {module} records in view {cvid} within territory {territory} to {owner}.
slots:
module: path.module
cvid: requestBody.cvid
owner: requestBody.owner
territory: requestBody.territory
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/mass_delete'].get
update:
x-apievangelist-phrasing:
intent: Check a mass delete job
effect: read
questions:
- How do I find out if a scheduled mass delete has finished?
- Can I see how many records a mass delete job actually removed?
instructions:
- text: Check mass delete job {job_id} in {module}.
slots:
module: path.module
job_id: query.job_id
- text: Show the results of the {module} mass delete job {job_id}.
slots:
module: path.module
job_id: query.job_id
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/mass_delete'].post
update:
x-apievangelist-phrasing:
intent: Mass delete records by IDs or custom view
effect: destructive
questions:
- How do I delete every record in a custom view at once?
- Can I schedule a mass deletion of records filtered by territory?
instructions:
- text: Mass delete all {module} records in custom view {cvid}.
slots:
module: path.module
cvid: requestBody.cvid
- text: Schedule a mass delete of {module} records {ids}.
slots:
module: path.module
ids: requestBody.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/mass_update'].get
update:
x-apievangelist-phrasing:
intent: Check a mass update job
effect: read
questions:
- How do I monitor progress of an asynchronous mass update job?
- Can I see how many records were updated or failed in a mass update?
instructions:
- text: Check mass update job {job_id} for {module}.
slots:
module: path.module
job_id: query.job_id
- text: Show record counts for the {module} mass update job {job_id}.
slots:
module: path.module
job_id: query.job_id
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/mass_update'].post
update:
x-apievangelist-phrasing:
intent: Set one field value across many records
effect: write
questions:
- How do I set the same field value on a large batch of records at once?
- Can I mass update a picklist value on dozens of leads by their IDs?
instructions:
- text: Mass update {module} records {ids} with field values {data}.
slots:
module: path.module
ids: requestBody.ids
data: requestBody.data
- text: Set the same field value on all these {module} records.
slots:
module: path.module
method: generated
generated: '2026-09-26'
- target: $.paths['/actions/watch'].get
update:
x-apievangelist-phrasing:
intent: List active notification channels
effect: read
questions:
- Which webhook notification channels do I currently have active in Zoho CRM?
- Can I list notification channels only for one module?
instructions:
- text: List my active notification channels.
- text: Show notification channels watching the {module} module.
slots:
module: query.module
- text: Get details of notification channel {channel_id}.
slots:
channel_id: query.channel_id
method: generated
generated: '2026-09-26'
- target: $.paths['/actions/watch'].put
update:
x-apievangelist-phrasing:
intent: Replace a notification channel configuration
effect: write
questions:
- How do I overwrite the whole configuration of an existing notification channel?
- Can I replace every setting of a watch subscription in one call rather than patching it?
instructions:
- text: Replace the notification channel configuration with {watch}.
slots:
watch: requestBody.watch
- text: Overwrite all settings of my existing watch subscription.
method: generated
generated: '2026-09-26'
- target: $.paths['/actions/watch'].post
update:
x-apievangelist-phrasing:
intent: Subscribe to record change notifications
effect: write
questions:
- How do I get a webhook call whenever records change in my CRM?
- Can I create several notification channels in a single request?
instructions:
- text: Create notification channels {watch}.
slots:
watch: requestBody.watch
- text: Set up a new watch so my URL is notified when records are created or edited.
method: generated
generated: '2026-09-26'
- target: $.paths['/actions/watch'].delete
update:
x-apievangelist-phrasing:
intent: Disable notification channels
effect: destructive
questions:
- How do I stop receiving CRM change notifications on a channel?
- Can I turn off several notification channels by their IDs at once?
instructions:
- text: Disable notification channels {channel_ids}.
slots:
channel_ids: query.channel_ids
- text: Turn off my CRM change notification channels.
method: generated
generated: '2026-09-26'
- target: $.paths['/actions/watch'].patch
update:
x-apievangelist-phrasing:
intent: Change a notification channel's URL or events
effect: write
questions:
- How do I change only the callback URL or events of a notification channel?
- What is the longest expiry I can set when extending a notification channel?
instructions:
- text: Point notification channel {channel_id} to {notify_url} for events {events}.
slots:
channel_id: requestBody.channel_id
notify_url: requestBody.notify_url
events: requestBody.events
- text: Extend channel {channel_id} expiry to {channel_expiry}.
slots:
channel_id: requestBody.channel_id
channel_expiry: requestBody.channel_expiry
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/portal_invite'].get
update:
x-apievangelist-phrasing:
intent: Check a scheduled portal invitation job
effect: read
questions:
- How do I see whether bulk portal invitations have been sent?
- Can I check the status of a portal invite job by its job ID?
instructions:
- text: Check portal invitation job {job_id} for {module}.
slots:
module: path.module
job_id: query.job_id
- text: Show scheduled portal invitations in {module}.
slots:
module: path.module
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/portal_invite'].post
update:
x-apievangelist-phrasing:
intent: Invite multiple portal users
effect: write
questions:
- How do I invite a batch of contacts to our customer portal?
- Can I send portal invitations for many records in one request?
instructions:
- text: Send portal invitations {portal_invite} for {module}.
slots:
module: path.module
portal_invite: requestBody.portal_invite
- text: Invite these {module} records to the portal in bulk.
slots:
module: path.module
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{recordId}/actions/portal_invite'].post
update:
x-apievangelist-phrasing:
intent: Invite one record to the portal
effect: write
questions:
- How do I invite a single contact to the portal as a specific user type?
- Can I choose the language of a portal invitation for one person?
instructions:
- text: Invite {module} record {recordId} to the portal as user type {user_type_id} with invite type {type}.
slots:
module: path.module
recordId: path.recordId
user_type_id: query.user_type_id
type: query.type
- text: Send a {language} portal invite to {module} record {recordId} as user type {user_type_id}, type {type}.
slots:
module: path.module
recordId: path.recordId
user_type_id: query.user_type_id
type: query.type
language: query.language
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{recordID}/actions/clone'].post
update:
x-apievangelist-phrasing:
intent: Clone a record
effect: write
questions:
- How do I make a copy of an existing deal with a few fields changed?
- Can I duplicate a record without triggering workflows?
instructions:
- text: Clone {module} record {recordID}.
slots:
module: path.module
recordID: path.recordID
- text: Duplicate {module} record {recordID} with changes {data}.
slots:
module: path.module
recordID: path.recordID
data: requestBody.data
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{id}/actions/share_emails'].post
update:
x-apievangelist-phrasing:
intent: Share one record's emails with colleagues
effect: write
questions:
- How do I let teammates see the emails on a single contact?
- Can I share the email history of one deal with other users?
instructions:
- text: Share the emails of {moduleApiName} record {id}.
slots:
moduleApiName: path.moduleApiName
id: path.id
- text: Make the emails on record {id} in {moduleApiName} visible to my colleagues.
slots:
moduleApiName: path.moduleApiName
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{id}/actions/unshare_emails'].post
update:
x-apievangelist-phrasing:
intent: Stop sharing one record's emails
effect: destructive
questions:
- How do I make a single contact's emails private again?
- Can I revoke email sharing on just one record?
instructions:
- text: Unshare the emails of {moduleApiName} record {id}.
slots:
moduleApiName: path.moduleApiName
id: path.id
- text: Stop sharing emails on record {id} in {moduleApiName}.
slots:
moduleApiName: path.moduleApiName
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/actions/share_emails'].post
update:
x-apievangelist-phrasing:
intent: Share emails of many records
effect: write
questions:
- How do I share email history for a list of records in one go?
- Is bulk email sharing possible across several leads by their IDs?
instructions:
- text: Share emails of {moduleApiName} records {ids}.
slots:
moduleApiName: path.moduleApiName
ids: requestBody.ids
- text: Bulk share the emails of these {moduleApiName} records with my team.
slots:
moduleApiName: path.moduleApiName
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/actions/unshare_emails'].post
update:
x-apievangelist-phrasing:
intent: Stop sharing emails of many records
effect: destructive
questions:
- How do I revoke email sharing for a whole batch of records?
- Can I make emails private again on several records at once?
instructions:
- text: Unshare emails of {moduleApiName} records {ids}.
slots:
moduleApiName: path.moduleApiName
ids: requestBody.ids
- text: Bulk revoke email sharing on these {moduleApiName} records.
slots:
moduleApiName: path.moduleApiName
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleName}/{id}/actions/send_mail'].post
update:
x-apievangelist-phrasing:
intent: Send an email to a record
effect: write
questions:
- How do I send an email to a lead straight from the CRM?
- Can I email a contact using one of my saved email templates?
instructions:
- text: Send an email to {moduleName} record {id}.
slots:
moduleName: path.moduleName
id: path.id
- text: Email record {id} in {moduleName} with content {data}.
slots:
moduleName: path.moduleName
id: path.id
data: requestBody.data
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/share'].get
update:
x-apievangelist-phrasing:
intent: See who a record is shared with
effect: read
questions:
- Who has access to a record that was shared manually?
- Can I check which users a specific account is shared with?
instructions:
- text: Show who {moduleApiName} record {recordId} is shared with.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
- text: List sharing for record {recordId} in {moduleApiName} filtered to user {sharedTo}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
sharedTo: query.sharedTo
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/share'].put
update:
x-apievangelist-phrasing:
intent: Change sharing permissions on a record
effect: write
questions:
- How do I change a user's access level on a record I already shared?
- Can I update existing record sharing and notify the shared members?
instructions:
- text: Update sharing on {moduleApiName} record {recordId} to {share}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
share: requestBody.share
- text: Change existing share permissions for record {recordId} in {moduleApiName}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/share'].post
update:
x-apievangelist-phrasing:
intent: Share a record with users
effect: write
questions:
- How do I share a single deal with another user who doesn't own it?
- Can I share a record and have the new users notified?
instructions:
- text: Share {moduleApiName} record {recordId} with {share}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
share: requestBody.share
- text: Give colleagues access to record {recordId} in {moduleApiName} and notify them.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
method: generated
generated: '2026-09-26'
- target: $.paths['/{moduleApiName}/{recordId}/actions/share'].delete
update:
x-apievangelist-phrasing:
intent: Revoke all sharing on a record
effect: destructive
questions:
- How do I stop sharing a record with everyone it was shared with?
- Can I remove all manual shares from one record at once?
instructions:
- text: Revoke all sharing on {moduleApiName} record {recordId}.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
- text: Unshare record {recordId} in {moduleApiName} from everyone.
slots:
moduleApiName: path.moduleApiName
recordId: path.recordId
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/add_tags'].post
update:
x-apievangelist-phrasing:
intent: Add tags to multiple records
effect: write
questions:
- How do I tag a batch of leads in one call?
- Can I overwrite existing tags when tagging several records?
instructions:
- text: Add tags {tags} to {module} records {ids}.
slots:
module: path.module
tags: requestBody.tags
ids: requestBody.ids
- text: Tag these {module} records with {tags}, replacing old tags.
slots:
module: path.module
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/actions/remove_tags'].post
update:
x-apievangelist-phrasing:
intent: Remove tags from multiple records
effect: write
questions:
- How do I strip a tag from many records at once?
- Can I remove several tags from a list of contacts in bulk?
instructions:
- text: Remove tags {tags} from {module} records {ids}.
slots:
module: path.module
tags: requestBody.tags
ids: requestBody.ids
- text: Bulk untag {tags} across these {module} records.
slots:
module: path.module
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{id}/actions/add_tags'].post
update:
x-apievangelist-phrasing:
intent: Add tags to a single record
effect: write
questions:
- How do I tag one specific deal?
- Can I replace a single record's existing tags with new ones?
instructions:
- text: Add tags {tags} to {module} record {id}.
slots:
module: path.module
id: path.id
tags: requestBody.tags
- text: Tag record {id} in {module} with {tags}.
slots:
module: path.module
id: path.id
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{id}/actions/remove_tags'].post
update:
x-apievangelist-phrasing:
intent: Remove tags from a single record
effect: write
questions:
- How do I remove a tag from just one contact?
- Can I untag one specific record without touching others?
instructions:
- text: Remove tags {tags} from {module} record {id}.
slots:
module: path.module
id: path.id
tags: requestBody.tags
- text: Untag record {id} in {module}.
slots:
module: path.module
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/{module}/{record}/actions/assign_territories'].post
update:
x-apievangelist-phrasing:
intent: Assign territories to one record
effect: write
questions:
- How do I put a single account into a sales territory?
- Can I assign territories to one specific record by its ID?
instructions:
- text: Assign territories to {module} record {record}.
slots:
module: path.module
record: path.record
- text: Add record {record} in {module} to territories {data}.
slots:
module: path.module
record: path.record
data: requestBody.data
method: generated
generated: '2026-09-26'
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-crm/refs/heads/main/overlays/zoho-crm-actions-api-phrasing-overlay.yaml