Actions API - Webhooks APIs - Part 2

Actions API - Webhooks APIs - Part 2


Hello all!! 
Welcome back to the follow-up Kaizen post of Kaizen #219: Actions API - Webhooks APIs - Part 1.

In the previous week, we covered how to configure a basic Webhook and how to include Headers, Body, and URL Parameters using both the POST Webhook API and the Zoho CRM UI.
In this part, we will take one of the previously discussed examples and demonstrate how to achieve the same result using the GET, PUT, and DELETE Webhook APIs.
We will also walk through how to associate a Webhook with a Workflow, how to perform real-time testing by creating a record, and how the external application receives the response sent from Zoho CRM via the Webhook.

Retrieving a Webhook using the GET - Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks/5725767000008778002
 - Note: You can retrieve all available Webhooks using "{{api-domain}}/crm/v8/settings/automation/webhooks" request.

Request Method: GET
Sample Response:

{
    "webhooks": [
        {
            "headers": {
                "module_parameters": [
                    {
                        "name": "Lead_Email",
                        "value": "${!Leads.Email}"
                    },
                    {
                        "name": "Annual_Revenue",
                        "value": "${!Leads.Annual_Revenue}"
                    },
                    {
                        "name": "Profit_Score",
                        "value": "${!Leads.Profit_Score}"
                    }
                ],
                "custom_parameters": [
                    {
                        "name": "source",
                        "value": "zylker-crm"
                    },
                    {
                        "name": "version",
                        "value": "v1"
                    }
                ]
            },
            "created_time": "2025-11-30T07:18:50-08:00",
            "lock_status": {
                "locked": false
            },
            "editable": true,
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "related_module": null,
            "url_parameters": null,
            "deletable": true,
            "description": "Send leads with Profit Score > 80 to validation system.",
            "source": "crm",
            "body": {
                "format": null,
                "type": "none"
            },
            "created_by": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001"
            },
            "feature_type": "workflow",
            "http_method": "POST",
            "modified_time": "2025-11-30T07:18:50-08:00",
            "associated": false,
            "name": "Push High Score Leads",
            "modified_by": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001"
            },
            "id": "5725767000008778002",
            "date_time_format": null,
            "authentication": {
                "connection_name": null,
                "type": "general"
            }
        }
    ]
}


Updating the Webhook using the PUT - Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: PUT

Input JSON:

{
    "webhooks": [
        {
            "headers": {
                "module_parameters": [
                    {
                        "name": "Lead_Email",
                        "value": "${!Leads.Email}"
                    },
                    {
                        "name": "Profit_Score",
                        "value": "${!Leads.Profit_Score}"
                    },
                    {
                        "name": "Lead_Industry", // adding a new field
                        "value": "${!Leads.Industry}"
                    }
                ],
                "custom_parameters": [
                    {
                        "name": "source",
                        "value": "zylker-crm"
                    },
                    {
                        "name": "version",
                        "value": "v1"
                    }
                ]
            },
            "url": "https://webhook.site/abcd1234-5678-90ef-ghij-123456789axx", // changing external application's URL
            "http_method": "POST"
        }
    ]
}


Note: 
  1. You cannot update the module field. The rest of the fields can be updated using the PUT - Webhook API.
  2. Exclude a field, header section, URL parameter section, body section from the request if you want to remove its configuration from your webhook.
  3. http_method is mandatory for the Update call.
  4. To change the external URL, the http_method key is mandatory.

Deleting the Webhook using the DELETE - Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: DELETE

Sample Response:
{
    "webhooks": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "5725767000008778002"
            },
            "message": "Webhook is deleted",
            "status": "success"
        }
    ]
}
Note: You cannot delete a Webhook if it is associated with any automation feature like Workflow and Blueprint.

Associating a Webhook to a Workflow Rule using the Workflow API

Create a Workflow:
You can use the Configure Workflow Rule API to create a workflow.

Associate the Field Update:
You can associate a Webhook action with the workflow by using the unique ID of the Webhook.

Retrieve the Webhook ID using the Get Webhooks API.

Request URL:  {{api-domain}}/crm/v8/settings/automation/workflow_rules
Request Method: POST
Sample Input:

