Kaizen #201 - Answering Your Questions | Webhooks, Functions, and Schedules

Kaizen #201 - Answering Your Questions | Webhooks, Functions, and Schedules


Hello everyone!
Welcome back to another post in the Kaizen series!

We are incredibly grateful for all the feedback we received, and as promised, we will answer all the queries in this Kaizen series.

Last week, in our 200th post, we addressed one of the requests for a detailed guide on Token generation using the Python SDK.

This week, as requested by a user, we will do a detailed comparison between Webhooks, Functions, and Schedules.

Let's dive right in!

In modern CRM automation and business workflows, three key mechanisms stand out for executing custom logic and integrations—Webhooks, Functions, and Schedules. While these might seem similar at first glance, each serves distinct purposes and offers unique advantages depending on your use case.

Understanding when and how to use each approach is crucial for building efficient, scalable, and maintainable automation systems. This Kaizen post will help you navigate these choices with practical use cases and clear guidelines.
Let's see what each of these features means.


1. Webhooks

Event-driven external communication

Webhooks are HTTP callbacks that automatically trigger when specific events occur in your CRM system. Think of them as "reverse APIs" where instead of your app polling for changes, the system pushes notifications to your external endpoints.

Key Characteristics

  • Trigger: Can be triggered by workflows, approvals, and real-time event-based(record creation, updates, deletions).
  • Execution: External to the CRM platform. Send HTTP POST/GET requests to an external URL.
  • Response time: Near-instantaneous.
  • Reliability: Dependent on external endpoint's availability.

When should you use Webhooks?

  • Send simple, real-time notifications to external systems.
  • These are lightweight notifications where you just want to inform external systems that something happened in your CRM, but do not expect a response.
  • Trigger immediate actions in the external app.
  • When data changes happen in your CRM, you can use webhooks to inform the external system of the same and trigger specific actions in the external system.
  • Live notification and alerts.
  • Webhooks can send live notifications and alerts when an important event occurs in CRM. You can use multiple channels like SMS, emails, push notifications, etc., to notify of the event.

Examples

  • Notifying an external system when a lead is converted.
  • Triggering payment processing when invoice status changes.
  • Sending SMS immediately when a high-priority lead is created.

2. Functions

Server-side custom logic

Functions in Zoho CRM are custom code snippets written in Deluge scripting language to execute your custom business logic.

Key Characteristics

  • Trigger: Can be triggered by various events or called directly through APIs, workflows, or button actions.
  • Execution: Internal to the CRM platform as they run on Zoho CRM servers.
  • Response time: Fast.
  • Reliability: High, with in-built error handling mechanisms.
  • Support full Deluge scripting.
  • Can call external APIs and handle responses.

When should you use Functions?

  • Complex business logic that requires access to CRM data
    • Involves complex decision-making processes to compare and analyze data from multiple modules of your CRM or other service. Functions work great here as they can access data via APIs easily.
  • Data validation and transformation
    • You can check for data correctness to align with your business rules and convert them to the right format to use them as necessary at various places. Functions are ideal as they can validate against existing CRM data and apply complex transformation logic in real-time.
  • Custom workflow actions
    • You can orchestrate functions to perform multi-step processes across modules that standard workflow actions cannot perform.

Examples

  • Validating data against business rules before saving.
  • Implement approval workflows with multiple stakeholders.
  • Triggering complex multi-module workflows like converting a lead to a contact and account, triggering workflow rules for the new account, adding a follow-up task to the converted lead, and adding it to marketing campaigns.

3. Schedules

Time-Based Automation

Schedules in Zoho CRM are functions that are executed automatically at specific intervals of time. They are perfect for batch processing, data synchronization, regular clean up, and sending routine reminders.

Key Characteristics

  • Trigger: Time-based schedules like a cron job.
  • Execution: Internal to the CRM platform.
  • Response time: Depends on the schedule frequency.
  • Reliability: High, with automatic retry mechanisms.
  • Support full Deluge scripting.
  • Supports OAuth-based API calls and data fetching from internal or external systems.

