Everhour logoAFAS Profit logo

Leave, absence and time

Everhour to AFAS integration: approved weekly timesheets as project costing in AFAS, leave back in planning

With an integration between Everhour and AFAS Profit, the hours from an approved Everhour weekly timesheet go to AFAS automatically as project costing on the right project and hour type, so project administration and payroll can work with them straight away. Approved leave from AFAS appears as time off in Everhour, so capacity planning works with who is actually there.

What the integration does

Organisations that log project hours in Everhour and run projects, invoicing and payroll in AFAS Profit export the hours every week, look up the AFAS project per line and import them. Hourly paid staff are paid on those lines, and because leave is only in AFAS, capacity planning in Everhour assumes everyone is there.

  1. Employees log hours on tasks in Everhour and submit their week for approval.
  2. An admin approves the week, possibly per day.
  3. KoppelHet retrieves the approved days and looks up the AFAS project and hour type for each Everhour project.
  4. The hours appear as project costing lines in AFAS, with the Everhour record as reference. Hour types linked to a pay component go on from there to the payroll run.
  5. Approved leave from AFAS appears as time off in Everhour, so planning no longer counts those days.
Everhour → KoppelHet → AFAS ProfitSOURCEEverhourTARGETAFAS ProfitKoppelHetmapping · logging · monitoringEverhour → KoppelHet → AFAS ProfitSOURCEEverhourTARGETAFAS ProfitKoppelHetmapping · logging · monitoring
Out: Hours per employee, day, project and task · Approval of the weekly timesheet · Leave balance as allocation (back, optional)
Back: Approved leave as time off · Leave balance as allocation, if you want it

What to watch for with Everhour and AFAS Profit

  • Everhour approves hours per week, and an admin can approve or reject single days within that week. KoppelHet only takes over the approved days. A rejected Tuesday only reaches AFAS once it has been resubmitted and approved.
  • Everhour sends a notification when hours change, but not when a week is approved. The integration therefore checks the status of the weekly timesheets per week and still picks up a late approval before the period closes in AFAS.
  • A project costing line in AFAS can no longer be changed after it is marked ready and cannot move to another period. If someone changes hours in Everhour afterwards, KoppelHet books the difference as a new line in the current period, with a reference to the original Everhour record.
  • AFAS only takes hours from project costing into the payroll run per day for employees with a daily schedule. For employees with a schedule in hours per week the Everhour hours stay project hours for costing and invoicing, and do not go to payroll as worked hours.
  • AFAS records leave in minutes. Everhour only knows time off as a whole, half, quarter or three-quarter day. KoppelHet rounds to the nearest part of the day and reports leave that does not fit, so planning does not quietly count an hour too many or too few.
  • Users cannot be created in Everhour through the API; they are invited in Everhour itself. The integration looks up every Everhour user by email address in AFAS. A user without a match gets no hours in AFAS and appears as an alert.
  • Everhour stores time in seconds per task, AFAS expects a number of hours that it does not calculate from start and end time itself. KoppelHet converts and totals per day and project, so the project costing in AFAS matches the total in Everhour.

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, architecture and compliance

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.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Do the hours also go to invoicing in AFAS?

Yes, if the project in AFAS is set up as chargeable. The costing line is the same for project costs, invoicing and, through the hour type, the payroll run.

Which Everhour account does the integration use?

The API key belongs to one user and works with that user's permissions. We use an admin account that may see the whole team's hours and approve leave.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Everhour is read through the Everhour API (api.everhour.com, labelled beta by Everhour) with an API key in the X-Api-Key header, preferably with a fixed X-Accept-Version. Weekly timesheets through GET /timesheets?weekId= (Timesheet ID = user ID plus week ID), time records through GET /team/time. Rate limit 100 requests per 10 seconds; above that 429 with Retry-After.
  • Everhour webhooks cover api:time:updated and api:timer:stopped among others, but not approval of a weekly timesheet. Time off goes to Everhour through POST /resource-planner/assignments with type time-off, timeOffType, timeOffPeriod and status approved; balances through /allocations.
  • In AFAS we write through the UpdateConnector PtRealization (or PtRealizationWeek for weekly costing) with XpRe as external Id. Whether hours go to payroll is decided by AFAS's integration of project costing and payroll, through hour types linked to a pay component. Leave is read with a dedicated GetConnector on leave entries.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in EverhourField in AFAS ProfitNotes
user (Everhour-id)Medewerker in AFASMatched on the work email address
TimeRecord.idXpRe (extern nacalculatie-Id)Prevents double booking
Project (Everhour)Project in AFASThrough project code or translation table
Taak of projecttypeWerksoort / urensoortDecides whether the hours go to payroll
time (seconden)Aantal (uren)AFAS does not calculate Aantal from start and end time
dateDatum van de nacalculatieregel
Verlofboeking in AFAS (terug)time-off met timeOffType en timeOffPeriod

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.