Loyalty-workflowbouwer¶
Een workflow is een regel die klanten automatisch beloont. Elke workflow begint met een trigger ("wanneer dit gebeurt"), kan vertakken op basis van voorwaarden ("alleen als…") en voert een of meer acties uit ("doe dit"). Je bouwt hem visueel op een canvas.
Open de bouwer vanaf het Loyalty-dashboard: klik op Manage Workflows, daarna op Create Workflow en kies een kant-en-klaar recept of Start from scratch. Om een bestaande workflow te bewerken, klik je op de naam ervan in de lijst.

De bouwer heeft drie gebieden:
- Toolbar (boven) — de naam van de workflow, de planning en het budget, de status en de actieknoppen. Zie De toolbar.
- Canvas (midden) — de visuele stroom van je trigger en stappen.
- Config panel (rechts) — instellingen voor de stap die je hebt geselecteerd. Klik op Performance en dit paneel toont in plaats daarvan de resultaten van de workflow.
Bestellingen zonder klantaccount
Workflows belonen een klant, dus een bestelling die als gast wordt geplaatst — zonder gekoppelde klant — start geen enkele workflow.
Stap 1 — Kies een trigger¶
Elke workflow heeft precies één trigger nodig. Klik op de kaart Start when... op het canvas en kies een trigger uit het menu. Wil je die later wijzigen, selecteer dan de trigger en klik in het Config panel op Change — wisselen wist de instellingen van de trigger en vraagt eerst om bevestiging als je die had gewijzigd.

| Trigger | Wordt geactiveerd wanneer… |
|---|---|
| Order Complete | Een bestelling is betaald. Optioneel stel je Only orders with a subtotal of at least in met een bedrag (artikelen na kortingen, vóór verzending en belasting), of vink je Skip orders paid entirely with discounts aan. |
| Customer Signup | Een nieuw klantaccount wordt aangemaakt. Optioneel vink je Only if the email is verified at sign-up aan — een klant die later verifieert, wordt niet opgepikt, omdat Shopify geen tweede gebeurtenis verstuurt. |
| Customer Birthday | Het is de verjaardag van de klant, gecontroleerd elke dag om 09:00 UTC. Kies On the day of Days before (tot 30). De verjaardag komt uit een klantmetafield (standaard custom.birthday — open More options om een andere namespace.key te gebruiken) of uit een klanttag in de vorm bday:MM-DD. |
| Product Purchase | Een specifiek product wordt gekocht. Kies de producten, een minimaal totaal aantal (standaard 1) en optioneel een bedragbereik dat die producten samen moeten opleveren. |
| Collection Purchase | Een product uit een gekozen collectie wordt gekocht. Optioneel stel je een bedragbereik in dat de artikelen van de collectie samen moeten opleveren. |
| Order Fulfilled | Een bestelling is volledig verzonden (de standaard) — of kies Any shipment. |
| Refund Created | Er wordt een terugbetaling gedaan. Kies Any refund, Full refund only of Partial refund only, en optioneel een minimaal terugbetaalbedrag. |
Een trigger selecteren opent de instellingen ervan in het Config panel.
Losse varianten kiezen
De productkiezer opent met varianten zichtbaar. Vink elke variant aan en het hele product is gekozen, zodat varianten die je later toevoegt ook meetellen. Vink je er maar een paar aan, dan wordt de workflow beperkt tot precies die varianten — handig als één product cadeaubonwaarden combineert met andere artikelen. Het paneel telt ze apart, bijvoorbeeld "1 product, 9 variants".
Beloningsniveaus op basis van bedrag
Product Purchase en Collection Purchase kunnen alleen starten wanneer de gekozen producten (of de artikelen van de collectie) samen een bedrag From de ene waarde Under de andere opleveren — bijvoorbeeld van $150 onder $200. Alleen de passende regels tellen mee, tegen hun prijs na kortingen; de rest van het winkelmandje telt niet mee. De ondergrens is inbegrepen en de bovengrens niet, dus je kunt per niveau één workflow maken ($150–$200, $200–$250, … en een laatste vanaf $1,000 zonder bovengrens) en precies één ervan wordt geactiveerd voor elke bestelling. Het paneel leest je bereik terug ("Matches from $150 to under $200"), en een bereik waar geen enkele bestelling in past, wordt gemarkeerd. Gebruik {{ trigger.matched_amount }} in een bericht om het bedrag te tonen dat is meegeteld. Om een hele ladder in één workflow te belonen — en de aankopen van een klant binnen een tijdvenster als één telling te rekenen — gebruik je in plaats daarvan Reward Tiers.
Volledige of gedeeltelijke terugbetaling
Een terugbetaling telt als volledig wanneer die samen met de eerdere terugbetalingen van de bestelling het hele bestelbedrag terugbetaalt — dus als je eerst een deel van een bestelling terugbetaalt en het rest later, is de eerste terugbetaling gedeeltelijk en de tweede volledig. Elke terugbetaling vóór dat moment is gedeeltelijk. Onder Refund Created controleren voorwaarden zoals Order contains product de bestelling die is terugbetaald — bijvoorbeeld: laat een workflow alleen draaien voor terugbetalingen van bestellingen die je cadeaubonproduct bevatten. De workflow draait bij elke terugbetaling van een bestelling.
Triggers bepalen welke voorwaarden en acties beschikbaar zijn
Voorwaarden die orderdetails lezen (zoals Order Amount) en de acties Add Order Tag / Note en Reward Tiers verschijnen alleen wanneer je trigger orderdata levert. Onder Customer Signup of Customer Birthday bijvoorbeeld zijn ze verborgen, omdat er geen bestelling is. Als je de trigger van een workflow wisselt nadat je er een van deze hebt toegevoegd, wordt de stap gemarkeerd en kan de workflow niet worden geactiveerd totdat je de trigger terugzet of de stap verwijdert.
Stap 2 — Stappen toevoegen¶
Klik op de knop + onder elke kaart om de volgende stap toe te voegen. Je kunt een voorwaarde of een actie toevoegen. Om een stap te verwijderen, klik je op de ✕ op de kaart.

