
Welcome back to another week of Kaizen!
Last week, we discussed how Zylker Cloud Services used the Workflow APIs to discover and audit all the automations in their CRM, listing every workflow, checking triggers, and understanding their automation limits. This week, we take the next step: understanding what configurations are valid before creating or updating workflows via APIs.
Step 4: Workflow Rule Configurations API
When you work in the CRM UI, creating workflows feels straightforward. The interface shows only valid triggers and actions. Try adding an unsupported action, and it simply will not appear. This is because the UI enforces hundreds of rules behind the scenes.
With APIs, these validations must be handled manually. That is where the Workflow Rule Configurations API comes in. It gives all the valid triggers and actions for a given module, preventing errors before they happen.
Why this API matters
Consider two examples:
You want to create a workflow for the Products module based on a Scoring Rule update. The UI hides this option because scoring rules are not supported for Products.
You try to add a Field Update action for a Record Delete trigger. This is invalid, as the record no longer exists. The UI prevents it, but via API, you would get an error if you try to create or update the workflow with this configuration.
The Configuration API removes this guesswork, allowing you to fetch and respect valid triggers and actions.
Sample Request:
GET {api-domain}/crm/v8/workflow_configurations?module=Deals
Sample Response:
{ "workflow_configurations": { "related_triggers_details": [ { "api_name": "Notes", // The API name of the related module that can trigger workflows "module": { // Details about the related module "singular_label": "Note", "plural_label": "Notes", "api_name": "Notes", "name": "Notes", "id": "4876876000000002197" }, "name": "Notes", // Module name "triggers": [ // Available triggers for this related module { "api_name": "create", "deprecated": false, "name": "Create", "scheduled_actions_supported": true, "actions": [ // List of supported actions for this trigger "add_tags", "remove_tags", "email_notifications", "tasks", "create_record", "create_connected_record", "add_meeting", "webhooks", "functions", "flow" ] }, // ... other triggers (create_or_edit, edit, delete) omitted for brevity ] } ], "triggers": [ // Primary triggers for the Deals module itself { "api_name": "score_increase", "deprecated": false, "name": "ScoreIncrease", "scheduled_actions_supported": false, // Indicates whether scheduled actions are allowed for this trigger "actions": [ // Only these instant actions are supported "field_updates", "assign_owner", "add_tags", "remove_tags", "email_notifications", "tasks", "webhooks", "functions", "circuits", "flow" ] }, // ... other triggers omitted for brevity ... ], "actions": [ // Details about available workflow actions { "is_clickable": true, "associate_action": false, "limit_per_action": null, "api_name": "schedule_call", "supported_in_scheduled_action": true, "name": "ScheduleCall", "limit": 1 // Maximum instances per workflow }, { "is_clickable": true, "associate_action": true, "limit_per_action": null, "api_name": "tasks", "supported_in_scheduled_action": true, "name": "Task", "limit": 5 }, // ... other actions omitted for brevity ... ] } } |
Interpreting and using the Workflow Configuration API
The configuration response might look complex, but it gives us all the information we need about configuring Workflow Rules in Zoho CRM, for the specific module.
4.1 "What can trigger my Workflow?"
The triggers array shows all the supported triggers for that specific module.
"triggers": [ { "api_name": "create", "deprecated": false, "name": "Create", "scheduled_actions_supported": true, "actions": [ "field_updates", "assign_owner", "add_tags", "remove_tags", "email_notifications", "tasks", "create_record", "create_connected_record", "add_meeting", "webhooks", "functions", "circuits", "flow" ] }, . . // ... other triggers omitted for brevity ... { "api_name": "score_increase", "deprecated": false, "name": "ScoreIncrease", "scheduled_actions_supported": false, "actions": [ "field_updates", "assign_owner", "add_tags", "remove_tags", "email_notifications", "tasks", "webhooks", "functions", "circuits", "flow" ] } ] |
The response lists all available triggers for the module. For each trigger type, you get:
Trigger conditions: When the workflow will be triggered (on create, edit, score change, etc.)
Action compatibility: Which actions can be used with each trigger type
Scheduled actions support: Whether scheduled actions are supported for that trigger or not.
For instance, the score_increase trigger triggers the workflow when the score of a record is increased. The scheduled_actions_supported key is false for this trigger, which means that this specific trigger type doesn't support scheduled actions. This directly translates to API behaviour: attempting to configure a Workflow Rule via API with a scheduled action for the score_increase trigger will result in an error.
This API constraint is visibly enforced in the CRM interface. When configuring a score-based trigger in the UI:

The UI proactively prevents invalid configurations by hiding unsupported options. This is the pain point that Workflow Rules Configuration API solves when you work on your workflows via APIs.
4. 2. "What can my Workflow actually do?" - Understanding Actions
The actions array defines the execution capabilities of your workflows. For each action type, you get important information like:
Limits per action instance: Maximum number of items that can be processed within a single action instance
Instance limits: How many times this specific action can be added to a condition in the Workflow rule.
Scheduled action support: Whether the action can be added as a scheduled action.
For example, in the add_tags action:
{ "is_clickable": true, "associate_action": false, "limit_per_action": 10, // Maximum 10 tags per Add Tags action "api_name": "add_tags", "supported_in_scheduled_action": true, "name": "AddTags", "limit": 1 // Maximum one Add Tags action per workflow } |
From this data, it is clear that within a single Add Tags action, you can select up to 10 specific tags to add. Similarly, you can only include one Add Tags action instance in the entire workflow rule. Also, this action cannot be used as a scheduled action.
This has direct implications for API users:
Attempting to configure a workflow that adds more than 10 tags in one action will result in an error
Trying to add two separate Add Tags actions to the same workflow will fail
Adding a Add Tags action under scheduled actions section will also result in an error.
In the UI, these constraints are proactively taken care of. As seen in the GIF, if you add fewer than 10 tags, clicking Add Tags again only lets you edit the existing action. Also it lets you add only up to 10 tags in an action. And if you have already added an action with 10 tags, the Add Tags option will no longer be available. Either way, the system prevents any possibility of adding a second Add Tags action, regardless of tag count.
This UI experience is what the Workflow Rules Configuration API replicates for developers. By checking these limits before making API calls, you can build workflows using APIs with the same confidence and error-free experience that UI users have.
4.3. “What can trigger my Workflow from a related module?” – Understanding related triggers
The related_triggers_details array shows how changes in related records can trigger workflows in your primary module. For example, in the Deals module, for the Notes related trigger:
"related_triggers_details": [ { "api_name": "Notes", // The API name of the related module "module": { // Detailed information about the related module "singular_label": "Note", "plural_label": "Notes", "api_name": "Notes", "name": "Notes", "id": "4876876000000002197" }, "name": "Notes", // Module name "triggers": [ // Available triggers for this related module { "api_name": "create", // Trigger when related records are created "deprecated": false, "name": "Create", "scheduled_actions_supported": true, "actions": [ // Supported workflow actions for this trigger "add_tags", "remove_tags", "email_notifications", "tasks", "create_record", "create_connected_record", "add_meeting", "webhooks", "functions", "flow" ] }, // ... other triggers (create_or_edit, edit, delete) omitted for brevity ] } ] |
For each related module, you get:
Module information: Details about the related module that can trigger workflows.
Available triggers: The actions on the related record (create, edit, delete, etc) that can trigger the workflow.
Supported actions: For each trigger, the actions that are supported for that specific trigger.
For instance, the Notes related trigger allows you to create workflows that execute when notes are added to deals. The configuration shows that when a note is created, your workflow can perform actions like sending email notifications, creating tasks, triggering webhooks, and more.
If you try to include an unsupported trigger or unsupported action, the API call will fail. For example, adding a field_updates action for a Notes create trigger . The configuration API response clearly shows that field_updates is not among the supported actions for Notes-related triggers.
The API also gives us important differences between trigger-action configurations. For example, while field_updates action is supported for the create trigger for the main module (Deals), the same action is not supported for the related module (Notes) create trigger. These distinctions would otherwise only be discovered through API errors.
In the UI, this limitation is enforced. When setting up a workflow triggered by Notes, the "Field Updates" action does not appear in the available actions list.
By checking the related_triggers_details section before making API calls, you can discover exactly which actions are supported for each related module trigger, thus avoiding configuration errors while creating or updating Workflow rules.
Conclusion
The Workflow Configuration API transforms how we approach automation development through APIs. Instead of discovering constraints through failed API calls, we can now design workflows with the right configuration, without any trial-and-error methods. It gives us complete visibility into all valid trigger-action combinations before a single line of code is written, enough information to build automations triggered by related records, and limit awareness to respect action constraints before they become API errors.
For Zylker, this means we can now confidently proceed with updating the old Workflow rules and creating new ones. In our next post, we will put this knowledge into action.
We hope that you found this post useful. If you have any questions or feedback, let us know in the comments below, or write to us at support@zohocrm.com. We would love to hear from you!
Recent Topics
Possible to generate/download Quote PDF using REST API?
See title. Is there any way after a quote has been created to export to a PDF using a specified template and then download it? Seems like something that should be doable. Is this not supported in the API v2.0?
Free Webinar - AI for email: Helpful or Hype?
Hello, Zoho Mail community! 👋 We're kicking things off with a webinar you won't want to miss—and yes, we're going there: Is AI in email actually useful, or is it all hype? In this session, two of our experts will have an open, no-fluff conversation about
Balancing access, security, and productivity with Email Policy
An organization typically includes multiple user groups, such as leadership, sales, and support, each with different email usage patterns and security needs. Administrators must balance flexibility and control, thereby ensuring email usage aligns with
Is it possible to update multiple work items at once?
Hi, Is it possible to update the statuses/release tags of multiple work items at once? I came across this thread that says it's not possible at the moment, but it was related to the Sprints mobile app. Does this feature not exist in the website as well?
See Every IM Conversation as It Happens
Instant messaging moves fast. Customers expect quick replies and smooth conversations across WhatsApp, Instagram, Facebook, and live chat. But without real-time visibility, small issues become big problems. A session stays open longer than expected. A
Release Notes | January 2026
We have rolled out a set of powerful new enhancements across Zoho Vertical Studio that bring several long-awaited capabilities to your applications. These updates focus on deeper customization, smarter automation, better reporting, and improved usability
Product Request: Send email to Secondary email
Guys, we should be able to send the campaign to the secondary email too. Is this on the plans for Zoho Campaign? It looks like I can map the secondary email from the CRM to the Campaigs, but can not send the message.
Franchise
Is there a solution of how to organize global franchise organisations?
Recording overpayment?
So a customer just overpaid me and how do I record this? I can't enter an amount that is higher than the invoice amount. Eg. Invoice is $195 and he sent $200. He's a reccuring customer so is there a way to record so that he has a $5 advance for future invoice?
Holidays
Hi; For defining Holidays, you need to add logic to handle the year as well as the month & day. We need to be able to enter Holidays for the next year. I need to add a holiday for January 2, 2017, but I can't until January 1st, which is a Sunday and we
Composite Product (kit) - Dynamic Pricing
I am setting up Composite Products for item kits that I sell. I also sell the items from the kit individually. Problem is when pricing changes on an individual part, the Composite Product price does not change meaning when the cost of item # 2 in the
Urgent: Slow Loading Issue on Zoho Commerce Website
Dear Zoho Support Team, I am experiencing slow loading times on my Zoho Commerce website, which is affecting its performance and user experience. The issue persists across different devices and networks. Could you please investigate this matter and provide
Need help with importing expenses
I'm using the template downloaded from the application. When I try to import my expenses, I get the message: Duplicate entry in the Expense Date column. Ensure it contains unique values. None of the rows will import. There are duplicate dates, but they
Search not working!
I have items in my notebook tagged but when I search for a tag nothing comes up! Any fix for this?
ERROR CODE :550 - 550 5.1.1 Invalid email recipients
This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. mustafa.ashraf@techlink-eg.net, ERROR CODE :550 - 550 5.1.1 Invalid email recipients
What's New in Zoho POS - February 2026
Hello everyone, Welcome to Zoho POS’s monthly updates, where we share our latest feature updates, enhancements, events, and more. Let’s take a look at how February went. Purchase and sell items on different units We have introduced a unit conversion functionality
Can i integrate bigin with google voice?
I make all my calling through google voice to seprate my personal line from business. I want to log my calls with customers automatically but i domt see anywhere where i can do that. Any help? Im pretty sure i wont be able to. Sad
POP/SMTP access authentication failed
I am unable to log setup outlook for my zoho mail account. I am using these settings poppro.zoho.com port 995 SSL smtp.zoho.com port 587(tls)/465(ssl) username/password works on mail.zoho.com but not with POP access. Can you help?
Invoice template with sales tax totals
Hi everyone, I am trying to edit my invoice template so that only the total sales tax collected for my tax group shows up. Right now, under by sub total, each individual tax shows up and that takes up a lot of unnessary space, so I just want the one
Our Review Of Zoho CRM after 60 Days
The purpose of this is to just share with Zoho why I love their product, but ultimately why I could not choose Zoho CRM for our next CRM. About two months ago we begun a CRM exploration process for our financial planning firm, based in Texas. We already
Error AS101 when adding new email alias
Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
This domain is not allowed to add. Please contact support-as@zohocorp.com for further details
I am trying to setup the free version of Zoho Mail. When I tried to add my domain, theselfreunion.com I got the error message that is the subject of this Topic. I've read your other community forum topics, and this is NOT a free domain. So what is the
Allow Admin to Configure Report > More Options Button
As an Admin, I want to configure the options of the Report > More Options button to improve UX and reduce Developer overhead. See attached screenshot. Original question posted here: https://help.zoho.com/portal/en/community/topic/modify-standard-rep
Generate a link for Zoho Sign we can copy and use in a separate email
Please consider adding functionality that would all a user to copy a reminder link so that we can include it in a personalized email instead of sending a Zoho reminder. Or, allow us to customize the reminder email. Use Case: We have clients we need to
You cannot send this campaign as there is no contact in the selected mailing list.
We have synced contact lists and sent campaigns just fine prior to today. Now no matter what list I upload when I go to send the campaign it gives an error "You cannot send this campaign as there is no contact in the selected mailing list." And now it
Pivot Report Formula - using a today() variable
Is it possible for me to use a value of today() in a formula on a pivot table? I'm trying to identify where the end date of a project is greater than the current date if("10. Projects (Zoho Projects).End Date" > today(), 'Yes', 'No') I get the error that
Cannot connect IMAP to outlook
Hello I have followed the instructions to connect my zoho account to Outlook IMAP but get this message: Session Id: bba118fb-151c-824f-9512-3ad1e91b109d Timestamp: 1708976566964 Error code: INVALIDCREDENTIALS INTERACTIONREQUIRED I'm using the exact configeration
Department Overview by Modified Time
We are trying to create visuals to show the work our agents do in Zoho Desk. Using Zoho Analytics how can we create a Department Overview per modified time and not ticket created time? In order for us to get an accurate view of the work our agents are
Enhance Sign CRM integration
Hello all, I'm working on a custom Deluge script to enhance the integration between Zoho CRM and Sign by using a writer merge template for additional flexibility. I want to replicate the post-sign document integration that exists between CRM and Sign
Zoho Workdrive download was block by security software
Hi Team, Recently workdrive download was blocked by huorong security. Could you please advise how to put zoho workdrive as white list? every time we put "*.zohoexternal.com" or "workdrive.zohoexternal.com", the warning msg will still pop in next dow
Choosing a portal option and the "Unified customer portal"?
I am trialling Zoho to replace various existing systems, one of which is a customer portal. Our portal allows clients to add and edit bookings, complete forms, manage their subscriptions and edit some CRM info. I am trying to understand how I might best
General feedback
I think Zoho is at the moment (potentially) the best, or perhaps the only, real online solution, for business, and not just business. Surely the only one that has all the features that I need (and I've probably tried everything, at least all that has a cost-free option). It has still got lots of bugs and imperfect features, so I do hope it keeps developing and becomes a really professional platform. Lots of people (including me) want to use such one platform for all scheduling/mail/note-taking...
How to add SSL to Short URL custom domain?
Hi, I've added a custom domain the the URL Shortener Domains. It's creating the short URL fine, but when clicking through, firstly I get an SSL warning, then a 400 Bad Request warning.
Single Portal for Multiple Apps
Hello, I'm just getting started with Zoho and I'm very overwhelmed. I am currently using the free trial of Zoho One, but if I can figure it out, I intend to upgrade to the paid version. Zoho One, of course, gives me access to an entire suite of services/applications. One of the things I'd like to do is have a single place for clients (customers?) to log in and view current projects, invoices, contact information, etc. A single login for my clients. A single portal. I've come across documentation
Antispam validation failed for your domain in Accounts
I tried adding a domain to zeptomail.zoho.com, but the “add domain” operation failed. The front‑end error reads: “Domain could not be added. Please contact support@zeptomail.com.” The back‑end API returned: ``` { "error": { "code": "TM_3601", "details":
CodeX Scripts for Enforcing Custom Project Logic
Every organization has a defined way of executing projects. There are clear expectations around how tasks should move, when projects should progress, and which actions require validation. When these rules are consistently followed, projects remain structured
Cancelled appointments still block out timeslot
I haven't had to test this before, but I've just found a problem. I had an appointment in a certain timeslot, and that appointment was cancelled. However, Bookings won't let another appointment be booked in that slot - it makes that time unavailable until
Preventing Group Emails From Being Sent to Group Member Personal Mail
We have a group setup for a public facing email address. We have streams turned on for this group. Right now when an email is sent to this group email it hits the group stream and also sends a copy of the email to all group members. We'd like to disable
Unusual activity detected from this IP. Please try again after some time.
Hello Zoho admin and IT team We are a registered website in Eloctronic services and we been trying to add our users to the zoho system but this issue faced us ,, hope you unlocked us please.
¿Puedo migrar mi sitio desde WordPress a Zoho? ¿Zoho admite herramientas con código personalizado?
¡Hola comunidad! Estoy evaluando la posibilidad de migrar mi sitio web https://calculadoradenotas.cl/ desde WordPress a una solución Zoho, y tengo algunas dudas técnicas que espero puedan aclararme. Mi sitio no es solo informativo: es una herramienta
Next Page