{
    "workflow_rules": [
        {
          .
          .
          .
            "execute_when": {
                "details": {
                    "trigger_module": {
                        "api_name": "Leads",
                        "id": "5725767000000002175"
                    }
                },
                "type": "create_or_edit"
            },
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "name": "High Profit Leads",
            "conditions": [
                {
                    "instant_actions": {
                        "actions": [
                            {
                                "name": "Push High Score Leads",
                                "id": "5725767000008775001", //associating the created Webhooks with the Workflow
                                "type": "webhooks"
                            }
                        ]
                    },
                    "scheduled_actions": null,
                    "criteria_details": {
                       .
                         .
                        .
                        "criteria": {
                            "comparator": "greater_equal",
                            "field": {
                                "api_name": "Profit_Score",
                                "id": "5725767000008570336"
                            },
                            "type": "value",
                            "value": "80"
                        }
                    }
                 
                }
            ],
            .
            .
            .
        }
    ]
}


For more details on Workflow Rules using APIs, refer to Kaizen #213 - Workflow APIs - Part 1, Part 2, and Part 3.

Sample Webhook:


Creating a high Profit Score lead using the Create Records API

To test our webhook end-to-end, we will create a high Profit Score lead using the Create Records API. When this lead meets the workflow condition, the webhook fires, allowing us to observe the exact payload sent to the external system.

Request URL:  {{api-domain}}/crm/v8/settings/automation/workflow_rules
Request Method: POST
Input JSON
{
    "data": [
        {
            "Owner": {
                "name": "Tim",
                "id": "5725767000000411001",
                "email": "tim@zoho.com"
            },
            "Annual_Revenue": 2000000,
            "Full_Name": "Patricia Boyle",
            "Layout": {
                "name": "Standard",
                "id": "5725767000000091055"
            },
            "Company": "Info Technology",
            "Email": "infotech@mail.com",
            "Industry": "Large Enterprise",
            "First_Name": "Patricia",
            "Profit_Score": 90,
            "Profit_Category": "High Profit",
            "Last_Name": "Boyle"
        }
    ]
}
Real response in Zylker’s external validation system:

After setting up the webhook and linking it to a workflow, we added a test lead that matched our condition. The external app received the webhook instantly, just the way we configured. This shows how easily Zoho CRM can push data to any system in real time. This real-time flow ensures clean, validated, enriched leads reach the Sales team faster, improving response time and conversion rates.

We hope this post helps you understand how to use Webhooks through the Zoho CRM Actions API - Webhooks API.

Try it out, and let us know your experience in the comments section or reach out to us at support@zohocrm.com.
Stay tuned for more insights in our upcoming Kaizen posts!

