Blog en gidsen

Een marketingautomatisering opnieuw uitvoeren zonder dubbele acties

Na een timeout kan de CRM-taak al bestaan. Leg vast welk bewijs nodig is voordat een workflow opnieuw probeert.

De kern

Aantoonbaar vóór de actie mislukt: opnieuw proberen volgens afspraak. Bevestigd voltooid: resultaat hergebruiken. Onzeker: bewijs uit het doelsysteem of gedocumenteerd idempotent herhalen; anders vasthouden voor beoordeling.

Een hand legt een dubbele taakkaart apart naast één kaart in een donkerblauw bakje en een laptop.

Opnieuw starten zonder dubbele CRM-taak, kortingscode of bericht vraagt duidelijke voorwaarden. Een nieuwe technische poging kan bij dezelfde zakelijke handeling horen.

Bij een timeout stopt de aanroepende dienst met wachten; de opdracht kan ondertussen zijn uitgevoerd. Spreek vóór automatisch herstel af hoe de identiteit, voortgang en het bewijs uit het doelsysteem worden bewaard.

Geef elke uitkomst een eigen vervolgstap

Onderscheid drie situaties. Aantoonbaar vóór de actie mislukt: opnieuw proberen volgens de regels. Bevestigd voltooid: het opgeslagen resultaat hergebruiken. Onzekere uitkomst: eerst controleren bij het doelsysteem. Een ontbrekend antwoord bewijst niet dat de opdracht is blijven liggen.

Leg ook vast wie een onzekere uitkomst beoordeelt. Als het doelsysteem geen uitsluitsel kan geven en dubbele verwerking niet kan tegenhouden, moet de workflow stoppen en de zaak aan die persoon voorleggen. Een AI-model kan een fout indelen of een concept voorbereiden. Voor acties met gevolgen gelden vaste beslisregels en blijft een mens verantwoordelijk. Een betere prompt alleen voorkomt geen dubbele externe actie.

Wat er misgaat als alleen het antwoord verdwijnt

Neem een uitdrukkelijk fictief voorbeeld dat niet is uitgevoerd. Een campagneaanvraag moet één CRM-taak voor opvolging aanmaken. Het CRM bewaart de taak, maar het antwoord komt niet terug. De hele workflow opnieuw starten kan dan een tweede taak opleveren. Zoek de bestaande taak via een unieke referentie op, bewaar het CRM-identificatienummer en ga verder bij de openstaande stap. Blijft onduidelijk of de taak bestaat, dan blijft de handeling geblokkeerd.

Bij eindpunten voor aangepaste acties wacht Shopify Flow maximaal tien seconden op antwoord, sluit vervolgens de verbinding en verstuurt later opnieuw. De meegestuurde action_run_id kan de ontvanger helpen herhalingen te herkennen; hij voorkomt daar niet vanzelf dubbele verwerking. De tiensecondenregel geldt voor deze eindpunten, niet voor alle webhooks, CRM-systemen of AI-diensten.

Bewaar de handeling afzonderlijk van de pogingen

Een webhook is een automatische melding van een gebeurtenis. Dezelfde melding kan vaker worden afgeleverd. Shopify adviseert daarom idempotente verwerking of het bijhouden van de webhook-ID. Verschillende abonnementen kunnen voor dezelfde winkelactie verschillende afleverings-ID's hebben, terwijl hun gebeurtenis-ID gelijk is. De identiteit van een aflevering is dus niet altijd de identiteit van de zakelijke handeling. Werkelijk afzonderlijke, bedoelde acties moeten bovendien afzonderlijk blijven.

Geef iedere handeling een vaste code waaruit geen klant- of zaakgegevens zijn af te leiden. Iedere poging krijgt daarnaast een eigen code. Bij opnieuw proberen blijft de code van de handeling gelijk; een bewust nieuwe actie vraagt een nieuwe code en goedkeuring, nadat een eerdere onzekere handeling is opgehelderd.

Het blijvende dossier bevat die code, gebeurtenis en bron, bedoelde actie, goedgekeurde gegevens met versienummer, status, aantal pogingen, referentie in het doelsysteem en tijdstippen. Noteer ook de verantwoordelijke en de volgende beslissing. De voorbeeldregistratie heeft geen gevoelige klantgegevens nodig. Alleen een code opschrijven of achteraf succes vastleggen levert nog geen garantie op.

Controleer de bescherming aan beide kanten

Idempotentie betekent dat herhalen van dezelfde bedoelde handeling geen extra effect veroorzaakt, binnen de gedocumenteerde voorwaarden van het systeem. Controleer toepassingsgebied, bewaartermijn, fouten en gewijzigde gegevens. Een onzekere uitkomst kan ook via een gedocumenteerd beschermde herhaling worden vastgesteld: dezelfde sleutel en parameters, binnen de geldige termijn.

Stripe illustreert die voorwaarden; het gaat hier niet om het bouwen van betaalautomatisering. Bij ondersteunde POST-aanvragen geeft dezelfde idempotentiesleutel de eerst opgeslagen status en antwoordinhoud terug, ook bij fouten. Andere parameters met dezelfde sleutel veroorzaken een fout. Sleutels mogen na minimaal 24 uur worden verwijderd; hergebruik na verwijdering geldt als een nieuwe aanvraag. Resultaten worden pas opgeslagen wanneer de uitvoering van het eindpunt begint. Voor validatiefouten en conflicten tussen gelijktijdige aanvragen gelden andere regels. Die bewaartermijn is geen algemene norm.

