Ga naar hoofdinhoud

Workflowregels

Automatiseer uw Helpdesk-processen met aanpasbare workflowregels. Workflowregels stellen u in staat ticketattributen automatisch bij te werken, meldingen te verzenden en specifieke acties te activeren op basis van gedefinieerde gebeurtenissen of voorwaarden. Deze functie helpt handmatig werk te verminderen, consistentie te behouden en reactietijden te versnellen.

Na installatie maakt Helpdesk MX automatisch de standaard workflowregel aan "Auto-change status to Waiting for Customer on agent reply".


Algemene informatie​

General informationGeneral information
  • Rule Name: definieer een beschrijvende naam voor de regel. Duidelijke naamgeving helpt uw team gemakkelijk te identificeren wat elke regel doet.
  • Active: schakel de regel in of uit. Alleen actieve regels worden uitgevoerd wanneer aan hun gebeurtenis en voorwaarden wordt voldaan.
  • Event: kies de gebeurtenis die de regel activeert.
  • Priority / Sort Order: specificeer de verwerkingsvolgorde van de regel. Lagere nummers worden eerst uitgevoerd. Dit helpt te bepalen welke regels voorrang krijgen wanneer meerdere regels van toepassing zijn op dezelfde gebeurtenis.
  • Stop Further Rules Processing: stop het uitvoeren van regels met lagere prioriteit zodra deze regel is toegepast. Nuttig wanneer u wilt dat een specifieke regel volledige controle over een gebeurtenis heeft.

Gebeurtenissen​

Gebeurtenissen definiëren wanneer de workflowregel wordt geëvalueerd. Beschikbare gebeurtenissen zijn:

  • New Ticket — geactiveerd wanneer een nieuw ticket wordt aangemaakt.
  • New Customer Reply — geactiveerd wanneer een klant een nieuw antwoord stuurt.
  • New Staff Reply — geactiveerd wanneer een medewerker een antwoord plaatst.
  • New Third Party Reply — geactiveerd wanneer een derde partij een bericht stuurt.
  • Ticket Assigned — geactiveerd wanneer een ticket aan een gebruiker wordt toegewezen.
  • Ticket Updated — geactiveerd wanneer ticketvelden worden bijgewerkt.
  • Cron Every Hour — elk uur door het systeem geactiveerd, waardoor tijdgebaseerde acties mogelijk zijn.

Voorwaarden​

Voorwaarden bepalen wanneer een workflowregel moet worden uitgevoerd. U kunt één of meerdere voorwaarden gebruiken, ze combineren met ALL/ANY logica, en zelfs geneste groepen maken voor geavanceerde filtering. Laat deze sectie leeg om de regel bij elk voorkomen van de gebeurtenis uit te voeren.

ConditionsConditions

Beschikbare velden​

U kunt voorwaarden bouwen met de volgende velden:

  • Subject — controleert woorden of zinnen in het ticketonderwerp.
  • Customer Email — komt overeen met het e-mailadres van de klant.
  • Customer Name — vergelijkt de naam van de klant.
  • Channel — filtert tickets die zijn aangemaakt vanuit specifieke bronnen (bijv. e-mail, contactformulier, API).
  • Department — komt overeen met de huidige afdeling die aan het ticket is toegewezen.
  • Department (Before Change) — maakt vergelijking mogelijk met de afdeling vóór een updategebeurtenis.
  • Folder — controleert tot welke map het ticket momenteel behoort.
  • Folder (Before Change) — controleert de map vóór de laatste wijziging.
  • Owner — komt overeen met de toegewezen medewerker.
  • Owner (Before Change) — vergelijkt de eigenaar vóór een update.
  • Priority — controleert de huidige prioriteit van het ticket.
  • Priority (Before Change) — vergelijkt de prioriteit voordat deze werd bijgewerkt.
  • Status — controleert de huidige ticketstatus.
  • Status (Before Change) — vergelijkt de vorige status.
  • Last Message — stelt u in staat de inhoud van het laatste bericht te controleren.
  • Last Reply By — definieert wie als laatste heeft geantwoord (klant, personeel of derde partij).
  • Hours Since Created — tijd verstreken sinds het ticket werd aangemaakt.
  • Hours Since Last Reply — tijd sinds het laatste antwoord werd gegeven.
  • Hours Since Updated — tijd sinds het ticket voor het laatst werd gewijzigd.

Voorwaardenoperatoren​

