BoldSign Site Logo

Send Hike Letters in Bulk

Generate a personalized hike letter for every employee from one template, then send them all for eSignature with the BoldSign API.

Step 2 of 4

Upload employee data

One row per employee. Each row generates one letter for each employee and send them for eSignature.

Hike letter template

A DOCX file containing merge placeholders and BoldSign text tags.

 Download template (.docx)
Template loaded.

Employee data file

A sample excel file is already loaded so you can run the demo now.

 Download sample (.xlsx)
Column Example
Employee_IdBS0001
Employee_NameJohn Smith
DesignationSoftware Engineer
Effective_Date01 Aug 2026
Raise_Percentage15%
Rounded_Salary95,000
If required, edit the sample or add rows, then upload it again to send letters to your own test addresses.
 Back

Before any document reaches BoldSign, this screen runs two preparation steps entirely using the Syncfusion library:

1
Excel file parsed and validated
Syncfusion XlsIO reads the uploaded file and checks for the six required columns — Employee_Id, Employee_Name, Designation, Effective_Date, Raise_Percentage, Rounded_Salary. Each valid row is mapped into the HikeLetterTemplateRow object.
2
Employee table shown for verification
An example parsed rows are displayed in the table on this screen so you can review the columns in the preoloaded excel file before anything is sent.
3
Personalised letters generated in memory
Syncfusion DocIO opens a fresh copy of Hike_Letter_Template.docx for each employee and replaces every «Placeholder» field with that row's values — producing one personalised DOCX per employee.
4
Ready to review — nothing sent yet
No data is uploaded to BoldSign at this stage. Click Review & Send on the next screen to dispatch all the generated letters to BoldSign for signature.
All document generation runs on the server using the Syncfusion library. The browser only uploads the Excel file and receives back the parsed row data.
01 Read employee data from Excel
Sample helper
var employees = ExcelService
    .ReadRows("hike_data.xlsx")
    .Select(r => new HikeLetterTemplateRow {
        Employee_Id      = r["Employee_Id"],
        Employee_Name    = r["Employee_Name"],
        Designation      = r["Designation"],
        Effective_Date   = r["Effective_Date"],
        Raise_Percentage = r["Raise_Percentage"],
        Rounded_Salary   = r["Rounded_Salary"]
    }).ToList();
02 Merge each row into the template
Sample helper
// Replaces <<Employee_Name>>, <<Raise_Percentage>> …
// BoldSign text tags in the template are left untouched.
foreach (var emp in employees)
{
    emp.DocBytes = TemplateMergeService
        .Merge("hike_letter.docx", emp);
}