Overview
The Flex HRM × Oneflow integration connects your HR system with Oneflow to streamline employment workflows. It automatically fetches employee details from Flex HRM into Oneflow contracts and updates employee records when contracts are signed.
Additionally, it uploads both pending and signed contract PDFs directly to the employee's Flex HRM profile, keeping your documentation in sync at every stage.
Before you begin
|
PREREQUISITES Ensure you have:
|
Supported workflows
- Fetch Employee Data: Automatically fetch employee details from Flex HRM into Oneflow Documents when you enter an employee number.
- Update on Sign: Update employee profiles and employment periods in Flex HRM with Oneflow document data upon signing.
- Archive Signed Oneflow document: Upload signed and published Oneflow document to employee profiles in Flex HRM.
- Manager Assignment: Add the employee's immediate manager as an owner-side colleague in Oneflow.
- Dynamic Naming: Update the Oneflow document name automatically using employee and template names.
Create a Flex HRM API user
The integration authenticates with Flex HRM using a dedicated API user account. You must create this user in Flex HRM and have its credentials ready before you can complete the Oneflow setup. The credentials are required in Step 2: Prepare your Flex HRM credentials.
Required roles and permissions
The API user must have the following permissions in Flex HRM:
- View and update employees
- View and update employment periods
- View and update employment documents
- Access to all companies whose employees will be managed through this integration
Request an API user from Flex HRM
|
NOTE Flex HRM does not currently provide a self-serve guide for creating an API user. Contact the Flex HRM Customer Delivery team to have the user created with the correct roles and permissions. You can reach the Customer Delivery team through:
When you contact them, specify that you need:
|
|
IMPORTANT Once the API user is created, save the following. You will need them in Step 2:
|
Setup
Step 1: Enable the Flex HRM integration in Oneflow
- Log in to Oneflow as an administrator.
-
Navigate to Marketplace > Flex HRM > Enable.
-
Click the Setup button. A green tick will appear confirming that the connection was successful.
Step 2: Prepare your Flex HRM credentials
You must encode your Flex HRM credentials in Base64 format before sending them to Oneflow Support.
You will need to provide:
- Customer number
- Base64-encoded authentication string
Construct the credential string
Combine your Flex HRM details in the following format with no spaces:
customer_number:username:passwordExample:
6163:Oneflow:pass@1234#- Customer number: The number shown in the bottom-right corner of Flex HRM (next to "Customer")
- Username: Your Flex HRM account username
- Password: Your Flex HRM account password
Encode the string to Base64
- Open a Base64 encoding tool (for example, Filator or your terminal).
|
INFORMATION Video Tutorial: View the encoding steps |
-
Paste your credential string into the input field.
- Click Encode to Base64.
-
Copy the encoded result.
|
NOTE The encoded value will look similar to this: |
Step 3: Contact Oneflow Support to complete setup
Once you have prepared your credentials:
- Contact Oneflow Support with the following information:
- Your Flex HRM customer number (for example, 6163)
- The Base64-encoded credentials string you created in Step 2
- Whether you are connecting to a production or sandbox/test environment
- Oneflow Support will configure the integration on your behalf.
- After configuration is complete, the integration will create a Flex HRM template group in your Oneflow account with 15 default data fields for employee and employment information.
Step 4: Create a Flex HRM template in Oneflow
- In Oneflow, go to Templates > Create template.
- Open the template editor and click the Data fields icon in the sidebar.
-
From the Template groups dropdown, select Flex HRM Template.
- Add data fields to your template:
- Click the pen icon on a form field > Data field.
- Select a Flex HRM data field (for example, Employee number, First name, Email work).
- Click Save.
|
IMPORTANT The Employee number data field is required to fetch employee details from Flex HRM. |
- For text sections, highlight the text and click the Insert data field icon in the editor, then select the appropriate field and click Confirm.
- Click Save, then click Publish to activate the template.
How it works
Triggers and actions
The integration responds to four contract events:
| Oneflow event | What happens |
|---|---|
| Create contract and enter an employee number in the corresponding data field. | Automatically fetches employee details from Flex HRM and populates contract data fields; adds the employee as counterparty participant; and adds the employee's immediate manager as owner-side colleague (if manager assigned). |
| Update employee number in draft | Fetches new employee details; updates contract fields; updates participant if changed. |
| Publish contract | Uploads the draft contract PDF to the Documents section of the employee's Flex HRM profile with status "Pending". |
| Sign contract (all parties) | Updates the employee profile in Flex HRM with contract data and uploads the signed contract PDF to the Documents section of the employee's Flex HRM profile with status "Signed". |
Verify the setup
Test the fetch flow
- Create a contract from your Flex HRM template.
- In the contract, enter a valid Flex HRM employee number into the Employee number field.
- Save the contract and wait a few seconds.
|
NOTE The browser should refresh or update momentarily. |
- Refresh the contract page.
Expected result: The contract's data fields are automatically populated with employee information from Flex HRM (name, address, email, position, employment dates, and manager).
Test the publish and sign flows
Test PDF upload on publish (pending contract)
- Complete any required fields in the contract.
- Click Send for signing to move the contract from draft to pending status.
Expected result:
- A pending version of the contract PDF is uploaded to the employee's Flex HRM profile under the Oneflow Document category.
- The document name in Flex HRM follows the format:
[Contract Name] - Pending.pdfor[Employee Name] - [Template Name] - Pending.pdfif the contract has no name.
- The employee profile data is not updated at this stage (updates only occur after signing).
Test employee update and final PDF upload on signing
- Have all required parties sign the contract.
- Wait for the contract to reach Signed status.
Expected result:
- The employee profile in Flex HRM is updated with data from the signed contract (for any mapped fields that were changed).
- The document name in Flex HRM follows the format:
[Contract Name] - Signed.pdfor[Employee Name] - [Template Name] - Signed.pdfif the contract has no name.
|
NOTE The integration uploads both Pending and Signed versions to track the contract's progression through the signing workflow. The status label in the document name helps you quickly identify which version you're viewing in Flex HRM. |
- Employment period records are created or updated based on the start/end dates and position fields.
- The signed PDF replaces or supplements the pending PDF in the employee's Flex HRM profile under the Oneflow document category.
Data field mapping
The integration maps Flex HRM fields to Oneflow data fields as follows:
| Oneflow data field | Flex HRM field | Type | Object |
|---|---|---|---|
| Employee number | Employment.EmploymentNumber | string | Employee |
| First name | FirstName | string | Employee |
| Surname | LastName | string | Employee |
| National ID number | NationalIdentificationNumber | string | Employee |
| C/O address | AddressRow1 | string | Employee |
| Street address | AddressRow2 | string | Employee |
| Postal code | PostalCode | string | Employee |
| City | City | string | Employee |
| Country | Country | string | Employee |
| Email work | EmailWork | string | Employee |
| Mobile phone private | Phone4 | string | Employee |
| Immediate manager | ImmediateManagerEmployeeId (Name) | string | Employee |
| Position | TitleId (Name) | string | Employment |
| Start of employment | FromDate | date | Employment |
| End of employment | ToDate | date | Employment |
|
NOTES
|
Participant and colleague handling
Employee as participant:
When employee details are fetched, the integration checks the contract's delivery channel and two-factor authentication (2FA) settings:
- If Email delivery is preferred and the employee has a work email, the employee is added as a counterparty participant.
- If SMS delivery is preferred and the employee has a mobile number, the employee is added.
- If Email and SMS is preferred and the employee has both, the employee is added.
- If delivery channel is None or Same device, the employee is not automatically added.
Manager as colleague:
If the employee has an immediate manager in Flex HRM and the manager has an active Oneflow account with the same email address, the manager is added as a colleague (non-signatory) on the owner side.
Troubleshooting
Integration fails to connect
- Cause: Incorrect Base64 encoding or invalid credentials.
- Fix: Double-check your username, password, and customer number. Re-create the Base64 string ensuring no extra spaces are included before encoding.
"Overlapping dates" error
- Symptom: You might see a warning in logs, or data might update partially.
- Cause: Flex HRM prevents creating employment periods that overlap with existing ones.
- System Behavior: The integration is designed to catch this error, ignore the specific overlap conflict, and proceed with other updates (like document upload) so the workflow is not blocked.
Document not uploading
- Cause: File name too long.
- Constraint: Flex HRM has a limit of 200 characters for document names. The integration will attempt to handle this, but ensure your contract names are concise.
Manager not added to contract
- Cause: The manager's profile in Flex HRM lacks a valid email address.
- Fix: Add a valid email to the manager's profile in Flex HRM.
Sync fails on sign
- Cause: The manager is already a party in the contract before the automated sync attempts to add them.
- Fix: Remove the manager manually before signing or ensure they are only added via the automated flow.