Elke voorwaarde kan één van de volgende operatoren gebruiken om te definiëren hoe waarden worden vergeleken:

  • Equals — activeert wanneer de veldwaarde exact overeenkomt met de opgegeven waarde.
  • Not Equals — activeert wanneer de veldwaarde verschilt van de opgegeven waarde.
  • Greater Than — activeert wanneer de waarde groter is dan de opgegeven waarde (vooral gebruikt bij numerieke of tijdvelden).
  • Greater Than or Equals — activeert wanneer de waarde groter is dan of gelijk is aan de opgegeven waarde.
  • Less Than — activeert wanneer de waarde kleiner is dan de opgegeven waarde.
  • Less Than or Equals — activeert wanneer de waarde kleiner is dan of gelijk is aan de opgegeven waarde.
  • Between — activeert wanneer de waarde tussen twee opgegeven getallen valt (nuttig voor tijdgebaseerde voorwaarden).
  • Matches Regex — vergelijkt veldwaarden met reguliere expressies voor geavanceerde patroonherkenning.
  • Starts With — activeert als het veld begint met de opgegeven tekst.
  • Ends With — activeert als het veld eindigt met de opgegeven tekst.
  • Is Empty — activeert wanneer het veld geen waarde heeft.
  • Is Not Empty — activeert wanneer het veld een waarde bevat.
  • Contains — activeert wanneer het veld de opgegeven tekst bevat.
  • Does Not Contain — activeert wanneer het veld de opgegeven tekst niet bevat.

Acties​

Acties definiëren wat er gebeurt zodra aan alle voorwaarden is voldaan. Meerdere acties kunnen binnen één regel worden gecombineerd.

ActionsActions

Beschikbare acties zijn onder andere:

  • Set Status — werk de ticketstatus bij.
  • Set Priority — wijzig het prioriteitsniveau.
  • Set Department — wijs het ticket opnieuw toe aan een andere afdeling.
  • Set Owner — wijs toe aan een specifieke medewerker.
  • Change Folder — verplaats het ticket naar een specifieke map.
  • Add Tags — voeg tags toe voor categorisering.
  • Remove Tags — verwijder bestaande tags van het ticket.
  • Send Email — stuur e-mailmeldingen naar gespecificeerde ontvangers.
  • Run Script — voer aangepaste JavaScript-code uit voor geavanceerde automatisering.

Send Email Actie​

De actie Send Email stelt u in staat geautomatiseerde e-mailmeldingen te verzenden wanneer een regel wordt geactiveerd. Dit is nuttig voor het waarschuwen van teamleden, het informeren van klanten of het communiceren met externe partijen.

Beschikbare opties:

  • Send to ticket owner — breng de toegewezen medewerker op de hoogte.
  • Send to all department users — waarschuw alle leden van de afdeling van het ticket.
  • Send to customer — informeer de klant over updates.
  • Send to other addresses — specificeer aangepaste e-mailadressen.
  • Email Subject — definieer de onderwerpregel van de e-mail (ondersteunt Liquid sjabloonvariabelen).
  • Email Body — stel de e-mailinhoud samen (ondersteunt Liquid sjabloonvariabelen).
  • Include attachments — voeg bestanden toe van het laatste bericht.

Sjabloonvariabelen​

U kunt Liquid sjabloonvariabelen gebruiken in de velden Email Subject en Email Body om dynamisch ticket-, klant- en berichtinformatie in te voegen.

Ticketvariabelen:

VariabeleBeschrijving
{{ ticket.code }}Ticketcode (bijv. T-001)
{{ ticket.subject }}Ticketonderwerp
{{ ticket.created_at }}Timestamp van ticketaanmaak
{{ ticket.updated_at }}Timestamp laatste update
{{ ticket.customer_name }}Volledige naam klant
{{ ticket.customer_email }}E-mailadres klant
{{ ticket.admin_url }}Directe link naar ticket in adminpaneel
{{ ticket.admin_last_message_text }}Tekst van laatste antwoord medewerker (platte tekst)
{{ ticket.admin_last_message_html }}Tekst van laatste antwoord medewerker (HTML)
{{ ticket.customer_last_message_text }}Tekst van laatste antwoord klant (platte tekst)
{{ ticket.customer_last_message_html }}Tekst van laatste antwoord klant (HTML)

Eigenaar/toegewezen variabelen:

VariabeleBeschrijving
{{ owner.firstname }}Voornaam toegewezen medewerker
{{ owner.lastname }}Achternaam toegewezen medewerker
{{ owner.email }}E-mail toegewezen medewerker
{{ owner.fullname }}Volledige naam toegewezen medewerker
{{ owner.is_admin }}Of eigenaar een admin is

Afdelingsvariabelen:

