Overview
This tutorial demonstrates how to streamline the employment contract process by automatically sending, signing, and storing contracts. By integrating Microsoft Forms (for data collection), OneDrive (for storing contract PDF templates), the SignatureAPI connector (for electronic signatures with form inputs), and Microsoft Dataverse (for storing employee details from the form and signature completion), you can eliminate manual errors and delays in onboarding new employees.What You’ll Learn
- How to trigger a flow with a new Microsoft Forms response.
- Retrieving and pre-filling a DOCX contract template from OneDrive.
- Creating and sending a signature envelope using SignatureAPI for two recipients.
- Capturing data from text input fields in the signature process.
- Monitoring the signing process and retrieving the signed document.
- Saving the signed contract, adding a row to a Dataverse table, and automatically notifying HR.
The Problem
HR departments often struggle with manually handling contracts, causing delays in onboarding. Common issues include:- Slow processing - manual tasks create delays.
- Errors - mistakes from manual data entry.
- Tracking difficulty - challenges in monitoring signing status.
How Automation Helps
Automation simplifies this process by:- Automatically sending contracts upon form submission.
- Using templates pre-filled with employee details.
- Using the SignatureAPI form to capture data from the signature process and then add a row to a Dataverse table.
- Tracking signature status and storing documents automatically.
- Informing HR instantly once contracts are signed.
Requirements
Before starting, make sure you have:- Power Automate - To build workflows.
- SignatureAPI account - For electronic signatures with form inputs.
- Microsoft Forms - For collecting employee information.
- OneDrive - For storing your DOCX templates.
- Microsoft Dataverse - For storing employee details from the form and signature completion.
- Outlook - For sending notifications (other email providers also work).
Flow Overview
The automation process follows these steps:- Trigger: Microsoft Forms submission starts the flow.
- Data Retrieval: Get employee details and fetch the contract template from OneDrive.
- Signature Process: Create an envelope via SignatureAPI, add recipient details, and attach the DOCX.
- Monitoring: Wait for the contract to be signed.
- Storage & Notification: Save the signed document in OneDrive, add a row to a Dataverse table, and notify HR via email.

Step-by-Step Tutorial
Follow these steps to automate your employment contract process using Microsoft Forms, Microsoft Dataverse, SignatureAPI, and Power Automate:Step 1: Prepare the Contract Template
First, create or update your employment contract template by adding placeholders for dynamic fields (employee details), defining the employer and employee signature fields, and adding a place for the salary amount that the employer will fill during the signature process. To prepare your template:- Open your existing employment contract document (DOCX format) in Microsoft Word.
- Identify each place where employee details should be dynamically inserted (e.g., name, email).
- Insert placeholders using double curly brackets around descriptive keys. Examples:
- Employee first name:
{{employee.first_name}} - Employee last name:
{{employee.last_name}} - Employee email:
{{employee.email}}
- Employee first name:
- Define the location for the employee signature clearly by inserting a signature placeholder using double square brackets, e.g.:
[[employee_signature]] - Define the location for the employer signature clearly by inserting a signature placeholder using double square brackets, e.g.:
[[employer_signature]] - Add a place for the salary amount that the employer will fill during the signature process, e.g.:
[[salary_input]]
Dear{{employee.first_name}}{{employee.last_name}},
This will be the salary amount you will receive per month: [[salary_input]]
Employer Signature:
[[employer_signature]]
Employee Signature:
[[employee_signature]]
- Save your template and upload it to OneDrive (or another preferred storage service).

Step 2: Create the Microsoft Form
Create a Microsoft Form to collect necessary employee details (First Name, Last Name, Email Address).- Visit Microsoft Forms and sign in.
-
Click New Form.

-
Name the form and add the following required questions:
- First Name (Text, required)
- Last Name (Text, required)
- Email Address (Text, required)


-
Save and publish your form.

Step 3: Create the Dataverse Table
Create a Dataverse table to store the employee details from the form and signature completion.- Go to Power Apps and sign in.
- From the left menu, click on Tables.
-
Click the Start with a blank table button.

