How to use incoming webhooks as a data source in Zoho Writer
Overview
Zoho Writer supports incoming webhooks as a data source to directly receive field values from third-party apps like Fillout, Shopify, or any custom app and use them for document generation, without needing to store the data elsewhere first. This enables you to fetch data in real-time from any app that can send webhook payloads and use it to populate documents instantly.
Prerequisites
- Webhook enabled in external app
- Supported payload formats
- JSON
- Form Data
- URL-encoded data
- Dot notation (e.g., customer.name)
- Underscore notation (e.g., customer_name)
- Arrays (single or multi-record)
Steps
- Open your merge template in Zoho Writer.
- In the Automate pane, Under Select Data Source, click + Add a data source to get started.
- Select Incoming Webhook.
- The Get Fields From Incoming Webhook dialog will open.
- Click Get Fields (or Update Fields if fields were previously fetched).
- Writer will list all keys received from the webhook payload under Fields from external app.
- Select the fields you want to use in the merge.
- Click Import.


Note
- Incoming webhook actions cannot start the merge using the selected webhook URL until this dialog is closed.
Subform fields received through the webhook payload are imported as regular merge fields in the main field list, not as subform fields.
How to trigger merge with payload
- Copy the Generated Webhook URL.
- Paste it in the webhook / API destination field of the external application.
- In the external app, send the field values in the same format shown in the “Payload Code to Use” section
- If you select JSON, pass the values in the JSON structure shown.
If you select
Form-Data / URL Encoded, pass the values using the same field IDs shown in the table.

- Trigger the webhook once to send sample data. Zoho Writer will detect the keys and list them for field import.

To avoid mapping issues, make sure future webhook submissions follow the same payload format as shown in the Payload Code section.
How to generate a new webhook URL
- Open your merge template in Zoho Writer.
- In the Automate pane, Under Select Data Source, click + Add a data source to get started.
- Select Incoming Webhook.
- The Get Fields From Incoming Webhook dialog will open.
- In Select incoming webhook URL, select Generate new webhook URL.
- Enter the following details:
- Webhook name (required)
- Description (optional)
- Click Create & Copy to generate the unique webhook URL.

You can now paste this webhook URL into the external application that will send field values to Zoho Writer.
Note
You can generate multiple webhook URLs for different apps or workflows, and select whichever one you need later from the dropdown.How to add document generation to existing Zoho Flow or Zapier workflows
Prerequisites
- Webhook URL of the merge template in Zoho Writer. Refer these instructions to generate the webhook URL.
Steps
- Open your existing Zoho Flow or Zapier workflow in which you wish to add document generation.
- Insert a Webhook action card at the point where you want the document generation to occur (adjacent to the card providing the merge data)
- Configure the webhook action:
- Action Event: Select the POST method
- Paste the Zoho Writer template's webhook URL and map the necessary data fields from the preceding steps in your flow or zap into the webhook's payload. Ensure the keys in the payload exactly match the merge fields in the Writer's merge template.
- Save and test the action to ensure the data is successfully sent and the document is generated.
FAQ
- Can the webhook payload automatically start the merge?
Not in this flow. For triggering merge automatically through webhook calls, refer to this page.
- Can I import only selected fields?
Yes. Only selected fields in the dialog will be added to the merge configuration.
- Can I import additional fields later from the same or a different webhook URL?
Yes. After selecting an incoming webhook as a data source, you can click Import Fields at any time to fetch additional fields. You can use: - the same webhook URL, or
- a different webhook URL
If you choose a different webhook URL during import, it will be used only to fetch the fields and will not be displayed as a data source in the configuration panel. Only the primary selected webhook appears as a data source.
Troubleshooting
Symptom
| Possible Cause
| Recommended Solution
|
Fields do not appear after clicking Get Fields
| No payload received
| Trigger a test event from the external application
|
Some expected fields missing
| Payload has nested or renamed keys
| Trigger payload again and click Update Fields
|
Fields show blank during merge
| Mapping not completed
| Check the Manage Fields section and re-map
|
Webhook rejected in external app
| Wrong request type
| Ensure the app sends the payload through HTTP POST
|
Related Articles
- How to trigger merge using an incoming webhook
- Control merge field rendering through field type settings
- Managing data sources and their limits in Writer's mail merge