Accounts in applications
Personio to Salesforce integration: Salesforce users per legal entity, closed on the last working day
With an integration between Personio and Salesforce, every new sales or service employee in Personio automatically gets a Salesforce user with profile, role, manager and the language and time zone of their legal entity. On the last working day in Personio the user is switched off, even if the termination date falls weeks later because of leave taken.
What the integration does
Anyone using Personio for HR and Salesforce for sales and support often passes new colleagues to the Salesforce administrator through a chat message. Leavers are only deactivated once their end date has passed, often weeks after their last working day.
- HR records the new employee in Personio, with legal entity, department, position, supervisor and start date.
- Personio reports the change; KoppelHet retrieves person and employment.
- If the position belongs in Salesforce, KoppelHet creates the user with the profile for own staff or for external agents, and with the settings of the legal entity.
- A new supervisor or department in Personio updates manager and role in Salesforce.
- After the last working day the user is deactivated; the termination date no longer matters for that.
What to watch for with Personio and Salesforce
- Personio has a last working day and a termination date, which can be far apart because of leave taken. A salesperson who goes on leave no longer needs their pipeline. KoppelHet deactivates in Salesforce after the last working day, so the licence is released earlier too.
- Personio distinguishes own staff and externals. If external sales agents are in Personio, they get their own Salesforce profile and a role at the bottom of the hierarchy, so they only see their own leads and accounts; own staff get the full sales profile. That choice follows automatically from Personio.
- Each legal entity in Personio belongs to a country. That entity sets the company name, language, locale and time zone in Salesforce, so a colleague in Madrid sees quotes with Spanish dates and amounts.
- Personio only reports a change for fields that matter for an account, such as department, position, supervisor and status. A new home address or salary therefore produces no needless update in Salesforce and costs no API requests.
- Personio only returns attributes that are released for the integration. If, for example, the department is missing, a Salesforce user would end up without a role and see nothing. KoppelHet checks the data before the user is created, and reports what is missing.
- Personio retries a notification for up to three days, and notifications from the last thirty days can be requested again. If Salesforce is down for maintenance for a while, KoppelHet still picks up missed departures.
This integration is also part of joiner, mover, leaver.
How we build and run it
- The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
- Every sync and every error is visible in the functional log; on an error your administrator is notified.
- A change that cannot go through is not half-applied but queued for another attempt.
- KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
- After go-live we manage the integration and adjust it when your process changes.
- The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.
Implementation and price
This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.
A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.
Frequently asked questions
Can we not just make the last working day equal to the termination date?
You can in Personio, but then HR loses the difference payroll needs. The integration looks at both and uses the earliest.
What do the external agents see in Salesforce?
That depends on the profile and role you choose for externals. The integration only makes sure every external in Personio gets that profile and no other.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio is read through webhooks (employment.updated fires on, among others, department, position, supervisor, status, last_working_day and termination date) and the Personio API v2, with only read scopes on persons and employments. Webhooks are redelivered for up to three days; events from thirty days can be requested again.
- Salesforce is written through the REST API on the User object with a connected app (OAuth 2.0) and an integration user with Manage Users. Required on create include Username (unique across all Salesforce environments), Alias (at most 8 characters), Email, LastName, ProfileId, TimeZoneSidKey, LocaleSidKey, LanguageLocaleKey and EmailEncodingKey. On departure IsActive = false, or UserLogin.IsFrozen = true when deactivation is refused.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Salesforce | Notes |
|---|---|---|
id | EmployeeNumber | |
first_name of preferred_name | FirstName | |
last_name | LastName | |
Naamgevingsregel per entiteit | Username, Email en FederationIdentifier | |
Naam (ingekort) | Alias | |
position | Title | |
department | Department en UserRoleId | |
employment type (INTERNAL, EXTERNAL) | ProfileId | Different profile for external agents |
legal_entity | CompanyName, TimeZoneSidKey, LocaleSidKey en LanguageLocaleKey | |
supervisor | ManagerId | |
last_working_day | IsActive |
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio