How to merge Subform Fields via Merge API's in Writer?

How to merge Subform Fields via Merge API's in Writer?


Sample Merge Template consisting of both Normal and RL fields:

Hello <<Contacts.First Name>>
Send a mail to <<Contacts.Email>>

Invoice Owner
Invoice Number
Created By
Due Date
<<Invoices.Invoice Owner>>
<<Invoices.Invoice Number>>
<< Invoices. Created By>>
<<Invoices.Due Date>>

Product_Code

Product_Description

Item_Quantity

Item_Price

 

«Products.Product_Code»

 

«Products.Product_Description»

 

«Products.Item_Quantity»

 

«Products.Item_Price»


2. Sample code to get the RL fields info

fields = invokeurl
[
type: GET
connection:"writercrm"
];
info fields;

document_id
 -> It can be derived from the document open url: https://{{domain}}/writer/open/eb4kob4cf65bb6d074af****************
Ex: document_id="eb4kob4cf65bb6d074af****************"

connection_name -> Please refer this link to know more about Connection in Deluge and how to create it. 
Ex: connection_name="writer_name" 

Sample response of Step 2:

 

{

  "merge": [

    {

      "id": "First_Name",

      "groupname": "Contacts",

      "display_name": "First Name",

      "type": "text"

    },

    {

      "id": "Email",

      "groupname": "Contacts",

      "display_name": "Email",

      "type": "email"

    },

    {

      "id": "Invoices",

      "display_name": "Invoices",

      "type": "subform",

      "fields": [

        {

          "id": "Invoices.Owner",

          "groupname": "Invoices",

          "display_name": "Invoice Owner",

          "type": "text"

        },

        {

          "id": "Invoices.Invoice_Number",

          "groupname": "Invoices",

          "display_name": "Invoice Number",

          "type": "number"

        },

        {

          "id": "Invoices.Created_By",

          "groupname": "Invoices",

          "display_name": "Created By",

          "type": "text"

        },

        {

          "id": "Invoices.Due_Date",

          "groupname": "Invoices",

          "display_name": "Due Date",

          "type": "text"

        }

      ]

    },

    {

      "id": "Products",

      "display_name": "Products",

      "type": "subform",

      "fields": [

        {

          "id": "Products.Product_Code",

          "groupname": "Products",

          "display_name": "Product Code",

          "type": "text"

        },

        {

          "id": "Products.Product_Description",

          "groupname": "Products",

          "display_name": "Product Description",

          "type": "text"

        },

        {

          "id": "Products.Item_Quantity",

          "groupname": "Products",

          "display_name": "Item Quantity",

          "type": "number"

        },

        {

          "id": "Products.Item_Price",

          "groupname": "Products",

          "display_name": "Item Price",

          "type": "number"

        }

      ]

    }

  ],

  "sign": {},

  "fill": {}

}

3. Sample code to map the RL fields (via deluge)


invoicesRecords = zoho.crm.getRecordById("Invoices", invoiceId);

 

CustomerInvoice = Map();

CustomerInvoice.put("First_Name", invoicesRecords.get("Account_Name").get("name"));

CustomerInvoice.put("Email", invoicesRecords.get("Account_Name").get("id"));

 

invoicesList = list();

invoiceDetails = Map();

 

invoiceDetails.put("Invoices.Owner", invoicesRecords.get("Owner").get("name"));

invoiceDetails.put("Invoices.Invoice_Number", invoicesRecords.get("Invoice_Number"));

invoiceDetails.put("Invoices.Created_By", invoicesRecords.get("Created_By").get("name"));

invoiceDetails.put("Invoices.Due_Date", invoicesRecords.get("Due_Date"));

invoicesList.add(invoiceDetails);

 

productList = list();

productDetails = Map();

productDetails.put("Products.Product_Code", invoicesRecords.get("Product_Code"));

productDetails.put("Products.Product_Description", invoicesRecords.get("Product_Description"));

productDetails.put("Products.Item_Quantity", invoicesRecords.get("Item_Quantity"));

productDetails.put("Products.Item_Price", invoicesRecords.get("Item_Price"));

productList.add(productDetails);

 

 

CustomerInvoice.put("Invoices", invoicesList);

CustomerInvoice.put("Products", productList)

 

 

mergedata = Map();

