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

    • How to dynamically pass IDs from one API response to a second API call in Zoho DataPrep?

      Hi Team, I am setting up a global consolidated reporting pipeline in Zoho Analytics (India) using Zoho DataPrep as the ETL engine. I am pulling data from multiple Zoho Books Data Centers (US, Singapore, India) thats why i used the URL Source (OAuth 2.0)
    • Building Toppings #4 - Setting up and using connections in Bigin toppings

      When building a topping to extend Bigin's functionality and connect it with third-party applications, creating and handling connections is an important step. Connections provide a secure way for your topping to authenticate and communicate with other
    • Need code format to specify default values

      Can someone please direct me to the code syntax or the proper translation per the instructions circled below. These instructions don't seem correct.
    • AI Interview Insights: Turn Recorded Interviews into Quick Transcripts & Summaries

      Evaluating interviews shouldn’t require replaying long recordings or taking manual notes. With AI Interview Insights, you can now review complete transcripts and AI-generated summaries of your One-way (Recorded) interviews right inside Zoho Recruit. This
    • Record payment: Payment Mode vs. Deposit To and how to "connect" them!?

      How do we set up that when we choose:  "Payment Mode"= Cash, then "Deposit to" is automatically set to Petty Cash, and if we choose  "Payment Mode"= Check, then "Deposit to" is automatically set to Undeposited Checks, and if we choose  "Payment Mode"=
    • Grouping Undeposited Funds to Move to other accounts

      In the bank option it would be nice to check what transactions in undeposited funds I want to move to other accounts. Then while checking this it can accumulate totals and created whats essentially a deposit slip. Once the transaction is moved it should
    • Depositing funds to account

      Hello, I have been using Quickbooks for many years but am considering moving to Zoho Books so I am currently running through various workflows and am working on the Invoicing aspect. In QB, the process is to create an invoice, receive payment and then
    • Facing email delivery issues? Verify your domain's DNS records

      Have you ever wondered why your legitimate emails are landing in the recipient’s spam folder? Or been surprised to see emails sent from your registered domain getting rejected by recipient email servers? Why does this happen? In most cases, this happens
    • Order of Departments in Help Desk

      In the end user portal, , the departments are sorted by the date of creation of the department (or perhaps their id). Is there a way to choose the display order of the departments or at least to be able to sort them alphabetically?
    • COGS - Account showing negetive

      I have multiple COGS account and in these all there is one account is negetive so suggest why it is showing negetive value.?
    • Create CRM Deal from Books Quote and Auto Update Deal Stage

      I want to set up an automation where, whenever a Quote is created in Zoho Books, a Deal is automatically created in Zoho CRM with the Quote amount, customer details, and some custom fields from Zoho Books. Additionally, when the Sales Order is converted
    • %PaymentLink%

      Does not work. Software creates a BAD link. ....and yes payment options are turned on. Link on the invoice pdf once opened will work but this template is a joke.
    • Google Photos

      I am hoping that my question already has a fix. I current have Google synced accounts that I want to get away from. One in particular on is Google photos. Is there any software, or 3rd parties that I can join to back my photos up straight to specifically designated file in the ZOHO cloud that's tied to Docs? Please advise... Mike 
    • Zoho Books Items Categorisation/Grouping/Folder

      Is there a way to do items categorisation? a folder structure? Product Type A - Option 1/2/3 Product Type B - Option 1/2/3 Current problem : I have more than 50 items on the list, its hard for team to navigate.
    • Cash payments before invoice date

      We have been using zoho books for our hospitality business for some time and have been very happy with the system. However in 2025 an update was pushed through and we are now not able to record payments for invoices before the invoice date. the case scenario
    • Copy / Duplicate Workflow

      I have workflows setup that are very similar to each other. We have a monitoring system watching servers, and all notifications - no matter what client it is about - will come from a  noreply@ address which is not very helpful in having it auto assigned to the right account. I have setup a workflow that will change the contact name of the ticket (currently it would say noreply@) to the correct customer which is based on the subject line, as that mentions which server the alert it is about. I need
    • Transfer between two customers (Peters Rental account to Peters Private account)

      we are a Property Management company. Our customers have to accounts (registered as two customers - Peter Rental and Peter Private On the rental account all income and costs fron rental activities are noted. On the private account all private are noted
    • Automation#18: Automatically Fetch Values from Contacts to the Tickets Module

      Hello Everyone, Welcome to this week's edition, where you can seamlessly sync fields from the Contacts to the Tickets module. For efficient business operations, it's crucial to have details mapped across different modules. Zylker Secure offers antivirus
    • Charge multiple invoices

      We use auto-charge/recurring invoicing for 100's of clients. If we create a single manual invoice we can charge it to the credit card for these clients with the CC added to their recurring invoices. If a client has multiple outstanding invoices, is there a way to make one charge for all of the invoices instead of a separate charge to the cc for each invoice?
    • Handling/tracking escalation management in Zoho

      Hi all, I am working on finding a tool to register and track our escalation management process. Specifically, this is about client escalations, typically related to project delivery issues. The idea is that we could have some sort of form with core questions
    • Global Choice List share ownership

      I have created several forms that use one or more Global Choice Lists. These lists have been published to Org. I would like to allow one or more admins to edit the choices in these lists. Any help appreciated. Geoff
    • Setting up property management in Zoho Books

      Hi, I run a property management business that manages property complexes. There are multiple owners, some owning more than one property on the same complex. My role is to manage the fees they pay for maintenance of common areas, such as the swimming pool
    • How to prevent users from switching price lists in an order?

      Hi, I have Zoho Finance integrated with Zoho CRM. My team will be placing orders through the CRM using the Finance module. When creating a new customer I will assign it a price list, I don't want the sales rep to switch to a different Price List, other
    • Unable to Change Display Name for my outlook mail ID

      Hello, I recently added my personal outlook mail to Zohomail (in the web interface) using POP3 options. I tried to change the display name of the outlook account, but it changes for a brief moment and reverts back to the old name. Kindly help me with
    • Mollie Connect in Zoho Books

      Have noticed that Zoho Books is missing the most popular payment provider in Europe: Mollie. Knowing that Mollie has a solid Java SDK, why is this not yet implemented in Zoho Books for European customers?  More info: https://docs.mollie.com/oauth/ov
    • Unable to change Lookup field from Multi Select to Single Select

      I am trying to change a Lookup field in my Zoho Creator form from Multi Select to Single Select, but I am unable to find any option to do this.
    • Simple Callback Notifications Needed

      My team are terrible at remembering their CRM callbacks, often due to how long in the future they are set for. Is there a way i can set an e-mail notification for when a callback is due? For example we set it for 9am one day and five minutes before they
    • Personal Data (RODO), Cookies / Trackers - ePrivacy

      I have noticed several issues that should be addressed on the customer support page. Zoho Desk provides the support portal, but it currently lacks the following options: A GDPR and personal data processing consent checkbox before logging in, located in
    • How to set a multi-lookup field as mandatory?

    • Allow Multiple Scheduled Appointments with Zoho Support

      Dear Zoho Team, I hope you're doing well. First, thank you for introducing the option to schedule support calls via the Zoho CRM booking link. This has been a fantastic enhancement, eliminating the need for back-and-forth coordination when scheduling
    • Audit Log for Zoho One Admin Panel

      Dear Zoho One Team, We would like to request the addition of an Audit Log feature in the Zoho One Admin Panel. This log should provide visibility into any changes made within the Zoho One admin panel and directory, including but not limited to: Adding,
    • Bug: OAuth 2.0 State Parameter fails with Pipe Delimiters (RFC 6749 Non-Compliance)

      I've discovered a bug in how Zoho's API Console handles the OAuth 2.0 authorization flow when the state parameter contains pipe characters (|), and I'm hoping the Zoho team can address this in a future update. The Issue Zoho's OAuth 2.0 implementation
    • Custom Function to increment a value by one

      Hi, I'm trying to find a solution to set up a counter on CRM records that tracks how many times certain actions have taken place. As a specific example: We have a field on Deals called "Times Close Updated". This starts at 0 on record creation. I'd like
    • Access token generate from the refresh token not working for API

      Dear Sir/Madam, When I use my refresh token to obtain new access_token, that token return INVALID_TOKEN when the same API is called. I made sure that my api site is correct and match the auth web site. However the original access_token work fine.
    • why does my campaign move back to draft?

      Every time I try to send my email campaign, it reverts back to Draft status.. this has happened three times in a row..how do i find out what the problem is? Thanks
    • Service and Parts Line Item Limitations

      Hi FSM Team, We work with clients who deliver large-scale field service projects. In many cases, a single work order can contain 200+ service and parts line items. Currently, Zoho FSM limits work orders to 30 service and parts line items. While this works
    • 【Zoho CRM】やりとりの要約機能リリースのお知らせ

      ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 今回は「Zoho CRM アップデート情報」の中から、新機能のやりとり要約機能をご紹介します。 Zoho CRMのやりとりの要約は、Ziaが生成する機能で、データに関連付けられた最近のやりとりを簡潔にまとめて提供します。 メール、通話、ミーティング、メモなどを1つの明確な要約にまとめ、重要なポイント、過去の話し合いの要点、結果、次のステップを表示することで、日常的な課題に対処します。 Ziaの強みは、単なる要約にとどまらず、内容の解釈も行える点です。やりとりの要約では、顧客との会話に潜む遅延、フォローアップ漏れ、約束、期限、感情、意図を特定します。
    • Recent post analytics not very useful

      Hi, I'm enjoying some aspects of the Zoho Social. like being able to schedule posts to multiple channels. However, the recent posts analytics is disappointing. For example, I put up a reel on Instagram and Facebook yesterday. Instagram insights shows
    • What happens to the files created by user, whose account is deleted.

      Hello, I created a folder in the My folders names "Quote" I shared the same with my colleague. She created some files and folders in that folder over the period of 1 and half year. Now she left company, and I deleted her account from Zoho. What happens
    • Internal Error When Accessing Team Inbox.

      All our users are seeing this error in teaminbox. Because its a critical tool kindly resolve this issue ASAP.
    • Next Page