VariabeleBeschrijving
{{ department.name }}Afdelingsnaam
{{ department.sender_name }}Afzendernaam afdeling

Berichtvariabelen (bij activering door berichtgebeurtenissen):

VariabeleBeschrijving
{{ message.body_text }}Berichtinhoud (platte tekst)
{{ message.body_html }}Berichtinhoud (HTML)
{{ message.type }}Berichttype
{{ message.created_at }}Timestamp berichtaanmaak

Datum/tijd variabelen:

VariabeleBeschrijving
{{ now }}Huidige timestamp (RFC3339)
{{ date }}Huidige datum (YYYY-MM-DD)
{{ time }}Huidige tijd (HH:MM:SS)
{{ year }}Huidig jaar

Voorbeeld e-mailsjabloon:

Subject: Nieuw antwoord op ticket #{{ ticket.code }}

Hallo {{ owner.firstname }},

Een klant heeft geantwoord op ticket "{{ ticket.subject }}".

Klant: {{ ticket.customer_name }} ({{ ticket.customer_email }})

Laatste bericht:
{{ ticket.customer_last_message_text }}

Bekijk ticket: {{ ticket.admin_url }}

Run Script Actie​

De actie Run Script stelt u in staat aangepaste JavaScript-code uit te voeren om complexe automatiseringslogica te implementeren die verder gaat dan eenvoudige veldtoewijzingen. Scripts kunnen ticketgegevens lezen, voorwaardelijke beslissingen nemen en meerdere velden tegelijk bijwerken.

Beschikbare ticketeigenschappen (lezen):

EigenschapBeschrijving
ticket.idTicket unieke identifier
ticket.subjectTicketonderwerp
ticket.folderHuidige map (INBOX, ASSIGNED, SPAM, etc.)
ticket.tagsArray van tags
ticket.statusObject met id, code, en name
ticket.priorityObject met id en name
ticket.departmentObject met id en name
ticket.ownerObject met id, email, firstname, lastname
ticket.customerObject met id, email, firstname, lastname, name
ticket.<custom_field_code>Aangepaste veldwaarde via code

Beschikbare ticketeigenschappen (schrijven):

EigenschapVerwachte waarde
ticket.statusStatuscode (string) of status ID
ticket.priorityPrioriteitsnaam (string) of prioriteit ID
ticket.departmentAfdelingsnaam (string) of afdeling ID
ticket.ownerGebruiker e-mail (string) of gebruiker ID
ticket.folderMapnaam: "INBOX", "ASSIGNED", "SPAM", "ARCHIVE"
ticket.tagsArray van tag strings
ticket.<custom_field_code>Waarde passend bij het aangepaste veldtype

Hulpfuncties:

FunctieRetourneert
getStatuses()Array van alle beschikbare statussen
getPriorities()Array van alle beschikbare prioriteiten
getDepartments()Array van alle beschikbare afdelingen
getUsers()Array van alle beschikbare gebruikers
fetch(url, options)HTTP-verzoeken maken naar externe API's

Berichtcontext (beschikbaar wanneer regel wordt geactiveerd door berichtgebeurtenis):

EigenschapBeschrijving
message.idBericht unieke identifier
message.body_textBerichtinhoud (platte tekst)
message.body_htmlBerichtinhoud (HTML)
message.createdAtTimestamp berichtaanmaak

Scriptvoorbeelden:

// Prioriteit instellen op basis van onderwerp trefwoorden
if (ticket.subject.toLowerCase().includes("urgent")) {
ticket.priority = "High";
}
// Tickets routeren naar afdelingen op basis van inhoud
if (ticket.subject.includes("billing") || ticket.subject.includes("invoice")) {
ticket.department = "Billing";
} else if (ticket.subject.includes("technical") || ticket.subject.includes("error")) {
ticket.department = "Technical Support";
}
// VIP klantafhandeling
if (ticket.customer && ticket.customer.email.endsWith("@enterprise.com")) {
ticket.priority = "High";
ticket.tags = ["vip", "enterprise"];
}
// Aangepaste veldwaarde instellen
ticket.order_id = "12345";
ticket.vip_customer = true;
ticket.order_amount = 99.99;
// Klantgegevens ophalen van externe API en ticket bijwerken
var response = fetch("https://api.example.com/customers/" + ticket.customer.email, {
headers: { "Authorization": "Bearer YOUR_API_KEY" }
});

if (response.ok && response.json) {
ticket.customer_tier = response.json.tier;
if (response.json.tier === "enterprise") {
ticket.priority = "High";
ticket.department = "Enterprise Support";
}
}

