All integrations

AI & assistants Available

OpenAI

One key for the AI features, and optionally a second one for speech. 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: a feature that uses the microphone switched on (Urenhulp, task dictation, the Assistent or meeting transcripts), the permission that belongs to that place, 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. 1 Create an API key for this installation in your OpenAI account.
  2. 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. 3 Fill in Model, or press Modellen ophalen (fetch models) for OpenAI's current list. The built-in default is gpt-5.
  4. 4 Under Functies (features), switch on what you want. The microphone only appears where that place's feature is on: Urenhulp for Uren, task dictation for tasks, Assistent for the assistant, meeting transcripts for meetings.
  5. 5 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. If you record meetings, choose gpt-4o-transcribe-diarize: the other models return only the words, not who said them.
  6. 6 Optionally set Maandbudget audio (seconden) — a separate counter in seconds, because an audio model reports no token usage.
  7. 7 Press Verbinding testen (test connection) and grant ai.use in Instellingen → Rollen (Settings → Roles) to the roles allowed to use the features.

The same core as every provider

The provider changes, nothing else does. Every feature switches on and off on its own and 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.

  • Hours: press Inspreken beside Snel toevoegen, speak a line and read the transcript before adding; a recording stops after two minutes
  • Tasks and the assistant: up to five minutes, and a second recording appends rather than replacing the first
  • Meetings: the recording goes to the server a minute at a time while you record, and a long recording is transcribed in parts
  • Over a limit you get a message, never a silent truncation

A microphone only where it can work

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
  • That place's feature is on: Urenhulp, task dictation, Assistent or meeting transcripts
  • The browser supports MediaRecorder and getUserMedia, resolved after mount and never guessed from a user agent
  • The user holds the permission to create what the transcript becomes: a time entry, a task

Permissions

Grant these to the role that manages this integration (Settings → Roles). Admin-only by default, and never to the client role.

  • ai.settings.manage Manage Instellingen → AI: provider, keys, models, features, budgets, the test button and the usage meter. Admin-only by default.
  • ai.use Use the AI features, including transcribing a recording. Granted to admin and member by default.
  • time.entry.write Additionally 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

  • On Uren 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. For a task it is processed straight away, but the transcript stays editable with Opnieuw verwerken (process again).
  • A meeting longer than 25 minutes is transcribed in parts with gpt-4o-transcribe, and OpenAI numbers the speakers afresh per part. For long meetings Mistral Voxtral serves better: three hours in one request.
  • 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 only writes what is on a stated list and only when you ask; the time assist and task dictation return a draft you review.

Where to find it Instellingen → AI (Settings → AI), with the Spraak naar tekst (speech to text) fieldset below it; the microphone itself sits on Uren beside Snel toevoegen, in the new-task dialog, in the assistant and under Meetings.

Read the guide

More in this category

Other integrations