Een lokale controle op ‘al gedaan’ is onvoldoende. Twee gelijktijdige processen kunnen beide door de controle komen. Ook kan de externe actie slagen voordat de lokale succesmelding is opgeslagen. Vraag daarom om een atomaire reservering: één ondeelbare toewijzing van de handeling, bijvoorbeeld afgedwongen met een uniciteitsregel in de database. Combineer dat met bescherming door het doelsysteem of betrouwbare controle van het resultaat daar. Leg vast hoe beide beschermingsmaatregelen samenwerken.

Hervatten vraagt om behoud van goedgekeurd werk

Bevestig het aanmaken van een CRM-item en het verzenden van een e-mail afzonderlijk. Aanvaarding door de verzenddienst bewijst geen bezorging. Herhaal alleen de onopgeloste stap wanneer dat verantwoord is. Bewaar goedgekeurde inhoud: een model kan bij opnieuw genereren anders schrijven. Gewijzigde inhoud vraagt opnieuw beoordeling.

Een menselijke goedkeuring voorkomt op zichzelf evenmin herhaling. Bij hervatting na een pauze met interrupt() voert LangGraph de betreffende node, een uitvoeringsonderdeel, opnieuw vanaf het begin uit. Externe wijzigingen vóór de onderbreking kunnen daardoor terugkomen. De documentatie adviseert idempotente bewerkingen of het scheiden dan wel verplaatsen van die wijzigingen. Afzonderlijke stappen helpen, maar beschermen niet tegen elke latere fout.

Maak de acceptatie concreet

Gebruik onderstaande voorgestelde acceptatiecriteria als bespreekbare testgevallen. Het zijn geen uitgevoerde tests of gecertificeerde garanties:

  1. Gewone geslaagde uitvoering: de bedoelde actie is bevestigd en de externe referentie is bewaard.
  2. Dezelfde gebeurtenis tweemaal: in beschermde gevallen één bedoelde externe actie, met hergebruik van bestaand bewijs.
  3. Timeout na succes in het doelsysteem: het resultaat controleren en overnemen; een onopgehelderde uitkomst voor beoordeling vasthouden.
  4. Twee gelijktijdige pogingen: reservering en bescherming bij de bestemming voorkomen een tweede actie binnen het afgesproken bereik.
  5. Hervatten na goedkeuring: goedgekeurde gegevens en bevestigde stappen blijven behouden.
  6. Late herhaling buiten de bewaartermijn: eerder bewijs controleren en bij onzekerheid geen automatische nieuwe actie starten.

Meet gebeurtenissen, pogingen, bevestigde externe effecten, onopgeloste zaken en de tijd die medewerkers aan herstel besteden afzonderlijk. Begrens pogingen en wachttijden volgens het gedocumenteerde beleid van elke bestemming. Er bestaat geen universeel juist aantal herhalingen.

MindVerve brengt voor automatisering startgebeurtenissen, invoer, uitvoer, verantwoordelijken, regels voor ontbrekende gegevens en fouten, testgevallen en werkinstructies in kaart. AI Workflow Launch richt één afgesproken workflow in, met softwarekeuze, tests van normale situaties en fouten, herbruikbare briefings en prompts, documentatie, training en overdracht. Licenties, API-gebruik en extra integraties vallen erbuiten; doorlopend onderhoud wordt apart afgesproken.

Beslisblad voor een nieuwe poging

Leg één beoogde bedrijfshandeling en het beschikbare bewijs vast voordat u kiest voor een nieuwe poging, hergebruik van een bevestigd resultaat of beoordeling door de verantwoordelijke.

Beslisblad voor een nieuwe poging

Identificatie van de handeling:
Brongebeurtenis of trigger:
Beoogde handeling:
Goedgekeurde inhoud of parameters:
Goedgekeurde versie:
Vastgestelde status:
Aantal pogingen:
Referentie in het doelsysteem:
Relevante tijdstippen:
Verantwoordelijke:
Volgende beslissing:

Te controleren acceptatiegevallen
1. Gewone geslaagde uitvoering: de bedoelde actie is bevestigd en de externe referentie is bewaard.
2. Dezelfde gebeurtenis tweemaal: in beschermde gevallen één bedoelde externe actie, met hergebruik van bestaand bewijs.
3. Timeout na succes in het doelsysteem: het resultaat controleren en overnemen; een onopgehelderde uitkomst voor beoordeling vasthouden.
4. Twee gelijktijdige pogingen: reservering en bescherming bij de bestemming voorkomen een tweede actie binnen het afgesproken bereik.
5. Hervatten na goedkeuring: goedgekeurde gegevens en bevestigde stappen blijven behouden.
6. Late herhaling buiten de bewaartermijn: eerder bewijs controleren en bij onzekerheid geen automatische nieuwe actie starten.
Blad downloaden

Neem geen persoonsgegevens van klanten op. Dit blad legt een beslissing vast; het bewijst niet dat een nieuwe poging veilig is en garandeert niet dat dubbele acties uitblijven.

Officiële bronnen

Shopify · Flow action endpointsShopify · Verify webhook deliveriesStripe · Idempotent requestsLangGraph · Interrupts

MindVerve

Marketingautomatisering

Neem de startgebeurtenis, een voorbeeld van de gewenste uitvoer en een fout met onzekere uitkomst mee. Samen bakenen we een toetsbare proef af.

Bespreek uw proef met MindVerveLees de gids · AI Workflow Launch

Verder lezen

AI-automatisering met n8nWorkflows met taalmodellen beoordelenMarketingautomatisering met MindVerveEen afgebakende proef bespreken