> **Source:** https://knowledge.leegality.com/document-execution/workflows/excel-upload/fill-excel-file > **Site:** Leegality Knowledge Base — https://knowledge.leegality.com > **About:** Leegality is a document execution platform covering eSigning, stamps, NeSL, workflows, and REST API integration. > **Navigation:** Every article on this site has a plain-text version at `.txt` (this format). To get an index of all articles with their `.txt` links, read: https://knowledge.leegality.com/llms.txt > **AI Guide:** For instructions on how to navigate this knowledge base as an AI agent, read: https://knowledge.leegality.com/ai-readable.txt --- # How to Fill Excel Template The Excel template is designed to streamline document sending process. Each row in the template represents a single document, ensuring that multiple documents can be processed efficiently for different groups of invitees. ### How Excel Upload Works? Every row in the spreadsheet corresponds to a distinct document that needs to be sent to a unique set of invitees. > **Tip — **Example**** > > - **Row 1:** A document sent to Invitee A, Invitee B, and Invitee C. > - **Row 2:** A separate document sent to Invitee D, Invitee E, and Invitee F. > > You can add multiple rows to send the same document to different groups separately. ## Understanding the Excel Template Before filling out the template, it is essential to understand its structure and restrictions. ### Preview of the Template When running a workflow via Excel upload, it is crucial to maintain the integrity of the spreadsheet template to ensure seamless processing. Please adhere to the following guidelines: - **Preserve the Header Row:** Do not alter the header row in the template, as changes can disrupt the workflow's functionality. - **Avoid Modifying Specific Columns:** Columns labeled **`field(n).id`** and **`field(n).name`** are essential for mapping data accurately. Refrain from making any changes to these columns. > **Info — Please Note** > > - **Color Codes for Guidance:** While reference materials may use color codes (e.g., orange) to highlight specific columns, these colors are for instructional purposes only and are not present in the actual template. - **Custom Mapping for Different Field Names:** If you're using a custom spreadsheet with field names that differ from those in the Leegality template, you'll need to set up [custom mapping](https://knowledge.leegality.com/document-execution/workflows/excel-upload/custom-mapping). This process aligns your internal spreadsheet fields with Leegality's required fields, facilitating accurate data integration. By following these guidelines, you can ensure that your workflows operate smoothly and that all necessary data is correctly processed within the Leegality platform. ## Template Fields & Data Input ### Field Components Each form field in the document has **three key components**: - **field.id**: A unique identifier for each form field. (*Do not modify this value.*) - **field.name**: The label for the field in the document. (*For reference only, do not change this.*) - **field.value**: The actual input value for the field. (*This is the field you need to fill.*) ### Field Types & Accepted Formats #### Radio Button #### Radio Button A single-choice selection from predefined options. - Each option has a separate `field.id`, `field.name`, and `field.value`. - Enter **`TRUE`** in the `field.value` for the selected option. > **Info — Note** > > Ensure only one `field.value` is marked as **`TRUE`** per radio button group. > **Tip — Example** > > Suppose there is a radio button field for **Gender**, with three options: **Male**, **Female**, and **Other**. > > Each option is a separate field with a unique `field.name`, such as `gender(Male)`, `gender(Female)`, and `gender(Other)`. > > If the user selects **Female**, then the `field.value` for `gender(Female)` should be set to `TRUE`, while the `field.value` for both `gender(Male)` and `gender(Other)` should be left empty. This ensures only one option is selected, as required for radio buttons. #### Checkbox #### Checkbox Allows multiple selections from predefined options. - Multiple options are available, each with its own `field.id`, `field.name`, and `field.value`. - Enter **`TRUE`** in the `field.value` to select an option. > **Info — Note** > > You can select multiple options by entering **`TRUE`** in multiple rows. > **Tip — Example** > > Suppose there is a checkbox field for **Preferred Communication Channels**, with three options: **Email**, **Phone**, and **WhatsApp**. > > Each option is a separate field with a unique `field.name`, such as `communication(Email)`, `communication(Phone)`, and `communication(WhatsApp)`. > > If the user selects **Email** and **WhatsApp**, then the `field.value` for `communication(Email)` and `communication(WhatsApp)` should be set to `TRUE`, while the `field.value` for `communication(Phone)` should be left empty. This allows multiple selections, as expected from checkboxes. #### Dropdown #### Dropdown A collapsible list for selecting one option. - Enter the **exact text** of the selected option in the `field.value`. > **Tip — Example** > > Suppose there is a dropdown field for **Country of Residence**, with options like **India**, **Canada**, and **Australia**. > > This is a single field with the `field.name` as `country_of_residence`. > > If the user selects **Canada**, then the `field.value` for `country_of_residence` should be set to `"Canada"`. The value must match the exact text of the selected option. #### Textbox #### Textbox A field for entering freeform text. - Enter any required text input in the `field.value`. > **Tip — Example** > > Suppose there is a textbox field for **Full Name**. > > This is a single field with the `field.name` as `full_name`. > > If the user enters **Ayesha Khan**, then the `field.value` for `full_name` should be set to `"Ayesha Khan"`. The textbox allows freeform text input. #### Date #### Date A field for entering a date. - Use the format **dd-mm-yyyy** unless specified otherwise. > **Info — Note** > > Ensure the date format matches the expected input in the document. > **Tip — Example** > > Suppose there is a date field for **Date of Birth**. > > This is a single field with the `field.name` as `date_of_birth`. > > If the user enters **12th April 1995**, then the `field.value` for `date_of_birth` should be set to `"12-04-1995"`. The date must follow the **dd-mm-yyyy** format unless specified otherwise. #### Image Upload #### Image Upload A field for storing an image as a Base64-encoded string. - Enter a **Base64 encoded URL** of the image in the `field.value`. > **Tip — Example** > > Suppose there is an image upload field for **Profile Photo**. > > This is a single field with the `field.name` as `profile_photo`. > > If the user uploads an image, the `field.value` for `profile_photo` should contain a **Base64-encoded string** representing that image — for example, `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."`. ## Configuring Invitees #### Invitee ### Invitee Contact Details Invitees can be designated as Signers or Reviewers. For each invitee, provide the following information: - **Invitee(0).name:** Full name of the invitee. - **Invitee(0).email:** Email address for sending notifications and signing links. - **Invitee(0).phone:** Phone number for SMS notifications and OTP verifications. ### Group Invitee Details Group Invitees allow multiple participants to sign or review a document, with a specified number required for completion. To configure a group: - **InviteeGroup(1).name:** Name of the group. - **InviteeGroup(1).completion_threshold:** Number of invitees required to complete the group's action. - **Group(1).Invitee(0).name:** Name of each invitee within the group. - **Group(1).Invitee(0).email:** Email address of each group invitee. - **Group(1).Invitee(0).phone:** Phone number of each group invitee. ### CC (Carbon Copy) Invitee Contact Details CC invitees receive updates about the document's progress but do not participate in signing or reviewing. For each CC invitee, provide: - **CC(0).name:** Full name of the CC invitee. - **CC(0).email:** Email address for receiving notifications. > **Info — Note** > > If the workflow creator has pre-configured certain invitee contact details, these will take precedence over any information provided in the Excel template. #### Stamp ### Stamp Details Leegality offers a few ways to affix stamp papers to documents digitally. Depending on your requirements, configure one of the following: #### Single Stamp Series - **Stamp Series:** Specify the stamp series number to use a single stamp paper from the selected series. > **Info — Note** > > If the workflow creator has pre-configured the stamp series, the workflow runner will not get the option to fill the stamp series details in the Excel Template. #### Multiple Stamp Series #### Multiple Stamp Series To configure multiple stamp series for a document, enter the following details in the Excel template. - **multipleStampSeries(n).stampSeries:** Specify the stamp series number. - **multipleStampSeries(n).seriesQuantity:** Specify how many stamps to affix from this series. > **Tip — Example of Multiple Stamp Series in Excel Upload** > > If a workflow includes one stamp series, the fields will be: > > * `multipleStampSeries(0).stampSeries` > * `multipleStampSeries(0).seriesQuantity` > > If two stamp series are configured, the fields will be: > > * For the first stamp series: > > * `multipleStampSeries(0).stampSeries` > * `multipleStampSeries(0).seriesQuantity` > * For the second stamp series: > > * `multipleStampSeries(1).stampSeries` > * `multipleStampSeries(1).seriesQuantity` > > Each additional stamp series follows the same pattern, with the index increasing by 1 for each new entry. > **Info — Note on Pre-Configured Stamp Series** > > - If the *workflow creator has pre-filled stamp series and quantities*, the *workflow runner will not* get the option to fill stamp details in the Excel Template. > - If *only the stamp series is pre-filled* (not the quantity), the *Excel template will have `multipleStampSeries(0).stampSeries` pre-filled*, the *workflow runner must fill in the `multipleStampSeries(0).seriesQuantity`*. > - If *one of the stamp series is fully pre-configured* and another is not: > - The pre-configured series will be hidden in the Excel template. > - The workflow runner must fill in the stamp details only for the remaining series. #### Stamp Group #### Stamp Group - **Stamp Group:** Specify the stamp group number to use a combination of stamp papers. - **Stamp Amount:** Total value of stamps to affix to the document. > **Info — Note** > > If the workflow creator has pre-configured the stamp group and stamp amount, the workflow runner will not get the option to fill the stamp details in the Excel Template. #### GPS Location ### GPS Location Settings To enhance security, you can restrict document signing based on the invitee's geographic location. Configure the following as needed: ### For Single Invitee --- #### **Geo-fencing (Latitude and Longitude Based Restriction):** - **Invitee(0).gps.allowedLatitude:** Latitude coordinate where signing is permitted. (Format: XX.XXXXX, range: -90 to 90) - **Invitee(0).gps.allowedLongitude:** Longitude coordinate where signing is permitted. (Format: XX.XXXXX, range: -180 to 180) - **Invitee(0).gps.permissibleRadius:** Radius (in meters) around the specified coordinates within which signing is allowed. > **Info — Note** > > 1. **When "Allow sender to make changes while running the workflow" is *disabled*:** > > * If **Apply location based restrictions** is enabled but the **Latitude**, **Longitude**, and **Permissible Radius** are *not* pre-filled by the workflow creator: > > → The workflow runner needs to provide the **Latitude**, **Longitude**, and **Permissible Radius** in the excel template. > > 2. **When "Allow sender to make changes while running the workflow" is *enabled*:** > > * Regardless of whether **"Location-based restriction"** is enabled or disabled: > > → The workflow runner can optionally provide **Permissible Radius** in the Excel Template. If left blank, no such restrictions will apply to the invitee. #### **Accuracy Based Restriction:** - **Invitee(0).gps.accuracyThreshold:** Required accuracy (in meters) of the captured location to proceed with signing. > **Info — Note** > > 1. **When "Allow sender to make changes while running the workflow" is *disabled*:** > > * If **Apply accuracy-based restrictions** is enabled but the **Accuracy Threshold** is *not* pre-filled by the workflow creator: > > → The workflow runner will not be able to enter this value in the Excel Template. Instead, the default value from *Settings > Department > Invitee Configs* will apply. > * If the **Accuracy Threshold** *is* pre-filled: > > → The workflow runner cannot edit this value in the Excel Template. > 2. **When "Allow sender to make changes while running the workflow" is *enabled*:** > > * Regardless of whether **"Accuracy-based restriction"** is enabled or disabled: > > → The workflow runner can optionally provide **Accuracy Threshold** in the Excel Template. If left blank, no such restrictions will apply to the invitee. #### For Group Invitee If geo-fencing is enabled for a group invitee, configure the following: - **InviteeGroup(0).gps.allowedLatitude** - **InviteeGroup(0).gps.allowedLongitude** - **InviteeGroup(0).gps.permissibleRadius** - **InviteeGroup(0).gps.accuracyThreshold** #### Company Seal ### Company Seal If the document requires a company or organizational seal: - **Invitee(0).organization.name:** Name of the signer's organization to appear as the company seal in the signature. If left blank, the invitee will be prompted to provide this information during the signing process. #### Certificate Verification ### Certificate Verification To ensure the authenticity of the signer, configure verification against official certificates such as Aadhaar or DSC (Digital Signature Certificate). #### Aadhaar Certificate Details - **Invitee(0).aadhaar.verifyPincode:** PIN code as per the invitee's Aadhaar. - **Invitee(0).aadhaar.verifyYob:** Year of birth as per Aadhaar records. - **Invitee(0).aadhaar.verifyTitle:** Last four digit of Aadhaar Number. - **Invitee(0).aadhaar.verifyGender:** Gender as mentioned in Aadhaar. - **Invitee(0).aadhaar.verifyState:** State of residence as per Aadhaar. #### DSC Token Certificate Details - **Invitee(0).dsc.verifyPincode:** PIN code associated with the invitee's DSC. - **Invitee(0).dsc.verifyState:** State as recorded in the DSC. ## Common Mistakes to Avoid ✅ **Do not modify header fields** – they are essential for processing. ✅ **Ensure required fields are filled** – missing values can cause errors. ✅ **Match data formats** – dates, dropdown values, stamp series, and others must follow specified formats.