What Zoho Flow Is
Zapier-like integration builder hosted on Zoho cloud, with 800+ app integrations as of the 2026 catalog. Triggers from one app, actions in others, with conditional branches, formatters, delays, and custom Deluge logic between them. Flows execute in serverless containers — no infrastructure to manage. Each org gets a flow execution quota tied to plan tier (Standard 1000/month, Professional 5000, Premium 25000).
Triggers
App events (record created, updated, deleted), webhook received (custom trigger URL with signature verification), and schedule-based (cron-style, minimum every 15 min). The webhook trigger is the most flexible — point any system that can POST JSON to the trigger URL and Flow handles authentication, parsing, and routing. Polling-based triggers (older app integrations) have a 5-minute minimum and consume more execution quota than push-based webhooks.
Actions
Conditional branches (If/Else with up to 5 nested levels), formatters (date, text, number, list), delays (wait N minutes/hours, or until a specific time), custom API calls (the Custom Function action runs Deluge), and notifications (email, Cliq, Slack). Chain them into multi-step flows. The Loop action iterates over a list — useful when the trigger payload contains an array (e.g. a CRM deal with multiple line items).
// Custom function step in a Flow
contact_email = input.email;
score = input.engagement_score;
if (score >= 80) {
update_data = {"Lead_Status": "Hot", "Owner": "[email protected]"};
} else {
update_data = {"Lead_Status": "Nurture"};
}
result = invokeurl
[
url: "https://www.zohoapis.com/crm/v3/Leads/search?email=" + contact_email
type: GET
headers: {"Authorization": "Zoho-oauthtoken " + token}
];
return result;
Error Handling
Flows pause on error by default. Configure retry policies (1, 3, 5 retries with exponential backoff) and failure paths (route to a “review queue” channel or create an error ticket). Set notification on pause so a flow doesn’t silently stall for days — the most common production failure is a flow that errored on a malformed input three weeks ago and nobody noticed. The Flow History view retains 90 days of executions on Standard, 180 on Professional, 365 on Premium.
When to Use Flow vs Workflow Rules vs Custom Functions
Flow for cross-app automation that crosses tenant boundaries (Zoho ↔ external SaaS). Workflow Rules for in-app declarative automation that doesn’t need code. Custom Functions for in-app logic that requires Deluge. The decision: if the trigger or any action is in another app, use Flow. If the entire automation is inside one Zoho app and fits a declarative model, use a Workflow Rule. If it needs branching logic and stays in one app, use a Custom Function.
Common Failure Modes
Race conditions: two flows updating the same record fire concurrently and one overwrites the other. Use the “skip if recently modified” pattern or add Deluge-level locking. Token expiry on external apps (Mailchimp, QuickBooks) silently breaks flows — re-auth quarterly. Polling triggers consume execution quota even when no events occur; switch to webhook triggers wherever the source app supports them.
Cost Considerations
Execution count is the main cost driver. A flow that fires on every CRM record update can hit 25k executions/month easily on a busy org — narrow the trigger filter or add a Deluge-level dedup check. Standalone Flow plans run from Standard ($10/mo, 1000 flows) to Premium ($30/mo, 25000 flows). Zoho One includes a generous Flow allocation that covers most internal-tool needs.
What to do this week
Audit your flows for trigger scope (narrow any that fire on every record update), enable failure notifications on every active flow, and migrate any polling-based trigger to a webhook where the source app supports it.