-
Edit the New column and rename it to First Name. Click on the column name, then on Edit column, and rename it from the Display name field.

-
Add the following columns:
- Last Name (Text)
- Email Address (Text)
- Salary Amount (Text)
- Signature Completion (Text)

-
Rename the table from the Properties button (e.g., Employee Contracts) and click on the Save and exit button.

Step 4: Set Up the Power Automate Flow
Now, create the automated workflow in Power Automate, triggered whenever a form is submitted.4.1 Configure the Trigger
Set the flow trigger to run whenever your form is submitted.- Go to Power Automate and select Automated Cloud Flow.
-
Choose the trigger When a new response is submitted (Microsoft Forms).

-
Select the form you created earlier.

4.2 Retrieve Employee Details
Retrieve the employee details submitted through the form.- Add the action Get response details.
-
Select your form (Form ID) and the response (Response ID) using dynamic content.

4.3 Retrieve Contract Template from OneDrive
Fetch your employment contract template stored in OneDrive.- Add Get File Content using Path from the OneDrive connector.
-
Select the DOCX template stored in your OneDrive.

Step 5: Set Up the Signature Process
In this step, you will configure SignatureAPI to create, send, and track the signature process.5.1 Create a SignatureAPI Envelope
Begin by creating an envelope to hold your contract and signature process.- Add the Create an Envelope action (SignatureAPI connector).
- If prompted, authenticate your connection using your SignatureAPI key from the SignatureAPI Dashboard.
- Set an Envelope Title (e.g., employee name) and email message using dynamic content.
-
From the advanced parameters, select Envelope Routing and set it to sequential. This ensures the envelope is sent to the employer first, and then to the employee.

5.2 Add the Recipient - Employer
Specify who will receive and sign the contract first.- Add Add Recipient action and rename it to Add Recipient - Employer.
- Set the Recipient Name and Recipient Email of the employer (e.g., “John Doe” and “john.doe@example.com”).
-
Set the employer Recipient Key (e.g., “employer”), matching your DOCX placeholders.

5.3 Add the Recipient - Employee
Specify the employee who will receive and sign the contract.- Add Add Recipient action and rename it to Add Recipient - Employee.
- Set the Recipient Name and Recipient Email using form details (Dynamic Content).
-
Set the employee Recipient Key (e.g., “employee”), matching your DOCX placeholders.

5.4 Attach the DOCX Contract Template
Attach your contract template to the envelope and populate it with employee details.- Add Add a Template - DOCX action.
- Select File Content from the OneDrive action.
- Set the Document Title (e.g., “Employment Contract”).
-
Ensure your DOCX template uses placeholders (
{{employee.first_name}},{{employee.last_name}},{{employee.email}}, etc.) and map each field to the corresponding dynamic content from your form.
5.5 Define Signature Placement - Employer
Specify where the employer should sign on the document.- Add Add a Place - Signature action and rename it to Add a Place - Employer Signature.
- Set the Document ID using dynamic content.
-
Use the placeholder (e.g.,
[[employer_signature]]) from your DOCX template. -
Set the Recipient Key using the Add Recipient - Employer action from the dynamic content.

5.6 Define Text Input Placement - Salary Input
Specify where the employer should fill the salary amount.- Add Add a Place - Text Input action and rename it to Add a Place - Salary Input.
-
Use the placeholder (e.g.,
[[salary_input]]) from your DOCX template. - Set the Recipient Key using the Add Recipient - Employer action from the dynamic content. This ensures the salary amount is defined and completed in the signature process by the employer.
-
From the advanced parameters, set Capture As to
salary_input. This ensures that the salary amount is captured as text, allowing you to retrieve it later in the flow.
5.7 Define Signature Placement - Employee
Specify where the employee should sign on the document.- Add Add a Place - Signature action and rename it to Add a Place - Employee Signature.
-
Use the placeholder for the Place Key (e.g.,
[[employee_signature]]) from your DOCX template. - Set the Document ID using dynamic content.
-
Set the Recipient Key using the Add Recipient - Employee action from the dynamic content.

