Oneindige loops in triggers voorkomen

Benodigde licentie

Abonnement Elk abonnement
Toegang Admin

Een trigger waarvan de actie zijn eigen voorwaarden vervult, loopt opnieuw. Zendesk heeft rate limiting en interne bewaking, maar publiceert geen drempel voor triggerloops, dus ontwerp alsof niets het opvangt.

Hoe een loop ontstaat

De actie van een trigger telt als een bijwerking, en een bijwerking laat de triggers lopen. Dus een regel die afgaat als de prioriteit hoog is en de prioriteit op hoog zet, gaat opnieuw af bij de bijwerking die hij zojuist veroorzaakte.

Twee regels kunnen het samen doen, en dat is lastiger te zien: de ene zet een tag, de andere reageert op die tag en verandert een veld waar de eerste naar kijkt.

Hoe het eruitziet

  • Een ticket met tientallen identieke gebeurtenissen, seconden na elkaar.
  • Een klant die dezelfde e-mail keer op keer krijgt.
  • Je API-verbruik dat scherp oploopt zonder duidelijke reden.

Wat wél is gedocumenteerd zit aan de inkomende kant en niet bij de triggers. Meer dan 20 e-mails van dezelfde gebruiker binnen een uur en de volgende 20 worden opgeschort met de oorzaak Detected as email loop; boven de 40 worden verdere updates dat uur ronduit geweigerd. Dat vangt de mailloop nadat hij is begonnen, en het doet niets tegen een trigger die binnen één ticket rondloopt.

Daarnaast begrenst Zendesk bepaalde triggervoorwaarden: een trigger die daaroverheen gaat wordt uitgezet, en opnieuw aanzetten geeft een foutmelding.

De drie verdedigingen

Gebruik gewijzigd in, niet is

Een regel die op een overgang afgaat, kan niet opnieuw afgaan bij de bijwerking die hij veroorzaakte, want die overgang is al geweest. Dit alleen al voorkomt de meeste loops.

Sluit je eigen wijziging uit

Voeg een voorwaarde op de huidige gebruiker toe, of een tag die de regel zelf zet en waarvan hij daarna de afwezigheid eist. Allebei maken ze de regel onmachtig om op zichzelf te reageren, en de tagvariant is de techniek die Zendesk documenteert voor geautomatiseerde post: één trigger tagt de tickets die zulke berichten aanmaken, en je meldingstriggers eisen dat die tag ontbreekt.

Zet niet wat je toetst

De eenvoudigste discipline. Raken de voorwaarde en de actie van een trigger hetzelfde veld, kijk er dan twee keer naar.

Mailloops zijn de versie die klanten zien. Twee systemen die elkaar automatisch beantwoorden, of een regel die mailt naar een adres dat weer terugstuurt. Zendesk houdt de meeste geautomatiseerde post juist hierom tegen, en dat is de reden dat een afwezigheidsantwoord geen ticket aanmaakt. Tussen twee Zendesk-accounts met een deelovereenkomst is er nog een beveiliging: Zendesk houdt een lijst van supportadressen van partners bij en gebruikt die om de loop te breken.

Zie ook

Was dit artikel nuttig?

0

Kom je er niet uit?

Ons supportteam kijkt met je mee.

Opmerkingen

0 opmerkingen

Artikel is gesloten voor opmerkingen.