In simple terms, a Webhook is basically a notification that is sent to a destination (URL) when an event occurs. With Zoho Forms, you can send a form submission to a URL or a third party web application of your choice as soon as a submission occurs.

If you are looking to process the data collected through Zoho Forms in your web application or use it in your business workflows, you can use Webhooks. You can receive form submissions as soon as it's collected without having to use APIs.

For example, you can directly store the collected data in your database, display it on your website, and do a lot more.

Configuring Webhook

To configure a Webhook, 

  1. ​Click the Integrations tab from the form builder and select Webhooks from the left menu.

  1. Click Configure Webhook and fill the following details:

    • Webhook URL: The URL to which the form submission should be sent.

    • Content Type: We send notifications to your Webhook URL through an HTTP POST request. The request body, containing the form data will be sent in one of these content formats:

Content-TypeData Transferred
application/jsonAll except file attachments
application/x-www-form-urlencodedAll except form attachments and subform data
multipart/form-dataAll except subform data

See the response format for each content type here

  1. Payload Parameters: Under this section, choose the fields whose data should be transferred using Webhooks.
    1. Under Payload Parameters, define a parameter name and choose the relevant form fields under Parameter Value.
    2. When using application/json content type, you can also transfer data from Subform using Webhooks.
    3. When using a Payment field in the form, you can transfer the payment details via Webhooks. The supported fields are: Payment Amount, Payment Status, Payment Currency and Payment Transaction ID. Zoho Forms typically passes the transaction status and the form submission asynchronously, since the form submission and the payment status isn't done at the same time.

How asynchronous payment transactions work? 
After the form submission, the respondent is redirected to the payment site. Initially, a pending status via webhooks is sent for the payment transactions within a few seconds. The final response is known only when the merchant initiates the transaction. 

Note: We recommend enabling the workflow option while setting up the Payment field. This ensures that the real-time Payment Status and Transaction ID are sent via webhooks, instead of the pending status.

  1. URL Parameters: If you would like to send additional information along with the collected data, you can specify it in this section. For example, you can include a secret key to every request being sent. This would help you in filtering out authenticate requests. These parameters will be added as query strings to the URL. Click on Add Parameters and enter the parameter name, value in the text boxes provided. 
  2. Custom Headers: You can set a custom header name and value to be passed with your collected data. 

Example: If you have set up basic authentication for your webhook URL, you can receive a corresponding header by setting up the custom header as follows:

 The custom header 'Authorization' will appear as:

Authorization: Basic dXNicm5hbWU6cGFzc3dvcmQ=

Note: The following must be noted while setting up a Custom Header :

  1. A standard (system) header cannot be redefined. 
  2. A custom header name must contain alphanumeric characters only. Only special characters allowed are underscore (_), period(.), and hyphen(-).
  3. Duplicate names are not allowed.
  1.  Click Save to save your settings and Webhooks will be enabled for this form.​​

Response Format for Content Type

  1. application/json - When you choose this content type, you will receive your response format as shown below.

    "Name": "Richard Johnson",
    "Email": "richardjohnson@zylker.com",
    "Phone": "xxxxxxxxxx",
    "Dependent_details": [
            "Dep_Name": "Elizabeth Parker",
            "Dep_Email": "elizabethparker@zylker.com",
            "Dep_Relation": "Spouse"
            "Dep_Name": "Michelle Johnson",
            "Dep_Email": "michellejohnson@zylker.com",
            "Dep_Relation": "Daughter"

Using this content type, you can transfer Subform data from your form. However, you cannot transfer form attachments through Webhooks.

  1. application/x-www-form-urlencoded - When you choose this content type, you will receive your response format as shown below. 

Name=Richard Johnson&Email=richardjohnson@zylker.com&Phone=xxxxxxxxxx

Using this content type, you cannot transfer form attachments and Subform data through Webhooks.

  1. multipart/form-data - When you choose this content type, you will receive your response format as shown below. 
Content-Type: multipart/form-data; boundary=---------------------------98954019110886277696241143
Content-Disposition: form-data; name="Name"
Richard Johnson
Content-Disposition: form-data; name="Email"
Content-Disposition: form-data; name="Phone"
Content-Disposition: form-data; name="IDcopy"; filename="ID.pdf"
Content-Type: application/pdf
Content of ID.pdf as bytes

Using this content type, you cannot transfer Subform data through Webhooks. You cannot use this content type if you have configured the Manage Form Attachments option in your form.

Note: When using application/json or application/x-www-form-urlencoded content format, you can store your attachments in third-party cloud services using the Manage Form Attachments option and the link to the attachments can be sent through Webhooks. 

Share this post : FacebookTwitter

Still can't find what you're looking for?

Write to us: support@zohoforms.com