mergedata.put("merge_data", {"data": CustomerInvoice});

mergedata.put("subject", "Invoice Details");

 

//optional

mergedata.put("message", "Please find your invoice attached.");

info mergedata;

 

zoho.writer.mergeAndSend("eb4kob4cf65bb6d074af7a7de21e561119eb9", "pdf", invoicesRecords.get("email"), mergedata, "writer_name");

4. Sample JSON data with RL fields (via APIs)

{

    "data": [

        {

            "First_Name": "Amelia",

            "Email": "amelia@zylker.com",

            "Invoices": [

                {

                    "Invoices.Owner": "John",

                    "Invoices.Invoice_Number": 1279,

                    "Invoices.Created_By": "Amelia",

                    "Invoices.Due_Date": "07/10/2020"

                }

            ]

            "Products": [

              {

                "Products.Product_Code": "A123",

                "Products.Product_Description": "Mobile Cases",

                "Products.Item_Quantity": 2,

                "Products.Item_Price": 1000

              }

            ]

        }

    ]

To know how to pass the values for all the available merge field types, please refer this link.



    Zoho CRM Training Programs

    Learn how to use the best tools for sales force automation and better customer engagement from Zoho's implementation specialists.

    Zoho CRM Training
      Redefine the way you work
      with Zoho Workplace

        Zoho DataPrep Personalized Demo

        If you'd like a personalized walk-through of our data preparation tool, please request a demo and we'll be happy to show you how to get the best out of Zoho DataPrep.

        Zoho CRM Training

          Create, share, and deliver

          beautiful slides from anywhere.

          Get Started Now


            Zoho Sign now offers specialized one-on-one training for both administrators and developers.

            BOOK A SESSION





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

                        Write to us:  support@zohoforms.com


                                



                            





                          Manage your brands on social media




                              Zoho Marketing Automation

                                Zoho Sheet Resources

                                 




                                    Zoho Forms Resources


                                      Secure your business
                                      communication with Zoho Mail


                                      Mail on the move with
                                      Zoho Mail mobile application

                                        Stay on top of your schedule
                                        at all times


                                        Carry your calendar with you
                                        Anytime, anywhere




                                              Zoho Sign Resources

                                                Sign, Paperless!

                                                Sign and send business documents on the go!

                                                Get Started Now





                                                        Zoho TeamInbox Resources



                                                                Zoho DataPrep Resources



                                                                  Zoho DataPrep Demo

                                                                  Get a personalized demo or POC

                                                                  REGISTER NOW


                                                                    Design. Discuss. Deliver.

                                                                    Create visually engaging stories with Zoho Show.

                                                                    Get Started Now










                                                                                          • Related Articles

                                                                                          • How to add Zoho Creator subform fields to Writer template?

                                                                                            Due to limitations in the Creator API, subforms in Creator will not be listed in Writer. However, as a workaround you can do the following: 1. Prepare JSON with your form and subform fields as shown in this article step by step. 2. Import this JSON ...
                                                                                          • Working with Fields

                                                                                            Supported field types Supported field types Description Possible Values in the data source Rendered as Notes Plain Text The value of the field is placed as a string in the document. “test” “test” You can select the field in the document and apply the ...
                                                                                          • Create Merge Templates

                                                                                            Overview ​An organization might require sending out many documents in bulk to clients, employees, and its customers, which would contain content common to all the recipients and personalized or unique information that varies from one recipient to ...
                                                                                          • Finish Merge

                                                                                            Finish Actions Email Notifications You can enable email notifications to get notified when the merge is initiated and completed. You will receive an email as shown below, once the merge is initiated with a link to track the status of the merge ...
                                                                                          • How to send digital certificates using Writer's mail merge?

                                                                                            Zylker Academy rewarded those who completed a course successfully with a Digital Certificate. Zylker Academy chose Zoho Writer's mail merge to accomplish this in minutes. Follow these steps to automate the process and send out certificates in bulk ...
                                                                                          Wherever you are is as good as
                                                                                          your workplace

                                                                                            Resources

                                                                                            Videos

                                                                                            Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                                                                            eBooks

                                                                                            Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                                                                            Webinars

                                                                                            Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                                                                            CRM Tips

                                                                                            Make the most of Zoho CRM with these useful tips.



                                                                                              Zoho Show Resources