Cheers!



 


    • Recent Topics

    • Preserve Ticket Issue Mapping When Migrating from Jira to Zoho Projects

      Hello Zoho Projects Team, We hope you are doing well. We are currently exploring a full migration from Jira to Zoho Projects, and we identified a critical limitation during the migration process involving Zoho Desk integration. Current Situation: We use
    • Recording Shopify/Amazon fees in Zoho Books - Zoho Inventory

      We are currently flushing out the connections between Shopify/Amazon and Zoho Inventory. For other users of Zoho Books - Zoho Inventory, where and at what point do you record the merchant fees associated with theses channels? I have gotten mixed responses
    • Pre-fill webforms in Recruit

      I don't want to use the career site portal (as I have my own already), but I would like to direct users to the application forms for each role, from my website job pages. Is there a way to pre-fill fields in Recruit application forms, so that I only have
    • Taxes Payable Adjustment

      I am from Canada and I need to make an adjustment to my Taxes Payable (HST) account.  Basically I need to take a portion of the amount within Taxes Payable and expense that portion to another account.  The adjusting entry would like like the following:
    • ASAP Widget Not showing "My Tickets"ed

      Hello Team, I have created a ZOHO ASAP Widget and embedded to my portal app.clearvuiq.com , widget renders ok and I can open tickets from widget. However I want my opened tickets to be visible in the widget. How can I achieve that?
    • Bug Causing Major Sync & SO Access Failures in Zoho POS

      We are experiencing critical and recurring issues in Zoho POS that all trace back to role-permission handling defects in the latest POS app version. These issues directly affect syncing, login ability, and Sales Order access for role-restricted users
    • How to view CRM Sales Orders in Desk

      What's the usual way to view all CRM sales orders linked to a contact, when viewing a ticket in Desk? I don't want to have to open a new tab to see the order in CRM. And the Desk CRM sidebar doesn't seem to be configurable. Would I have to use an extension
    • Kaizen #219: Actions API - Webhooks APIs - Part 1

      Hello all!! Welcome back to a fresh Kaizen week. In the previous weeks, we covered Workflow Rules APIs, Actions APIs - Email Notification APIs, Tasks Update API, and Field Update API. This week, we will continue with another Actions API - Webhooks API
    • Pricing Strategies: #3 Services never Stop with just Plans

      "Hey, while you're here, could you also take a look at the vegetable patch?" Aaron hears that line almost every week. He runs a small gardening service, the kind where customers subscribe to a simple monthly plan that includes basic maintenance, mowing,
    • Cropping Photos for Zoho Sites

      Hi, I'm wondering if there is a built in crop tool for zoho sites for my photos so I can crop them and see what the crop looks like on the site?
    • Possible for first Signer of Sign Form to specify the next signer in the sequence

      We have many use cases where multiple signers need sign the same document. We'd love to be able to use sign forms, where the a signer who uses the Sign Form link can specify the name and email address for the next person in the sequence.
    • BUG: Can't copy-paste data outside Sheet

      Currently I can't paste data copied from inside any of my Zoho Sheet files to any other app. Copy-paste works inside the sheet It does NOT work between two different sheets These sheets are built from automation templates Everything works fine if I create
    • Zoho CRM Community Digest - November 2025 | Part 1

      Hello Everyone! Here’s what came through in the first half of November: new updates and a few helpful community discussions with real, notable solutions. Product Updates: Android App Update: Inctroducing Swipe Actions You can now swipe left or right on
    • Upload own Background Image and set Camera to 16:9

      Hi, in all known online meeting tools, I can set up a background image reflecting our corporate design. This doesn't work in Cliq. Additionally, Cliq detects our cameras as 4:3, showing black bars on the right and left sides during the meeting. Where
    • Truesync for Linux

      Is Truesync available on linux ?
    • Hidding/excluding specific picklist options from filter

      Hi. Is it possible to hide/exclude specific picklist options from this filter? I don't want them to be shown when someone tries to filter in the leads module
    • Subforms to Capture Multi-Row Data in Job Sheets

      Subforms transform your job sheets from simple checklists to powerful, data-rich forms. In field service work — whether maintenance, inspection, installation, or repair — a single job can involve multiple repeatable entries: readings, parts used, activities
    • Add "Fetch Composite Item" Action for Inventory

      I want to make a Flow that uses information returned in the GET call for Composite Items, and it's not currently available in Zoho Flow. Please consider adding this functionality.
    • Adress Labels for sending of the oder und barcode

      We want to print with my address labels to stick on the order of the ware can. there are these options?
    • printing individual labels - Dymo LabelWriter

      I am trying to print individual labels to my Dymo LabelWriter - has anyone done this? Latest Update (December 2025): The Canvas Print View is now available! We encourage you all to try it out and share your feedback with us. Learn more here: Zoho CRM
    • Zoho Creator for Agriculture

      Greetings, I am starting to work on  Zoho Creator specifically for the agricultural field, any recommendations, tips or ideas that might be helpful ? Also, if you are interested by any means in working on such project, kindly contact me. The project is
    • Custom Print Layout

      I would like to create a custom print layout of a Lead or Contact. Is there a way to do that? What I mean is that if I'm viewing a specific lead or contact I'd like to be able to print or export that lead/contact and only print and/or export certain information.
    • Print View

      Nothing happens when I'm in a module , ie; Contacts, and I hit the Print View Button. Even when it does come up and say "loading", nothing loads
    • Get Holiday ready with Zoho Mail's Offline mode

      With the holiday season right around the corner, this is the perfect time to get ready to unplug, relax, and enjoy a well-deserved break. In addition to preparing yourself, you can also make sure your organization members are set for their time away from
    • Solution to Import OST File into Office 365.

      MailsDaddy OST to Office 365 Migration Tool is an outstanding solution to recover OST files and migrate them into Office 365 without any hassle. Using this software users can multiple OST files into Office 365 with complete data security. It offers users
    • Zoho CRM Kiosk issues

      Firstly this is for a system on the AU servers if that makes a difference. Issues are as follows (For Kiosk): 1. Re-ordering fields in the screen builder is broken. The fields seem to be re-ordering themselves, unless you order everything by moving the
    • Email Template Edits Not Saving

      I can make an edit, click save, and see the blue bar annimation at the top, but the edits don't actually save. Important, because my email templates are now broken and clients are receiving bad emails. Tried on Chrome, Firefox and IE.
    • Default Ticket View - Table?

      Guys, We mostly use the table view to queue tickets. Maybe I am missing it - but how can I set that view as 'default" for all our agents? Thanks JV
    • Can I have different users see different pick list values for Potential Stage?

      We have some users focusing on new business and others focusing on existing business, and they follow different sales processes/cycles, so we would like them to see different pick list values for Stage (eventually leading up to Closed Won/Lost in both cases).   And just to keep it interesting - some of these users will of course do a combination, so would need to see one pick list for their New business potentials and a different pick list for their Existing business ones.   Salesforce does this
    • Tracking Snippet not working in Zoho Marketing Automation!

      First off, the fact that you have to wait about 12-24 hours for every response is terrible. How are we supposed to conduct business? Second, we have been trying for several days to get the Tracking Code Snippet in marketing automation to work, to no avail.
    • Is there any way to send an Excel received by email to Dataprep?

      Every day I receive an email alert with an Excel file that I want to process through a Dataprep pipeline. To do this, I need to: -Save the file to disk -Open the pipeline -Run the pipeline -Update the source -Several clicks to select and open the saved
    • Read webpage - MSXML2.ServerXMLHTTP

      I have the following VBA script, put together from various sources (mainly zoho forum/help/support, so it once worked, I guess): private Sub GetListOfSheets() Dim url As String Dim xmlhttp As Object Dim parameters As String Dim html As String range("B1").value
    • Zoho Creator Form Search

      I'm new to Zoho Creator and so far i do like it but im shocked there seems to be no easy way to add a search function and/or navigation to there forms as this readily available in every platform i have used in the past. Anyway i have a form which i have
    • How to setup DKIM / SPF in Zoho Mail

      Hello there! I'm having a hard time understanding how to setup the TXT records for SPF and DKIM with Zoho Mail. I'm following the instructions here: https://www.zoho.com/campaigns/help/setup-spf-dkim.html Specifically, when it comes to the value for the
    • Mass update cant trigger a workflow?

      Hello there, Is this a normal Creator behaviour? In a report, if I manually edit each data row, it will pass those changes to all other reports. However, if I perform a Mass Update on a few data rows at once, the new data is not pushed to other reports.
    • search and Smart Bar both missing in Mail

      One of the users on my account does not have the search bar at the top right or the Smart Bar at the bottom left of the desktop Mail app. Any ideas how to get those back?
    • Let us add Lookup fields in the Blueprint Transitions

      We are unable to add Lookup Fields in the blueprint transitions in Zoho Desk, we wanted to make it a requirement for our workflow but since it's not available in the transition we cannot. The lookup field exists in the Layout: But it cannot be added/selected
    • Zoho Projects API Scope for Issue Attachments

      I try to download issue attachments via the API, unfortunately I always get the following error code when trying to download the file from the supplied URL: {"ERROR_MESSAGE":"INVALID_OAUTHSCOPE","ERROR_CODE":401} indicating an auth scope error. I've tried
    • How to fetch custom fields for time entries in Zoho Project API v3

      In the previous Zoho Projects REST API, we were able to retrieve custom field details for time entries, including picklist options, using the endpoint: GET /restapi/portal/[PORTAL_ID]/timesheetcustomfields In the new Zoho Projects API v3, we tried using
    • Zoho Survey Enhancements

      We love Survey. We use it a ton. It needs some enhancements. Maybe some of these are already on the roadmap? API - this is crucial. We have some complex surveys that take place and need to update records, trigger other functions/automations, etc. I would
    • Next Page