Interne ticket-triage: datamodel en workflowplan voor één dag
Bouw in één dag een interne ticket-triagetool met een duidelijk datamodel, statusworkflow, SLA’s en escalatiemeldingen via visuele businesslogica.

Welk probleem lossen ticket-triage tools echt op
Wanneer tickets binnenkomen via e-mail, chat, een webformulier en snelle pingjes in interne messengers, verschijnt hetzelfde verzoek soms twee keer, of erger nog: helemaal niet. Mensen sturen screenshots door, kopiëren notities naar spreadsheets en vertrouwen op geheugen om te onthouden wie wat doet. Urgente zaken raken begraven en degene die het hardst roept wint.
Handmatige triage faalt ook bij overdrachten. Een verzoek wordt in een chatthread "toegewezen", daarna is de toegewezen persoon offline en weet niemand wat de volgende stap is. Statussen betekenen voor verschillende mensen iets anders, dus managers vertrouwen dashboards niet en verzoekers wachten langer dan nodig.
Late reacties komen meestal niet door slechte intentie. Ze ontstaan door gebrek aan structuur: geen duidelijke eigenaarschap, geen heldere deadlines en geen duidelijk pad voor escalatie.
Een interne ticket-triagetool lost dit op door rommelige intake om te zetten in een eenvoudige, zichtbare flow. Voor een één-dags build is het doel geen complete helpdesk met elke feature. Het is een betrouwbare ruggengraat die je later kunt uitbreiden.
Streef aan het einde van de dag naar vier dingen:
- Een básicos datamodel voor tickets, verzoekers, agents en activiteit
- Een kleine set statussen met duidelijke transities en eigenaarschapsregels
- SLA-timers en escalatietriggers die makkelijk uit te leggen zijn
- Een bruikbaar intern dashboard plus een ticketdetail-scherm voor dagelijks werk
Als je dit bouwt op een visueel platform zoals AppMaster, kun je de workflow als businessprocessen in kaart brengen in plaats van code te schrijven, en het vervolgens aanpassen als de gewoontes van je team laten zien wat er moet veranderen.
Eén-dags scope: het kleinste nuttige triagesysteem
Een triagetool is op dag één alleen nuttig als het drie dingen betrouwbaar doet: tickets op één plek verzamelen, een eigenaar toewijzen en achterstallig werk duidelijk zichtbaar maken. Alles wat daarna komt kan wachten.
Begin met één of twee ticketbronnen. E-mail plus een simpel webformulier is vaak genoeg voor een eerste versie. Chat kan later, omdat het extra ruis toevoegt (korte berichten, ontbrekende details) en meestal extra regels nodig heeft om verzoeken te groeperen en labelen.
Bepaal wie een ticket aanraakt en wat “klaar” betekenen voor elke groep. Houd de teamindeling klein en duidelijk. Bijvoorbeeld: Support handelt intake en basisoplossingen af, Ops is eigenaar van toegang en accounttaken, Engineering neemt bugs en codewijzigingen over. Als een team een type ticket niet kan afhandelen, mag het niet aan dat team toegewezen worden.
Voor een realistische één-dags scope, commit aan deze uitkomsten: tickets aanmaken en bekijken (titel, verzoeker, urgentie, categorie), triage en toewijzen (eigenaar plus team, met een duidelijke unassigned-staat), een SLA-klok bijhouden (first response due en resolution due), escaleren bij achterstand (de juiste persoon of kanaal notificeren) en sluiten met een korte uitkomstnotitie.
Dit past goed in AppMaster: een simpel datamodel, een basis intern dashboard en visuele businessprocessen voor toewijzing en escalatiemeldingen.
Sla metrics voor nu over. Leg ruwe data vast (timestamps, statusveranderingen, assignee-historie) zonder direct rapporten te bouwen. Voeg later dashboards toe voor trends zoals time to first response of topcategorieën, maar laat analytics de tool waar mensen vandaag mee moeten werken niet vertragen.
Een goede buikcheck: als een nieuw verzoek om 9:00 binnenkomt en niemand kijkt ernaar tot 11:00, moet je eerste versie die fout zichtbaar en moeilijk te negeren maken.
Rollen, toegang en verantwoordelijkheid
Een triagetool faalt als niemand duidelijk verantwoordelijk is. Begin met het benoemen van de weinige rollen die je daadwerkelijk nodig hebt en laat permissies overeenkomen met hoe supportwerk echt gaat.
De meeste teams dekken bijna alles met vier rollen:
- Requester (Aanvrager): kan tickets aanmaken, opmerkingen toevoegen en alleen eigen tickets zien.
- Agent: kan werken aan tickets die aan hen zijn toegewezen en status, prioriteit en notities bijwerken.
- Teamleider: kan werk binnen het team herverdelen, escalaties goedkeuren en prioriteit overschrijven.
- Admin (Beheerder): beheert teams, categorieën en globale instellingen zoals SLA-regels.
Zichtbaarheid is de volgende beslissing. Kies één model en houd je eraan, anders verliezen mensen vertrouwen in het systeem.
Een praktische aanpak: verzoekers zien hun eigen tickets; agents zien tickets in hun teamqueue; teamleiders zien alle tickets voor hun afdeling; beheerders zien alles. Als je privacy nodig hebt, voeg dan een restricted-vlag toe die alleen leids en admins kunnen openen.
Verantwoordelijkheid komt voort uit een paar strakke regels, niet uit een enorme permissiematrix. Bijvoorbeeld: alleen teamleiders en admins mogen eigenaarschap over teams heen veranderen; alleen de aangewezen eigenaar (of een lead) mag een ticket op Resolved zetten; sluiten vereist een resolutienotitie en een categorie; heropenen vereist een reden.
Ten slotte: eis een audittrail. Elke wijziging die service beïnvloedt moet worden vastgelegd: status, assignee, prioriteit, SLA-tier en eventuele escalaties. Bewaar wie het deed, wanneer en wat de oude en nieuwe waarden waren.
In AppMaster kun je dit afdwingen met ingebouwde auth en een visueel businessproces dat een AuditEvent-record schrijft telkens wanneer sleutelvelden veranderen.
Een snelle test: als een lead vraagt: “Waarom is dit ticket om 18:12 als opgelost gemarkeerd?”, moet je systeem dat op één scherm zonder giswerk kunnen beantwoorden.
Datamodel blueprint: tabellen en velden die je nodig hebt
Een ticket-triagetool leeft of sterft met het datamodel. Als de tabellen schoon zijn blijft de workflow en het dashboard eenvoudig te bouwen (en later makkelijk aan te passen).
Begin met vijf bouwstenen in je database (bijvoorbeeld in AppMaster’s Data Designer met PostgreSQL):
- Tickets: subject, description, channel (email, web, phone), priority, current status, requester info, plus
created_atenupdated_at. - People structure: users (agents en admins) en teams (support, billing, ops). Voeg teamlidmaatschap, rol en een
on_call-flag toe zodat je workflow snel de juiste persoon kan vinden. - Assignment history: bewaar
current_assignee_idop het ticket voor snelle filtering, maar sla ook iedere hertoewijzing op metassigned_by,assigned_to, reason enassigned_at. - Conversation: comments of berichten met een zichtbaarheidvlag (interne notitie vs klant-facing). Bijlagen horen in een eigen tabel zodat je ze hergebruikt in berichten of auditentries.
- Audit log: één plek om statusveranderingen, SLA-timer starts/stops en escalatie-evenementen te registreren.
Een paar velden voorkomen toekomstige pijn. Voeg first_response_due_at en resolve_due_at toe (ook als je ze berekent). Bewaar last_customer_message_at en last_agent_message_at zodat je stilte kunt detecteren zonder complexe queries.
Maak statussen en prioriteiten enums (of referentietabellen). Dat houdt rapportage consistent en voorkomt dat “High”, “HIGH” en “Urgent!!!” drie verschillende prioriteiten worden.
Statussen en transities die begrijpelijk blijven
Een triagetool stort in als mensen niet meer weten wat een status betekent. Houd de set klein en voor de hand liggend. Een simpel basismodel is: Nieuw, Getriageerd, In behandeling, In afwachting, Opgelost, Gesloten. Als je team discussie krijgt over een zevende status, is dat meestal een labelprobleem, geen workflowprobleem.
Statussen werken het beste als elk van hen één vraag beantwoordt:
- Nieuw: heeft iemand er al naar gekeken?
- Getriageerd: weten we wie het eigendom heeft en hoe dringend het is?
- In behandeling: werkt iemand er actief aan?
- In afwachting: zitten we vast op input van de verzoeker, een leverancier of een ander team?
- Opgelost: hebben we een oplossing of antwoord geleverd?
- Gesloten: zijn we klaar met opvolging en rapportage?
Transities zijn waar duidelijkheid gewonnen of verloren gaat. Schrijf op wat waarheen mag bewegen en wie dat mag doen. Als je in AppMaster bouwt, kun je deze regels afdwingen in visuele businesslogica zodat de UI alleen geldige volgende acties toont.
Praktische regels die chaos buitenhouden:
- Alleen een triagerol mag Nieuw naar Getriageerd zetten en daarbij prioriteit en assignee instellen.
- Alleen de toegewezen eigenaar mag Getriageerd naar In behandeling verplaatsen.
- Elke agent kan In afwachting zetten, maar moet een reden kiezen (Klantreactie, Leverancier, Interne afhankelijkheid).
- Opgelost vereist een resolutienotitie; Gesloten vereist een sluitingsreden (Duplicate, Won't fix, Bevestigd opgelost).
- Heropenen mag alleen vanaf Opgelost of Gesloten en vereist altijd een reden.
Bepaal ook wat timestamps aanmaakt, want dat voedt rapporten en SLA’s. First response time wordt vastgezet wanneer een mens de eerste publieke reactie plaatst. Resolved time wordt vastgezet wanneer status op Opgelost gaat. Closed time wordt vastgezet bij Gesloten. Als een ticket wordt heropend, bewaar dan de originele timestamps en voeg een aparte reopened_at toe zodat je herhalende issues ziet zonder geschiedenis te herschrijven.
Hoe SLA's te modelleren zonder te veel complicatie
Een SLA is een belofte met een timer. Beperk je tot de timers die de meeste teams echt gebruiken: first response (iemand erkent het), next response (gesprek blijft bewegen) en resolution (issue is af).
Begin met beslissen hoe je de regel kiest. Een eenvoudige aanpak is op basis van prioriteit. Als je ook verschillende klantlagen ondersteunt, voeg dan één extra switch toe: klanttype. Dat geeft voorspelbare SLA-regels zonder een doolhof aan uitzonderingen.
Sla SLA-deadlines op als timestamps, niet alleen als duur. Bewaar beide als je wilt, maar de deadline-timestamp maakt rapportage en escalatie betrouwbaar. Bijvoorbeeld: wanneer een P1-ticket is aangemaakt om 10:00, bereken en sla je FirstResponseDueAt = 10:30, NextResponseDueAt = 12:00, ResolutionDueAt = 18:00 op.
Definieer wat de klok pauzeert. De meeste teams pauzeren next response en resolution als het ticket in "In afwachting" staat, maar pauzeren first response meestal niet.
- De first response timer start bij aanmaak van het ticket
- De next response timer start na de laatste agent-reply
- Timers pauzeren alleen in specifieke statussen (bijvoorbeeld In afwachting van klant)
- Timers hervatten wanneer het ticket teruggaat naar een actieve status
- Een breach gebeurt wanneer "nu" voorbij de opgeslagen due-timestamp is
Wees expliciet over wat telt als het halen van een SLA. Kies één event per timer en houd je eraan: een agent-opmerking, een statuswijziging naar In behandeling, of een uitgaande boodschap.
In AppMaster kun je dit modelleren in de Business Process Editor door te triggeren op ticket created, comment added en status changed, vervolgens due-timestamps te herberekenen en terug te schrijven naar het ticket.
Stapsgewijze workflow: van nieuw ticket tot sluiting
Een ticket-triagetool werkt het beste als het pad voorspelbaar is. Streef naar één “happy path” die de meeste tickets dekt en houd uitzonderingen zichtbaar in plaats van verborgen.
1) Ticket aanmaken (stel defaults in)
Wanneer een ticket wordt aangemaakt (via formulier, e-mailimport of een intern verzoek), stel dan automatisch een paar velden in zodat niets halfleeg begint. Sla de initiële status op (meestal Nieuw), een default prioriteit (bijv. Normaal), de verzoeker en timestamps zoals created_at en last_activity_at.
Vang het minimum dat nodig is voor triage: korte titel, beschrijving en een categorie of servicegebied. Als iets ontbreekt markeer het ticket dan als Incompleet zodat het niet per ongeluk toegewezen wordt.
2) Triage (maak het klaar om te werken)
Triage is een snelle kwaliteitscontrole. Bevestig verplichte velden, zet een categorie en bereken SLA-deadlines op basis van simpele regels (bijvoorbeeld prioriteit + klanttype = first response due). In AppMaster kan dit een visueel businessproces zijn dat due_at-velden schrijft en een triage_event voor audit registreert.
Doe een korte "is dit van ons?"-check. Zo niet, routeer het naar de juiste queue en voeg een korte notitie toe zodat het niet terugkaatst.
3) Toewijzen (kies een eigenaar en meld)
Toewijzing kan handmatig zijn op dag één, of regelgebaseerd (categorie -> team, dan laagste open aantal). Zodra een assignee is ingesteld, houd de status op Getriageerd en stuur een duidelijke notificatie zodat eigenaarschap zichtbaar is.
4) Werken (houd tijd en communicatie eerlijk)
Tijdens het werk mogen statuswijzigingen zoals In behandeling of In afwachting plaatsvinden. Elke publieke reactie moet een nieuwe next_response_due instellen en elke opmerking moet last_activity_at bijwerken. Dat houdt SLA-tracking en escalatie betrouwbaar.
5) Oplossen en sluiten (leg de uitkomst vast)
Resolutie vereist een korte samenvatting, een resolutiecode (fixed, won't fix, duplicate) en resolved_at. Sluiten kan automatisch na een stilteperiode of handmatig na bevestiging, maar sla altijd closed_at op zodat rapportage consistent blijft.
Escalatiemeldingen waar mensen niet op negeren
Escalaties falen om twee redenen: ze gaan te vaak af, of ze vertellen de ontvanger niet wat te doen. Het doel is niet meer alerts. Het doel is één duidelijke duw op het juiste moment.
Kies een paar triggers, niet elke mogelijke conditie
Begin met triggers die makkelijk uit te leggen en te testen zijn. De meeste teams hebben genoeg aan een kleine set: SLA loopt risico (bijv. 75% van het venster is verstreken), SLA is geschonden, geen eigenaar na een korte respijtperiode (10–15 minuten), en een ticket dat te lang in In afwachting zit.
Routeer elke trigger naar de kleinste groep mensen die het kan oplossen. Meld eerst de toegewezen eigenaar. Als er geen eigenaar is, meld de teamleider of de on-call rotatie. Informeer de verzoeker alleen wanneer je input nodig hebt of wanneer je de beloofde resolutietijd verandert.
Maak de waarschuwing actiegericht en moeilijk te negeren
Een goede escalatiemail bevat tickettitel, prioriteit, huidige status, resterende tijd (of achterstallige tijd) en één volgende actie. Voorbeeld: "Ticket #1842 heeft nog 30 minuten tot breach. Status: In behandeling. Eigenaar: niet toegewezen. Volgende stap: wijs een eigenaar toe of verlaag prioriteit met een notitie."
Gebruik communicatiekanalen met intentie. E-mail is prima voor "in gevaar". SMS of Telegram is beter voor "geschonden" of "kritiek zonder eigenaar". In-app notificaties werken goed voor rustige duwtjes binnen het dashboard.
Om spam te voorkomen, voeg eenvoudige throttle-regels toe: één alert per fase plus een cooldown (bijv. 60 minuten) voordat je herhaalt. Als het ticket van status of eigenaar verandert, reset de escalatietimer.
Log elke notificatie zodat je later vertrouwen en issues kunt debuggen. Bewaar minimaal wanneer het werd verstuurd, door welke trigger, kanaal en ontvanger, en het leveringsresultaat (sent, failed, bounced). Als je acknowledgements (geklikt, geantwoord, gezien) kunt vastleggen, bewaar die ook.
In AppMaster past dit goed bij een Notification-tabel plus een businessproces dat timers controleert, ontvangers kiest (assignee, lead, on-call) en verstuurt via e-mail, SMS of Telegram modules, terwijl het ook een in-app record schrijft.
Een realistisch testschema om je ontwerp te toetsen
Draai één lastige scenariovoorbeeld voor je schermen bouwt. Dat toont snel of je statussen, deadlines en notificaties zinvol zijn.
Het is 12:10. Een "Betaling mislukt"-ticket van een belangrijke klant komt binnen, met Urgent in het onderwerp maar niet toegewezen. Je triagesysteem moet dit als tijdkritisch behandelen, ook als niemand het dashboard tijdens de lunch bekijkt.
Eerst stelt triage Category = Billing en Priority = Urgent. Op het moment dat die velden worden gezet, berekent het systeem de first-response-deadline (bijv. 15 minuten) en slaat die op het ticket op. Die deadline moet zichtbaar zijn in de lijstweergave, niet weggestopt.
Vervolgens start auto-toewijzing. Het selecteert de on-call agent voor Billing en stuurt een korte melding: "Urgent billing ticket toegewezen. First response due 12:25." In AppMaster past dit natuurlijk als een visueel businessproces: trigger op ticket creation (of priority change) en een paar decision-blocks.
Als er om 12:25 nog geen publieke reactie is, escaleren we. Houd escalatie eenvoudig en consistent: meld de teamleider, voeg een interne opmerking toe die de gemiste first-response SLA noteert en zet een escalation_level-veld (in plaats van een nieuwe status te bedenken die verkeerd gebruikt wordt).
Om 12:40 antwoordt de agent en zet het ticket op In afwachting van klant. Je SLA moet pauzeren terwijl je wacht. Wanneer de klant om 14:05 reageert, hervat de SLA vanaf waar hij gebleven was, niet vanaf nul. Deze ene test vangt de meeste workflowfouten.
Schermen om eerst te bouwen voor een bruikbare interne tool
Met één dag bouwtijd maak je schermen die heen-en-weer communicatie verminderen: één plek om de queue te zien, één plek om te beslissen en één plek om te werken.
1) Ticketlijst (de triage-queue)
Dit is het startscherm. Het moet binnen 10 seconden antwoord geven op wat nu aandacht nodig heeft.
Voeg filters toe die aansluiten op hoe mensen echt triageren: status, prioriteit, SLA-toestand (on track, at risk, breached), onbepaald en categorie.
Houd elke rij compact: titel, verzoeker, prioriteit, huidige eigenaar, SLA-countdown en laatste update.
2) Ticketdetail (waar het werk gebeurt)
De detailpagina moet aanvoelen als één tijdlijn. Zet de belangrijkste acties bovenaan: toewijzen, status veranderen, opmerking toevoegen, prioriteit instellen. Laat daarna de volledige geschiedenis zien (statuswijzigingen, toewijzingen, opmerkingen) op volgorde.
Maak SLA zichtbaar zonder te schreeuwen. Een eenvoudige countdown-label met kleur is voldoende. Voeg een duidelijke Escalate-actiebutton toe voor randgevallen.
3) Triageformulier (snelle intake)
Bij het aanmaken van een ticket verplicht je de minimale velden: categorie, korte samenvatting en impact. Voeg snelle acties toe zoals Toewijzen aan mij en Markeer als duplicaat. Toon, indien mogelijk, een voorgestelde toegewezen persoon op basis van categorie of werkdruk.
4) Agent view vs lead view
Agents hebben My tickets, Due soon en één-klik statusupdates nodig. Leiders hebben Unassigned, At risk en Breached, plus manieren om snel toewijzingen te herverdelen.
5) Klein adminscherm
Houd admin compact: beheer categorieën en SLA-regels (per categorie en prioriteit), plus wie in de rotatie zit. In AppMaster zijn deze schermen snel samen te stellen met UI-builders, terwijl de regels in visuele businessprocessen leven zodat je ze kunt wijzigen zonder de app te herschrijven.
Veelvoorkomende valkuilen die triage systemen kapotmaken
De meeste triagetools falen om eenvoudige redenen: regels zijn vaag en de UI moedigt workarounds aan in plaats van duidelijke beslissingen.
De eerste valkuil is status-sprawl. Teams voegen voor elk randgeval een nieuwe status toe ("Wacht op leverancier", "Wacht op Finance", "Geblokkeerd door Product") en al snel begrijpt niemand meer wat elk label betekent. Houd statussen weinig en definieer wat waar moet gelden om vooruit te komen (bijv. In behandeling betekent dat er een toegewezen eigenaar is en de volgende actie bekend is).
SLA-timing is de tweede valkuil. Een klok die nooit pauzeert straft agents als ze wachten op de verzoeker. Een klok die altijd pauzeert maakt SLA’s betekenisloos. Kies expliciete pauzeregelingen die je in één zin kunt uitleggen en koppel die aan een kleine set statussen (pauzeer alleen bij In afwachting van de verzoeker, hervat bij elke verzoekerreactie).
Notificaties falen vaak omdat ze geen eigenaar hebben. Als alerts naar iedereen gaan, worden ze achtergrondruis. Escalaties moeten naar een specifieke persoon of rol gaan met een duidelijke verwachting van de volgende stap.
Veelvoorkomende faalpatronen:
- Statusnamen die gevoelens beschrijven ("Stuck") in plaats van condities ("In afwachting van verzoeker").
- SLA-regels die afhangen van beoordelingsvrijheid ("pauzeer als het redelijk lijkt").
- Escalatiealerts naar brede kanalen in plaats van de on-call lead of teaminbox.
- Geen geschiedenis van veranderingen (wie prioriteit wijzigde, herverdeelde of heropende en wanneer).
- Verzoekersberichten gemengd met interne notities, wat per ongeluk oversharing veroorzaakt.
Een eenvoudige test: stel dat een ticket is geëscaleerd en de verzoeker klaagt. Kun je binnen een minuut antwoord geven wie het op elk moment in bezit had, wanneer de SLA pauzeerde en wat extern is gecommuniceerd? Zo niet, voeg een audittrail toe en scheid publieke replies van interne notities. In AppMaster kun je dit afdwingen met aparte datafields en een businessproces dat alleen de juiste velden in elk scherm toont.
Korte checklist en vervolgstappen
Voordat je bouwt, doe een controle met de vraag "kunnen we hier morgen op draaien?". De tool werkt alleen als data, regels en notificaties met elkaar overeenkomen.
Controleer op gaten:
- Datamodel: Tickets (titel, beschrijving, prioriteit, status, verzoeker), Users, Teams, Comments, een Audit Log (wie wat wanneer wijzigde) en SLA-deadlines (
first_response_due_at,resolution_due_at, paused-until). - Workflow: Duidelijke transities (Nieuw -> Getriageerd -> In behandeling -> In afwachting -> Opgelost -> Gesloten), toewijzingsregels (handmatig vs automatisch) en simpele pauze/hervatregels voor SLA’s (pauzeer alleen in In afwachting, hervat bij actieve status).
- Notificaties: Triggers (bijna breach, breached, herverdeeld, geëscaleerd), ontvangers (assignee, teamleider, on-call), throttling (niet elke minuut pingen) en gelogde uitkomsten.
- UI: Een lijstweergave voor de queue, een ticketdetailpagina, een triagescherm (toewijzen, prioriteit, status) en een klein admingebied voor teams, SLA-instellingen en templates. Maak rolgebaseerde toegang expliciet.
- Verantwoordelijkheid: Voor elk ticket één eigenaar tegelijk, één volgende actie en één zichtbare due-tijd.
Bouw eerst de tabellen, verbind dan de workflow. In AppMaster kun je de database modelleren in de Data Designer (PostgreSQL) en vervolgens statustransities, SLA-timers en escalatieregels implementeren in de Business Process Editor met visuele logica. Begin met één team en één SLA-beleid, draai het een week en voeg pas daarna complexiteit toe (meerdere queues, werktijden, aangepaste formulieren).
Als het stabiel voelt, deploy waar je team zich prettig bij voelt: AppMaster Cloud, AWS, Azure, Google Cloud of exporteer de broncode voor self-hosting. Als je de aanpak wilt verkennen zonder groot ontwikkeltraject, is AppMaster op appmaster.io ontworpen voor interne tools zoals deze, met visuele workflows en productieklare apps gegenereerd uit je model.
FAQ
Een ticket-triagetool zet verspreide verzoeken om in één wachtrij met duidelijke eigenaarschap, consistente statussen en zichtbare deadlines. Het grootste voordeel is dat gemiste of dubbele taken verminderen omdat het antwoord op “wie heeft dit en wat is de volgende stap” meteen duidelijk is.
Begin met e-mail plus een eenvoudig webformulier; die leggen meestal genoeg informatie vast en zijn makkelijk te standaardiseren. Voeg chat later toe als je regels hebt voor verplichte velden, deduplicatie en hoe korte berichten echte tickets worden.
Gebruik een kleine set die het team zonder discussie kan uitleggen: Nieuw, Getriageerd, In behandeling, In afwachting, Opgelost, Gesloten. Houd statussen als condities, niet als gevoelens, en leg vast wie tussen welke status mag schakelen om de betekenis consistent te houden.
Definieer vier standaardrollen: Aanvrager (Requester), Agent, Teamleider en Beheerder (Admin). Dit houdt permissies overzichtelijk en ondersteunt echte workflows zoals hertoewijzen binnen een team en het vergrendelen van wie kan sluiten of prioriteit kan overschrijven.
Onmisbaar: Tickets, Users, Teams, Comments (publiek vs intern), AssignmentHistory en een AuditLog. Voeg due-timestamps toe zoals first_response_due_at en resolve_due_at plus velden voor last_customer_message_at en last_agent_message_at zodat SLA- en stilte-detectie geen ingewikkelde queries vergen.
Sla SLA-deadlines op als timestamps op het ticket (niet alleen als duur) zodat lijsten, waarschuwingen en rapporten consistent zijn. Een praktisch uitgangspunt zijn drie timers: first response, next response en resolution, met duidelijke pauzeregeling gekoppeld aan specifieke statussen zoals In afwachting van klant.
Maak één eigenaar zichtbaar en direct: houd een expliciete unassigned-toestand, stel één eigenaar in en stuur een melding naar die persoon (of naar on-call/lead als er geen eigenaar is). Voor dag één is handmatige toewijzing prima zolang het snel en in de geschiedenis geregistreerd is.
Begin met een paar triggers die mensen kunnen onthouden: onbepaald na een korte respijtperiode, SLA in gevaar, SLA geschonden en te lang in In afwachting. Elke waarschuwing moet naar de kleinste groep die het kan oplossen gaan, één volgende stap bevatten en gethrottled zijn om spam te voorkomen.
Bouw een wachtrijweergave (filters: status, prioriteit, SLA-toestand, onbepaald), een ticketdetail met eentijdlijn en een snel intake/triageformulier. Voeg een klein adminscherm toe voor categorieën, SLA-instellingen en on-call rotatie.
AppMaster past goed wanneer je workflow als visuele businessprocessen wil vastleggen in plaats van handgeschreven regels. Je modelleert PostgreSQL-data, dwingt statustransities af, berekent SLA-deadlines en stuurt notificaties, en genereert vervolgens productieklare apps terwijl je proces verandert.