5.8 Start the Signing Process
Trigger the sending of your envelope for signing.- Add Start Envelope action.
-
Set the Envelope ID using the dynamic content from the Create an Envelope action.

Step 6: Monitor and Finalize the Contract
Configure your flow to wait for the signing to complete, retrieve the signed contract, store the data, and notify HR.6.1 Wait for Signature Completion
Pause the flow until both parties have signed the contract.- Add Wait for Envelope Completion action.
-
Set the Envelope ID using the dynamic content from the Create an Envelope action.

6.2 Get Captured Value
Once signed, automatically retrieve the captured salary value.- Add Get a captured value action from the SignatureAPI connector.
- Set the Envelope ID using the dynamic content from the Create an Envelope action.
-
Select the correct Captured Key, which must match the one defined earlier (
salary_input) to retrieve the salary amount filled by the employer.
6.3 Add a Row to Dataverse
Add a row to the Dataverse table with the employee details and the captured salary amount.- Add Add a new row action from the Dataverse connector.
- Select the correct Dataverse Table, which must match the one you created earlier.
-
From the Advanced parameters, select the Fields to map to the employee details and the captured salary amount from the dynamic content.
- Set First Name, Last Name, and Email Address from the form response details.
- Set Salary Amount from the captured value from the Get a captured value action.
- Set Signature Completion from the Wait for Envelope Completion action.

6.4 Retrieve the Signed Contract
Retrieve the completed document.- Add Get a Deliverable action.
-
Select the correct Deliverable ID using dynamic content.

6.5 Save the Signed Contract to OneDrive
Save the signed document for record-keeping.- Add Create File action (OneDrive connector).
-
Set the folder path and filename (ending in
.pdf). -
Map File Content from the deliverable.

6.6 Notify HR via Email
Automatically inform HR that the contract has been signed and saved.- Add Send an Email action (Outlook connector).
- Configure the email recipient (HR), subject, and message.
-
Attach the signed contract file from dynamic content. Use the File Content from the Get a Deliverable action, and set the filename (ending in
.pdf).
Step 7: Test Your Automation
Finally, test the entire process end-to-end.- Save your Power Automate flow.
- Submit a test response through your Microsoft Form.
- Verify the following:
- The form is submitted successfully.
- The flow is triggered and the contract is sent to the employer.
- After the employer fills the salary amount and signs the contract, the employee receives the contract and signs it.
- A row is added to the Dataverse table with the employee details and the captured salary amount.
- The signed contract is saved successfully in OneDrive.
- HR receives an email notification with the signed contract attached.
- Contract sent successfully.
- Employer fills the salary amount and signs the contract.
- Employee receives and signs the contract.
- A row is added to the Dataverse table with the employee details and the captured salary amount.
- Signed document stored correctly in OneDrive.
- HR receives email notification with attachment.
Troubleshooting & FAQ
Common Issues:
- API Key Errors: Ensure your SignatureAPI key is correct and authenticated.
- Dynamic Content Mapping: Double-check that placeholder naming in your DOCX file matches exactly with dynamic content mappings.
- File Access Issues: Verify permissions and file paths in OneDrive.
Frequently Asked Questions:
- What if the contract isn’t sent? Check your SignatureAPI dashboard for errors and verify recipient details.
- Can I adapt this for other document types? Yes, this method is adaptable for any automated document-signing workflow.
- What if the Dataverse row is not added? Verify that the Dataverse table columns match the fields you configured in the flow, and confirm that the captured key matches the one defined in the text input place.
Best Practices & Security
- Always securely manage API keys.
- Regularly check flow runs in Power Automate for any errors.
- Document any flow or template changes for future reference.
Additional Resources
- SignatureAPI Documentation
- Microsoft Forms Help
- Microsoft Dataverse Documentation
- Power Automate Community