Belangrijke opmerkingen:

  • Scripts hebben een timeout van 10 seconden om oneindige loops te voorkomen.
  • Ongeldige veldwaarden (niet-bestaande status, prioriteit, etc.) worden netjes genegeerd.
  • Scriptfouten hebben geen invloed op andere regels of crashen het systeem niet.
  • Aangepaste velden worden gerefereerd via hun code, niet naam.

Meldingen​

U kunt geautomatiseerde e-mailmeldingen verzenden wanneer de regel wordt uitgevoerd om alle partijen op de hoogte te houden.

NotificationsNotifications

Meldingsopties zijn onder andere:

  • Send email to ticket owner — breng de toegewezen medewerker op de hoogte.
  • Send email to all department users — waarschuw alle afdelingsleden.
  • Send email to customer — informeer de klant over wijzigingen.
  • Send email to other addresses — stuur naar externe ontvangers.
  • Email Subject — specificeer de onderwerpregel.
  • Email Body — stel de e-mailinhoud samen.
  • Attach files previously attached to the last message — voeg eerdere bijlagen toe voor context.

Voorbeeld workflowregels​

Status wijzigen bij klantantwoord
Wanneer een klant antwoordt, wijzigt het systeem automatisch de ticketstatus naar Waiting for Agent.

Type: Workflow Rule
Is Active: Ja
Event: New Customer Reply
Conditions: Status Not Equals Closed
Actions: Set Status → Waiting for Agent
Nieuw antwoord van derde partij
Wanneer een derde partij een bericht stuurt, stelt het systeem de status in op Waiting for Agent en voegt een tag `third_party` toe.

Type: Workflow Rule
Is Active: Ja
Event: New Third Party Reply
Conditions: Geen
Actions:
Set Status → Waiting for Agent
Add Tags → third_party
Ticket toegewezen aan personeel
Wanneer een ticket aan een personeelslid wordt toegewezen, wordt het automatisch verplaatst naar de Assigned map en wordt een e-mailmelding verzonden.

Type: Workflow Rule
Is Active: Ja
Event: Ticket Assigned
Conditions: Geen
Actions:
Change Folder → Assigned
Send email to ticket owner
Ticket sluiten na 72 uur zonder antwoord
Als er binnen 72 uur geen antwoord wordt ontvangen, sluit het ticket automatisch.

Type: Workflow Rule
Is Active: Ja
Event: Cron Every Hour
Conditions:
Status Equals Waiting for Customer
Hours Since Last Reply Greater Than 72
Actions: Set Status → Closed
Script: Routeren en prioriteren op basis van klant e-maildomein
Routeer enterprise klanten naar speciale support en stel hoge prioriteit in.

Type: Workflow Rule
Is Active: Ja
Event: New Ticket
Conditions: Geen
Actions: Run Script

```javascript
if (ticket.customer && ticket.customer.email) {
var domain = ticket.customer.email.split("@")[1];

if (domain === "enterprise.com" || domain === "bigcorp.com") {
ticket.priority = "High";
ticket.department = "Enterprise Support";
ticket.tags = ["enterprise", "priority"];
}
}
```
Script: Tickets automatisch categoriseren op basis van onderwerp trefwoorden
Categoriseer tickets automatisch en stel aangepaste velden in op basis van onderwerpinhoud.

Type: Workflow Rule
Is Active: Ja
Event: New Ticket
Conditions: Geen
Actions: Run Script

```javascript
var subject = ticket.subject.toLowerCase();

if (subject.includes("refund") || subject.includes("return")) {
ticket.department = "Billing";
ticket.category = "refund_request";
} else if (subject.includes("password") || subject.includes("login")) {
ticket.department = "Technical Support";
ticket.category = "account_access";
} else if (subject.includes("order") || subject.includes("shipping")) {
ticket.department = "Orders";
ticket.category = "order_inquiry";
}
```
Script: Escaleren op basis van berichtinhoudanalyse
Detecteer urgente trefwoorden in berichten en escaleer tickets automatisch.

Type: Workflow Rule
Is Active: Ja
Event: New Customer Reply
Conditions: Geen
Actions: Run Script

```javascript
if (message && message.body_text) {
var body = message.body_text.toLowerCase();
var urgentKeywords = ["asap", "urgent", "critical", "down", "outage", "emergency"];

for (var i = 0; i < urgentKeywords.length; i++) {
if (body.includes(urgentKeywords[i])) {
ticket.priority = "High";
ticket.tags = ticket.tags.concat(["escalated"]);
break;
}
}
}
```