Hop til hovedindhold

Workflow-regler

Automatiser dine Helpdesk-processer med tilpasselige workflow-regler. Workflow-regler giver dig mulighed for automatisk at opdatere ticketattributter, sende notifikationer og udløse specifikke handlinger baseret på definerede begivenheder eller betingelser. Denne funktion hjælper med at reducere manuelt arbejde, opretholde konsistens og fremskynde svartider.

Efter installation opretter Helpdesk MX automatisk standard workflow-reglen "Auto-change status to Waiting for Customer on agent reply".


Generel information​

General informationGeneral information
  • Rule Name: definer et beskrivende navn for reglen. Klar navngivning hjælper dit team med nemt at identificere, hvad hver regel gør.
  • Active: aktiver eller deaktiver reglen. Kun aktive regler udføres, når deres begivenhed og betingelser er opfyldt.
  • Event: vælg den begivenhed, der udløser reglen.
  • Priority / Sort Order: angiv reglens behandlingsrækkefølge. Lavere numre udføres først. Dette hjælper med at kontrollere, hvilke regler der har forrang, når flere regler gælder for samme begivenhed.
  • Stop Further Rules Processing: stop udførelsen af regler med lavere prioritet, når denne regel er anvendt. Nyttigt når du ønsker, at en specifik regel skal have fuld kontrol over en begivenhed.

Begivenheder​

Begivenheder definerer, hvornår workflow-reglen evalueres. Tilgængelige begivenheder inkluderer:

  • New Ticket — udløst når en ny ticket oprettes.
  • New Customer Reply — udløst når en kunde sender et nyt svar.
  • New Staff Reply — udløst når en agent skriver et svar.
  • New Third Party Reply — udløst når en tredjepart sender en besked.
  • Ticket Assigned — udløst når en ticket tildeles en bruger.
  • Ticket Updated — udløst når ticketfelter opdateres.
  • Cron Every Hour — udløst af systemet hver time, hvilket tillader tidsbaserede handlinger.

Betingelser​

Betingelser definerer, hvornår en workflow-regel skal udføres. Du kan bruge en eller flere betingelser, kombinere dem med ALL/ANY-logik, og endda oprette indlejrede grupper til avanceret filtrering. Lad dette afsnit være tomt for at få reglen til at udføre ved hver begivenhed.

ConditionsConditions

Tilgængelige felter​

Du kan opbygge betingelser ved hjælp af følgende felter:

  • Subject — tjekker ord eller sætninger i ticketens emne.
  • Customer Email — matcher kundens e-mailadresse.
  • Customer Name — sammenligner kundens navn.
  • Channel — filtrerer tickets oprettet fra specifikke kilder (f.eks. e-mail, kontaktformular, API).
  • Department — matcher den aktuelle afdeling tildelt ticketen.
  • Department (Before Change) — tillader sammenligning med afdelingen før en opdateringsbegivenhed.
  • Folder — tjekker hvilken mappe ticketen aktuelt tilhører.
  • Folder (Before Change) — tjekker mappen før sidste ændring.
  • Owner — matcher den tildelte agent.
  • Owner (Before Change) — sammenligner ejeren før en opdatering.
  • Priority — tjekker ticketens aktuelle prioritet.
  • Priority (Before Change) — sammenligner prioriteten før den blev opdateret.
  • Status — tjekker den aktuelle ticketstatus.
  • Status (Before Change) — sammenligner den tidligere status.
  • Last Message — giver dig mulighed for at tjekke indhold i den seneste besked.
  • Last Reply By — definerer hvem der svarede sidst (kunde, personale eller tredjepart).
  • Hours Since Created — tid forløbet siden ticketen blev oprettet.
  • Hours Since Last Reply — tid siden sidste svar blev givet.
  • Hours Since Updated — tid siden ticketen sidst blev ændret.

Betingelsesoperatorer​

Hver betingelse kan bruge en af følgende operatorer til at definere, hvordan værdier sammenlignes:

  • Equals — udløses når feltværdien præcist matcher den angivne værdi.
  • Not Equals — udløses når feltværdien er forskellig fra den angivne værdi.
  • Greater Than — udløses når værdien er større end den angivne (hovedsageligt brugt med numeriske eller tidsfelter).
  • Greater Than or Equals — udløses når værdien er større end eller lig med den angivne.
  • Less Than — udløses når værdien er mindre end den angivne.
  • Less Than or Equals — udløses når værdien er mindre end eller lig med den angivne.
  • Between — udløses når værdien falder mellem to angivne numre (nyttigt til tidsbaserede betingelser).
  • Matches Regex — sammenligner feltværdier ved hjælp af regulære udtryk til avanceret mønstermatchning.
  • Starts With — udløses hvis feltet begynder med den angivne tekst.
  • Ends With — udløses hvis feltet slutter med den angivne tekst.
  • Is Empty — udløses når feltet ikke har nogen værdi.
  • Is Not Empty — udløses når feltet indeholder en hvilken som helst værdi.
  • Contains — udløses når feltet inkluderer den angivne tekst.
  • Does Not Contain — udløses når feltet ikke inkluderer den angivne tekst.