When should you use Schedules?

  • Batch data processing
    • Instead of processing records one at a time as they are created or updated, you can batch them all in groups to be processed later, say after business hours. This is not only efficient but also does not impact system performance during peak hours.
  • Synchronize data
    • You can run a schedule to compare data between your CRM and external system and regularly update them to have up-to-date information on both systems.
  • Periodic reporting and analytics of your data
    • Create reports, update dashboards, and analytics like weekly sales performance, at set intervals to ensure your teams and stakeholders have the right data.
  • Maintenance and housekeeping
    • These are the usual behind-the-scenes tasks like archiving old data, deleting temporary files, etc., once a week to keep your CRM system running smoothly.

Examples

  • Daily data backup and archival
  • Weekly sales performance reports
  • Monthly lead scoring recalculation
  • Quarterly data cleanup and deduplication
  • Sync product data in CRM with an external ERP system every eight hours.
Here is a comparison table to help you decide which feature to use.

Feature
Webhooks
Functions
Schedules
Trigger
On CRM events(real-time)
On CRM events/manually
On a schedule(time-based)
Custom Logic
No(send data only)
Yes(custom script in Deluge)
Yes(deluge, time-driven logic)
External Calls
Limited(webhook only)
Extensive(APIs, CRM modules)
Extensive APIs, CRM modules)
Data Manipulation
No
Yes
Yes
Best For
Simple push notifications
Complex workflow automation
Recurring tasks
Examples
Notifying ERP, sending SMS
Auto-updating field, triggering emails
Daily follow-up, weekly performance report

Best Practices

  • Keep it simple. When you need a quick, no-frills integration, go with webhooks first.
  • Put your smarts in one place. Use functions whenever you need custom business rules or to tie together different parts of your CRM.
  • Schedule wisely. If you have regular batch jobs or routine tasks, set them to run on a schedule, ideally during off-peak hours so your team's daily operations are not slowed down by behind-the-scenes processes.
  • Watch and learn. Build in error logging and notifications for both functions and scheduled jobs, so you can catch and fix problems before they snowball.
  • Stay efficient. Remember that functions and scheduled scripts count against your API and execution limits. So, write lean code and keep an eye on your usage.

Begin by pinpointing your unique needs, weigh the pros and cons of each option, and be open to mixing methods when necessary. True automation success depends on solid error handling, ongoing monitoring, and regular upkeep.
We hope you found this post useful. Let us know if you have questions in the comments or drop us an email at support@zohocrm.com.

Cheers!

-----------------------------------------------------------------------------------------------------------------------------------

