Leave, absence and time
Rippling to Protime integration: workers with a contract in Protime, absence back as approved leave in Rippling
With an integration between Rippling and Protime, every worker who clocks in the Netherlands or Belgium appears in Protime automatically, with a contract based on the work schedule in Rippling. KoppelHet enters absence approved in Protime as an approved leave request in Rippling, so the balance and leave calendar in Rippling are correct.
What the integration does
Organisations that use Rippling as their HR system and clock with Protime in the Netherlands or Belgium enter new colleagues into Protime by hand. Leave is arranged at the clock or in the Protime app, but does not reach Rippling, so the balance and calendar there fall behind.
- HR hires someone in Rippling, with a work location in the Netherlands or Belgium and a work schedule.
- KoppelHet puts the person in Protime, with a contract from the start date and the department and work location.
- The employee requests leave in Protime and the manager approves it there.
- KoppelHet creates a leave request in Rippling with the status approved.
- If the absence changes or disappears in Protime, KoppelHet cancels the request in Rippling and creates a new one where needed.
Back: Approved absence as a leave request with status approved · Custom hours on the first and last day
What to watch for with Rippling and Protime
- Protime only allows absence to be read through the API. Rippling accepts a leave request with the status approved, but only from a user who manages leave. KoppelHet therefore works with a token of such an administrator; leave is requested and approved in Protime, and Rippling records the result.
- In Rippling you can only set custom hours for the first and the last day of a request. Protime reports a day part and a duration per day. If a short day falls in the middle of a series, KoppelHet splits the absence into separate requests in Rippling, so the hours per day are right.
- Rippling allows a request that is still pending to be edited, and a status change must be a separate call. A moved absence from Protime is already approved in Rippling. KoppelHet sets the old request to cancelled and creates a new one with the right dates, because Rippling has no delete for leave.
- Protime promises no order for webhooks and can send a notification twice. Each notification has a version marker you can compare. KoppelHet only processes a newer version of the same absence, so a late, old notification does not overwrite approved leave in Rippling.
- If a Protime webhook fails for 72 hours, Protime disables it and missed notifications are not resent after it is switched on again. After such an interruption KoppelHet compares all absence of the recent period with the requests in Rippling and fills in what is missing.
- The work schedule in Rippling gives the scheduled hours per weekday. Protime wants the hours in minutes, the number of working days per week and a contract period in whole weeks on a contract. KoppelHet adds up the hours and the days with hours from the schedule and creates a contract with a period of one week.
- Rippling has no endpoint to list leave policies, but it does list leave types. Protime works with its own absence codes. KoppelHet sets up a table from Protime code to Rippling leave type at the start, and flags a code that is not in it instead of booking a guess.
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
Why request leave in Protime and not in Rippling?
Because Protime does not accept absence through the API. Whoever arranges leave at the clock does so in Protime; Rippling receives the result.
Do clocked hours go to Rippling?
Not in this integration. Clocked hours for payroll can be added later as an extension.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Rippling through the REST API. Workers through List workers (filter updated_at; number, status, start_date, end_date, department, work_location_id, work_schedule). Leave back with POST /leave-requests/ (worker_id, status APPROVED, start_date, end_date, start_date_custom_hours, end_date_custom_hours, leave_type_id) and PATCH /leave-requests/{id} with status CANCELED; scope leave-requests.read-write. Leave types through List leave types, balances through List leave balances.
- Protime through the Protime API (v1) with OAuth 2.0 client credentials. POST people with externalReferenceIdentifier, POST contracts (person via @employee-number, from, contractHoursInMinutes and fullTimeEquivalentInMinutes 1 to 5999, numberOfWorkingDaysPerWeek 0 to 7, numberOfDaysInContractPeriod 7 to 364 in multiples of 7, kind Contract or Addendum) and the history for department and work-location. Absence through webhooks on absences (changeType InsertOrUpdate or Delete, changeVersion, Authorization HMAC-SHA256, retries up to 72 hours).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Rippling | Field in Protime | Notes |
|---|---|---|
number | @employee-number (externe referentie) | Fixed key |
user.name (given_name, family_name) | firstName, lastName | |
start_date en end_date | inServiceDate en outOfServiceDate | |
work_schedule (uren per weekdag) | contractHoursInMinutes en numberOfWorkingDaysPerWeek | |
department | department-history | |
work_location_id | work-location-history | Through a table |
Afwezigheidsdefinitie (Protime, terug) | leave_type_id | Through a table per absence code |
dayPart en durationInMinutes (Protime, terug) | start_date_custom_hours en end_date_custom_hours |
Related
Carerix → Rippling
Carerix to Rippling integration: successful match as a hire for review in Rippling
Greenhouse → Rippling
Greenhouse to Rippling integration: every hire straight into Rippling for review
Recruitee → Rippling
Recruitee to Rippling integration: hired candidates ready to hire
Rippling → 4PS Construct
Rippling to 4PS Construct integration: own employees of the construction entity in 4PS, with department as a dimension