Notifications
Knowing when it matters
An agency runs on things that happen to somebody else: a task landing on a colleague, a project budget filling up, a leave request, an e-mail waiting to be reviewed. That becomes one bell everyone reads, and per event each person decides whether it also reaches their inbox or their Slack. Nothing is loud by default: e-mail stays off until someone asks for it.
The bell, and the list behind it
The top bar carries a bell with an unread count; inside are the most recent items, with per-row mark-read, "Alles gelezen" (mark all read) and a shortcut into your own settings. The full list lives under Meldingen: what happened, on which record, by whom and when, grouped per day with today and yesterday at the top. You filter on everything or unread only, and on the kind of record (task, project, client, leave, time entry). Marking read is always reversible, and "Alles als gelezen markeren" clears the lot at once. When the underlying thing is settled the notification stops asking on its own: a decided leave request or a reviewed e-mail disappears for everyone who never opened it.
Twenty-one events, one table
Instellingen → Meldingen (Settings → Notifications) is a matrix: one row per event, one column per channel. Each cell is not on or off but how often: off, immediately, hourly, a daily digest or a weekly digest. So an assigned task can arrive at once while a status change lands in tomorrow's daily digest, without inventing a rule for it. Which rows you see depends on the modules your organisation runs: with no leave module there are no leave rows.
- Tasks: assigned, unassigned, status changed, commented, mentioned, due soon, overdue and scheduled
- Projects: assigned, status changed and a budget threshold reached
- Clients: created, status changed and assigned
- Leave: requested, approved and rejected
- Hours: approved time and a timesheet still empty
- Touchpoints: an e-mail waiting to be reviewed, and being named in one
The agency sets the default, the employee departs from it
An admin fills in the same matrix once under Instellingen → Standaardmeldingen (Settings → Notification defaults); that is what everyone inherits until they have an opinion of their own. On your personal screen every row is badged with where its value came from: the built-in default, the organisation, or your own setting, with a count of how many you overrode and a per-row reset back to inherited. Above the table sits the practical work: how many days before a deadline counts as "due soon", at what time and on which weekday your e-mail digests leave, and a control that sets the whole e-mail column at once. Quiet hours exist as a field but are not applied yet, and the screen says so plainly.
Your own channels, and the team's rooms
Under Kanalen (channels) you connect Slack, Microsoft Teams, Google Chat, Discord, Telegram, a plain e-mail address, a JSON webhook or any other Apprise URL. You paste what the provider hands you and it is converted for you, with per-provider instructions telling you where to copy that URL from. "Testen" sends a real message and, on failure, reports the provider's own error. What you paste contains bot tokens and webhook secrets, so it is stored encrypted and never returned: you only ever see a redacted preview. Every employee connects their own channels without an admin; the agency's shared rooms, like the team's Slack channels or a group mailbox, are configured separately and are an administrative decision, because what lands in #crm concerns everyone. There is no SMS and no push notification: SMS exists here only as a second factor at login.
- Slack, Teams, Google Chat, Discord, Telegram, e-mail, a webhook or an Apprise URL of your own
- Credentials kept encrypted, never played back, shown only in redacted form
- A webhook aimed at a private or local address is refused unless you deliberately allow it
- Every channel carries its own schedule: which hour and which weekday its digests leave
Nothing starts out loud
A freshly connected channel stays silent until you route something to it in the table; the screen says so outright. E-mail is off per event, because it is the only channel that leaves the app. And everything external is a subset of what you get in-app: an event switched off in the in-app column never leaves the app, whatever its own column says. That is deliberately one place to silence something. In-app, everything is on by default: a short list arrives immediately and the rest lands at 08:00 in the daily digest, on your organisation's own clock, set under Instellingen → Huisstijl (Settings → Branding), and with wall-clock arithmetic, so a digest does not drift an hour when the clocks change.
Delivery happens off the request path
No channel does network work while you press save: an outage at Slack cannot slow down saving a task. A delivery row is queued and a per-organisation sweep drains it every minute. A digest is real batching: everything due in the same slot for one person or one room leaves as a single message. E-mail groups by recipient, because a person has one inbox; an external channel groups by channel, because a room has no single recipient. If sending fails, the whole bundle stays pending with the provider's own error recorded on it and is retried at growing intervals; half a digest sent is not a state we wanted to be able to have. E-mail leaves through your own mail connection, set under Instellingen → E-mail (Settings → E-mail), in your organisation's branding. Notifications themselves are core functionality and need no licence key.
Want to know more?
The documentation describes every module in detail, from installation to permissions.