Voorwaarden¶
Een voorwaarde is een poort. Stappen op de YES-tak draaien alleen wanneer de controle slaagt; stappen op de NO-tak draaien wanneer die faalt.
Kies Add condition in het menu en kies daarna wat je wilt controleren in het keuzeveld Condition type van het Config panel. Het paneel leest als een zin — "Go to YES when all of these are true" — en elke controle biedt eenvoudige vergelijkingen:
| Voorwaarde | Controleert | Keuzes |
|---|---|---|
| Order Amount | De Subtotal (before tax/shipping), Total (after tax/shipping) of Discount amount van de bestelling | is at least, is more than, is at most, is less than, is exactly |
| Customer Tag | De tags van de klant in Shopify | has any of, has all of, has none of |
| First Order | Of dit de eerste bestelling van de klant is | is the first order, is a repeat order |
| Tier Level | Het huidige loyaliteitsniveau van de klant, vergeleken op niveau | is, is not, is at least, is at most |
| Order contains product | Of specifieke producten (of varianten) in de bestelling zitten, met een minimaal aantal | contains, does not contain |
| Product in Collection | Of bestelde producten tot bepaalde collecties behoren | has a product from, has only products from, has no products from |
| Order Item Count | Het aantal artikelen, als Total quantity of Unique items | dezelfde vijf vergelijkingen als Order Amount |
| Customer Total Spent | De totale uitgaven van de klant tot nu toe, vóór deze bestelling | dezelfde vijf vergelijkingen als Order Amount |
| Tier Reward Earned | Of de stap Reward Tiers ervoor deze bestelling een niveau-aanvulling heeft gegeven. Wordt aangeboden zodra de workflow een Reward Tiers-stap heeft | earned a tier reward top-up, earned no top-up |
| Tier Reward Reduced | Of de terugbetaling de niveaubeloning heeft verlaagd — zie Terugbetalingen en Reward Tiers. Wordt aangeboden zodra de workflow een Reward Tiers Refund-stap heeft | reduced the tier reward, left the tier reward as it was |
Wil je meerdere controles tegelijk laten gelden, klik dan in het paneel op + Add condition — elke rij moet slagen voor de YES-tak; anders gaat de bestelling de NO-tak op. Klik op een rij om die te openen, en op het prullenbakpictogram om die te verwijderen.

