Zoho Creator to Zoho Writer for prefilled documents...

Zoho Creator to Zoho Writer for prefilled documents...

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.
Data Center Region API Domain
US United States https://www.zohoapis.com/writer/api/v1/...
EU Europe https://www.zohoapis.eu/writer/api/v1/...
IN India https://www.zohoapis.in/writer/api/v1/...
AU Australia https://www.zohoapis.com.au/writer/api/v1/...
JP Japan https://www.zohoapis.jp/writer/api/v1/...
CA Canada https://www.zohoapis.ca/writer/api/v1/...
CN China https://www.zohoapis.com.cn/writer/api/v1/...
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.

    • Recent Topics

    • Introducing Formula Fields for performing dynamic calculations

      Greetings, With the Formula Field, you can generate numerical calculations using provided functions and available fields, enabling you to derive dynamic data. You can utilize mathematical formulas to populate results based on the provided inputs. This
    • Can I view the KB in the same way as a customer logged in as my Agent?

      Sorry if this seems a mad question.  I have some Articles that I want to be seen by my Agents and the status of these is set to Agents only.  We also have some that are set to Public. When I sign in with my private email address (as a customer) I can
    • Disable Sign Up option in Zoho Creator Portal and show only Sign In page

      Is it possible to disable the Sign Up option in a Zoho Creator portal? The requirement is to show only the Sign In page and completely remove or hide the Sign Up page, so users cannot create accounts directly from the portal login page. Is there any setting
    • What’s New in Zoho Inventory — Latest Features, Integrations & Updates | December 2025

      Zoho Inventory has evolved significantly over the past months, bringing you smarter, faster, and more connected tools to streamline your operations. Whether you’re managing multichannel sales, complex fulfillment workflows, or fast-moving stock, our newest
    • Push Notification for New Bookings in Zoho Bookings App

      when a someone schedules an appointment through the booking page, is there any option to receive a push notification in the mobile app?
    • Which user's capacity is used for Shared Mailbox storage?

      We use shared mailboxes at our company, and their size is increasing daily. Which user(s)'s total mailbox limit is being used up by this space?
    • Zoho Books (and other Finance Suite Apps) - Clickable Item Name on Invoices and Reports

      Hi Zoho Books team, It would be really helpful if the Item Name on Reports were clicable to take me to the item. The same on Invoices, often I am looking at an invoice and I want to look at the deails of a product. A link here would be helpful to jump
    • Incorrect Functioning of Time Logs API (Version 3)

      We need to fetch the list of time logs for each task for our company internal usage. We are trying to achieve it by using the next endpoint: https://projects.zoho.com/api-docs#bulk-time-logs#get-all-project-time-logs Firstly, in the documentation the
    • Evernote (ENEX) import limitations

      I have been with Evernote since 2010, but the latest price increase is ridiculous. I am currently testing Zoho Notebook as a replacement. I am impressed so far - if it were not for critical need to import legacy Evernote notes, I would 100% migrate to
    • Print a document from Zoho Writer via Zoho Creator

      If i use the code below i can get writer to create a new document or email it to me but i want to be able to print it directly from the browser and not have to send it via email and then print. Below is the code im using. Attached options form zoho writer
    • Can I create a CODE 128 custom field for my items in Zoho Inventory and then use it for generating Sales Orders?

      Can anyone helps me, I don't want to use the SKU code for scanning my products.  ​Because all my products have a CODE-128 label attached.
    • Prevent duplicate with custom fields?

      I was wondering something about custom field/custom modules in Zoho Desk. For some reason you can make a custom field mandatory but not unique? For example, if I create a custom module to manage equipment and renewal and make a field serial number no
    • Multiple Vendor SKUs

      One of the big concerns we have with ZOHO Inventory is lack of Vendor Skus like many other inventory software packages offer. Being able to have multiple vendor skus for the same product would be HUGE! It would populate the appropriate vendor Sku for
    • Create Invoice automated with Package

      Does anyone knows how to create an invoice from a SO when we have created the package? We do these manually. and validate that the product packed is the product invoiced (if the order is partially packed) Regards, JS
    • Unable to integrate Zoho Projects and Zoho Workdrive

      I'm a Zoho One subscriber. When I go to Zoho Projects > Settings > Marketplace > Zoho Apps I do not see an option for Zoho Workdrive but I do see one for Zoho Docs that does nothing. How do I get the option to integrate Zoho WorkDrive and Zoho Proje
    • Disable payment thank-you emails

      Hello, can someone please tell me how to disable sending of the "Payment Thank-You" emails? 
    • Internal Fillable Contract with Zoho Writer (Before Sending to Client)

      Hi everyone, I’m trying to automate the following process in Zoho CRM and would appreciate some guidance. Process: When a Deal moves to a specific stage, CRM triggers an automation. CRM sends a contract template to an internal team member so they can
    • 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
    • Help with deluge script

      Hi Community, this is my first Deluge script. I've pieced it together from reading various articles I want to use it in a workflow to 1 Convert a lead to a contact 2. Create a record in a custom module Below is what I have got so far but it does not fire
    • Marketer's Space: Why email authentication matters in Zoho Campaigns

      Welcome back to another post in Marketer's Space! If you've recently started using Zoho Campaigns, you've probably come across terms like SPF and DKIM. You may have also noticed emails that show "via zcsend.net" in Gmail when testing or sending campaigns.
    • Feature Request: "Send Invitation" Toggle for Events

      I am writing to request a critical "Quality of Life" update for the Activities module. Currently, adding people to the Participants field in an Event triggers an automatic email invitation/acceptance tracking with no way to opt-out. For general events
    • Edit email address that appears on invoice

      Hi How do I change the email address that appears on invoices, it is showing the email address that i used to sign up to zoho with but I want to change it to another email address that we use for accounts. also is there a way to edit the position of a
    • Anyone worked out how to export or screengrab a full heatmap?

      I'd love to be able to include a copy of a heatmap in a report but can't work out how to grab the whole thing as there doesn't appear to be an export function? Thanks in advance.
    • Introducing Zoho Sprints 3.0

      Zoho Sprints is consistently evolving in steady increments. The introduction of the latest version, with its enterprise level solutions, brings to you advanced capabilities that propel your agile efforts in the right direction. Here's a quick glimpse
    • Google Fonts Integration in Pagesense Popup Editor

      Hello Zoho Pagesense Team, We hope you're doing well. We’d like to submit a feature request to enhance Zoho Pagesense’s popup editor with Google Fonts support. Current Limitation: Currently, Pagesense offers a limited set of default fonts. Google Fonts
    • Clone entire dashboards

      If users want to customize a dashboard that is used by other team members, they can't clone it in order to customize the copy. Instead they have to create the same dashboard again manually from scratch. Suggestion: Let users copy the entire dashboard
    • Clone Entire Zoho Boooks Organization, including all transactions for testing & training

      Can Zoho Books support help with direct cloning of entire Zoho Books & Inventory Organization? including all transactions, just like a copy & paste or disk cloning. Is this possible?
    • Restrict portal signup until registration form and payment are completed

      Hi everyone, I am working on a Zoho Creator portal for a project. In our business flow, users must first fill out a registration form and pay a registration fee before they are allowed to access the portal. However, when I share the portal link, users
    • Zoho Creator In-App Notification

      Hi Team, I have implemented an in-app notification using code, as it required some customization. I followed the example in the link below: https://www.zoho.com/deluge/help/pushnotify-using-deluge.html#Example I have a couple of questions regarding this
    • System Components menu not available for Tablet to select language

      I have attached a screenshot of my desktop, mobile, and tablet menu builder options. I am using 2 languages in my application. Language Selection is an option under the System Components part of the menu, but only for my desktop and phone(mobile). My
    • Tip #64- Exploring Technician Console: Screenshot- 'Insider Insights'

      Hello Zoho Assist Community! Have you ever needed to capture exactly what's happening on a remote machine, whether to document an issue, guide a customer, or keep a record of your session? That's where the Screenshot feature in Zoho Assist comes in! With
    • Integration of CRM and Recruit

      hi team, Is it possible to sync deals <> job openings from only 1 pipeline? My configuration of CRM has pipeline for each business unit, so I will have all data in the CRM system. body leasing and recruitment is one BU (hence 1 pipeline) - can I sync
    • Relating Invoices to Projects

      Hi Zoho team, If I have already created previously an invoice in Books, so I want to know how can I associate it with a relevant project? Thank you
    • Create a quote/estimate that includes a range of prices

      I am interested in using Zoho Books' Quote templates to create estimates for my customers. I do a mix of fixed-bid quotes and quotes based on an hourly rate. For the hourly rate quotes/estimates, I like to include a price range, for example: 2-4 labor
    • Budget

      I have just upgraded to the standard plan in order to be able to utilize the budgeting function and record budget amount
    • Capirec bank Automatic feed update

      Can anyone tell me if Zoho supports Automatic bank feed update from a Capitec bank account in south africa?
    • Restrict Payment Methods

      Allow us to restrict certain payment methods specific for each customer.
    • ZOHO Reports are taking longer time to get refresh

      Hi Team, Since last few days, I'm facing issues in getting updated reports. For eg: right after making an expense entry or even posting a journal, it is taking longer then expected for the updated reports. Refer below: "You are viewing the report that
    • Free webinar! Accelerate deals with Zoho Sign for Zoho CRM and Bigin by Zoho CRM

      Hello, Paperwork shouldn’t slow you down. Whether you’re growing a small business or running a large enterprise, manual approvals and slow document turnaround can cost you time and revenue. With Zoho Sign for Zoho CRM and Bigin by Zoho CRM, you can take
    • Can Zoho Marketing Automation send OTP codes via WhatsApp during user registration?

      The flow I would like to implement is: A user signs up in the mobile app and enters their phone number. The system generates a one-time verification code (OTP). The OTP is sent to the user via WhatsApp message. The user enters the code in the app to confirm
    • Next Page