
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
Placeholder format in Number field does not reflect Max Digits configuration
When the Max Digits (Maximum digits of number) property is set to a smaller value (for example, 2 digits), the placeholder in the input field still displays a 7-digit format (#######). The same behavior can also be observed in Decimal and Currency field
How does SKU work when selling products in parts in Zoho Inventory
Hello everyone, Zoho Inventory does not understand the physical cutting of the piece.. It only tracks quantities of the unit (like feet ). So when you sell part of an item, the system simply reduces quantity for that SKU. Assume that i have a 50 ft long
Ability to Attach Record-Specific Files Automatically in Workflow Email Templates
Currently in Zoho CRM, email templates allow attachments to be added, but these attachments are static and remain the same for every recipient. There is no straightforward option to automatically attach a file that is stored within the specific CRM record
CRM Cadences - working timesThe Friday afternoon? The next Monday morning? Not at all?
I think I’m writing saying that cadence emails are only sent during the organisations set working hours in CRM. So if a particular email is set to send for example in three days and that lands on a Sunday (when working hours are not operational) when
CRM Cadences - working times
I think I’m right in saying that cadence emails are only sent during the organisations set working hours in CRM. So if a particular email is set to send for example in three days and that lands on a Sunday (when working hours are not operational) when
Push Notification for New Bookings in Zoho Bookings App
when a someone schedules an appointment through the booking page, is there any option to receive a push notification in the mobile app?
Intergrating multi location Square account with Zoho Books
Hi, I have one Square account but has multiple locations. I would like to integrate that account and show aggregated sales in zoho books. How can I do that? thanks.
Add the same FROM email to multiple department
Hi, We have several agents who work with multiple departments and we'd like to be able to select their names on the FROM field (sender), but apparently it's not possible to add a FROM address to multiple departments. Is there any way around this? Thanks.
Zoho Desk View Open Tickets and Open Shared Tickets
Hi, I would like to create a custom view so that an agent can view all the open tickets he has access to, including the shared tickets created by a different department. Currently my team has to swich between two views (Open Tickets and Shared Open Tickets).
Clone Banking Transaction
Why is there no option to CLONE a Transaction in the Banking module?? I often clone Expenses (for similar expense transactions each month) so I would also like to clone Income transactions. But there is no option in Banking to clone an existing Income
Zoho Expense - Bi-Weekly Report Automation
Hi Zoho Expense Team, My feature request is to please include an option to automate creation of reports bi-weekly (every 2 weeks)
Application Architecture in Zoho Creator: Why You Should Think About It from the Start
Many companies begin using Zoho Creator by building simple forms to automate internal processes. This is natural — the platform is extremely accessible and allows applications to be built very quickly. The challenge begins to appear when the application
Arquitetura de Aplicações no Zoho Creator: Por que pensar nisso desde o início
Muitas empresas começam a utilizar o Zoho Creator criando formulários simples para automatizar processos internos. Isso é natural — a plataforma é extremamente acessível e permite construir aplicações rapidamente. O problema começa a aparecer quando a
Dark Mode - Font Colors Don't Work
When editing a document in Dark Mode and selecting font colors, they don't show up on screen. Viewing/editing the same document in Light Mode shows them just fine.
How to Customize & Reorder Spaces in Zoho One 25 (Spaces UI) — Admin Tips Not in the Docs
Hey Zoho Community, After digging around in the new Spaces UI, I found a couple of admin features that aren't well documented yet but are really useful. Sharing here in case others are looking for the same things. 🔁 How to Change the Default Space Users
System Components menu not available for Tablet to select language
I have attached a screenshot of my desktop, mobile, and tablet menu builder options. I am using 2 languages in my application. Language Selection is an option under the System Components part of the menu, but only for my desktop and phone(mobile). My
Approvals in Zoho Creator
Hi, This is Surya, in one of my creator application I have a form called job posting, and I created an approval process for that form. When a user submits that form the record directly adding to that form's report, even it is in the review for approval.
How Zoho Desk contributes to the art of savings
Remember the first time your grandmother gave you cash for a birthday or New Year's gift, Christmas gift, or any special day? You probably tucked that money safely into a piggy bank, waiting for the day you could buy something precious or something you
Estimate PDF Templates - logo too large
Hello, I cloned a standard estimate template, but my logo is showing up much larger than intended. This doesn’t happen with the standard invoice template, where the logo displays correctly. How can I adjust the logo size in the estimate template? Thank
Select CRM Custom Module in Zoho Creator
I have a custom module added in Zoho CRM that I would like to link in Zoho creator. When I add the Zoho CRM field it does not show the new module. Is this possible? Do i need to change something in CRM to make it accesible in Creator?
Invoice emails not sending but reminders are
I am a new user. I have been creating some dummy invoices before I go live and have struck a block. Emails for the invoice are not being recieved by the recipient, however, when I send a reminder for the same invoice the email is sent. NOTE: I have checked
Deleted account recovery
I ended up accidentally deleting our Zoho invoice account while trying to work something out. Emailed support for recovery and restoration of the deleted account, if possible, but they responded by saying they can't find an account associated with that
Devis et factures multipage coupées
Bonjour, je suis sur Zoho invoice et je rencontre un problème sur mes devis et factures lorsqu'ils dépassent 1 page. je me retrouve souvent avec des lignes coupées ou le sous total page 1 et le total page 2. j'aimerai savoir s'il existe une possibilité
Custom Related List Inside Zoho Books
Hello, We can create the Related list inside the zoho books by the deluge code, I am sharing the reference code Please have a look may be it will help you. //..........Get Org Details organizationID = organization.get("organization_id"); Recordid = cm_g_a_data.get("module_record_id");
Zoho Meeting - Feature Request - Introduce an option to use local date and time formating
Hi Zoho Meeting Team, My feature request is to add an option for dates to be displayed in the users local format. This is common practice across Zoho applications and particularly relevant to an application like Zoho Meeting which revolves around date
Cannot give public access to Html Snippet in Zoho Creator Page
Hi, I created a form in Zoho Creator and published it. The permalink works but I want to override the css of the form. (style based URL parameters is not good enough) So I created a page and added an Html snippet. I can now override the css, which is
How can Outlook 365 link back into Zoho Projects so meetings and events in Outlook calendar show in Zoho?
We use Outlook 365 for our emails and diaries and have integrated Zoho Projects with Office 365. One challenge we face is getting Zoho Projects to recognise when we have meetings and events in Outlook and not allow project managers to assign tasks over that period. Is there a way to resolve this? Thanks
On Edit Validation Blueprint
Hello, I have a notes field and a signature field. When the Approve button is clicked, the Signature field will appear and must be filled in. When the Reject button is clicked, the Notes field will appear and must be filled in. Question: Blueprint will
Zoho Invoice en Navarra (Spain)
Hola, ¿Alguien usa Zoho Invoice en la Comunidad Foral de Navarra? En Navarra tenemos un sistema tributario diferente y no aplica Verifactu (la Hacienda Foral de Navarra ha anunciado su alternativa, NaTicket, pero no ha informado cuándo entrará en vigor).
Emails from Zoho are getting blocked due to Zoho IP address being blacklisted
This is the info I got from my hosting provider – please address this issue immediately. I don’t expect this from such a big household name. Every single invoice I have sernt it not being received by my clients, all being blocked. All of a sudden. As
agentid : Where to find?
I've been looking around for this agenId to check for the total ticket assigned on a specific agent url :"https://desk.zoho.com/api/v1/ticketsCountByFieldValues?departmentId=351081000000155331&agentId=35108xxxxxx132009&field=statusType,status" type :GET
Zoho DataPrep integration with OpenAI (beta)
We are thrilled to announce Zoho DataPrep's integration with OpenAI. The public beta roll-out opens up three features. Users who configure their OpenAI Organizational ID and ChatGPT API key (Find out how) will be able access the features. The features
AI Bot and Advanced Automation for WhatsApp
Most small businesses "live" on WhatsApp, and while Bigin’s current integration is helpful, users need more automation to keep up with volume. We are requesting features based on our customer Feedbacks AI Bot: For auto-replying to FAQs. Keyword Triggers:
Setting total budget hours for a specific project
Hi there, I work on a lot of projects that have fixed budget hours. Is there a way to enter the total budgeted hours so i can track progress and identify when hours have been exceeded. I see in the projects dashboard there is a greyed out text saying
Clone entire dashboards
If users want to customize a dashboard that is used by other team members, they can't clone it in order to customize the copy. Instead they have to create the same dashboard again manually from scratch. Suggestion: Let users copy the entire dashboard
Introducing Formula Fields for performing dynamic calculations
Greetings, With the Formula Field, you can generate numerical calculations using provided functions and available fields, enabling you to derive dynamic data. You can utilize mathematical formulas to populate results based on the provided inputs. This
Getting started with Zoho PDF Editor
Hello users, If you are new to Zoho PDF Editor or aren't sure of its full potential, then this article is for you. Zoho PDF Editor is a free online PDF editing tool, that allows you to upload and edit PDFs, insert text and images, add fillable and e-signature
Zoho Projects - Cloning a task does not trigger task workflow when created
Hello! I have a Project where my team uses a set of tasks from a tasklist as templates, so we could simply clone it and drag it to another list in kanban view to avoid creating a new one from scratch. The process works well, but after cloning it the new
Purchase Orders not in sequence
I am unable to sort by Purchase Order Numbers. I can only sort by date; however, the PO numbers aren't in the order they were entered. This was not the case prior to today.
Internal Fillable Contract with Zoho Writer (Before Sending to Client)
Hi everyone, I’m trying to automate the following process in Zoho CRM and would appreciate some guidance. Process: When a Deal moves to a specific stage, CRM triggers an automation. CRM sends a contract template to an internal team member so they can
Next Page