IdeaPrevious Kaizen post - Token generation in Python SDK
    • Sticky Posts

    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #226: Using ZRC in Client Script

      Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
    • Kaizen #222 - Client Script Support for Notes Related List

      Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
    • Kaizen #217 - Actions APIs : Tasks

      Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
    • Kaizen #216 - Actions APIs : Email Notifications

      Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are

    Nederlandse Hulpbronnen


      • Recent Topics

      • Sharing URLs and direct access

        Hello, I am storing my team's email signature images on Workdrive. I am creating a public image download share and adding “?directDownload=true” so that the image can be accessed without the Workdrive interface. A few questions: 1) Can we generate friendly
      • Zoho Mail Android app update: Calendar enhancements

        Hello everyone! In the most recent version of the Zoho Mail Android app update, we have introduced various new enhancements for the calendar module. Let's explore what's new. Drag and drop events to update the date and time We have enhanced the calendar
      • Enhance Delay Configuration in Zoho Flow

        Dear Zoho Flow Support Team, We are writing to request an improvement to the delay configuration process within Zoho Flow. Currently, users are required to manually enter the exact delay duration (e.g., "2 days") in the delay block. This can be time-consuming
      • Contratação ProdutivosX

        Bem-vindo(a) ao processo de contratação da ProdutivosX. Este formulário tem como objetivo coletar informações essenciais para análise de perfil profissional, alinhamento de competências e possível integração ao equipamento ProdutivosX. A ProdutivosX é
      • 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
      • Unified WhatsApp Number Management in Zoho Desk and SalesIQ

        Dear Zoho Desk Support Team, We are currently utilizing both Zoho Desk and Zoho SalesIQ for our customer support operations. While both platforms offer WhatsApp integration, we are facing challenges due to the requirement of separate WhatsApp numbers
      • Email Field Validation Incorrectly Rejects RFC-Compliant Addresses (Forward Slashes)

        I've encountered a validation issue with Zoho Creator's Email field that rejects RFC-compliant email addresses containing forward slashes, and I'm hoping the Zoho team can address this in a future update. The Issue When entering an email address containing
      • Plug Sample #15 - Enable Human-Like, Contextual Interactions in SalesIQ with Zia Agents

        Zia Agents are conversational AI assistants designed to understand user intent and respond intelligently, helping businesses automate conversations and offer personalized support at scale. While Zia Agents are yet to be publicly released, access is currently
      • Best way to schedule bill payments to vendors

        I've integrated Forte so that I can convert POs to bills and make payments to my vendors all through Books. Is there a way to schedule the bill payments as some of my vendors are net 30, net 60 and even net 90 days. If I can't get this to work, I'll have
      • Seamless Round-Trip Navigation for Related Blocks (Detail View)

        As highlighted previously in this post (and here, here, here, and here), we still lack a fundamental capability for seamless navigation in Related Blocks. The popup that appears when adding a related record doesn't exist for viewing/editing existing records,
      • Social Profile Logo Format

        Hello, I'm using Zoho Sites and am attempting to add a couple of social media accounts to my profile that aren't included in the default platforms that are available. What format is the logo required to be in? I have tried .png and .jpg with no success.
      • How to create Sepa Direct Debit XML file: solution and code

        Even though Books provides a payment integration for Stripe and Gocardless (in Europe) there are customers that want to use the Sepa services of their own bank. Mainly because Stripe and Gocardless are quite expensive. In that case they would need a Sepa
      • Traditional Spreadsheet vs Zoho Tables

        Hello everyone, This article explains the differences between Spreadsheet applications and no-code databases, such as Zoho Tables. While both tools belong to the "grid" family, the core difference lies in their purpose. A spreadsheet (such as Zoho Sheet,
      • RFQ MODEL

        A Request for quotation model is used for Purchase Inquiries to multiple vendors. The Item is Created and then selected to send it to various vendors , once the Prices are received , a comparative chart is made for the user. this will help Zoho books
      • Delegate Access - Mobile iOS/iPad

        We’re over the moon that delegate access is now available in Zoho Mail as we were nearly ready to switch platforms because of it! Is there a timeline on when delegate mailboxes will be accessible from the iOS and iPad OS applications? Thanks, Jake
      • Request For Quotation (RFQ) module

        Hello, Do you have any plans to implement a RFQ module in to ZOHO Inventory? I would like to chose items that I require a price for, select a number of different suppliers to e-mail and have them submit there pricing online. I would then like to see a
      • Support for Developing Zoho Recruit Extensions via Zoho Sigma

        Hi, I’m interested in building an extension for Zoho Recruit using Zoho Sigma. However, when I navigate to Sigma and attempt to create a new extension (via the "New Extension" option), Zoho Recruit does not appear as a listed service—only options like
      • FOLDER DISAPPEARED

        Hello Zoho Community. I recently found a problem with no explanation: a folder in Zoho Analytics just disappeared, but the tables and SQL sentences still existed, the folder was not deleted. The solution for me in this case was to create a new folder,
      • How to create estimates/Invoices with sub-totals

        Every other accounting package can create estimates and invoices with Sub-totals. How can I do that in ZohoBooks?
      • Deluge scripts

        Why is there not a search function to make it easier to find the script of interest when modifications are required.
      • Social media simplified with Zoho Social: Why should brands have a Threads profile?

        Just over a year ago, Instagram launched Threads, the all new social media app primarily focusing on sharing text online. It was welcomed by people worldwide with more than 10 million users in just seven hours, and it currently has over 175 million active
      • Auto tracking URL generation based on Carrier

        Hi, While creating a shipment order for a package in Zoho Books, I have a requirement that for example, if the carrier is Delhivery and tracking number is 1234, then can automatically the tracking link/URL be generated as www.delhivery.com/1234. Similary,
      • New Beginnings with Zoho Desk mobile app best practices: Part 3

        In focus: Scaling consistency, intelligence, and customization In our third installment, we'd like to share tips to help you elevate your customer experience as you handle support operations seamlessly on mobile. Let's reconnect with Omniserve, the field
      • Highlights of 2025: Milestones and moments

        Hey everyone! As we step into 2026, it’s a great time to look back at everything 2025 brought to Zoho Social. This year was big, packed with powerful new features, smart enhancements, exciting events, and a major milestone: a whole decade of Zoho Social.
      • Introducing the sandbox environment in Zoho Sign

        Hey there! Customer and partners across the globe have been requesting a testing environment—also called a sandbox—for quite some time. Sandboxes help you try out document workflows before using them in your production setup. This new year, we are excited
      • Can I share the drive with another Windows user?

        We use the WorkDrive Sync application on a server with several remote desktop users. Our question is: Can the drive created by WorkDrive Sync be shared from one of these remote users with the other users so they can access the files, or do we need to
      • Syncing Bills in Zoho Books to Zoho CRM

        Is there any way to sync the Bills in Zoho Books in Zoho CRM
      • Auto CheckOut Based On Shift.

        This Deluge script runs on a scheduled basis to automatically set the 'Actual_Check_Out' time for employees who haven't manually checked out. If the current time is past their scheduled 'Shift_End_Time', the script updates the check-out time to match
      • ERROR: Product type cannot be changed for Items having transactions.

        I have mistakenly added a product type as goods for an item that was a digital service. Now when HSN/SAC became mandatory, this brought my attention to this error I did. So I tried changing the product type but it displayed this error message Product
      • Boost your CRM accuracy with smart Data Enrichment

        Hello all! In this post let's look at data enrichment from a holistic perspective to gain more clarity on how you can use it. So, here's a quick recap of what data enrichment is and how you set it up it to enhance your existing module data! What is data
      • Is it possible to set a region lookup table so that my deal country can lookup this lookup table

        Hi there, I would like to be able to add a data lookup table with the following fields: Country, Region. And then in my deal report, i can then lookup this table to fish out the region in my report. This will be important for my sales process to categorise
      • Test Emails Show Sent "via zcsend.net" in My Gmail Account

        I noticed the following info... However, a few email service providers such as Outlook and Gmail will display that the email was sent by zcsend.net (Zoho campaigns’ server) on your behalf instead of just your from email address.  In order to prevent this, you can go for either of these options: Do not select the check box meant for DomainKey Signature which is listed under Unverified sender domains. Include our mail servers by advanced authentication method such as SPF/ Sender ID and DomainKey/ DKIM.
      • 'UnAuthenticated Connection: zbooks_connection'

        I have a zoho connection in Zoho Books, the link name es zbooks_connection, but I like to validate if exist, by example if I use this line in my code: response=zoho.books.getTemplates("", "","zbooks_connection"); But I don't  have the connection I like
      • Calling the new 'Custom API' feature from within a Custom Widget

        From what I've learned it is not possible to call an endpoint from the new "Custom API" feature within a Creator Widget. The SDK's doesn't support it yet, when calling it natively you end up with CORS issues or at least I couldn't get it working even
      • Cannot post to Instagram. I get the error: Insufficient permission to publish on this page. Check with your page Admin to update permissions.

        We had another admin that left the company. Since he left, we get this error when posting to Instagram.
      • Zoho desk desktop application

        does zoho desk has a destop applicaion?
      • Ability to re-order Workflow Rules

        We really need the ability to re-order workflow rules within departments.  Either the ability to drag/drop them into a different order or something.
      • Create an article template

        I have a question concern the Knolwedge Database from Zoho Desk. There is any possibility to create an article template ? Exemple of what I research : TODAY : I want to create a lot af articles with the same baseline > I create one article > I copy/paste
      • Change of Blog Author

        Hi, I am creating the blog post on behalf of my colleague. When I publish the post, it is showing my name as author of the post which is not intended and needs to be changed to my colleague's name. How can I change the name of the author in the blogs?? Thanks, Ramanan
      • Zoho FSM API Delete Record

        Hi FSM Team, It would be great if you could delete a record via API. Thank you,
      • Next Page