AI & assistants Available
OpenAI
One key for the four AI features, and optionally a second one for dictation. What you speak goes to the service you configured yourself, not to your browser's built-in speech recognition.
What you need
- An OpenAI account with an API key. You settle with OpenAI directly.
- The ai.settings.manage permission to configure the provider. Admin-only by default.
- For dictation: the Urenhulp feature on, the time.entry.write permission on the user, and a browser that supports MediaRecorder.
- For dictation: the app reachable over https. Without a secure context the browser grants no microphone access at all.
How to connect it
- 1 Create an API key for this installation in your OpenAI account.
- 2 Open Instellingen → AI (Settings → AI), set Provider to OpenAI and paste the key into API-sleutel. It is stored encrypted and never played back.
- 3 Fill in Model, or press Modellen ophalen (fetch models) for OpenAI's current list. The built-in default is
gpt-5. - 4 Under Functies (features), switch on what you want. Dictation requires Urenhulp to be on: it rides that feature key.
- 5 For dictation, go to the Spraak naar tekst fieldset, set Spraakaanbieder (speech provider) to OpenAI and fill in API-sleutel voor spraak. Spraakmodel is free text; empty means
whisper-1. - 6 Optionally set Maandbudget audio (seconden) — a separate counter in seconds, because an audio model reports no token usage.
- 7 Press Verbinding testen (test connection) and grant
ai.usein Instellingen → Rollen (Settings → Roles) to the roles allowed to use the features, plustime.entry.writefor dictation.
The same core as every provider
The provider changes, nothing else does. Assistent, Schrijfhulp, Urenhulp and Briefing & rapporten switch on and off independently, each can take its own model, and everything adds up in one monthly budget with a meter in Instellingen → AI. Usage keeps counts and labels, never the text of a prompt or a completion.
Dictation at the service you choose
The browser's own speech recognition was deliberately not used: Chrome and Edge ship the audio to Google, Safari to Apple. Instead the recording goes to the speech service your agency configured itself. The price of that choice is that dictation needs its own provider, and does nothing until an admin fills it in.
- Press Inspreken beside Snel toevoegen, speak one line, press Opname stoppen; an elapsed-seconds counter runs while you record
- The transcript lands in the field so you can read and correct it before pressing Snel toevoegen
- Recording stops at 60 seconds and the upload is capped at 8 MB; over the limit is an error, never a silent truncation
Four conditions for the microphone
The button is only drawn when it can actually work, so nobody presses a microphone that then errors out. The settings screen and the control read the same resolved answer, so they can never disagree.
- The organisation has a speech provider that can actually transcribe
- The Urenhulp feature is on
- The browser supports MediaRecorder and getUserMedia, resolved after mount and never guessed from a user agent
- The user holds time.entry.write, because the transcript exists to become a time entry
Permissions
Grant these to the role that manages this integration (Settings → Roles). Admin-only by default, and never to the client role.
-
ai.settings.manageManage Instellingen → AI: provider, keys, models, features, budgets, the test button and the usage meter. Admin-only by default. -
ai.useUse the AI features, including transcribing a recording. Granted to admin and member by default. -
time.entry.writeAdditionally required for dictation: AI access alone must not reach the timesheet, so someone who cannot write hours gets no microphone.
What it deliberately does not do
- The transcript is deliberately not fed straight into the parse. You read and fix it first, because Dutch client names are exactly what a recogniser gets wrong.
- Dictation works only in the Snel toevoegen field on Uren. The assistant panel and the rich-text editor are prepared as the next hosts, but neither uses it today.
- HTTPS only. On an http address the browser draws no microphone and the typed field beside it is the fallback.
- Supported audio containers: WebM, Ogg, MP4/M4A, WAV and MP3, identified by the file's own bytes rather than by a filename or a client-supplied type.
- There is no per-recording language picker. The recogniser is given the user's own locale as a hint.
- The assistant stays read-only and the time assist returns a draft: nothing is ever created or changed on its own.
Where to find it Instellingen → AI (Settings → AI), with the Spraak naar tekst (speech to text) fieldset below it; the microphone button itself sits on Uren (Time) beside Snel toevoegen.
Read the guide