Vraag: Hoe gebruik en beheer ik Google Chat en Spaces, en hoe integreer ik het met eigen systemen?
Uitleg: Google Chat is de chat- en samenwerkingsdienst binnen Google Workspace, vergelijkbaar met Slack en Microsoft Teams. Het zit in Gmail, draait op desktop, mobiel en als losse Chrome-app, en kost geen extra licentie boven op je standaard Workspace-abonnement.
Chat bestaat uit drie soorten conversaties: direct messages (1-op-1 berichten), group messages (kleine groepen) en spaces (persistente samenwerkingsruimtes voor teams, projecten of onderwerpen, tot 500.000 leden per space sinds 2024). Met de komst van huddles voor drop-in audio/video, meeting conversations die meetings automatisch koppelen aan persistente chats, en uitgebreide REST API en webhooks voor integratie met eigen systemen, is Chat een volwaardig samenwerkingsplatform geworden.
- Direct Message (DM): 1-op-1. Geen onderwerpsstructuur, geen members, geen titel. Voor snelle vragen of vertrouwelijke afstemming.
- Group Message: drie of meer mensen zonder formele structuur. Geen naam, geen omschrijving, geen mogelijkheid om iemand toe te voegen of te verwijderen zonder een nieuwe groep te maken. Ad-hoc afstemming.
- Space: persistente samenwerkingsruimte met naam, omschrijving, leden, threads, gepinde content, integraties en Gemini-ondersteuning. Tot 500.000 leden per space.
Functies per Workspace-licentie:
| Functie | Business Starter | Business Standard | Business Plus | Enterprise |
|---|---|---|---|---|
| Direct messages en group chats | Ja | Ja | Ja | Ja |
| Spaces tot 500.000 leden | Ja | Ja | Ja | Ja |
| Externe Chat en gasten | Ja | Ja | Ja | Ja |
| Huddles | Ja | Ja | Ja | Ja |
| Aankondigingen-spaces | Ja | Ja | Ja | Ja |
| Berichten-retentie via Vault | Nee | Nee | Ja | Ja |
| Custom retention rules | Nee | Nee | Ja | Ja |
| DLP voor Chat | Nee | Nee | Ja | Ja |
| Gemini in Chat | Nee | Ja | Ja | Ja |
| Webhooks (incoming) | Nee | Ja | Ja | Ja |
| Chat API (apps en bots) | Ja | Ja | Ja | Ja |
Technische architectuur en concepten
- Spaces worden geïdentificeerd door een spaces/{spaceId} resource-naam, waarbij spaceId een hoofdletter-gevoelige unieke string is (bijvoorbeeld spaces/AAQAtTYVa5g).
- Messages hebben een resource-naam spaces/{spaceId}/messages/{messageId}.
- Threads hebben een threadKey die je zelf kunt zetten bij het verzenden via webhook, waardoor automatisering kan reageren in dezelfde thread.
- Chat ondersteunt twee soorten messaging: [list]
- Synchroon: een Chat-app kan op berichten of slash-commando's reageren, requires OAuth en Chat API.
- Asynchroon: een webhook ontvangt geen reacties terug, maar kan wel berichten naar een space pushen op basis van externe triggers.
- Webhook: 1 bericht per seconde per space, met burst van enkele berichten daarbovenop.
- Chat API: per project rate limits, met quotas die je in Google Cloud Console kunt monitoren en optillen.
- Berichtgrootte: maximaal 32 KB per bericht, inclusief card-payloads.
- Attachments: maximaal 200 MB per bestand via de API (al worden grote bestanden eerder als Drive-link verstuurd).
Oplossing:
Navigeer naar:
Hier vind je alle instellingen voor Chat: of het aanstaat, hoe externe chat werkt, of geschiedenis wordt bewaard, en welke apps zijn toegestaan.
- Onder History for chats (voor DM's en group messages): [list]
- History on: berichten blijven bewaard, te combineren met Vault-retentieregels.
- History off: berichten worden na 24 uur automatisch verwijderd.
- Allow users to change their history setting: gebruikers bepalen per gesprek.
- Chat externally: aan of uit. Bepaalt of medewerkers met externen kunnen chatten.
- External spaces: aan of uit. Bepaalt of er spaces met externen kunnen worden gemaakt. Werkt alleen als Chat externally aan staat.
- Allowlisted domains: alleen externe gebruikers van vooraf toegestane domeinen mogen worden toegevoegd. Strenge optie voor organisaties met vaste partners.
Externe gebruikers worden geïdentificeerd met twee labels:
- External (geel label): gebruiker met Google Workspace-account of een @gmail.com-account.
- Guest (groen/teal label): gebruiker zonder Workspace-account, bijvoorbeeld @hotmail.com of een eigen mailprovider. Krijgt een tijdelijk gastaccount toegewezen door jouw organisatie.
Sinds 2024 worden externe gebruikers uitgenodigd in plaats van direct toegevoegd aan een space. Ze krijgen een e-mailuitnodiging en moeten expliciet accepteren voordat ze toegang hebben. Dit voorkomt dat een werknemer per ongeluk vertrouwelijke gegevens in een space deelt voordat de externe partij is geverifieerd.
Vanuit Chat:
- Klik linksboven op het +-icoon naast "Spaces".
- Kies Create space (een nieuwe ruimte) of Browse spaces (deelnemen aan bestaande).
- Geef een naam, optioneel een emoji en een beschrijving.
- Kies of de space restricted is (alleen op uitnodiging) of discoverable (zichtbaar voor alle medewerkers).
- Bepaal of de space threaded replies gebruikt (aanbevolen voor de meeste teams) of flat conversation (lineaire timeline, beter voor announcements).
- Voeg leden toe of via Google Groups: koppel een hele Google Group als member, zodat updates van die group automatisch lid worden gemaakt of verwijderd.
Aankondigingen-space (Announcements): een speciaal type space waar alleen managers of geselecteerde members kunnen posten, terwijl alle leden kunnen lezen en reageren met emoji. Aanmaken via Create space::Space settings::Allow only space managers to post.
Hier zie je:
- Alle spaces inclusief naam, member count, type, creation date, en owner.
- Wie space manager is, wie reguliere members.
- Mogelijkheid om een nieuwe owner toe te wijzen wanneer de oorspronkelijke owner het bedrijf heeft verlaten.
- Mogelijkheid om een space te verwijderen of leden te verwijderen voor compliance-redenen.
- System-gegenereerde spaces (zoals meeting conversations, zie verderop) zijn ook zichtbaar maar zelden de moeite van handmatig beheer waard.
Voorwaarden:
- Een Business of Enterprise Workspace-licentie.
- Webhook-toegang aan in , onder de optie "Allow users to install Chat apps" en "Allow incoming webhooks".
- Manager- of owner-rechten in de space waar je de webhook wilt installeren.
Webhook aanmaken:
- Open de space in Google Chat.
- Klik op de space-naam bovenaan, dan op Apps & integrations.
- Klik op Add webhooks.
- Geef de webhook een naam (bijvoorbeeld Monitoring Alerts) en upload een avatar-URL.
- Klik op Save. Je krijgt nu een Webhook URL te zien (eenmalig), kopieer deze direct naar een veilige plek (password manager, secrets-vault).
Een bericht versturen: stuur een POST-request naar de webhook URL met een JSON-payload. Het simpelste bericht:
POST https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?key=KEY&token=TOKEN
Body: {"text": "Server prod-web-01 is offline sinds 14:32"}
Voor een rich card-bericht (met titel, knoppen, afbeeldingen):
{"cardsV2": [{"cardId": "alert-001", "card": {"header": {"title": "Server offline", "subtitle": "prod-web-01", "imageUrl": "https://example.com/alert.png"}, "sections": [{"widgets": [{"textParagraph": {"text": "Last seen: 14:32 CET"}}, {"buttonList": {"buttons": [{"text": "Open dashboard", "onClick": {"openLink": {"url": "https://monitoring.example.com/host/prod-web-01"}}}]}}]}]}}]}
Threading: wil je dat opvolgende berichten in dezelfde thread komen? Voeg een threadKey parameter toe aan de URL. Berichten met dezelfde threadKey worden samengevoegd:
Voorwaarden:
- Een Google Cloud project met de Google Chat API ingeschakeld.
- Een OAuth consent screen geconfigureerd (zelfs voor interne apps).
- Een backend (HTTP endpoint, Cloud Function, of Apps Script) die binnenkomende events afhandelt.
Slash commands: commando's zoals /incident, /standup of /lookup die je gebruikers kunnen typen om de app aan te roepen. Configureer ze in de Chat API-instellingen in Google Cloud Console, onder Slash commands met:
- Command ID (een nummer dat je app onderscheidt tussen commando's).
- Command name (de tekst die gebruikers typen, /incident).
- Description.
- Of het commando een dialog moet openen of direct iets uitvoert.
Cards en interactieve widgets: Chat-apps kunnen rich UI-elementen tonen via Card-messages: knoppen, dropdowns, input-velden, datepickers, afbeeldingen en sectie-headers. Een gebruiker klikt op een knop, de Chat API stuurt een event naar je backend, en je backend kan reageren met een nieuwe card, een dialog of een actie.
Dialogs: pop-up modals die je vanuit een slash command of card-button kunt openen, voor formuliereninvoer. Bijvoorbeeld een /create-ticket command opent een dialog waar de gebruiker titel, prioriteit en beschrijving invult, en bij submit wordt het ticket aangemaakt in je ticketsysteem.
- Wordt tot 7 dagen vóór de meeting al aangemaakt en gevuld door het systeem.
- Is gekoppeld aan het Calendar-event.
- Bewaart alle chatberichten die tijdens de meeting worden gestuurd, ook na afloop, als persistente Chat-space.
- Volgt de Chat-retentieregels van je organisatie.
- Ongebruikte conversations (zonder berichten of pinned content) worden automatisch verwijderd 8 dagen na de meeting.
Voor admins betekent dit dat het aantal "Created spaces" in Chat-reports flink kan stijgen, omdat het systeem deze automatisch genereert. Dit is geen werkelijke groei in gebruikersactiviteit.
In Vault kunnen meeting conversations ook worden opgehouden, vastgelegd en doorzocht net als reguliere spaces, mits er een retentieregel actief is.
Ga in de Admin Console naar:
Maak een nieuwe regel aan met:
- Scope: Chat (kies of DM's, group messages, spaces of allemaal vallen onder de regel).
- Conditions: gebruik vooraf-gedefinieerde detectors voor BSN, creditcards, IBAN, paspoortnummers, etcetera, of definieer eigen reguliere expressies.
- Actions: [list]
- Audit only (loggen zonder ingrijpen, geschikt voor monitoring-fase).
- Warn user (gebruiker krijgt een waarschuwing voor het verzenden).
- Block message (bericht wordt niet verzonden).
DLP-regels gelden niet voor anonieme gebruikers in meeting conversations.
- Spaces beheren: aanmaken, wijzigen, verwijderen. POST https://chat.googleapis.com/v1/spaces.
- Members beheren: leden toevoegen of verwijderen aan/uit een space. POST https://chat.googleapis.com/v1/spaces/{spaceId}/members.
- Messages versturen: programmatisch berichten posten als een Chat-app. POST https://chat.googleapis.com/v1/spaces/{spaceId}/messages.
- Messages ophalen: search en lijst van berichten in een space. GET https://chat.googleapis.com/v1/spaces/{spaceId}/messages.
- Reactions: programmatisch emoji-reacties toevoegen.
OAuth scopes:
- https://www.googleapis.com/auth/chat.spaces (read/write spaces)
- https://www.googleapis.com/auth/chat.messages (read/write messages)
- https://www.googleapis.com/auth/chat.memberships (read/write members)
- google.workspace.chat.message.v1.created (nieuw bericht)
- google.workspace.chat.message.v1.updated (bericht bewerkt)
- google.workspace.chat.message.v1.deleted (bericht verwijderd)
- google.workspace.chat.membership.v1.created (lid toegevoegd)
- google.workspace.chat.space.v1.updated (space-instellingen gewijzigd)
Hiermee kun je bijvoorbeeld:
- Een audit-log opbouwen van alle berichten in compliance-gevoelige spaces.
- Een bot bouwen die automatisch reageert op trefwoorden in een space.
- Notificaties versturen naar externe systemen wanneer iemand wordt toegevoegd aan een space.
- Monitoring-alerts: configureer Prometheus/Grafana/Datadog om alerts via een webhook naar een #alerts-prod space te sturen, gegroepeerd per incident met threadKey.
- CI/CD-pipeline: laat GitHub Actions, GitLab CI of Jenkins notifications posten naar een #deployments space, met cards die direct linken naar de build-logs.
- Ticketing-systeem: bouw een Chat-app met slash commands /ticket-create, /ticket-status en /ticket-assign die met de API van Zendesk, Freshdesk of Jira praat.
- Onboarding-bot: een Chat-app die nieuwe medewerkers via een dialog door een checklist loopt en automatisch lid maakt van de juiste spaces.
- Standup-bot: post elke ochtend om 09:00 in een teamspace een vraag, verzamelt antwoorden in een thread, en stuurt een samenvatting naar de manager.
Specifieke functies en use cases
Use cases:
- Een ad-hoc vraag in een teamspace die te complex is voor tekst.
- Een snelle escalatie tijdens een incident, waar de juiste mensen al in de space zitten.
- Een korte stand-up zonder Calendar-overhead.
Onder de motorkap is een huddle een lichtgewicht Meet-sessie. Standaard alleen audio, deelnemers kunnen video activeren. Tot 100 deelnemers per huddle.
- Summarize this conversation: vat een lang gesprek samen in actiepunten en beslissingen.
- Catch me up: vat samen wat je hebt gemist sinds de laatste keer dat je een space hebt geopend.
- Search met Gemini: stel vragen aan je hele Chat-history in natuurlijke taal ("welk besluit hebben we genomen over de Q2-roadmap?").
- Smart replies: drie voorgestelde antwoorden op een bericht, contextueel.
Belangrijk:
- Bij spaces boven de 8.000 leden staat history altijd verplicht aan en kun je dit niet uitzetten.
- Voor spaces met meer dan 50.000 leden is een Announcement-only configuratie sterk aanbevolen, anders verdrinkt iedereen in notificaties.
- Beheer leden via Google Groups in plaats van handmatig: voeg een Google Group toe als member en alle wijzigingen in de group worden automatisch doorgevoerd in de space.
Veelgemaakte fouten en hoe je ze voorkomt
- Webhook URLs in code-repositories committen. Webhook URLs zijn secrets en geven toegang om in jouw space te posten. Gebruik altijd een secrets-manager of environment-variables, en roteer ze periodiek.
- Geen threadKey gebruiken bij gerelateerde berichten. Wanneer een monitoringsysteem 50 alerts per uur post, krijg je 50 losse berichten in plaats van één thread per incident. Gebruik altijd een threadKey gerelateerd aan het incident-ID.
- Rate limits overschrijden zonder retry-logica. Bij meer dan 1 bericht per seconde per webhook krijg je 429-errors terug. Implementeer exponential backoff met de Retry-After-header.
- Externe spaces aanmaken voordat External chat aan staat. De External spaces-instelling werkt alleen wanneer External chat aan staat op organisatieniveau. Controleer beide voordat je gebruikers iets belooft.
- History off in spaces met externe leden. Wanneer je organisatie history on heeft maar de externe partij history off, faalt de chat. Voor maximale compatibility forceer history on voor alle spaces.
- Vault retention overslaan met auto-deletion. Auto-deletion kan berichten verwijderen ná het bewaar-venster. Voor compliance-gevoelige sectoren combineer je beide: auto-deletion voor user experience, Vault retention voor wettelijke vereisten.
- Vergeten dat externe DM's de retentie van de creator volgen. Sinds februari 2026. Wanneer een externe partij een DM met jouw medewerker start, gelden hun retentieregels. Zet een Vault retention policy op je hele organisatie om dit te ondervangen.
- Een grote space zonder Announcement-mode opzetten. Een space met 5.000+ leden waarin iedereen kan posten resulteert binnen een dag in een onleesbare stroom. Maak grote spaces standaard Announcement-only en open een aparte discussie-space voor wie wel wil reageren.
- Geen owner-vervanging plannen. Wanneer een space-owner het bedrijf verlaat en niemand anders manager is, wordt de space "verweesd". Wijs altijd minimaal twee space managers aan per actieve space.
- Slash commands zonder consent screen. Een Chat-app vereist altijd een OAuth consent screen, zelfs voor interne distributie. Vergeet niet de juiste scopes te declareren, anders krijgen gebruikers bij activering een fout.
- Meeting conversations niet meenemen in audits. Sinds 2024 worden meetings automatisch als chat-spaces aangemaakt. Houd hier rekening mee in je retentiebeleid, want het kan een explosie in space-aantallen veroorzaken in rapportages.