TimeTracking

Tba

A Time Tracking (formerly timerecording, German: Zeiterfassung) represents time an account recorded for its party. It is either standalone or booked through a Process Feed entry or a user task feed entry, and can be linked to a Property and classified by a feed category.

Access and Visibility

RoleDescription
Account with "Zeiterfassung"Can access their own time trackings
Account with "Zeiterfassung Administration"Can additionally access the time trackings of all accounts of their party

Duration

duration is the recorded time in seconds and always matches the time between startedAt and endedAt. How these values come about depends on how the time was recorded:

Recorded asstartedAtendedAtduration
Time rangeEntered start (swapped with the end if it lies after it)Entered endendedAt - startedAt
Duration on a Process Feed entryCreation date of the entry, moves along when that date changesstartedAt + durationEntered duration, adds up when further time is booked on the entry
Duration on a user task feed entryMoment of bookingstartedAt + durationEntered duration, adds up when further time is booked on the entry

Searching Time Trackings

🚧

Always restrict the time range

Parties that record time on a daily basis accumulate a large number of time trackings over the years. Requesting them without a time range has to count the entire history of the party, which can take several seconds. Therefore, the list endpoint GET /api/time-trackings is not suitable for larger parties.

Instead, use POST /api/time-trackings/search and always pass startedFrom and endedUntil, limited to the period you actually need (e.g. a week or a month). A single bound is not enough, as it leaves the time range open towards the past or the future.

{
  "startedFrom": "2026-10-01T00:00:00Z",
  "endedUntil": "2026-10-31T23:59:59Z"
}

⇒ Returns the time trackings that start on or after 2026-10-01 and end on or before 2026-10-31.

Further filters such as accountId, propertyId, processId or feedCategoryId narrow the results down further, but do not replace the time range.