Handlinger​

Handlinger definerer, hvad der sker, når alle betingelser er opfyldt. Flere handlinger kan kombineres inden for en enkelt regel.

ActionsActions

Tilgængelige handlinger inkluderer:

  • Set Status — opdater ticketens status.
  • Set Priority — skift prioritetsniveau.
  • Set Department — omtildel ticketen til en anden afdeling.
  • Set Owner — tildel til en specifik agent.
  • Change Folder — flyt ticketen til en specifik mappe.
  • Add Tags — tilføj tags til kategorisering.
  • Remove Tags — slet eksisterende tags fra ticketen.
  • Send Email — send e-mailnotifikationer til specificerede modtagere.
  • Run Script — udfør tilpasset JavaScript-kode til avanceret automatisering.

Send Email-handling​

Handlingen Send Email giver dig mulighed for at sende automatiske e-mailnotifikationer, når en regel udløses. Dette er nyttigt til at advare teammedlemmer, underrette kunder eller kommunikere med eksterne parter.

Tilgængelige muligheder:

  • Send to ticket owner — underret den tildelte agent.
  • Send to all department users — advar alle medlemmer af ticketens afdeling.
  • Send to customer — informer kunden om opdateringer.
  • Send to other addresses — angiv tilpassede e-mailadresser.
  • Email Subject — definer e-mailens emnelinje (understøtter Liquid-skabelonvariabler).
  • Email Body — udform e-mailindholdet (understøtter Liquid-skabelonvariabler).
  • Include attachments — vedhæft filer fra den seneste besked.

Skabelonvariabler​

Du kan bruge Liquid-skabelonvariabler i felterne Email Subject og Email Body til dynamisk at indsætte ticket-, kunde- og beskedinformation.

Ticketvariabler:

VariabelBeskrivelse
{{ ticket.code }}Ticketkode (f.eks. T-001)
{{ ticket.subject }}Ticketens emnelinje
{{ ticket.created_at }}Ticket-oprettelsestidsstempel
{{ ticket.updated_at }}Sidste opdateringstidsstempel
{{ ticket.customer_name }}Kundens fulde navn
{{ ticket.customer_email }}Kundens e-mailadresse
{{ ticket.admin_url }}Direkte link til ticket i admin-panel
{{ ticket.admin_last_message_text }}Indhold af sidste agentsvar (ren tekst)
{{ ticket.admin_last_message_html }}Indhold af sidste agentsvar (HTML)
{{ ticket.customer_last_message_text }}Indhold af sidste kundesvar (ren tekst)
{{ ticket.customer_last_message_html }}Indhold af sidste kundesvar (HTML)

Ejer/tildelte variabler:

VariabelBeskrivelse
{{ owner.firstname }}Tildelt agents fornavn
{{ owner.lastname }}Tildelt agents efternavn
{{ owner.email }}Tildelt agents e-mail
{{ owner.fullname }}Tildelt agents fulde navn
{{ owner.is_admin }}Om ejeren er en admin

Afdelingsvariabler:

VariabelBeskrivelse
{{ department.name }}Afdelingsnavn
{{ department.sender_name }}Afdelingens afsendernavn

Beskedvariabler (når udløst af beskedbegivenheder):

VariabelBeskrivelse
{{ message.body_text }}Beskedindhold (ren tekst)
{{ message.body_html }}Beskedindhold (HTML)
{{ message.type }}Beskedtype
{{ message.created_at }}Besked-oprettelsestidsstempel

Dato/tidsvariabler:

VariabelBeskrivelse
{{ now }}Nuværende tidsstempel (RFC3339)
{{ date }}Nuværende dato (YYYY-MM-DD)
{{ time }}Nuværende tid (HH:MM:SS)
{{ year }}Nuværende år

Eksempel på e-mailskabelon:

Subject: Nyt svar på ticket #{{ ticket.code }}

Hej {{ owner.firstname }},

En kunde har svaret på ticket "{{ ticket.subject }}".

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

Seneste besked:
{{ ticket.customer_last_message_text }}

Se ticket: {{ ticket.admin_url }}

Run Script-handling​

Handlingen Run Script giver dig mulighed for at udføre tilpasset JavaScript-kode for at implementere kompleks automatiseringslogik, der går ud over simple felttildelinger. Scripts kan læse ticketdata, træffe betingede beslutninger og opdatere flere felter på én gang.

Tilgængelige ticketegenskaber (læs):

EgenskabBeskrivelse
ticket.idTicket unikt identifikator
ticket.subjectTicketens emnelinje
ticket.folderNuværende mappe (INBOX, ASSIGNED, SPAM osv.)
ticket.tagsArray af tags
ticket.statusObjekt med id, code og name
ticket.priorityObjekt med id og name
ticket.departmentObjekt med id og name
ticket.ownerObjekt med id, email, firstname, lastname
ticket.customerObjekt med id, email, firstname, lastname, name
ticket.<custom_field_code>Brugerdefineret feltværdi efter dens kode

