In response to the question about connecting Zoho Creator to Zoho Writer for prefilled documents, I wanted to share a working implementation that demonstrates how to use the
record_id parameter with the Zoho Writer Merge API. This allows Writer to automatically fetch data from your Creator record without manually building the merge data map.
The Solution
According to the
official Merge and Sign documentation, instead of using
merge_data, you can pass the
record_id and Writer will fetch the data internally:
Key Insight:
This approach is applicable only for Zoho CRM, Creator, Recruit and Bigin templates. When you pass the record_id parameter, Zoho Writer automatically retrieves the field values from your Creator record - no need to manually construct a merge data map.
Working Script Example
Here's a complete Deluge function that demonstrates using the Creator record ID with the Merge and Sign API:
Pro Tip:
When configuring your merge template in Writer, you'll connect it to a Creator report as the data source. If you trigger a merge manually within Writer, all fields will populate correctly. However, when triggered via the Merge API, Writer uses the
Creator Get Record by ID API to fetch data from your report — this means any fields not included in the connected Creator report will return empty in the merged document. Ensure all fields you need are present in the Creator report before using the API.
void zWriterSign.sendForSigning(Form_Name fnRecord)
{
//fetch employee record
eeRecord = Employee[ID = fnRecord.Employee_Lookup];
//
//Writer template ID (found in document URL)
templateId = "dfd8f76sf0dfdfeb8974ifcx9873d9876d8s03";
//
//Use the Creator record ID - Writer will fetch the data automatically
recordId = fnRecord.ID.toString();
//
param = Map();
param.put("record_id",recordId);
param.put("service_name","zohosign");
param.put("filename",fnRecord.Field_Name);
//
//Build signer list
signerList = List();
//
//First signer - approver
signerObj1 = Map();
signerObj1.put("recipient_1",ifnull(eeRecord.Email,"fallback@example.com"));
signerObj1.put("action_type","approve");
//approve|sign|view|in_person_sign
signerObj1.put("language","en");
signerList.add(signerObj1);
//
//Second signer - actual signer
signerObj2 = Map();
signerObj2.put("recipient_2",fnRecord.Signer_Email);
signerObj2.put("action_type","sign");
//approve|sign|view|in_person_sign
signerObj2.put("language","en");
signerList.add(signerObj2);
//
param.put("signer_data",signerList);
param.put("sign_in_order","true");
//
//Optional: custom message
if(!fnRecord.Custom_Message.isEmpty())
{
param.put("message",fnRecord.Custom_Message);
}
//
//Optional parameters
param.put("reminder_period","3");
param.put("set_expire","7");
param.put("test_mode",true);
//
//Execute the merge and sign request
newSignMerge = invokeurl
[
url :"https://www.zohoapis.eu/writer/api/v1/documents/" + templateId + "/merge/sign"
type :POST
parameters:param
connection:"zwritersign"
];
//
info newSignMerge;
}
Important: Data Center Considerations
The API endpoint URL must match your Zoho data center. Using the wrong domain will result in authentication failures or data access issues.
How to determine your data center:
- Log into your Zoho Creator application
- Check the URL in your browser's address bar
- If it shows
creator.zoho.eu, use zohoapis.eu - If it shows
creator.zoho.com, use zohoapis.com - Match the domain suffix accordingly for other regions
Prerequisites
Before using this API, ensure you have:
1. Template Access
Open your Writer template at least once from the Zoho Writer dashboard before sending API requests. Navigate to the hamburger menu → Automate tab.
|
2. OAuth Connection
Create a connection in Creator with the required scopes:
ZohoWriter.documentEditor.ALL
ZohoWriter.merge.ALL
ZohoSign.documents.ALL
|
Template Field Mapping:
Your Writer template merge fields must match your Creator form field names exactly. When using record_id, Writer automatically maps fields by their link names.
Available Merge API Endpoints
The record_id approach works with multiple Writer Merge APIs:
| API |
Endpoint |
Purpose |
| Merge and Sign |
/merge/sign |
Merge document and send for electronic signature via Zoho Sign |
| Merge and Email |
/merge/email |
Merge document and send as email attachment |
| Merge and Store |
/merge/store |
Merge document and save to Zoho WorkDrive |
| Merge Document |
/merge |
Merge and return download link (expires in 2 days) |
| Merge and Share Fillable |
/merge/sharetofill |
Generate pre-filled fillable links for data collection |
Signer Configuration Options
//Available action types for signers:
signerObj.put("action_type","sign"); //Requires signature
signerObj.put("action_type","approve"); //Approval only, no signature
signerObj.put("action_type","view"); //View only access
signerObj.put("action_type","in_person_sign"); //In-person signing
//Optional: Specify recipient name
signerObj.put("recipient_name","John Smith");
//Optional: Add private notes to signer
signerObj.put("private_notes","Please review section 3 carefully");
//Optional: Alternative delivery methods
deliveryType = Map();
deliveryType.put("type","sms"); //or "whatsapp"
deliveryType.put("countrycode","+1");
deliveryType.put("phonenumber","5551234567");
signerObj.put("delivery_type",{deliveryType});
Common Issues and Solutions
| Issue |
Cause |
Solution |
| "Invalid merge data" error |
Record ID not found or wrong format |
Ensure record_id is passed as a string using .toString() |
| Empty merge fields |
Field name mismatch between Creator and Writer |
Verify template merge field names match Creator field link names exactly |
| Authentication failure |
Wrong data center domain |
Match API domain to your account's data center |
| "Template not accessible" error |
Template not opened in Writer UI |
Open template once from Writer dashboard → Automate tab |
| Connection scope error |
Missing OAuth scopes |
Regenerate connection with all required scopes listed above |
Pro Tip:
Use param.put("test_mode",true); during development. This allows you to test the merge without consuming Zoho Sign credits (though the output will contain a watermark). Remove this parameter for production use.
📚 Documentation References:
Recent Topics
Agent assignment filter?
Godo day, We are starting to play with FSM to see if it's going to work for our needs. Now so far we have found that it's very restrcitve in the field department you you have layout rules or can't even hide fields depending on the users roles. We can't
Kiosk Page Refresh
We have a Kiosk running from a button in contacts to update values and also add related lists, which works great, but when the kiosk is finished the page does not refresh to show the changes. Is there a way to force the contact to refresh/update when
Tips & tricks: Make SalesIQ automations work for you
Every day, thousands of visitors land on your website. Some browse, some buy, and some leave without a word. But, wouldn’t it be great if you could automatically know who’s interested, engage them at the right moment, and never miss a lead, and all this
Digest Octobre - Un résumé de ce qui s'est passé le mois dernier sur Community
Chers utilisateurs, Faisons le point sur les temps forts du mois d'octobre au sein de notre Community Zoho France. Partager des informations sensibles, comme des mots de passe, peut vite devenir compliqué et risqué. Les données circulent par email ou
How do I fully delete a user account
Hi, I have two old accounts on my CRM which are inactive and show as 'Closed' in the list of users. BUT they are basically still there. How do I fully delete these accounts? They appear in some parts of CRM still such as the on the contact record emails
Automatically Add Recurring Zoho Meeting Events to Zoho Calendar / Zoho Meeting Calendar
Hello Zoho Meeting Team, Hope you are doing well. We would like to request an enhancement regarding recurring meetings created inside Zoho Meeting. At the moment, when we schedule a recurring meeting in Zoho Meeting, it does not appear in Zoho Calendar
Credit Management: #6 Tackling Common Mistakes in Credit Based Billing
Businesses extend credit to build relationships, make buying easy, and drive more sales. But somewhere between extending and collecting, things begin to slip. A few late payments here and there, an overlooked invoice, and a backlog make cash flow feel
Updating Blueprint stage from my Deluge function
Hi all, I need to update the blueprint stage. Its almost working, but ONLY if the current Deal stage is 'Closed Lost'. On any of my custom stages that Ive specified in the pipeline it doesnt work! My code: dealmap = Map(); deal_stage = deal.get("Stage");
Canvas: is it possible to have a fixed header?
Hello. Does Canvas provide the option to have a fixed header, similar to the standard view? It would also be interesting for other parts of the interface, like the header or sidebar of the tab section. Thanks!
Limited layout rules in a module
There is a limit of 10 layout rules per module. Is there a way to get that functionality through different customization or workflow + custom function (easily accessible), etc. Having just 10 is limiting especially if module contains a lot of data. Are
Using Contains as a filter
We are using Zoho Reports, ServiceDesk Plus analytics. I do not see how to create a report filter using Contains comparison of a string values, is one string contained in another. For example, Task Title contains the word Monitor. Is this possible in Zoho Reports? This reporting feature is available in SDP reporting. Thanks in advance, Craig Rice
Set off Unearned Revenue
Hi, I would like to get a clarification on the below. I have an opening balance of BD.725/- in my Unearned Revenue A/c which includes the overpayments of 6 clients. No One of my clients settled his invoices by paying the value of the invoice less the
How Zoho Desk contributes to the art of savings
Remember the first time your grandmother gave you cash for a birthday or New Year's gift, Christmas gift, or any special day? You probably tucked that money safely into a piggy bank, waiting for the day you could buy something precious or something you
Add Webhook Response Module to Zoho Flow
Hi Zoho Flow Team, We’d like to request a Webhook Response capability for Zoho Flow that can return a dynamic, computed reply to the original webhook caller after / during the flow runs. What exists today Zoho Flow’s webhook trigger can send custom acknowledgements
When moments in customer support get "spooky"
It’s Halloween again! Halloween is celebrated with spooky symbols and meanings based on history and traditions, with each region adding its own special touch. While we were kids, we would dress up in costumes along with friends, attend parties, and enjoy
How to backdate record payment for the invoice
I would like to record a payment which happened 2 days ago, but I am not able to select any date later than today. I backdated the invoice, too, but it doesn't change anything
Questions about Zoho mail
Hello, I had up until recently, the free version. I got a warning message that said, "The user account (Redacted email address) 6.02 GB in your organization is almost nearing the allocated storage of 5.00 GB. If the storage exceeds the allowed limit,
How can I delete duplicate transactions?
I want to delete the duplicates not simply exclude them. I have duplicates, because I had automatic bank feeds turned on (had to make sure this critical functionality was working before migrating to Zoho). Now when I import my csv's exported from Wave,
Multiple email addresses
Multiple email addresses: I understand there is the ability to add an additional email field to a contact, but the functionality here needs to be drastically revised. Currently, this second email address does not log under the contact email history, nor is it available as a send address when using the Send Mail button within CRM. We recently migrated from GoldMine. I hate GoldMine, but there is one thing they did well: Email. I suggest copying them. Change the email field to an editable picklist,
ViewID and Zoho Desk API
I'm looking at the documentation for Listing contacts and it looks like you can filter by ViewID. I assume this is views created in a department or all departments. Is this correct? And if so, how do I find the ViewID for that view? EDIT: I see the view
Ability to Link Reported Issues from Zoho Desk to Specific Tasks or Subtasks in Zoho Projects
Hi Zoho Desk Team, Hope you're doing well. When reporting a bug from Zoho Desk to Zoho Projects, we’ve noticed that it’s currently not possible to select an existing task or subtask to associate the issue with. However, when working directly inside Zoho
Print Tickets
We have field engineers who visit customers. We would like the option to print a job sheet with full details of the job and account/contact details.
Zoho Desk integration with Power BI
Hi, I want to be able to create a Power BI report which has live updates of ticket data from zoho desk, is this possile at all? Thanks Jack
Ability to Attach Images When Reporting Issues to Zoho Projects from Zoho Desk
Hi Zoho Desk Team, Hope you’re doing well. We’re using the Zoho Desk–Zoho Projects integration to report bugs directly from support tickets into the Zoho Projects issue tracker. This integration is extremely useful and helps us maintain smooth coordination
Ability to Choose Task List and Add Subtasks When Creating Tasks from Zoho Desk
Hi Zoho Desk Team, Hope you’re doing well. We’re using the Zoho Desk–Zoho Projects integration to seamlessly connect customer tickets with project tasks. While the integration works great overall, we noticed two important limitations that affect our workflow
Sync Task Status from Zoho Projects to Zoho Desk
Hi Zoho Desk Team, Hope you’re doing well. We’re actively using the Zoho Desk–Zoho Projects integration, which helps our support and project teams stay aligned. However, we noticed that when we change a task’s status in Zoho Projects, the change is not
Default/Private Departments in Zoho Desk
1) How does one configure a department to be private? 2) Also, how does one change the default department? 1) On the list of my company's Zoho Departments, I see that we have a default department, but I am unable to choose which department should be default. 2) From the Zoho documentation I see that in order to create a private department, one should uncheck "Display in customer portal" on the Add Department screen. However, is there a way to change this setting after the department has been created?
Zoho CRM IP Addresses to Whitelist
We were told to whitelist IP addresses from Zoho CRM. (CRM, not Zoho Mail.) What is the current list of IP Addresses to whitelist for outbound mail? Is there a website where these IP addresses are published and updated? Everything I could find is over
Color of Text Box Changes
Sometimes I find the color of text boxes changed to a different color. This seems to happen when I reopen the same slide deck later. In the image that I am attaching, you see that the colors of the whole "virus," the "irology" part of "virology," and
The difference between Zoho Marketing Automation and Zoho Campaigns
Greetings Marketers! This post aims to differentiate between Zoho Marketing Automation and Zoho Campaigns. By the time you get to the end of the post, you will be able to choose a product that objectively suits you. What is Zoho Marketing Automation?
Zoho Mail Android app update - View emails shared via Permalink on the app.
Hello everyone! In the latest version(v2.8.2) of the Zoho Mail Android app update, we have brought in support to access the emails shared via permalink within the app. Earlier, when you click the permalink of an email, you'll be redirected to a mobile
How to create a Zoho Mail extension similar to Outlook's OnSend add-in?
Hi, I want to create a Zoho Mail extension similar to Outlook’s OnSend add-in. The extension should: Let the user select headers and footers from a taskpane while composing an email. When the user clicks Send, the extension should: Automatically insert
How to display Motivator components in Zoho CRM home page ?
Hello, I created KPI's, games and so but I want to be able to see my KPI's and my tasks at the same time. Is this possible to display Motivator components in Zoho CRM home page ? Has someone any idea ? Thanks for your help.
Introducing Record Summary: smarter insights at your fingertips
Hello everyone, We’re excited to introduce the Record Summary feature. This powerful addition makes use of Zia to simplify how you interact with your CRM data, providing a seamless, consolidated view of critical record information. Scrolling through the
Delegates should be able to delete expenses
I understand the data integrity of this request. It would be nice if there was a toggle switch in the Policy setting that would allow a delegate to delete expenses from their managers account. Some managers here never touch their expense reports, and
Function #9: Copy attachments of Sales Order to Purchase Order on conversion
This week, we have written a custom function that automatically copies the attachments uploaded for a sales order to the corresponding purchase order after you convert it. Here's how to configure it in your Zoho Books organization. Custom Function: Hit
Kaizen #8 - Handling Recurrence and Participants in the Events Module via API
Hello everyone! We are back this week with an exciting post—Handling recurrence and participants in the Events module through API. First things first—What is the Events module? "Events" is a part of the Activities module in Zoho CRM. An event is an activity that happens at a given place and time. You can find Events on the user's Zoho CRM's home page, Activities home page, Calendar, and in other related records. What are the types of Events? Events are of two types—Recurring and non-recurring events.
Marketer’s Space - Get Holiday-Ready with Zoho Campaigns
Hello marketers, Welcome back to another post in Marketer’s Space! Q4 is packed with opportunities to connect with your audience - from Halloween, Black Friday, and Cyber Monday, to Thanksgiving, Christmas, and New Year. In this post, we’ll look at how
Personalized demo
can I know more about the personalized demo we are construction company and
Can I collect email addresses in a form??
Can I add new subscribers to my email list (hosted in FloDesk) when they check a box and add their email address on a Zoho form?
Next Page