Hoe First Order, Customer Total Spent en Tier Level naar je klanten kijken
Gift Card Hero telt zelf het aantal bestellingen en de totale uitgaven van elke klant, vanaf het moment dat de klant voor het eerst een beloning ontving — dat is het moment waarop hun beloningssaldo wordt aangemaakt. Bestellingen van vóór dat moment tellen niet mee. Daarom is First Order waar voor elke klant die nog geen beloning heeft ontvangen, ook als die al eerder bij je heeft gewinkeld, en begint Customer Total Spent bij nul. Beide kijken naar de klant vóór de huidige bestelling. Een klant zonder niveau slaagt nooit voor een Tier Level-controle — ook niet voor "is not". Zie Tiers voor hoe uitgaven worden geteld.
Acties¶
Acties zijn wat de workflow daadwerkelijk doet.
| Actie | Wat het doet |
|---|---|
| Issue Credit | Voegt winkeltegoed toe aan het beloningssaldo van de klant. Kies Fixed amount of % of order, en of je Boost by customer tier wilt aanzetten. Onder More options: een maximum credit cap, wanneer het tegoed vervalt, en een notitie. |
| Issue Cashback | Geeft een percentage van de bestelling terug als winkeltegoed. Stel het percentage en een optioneel maximum in. De berekening start bij de artikelen na kortingen, en je kunt er verzending en belasting aan toevoegen. Onder More options: een minimaal bestelbedrag en een notitie. |
| Send Message | Stuurt een bericht naar de klant per e-mail, SMS of als Klaviyo event. Voor e-mail begin je vanuit een sjabloon — Credit earned, Tier changed, Credit expiring, Birthday reward, een die je hebt opgeslagen, of leeg — en bewerk je het vrijelijk. Zie Een bericht versturen hieronder. |
| Add Customer Tag | Voegt een of meer tags toe aan de klant in Shopify. |
| Remove Customer Tag | Verwijdert een of meer tags van de klant. |
| Add Order Tag / Note | Voegt tags toe aan de bestelling en een regel aan de notitie in Shopify, zodat je medewerkers kunnen zien wat de workflow heeft gedaan wanneer ze de bestelling opzoeken. Alleen voor ordertriggers. Zie De bestelling markeren hieronder. |
| Reward Tiers | Telt de aankopen van de klant binnen een tijdvenster op en berekent de beloning van het niveau dat wordt bereikt — één tabel in plaats van één workflow per niveau. Geeft geen winkeltegoed uit. Zie Beloningen met Reward Tiers hieronder. |
| Reward Tiers Refund | Onder Refund Created: berekent wat de terugbetaling heeft gedaan met de Reward Tiers-beloning van de teruggegeven bestelling — de beloning ervoor, erna en hoeveel er is afgetrokken. Zie Terugbetalingen en Reward Tiers hieronder. |
| Update Tier | Up one tier, Set to a specific tier of Recalculate from spend. Zie Niveaus. |
| Wait / Delay | Pauzeert de workflow voor een aantal minuten, uren of dagen voordat de volgende stappen draaien. Zie Vertraagde beloningen met Wait / Delay. |
Om een geselecteerde actie door een andere te vervangen, klik je bovenaan het Config panel op Change. Net als bij triggers wist wisselen de instellingen van de stap.
Eén kanaal per actie
E-mail, SMS en een Klaviyo-event zijn elk hun eigen actie — om een klant zowel per e-mail als per SMS te bereiken, voeg je twee Send Message-acties toe. Zie Een bericht versturen voor kanalen, variabelen en testen.
Hoe Issue Credit en Issue Cashback het bedrag berekenen¶
- De basis. Issue Credit met Fixed amount betaalt dat bedrag per bestelling. Met % of order — en voor Issue Cashback — is de basis het subtotaal van de bestelling: artikelen na kortingen, vóór verzending. Issue Cashback laat je er iets aan toevoegen: klik naast "Based on" op Change en vink + shipping en/of + tax aan. Bij prijzen inclusief belasting verwijdert het uitvinken van + tax het belastingdeel uit de basis.
- De niveauboost. Met Boost by customer tier aan (de standaard) wordt het bedrag vermenigvuldigd met de niveaumultiplier van de klant. Een klant zonder niveau krijgt geen boost.
- Het maximum. Het maximale tegoed (of cashback) wordt na de boost toegepast, in beide modi — dus een 2x-niveau kan nooit meer uitbetalen dan het maximum.
- Afronding. Het resultaat wordt op centen afgerond. Een bedrag van nul geeft niets uit.
De Only for orders of at least-controle van Issue Cashback (onder More options) wordt op dezelfde basis berekend, dus verzending of belasting die je aan de basis toevoegt, telt ook mee voor het minimum.
Het niveau dat voor de boost wordt gebruikt, is het niveau van de klant vóórdat deze bestelling is meegeteld. Een bestelling die een klant naar een hoger niveau tilt, wordt beloond tegen het oude niveau; de volgende bestelling krijgt het nieuwe.
Credit expires (Issue Credit, onder More options) biedt Store default en After N days. Vandaag betekent Store default dat het tegoed niet verloopt — er is geen winkelbrede vervalinstelling. Kies After N days om het tegoed een vervaldatum te geven. Issue Cashback heeft geen vervaloptie, dus cashback verloopt niet. Zie de Geld-FAQ voor hoe vervaldatums werken.
Beloningen komen op het saldo van de klant terecht
Tegoed en cashback worden toegevoegd aan het ene beloningssaldo van de klant, dat ze besteden met hun beloningscode. Zie Hoe klanten beloningen inwisselen.
Vertraagde beloningen met Wait / Delay¶
De actie Wait / Delay houdt de stappen erna vast tot een ingestelde tijd is verstreken. Voer een getal in en kies Minutes, Hours of Days; een nieuwe stap begint op één dag.
Handig om een beloning vast te houden tot na je retourperiode. Bijvoorbeeld: Order Complete → Wait / Delay 14 days → Issue Cashback.
Wat er gebeurt wanneer de wachttijd eindigt:
- De stappen gaan verder zoals de bestelling was toen ze werd geplaatst. De beloning wordt berekend op basis van de bestelling zoals die aan het begin was — een gedeeltelijke terugbetaling tijdens de wachttijd verlaagt de beloning niet, en tegoed dat nooit is uitgegeven, kan niet worden teruggevorderd.
- Een volledige terugbetaling maakt de beloning ongeldig. Als de bestelling op dat moment volledig is terugbetaald, draaien de overige stappen niet — geen tegoed en geen bericht.
- Een verwijderde workflow, of wachtende bestellingen die je hebt geannuleerd, gaan niet verder.
- Een workflow uitzetten stopt wachtende bestellingen niet. Een gepauzeerde run wordt afgemaakt, ook als de workflow nu inactief is, tenzij je hem annuleert — zie Een workflow uitzetten met bestellingen in behandeling. Bestedingslimieten gelden nog steeds op het moment dat tegoed wordt uitgegeven.
- Als Gift Card Hero de bestelling op dat moment niet bij Shopify kan controleren, gaan de stappen toch door in plaats van een beloning te laten vallen.
Hervattingen draaien volgens een schema, dus stappen kunnen iets na het verstrijken van de tijd starten. De workflow telt als één run, hoeveel wachttijden hij ook heeft. In Test workflow wacht een Wait / Delay-stap niet echt; de test laat zien hoe lang hij zou pauzeren en gaat dan verder.
Zie de Geld-FAQ voor hoe terugbetalingen en terugvorderingen samenwerken.
De bestelling markeren met Add Order Tag / Note¶
Add Order Tag / Note schrijft op de bestelling die de workflow is begonnen, zodat wie die in Shopify opent — of opzoekt aan de kassa — ziet wat er is gebeurd. Vul een van beide of beide in:
- Tags to add — bijvoorbeeld
wine-reward-70. Tags die de bestelling al heeft, blijven behouden. Shopify staat tot 40 tekens per tag toe; een langere wordt ingekort tot 40. - Note line — bijvoorbeeld
Wine reward $70 - NOT REDEEMED ({{ order.name }}). Het wordt als nieuwe regel onder de bestaande notitie van de bestelling toegevoegd; de notitie die al op de bestelling staat, wordt nooit vervangen.
Beide velden kunnen dezelfde variabelen gebruiken als een bericht — {{ order.name }} is de gebruikelijke. Klik op Insert variable om er een aan de notitieregel toe te voegen.
Een paar dingen om te weten:
- Elke regel wordt één keer toegevoegd. Als de notitie van de bestelling die exacte regel al heeft — omdat dezelfde bestelling opnieuw is verwerkt, of een andere workflow dezelfde woorden heeft geschreven — wordt ze niet een tweede keer toegevoegd.
- Terugbetalingen markeren de oorspronkelijke bestelling. Onder Refund Created zet de stap tags en notities op de bestelling die is terugbetaald. Bijvoorbeeld: een Refund Created-workflow ingesteld op Full refund only, met een voorwaarde Order contains product voor je beloningsproduct, kan
wine-reward-voiden de regelWine reward VOID ({{ order.name }})toevoegen; een tweede ingesteld op Partial refund only kanwine-reward-checktoevoegen zodat medewerkers de beloning handmatig controleren. - Het werkt na een wachttijd en binnen takken. Een stap na Wait / Delay, of op de YES- of NO-tak van een voorwaarde, markeert nog steeds dezelfde bestelling.
- Test workflow toont de tags en de notitieregel die het zou schrijven (met
#1001als voorbeeldordernummer) zonder een bestelling aan te raken.
Beloningen met Reward Tiers¶
Reward Tiers betaalt een beloning op basis van het bedrag dat een klant uitgeeft — en telt hun aankopen binnen een tijdvenster als één, dus een aankoop van $600 splitsen in vier bestellingen van $150 levert hetzelfde op als één bestelling van $600, niet vier keer de beloning van $150.

Stel het in de stap in:
- Count — wat een bestelling toevoegt: The trigger's products (onder Product Purchase of Collection Purchase, de regels die de trigger heeft gevonden), Chosen products, Products from collections of The whole order (het subtotaal). Regelprijzen tellen na kortingen.
- Add up within — het venster, in uren (standaard 24, tot 720).
- Tiers — rijen met From en Reward: vanaf elk bedrag (inbegrepen) levert de aankoop binnen het venster die beloning op. Bijvoorbeeld: vanaf $150 → $40, vanaf $200 → $50, vanaf $300 → $65 … vanaf $1,000 → $300. Klik op Add tier voor een extra rij (tot 50). Rijen worden gesorteerd op bedrag; bedragen en beloningen moeten groter zijn dan nul, twee rijen mogen niet bij hetzelfde bedrag beginnen, en een hoger niveau mag niet minder uitbetalen dan een lager niveau.
- Add up purchases of — het klantaccount (de standaard), of het e-mailadres op de bestelling.
Hoe het venster werkt: de eerste in aanmerking komende bestelling van de klant opent het, en elke bestelling tot de lengte van het venster is verstreken, voegt zich erbij. Een bestelling na dat moment opent een nieuw venster. Elke bestelling verdient de beloning van het niveau dat het venster heeft bereikt, minus wat eerdere bestellingen van het venster al hebben gekregen:
| Bestelling | Totaal in venster | Niveaubeloning | Deze bestelling verdient |
|---|---|---|---|
| $150 | $150 | $40 | $40 |
| $150 | $300 | $65 | $25 |
| $150 | $450 | $80 | $15 |
| $150 | $600 | $125 | $45 |
$125 in totaal — hetzelfde als één bestelling van $600.
Na de stap gebruik je deze in een bericht of een bestelnotitie: {{ reward.delta }} (wat deze bestelling verdient), {{ reward.amount }} (de niveaubeloning die het venster heeft bereikt) en {{ reward.window_total }} (de aankopen in het venster). Zet het bericht en de ordermarkering op de YES-tak van een Tier Reward Earned-voorwaarde, zodat een bestelling die niets nieuws toevoegt geen e-mail verstuurt:
- Trigger: Product Purchase — Gift Card - Dollar Value
- Reward Tiers — tel de producten van de trigger, binnen 24 uur, je tabel
- Voorwaarde: Tier Reward Earned — YES: Send Message ("Your wine reward: {{ reward.delta }}") en Add Order Tag / Note (
Wine reward +{{ reward.delta }} ({{ order.name }}))
Een paar dingen om te weten:
- Er wordt geen winkeltegoed uitgegeven. De stap berekent alleen de bedragen; hoe je de beloning overhandigt, is aan de stappen erna.
- Een bestelling opnieuw verwerken verandert niets. Een opnieuw geprobeerde of dubbele gebeurtenis vindt de bestelling al meegeteld en geeft hetzelfde resultaat; niets wordt twee keer verdiend en het bericht wordt niet twee keer verstuurd.
- Terugbetalingen verlagen de beloning. Wanneer meegetelde producten worden terugbetaald, wordt het teruggestorte bedrag van het venstertotaal afgetrokken en wordt de beloning opnieuw berekend op basis van wat overblijft — zie Terugbetalingen en Reward Tiers.
- Eén Reward Tiers-stap per workflow. Die heeft een bestelling nodig, dus hij wordt niet aangeboden onder Customer Signup, Customer Birthday of Refund Created (gebruik daar Reward Tiers Refund).
- Test workflow toont wat de bestelling zou tellen, het venstertotaal, het niveau en de bijbetaling — voor een bestaande klant, inclusief hun echte bestellingen in het huidige venster — zonder iets vast te leggen.
Terugbetalingen en Reward Tiers¶
De beloning is het niveau dat de aankopen in het venster bereiken, dus een terugbetaling die de aankopen verlaagt, verlaagt ook de beloning. Dit gebeurt vanzelf bij elke terugbetaling — je hoeft niets te bouwen:
- Een gedeeltelijke terugbetaling brengt de beloning terug naar het niveau van wat er overblijft. Een bestelling van $300 leverde $65 op; betaal $150 ervan terug, en het venster bevat dan $150 — het niveau van $40 — dus wordt $25 van de beloning afgetrokken.
- Een volledige terugbetaling van de enige bestelling in het venster haalt de hele beloning weg ($65 → $0).
- Een terugbetaling van één bestelling van meerdere herberekent het hele venster: twee bestellingen van $150 leverden $40 en $25 op; betaal de tweede terug, dan is het venster weer $150 — $40 — dus wordt de $25 afgetrokken.
- De volgende bestelling in het venster telt vanaf de lagere beloning. Betaal $150 van een bestelling van $300 terug, en koop daarna binnen het venster nog $150: het venster staat weer op $300 en die bestelling levert $25 op.
- Alleen de meegetelde regels doen ertoe. Een terugbetaling van producten die de stap niet heeft geteld (de wijn, andere producten), van verzending, of van geld zonder regelartikelen verandert niets.
- Een terugbetaling wordt één keer verwerkt. Als Shopify dezelfde terugbetaling twee keer stuurt, verandert er de tweede keer niets.
- Het venster behoudt zijn begin: het terugbetalen van de eerste bestelling verschuift het venster niet.
Om de klant of je medewerkers te informeren, voeg je een Refund Created-workflow toe met een Reward Tiers Refund-stap. Die leest wat de terugbetaling heeft gedaan:
- Reward Tiers workflow — de workflow waarvan de Reward Tiers-stap de bestelling heeft geteld. Als je winkel er maar één heeft, wordt die voor je gekozen; bij meerdere kies je er één — de workflow kan niet worden geactiveerd totdat je dat doet.
- Na de stap:
{{ reward.previous_amount }}(de beloning van het venster vóór de terugbetaling),{{ reward.amount }}(erna),{{ reward.reversed }}(hoeveel er is afgetrokken) en{{ reward.window_total }}(de aankopen die in het venster overblijven), plus hun_value-versies als gewone getallen. - Zet de ordermarkering — en een bericht, als je dat wilt — op de YES-tak van Tier Reward Reduced. Een terugbetaling die het venster op hetzelfde niveau laat, haalt niets af en gaat de NO-tak op.
Bijvoorbeeld:
- Trigger: Refund Created — Any refund
- Reward Tiers Refund — Gift for Gifting
- Voorwaarde: Tier Reward Reduced — YES: Add Order Tag / Note (
wine-reward-reduced,Wine reward {{ reward.previous_amount }} → {{ reward.amount }} ({{ order.name }}))
Test workflow betaalt de voorbeeldbestelling terug alsof de Reward Tiers-workflow die op zichzelf had geteld: volledig, of de helft ervan onder Partial refund only. Voeg de producten die de Reward Tiers-stap telt, met hun prijzen, aan het voorbeeld toe.
Een beloning die al is uitgekeerd, wordt niet teruggenomen
Gift Card Hero weet niet of de beloning al is gegeven — bijvoorbeeld als de wijn al aan de kassa is opgehaald. De nieuwe beloning is wat de aankopen nu waard zijn; als de oude al is ingewisseld, beslis dan aan de kassa aan de hand van de bestelnotitie. En als de klant na zo'n terugbetaling binnen hetzelfde venster opnieuw koopt, verdient de nieuwe bestelling haar bijbetaling op basis van de lagere beloning — ze kunnen dus meer krijgen dan ze daadwerkelijk hebben opgehaald. Bij een venster van 24 uur komt dit zelden voor, maar het is goed om te weten.
Een bericht versturen¶
De actie Send Message bereikt de klant op één kanaal tegelijk: email, SMS of een Klaviyo event. Kies het kanaal, schrijf (of kies) het bericht, en de rest van de workflow loopt gewoon door, wat er ook met het bericht gebeurt — een bericht is een bijwerking, geen poort.

In-app-berichten zijn niet beschikbaar
Er is geen kanaal voor meldingen in de app. Een stap van een vroegere versie die was ingesteld op In-app notification heeft nooit iets afgeleverd; de editor toont zo'n stap als Email. Kies een kanaal om echt te versturen.
Een kanaal kiezen¶
| Kanaal | Wat het nodig heeft |
|---|---|
| Verstuurt standaard vanuit Gift Card Hero email, of vanuit je eigen mailserver zodra je die als Send from kiest — zie Aflevering hieronder. Er is niets extra nodig om Gift Card Hero-e-mail te gebruiken. | |
| SMS | Heeft een SMS-provider nodig die is verbonden onder Settings → Integrations (vandaag Onfon Media). |
| Klaviyo event | Heeft Klaviyo nodig dat is verbonden onder Settings → Integrations. Gift Card Hero verstuurt het event; een Flow die je in Klaviyo bouwt, verstuurt het eigenlijke bericht. |
Zie Integraties om een van deze te verbinden.
Een workflow kan niet worden geactiveerd met een kanaal dat niet klaar is
Activate wordt geweigerd, op de Send Message-stap zelf, wanneer die stap SMS verstuurt zonder verbonden provider, een Klaviyo-event zonder verbonden Klaviyo, of e-mail via een mailserver die niet is ingesteld. Opslaan als Draft is altijd toegestaan, zodat je eerst de rest van de workflow kunt bouwen. Kies je een kanaal dat niet is verbonden, dan toont het paneel een waarschuwing met een knop die Settings → Integrations in een nieuw tabblad opent.
Het bericht schrijven¶
- Email — begin met een sjabloon en bewerk onderwerp, bericht en knop vrijelijk. Zie E-mail: sjablonen en bewerken hieronder.
- SMS — één veld Text message, vooraf ingevuld met een korte ingebouwde tekst de eerste keer dat je naar SMS schakelt.
- Klaviyo event — een Klaviyo event name (optioneel; zie hieronder) en een alleen-lezen lijst van de eigenschappen die het event meedraagt. Er is geen berichttekst om te schrijven — je Klaviyo-Flow stelt samen wat de klant ziet.
Bij Email en SMS klik je op Insert variable om een variabele op de cursor te zetten in plaats van die over te typen. Een live Preview eronder toont het gerenderde bericht — onderwerp, tekst en knop voor e-mail, de tekst en het aantal segmenten voor SMS, de eventnaam en zijn eigenschappen voor Klaviyo — en wordt even na het stoppen met typen bijgewerkt.
E-mail: sjablonen en bewerken¶
Elk veld is van jou om te bewerken, waarmee je ook begint — er is geen alleen-lezen "ingebouwde" status zodra je iets hebt getypt.

Het veld Template toont de vier ingebouwde sjablonen — Credit earned, Tier changed, Credit expiring, Birthday reward — daarna Your templates, de sjablonen die je eerder hebt opgeslagen, en daarna Blank. Manage templates opent Loyalty-e-mails in een nieuw tabblad.
De namen van ingebouwde sjablonen zijn startteksten, geen triggers
Een workflow verstuurt de tekst van Tier changed of Credit expiring alleen wanneer je trigger en stappen dat laten gebeuren — er is geen trigger die afgaat bij een niveauwijziging of bij verlopend tegoed. Om een nieuw niveau aan te kondigen, zet je bijvoorbeeld een Send Message direct na een Update Tier-stap. Gift Card Hero stuurt ook zelf een herinnering voordat tegoed vervalt — zie de Geld-FAQ.
- Kies een sjabloon terwijl Subject en Message onaangeroerd zijn, dan vult het ze meteen in.
- Kies er een nadat je je eigen tekst hebt geschreven, dan vraagt Gift Card Hero eerst: "Replace your subject and message with the [template] template?" — Replace vult de velden in, Cancel laat je tekst staan zoals hij was.
De eerste bewerking die je maakt aan het onderwerp, bericht of de knop van een ingebouwd sjabloon, kopieert de tekst van dat sjabloon naar de stap — typen raakt het ingebouwde sjabloon zelf of enige andere stap die het gebruikt nooit aan. Vanaf dan verschijnt Started from [name] · edited onder het veld Template, en laat zien dat deze stap nu zijn eigen kopie bevat. Als hij begon vanuit een opgeslagen sjabloon dat inmiddels is verwijderd, staat er Started from a deleted template in plaats daarvan.
Klik op + Add a button om er een onder het bericht toe te voegen: een Button label (bijvoorbeeld "Shop now") en een Button link, die een volledig https://-adres moet zijn — Liquid werkt er ook, dus https://{{ shop.domain }} stuurt klanten naar je webshop. Laat het label leeg en er is geen knop. De vier ingebouwde sjablonen hebben al een knop Shop now naar je webshop.
Klik op View email om het bericht precies te zien zoals een klant het ontvangt: de naam van je winkel bovenaan, het bericht, de knop als die er is, en een voettekst met de naam en het e-mailadres van je winkel.

Save as template slaat het huidige onderwerp, bericht en de knop van de stap op (inclusief hun vertalingen) onder een naam naar keuze, zodat de volgende workflow vanuit dat sjabloon kan beginnen in plaats van op een lege pagina — beheer opgeslagen sjablonen op Loyalty-e-mails. Een stap die begint vanuit een opgeslagen sjabloon houdt zijn eigen kopie: later bewerken of verwijderen van het opgeslagen sjabloon verandert nooit een e-mail die al in een workflow staat.
Talen¶
Als je winkel meer dan één taal publiceert in Shopify, krijgt een e-mail- of SMS-stap een keuzeveld Language boven de tekst. Het eerste item is de hoofdtaal van je winkel, gemarkeerd als (default); elke andere gepubliceerde taal toont hoe ver de vertaling is — translated, incomplete of uses default.

Kies een taal om het onderwerp, bericht en de knoptekst (of de sms-tekst) te schrijven. Een leeg veld toont de standaardtekst grijs, met Falls back to English. De link van de knop is in elke taal hetzelfde.
Wanneer het bericht wordt verstuurd, gebruikt Gift Card Hero de taal van de klant zoals Shopify die kent. Het zoekt eerst naar een exacte overeenkomst (pt-BR), dan naar alleen de taal (pt), en anders verstuurt het de standaardtaal. Een e-mail wordt nooit half vertaald: een vertaling wordt alleen gebruikt als die zowel een onderwerp als een bericht heeft, anders gaat de hele e-mail in de standaardtaal uit. De editor zegt dat onder het veld. Klaviyo-events hebben geen vertalingen — je Flow regelt de taal.
Variabelen¶
| Variabele | Wat het bevat | Voorbeeld |
|---|---|---|
customer.first_name |
De voornaam van de klant | Jane |
customer.last_name |
De achternaam van de klant | Doe |
customer.name |
Een naam om mee te begroeten: de voornaam, of "there" als die onbekend is | Jane |
customer.email |
Het e-mailadres van de klant | jane.doe@example.com |
customer.phone |
Het telefoonnummer van de klant, in internationaal formaat | +254712345678 |
customer.locale |
De taal van de klant zoals Shopify die meldt; leeg als onbekend | fr |
reward.amount |
Winkeltegoed dat deze workflow eerder in deze run heeft uitgegeven, in je geldnotatie; leeg als er niets is. Na een Reward Tiers-stap: de beloning van het niveau dat de aankopen hebben bereikt. Na een Reward Tiers Refund-stap: de beloning die na de terugbetaling overblijft | $10.00 |
reward.amount_value |
Hetzelfde bedrag als gewoon getal | 10 |
reward.delta |
Reward Tiers: wat deze bestelling heeft verdiend — de niveaubeloning minus wat eerdere bestellingen in het venster hebben gekregen (alleen Reward Tiers-workflows) | $10.00 |
reward.delta_value |
Hetzelfde als gewoon getal (alleen Reward Tiers-workflows) | 10 |
reward.window_total |
Reward Tiers: wat de aankopen van de klant in het venster samen opleveren, inclusief deze bestelling; na een terugbetaling wat er overblijft (alleen Reward Tiers-workflows) | $150.00 |
reward.window_total_value |
Hetzelfde totaal als gewoon getal (alleen Reward Tiers-workflows) | 150 |
reward.previous_amount |
Reward Tiers Refund: de beloning van het venster vóór de terugbetaling (alleen refund-workflows met een Reward Tiers Refund-stap) | $25.00 |
reward.previous_amount_value |
Hetzelfde als gewoon getal (alleen Reward Tiers Refund) | 25 |
reward.reversed |
Reward Tiers Refund: hoeveel de terugbetaling van de beloning heeft afgetrokken — de beloning ervoor minus die erna (alleen Reward Tiers Refund) | $15.00 |
reward.reversed_value |
Hetzelfde als gewoon getal (alleen Reward Tiers Refund) | 15 |
wallet.balance |
Het winkeltegoedsaldo van de klant, in je geldnotatie | $25.00 |
wallet.balance_value |
Het saldo als gewoon getal | 25 |
wallet.currency |
Valuta van het saldo | USD |
tier.name |
Het loyaliteitsniveau van de klant; leeg zonder niveau | Silver |
tier.next_name |
Het volgende niveau; leeg op het hoogste niveau of zonder niveaus | Gold |
tier.spend_to_next |
Wat de klant nog moet uitgeven om het volgende niveau te bereiken, in je geldnotatie | $150.00 |
tier.spend_to_next_value |
Hetzelfde, als gewoon getal | 150 |
order.name |
Het bestelnummer (alleen ordertriggers) | #1001 |
order.total |
Het bestelbedrag, in je geldnotatie (alleen ordertriggers) | $120.00 |
order.total_value |
Het bestelbedrag als gewoon getal (alleen ordertriggers) | 120 |
trigger.matched_amount |
Wat de producten of collectie-artikelen die de trigger heeft gevonden samen opleveren, na kortingen, in je geldnotatie (alleen Product / Collection Purchase-triggers) | $100.00 |
trigger.matched_amount_value |
Hetzelfde bedrag als gewoon getal (alleen Product / Collection Purchase-triggers) | 100 |
workflow.name |
De naam van deze workflow | Your workflow |
shop.name |
De naam van je winkel | Your Store |
shop.domain |
Het domein van je webshop | your-store.com |
shop.email |
Het contact-e-mailadres van je winkel | hello@your-store.com |
Vier variabelen uit de tijd vóórdat deze berichten Liquid gebruikten, werken nog steeds in elk bericht dat je niet hebt herschreven: {{amount}}, {{balance}}, {{customer_name}} en {{store_name}} — dezelfde waarden als reward.amount, wallet.balance, customer.name en shop.name. Schrijf nieuwe berichten met de tabel hierboven.
Liquid-basics¶
Een bericht is een kleine Liquid-sjabloon. Twee dingen dekken bijna alles wat een merchant nodig heeft:
- Print een variabele met dubbele accolades:
Hi {{ customer.first_name }}, your balance is {{ wallet.balance }}. - Toon iets alleen soms met
{% if %}…{% endif %}:
{% if reward.amount_value > 0 %}You also earned a reward on this order!{% endif %}
Niets tussen de tags wordt getoond wanneer de voorwaarde onwaar is — geen lege regel, geen overgebleven leestekens.
Een bericht met een Liquid-fout kan niet worden opgeslagen: de bouwer wijst het veld aan en zegt wat er mis is.
SMS-lengte en segmenten¶
Een tekstbericht wordt gefactureerd per segment: een gewoon bericht past in één segment van 160 tekens, en daarna 153 tekens per segment. Eén teken buiten het basis-Latijnse alfabet — een emoji, een krul-aanhalingsteken, veel geaccentueerde letters — zet het hele bericht om naar een modus die maar 70 tekens per segment past (67 na het eerste), dus een enkel los teken kan de kosten van een bericht verdubbelen. De telling onder het veld Text message is de lengte van wat je typte, tegen de limiet van 1.000 tekens. Hoeveel segmenten het bericht beslaat, staat in het voorbeeld: het telt de gerenderde tekst — nadat variabelen met voorbeeldwaarden zijn ingevuld, niet de {{ }}-tags zelf — dus een lange naam van een klant of een bedrag kan nog steeds een segment toevoegen.
Aflevering¶
Elk kanaal eindigt met een groep Delivery onderaan het paneel — hoe het bericht vertrekt, en wie het mag ontvangen.

Send from (alleen e-mail) is de leiding waarlangs de e-mail vertrekt:
| Optie | Verstuurt als |
|---|---|
| Gift Card Hero email | <Your store name> <giftcardhero@syncube.email>, met antwoorden die naar het e-mailadres van je winkel gaan. Altijd beschikbaar. |
| Your mail server (SMTP) | Het adres dat ervoor is ingesteld onder Settings → Integrations. Wordt getoond als "— not set up" en is uitgeschakeld totdat hier een mailserver is verbonden. |
Manage senders opent Settings → Integrations in een nieuw tabblad. Een stap die is opgeslagen vóór deze keuze bestond, volgt je winkelbrede e-mailinstelling — zie Integraties — totdat je hier een afzender voor kiest.
Als de mailserver die een stap gebruikt, stopt met werken, gaat de e-mail nog steeds uit — vanuit Gift Card Hero email in plaats daarvan — en het resultaat van de stap vermeldt dat. Een Send test via een kapotte mailserver faalt meteen in plaats van terug te vallen, met "Your mail server isn't set up", zodat je het weet voordat een klant dat ontdekt. Een workflow kan niet worden geactiveerd zolang de gekozen mailserver van een e-mailstap niet is ingesteld — zie de waarschuwing hierboven.
Voor SMS en Klaviyo toont deze groep de verbindingsstatus in plaats van Send from — of een gateway of Klaviyo is verbonden.
Elk kanaal heeft ook zijn eigen toestemmingsvakje hier: "Only send to customers subscribed to SMS marketing" voor SMS, of "Only send to customers subscribed to email marketing" voor e-mail en Klaviyo. Het leest de marketingtoestemming van de klant precies zoals Shopify die voor dat kanaal vastlegt.
Het staat standaard aan voor SMS en uit voor e-mail en Klaviyo — en wisselen van kanaal zet het terug naar die standaard, zelfs als je het eerder had gewijzigd. Zet het alleen uit voor SMS als je zeker weet dat elke ontvanger heeft ingestemd met sms'jes; transactionele beloningsberichten kosten in beide gevallen een segment.
Het Klaviyo-event en het bouwen van de Flow¶
Een Klaviyo-stap verstuurt een event (metric), geen bericht — jouw Klaviyo-account zet dat event om in wat je Flow verstuurt. De eventnaam staat standaard op Loyalty: <workflow name>; typ je eigen naam (tot 128 tekens) om een specifieke Flow te bereiken, handig wanneer meer dan één Send Message-stap in je account naar Klaviyo voedt.
Het event draagt elke variabele uit de tabel hierboven (niet de vier verouderde) als eigenschap, plus workflow_id, step_id en is_test. Het wordt gekoppeld aan het profiel van de klant via e-mail — een klant zonder e-mailadres in het systeem kan geen Klaviyo-event ontvangen.
Bouw een Flow in Klaviyo die door deze metric wordt getriggerd, op dezelfde manier als voor herinneringen of inwisselmeldingen — een event zonder Flow erachter bereikt Klaviyo en doet dan niets.
Een test versturen¶
Twee verschillende dingen versturen een test, voor verschillende doelen:
- Test workflow, in de toolbar, draait de hele workflow als proefrun. Voor een Send Message-stap toont het het gerenderde onderwerp en de tekst (of het Klaviyo-event en zijn eigenschappen) en de gemaskeerde ontvanger — en het neemt geen contact op met een e-mail-, sms- of Klaviyo-provider.
- Send test, binnen de eigen editor van de actie Send Message, verstuurt een echt bericht — met voorbeeldwaarden voor klant, beloning en saldo — naar een e-mailadres of telefoonnummer dat je intypt; voor e-mail staat het vooraf ingevuld met het eigen adres van je winkel. Een sms-test is een echt, gefactureerd bericht. Een e-mailtest gaat altijd via de eigen afzender van de stap en valt nooit terug op een andere; als die afzender niet is ingesteld, faalt de test meteen, met "Your mail server isn't set up", en een geslaagde bevestigt zowel het adres als de afzender die is gebruikt. Een Klaviyo-test verstuurt een echt event, met
is_test: true, naar het e-mailadres dat je intypt, zodat je je Flow ertegen kunt afmaken. Send test is uitgeschakeld totdat het kanaal dat wordt getest is verbonden. Als de stap vertalingen heeft, gaat de test uit in de taal die nu is geselecteerd.
Wanneer een bericht niet wordt verstuurd¶
Een Send Message-stap stopt nooit de rest van de workflow — wat er ook met het bericht gebeurt, de stappen erna draaien gewoon door. Het wordt ook hooguit één keer per stap per bestelling of event verstuurd: een opnieuw geprobeerde job of een herhaalde webhook van Shopify verstuurt nooit hetzelfde bericht twee keer.
Wanneer een bericht niet zou worden verstuurd, vertelt Test workflow dat direct bij die stap. Voor live runs wordt dezelfde reden voor de stap vastgelegd, maar de admin toont geen afzonderlijke live runs — gebruik Test workflow met dezelfde klant om het na te bootsen.
| Wat er staat | Wat er gebeurde |
|---|---|
| no email address is known for this customer | Het kanaal is e-mail of Klaviyo, en de klant heeft geen e-mailadres in het systeem. |
| no usable phone number is known for this customer | Het kanaal is SMS, en er kon geen bruikbaar telefoonnummer voor de klant worden gevonden. |
| the customer is not subscribed to SMS marketing / email marketing | Het toestemmingsvakje in Delivery staat aan bij deze stap, en Shopify heeft de klant niet gemarkeerd als geabonneerd op dat kanaal. |
| no SMS gateway is connected (Settings → Integrations) | De SMS-provider is niet verbonden — of is losgekoppeld nadat deze stap aanstond. |
| Klaviyo is not connected (Settings → Integrations) | Hetzelfde, voor een Klaviyo-stap. |
| the message shows the reward amount, but this run issued no store credit | Het bericht toont {{ reward.amount }} (of de verouderde {{amount}}, of reward.delta / reward.window_total / reward.previous_amount / reward.reversed) ergens, en deze specifieke run gaf geen winkeltegoed uit — zodat een klant nooit wordt verteld dat hij "$0.00" heeft verdiend. Het testen van reward.amount_value in een {% if %} zonder het bedrag af te drukken (zoals in het Liquid-basics-voorbeeld) voorkomt dit. Na een Reward Tiers-stap geldt dit nooit — vertak op Tier Reward Earned in plaats daarvan; na een Reward Tiers Refund-stap op Tier Reward Reduced. |
| already sent for this event by an earlier attempt | Een nieuwe poging of een dubbele webhook probeerde het bericht van dezelfde stap opnieuw te versturen. |
Een bericht kan ook mislukken — de provider heeft het geweigerd, of de sjabloon kon niet worden gerenderd — en het resultaat van de stap toont de fout die Gift Card Hero terugkreeg.
Vertakkingsvoorbeeld¶
Een veelvoorkomend patroon beloont grote bestellingen royaler:
- Trigger: Order Complete
- Voeg een voorwaarde toe: Order Amount is more than
100 - Voeg op de YES-tak Issue Cashback toe op
10% - Voeg op de NO-tak Issue Cashback toe op
5%
Wanneer je een voorwaarde midden in een bestaande keten zet, verhuizen de stappen die erna kwamen automatisch naar de YES-tak.
Valideren en opslaan¶
De knop Save blijft uitgeschakeld totdat de workflow geldig is — hij heeft een naam, een trigger en minstens één stap nodig.
Wanneer je opslaat, controleert Gift Card Hero ook de instellingen van elke stap. Als een verplicht veld ontbreekt of een getal buiten het bereik valt (een percentage moet bijvoorbeeld tussen 0.1 en 100 liggen), toont de bouwer een foutbanner en markeert het specifieke veld dat je moet corrigeren. Pas het aan en sla opnieuw op. Hetzelfde geldt voor een trigger-bedragbereik waarvan de bovengrens niet hoger is dan de ondergrens — geen enkele bestelling zou er ooit in passen — voor een Reward Tiers-tabel met een lege, nul-, herhaalde of dalende rij, en voor een planning die eindigt voordat hij begint.
De eerste keer dat je een nieuwe workflow opslaat, is het een Draft. Wijzigingen aan een workflow die al Active is, gaan in zodra je opslaat.
De toolbar¶

Links: de naam van de workflow, dan Schedule, Budget, Advertise en het statusbadge (plus Unsaved wanneer je wijzigingen hebt die niet zijn opgeslagen).
- Schedule: Always on — beperk de workflow optioneel tot een venster. Kies een begin- en einddatum en -tijd (of een voorinstelling zoals Next 30 days); laat het einde leeg voor geen einde; klik op Always on om het te wissen. De workflow beloont een gebeurtenis alleen als die binnen het venster heeft plaatsgevonden — dus een bestelling die vóór de einddatum is geplaatst, levert nog steeds op, ook als hij iets later wordt verwerkt. Het einde moet na het begin liggen. Buiten het venster staat het badge op Scheduled (nog niet gestart) of Ended.
- Budget: No cap — een Monthly budget cap voor deze workflow. Zodra het tegoed dat hij in de kalendermaand (UTC) heeft uitgegeven de limiet zou overschrijden, stopt de workflow met het uitgeven van tegoed en wordt hij gepauzeerd. Leeg betekent geen limiet. Een winkelbrede limiet en een limiet per klant worden ingesteld op de pagina Settings van Loyalty — zie de Geld-FAQ.
- Advertise — maak of koppel een winkelpromotie; zie Adverteren met de beloning van een workflow. Het is uitgeschakeld totdat de workflow is opgeslagen.
Rechts, zodra de workflow één keer is opgeslagen:
- Results on canvas — toont het aantal runs op elke stap van het canvas.
- Test workflow — zie Test workflow (proefrun).
- Performance — zie Performance.
- Delete (het prullenbakpictogram) — zie Verwijderen.
- Activate / Deactivate — zie Activeren, deactiveren en status.
- Save — wordt altijd getoond.
Test workflow (proefrun)¶
Simuleer de workflow voordat je hem activeert — of telkens als je een live workflow wijzigt. Er wordt niets uitgegeven en er wordt geen bericht verstuurd — per e-mail, sms of Klaviyo. De test draait het canvas precies zoals het nu staat, inclusief wijzigingen die je nog niet hebt opgeslagen. Test workflow verschijnt zodra de workflow voor het eerst is opgeslagen.
- Klik op Test workflow in de toolbar.
- Kies als wie je test. New customer is de standaard: een eerste-keer-koper zonder tags, zonder niveau en zonder uitgaven. Kies Existing customer om een Email in te typen; Gift Card Hero zoekt de klant op, toont een groen badge met hun naam, niveau en aantal bestellingen, en vult hun echte tags, niveau en uitgaven in.
- Vul de bestelling in. Het dialoogvenster toont alleen de velden die je workflow echt leest — een regel bovenaan, "This workflow checks…", somt ze op. Subtotal staat er altijd bij ordertriggers; andere (Customer tags, Tier, Lifetime spent, Treat as this customer's first order, Order total, Discount, Products) verschijnen wanneer een voorwaarde ze nodig heeft. Al het andere staat onder More options. Wanneer een trigger of Reward Tiers-stap met productbedragen werkt, geef je elk voorbeeldproduct ook een Price.
- Klik op Run test in de titelbalk van het dialoogvenster.

Het resultaat somt de controles op die de workflow heeft gedaan (en of elk de YES- of NO-tak nam), en daarna wat elke actie zou doen. Een Send Message-stap toont wat hij zou versturen, en naar wie (gemaskeerd) — zie Wanneer een bericht niet wordt verstuurd voor de formulering wanneer het niet zou worden verstuurd. Een groen vak onderaan toont het tegoed dat de klant zou hebben ontvangen; als er geen is, staat er No credit would be issued en waarom. Als het eigen filter van de trigger niet zou passen (bijvoorbeeld de bestelling ligt onder je minimumbedrag), zegt de test Workflow would not run en waarom.
Simuleer 'alsof'-klanten
Wijzig de velden Tier, Treat as this customer's first order of Lifetime spent om te testen alsof een klant in een bepaald niveau zit, bij zijn eerste bestelling, of bij een bepaalde uitgave — zonder een echte klant nodig te hebben die al aan de voorwaarde voldoet.
Een test houdt ook rekening met je bestedingslimieten: als een limiet de beloning zou blokkeren, toont de test dat het geblokkeerd werd.
Activeren, deactiveren en status¶
Een workflow heeft een van drie statussen die jij kiest, getoond als badge:
- Draft — nieuw en nog niet actief.
- Active — live en draaiend op echte gebeurtenissen.
- Inactive — opgeslagen maar gepauzeerd.
Twee andere labels worden afgeleid uit de planning en de limieten: Scheduled en Ended (zie De toolbar), en Paused by guardrail in de workflowlijst wanneer een budgetlimiet de workflow heeft gestopt. Een guardrail-pauze wordt in de bouwer als Inactive getoond, met een banner Paused by guardrail die uitlegt welke limiet is bereikt en een knop Reactivate heeft; opnieuw activeren verhoogt de limiet niet, dus de workflow kan opnieuw pauzeren.
Klik op Activate om een workflow aan te zetten, of op Deactivate om hem te pauzeren. Sla je wijzigingen eerst op — Activate werkt op de opgeslagen workflow. Activeren en deactiveren kan even duren, omdat Gift Card Hero achter de schermen de onderliggende Shopify-gebeurtenis verbindt (of loskoppelt).
Activate wordt geweigerd, met het probleem getoond op de stap, wanneer:
- een stap gegevens nodig heeft die de trigger niet heeft (bijvoorbeeld Add Order Tag / Note onder Customer Signup);
- een Reward Tiers Refund-stap geen Reward Tiers-workflow heeft om uit te lezen, of meerdere en er geen is gekozen;
- een Send Message-stap een kanaal of afzender gebruikt die niet is verbonden (zie Een bericht versturen).
Een workflow uitzetten met bestellingen in behandeling¶
Een bestelling kan nog onderweg zijn door een workflow — in de wachtrij voor verwerking, of wachtend bij een Wait / Delay-stap. Wanneer je op Deactivate klikt en er nog een paar in behandeling zijn, toont Gift Card Hero ze (bestelling, klant en "waiting N min" of "continues in 3 days") en vraagt:
- Turn off, finish these — de standaard. De vermelde bestellingen krijgen nog steeds de beloningen van deze workflow.
- Turn off and cancel these — die bestellingen krijgen nooit de beloningen van deze workflow. Dit kan niet ongedaan worden gemaakt.

Als je hebt gekozen ze af te maken, toont een Inactive-workflow zolang er nog een paar zijn een banner, met Cancel them (na bevestiging) en Refresh. Al verwerkte bestellingen worden in beide gevallen niet beïnvloed.
Performance¶
Performance wisselt het Config panel voor een samenvatting van hoe de workflow heeft gedraaid. Schakel tussen 7d, 30d, 90d en All. Het toont Runs (en hoeveel er een actie hebben uitgevoerd), Customers rewarded, Net credit (uitgegeven, minus tegoed dat door terugbetalingen is teruggenomen, minus verlopen tegoed), Orders rewarded en twee schattingen — Credit spent (het aandeel uitgegeven tegoed dat klanten hebben gebruikt) en Revenue uit bestellingen die het hebben gebruikt — plus een grafiek van runs per dag. Als een bestedingslimiet beloningen heeft geblokkeerd, meldt een banner dat, met details en links naar de bestellingen.

Results on canvas voegt de aantallen toe aan de stappen zelf. Voor de cijfers over alle workflows, zie Loyalty-analyses.
Verwijderen¶
Het prullenbakpictogram verwijdert de workflow permanent nadat je hebt bevestigd. Als hij actief is, worden eerst de onderliggende Shopify-gebeurtenissen losgekoppeld. Bestellingen die nog in behandeling zijn, worden geannuleerd — de bevestiging vertelt je hoeveel. Een promotie die aan de workflow is gekoppeld, wordt een concept en verdwijnt uit beeld, maar blijft in je promotielijst staan. Dit kan niet ongedaan worden gemaakt. Je kunt ook meerdere workflows selecteren in de lijst Loyalty Workflows en Delete workflows gebruiken.
Adverteren met de beloning van een workflow¶
Een workflow bouwen vertelt niemand er automatisch over. Klik op Advertise in de toolbar (zodra de workflow is opgeslagen en geen niet-opgeslagen wijzigingen heeft) om een promotie te maken of te koppelen — een pop-up-kaartje en/of een banner op je webshop, met beloningscijfers die live uit de workflow komen. Alleen workflows die tegoed of cashback uitgeven, kunnen worden geadverteerd. Zie Het Promotions-widget.