Tilgængelige ticketegenskaber (skriv):

EgenskabForventet værdi
ticket.statusStatuskode (streng) eller status-ID
ticket.priorityPrioritetsnavn (streng) eller prioritets-ID
ticket.departmentAfdelingsnavn (streng) eller afdelings-ID
ticket.ownerBruger-e-mail (streng) eller bruger-ID
ticket.folderMappenavn: "INBOX", "ASSIGNED", "SPAM", "ARCHIVE"
ticket.tagsArray af tag-strenge
ticket.<custom_field_code>Værdi, der matcher den brugerdefinerede felttype

Hjælpefunktioner:

FunktionReturnerer
getStatuses()Array af alle tilgængelige statusser
getPriorities()Array af alle tilgængelige prioriteter
getDepartments()Array af alle tilgængelige afdelinger
getUsers()Array af alle tilgængelige brugere
fetch(url, options)Foretag HTTP-anmodninger til eksterne API'er

Beskedkontekst (tilgængelig når reglen udløses af en beskedbegivenhed):

EgenskabBeskrivelse
message.idBesked unikt identifikator
message.body_textBeskedindhold (ren tekst)
message.body_htmlBeskedindhold (HTML)
message.createdAtBesked-oprettelsestidsstempel

Script-eksempler:

// Indstil prioritet baseret på emnenøgleord
if (ticket.subject.toLowerCase().includes("urgent")) {
ticket.priority = "High";
}
// Ruter tickets til afdelinger baseret på indhold
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-kundehåndtering
if (ticket.customer && ticket.customer.email.endsWith("@enterprise.com")) {
ticket.priority = "High";
ticket.tags = ["vip", "enterprise"];
}
// Indstil brugerdefineret feltværdi
ticket.order_id = "12345";
ticket.vip_customer = true;
ticket.order_amount = 99.99;
// Hent kundedata fra eksternt API og opdater ticket
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";
}
}

Vigtige bemærkninger:

  • Scripts har en 10-sekunders timeout for at forhindre uendelige loops.
  • Ugyldige feltværdier (ikke-eksisterende status, prioritet osv.) ignoreres elegant.
  • Scriptfejl påvirker ikke andre regler eller crasher systemet.
  • Brugerdefinerede felter refereres til ved deres kode, ikke navn.

Notifikationer​

Du kan sende automatiske e-mailnotifikationer, når reglen udføres for at holde alle parter informeret.

NotificationsNotifications

Notifikationsmuligheder inkluderer:

  • Send email to ticket owner — underret den tildelte agent.
  • Send email to all department users — advar alle afdelingsmedlemmer.
  • Send email to customer — informer kunden om ændringer.
  • Send email to other addresses — send til eksterne modtagere.
  • Email Subject — angiv emnelinjen.
  • Email Body — udform e-mailindholdet.
  • Attach files previously attached to the last message — inkluder tidligere vedhæftninger for kontekst.

Eksempler på workflow-regler​

Skift status ved kundesvar
Når en kunde svarer, ændrer systemet automatisk ticketstatussen til Waiting for Agent.

Type: Workflow Rule
Is Active: Ja
Event: New Customer Reply
Conditions: Status Not Equals Closed
Actions: Set Status → Waiting for Agent
Nyt svar fra tredjepart
Når en tredjepart sender en besked, sætter systemet status til Waiting for Agent og tilføjer et tag `third_party`.

Type: Workflow Rule
Is Active: Ja
Event: New Third Party Reply
Conditions: Ingen
Actions:
Set Status → Waiting for Agent
Add Tags → third_party
Ticket tildelt til personale
Når en ticket tildeles et personalemedlem, flyttes den automatisk til Assigned-mappen og sender en e-mailnotifikation.

Type: Workflow Rule
Is Active: Ja
Event: Ticket Assigned
Conditions: Ingen
Actions:
Change Folder → Assigned
Send email to ticket owner
Luk ticket efter 72 timer uden svar
Hvis intet svar modtages inden for 72 timer, lukkes ticketen automatisk.

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: Ruter og prioriter baseret på kunde-e-maildomæne
Ruter enterprise-kunder til dedikeret support og sætter høj prioritet.

Type: Workflow Rule
Is Active: Ja
Event: New Ticket
Conditions: Ingen
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: Auto-kategoriser tickets efter emnenøgleord
Kategoriser automatisk tickets og indstil brugerdefinerede felter baseret på emneindhold.

Type: Workflow Rule
Is Active: Ja
Event: New Ticket
Conditions: Ingen
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: Eskalér baseret på beskedindholdsanalyse
Detekter hastende nøgleord i beskeder og auto-eskalér tickets.

Type: Workflow Rule
Is Active: Ja
Event: New Customer Reply
Conditions: Ingen
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;
}
}
}
```