Skip to content
Event storming templates

Event Storm — Agentic Ticket Refunds

Support desk, an LLM refund assistant and finance approval, with the assistant's escalation event left uncommanded and a policy-retrieval hotspot on stale guidance.

Template previewEvent storming
Ticket refunds — agentic support deskBounded contexts3Domain events6Event coverage83.3%Hotspots3Model smells1Domain eventCommandActorAggregatePolicyRead modelExternal systemHotspotSupport desk1 event · 1 command · 1 policy · 1 hotspotSupport caseAssistant3 events · 2 commands · 2 policies · 1 hotspotRefund assessmentRefund assessmentFinance2 events · 2 commands · 0 policies · 1 hotspotRefundTicket holderRaise refund requestRefund requestedCase timelineEmail and chatgatewayRequests arrive infive channels andthree languagesWhen refundrequested, classifyrequestRefund agentClassify requestRequest classifiedWhen requestclassified, draftresolutionRefund agentDraft resolutionResolution draftedAssistant escalatedto a humanPolicy retrievalindexThe agent quotes arefund policy thatchanged last weekWhen resolutiondrafted, approverefundRefund approverApprove refundRefund approvedPayments servicePay refundRefund paidRefund ageing reportA chargeback arrivesafter we have alreadyrefundedWorkshop checksEvents with no producing command1Assistant escalated to a humanCommands with no resulting event0noneCommands with no aggregate0noneAggregates with no events0nonePolicies with a missing trigger event0nonePolicies with a missing command0noneHotspots per context3Support desk 1 · Assistant 1 · Finance 1Cross-context flows2Support desk → Assistant · Assistant → Finance

Make it your own.

title "Ticket refunds — agentic support desk"

context "Support desk"
  actor "Ticket holder"
  aggregate "Support case"
  command "Raise refund request" by "Ticket holder" on "Support case"
  event "Refund requested" from "Raise refund request"
  readmodel "Case timeline"
  external "Email and chat gateway"
  hotspot "Requests arrive in five channels and three languages"
  policy "When refund requested, classify request" then "Classify request"

context "Assistant"
  aggregate "Refund assessment"
  command "Classify request" by "Refund agent" on "Refund assessment"
  event "Request classified" from "Classify request"
  policy "When request classified, draft resolution" then "Draft resolution"
  command "Draft resolution" by "Refund agent" on "Refund assessment"
  event "Resolution drafted" from "Draft resolution"
  event "Assistant escalated to a human"
  external "Policy retrieval index"
  hotspot "The agent quotes a refund policy that changed last week"
  policy "When resolution drafted, approve refund" then "Approve refund"

context "Finance"
  aggregate Refund
  command "Approve refund" by "Refund approver" on Refund
  event "Refund approved" from "Approve refund"
  command "Pay refund" by "Payments service" on Refund
  event "Refund paid" from "Pay refund"
  readmodel "Refund ageing report"
  hotspot "A chargeback arrives after we have already refunded"