Merge with Presets
Executes a merge operation on a Zoho Writer document template using the output settings configured in the template. The response format varies based on the template configuration.
Merge Data: Provide exactly one of merge_data, merge_data_csv_content, merge_data_json_content, merge_data_csv_url, merge_data_json_url, or record_id.
Endpoints
OAuth Scope
curl --request POST \
--url https://www.zohoapis.com/writer/api/v1/documents/a1b2c3d4e5f6g7h8i9/mergewithpresets \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data' \
-F 'merge_data={
"data": [
{
"customer_name": "John Miller",
"customer_email_address": "john.miller@zylker.com",
"invoice_number": "INV-2026-045",
"items": [
{
"items.item_code": "SKU-1001",
"items.item_name": "Aria Smartwatch S2",
"items.item_images": [
"https://workdrive.zoho.com/external/sample-image-id-1/download?directDownload=True",
"https://workdrive.zoho.com/external/sample-image-id-2/download?directDownload=True"
],
"items.item_replacement": "Yes"
}
]
}
]
}' \
-F 'merge_data_csv_content=@file_path' \
-F 'merge_data_json_content=@file_path' \
-F 'merge_data_csv_url=https://zylker.com/merge-data.csv' \
-F 'merge_data_json_url=https://zylker.com/merge-data.json' \
-F 'record_id=4876000000123456' \
-F 'webhook_info={
"url": "https://zylker.com/writer/presets-callback",
"retry": 2,
"timeout": 30000
}' \
-F 'test_mode=true'Path Parameters
The unique identifier of the Zoho Writer document template.
Request Body
multipart/form-dataInline merge data as a JSON object. Must contain a data key whose value is a JSON array of records, each being a key-value map matching the template's merge fields. For a subform field, use the subform's name as the key, mapped to an array of row objects; each row's keys follow the <subform_name>.<field_name> convention (e.g. items.item_code).
Hide Sub-Attributes
Array of records used to populate the template merge fields.
A CSV file uploaded in the request body, up to 2 MB. Each row represents one merge record. Supported formats: csv.
A JSON file uploaded in the request body, up to 2 MB. Must contain an array of merge records. Supported formats: json.
A publicly accessible URL pointing to a CSV file of merge records, up to 2 MB. Supported formats: csv.
A publicly accessible URL pointing to a JSON file of merge records, up to 2 MB. Supported formats: json.
A record identifier from Zoho CRM, Zoho Creator, or Bigin. When provided, the API fetches merge data internally from the respective service.
Configures a callback URL to receive the merge status and document details after the merge operation completes.
Hide Sub-Attributes
The URL to which the merge status and document information are sent.
The number of retry attempts if the webhook delivery fails.
The timeout in milliseconds for the webhook request.
The expiry timestamp, in epoch milliseconds, after which the webhook URL is no longer valid. If omitted, defaults to approximately 10 seconds after the request is received.
Arbitrary data that is echoed back in the webhook callback payload.
When true, the merge runs without consuming credit points. The output document will include a watermark. Limited to 50 merges per day per organization. Not supported when the configured action results in inline email delivery.
// Note: payload contains multiple type attributes
// type: object
merge_data = {
"data": [
{
"customer_name": "John Miller",
"customer_email_address": "john.miller@zylker.com",
"invoice_number": "INV-2026-045",
"items": [
{
"items.item_code": "SKU-1001",
"items.item_name": "Aria Smartwatch S2",
"items.item_images": [
"https://workdrive.zoho.com/external/sample-image-id-1/download?directDownload=True",
"https://workdrive.zoho.com/external/sample-image-id-2/download?directDownload=True"
],
"items.item_replacement": "Yes"
}
]
}
]
}
// type: file
merge_data_csv_content = <file>
// type: file
merge_data_json_content = <file>
// type: string(uri)
merge_data_csv_url = https://zylker.com/merge-data.csv
// type: string(uri)
merge_data_json_url = https://zylker.com/merge-data.json
// type: string
record_id = 4876000000123456
// type: object
webhook_info = {
"url": "https://zylker.com/writer/presets-callback",
"retry": 2,
"timeout": 30000
}
// type: boolean
test_mode = true200 Merge executed successfully using the configured template presets.© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.