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.
✓
Template loaded.
Employee data file
A sample excel file is already loaded so you can run the demo now.
If required, edit the sample or add rows, then upload it again to send letters to your own test addresses.
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);
}