Playbooks built by the world’s best operations teams
Playbooks built by the world’s best operations teams
Playbooks built by the world’s best operations teams
Write the logic once in natural language. Feather executes it across identity, access, devices, and more.
Write the logic once in natural language. Feather executes it across identity, access, devices, and more.

Symptom Triage / Nurse Line Routing
Identity Verification
EHR.LookupPatient by patient.fullName and patient.dateOfBirth
- Identity confirmed, record found CRM.OpenRecord →symptom-intake
- Identity confirmed but DOB mismatch — ask for patient.memberId EHR.LookupPatientById →symptom-intake
- Caller is a caregiver, not the patient — collect patient.caregiverName and relationship, then verify patient identity →symptom-intake
- Identity cannot be verified after two attempts CRM.FlagUnverified →unverified-caller-triage
Symptom Intake
Collect patient.primarySymptom, patient.symptomDuration, and patient.symptomTrend.
Collect patient.currentMedications and patient.knownConditions.
- Caller mentions chest pain, pressure, or tightness →emergency-redirect
- Caller mentions difficulty breathing or shortness of breath at rest →emergency-redirect
- Caller mentions sudden face drooping, arm weakness, or speech difficulty →emergency-redirect
- Caller mentions severe bleeding that won't stop or loss of consciousness →emergency-redirect
- Caller explicitly requests to speak with a nurse →escalation-nurse-callback
- Symptoms collected, no red-flag keywords detected →triage-assessment
Emergency Redirect
CRM.CreateCase priority: critical, tagged emergency-redirect, linked to patient.memberId
NurseQueue.AlertOnCall with patient.primarySymptom and case.id
EHR.AddEncounterNote "Emergency redirect issued. Patient advised to call 911. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
- Caller confirms they are calling 911 or help is on the way →emergency-documentation
- Caller refuses to call 911 — document refusal, stay on the line, re-advise →care-refusal
- No response or line goes silent NurseQueue.AlertOnCall escalate immediately →escalation-nurse-callback
Emergency Documentation
EHR.AddEncounterNote "Patient acknowledged emergency redirect. 911 advised. Case case.id created."
CRM.UpdateCase case.id status: emergency-dispatched
Triage Assessment
- Triage engine returns tier: self-care tier_selfcare →self-care-guidance
- Triage engine returns tier: nurse callback tier_nurse →escalation-nurse-callback
- Triage engine returns tier: urgent care tier_urgent →urgent-care-routing
- Triage engine returns tier: emergency tier_emergency →emergency-redirect
- Triage engine lookup fails or confidence below threshold needs_review →escalation-nurse-callback
Self-Care Guidance
kb.schmitt-thompson-protocols — retrieve home-care instructions matching triage.protocol
EHR.AddEncounterNote "Triage complete. Tier: self-care. Protocol: triage.protocol. Guidance delivered. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
CRM.UpdateCase case.id status: self-care-guidance-provided
- Patient accepts guidance and has no further questions →resolution
- Patient is uncertain or wants a nurse to confirm →escalation-nurse-callback
- Patient refuses self-care recommendation →care-refusal
Urgent Care Routing
Scheduling.FindNearestUrgentCare by patient.zip -> facility.nearest
EHR.AddEncounterNote "Triage complete. Tier: urgent care within 4 hours. Facility: facility.nearest. Symptoms: patient.primarySymptom. Protocol: triage.protocol."
CRM.UpdateCase case.id status: urgent-care-routed
SecureMessaging.SendSummary to patient.phone with facility address and care instructions
- Patient confirms they will go →resolution
- Patient requests a different facility Scheduling.FindNearestUrgentCare alternate →urgent-care-routing
- Patient refuses urgent care recommendation →care-refusal
- Patient requests nurse confirmation before going →escalation-nurse-callback
Escalation to Nurse Callback
NurseQueue.AddToCallbackQueue patient.memberId, patient.primarySymptom, patient.symptomDuration, patient.symptomTrend, patient.knownConditions, patient.currentMedications, triage.riskScore
NurseQueue.GetEta -> nurse.callbackEta
CRM.CreateCase priority: high, tagged nurse-callback, linked to patient.memberId
EHR.AddEncounterNote "Escalated to nurse callback queue. ETA: nurse.callbackEta. Symptoms: patient.primarySymptom. Risk score: triage.riskScore. Case: case.id."
SecureMessaging.SendSummary to patient.phone confirming callback and safety instructions
- Nurse callback queued and patient is stable →resolution
- Patient's condition appears to be worsening during call →emergency-redirect
Unverified Caller Triage
Collect patient.primarySymptom, patient.symptomDuration, patient.symptomTrend.
CRM.CreateCase priority: high, tagged unverified-caller, flagged for nurse review
NurseQueue.AddToCallbackQueue unverified, patient.primarySymptom, patient.symptomDuration, patient.phone
EHR.AddEncounterNote "Unverified caller. Symptoms collected for nurse review. Callback number: patient.phone."
- Caller mentions any emergency symptom →emergency-redirect
- Case queued successfully →resolution
- Caller explicitly requests nurse immediately →escalation-nurse-callback
Care Refusal
EHR.AddEncounterNote "Patient declined recommended care tier: triage.tier. Symptoms: patient.primarySymptom. Refusal documented per protocol. Case: case.id."
CRM.UpdateCase case.id status: care-refusal-documented
NurseQueue.AlertOnCall with refusal note and patient.memberId for awareness
- Patient reconsiders and agrees to recommended care tier →triage-assessment
- Patient maintains refusal but accepts lower-acuity guidance →self-care-guidance
- Patient ends call →resolution
Resolution
EHR.AddEncounterNote "Encounter complete. Final routing: triage.tier. Case: case.id. Patient acknowledged next steps."
CRM.UpdateCase case.id status: resolved
SecureMessaging.SendSummary to patient.phone with encounter summary and care instructions

Service Activation / New Line Setup
Identity Verification
CRM.LookupAccount using account.holder_name and account.id
CRM.VerifyPIN against account.pin
- Identity verified on first or second attempt confirmed →eligibility-check
- Identity fails first attempt unconfirmed CRM.LogVerificationAttempt →secondary-verification
- Fraud flag raised on account fraud_flag →escalation-fraud
- Identity fails after two attempts verification_failed →escalation-identity
Secondary Verification
CRM.VerifySecondaryIdentity using account.billing_address and account.payment_method
- Secondary verification passes confirmed →eligibility-check
- Secondary verification fails unconfirmed →escalation-identity
Eligibility Check
BillingPlatform.CheckEligibility for account.id
- Account is eligible for a new line eligible →device-and-sim-collection
- Account has outstanding balance or restrictions ineligible →eligibility-resolution
Eligibility Resolution
BillingPlatform.GetAccountStatus for account.id
- Customer agrees to resolve balance now confirmed BillingPlatform.ProcessPayment →device-and-sim-collection
- Customer wants to handle it later or disputes the hold declined →escalation-billing
Device and SIM Collection
SIMIMEIProvisioning.ValidateIMEI using device.imei
SIMIMEIProvisioning.ValidateSIM using sim.number
- IMEI and SIM both valid confirmed →plan-selection
- IMEI is blacklisted or incompatible imei_flagged →device-issue
- SIM number is unrecognized or already active sim_invalid →sim-issue
Device Issue
kb.compatible-device-catalog — retrieve compatible device options and current upgrade promotions for account.id
- Customer wants to use a different device confirmed →device-and-sim-collection
- Customer wants to explore upgrade or purchase options interested →escalation-device-upgrade
- Customer wants to end the interaction declined →resolution-closed
SIM Issue
kb.sim-replacement-policy — check eligibility for a new SIM
- Customer can obtain or activate a replacement SIM confirmed →device-and-sim-collection
- Issue requires physical store visit or mailed SIM store_required →escalation-store-referral
Plan Selection
kb.plan-catalog — retrieve available plans, pricing, and promotional offers for account.id
- Customer selects a plan confirmed →number-selection
- Customer is unsure or wants more information undecided →plan-recommendation
Plan Recommendation
- Customer selects a plan after recommendation confirmed →number-selection
- Customer still undecided or wants to call back deferred →resolution-deferred
- Customer declines all plans declined →resolution-closed
Number Selection
- Customer wants a new number assigned new_number CarrierNetworkAPI.AssignNumber for account.id →payment-processing
- Customer wants to port an existing number port_in →port-in-collection
Port-In Collection
NumberPortabilityDB.ValidatePortRequest using port.number, port.carrier, port.account_number, port.pin
- Port request validated and eligible confirmed →port-in-initiated
- Port request rejected or information mismatch invalid →port-in-issue
Port-In Initiated
NumberPortabilityDB.SubmitPortRequest for port.number linked to account.id
CarrierNetworkAPI.AssignTemporaryNumber for account.id
- Temporary number assigned and port submitted confirmed →payment-processing
- Port submission fails due to carrier-side issue port_error →escalation-porting
Port-In Issue
- Customer provides corrected details confirmed →port-in-collection
- Customer is unable to provide correct details unconfirmed →escalation-porting
- Customer prefers to take a new number instead new_number →payment-processing
Payment Processing
PaymentProcessor.ChargeActivationFee of plan.activation_fee to account.payment_method
- Payment succeeds payment_success →line-provisioning
- Payment declines payment_declined →payment-retry
Payment Retry
kb.installment-eligibility — check if account.id qualifies for installment plan on activation fee
- Customer provides alternate payment method alternate_payment PaymentProcessor.ChargeActivationFee →line-provisioning
- Customer qualifies for and accepts installment option installment_approved BillingPlatform.SetupInstallment →line-provisioning
- Customer declines all payment options declined →resolution-payment-abandoned
Line Provisioning
CarrierNetworkAPI.ProvisionLine for account.id with sim.number, device.imei, plan.selected
CRM.UpdateAccount with line.assigned_number and new line details
BillingPlatform.AddLineToAccount for account.id with plan.selected
- Line provisioned successfully line_active →activation-confirmation
- Provisioning error returned by network provisioning_error →escalation-provisioning
Activation Confirmation
- Customer confirms call or data is working confirmed →resolution-success
- Customer reports no signal or data issues not_working →activation-troubleshooting
Activation Troubleshooting
CarrierNetworkAPI.CheckLineStatus for line.assigned_number
SIMIMEIProvisioning.VerifyProvisioningStatus for sim.number
- Network confirms line is active and issue resolves resolved →resolution-success
- Line status shows error or provisioning incomplete provisioning_error →escalation-provisioning
- Issue persists despite active line status unresolved →escalation-technical
Escalation — Identity Verification Failed
CRM.LogFailedVerification for account.id with verification.attempts
CRM.CreateTicket tagged identity-verification-failed, linked to account.id
Escalation — Fraud Flag
CRM.FlagAccountForReview tagged fraud, for account.id
CRM.CreateTicket priority: high, tagged fraud-flag, linked to account.id
Escalation — Billing or Eligibility
CRM.CreateTicket tagged billing-hold, linked to account.id
Escalation — Device Upgrade
CRM.CreateTicket tagged device-upgrade-referral, linked to account.id
Escalation — Store Referral
CRM.CreateTicket tagged sim-store-referral, linked to account.id
Escalation — Porting Issue
CRM.CreateTicket priority: high, tagged port-in-escalation, linked to account.id, including port.number and port.carrier
Escalation — Provisioning Error
CRM.CreateTicket priority: high, tagged provisioning-error, linked to account.id and line.assigned_number
Escalation — Technical Support
CRM.CreateTicket tagged device-technical-issue, linked to account.id and line.assigned_number
Resolution — Success
CRM.CloseTicket for account.id tagged activation-complete
Resolution — Deferred
CRM.SaveSessionState for account.id with plan.selected and device.imei
Resolution — Payment Abandoned
CRM.SaveSessionState for account.id with plan.selected and line.assigned_number tagged payment-pending
Resolution — Closed
CRM.LogInteraction for account.id tagged activation-not-completed

Quote Request Intake
Intake Greeting
- Customer names a specific coverage type confirmed →coverage-type-selected
- Customer is unsure or asks for a recommendation uncertain →coverage-guidance
- Customer wants to speak with a person directly escalation_request →escalation-human
Coverage Guidance
- Agent identifies a suitable coverage type and customer agrees confirmed →coverage-type-selected
- Customer remains undecided or disengages disengaged →partial-intake-save
- Customer requests a human advisor escalation_request →escalation-human
Coverage Type Selected
CRM.LookupCustomer by customer.phone or customer.email to check for an existing record.
- Existing customer record found returning_customer →risk-detail-collection
- No existing record found new_customer →personal-info-collection
Personal Info Collection
CRM.CreateContact with customer.name, customer.email, customer.phone, customer.address
- All required contact details collected info_complete →risk-detail-collection
- Customer provides partial info then stops responding disengaged →partial-intake-save
Risk Detail Collection
- All required risk fields collected fields_complete →underwriting-check
- Critical fields missing after follow-up prompts fields_incomplete →partial-intake-save
- Customer disengages mid-collection disengaged →partial-intake-save
Underwriting Check
UnderwritingRulesAPI.Evaluate with coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits
- Risk profile passes standard guidelines eligible →quote-generation
- Risk profile flagged — outside standard guidelines flagged high_risk →underwriter-review
- API returns an error or timeout error →quoting-system-error
Quote Generation
QuotingEngine.GenerateQuote with customer.name, coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits, coverage.startDate
- Quote successfully generated quote_ready →quote-presentation
- Quoting engine error or timeout on first attempt error →quoting-retry
Quoting Retry
QuotingEngine.GenerateQuote retry with same inputs
- Quote successfully generated on retry quote_ready →quote-presentation
- Second attempt also fails error →quoting-system-error
Quote Presentation
NotificationService.SendEmail to customer.email with quote summary: quote.id, quote.premium, quote.tier, coverage.desiredLimits, coverage.startDate
NotificationService.SendSMS to customer.phone with quote summary link
- Customer wants to bind coverage now bind_now →next-steps-binding
- Customer wants to explore different tiers or limits adjust_quote →risk-detail-collection
- Customer wants to speak with a licensed agent escalation_request →escalation-human
- Customer acknowledges receipt but wants to decide later defer →resolution-follow-up
Next Steps — Binding
PolicyManagement.InitiateBinding with quote.id, customer.name, customer.email, coverage.startDate
CRM.UpdateContact status: quote-accepted, linked to quote.id
- Customer has additional questions →intake-greeting
- Customer is done — no further questions →resolution-complete
Underwriter Review
CRM.UpdateContact status: pending-underwriter-review, flag: underwriting.flagReason
NotificationService.SendEmail to customer.email confirming review is in progress, expected timeline 1 to 2 business days
UnderwritingRulesAPI.CreateReviewCase with customer.name, coverage.type, underwriting.flagReason, all risk fields
- Customer wants an agent callback confirmed →escalation-human
- Customer is satisfied to wait defer →resolution-follow-up
Partial Intake Save
CRM.SavePartialIntake with all collected fields, status: incomplete, customer.phone, customer.email
NotificationService.ScheduleFollowUp outreach in 24 hours to customer.phone and customer.email
CRM.UpdateContact preferred_contact: as stated by customer
- Customer provides a preferred follow-up time or method →resolution-follow-up
- Customer does not respond or disengages →resolution-follow-up
Quoting System Error
CRM.LogQuoteAttempt status: system-error, customer.name, coverage.type, all collected risk fields
NotificationService.AlertLicensedAgent with customer.name, customer.phone, customer.email, coverage.type, collected risk fields
- Handoff to licensed agent →escalation-human
Escalation to Human Agent
CRM.UpdateContact status: escalated-to-agent
CRM.CreateTask priority: high, assigned: licensed_agent_queue, linked to customer.name, coverage.type, quote.id
NotificationService.AlertLicensedAgent with full intake summary: customer.name, customer.email, customer.phone, coverage.type, coverage.desiredLimits, coverage.startDate, all risk fields, quote.id if available
Resolution — Follow-up Scheduled
CRM.UpdateContact status: follow-up-scheduled
Resolution — Complete
CRM.UpdateContact status: quote-delivered

Prescription Refill Request
Patient Verification
PatientIdentityVerification.LookupPatient using patient.fullName and patient.dateOfBirth
- Identity verified successfully verified →prescription-lookup
- Identity cannot be confirmed after two attempts unverified →escalation-human
- Patient reports urgent clinical concern or adverse reaction urgent →escalation-clinical
Prescription Lookup
Epic.GetPrescriptionRecord using patient.memberId, prescription.name, prescription.dosage
- Prescription found, refills remaining and not expired →pharmacy-confirmation
- Prescription found, no refills remaining no_refills →no-refills-remaining
- Prescription found but expired expired →prescription-expired
- Prescription flagged as controlled substance controlled →escalation-clinical
- Prescription not found in record →escalation-human
Pharmacy Confirmation
- Patient confirms pharmacy on file confirmed →submit-refill-request
- Patient requests a different pharmacy change_pharmacy →update-pharmacy
- Patient is unresponsive or unclear →escalation-human
Update Pharmacy
Epic.UpdatePreferredPharmacy with pharmacy.name and pharmacy.address
CRM.UpdatePatientRecord with updated pharmacy.name
→submit-refill-request
Submit Refill Request
Surescripts.SendRefillRequest for prescription.name prescription.dosage to pharmacy.name on behalf of patient.memberId
CRM.LogInteraction with patient.memberId, prescription.name, pharmacy.name
- Patient has another request another →patient-verification
- Patient confirms they are done done →resolution-confirmed
No Refills Remaining
Epic.SendRefillAuthorizationRequest to prescription.prescriberId for patient.memberId and prescription.name
CRM.LogInteraction with patient.memberId, note: refill authorization requested, no refills remaining
- Patient indicates urgent medical need urgent →escalation-clinical
- Patient acknowledges and is satisfied acknowledged →resolution-pending-authorization
Prescription Expired
CRM.LogInteraction with patient.memberId, note: prescription expired, appointment recommended
- Patient wants to schedule an appointment schedule →appointment-scheduling
- Patient declines and has no urgent need decline →resolution-no-action
- Patient reports an urgent clinical concern urgent →escalation-clinical
Appointment Scheduling
Epic.InitiateAppointmentRequest for patient.memberId with prescription.prescriberId
CRM.LogInteraction with patient.memberId, note: appointment scheduling initiated for expired prescription
- Appointment request successfully initiated scheduled →resolution-appointment-booked
- Scheduling system unavailable unavailable →escalation-human
Escalation to Clinical Staff
Epic.CreateClinicalAlert priority: high, patient.memberId, prescription.name, prescription.isControlled
CRM.CreateCase tagged: clinical-escalation, controlled-substance, linked to patient.memberId
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: refill-escalation, linked to patient.memberId, prescription.name
Resolution — Confirmed
CRM.LogInteraction with patient.memberId, note: refill successfully submitted, case closed
Resolution — Pending Authorization
CRM.LogInteraction with patient.memberId, note: patient informed of pending provider authorization
Resolution — Appointment Booked
CRM.LogInteraction with patient.memberId, note: appointment booked for expired prescription renewal
Resolution — No Action
CRM.LogInteraction with patient.memberId, note: patient declined appointment scheduling, no refill action taken

Policy Coverage Question
Inbound Coverage Inquiry
- Customer provides name and policy number →identity-verification
- Customer doesn't have policy number handy →collect-account-details
Collect Account Details
PolicyManagement.LookupByContact using customer.email or customer.phone
- Account found →identity-verification
- Account not found CRM.CreatePendingRecord →system-lookup-failure
Identity Verification
PolicyManagement.FetchPolicy using policy.number
CRM.VerifyIdentity confirm customer.name against policy record
- Identity confirmed, policy active confirmed →retrieve-policy-details
- Identity confirmed, policy lapsed or expired confirmed →lapsed-policy
- Identity check fails after two attempts unverified →escalation-human
Retrieve Policy Details
PolicyManagement.GetPolicyDetails for policy.number — retrieve policy.type, policy.effectiveDate, policy.expirationDate, policy.deductible, policy.coverageLimits
CRM.LogInteraction tag: coverage-inquiry, linked to policy.number
- Customer describes a specific situation or event →coverage-assessment
- Customer is distressed or alarmed about a potential denial frustrated →acknowledge-concern
Acknowledge Concern
- Customer calms down and describes the situation neutral →coverage-assessment
- Customer remains very distressed or mentions legal action frustrated →escalation-licensed-agent
Coverage Assessment
- Situation is clearly covered →deliver-covered-answer
- Situation falls in a gray area or under an exclusion →explain-exclusion-or-gray-area
- Situation involves a large, complex, or legally disputed claim complex_claim →escalation-underwriter
Deliver Covered Answer
DocumentRetrieval.GetRelevantSection for policy.type and coverage.situation
- Customer asks about filing a claim →claim-guidance
- Customer confirms they understand and has no further questions →resolution-close
- Customer wants to speak with a licensed agent escalation_requested →escalation-licensed-agent
Explain Exclusion or Gray Area
DocumentRetrieval.GetExclusionClause for policy.type and coverage.situation
kb.coverage-exclusions-guide — retrieve plain-language explanation for the applicable exclusion
- Customer wants underwriter review →escalation-underwriter
- Customer accepts the explanation and understands →resolution-close
- Customer disputes the exclusion or mentions an attorney frustrated →escalation-licensed-agent
Claim Guidance
CRM.CheckExistingClaim for policy.number and coverage.situation
- Existing claim found, linked to claim.existingId →claim-already-filed
- No existing claim found →new-claim-guidance
Claim Already Filed
- Customer has more questions →coverage-assessment
- Customer is satisfied →resolution-close
New Claim Guidance
- Customer wants to file now PolicyManagement.InitiateClaim →resolution-close
- Customer wants to file later →resolution-close
- Customer wants to escalate or speak with someone directly →escalation-licensed-agent
Lapsed Policy
- Customer wants to explore reinstatement or renewal →policy-renewal-reinstatement
- Customer wants to speak with someone directly →escalation-licensed-agent
- Customer acknowledges and wants to end the call →resolution-close
System Lookup Failure
CRM.CreateFollowUpTask assign to policy-support team, SLA: 1 business day, include customer.name, customer.phone, customer.email, coverage.situation
- Customer agrees to follow-up →resolution-close
- Customer wants immediate assistance →escalation-licensed-agent
Escalation to Underwriter
UnderwritingQueue.SubmitReviewRequest with policy.number, coverage.situation, agent's risk assessment, and policy.coverageLimits
CRM.LogInteraction tag: underwriter-referral, linked to policy.number
- Customer has additional questions for the underwriter →escalation-licensed-agent
- Customer is satisfied with the next step →resolution-close
Escalation to Licensed Agent
CRM.CreateCase priority: high, tag: licensed-agent-requested, linked to policy.number
CRM.LogInteraction tag: escalation, include full coverage-question context
Policy Renewal Reinstatement
CRM.LogInteraction tag: renewal-interest, linked to policy.number
→policy-renewal-reinstatement-flow
Resolution Close
CRM.CloseInteraction tag: resolved, linked to policy.number
- Customer has another question →inbound-coverage-inquiry
- Customer is done Say: "Thank you for calling. You're all set, and don't hesitate to reach out if questions come up. Have a great day." →resolution-close

Payment / Billing Inquiry
Intake & Verification
- Customer provides booking confirmation and identity details CRS.LookupReservation →charge-identification
- Customer cannot provide confirmation number but provides name and email CRS.LookupByGuestEmail →charge-identification
- Customer cannot provide any identifying information →identity-verification-required
Identity Verification Required
- Customer supplies one or more valid identifiers CRS.LookupReservation →charge-identification
- Customer is still unable to verify identity →escalation-human
Charge Identification
PMS.GetPaymentHistory for booking.confirmationNumber
kb.billing-charge-definitions — review resort fees, late checkout policies, cancellation penalty rules, and incidental hold release timelines
- Charge found and matches a known fee type →charge-explanation
- Charge appears duplicated or does not match any reservation line item possible_error →billing-error-review
- Customer references a charge not visible in payment history PaymentGateway.LookupTransaction →charge-identification-extended
- Customer explicitly states the charge is unauthorized or fraudulent fraud_flag →escalation-fraud
Charge Identification — Extended Lookup
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
kb.billing-charge-definitions — verify against settlement timing and pending-to-posted conversion windows
- Transaction located and matched to reservation →charge-explanation
- Transaction located but cannot be matched to any booking possible_error →billing-error-review
- Transaction not found in gateway records →escalation-human
Charge Explanation
- Customer accepts the explanation and is satisfied →resolution-confirmed
- Customer accepts the explanation but requests an itemized receipt PMS.SendReceipt to customer.email →resolution-confirmed
- Customer disputes the charge as unfair but it is policy-valid →goodwill-options
- Customer believes the charge is a billing error possible_error →billing-error-review
Goodwill Options
kb.goodwill-adjustment-policy — check eligible goodwill gestures (loyalty points, partial waiver, future discount) and current authorization limits for agent.adjustmentLimit
- Goodwill offer made and customer accepts RefundAdjustmentTool.ApplyPartialWaiver, PMS.SendReceipt to customer.email →resolution-confirmed
- Goodwill offer made and customer accepts loyalty points LoyaltyPlatform.AwardPoints to loyalty.accountNumber →resolution-confirmed
- Customer declines goodwill options and insists on full refund of a valid non-refundable charge →escalation-human
- Adjustment amount required exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
Billing Error Review
PMS.GetPaymentHistory for booking.confirmationNumber
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
- Error confirmed and within adjustment authorization RefundAdjustmentTool.InitiateCorrection, Salesforce.CreateCase →correction-initiated
- Error confirmed but correction amount exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
- No error found — charge is valid →charge-explanation
Correction Initiated
Salesforce.CreateCase tagged billing-correction, linked to booking.confirmationNumber
PMS.SendReceipt to customer.email with updated billing summary
- Customer asks about a refund they already expected to have received →refund-status-check
- Customer is satisfied with the resolution →resolution-confirmed
Refund Status Check
PaymentGateway.LookupTransaction using payment.last4, refund.amount, refund.date
kb.refund-processing-timelines — check standard bank processing windows by payment type
- Customer confirms they will wait and is satisfied →resolution-confirmed
- Refund date was over 10 business days ago and still not received PaymentGateway.InitiateRefundTrace →escalation-human
- Customer disputes the refund amount as incorrect possible_error →billing-error-review
Escalation to Billing Specialist
Salesforce.CreateCase priority: high, tagged billing-specialist-review, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-specialist-team with case summary, charge.amount, charge.description, customer.email
Escalation to Human Agent
Salesforce.CreateCase priority: high, tagged billing-escalation, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-support-team with full case context, charge.amount, charge.date, customer.email
Escalation — Fraud
Salesforce.CreateCase priority: urgent, tagged unauthorized-charge-fraud, linked to booking.confirmationNumber
PaymentGateway.FlagTransaction for charge.amount on payment.last4
Salesforce.NotifyQueue fraud-and-security-team with transaction details, customer.email, booking.confirmationNumber
Resolution Confirmed
Salesforce.UpdateCase status: resolved, linked to booking.confirmationNumber

Outage Report & Status Check
Inbound Contact
- Customer provides account number or registered phone number →identity-verification
- Customer cannot or will not provide account details →public-outage-info
- Customer mentions inability to reach emergency services safety_risk →escalation-safety
Identity Verification
IdentityVerification.VerifyCustomer using customer.accountNumber or customer.phone
- Verification passes verified →account-and-symptoms
- Verification fails after two attempts unverified →public-outage-info
Account & Symptoms
CRM.PullAccount using customer.accountNumber to retrieve customer.name, customer.serviceAddress, customer.serviceType
- Customer describes complete loss of service no_service →outage-lookup
- Customer describes degraded signal or slow data degraded_service →outage-lookup
- Customer mentions safety impact such as no 911 access safety_concern safety_risk →escalation-safety
- Customer describes issue on one device only single_device →outage-lookup
Outage Lookup
OutageManagement.CheckActiveIncidents for customer.serviceAddress and customer.serviceType
- Known active outage found matching location and service type outage_found →known-outage-confirmed
- No known outage found for this location no_outage →no-outage-found
- System lookup fails or times out lookup_error →escalation-noc
Known Outage Confirmed
OutageManagement.GetIncidentDetails to retrieve outage.incidentId, outage.affectedArea, outage.estimatedRestoration, outage.duration
- Outage duration is extended and likely qualifies for service credit kb.service-credit-policy CRM.FlagAccountForCreditReview captures credit.flagId →outage-updates-offer
- Outage is recent and within normal resolution window →outage-updates-offer
Outage Updates Offer
- Customer wants SMS updates Twilio.SendSMS to customer.phone with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer wants email updates NotificationPlatform.SendEmail to customer.email with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer declines updates →resolution-confirmed
No Outage Found
kb.telecom-troubleshooting-guide — retrieve steps appropriate for customer.serviceType and customer.symptoms
- Customer confirms service is restored resolved →resolution-confirmed
- Customer confirms issue persists after troubleshooting unresolved →new-ticket-creation
- Customer reports safety-related impact during troubleshooting safety_concern safety_risk →escalation-safety
New Ticket Creation
Ticketing.CreateTroubleTicket with customer.accountNumber, customer.serviceAddress, customer.serviceType, customer.symptoms, customer.deviceCount to generate ticket.id and ticket.referenceNumber
- Customer requests SMS confirmation Twilio.SendSMS to customer.phone with ticket.referenceNumber →resolution-confirmed
- Customer requests email confirmation NotificationPlatform.SendEmail to customer.email with ticket.referenceNumber →resolution-confirmed
- Customer needs no confirmation →resolution-confirmed
- Customer expresses continued frustration or reports critical business impact escalation_needed →escalation-specialist
Public Outage Info
OutageManagement.GetPublicOutageSummary for any broad regional incidents
- Public outage exists in the reported region public_outage_found →public-outage-details
- No public outage on record →public-no-outage
Public Outage Details
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Public No Outage
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Escalation — Network Operations
NOCDashboard.RaiseSystemLookupFailure with customer.accountNumber and customer.serviceAddress
CRM.LogInteraction with lookup failure details and customer.phone for callback scheduling
Twilio.SendSMS to customer.phone confirming a callback will be arranged
Escalation — Specialist
Ticketing.EscalateTicket for ticket.id to senior support queue
CRM.LogInteraction with escalation reason and customer.accountNumber
Escalation — Safety
CRM.LogInteraction flagged safety_risk with customer.accountNumber and customer.symptoms
NOCDashboard.RaiseSafetyFlag with customer.serviceAddress
Resolution Confirmed
- Customer has additional questions or issues →inbound-contact
- Customer confirms they are all set CRM.LogInteraction with resolution summary and outage.incidentId or ticket.referenceNumber →close-interaction
Close Interaction

New Account Onboarding
Intent Capture
- Customer requests a personal account type (checking, savings, investment) personal-account →info-collection
- Customer requests a business or trust account business-or-trust-account →specialist-routing
- Customer is unsure or needs guidance unsure →account-type-guidance
Account Type Guidance
kb.account-types-overview — retrieve product descriptions, minimum balance requirements, and eligibility criteria
- Customer selects a personal account type personal-account →info-collection
- Customer still wants a business or trust account business-or-trust-account →specialist-routing
- Customer wants to end the conversation end-session →session-close
Info Collection
CRM.CreateDraftRecord to initialize a draft customer profile
kb.minimum-deposit-requirements — validate customer.initialDepositAmount and customer.fundingSource eligibility
- All required fields collected and deposit method is supported fields-complete →identity-verification
- Funding method is unsupported or deposit is below the minimum funding-issue →funding-issue-resolution
- Customer is unwilling to provide required information declined-to-provide →escalation-human
Funding Issue Resolution
kb.funding-methods-policy — retrieve supported funding sources and minimum initial deposit thresholds
- Customer selects a supported alternative funding method alternative-accepted →identity-verification
- Customer cannot or will not meet deposit requirements cannot-meet-requirements →session-close
Identity Verification
KYCService.SubmitVerification with customer.fullLegalName, customer.dateOfBirth, customer.govIdNumber, customer.taxId, customer.address
- Verification passes on first or second attempt kyc-pass →compliance-screening
- Verification fails — first attempt kyc-fail-first →kyc-retry
- Verification fails — second attempt or kyc.attemptCount exceeds 2 kyc-fail-final →escalation-human
KYC Retry
DocUploadPortal.RequestDocument to customer.email for alternative ID submission
- Customer submits alternative document and resubmission passes kyc-pass →compliance-screening
- Customer submits alternative document and resubmission fails kyc-fail-final →escalation-human
- Customer cannot provide alternative documentation cannot-verify →escalation-human
Compliance Screening
ComplianceScreening.RunCheck with customer.fullLegalName, customer.taxId, customer.dateOfBirth, customer.address
- Screening passes with no flags compliance-clear →account-creation
- Any KYC or AML flag is raised compliance-flagged →escalation-compliance
- Customer is identified as a Politically Exposed Person (PEP) compliance.isPEP pep-flag →escalation-compliance
Account Creation
CoreBanking.CreateAccount with customer.fullLegalName, customer.taxId, customer.address, customer.fundingSource, customer.initialDepositAmount, customer.accountType
CRM.UpdateRecord with account.id, mark status: account-created
Twilio.SendSMS to customer.phone: "Your new account has been created. Your account ID is account.id. Your login credentials will arrive by email shortly."
CoreBanking.IssueCredentials to customer.email with account.credentials and welcome packet link
- Account created and credentials delivered successfully account-ready →customer-orientation
- Account creation fails due to a system error system-error →escalation-human
Customer Orientation
kb.new-account-faq — retrieve top questions about first login, mobile app access, and deposit timelines
- Customer has additional questions more-questions →customer-orientation
- Customer is satisfied and ready to end satisfied →session-close
- Customer wants to add a beneficiary or linked account additional-setup →escalation-human
Specialist Routing
CRM.CreateLeadRecord with customer.phone, customer.email, customer.accountType, note: specialist-referral
- Details captured and specialist notified →escalation-human
Escalation to Compliance Officer
ComplianceScreening.FlagRecord with customer.fullLegalName, customer.taxId, compliance.flagCode, compliance.isPEP
CRM.EscalateRecord priority: critical, tag: compliance-review
Escalation to Human Agent
CRM.EscalateRecord priority: high, tag: agent-review
Twilio.SendSMS to customer.phone: "Your account application requires attention from one of our specialists. A team member will reach out to you shortly."
Session Close
CRM.CloseSession with session outcome logged

Insurance Coverage Check
Patient Intake
CRM.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found in CRM →insurance-verification
- No record found, continue to collect details manually →insurance-verification
- Patient is unresponsive or call drops →escalation-human
Insurance Verification
EligibilitySystem.VerifyMember using patient.insuranceCarrier and patient.memberId
- Coverage active and returned successfully confirmed →service-inquiry
- Coverage shows as inactive or lapsed inactive →coverage-lapsed
- System returns no results or an error error →system-error
Service Inquiry
CRM.UpdateRecord with patient.memberId and confirmed coverage.status
- Patient provides service type or CPT code →network-status-check
- Patient is unsure of service details →service-clarification
Service Clarification
- Patient provides enough detail to proceed →network-status-check
- Patient still unable to provide details →escalation-human
Network Status Check
ProviderDirectory.CheckNetworkStatus using provider.name and provider.facility and patient.insuranceCarrier
PayerPortal.LookupBenefit using service.cptCode and patient.memberId and coverage.effectiveDate
- Provider and service confirmed in-network in-network →benefit-details
- Provider confirmed out-of-network out-of-network →out-of-network-options
- Service requires prior authorization prior-auth-required →prior-auth-guidance
- Lookup returns ambiguous or missing data unclear →escalation-human
Benefit Details
kb.benefit-tier-definitions — confirm explanation of coverage.tier, copay, and deductible language
PriorAuthTracker.CheckRequirements using service.cptCode and patient.memberId
- No referral or prior authorization required →confirmation-close
- Referral required referral-flag →referral-guidance
- Prior authorization required prior-auth-flag →prior-auth-guidance
Referral Guidance
kb.referral-process — retrieve steps for obtaining and submitting a referral
- Patient understands and confirms next steps →confirmation-close
- Patient has questions or disputes the referral requirement →escalation-human
Prior Auth Guidance
kb.prior-auth-process — retrieve steps and typical timelines for prior authorization submission
PriorAuthTracker.CreateCase using patient.memberId and service.cptCode and provider.name
- Patient acknowledges and has no further questions →confirmation-close
- Patient wants to dispute that prior auth is required →escalation-human
Out-of-Network Options
kb.out-of-network-benefits — look up whether the plan includes out-of-network benefit coverage and applicable cost-sharing
- Plan includes out-of-network benefits oon-benefits-available →oon-benefit-details
- Plan does not cover out-of-network services oon-no-benefits →suggest-in-network
OON Benefit Details
- Patient wants in-network alternatives instead →suggest-in-network
- Patient is satisfied with out-of-network information →confirmation-close
- Patient references a denial or billing dispute →escalation-human
Suggest In-Network Alternatives
ProviderDirectory.FindInNetworkProviders using service.type and patient.insuranceCarrier
- Patient accepts alternatives and has no further questions →confirmation-close
- Patient insists on the out-of-network provider and references a coverage dispute →escalation-human
Coverage Lapsed
kb.enrollment-support — retrieve guidance on coverage reinstatement and insurer contact process
- Patient wants to escalate or believes coverage should be active →escalation-human
- Patient understands and will contact insurer →confirmation-close
System Error
PayerPortal.ManualEligibilityLookup using patient.memberId and patient.insuranceCarrier
- Payer portal lookup succeeds →network-status-check
- Payer portal also unavailable, offer callback CRM.CreateCallbackTask →escalation-human
Confirmation & Close
CRM.LogInteraction with coverage check summary, patient.memberId, service.cptCode, and outcome
- Patient has no further questions satisfied →session-complete
- Patient has an additional service to check new-inquiry →service-inquiry
- Patient raises a dispute or references a denial dispute →escalation-human
Session Complete
CRM.CloseInteraction with resolved status and patient.memberId
Escalation to Specialist
CRM.CreateCase priority: high, tagged coverage-escalation, linked to patient.memberId and service.cptCode
CRM.LogInteraction with escalation reason and full session context

General FAQ Retail
Intake
- Customer asks about store hours or location store-info →store-info
- Customer asks about return or exchange policy return-policy →return-policy
- Customer asks about payment methods or financing payment-options →payment-options
- Customer asks about product availability or details product-inquiry →product-inquiry
- Customer references a specific order or account account-specific →identity-verification
- Customer asks something outside standard categories out-of-scope →edge-case-handler
Store Info
kb.store-locator-policy — retrieve hours and location details relevant to customer.location
StoreLocator.GetStoreDetails for customer.location
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes the information frustrated →policy-pushback
Return Policy
kb.return-exchange-policy — retrieve current return window, conditions, and exclusions based on policy.version
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up or edge-case question follow-up →edge-case-handler
- Customer is frustrated with the policy frustrated →policy-pushback
- Customer references a specific order account-specific →identity-verification
Payment Options
kb.payment-options-policy — retrieve accepted payment methods, financing partners, and any current promotions
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes policy frustrated →policy-pushback
Product Inquiry
kb.product-catalog — look up details for product.name or product.sku
ProductCatalog.GetProductDetails for product.sku
InventoryLookup.CheckAvailability for product.sku at customer.location
- Customer confirms the answer resolves their need confirmed →resolution
- Customer wants more product detail follow-up →product-inquiry-detail
- Customer asks about ordering or account account-specific →identity-verification
- Customer is dissatisfied with availability or details frustrated →policy-pushback
Product Inquiry Detail
kb.product-catalog — retrieve extended specifications, compatibility notes, and related items for product.sku
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has additional questions follow-up →intake
- Customer needs account-level help account-specific →identity-verification
- Customer is dissatisfied frustrated →policy-pushback
Identity Verification
- Customer provides verifiable details confirmed CRM.LookupCustomer →account-inquiry
- Customer is unable or unwilling to provide details unverified →escalation-human
- Customer clarifies they do not actually need account-level help no-account-needed →intake
Account Inquiry
CRM.LookupCustomer for order.id
- Question can be answered with available account data confirmed →resolution
- Issue involves a dispute, complaint, or action beyond FAQ scope complaint →escalation-human
- Customer confirms answer resolves their need resolved →resolution
Edge Case Handler
kb.general-faq — attempt to locate a match for customer.question across all FAQ categories
- A confident, accurate answer is found in FAQ content faq-match →faq-answer
- FAQ content is ambiguous, outdated, or contradicts another source uncertain →uncertainty-acknowledgment
- No relevant FAQ content exists no-match →escalation-human
FAQ Answer
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up follow-up →intake
- Customer is dissatisfied or pushes back frustrated →policy-pushback
Uncertainty Acknowledgment
→escalation-human
Policy Pushback
- Customer agrees to speak with a team member confirmed →escalation-human
- Customer accepts the explanation and no longer needs help resolved →resolution
- Customer has a new or different question follow-up →intake
Escalation to Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.name and customer.question
Resolution

General FAQ — Travel & Hospitality
Inbound Question
CRM.LookupCustomer by customer.phone or customer.email
- Customer asks about cancellation or change policies cancellation →clarify-reservation-context
- Customer asks about amenities, facilities, or property features amenities →clarify-property
- Customer asks about pet policy pets →clarify-property
- Customer asks about meals, dining, or breakfast inclusion dining →clarify-property
- Customer asks about loyalty program benefits or points loyalty →loyalty-faq
- Customer asks about visa, health, or travel entry requirements travel-requirements →travel-requirements-faq
- Customer message is vague or multi-topic unclear →clarify-question
- Customer expresses frustration or dissatisfaction upfront frustrated →escalation-human
Clarify Question
- Customer provides enough detail to categorise clarified →inbound-question
- Customer remains vague or asks multiple unrelated things still-unclear →retrieve-general-faq
- Customer shows frustration frustrated →escalation-human
Clarify Reservation Context
- Customer references an existing reservation →clarify-property
- Customer is asking prospectively →retrieve-general-faq
Clarify Property
PMS.LookupReservation by reservation.id if provided
- Property identified or reservation found →retrieve-property-faq
- Customer cannot specify a property and question is general →retrieve-general-faq
- Customer is frustrated by the extra question frustrated →escalation-human
Retrieve Property-Specific FAQ
kb.property-policies — look up topic.category policy for property.name
- Answer found and complete →deliver-answer
- Answer found but varies by date or rate type →deliver-answer-with-caveat
- Knowledge base has no coverage for this question no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Retrieve General FAQ
kb.general-faq — look up topic.category
- Answer found and universally applicable →deliver-answer
- Answer varies by property →clarify-property
- Answer varies by loyalty tier LoyaltyPlatform.GetTierBenefits →deliver-answer-with-caveat
- Knowledge base has no coverage no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Loyalty FAQ
kb.loyalty-program — retrieve benefits, earning rules, and redemption policies for customer.loyaltyTier
LoyaltyPlatform.GetTierBenefits for customer.loyaltyTier
- Benefits information retrieved →deliver-answer
- Customer's tier could not be confirmed →deliver-answer-with-caveat
- Customer disputes their tier or points balance dispute →escalation-human
Travel Requirements FAQ
kb.travel-entry-requirements — look up destination property.location for reservation.checkIn dates
- Summary retrieved →deliver-answer-with-caveat
- No information available for this destination no-coverage →knowledge-gap
- Customer raises a medical or legal compliance concern sensitive →escalation-human
Deliver Answer
- Customer is satisfied and has no further questions satisfied →resolution
- Customer has a follow-up question on the same topic follow-up →retrieve-property-faq
- Customer has a completely new question new-topic →inbound-question
- Customer is not satisfied with the answer unsatisfied →escalation-human
Deliver Answer With Caveat
- Customer accepts the answer and caveats satisfied →resolution
- Customer wants clarification on a specific variant follow-up →clarify-property
- Customer is unsatisfied or concerned unsatisfied →escalation-human
Knowledge Gap
CRM.LogInteraction note: unanswered FAQ topic, question.raw, property.name
- Customer agrees to be connected confirmed →escalation-human
- Customer declines transfer and wants to try another question new-topic →inbound-question
- Customer ends the conversation end →resolution
Escalation to Human Specialist
CRM.LogInteraction with question.raw, topic.category, reservation.id, customer.loyaltyTier, escalation reason
Resolution
CRM.LogInteraction note: FAQ resolved, topic.category, property.name, customer.loyaltyTier

Flight/Trip Disruption Support
Intake & Verification
PNR.LookupBooking using booking.confirmationNumber and booking.passengerName
- Booking found and passenger name matches →identity-check
- Booking not found or name mismatch confused PNR.LookupBooking retry with loyalty number booking.loyaltyNumber →identity-check
- No booking reference available at all →escalation-human
Identity Check
IdentityVerification.Challenge using booking.passengerName and traveler.email
- Identity verified identity_verified →disruption-assessment
- Identity check fails after two attempts identity_failed →escalation-secure-verification
- Customer declines verification declined →escalation-secure-verification
Disruption Assessment
PNR.GetAffectedSegment for booking.confirmationNumber to pre-populate trip.affectedSegment
- Flight cancellation confirmed cancellation →rebooking-options
- Significant delay (2+ hours) delay →rebooking-options
- Missed connection missed-connection →rebooking-options
- Hotel or accommodation failure hotel-issue →hotel-resolution
- Customer already self-rebooked self-rebooked →self-rebook-review
- Medical or safety emergency emergency →escalation-human
Rebooking Options
kb.rebooking-policy — check eligibility rules, same-carrier preference, fare class protection, and partner airline agreements for booking.fareClass
GDS.SearchAvailability for trip.destination from traveler.currentLocation on trip.travelDate and next 24 hours
- Suitable same-carrier option found →rebook-confirmation
- Only partner carrier options available →partner-carrier-offer
- No viable rebooking option exists no_options →refund-assessment
- Minor traveling alone flag raised minor_alone →escalation-human
Rebook Confirmation
- Customer confirms new flight confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Customer wants to see other options wants-alternatives →rebooking-options
- Customer declines all options and wants a refund refund-requested →refund-assessment
Partner Carrier Offer
kb.partner-airline-policy — confirm interline agreement, baggage transfer rules, and any fare difference liability
- Customer accepts confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Fare difference exceeds authorization limit fare_over_limit →escalation-human
- Customer declines and requests refund refund-requested →refund-assessment
Self-Rebook Review
PNR.GetAffectedSegment to compare original booking.itinerary against new booking
GDS.CheckFareDifference for rebooking.fareDifference
- Self-rebook is clean, no fare difference owed no_difference →confirmation-and-vouchers
- Fare difference owed to customer fare_refund_due →refund-assessment
- Duplicate charge detected duplicate_charge →refund-assessment
- Self-rebook is invalid or ticketing error ticketing_error →rebooking-options
Hotel Resolution
kb.hotel-disruption-policy — review duty-of-care obligations, walk procedures, and compensation entitlements
- Hotel overbooked, walk required hotel-walk HotelAPI.FindAlternativeProperty →hotel-rebook-confirmation
- Room condition complaint (safety, cleanliness) room-condition HotelAPI.EscalateProperty →hotel-rebook-confirmation
- Issue requires compensation above agent limit hotel_over_limit →escalation-human
Hotel Rebook Confirmation
- Customer confirms confirmed HotelAPI.TransferReservation CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer prefers to resolve independently self-resolve →confirmation-and-vouchers
- Compensation amount exceeds authorization hotel_over_limit →escalation-human
Refund Assessment
kb.refund-policy — verify refundability for booking.fareClass, disruption cause trip.disruption.cause, and weather exception rules
- Full refund eligible full_refund PNR.InitiateRefund →confirmation-and-vouchers
- Travel credit or voucher eligible voucher_eligible CompensationTool.IssueVoucher →confirmation-and-vouchers
- Weather-related, limited compensation weather_limited →weather-exception-handling
- Refund amount exceeds agent authorization refund_over_limit →escalation-human
- No refund eligibility confirmed no_refund →compensation-conversation
Weather Exception Handling
kb.weather-disruption-policy — confirm exact entitlements and any duty-of-care exceptions
- Customer accepts limited offer accepted CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer disputes and requests escalation escalate →escalation-human
- Customer requests full refund citing extraordinary circumstances extraordinary →escalation-human
Compensation Conversation
CompensationTool.CalculateEntitlement for booking.fareClass and booking.loyaltyNumber
- Goodwill voucher available CompensationTool.IssueVoucher →confirmation-and-vouchers
- Nothing available within agent limits no_compensation_available →escalation-human
Confirmation & Vouchers
PNR.SendConfirmationEmail to traveler.email with updated booking.itinerary
CompensationTool.DeliverVoucher to traveler.email if applicable
Salesforce.UpdateCase with resolution summary, disruption type trip.disruption.type, and compensation issued
- Customer has additional questions or issues more-help →disruption-assessment
- Customer is satisfied and conversation is complete resolved →resolution-close
Resolution Close
Salesforce.CloseCase with outcome logged and customer satisfaction noted
Escalation — Secure Verification
Salesforce.CreateCase priority: high, tagged identity-verification-required
IdentityVerification.RouteToSecureChannel for traveler.phone or traveler.email
Escalation — Human Agent
Salesforce.CreateCase priority: high, tagged disruption-escalation with full case summary, booking.confirmationNumber, trip.affectedSegment, and trip.disruption.cause
PNR.FlagForSeniorAgent on booking.confirmationNumber
Salesforce.NotifyAgent via #disruption-escalations with case link and urgency flag

Damaged / Wrong Item Received
Intake & Verify
- Customer provides order ID OMS.LookupOrder by order.id →confirm-order
- Customer provides email or phone instead CRM.LookupByContact by customer.email or customer.phone →confirm-order
- Customer cannot provide any identifying information →identity-unverifiable
Confirm Order
OMS.GetOrderDetails for order.id — retrieve item.description, order.deliveryDate, order.status, order.value
- Order found, delivery confirmed, customer describes damaged item →issue-triage
- Order found, delivery confirmed, customer describes wrong item received →issue-triage
- Order found but not yet marked delivered ShippingCarrier.GetTrackingStatus →delivery-unclear
- Order lookup returns an error or ambiguous result CRM.FlagForManualReview →system-lookup-failed
Issue Triage
kb.returns-replacement-policy — verify order.deliveryDate is within policy.replacementWindowDays and check photo evidence requirements for item.issue
- Within policy window, photo evidence required by policy →request-photo-evidence
- Within policy window, no photo evidence required →resolution-offer
- Outside policy window →outside-return-window
Request Photo Evidence
PhotoUpload.SendUploadLink to customer.email or customer.phone
- Customer submits photo, evidence is clear →resolution-offer
- Customer unable to submit photo, order value is within policy.autoApprovalThreshold Policy.CheckGoodwillEligibility →goodwill-exception-review
- Customer unable to submit photo, order value exceeds policy.autoApprovalThreshold →escalation-human
Goodwill Exception Review
- Goodwill waiver approved within constraints goodwill_approved →resolution-offer
- Goodwill waiver outside constraints or repeat exception needs_review →escalation-human
Resolution Offer
- Customer prefers replacement →initiate-replacement
- Customer prefers refund →initiate-refund
- Customer is unsure, asks for more information →explain-resolution-options
Explain Resolution Options
kb.returns-replacement-policy — confirm refund and replacement timelines for customer.preferredResolution
- Customer selects replacement →initiate-replacement
- Customer selects refund →initiate-refund
- Customer requests something outside standard options →escalation-human
Initiate Replacement
OMS.CreateReplacementOrder for order.id, ship to address on file
ReturnsManager.OpenReturnCase tagged replacement, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and estimated delivery
→close-case
Initiate Refund
ReturnsManager.InitiateRefund for order.id, full amount to original payment method
ReturnsManager.OpenReturnCase tagged refund, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and refund timeline
→close-case
Outside Return Window
kb.returns-replacement-policy — check partial goodwill resolution eligibility for out-of-window orders
- Approved for partial goodwill resolution approved ReturnsManager.InitiatePartialCredit →partial-resolution-confirmed
- Rejected, no goodwill exception authorised rejected →policy-decline
- No response within 60 min →escalation-human
Partial Resolution Confirmed
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and credit details
→close-case
Policy Decline
- Customer accepts the outcome →close-case
- Customer wants to escalate or disputes the outcome →escalation-human
Delivery Unclear
ShippingCarrier.GetTrackingStatus for order.id
- Carrier confirms delivered, discrepancy in OMS OMS.FlagOrderStatusMismatch →system-lookup-failed
- Carrier confirms still in transit →close-case
- Carrier confirms lost or exception raised →escalation-human
System Lookup Failed
CRM.CreateCase priority: medium, tagged order-lookup-error, linked to customer.email
CRM.ScheduleCallback for customer.phone within 24 hours
- Customer confirms callback number CRM.UpdateCaseContactDetails →close-case
- Customer prefers email follow-up Twilio.SendNotification confirmation to customer.email →close-case
Identity Unverifiable
- Customer finds identifying information →intake-and-verify
- Customer still cannot provide verification, low-value context →escalation-human
- Customer becomes frustrated or demands override →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged damaged-wrong-item-escalation, linked to order.id and customer.email
Slack.Notify to #retail-support-escalations with case summary, order.id, order.value, item.issue, and reason for escalation
Close Case
CRM.CloseCase for case.id, log resolution type and resolution.confirmationNumber

Complaint Escalation — Telecom
Intake and Verification
CRM.LookupAccount using customer.accountNumber or customer.name
- Identity verified successfully CRM.PullComplaintHistory →complaint-history-review
- Identity cannot be verified after two attempts →identity-escalation
- Customer is immediately hostile or threatening frustrated →de-escalation
Complaint History Review
CRM.GetAccountSummary to load customer.accountNumber, complaint.history, and complaint.compensationOffered
CaseManagement.SearchByAccount to find any existing ticket linked to complaint.priorTicketId
- Prior ticket found CaseManagement.OpenCase with complaint.priorTicketId →complaint-confirmation
- No prior ticket found →new-case-creation
- Customer references regulatory body or legal action legal_threat →regulatory-legal-routing
New Case Creation
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, complaint.compensationOffered
- Case created successfully →complaint-confirmation
- System unavailable system_down →system-unavailable-fallback
Complaint Confirmation
- Customer confirms details are correct confirmed →escalation-routing
- Customer adds new information or corrects details update_needed CaseManagement.UpdateCase with revised notes →escalation-routing
- Customer becomes highly distressed or makes a regulatory reference legal_threat →regulatory-legal-routing
- Customer demands supervisor immediately supervisor_demand →escalation-routing
Escalation Routing
EscalationRouting.IdentifyTeam using complaint.servicesAffected, complaint.nature, and customer.accountNumber to assign case.escalationTeam and case.responseTimeline
CaseManagement.UpdateCase with case.escalationTeam, case.responseTimeline, full interaction notes, and complaint.compensationOffered
CommsLog.RecordInteraction with customer.accountNumber, case.id, and channel details
- Standard priority confirmed →escalation-acknowledgement
- Upgrade to high priority warranted high_priority EscalationRouting.UpgradePriority →escalation-acknowledgement
- Business or critical infrastructure account identified critical_account EscalationRouting.UpgradePriority →escalation-acknowledgement
Escalation Acknowledgement
- Approved and owner assigned approved CaseManagement.UpdateCase →customer-close-out
- Rejected or reassignment needed rejected EscalationRouting.IdentifyTeam →escalation-routing
- No response within 20 minutes →escalation-human
Customer Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id, case.escalationTeam, and case.responseTimeline
BillingPlatform.NoteAccount with escalation flag and case.id
- Customer is satisfied and has no further questions confirmed →resolution-close
- Customer requests additional credit or compensation →compensation-review
- Customer remains unsatisfied and escalates further frustrated →escalation-human
Compensation Review
kb.compensation-credit-policy — check eligibility based on complaint.servicesAffected, outage duration, and complaint.compensationOffered
- Credit within policy limits approved approved BillingPlatform.ApplyCredit →customer-close-out
- Credit exceeds policy limit needs_approval →escalation-human
- Prior credit already granted, none applicable ineligible →customer-close-out
De-escalation
kb.de-escalation-guidelines — apply language and pacing guidance for hostile or distressed callers
- Customer settles enough to continue confirmed →intake-and-verification
- Customer remains hostile or uses threatening language hostile CommsLog.FlagInteraction for supervisor review →escalation-human
- Customer mentions regulatory body or legal action legal_threat →regulatory-legal-routing
Regulatory and Legal Routing
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, and legal or regulatory flag
CommsLog.FlagInteraction with legal_regulatory tag and case.id
EscalationRouting.RouteToCompliance with case.id and full case context
- Compliance or legal team notified compliance_routed →regulatory-close-out
- Routing system unavailable system_down →system-unavailable-fallback
Regulatory Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id and compliance escalation notice
System Unavailable Fallback
CommsLog.ManualNoteEntry with customer.name, customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, and timestamp
- Manual log completed, systems expected to restore shortly →resolution-close
- Systems remain down and customer needs immediate escalation →escalation-human
Escalation to Human Agent
EscalationRouting.PageSupervisor with case.id, customer.accountNumber, complaint.nature, and urgency flag
CommsLog.FlagInteraction with supervisor_required tag
Slack.Notify to #escalations-live with case summary, customer.accountNumber, and case.id
Identity Escalation
CRM.SendVerificationLink to contact details on file
- Customer verifies via link and calls back →intake-and-verification
- Customer unable or unwilling to verify →escalation-human
Resolution Close
CaseManagement.UpdateCase with resolved_handoff status and final interaction notes
CommsLog.CloseInteraction with customer.accountNumber and case.id

Complaint / Feedback Intake
Intake Greeting
- Patient provides name and date of birth →identity-verification
- Patient declines to provide identifying information →unverified-caller
- Patient immediately expresses significant distress →distressed-patient
Identity Verification
EHR.LookupPatient using patient.name and patient.dob
- Identity confirmed, patient record located in EHR verified →complaint-type-triage
- Identity cannot be confirmed after two attempts unverified →unverified-caller
- Patient becomes distressed during verification →distressed-patient
Complaint Type Triage
- Patient describes a potential safety event, clinical harm, abuse, or neglect safety-incident →safety-escalation
- Patient explicitly requests a patient advocate or administrator requests-advocate →escalation-human
- Patient describes a complaint about care quality, provider conduct, facility, or billing complaint →complaint-intake
- Patient is sharing positive or general feedback positive-feedback →commendation-intake
- Patient becomes emotionally distressed at any point distressed →distressed-patient
Distressed Patient
- Patient is ready to continue after acknowledgment ready →complaint-type-triage
- Patient remains highly distressed and requests to speak with someone senior requests-advocate →escalation-human
- Patient discloses a safety concern or harm during this exchange safety-incident →safety-escalation
Complaint Intake
EHR.GetPatientContext for patient.id to pre-populate known provider and visit history
- All key details collected — date, provider or department, nature, preferred contact →complaint-logging
- Patient cannot recall specific date or provider →complaint-logging
- Patient discloses details suggesting clinical harm or a safety event during intake safety-incident →safety-escalation
- Patient becomes distressed during intake →distressed-patient
Complaint Logging
GrievanceManagement.CreateCase with patient.id, patient.name, patient.dob, complaint.date, complaint.nature, complaint.provider, complaint.department, patient.preferredContact, case.priority
CRM.UpdatePatientRecord with case reference and feedback.type tagged as complaint
- Patient has no further questions →resolution-acknowledgment
- Patient raises an additional complaint or concern →complaint-intake
- Patient raises a safety concern at this stage safety-incident →safety-escalation
- Patient requests to speak with a patient advocate requests-advocate →escalation-human
Commendation Intake
CRM.LogFeedback with patient.id, patient.name, feedback.type tagged as commendation, and complaint.provider or complaint.department if provided
- Patient has nothing further to add →resolution-acknowledgment
- Patient also has a complaint to raise →complaint-intake
Unverified Caller
kb.patient-complaint-submission-policy — confirm current written complaint and in-person intake options
- Patient accepts alternative options and ends the call →resolution-acknowledgment
- Patient becomes distressed about inability to proceed →distressed-patient
- Patient discloses a safety concern despite being unverified safety-incident →safety-escalation
Safety Escalation
RiskReporting.CreateIncident tagged high-priority with patient.name, patient.dob, patient.id if verified, complaint.nature, complaint.date, complaint.provider, complaint.department
GrievanceManagement.CreateCase with case.priority set to high and flagged for clinical risk management review
SecureMessaging.NotifyClinicalRiskTeam with incident summary and complaint.referenceNumber
Escalation to Human Agent
CRM.UpdatePatientRecord with escalation flag and case summary
SecureMessaging.NotifyPatientAdvocate with patient.name, patient.id if verified, complaint.nature, and preferred contact patient.preferredContact
Resolution Acknowledgment

Check-in / Check-out Assistance
Contact & Intent Capture
- Guest says checking in intent-checkin →reservation-lookup-checkin
- Guest says checking out intent-checkout →reservation-lookup-checkout
- Guest mentions a problem or issue intent-issue →reservation-lookup-checkin
- Intent is unclear unclear →clarify-intent
Clarify Intent
- Guest clarifies check-in intent-checkin →reservation-lookup-checkin
- Guest clarifies check-out intent-checkout →reservation-lookup-checkout
- Still unclear after two attempts still-unclear →escalation-human
Reservation Lookup — Check-in
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, arrival date matches reservation.arrivalDate →identity-verification
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Lookup — Check-out
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, departure date matches reservation.departureDate →folio-review
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Not Found
PMS.SearchByNameAndDate using guest.fullName and reservation.arrivalDate
CRM.LookupGuestProfile using guest.email or guest.loyaltyId
- Reservation found by name and date search →identity-verification
- Reservation appears to be a third-party booking third-party-booking PMS.RequestThirdPartyImport for booking.thirdPartySource →third-party-import-pending
- No reservation found after all searches →escalation-human
Third-Party Import Pending
- Guest agrees to wait, import completes successfully →identity-verification
- Guest prefers callback or notification CRM.CreateCallback for guest.phone or guest.email →resolution-pending-notification
- Import fails after retry import-failed →escalation-human
Identity Verification
IDVerification.VerifyGuest using guest.fullName, guest.loyaltyId, and reservation.confirmationNumber
- Identity verified successfully identity-verified →room-readiness-check
- Identity cannot be verified after two attempts identity-failed →escalation-human
Room Readiness Check
PMS.CheckRoomStatus for reservation.roomType and reservation.specialRequests
- Room is ready and assigned room.number is available room-ready →room-assignment-confirm
- Room is not yet ready room-not-ready →room-not-ready-options
- No room available due to overbooking overbooked →escalation-human
Room Assignment Confirmation
DigitalKeySystem.IssueKey for room.number linked to guest.email or guest.phone
CRM.UpdateGuestProfile with check-in timestamp and room.number
PMS.RecordCheckIn for reservation.confirmationNumber
- Guest has additional requests additional-requests →special-requests-handling
- Guest is satisfied and done satisfied →resolution-checkin-complete
Room Not Ready — Options
- Guest requests luggage storage PMS.ArrangeLuggageStorage for guest.fullName →ready-room-alert-setup
- Guest requests lounge access PMS.GrantLoungeAccess for guest.loyaltyId →ready-room-alert-setup
- Guest wants notification only →ready-room-alert-setup
- Guest is frustrated or insists on immediate room frustrated →escalation-human
Ready-Room Alert Setup
PMS.SetReadyRoomAlert for reservation.confirmationNumber, notify via guest.phone or guest.email
- Guest has further needs additional-requests →special-requests-handling
- Guest is happy to wait satisfied →resolution-pending-notification
Special Requests Handling
PMS.UpdateSpecialRequests for reservation.confirmationNumber with reservation.specialRequests
CRM.LogGuestPreference for guest.loyaltyId
- Request logged successfully, guest is satisfied →resolution-checkin-complete
- Request cannot be fulfilled, requires manager input →escalation-human
Folio Review
BillingSystem.GenerateFolio for reservation.confirmationNumber
BillingSystem.SendItemizedFolio to guest.email with folio.itemizedUrl
- Guest confirms all charges are correct confirmed →checkout-processing
- Guest has a question about a charge question →folio-explanation
- Guest disputes a charge dispute →charge-dispute
Folio Explanation
kb.billing-policy — review applicable rate, tax, and incidental policies
- Guest accepts the explanation confirmed →checkout-processing
- Guest still disputes after explanation still-disputes →charge-dispute
Charge Dispute
- Dispute is valid and within adjustment authority adjustment-approved BillingSystem.ApplyAdjustment for dispute.amount →checkout-processing
- Dispute is valid but exceeds adjustment authority exceeds-authority →escalation-human
- Dispute is not supported by policy dispute-denied →dispute-denial-explanation
Dispute Denial Explanation
- Guest accepts and wants to proceed accepted →checkout-processing
- Guest wants escalation wants-escalation →escalation-human
Check-out Processing
BillingSystem.SettleFolio for reservation.confirmationNumber
PMS.RecordCheckOut for reservation.confirmationNumber
DigitalKeySystem.DeactivateKey for room.number
CRM.UpdateGuestProfile with check-out timestamp and stay summary
- Guest has feedback or further questions feedback →post-stay-feedback
- Guest is satisfied and done satisfied →resolution-checkout-complete
Post-Stay Feedback
CRM.LogFeedback for guest.loyaltyId and reservation.confirmationNumber
- Feedback logged, guest is done →resolution-checkout-complete
- Guest raises a serious concern or complaint serious-complaint →escalation-human
Outside Hours — Self-Service or On-Call
PMS.CheckSelfServiceKioskAvailability
- Self-service kiosk is available and guest agrees kiosk-ready DigitalKeySystem.IssueKioskKey for reservation.confirmationNumber →room-assignment-confirm
- Guest prefers on-call staff or kiosk is unavailable →escalation-human
Escalation to Human Agent
CRM.CreateUrgentCase for guest.fullName, reservation.confirmationNumber, and reason for escalation
PMS.FlagReservation with escalation status
Resolution — Check-in Complete
Resolution — Check-out Complete
Resolution — Pending Notification

Cancellation / Retention
Intent Capture
CRM.LookupAccount on customer.accountNumber
- Identity verified successfully verified →account-review
- Identity cannot be confirmed after two attempts →escalation-human
Account Review
CRM.GetAccountDetails to load account.planName, account.contractStatus, account.contractEndDate, account.tenure
BillingSystem.GetBalance to load account.outstandingBalance and account.paymentHistory
ContractManagement.GetETF to load account.etfAmount
- Customer cites cost or billing concern reason-cost →retention-offer
- Customer cites service quality or technical issue reason-service →complaint-resolution
- Customer cites competitor offer or plan comparison reason-competitor →retention-offer
- Customer cites relocation or life change reason-life-change →retention-offer
- Customer gives no specific reason or says "just want to cancel" reason-firm →etf-disclosure-check
Complaint Resolution
CRM.CreateCase tagged service-complaint, linked to customer.accountNumber
- Complaint is resolvable and customer is receptive →retention-offer
- Complaint is complex or customer remains frustrated unresolved_complaint →escalation-human
ETF Disclosure Check
ContractManagement.GetETF to confirm account.etfAmount and account.contractStatus
- Account is within contract and ETF applies etf_applies →etf-disclosure
- Account is out of contract or no ETF no_etf →retention-offer
ETF Disclosure
- Customer acknowledges ETF and still wants to proceed etf-acknowledged →retention-offer
- Customer disputes the ETF amount or asks for a waiver etf-disputed →escalation-human
- Customer is surprised and wants time to think etf-reconsidering →retention-offer
Retention Offer
RetentionOfferEngine.GetEligibleOffers for customer.accountNumber, filtered by cancellation.reason, account.tenure, account.paymentHistory
- Suitable offer identified offer_ready →present-offer
- No eligible offers found no_offer →outstanding-balance-check
Present Offer
- Customer accepts the offer offer-accepted →offer-acceptance
- Customer asks for something better or different offer-counter →secondary-offer
- Customer declines and still wants to cancel offer-declined →outstanding-balance-check
Secondary Offer
RetentionOfferEngine.GetEligibleOffers ranked by value, excluding retention.offerId already presented
- A second distinct offer exists second_offer_available →present-second-offer
- No further offers available no_further_offers →outstanding-balance-check
Present Second Offer
- Customer accepts offer-accepted →offer-acceptance
- Customer declines or remains firm offer-declined →outstanding-balance-check
Offer Acceptance
RetentionOfferEngine.ApplyOffer for customer.accountNumber with retention.offerId
CRM.UpdateAccount with retention outcome and retention.offerId applied
Twilio.SendSMS to customer.phone confirming offer details and retention.offerExpiry
Twilio.SendEmail to customer.email with full offer confirmation and updated plan summary
Outstanding Balance Check
BillingSystem.GetBalance to confirm account.outstandingBalance
- Outstanding balance exists on account balance_owing →balance-disclosure
- No outstanding balance balance_clear →process-cancellation
Balance Disclosure
- Customer wants to discuss payment or sort balance first balance-resolve →escalation-human
- Customer acknowledges and confirms they want to proceed with cancellation balance-acknowledged →process-cancellation
- Customer becomes frustrated or disputes the balance balance-disputed →escalation-human
Process Cancellation
CRM.InitiateCancellation for customer.accountNumber
BillingSystem.CalculateFinalBill to return transaction.finalBillDate and any remaining charges
ContractManagement.ApplyETF if etf_applies is set on this session
CRM.UpdateAccount with cancellation status and reason cancellation.reason
- ETF applies on this account etf_applies →cancellation-confirmation-etf
- No ETF on this account no_etf →cancellation-confirmation-clean
Cancellation Confirmation — ETF
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, account.etfAmount, and balance summary
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Cancellation Confirmation — Clean
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, and any final balance details
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to customer.accountNumber
CRM.AddNote with full session summary: cancellation.reason, offers presented, ETF status, balance status
Twilio.SendSMS to customer.phone: "We're connecting you with a specialist who can assist further."

Booking Cancellation / Refund Request
Identity Verification
CRM.LookupCustomer using customer.fullName and customer.email or customer.phone
- Customer record found and details match confirmed →booking-lookup
- Details provided do not match any record unrecognized →reverify-identity
- Customer is unable or unwilling to provide verification details refused →escalation-human
Re-verify Identity
CRM.LookupCustomer retry with alternate details
- Match found on second attempt confirmed →booking-lookup
- Still no match after second attempt unrecognized →escalation-human
Booking Lookup
ReservationManagement.GetBooking using booking.id
- Booking found and active confirmed →cancellation-policy-check
- Booking not found or ID invalid not_found →escalation-human
- Booking already cancelled already_cancelled →refund-status-check
Cancellation Policy Check
PolicyRulesEngine.GetCancellationPolicy for booking.id and booking.rateClass
- Booking is within the free-cancellation window free_cancel →confirm-cancellation-intent
- Booking is outside the free-cancellation window and fees apply fees_apply →outside-window-advisory
- Booking was made through a third-party OTA ota_booking →ota-redirect
Confirm Cancellation Intent
- Customer provides cancellation reason and confirms they want to proceed confirmed →process-cancellation
- Customer wants to change dates instead of cancelling date_change →escalation-human
- Customer is unsure and wants time to decide undecided →send-policy-summary
Send Policy Summary
NotificationService.SendEmail to customer.email with cancellation policy summary and free-cancellation deadline for booking.id
- Customer returns and confirms cancellation confirmed →process-cancellation
- Customer does not respond within 24 hours →escalation-human
Outside Window Advisory
kb.cancellation-policy — check fee waiver eligibility and alternative options for booking.rateClass
- Customer accepts the fee and wants to cancel accepted_fee →process-cancellation
- Customer wants to apply for a travel credit instead credit_preferred →process-travel-credit
- Customer cites extenuating circumstances such as medical or bereavement extenuating →extenuating-circumstances-review
- Customer disputes the fee and demands a waiver beyond advisory authority disputes_fee →escalation-human
Extenuating Circumstances Review
CRM.CreateCase tagged exception-review, linked to booking.id, reason: cancellation.reason
- Customer agrees to submit documentation doc_provided →flag-for-exception-review
- Customer cannot or will not provide documentation no_doc →escalation-human
Flag for Exception Review
CRM.UpdateCase with exception.documentType and submitted evidence
NotificationService.SendEmail to customer.email confirming exception review has been opened with case reference
- Exception review is opened and customer is notified →resolution-confirmation
Process Cancellation
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.InitiateRefund for refund.amount to booking.paymentMethod
CRM.UpdateRecord with cancellation details for customer.fullName
- Cancellation and refund initiated successfully success →send-confirmation
- System error prevents processing system_error →escalation-human
Process Travel Credit
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.IssueTravelCredit for refund.creditValue linked to customer.email
CRM.UpdateRecord with credit issuance details
- Credit issued successfully success →send-confirmation
- System error during credit issuance system_error →escalation-human
Send Confirmation
NotificationService.SendEmail to customer.email with cancellation confirmation, refund.amount or refund.creditValue, and refund.timeline
- Confirmation sent successfully →resolution-confirmation
Refund Status Check
PaymentProcessor.GetRefundStatus for refund.transactionId
- Refund has been issued and should have been received issued →refund-already-issued
- Refund is still processing processing →advise-refund-in-progress
- No refund record found not_found →escalation-human
Refund Already Issued
- Customer confirms refund has now been received confirmed →resolution-confirmation
- Customer still has not received the refund after the expected window not_received →escalation-finance
Advise Refund In Progress
NotificationService.SendEmail to customer.email with refund status and refund.transactionId
- Customer is satisfied and no further action needed →resolution-confirmation
- Customer requests further escalation escalation_requested →escalation-finance
OTA Redirect
kb.ota-partner-contacts — retrieve contact instructions and cancellation process for booking.otaSource
NotificationService.SendEmail to customer.email with OTA redirect instructions and booking reference details
- Customer acknowledges and will contact OTA directly →resolution-confirmation
- Customer is frustrated and requests direct escalation escalation_requested →escalation-human
Escalation to Finance Team
CRM.CreateCase priority: high, tagged refund-not-received, linked to refund.transactionId
NotificationService.NotifyTeam to #finance-escalations with customer.fullName, booking.id, refund.amount, and refund.transactionId
→resolution-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to booking.id
NotificationService.NotifyTeam to #reservations-support with customer.fullName, booking.id, and case summary
Resolution Confirmation

Beneficiary / Policy Detail Update
Intake and Change Request
CRM.LookupPolicy using customer.fullName and customer.policyNumber
- Policy record found, proceed to verification →identity-verification
- Policy record not found or mismatch →policy-not-found
Policy Not Found
- Customer provides corrected details CRM.LookupPolicy retry →identity-verification
- Customer cannot locate their policy number →escalation-human
Identity Verification
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified on first or second attempt verified →change-type-collection
- First attempt fails, prompt retry retry →identity-retry
- Second attempt fails identity_failed →identity-lockout
Identity Retry
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified verified →change-type-collection
- Second attempt also fails identity_failed →identity-lockout
Identity Lockout
CRM.LogEvent tag: identity-verification-failure, policy: customer.policyNumber
CRM.CreateCase priority: high, tag: id-lockout-policy-change
- Customer requests written instructions CRM.SendEmail template: id-lockout-instructions to customer.email →escalation-human
- Customer declines →escalation-human
Change Type Collection
- Customer wants to update a beneficiary beneficiary-change →beneficiary-detail-collection
- Customer wants to update address, name, or contact info contact-or-name-change →contact-detail-collection
- Customer mentions a death in relation to the beneficiary change death-related →bereavement-sensitive-path
- Request involves a disputed beneficiary or legal document such as a court order legal-dispute →escalation-human
Beneficiary Detail Collection
PolicyAdmin.GetCurrentBeneficiary for customer.policyNumber
- New beneficiary details collected, no death involved →form-requirement-check
- Customer indicates they are removing a beneficiary following a death →bereavement-sensitive-path
Bereavement Sensitive Path
CRM.FlagCase tag: bereavement-sensitivity, policy: customer.policyNumber
- Customer has or will submit death certificate →form-requirement-check
- Customer cannot provide documentation at this time CRM.CreateFollowUpTask deadline: 30-days, policy: customer.policyNumber →pending-form-followup
Contact Detail Collection
PolicyAdmin.GetPolicyDetails for customer.policyNumber
- Customer provides the new detail clearly →direct-update-check
- Customer is changing their legal name, supporting documentation may be required →form-requirement-check
Direct Update Check
- Simple contact update, no form required no_form_needed →apply-direct-update
- Legal name or document-required change form_required →form-requirement-check
Form Requirement Check
kb.policy-change-requirements — check whether a wet signature, e-signature form, or supporting document is legally required for policy.changeType
- E-signature form is sufficient ESignature.SendForm template: change-of-beneficiary to customer.email →esignature-pending
- Wet signature or physical document required →wet-signature-required
- No form required, change can be processed directly →apply-direct-update
E-Signature Pending
ESignature.SendForm to customer.email, linked to customer.policyNumber
CRM.CreateFollowUpTask tag: esignature-pending, deadline: 7-days, policy: customer.policyNumber
- Customer confirms they received and completed the form →apply-direct-update
- Customer cannot complete the form now →pending-form-followup
- No response or form not returned within deadline CRM.EscalateTask →escalation-human
Wet Signature Required
DocumentManagement.GenerateForm template: beneficiary-change-form, policy: customer.policyNumber
CRM.SendEmail template: wet-signature-instructions, attachment: change-form to customer.email
CRM.CreateFollowUpTask tag: wet-signature-pending, deadline: 30-days, policy: customer.policyNumber
- Customer acknowledges and will return the form →pending-form-followup
- Customer cannot return the form within the deadline →pending-form-followup
Pending Form Follow-up
CRM.CreateFollowUpTask tag: pending-change-form, deadline: 30-days, policy: customer.policyNumber
CRM.SendEmail template: pending-change-reminder to customer.email
- Customer has additional questions →escalation-human
- Customer is satisfied →resolution-confirmed
Apply Direct Update
- Customer confirms the details are correct →save-policy-update
- Customer requests a correction →change-type-collection
Save Policy Update
PolicyAdmin.SaveChange policy: customer.policyNumber, change: update.newDetail
CRM.UpdateRecord policy: customer.policyNumber, tag: policy-detail-updated
DocumentManagement.LogChange policy: customer.policyNumber, agent: Insurance Support Agent
- Save successful save_success →confirmation-and-close
- System unavailable or save error system_down →system-unavailable
System Unavailable
CRM.CreateManualLog details: update.newDetail, policy: customer.policyNumber, tag: manual-change-request
CRM.GenerateCaseReference -> case.referenceNumber
CRM.ScheduleCallback within: 1-business-day, contact: customer.phone
→resolution-confirmed
Confirmation and Close
CRM.SendEmail template: policy-change-confirmation, policy: customer.policyNumber to customer.email
- Customer has another request →change-type-collection
- Customer is done →resolution-confirmed
Resolution Confirmed
CRM.CloseCase policy: customer.policyNumber, status: resolved
Escalation to Human Agent
CRM.CreateCase priority: high, tag: policy-change-escalation, policy: customer.policyNumber
CRM.NotifyTeam channel: #policy-ops-escalations, details: customer.policyNumber

Appointment Reschedule / Cancellation
Intake and Identity Verification
EHR.LookupPatient using patient.fullName and patient.dateOfBirth to retrieve the patient record and patient.id.
EHR.VerifyIdentity against patient.id and patient.accountNumber.
- Identity verified successfully verified →confirm-appointment-details
- Identity cannot be verified after two attempts unverified →identity-failure
- Patient reports an urgent symptom or medical concern during intake urgent_concern →clinical-triage-escalation
Identity Verification Failure
CRM.LogInteraction tagged identity-verification-failure, linked to patient.id
- Patient accepts and ends the call accepted →resolution-no-change
- Patient escalates or disputes the inability to verify frustrated →escalation-human
Confirm Appointment Details
EHR.GetAppointment for patient.id to retrieve appointment.date, appointment.provider, and appointment.id.
- Patient wants to reschedule reschedule →reschedule-reason
- Patient wants to cancel cancel →cancellation-reason
- Patient is vague or unsure unclear →clarify-intent
- Patient mentions a new or worsening symptom as the reason urgent_concern →clinical-triage-escalation
Clarify Intent
- Patient confirms reschedule reschedule →reschedule-reason
- Patient confirms cancellation cancel →cancellation-reason
- Patient mentions a symptom or health concern urgent_concern →clinical-triage-escalation
Reschedule — Reason Capture
CRM.LogInteraction tagged reschedule-request, linked to appointment.id
- Patient provides a reason and preferred window has_preference →check-slot-availability
- Patient has no preference and any slot works no_preference →check-slot-availability
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Check Slot Availability
SchedulingPortal.GetAvailableSlots for appointment.provider within the patient's preferred window.
- Slots available with the same provider within the acceptable window slots_found →offer-new-slot
- No slots available with the same provider within the acceptable window no_slots →no-availability-options
- New slot requires eligibility check due to insurance or date change eligibility_check_needed →insurance-eligibility-check
Offer New Slot
SchedulingPortal.PresentSlots to surface top three available options.
- Patient selects a slot slot_selected SchedulingPortal.BookAppointment →confirm-reschedule
- Patient wants to see more options more_options SchedulingPortal.GetAvailableSlots extended range →offer-new-slot
- Patient changes mind and wants to cancel instead cancel →cancellation-reason
- Patient cannot find a suitable time no_match →no-availability-options
No Availability Options
- Patient accepts the next available slot with the same provider same_provider SchedulingPortal.BookAppointment →confirm-reschedule
- Patient accepts a different provider different_provider SchedulingPortal.GetAvailableSlots alternative providers →offer-new-slot
- Patient wants to join the waitlist waitlist SchedulingPortal.AddToWaitlist for patient.id and appointment.provider →waitlist-confirmed
- Patient is dissatisfied or requests provider callback frustrated →escalation-human
Insurance Eligibility Check
EligibilityVerification.CheckCoverage using patient.id and insurance.status for newAppointment.date.
- Coverage confirmed for the new date eligible →offer-new-slot
- Coverage issue detected — patient may owe out of pocket ineligible →insurance-issue-flag
- Eligibility check inconclusive inconclusive →escalation-human
Insurance Issue Flag
- Patient wants to proceed anyway proceed →offer-new-slot
- Patient wants to speak with billing billing →escalation-human
- Patient decides to cancel instead cancel →cancellation-reason
Cancellation — Reason Capture
EHR.CheckCancellationWindow for appointment.id to retrieve appointment.cancellationWindow.
CRM.LogInteraction tagged cancellation-request, linked to appointment.id
- Within the cancellation window, no fee applicable no_fee →process-cancellation
- Inside the late-cancellation or no-show fee window fee_applicable →late-cancellation-notice
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Late Cancellation Notice
kb.cancellation-fee-policy — reference the applicable fee schedule and patient notification requirements.
- Patient acknowledges and confirms cancellation confirmed →process-cancellation
- Patient disputes the fee or requests a waiver disputes_fee →escalation-human
- Patient decides to keep the appointment instead keep_appointment →resolution-no-change
Process Cancellation
EHR.CancelAppointment for appointment.id, recording reason.change.
SchedulingPortal.ReleaseSlot for appointment.id.
CRM.UpdateRecord tagged cancelled, linked to patient.id and appointment.id.
Twilio.SendNotification to patient.preferredContact with cancellation confirmation referencing appointment.date and appointment.provider.
- Confirmation sent and patient has no further questions →resolution-complete
- Patient wants to reschedule after all reschedule →reschedule-reason
Confirm Reschedule
EHR.UpdateAppointment replacing appointment.id with new slot details: newAppointment.date, newAppointment.time, newAppointment.provider.
CRM.UpdateRecord tagged rescheduled, linked to patient.id.
Twilio.SendNotification to patient.preferredContact with reschedule confirmation including newAppointment.date, newAppointment.time, and newAppointment.provider.
- Patient confirms receipt and has no further questions →resolution-complete
- Patient has an additional question or concern follow_up →resolution-complete
Waitlist Confirmed
CRM.UpdateRecord tagged waitlisted, linked to patient.id and appointment.provider.
- Patient has no further needs →resolution-complete
- Patient wants to also reschedule with a different provider in the meantime reschedule →no-availability-options
Clinical Triage Escalation
CRM.LogInteraction tagged clinical-concern, priority: high, linked to patient.id and appointment.id.
EHR.FlagForTriage for patient.id with note: patient reported symptom concern during scheduling interaction.
- Triage nurse or clinical staff available to take the transfer →escalation-human
- After-hours: no clinical staff available Twilio.SendNotification urgent triage message to on-call line →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, linked to patient.id and appointment.id, tagged for appropriate queue based on reason.
CRM.LogInteraction with full context: appointment.date, appointment.provider, reason.change, escalation trigger.
Resolution — No Change Made
CRM.LogInteraction tagged no-change, linked to patient.id.
Resolution — Complete
CRM.LogInteraction tagged resolved, linked to patient.id.
- Patient has no further needs no_further_needs →session-closed
- Patient has another request another_request →intake-and-verification
Session Closed
CRM.CloseCase linked to patient.id.

Size / Fit / Product Recommendation
Opening
CRM.LookupCustomer by customer.id or session identity to pre-load customer.purchaseHistory and any saved preferences.
- Customer wants sizing or fit help for a specific item size-help →collect-item-and-measurements
- Customer is comparing two or more products compare →product-comparison
- Customer is unsure what they need / browsing browsing →discover-needs
- Customer mentions a previous bad fit or return past-issue →review-past-purchase
Collect Item and Measurements
ProductCatalog.GetProduct to load product.category, product.attributes, and product.sizeGuide for the item the customer mentioned.
- Customer provides measurements has-measurements →run-size-lookup
- Customer doesn't know measurements or is unsure no-measurements →guide-self-measure
- Customer mentions they are between sizes between-sizes →between-sizes-advice
Guide Self-Measure
kb.self-measure-guide — retrieve step-by-step measurement instructions relevant to product.category
- Customer provides measurements after guide has-measurements →run-size-lookup
- Customer still can't measure or prefers not to skip-measure →recommend-size-up
- Customer wants to escalate or speaks with frustration frustrated →escalation-specialist
Between Sizes Advice
kb.sizing-policy — check brand fit philosophy (relaxed, true-to-size, runs small/large) for product.id
- Customer prefers snug fit snug →run-size-lookup
- Customer prefers relaxed fit relaxed →run-size-lookup
- Customer is still unsure unsure →recommend-size-up
Recommend Size Up
→run-size-lookup
Run Size Lookup
SizingGuideDB.MatchSize using customer.measurements, customer.preferences.fitStyle, and product.sizeGuide to generate recommendation.primary.
InventoryManagement.CheckStock for recommendation.primary in product.id to confirm product.stockStatus and product.availableSizes.
- Size is in stock in-stock →present-recommendation
- Size is out of stock out-of-stock →out-of-stock-handling
- Lookup error or ambiguous result lookup-error →escalation-specialist
Present Recommendation
- Customer is ready to add to cart ready-to-buy →add-to-cart
- Customer wants to see an alternative or compare wants-options →present-alternate
- Customer has more questions more-questions →answer-questions
- Customer expresses strong uncertainty or frustration frustrated →escalation-specialist
Present Alternate
ProductCatalog.GetAlternates using product.id, customer.preferences.budget, and customer.preferences.fitStyle to generate recommendation.alternate.
InventoryManagement.CheckStock for recommendation.alternate.
- Customer selects primary recommendation chose-primary →add-to-cart
- Customer selects alternate recommendation chose-alternate →add-to-cart
- Customer wants more comparison detail compare-detail →product-comparison
- Customer is stuck or frustrated frustrated →escalation-specialist
Product Comparison
ProductCatalog.GetProduct for each product the customer is comparing, loading product.attributes for both.
kb.product-comparison-guides — retrieve any curated head-to-head notes for these items.
- Customer is ready to choose and buy ready-to-buy →add-to-cart
- Customer wants sizing checked on one of the options size-help →collect-item-and-measurements
- Customer still undecided still-undecided →present-alternate
- Customer frustrated or overwhelmed frustrated →escalation-specialist
Discover Needs
- Customer provides enough detail to proceed sufficient-detail →collect-item-and-measurements
- Customer provides partial detail partial-detail →collect-item-and-measurements
- Customer is very unclear or disengaged disengaged →escalation-specialist
Review Past Purchase
CRM.GetPurchaseHistory for customer.id to retrieve customer.purchaseHistory including prior sizes, items, and any returns or exchanges.
kb.return-reason-codes — look up fit-related return notes linked to customer.id if available.
- Customer is happy with the adjusted recommendation accepts-advice →run-size-lookup
- Customer wants to explore a different product entirely different-product →discover-needs
- Customer is frustrated about the past experience frustrated →escalation-specialist
Out-of-Stock Handling
InventoryManagement.GetAvailableAlternates for product.id filtered by recommendation.primary size and customer.preferences.budget to find nearest in-stock alternative.
InventoryManagement.GetRestockDate for recommendation.primary in product.id if available.
- Customer wants the waitlist option wants-waitlist →join-waitlist
- Customer wants the in-stock alternative wants-alternate →present-alternate
- Customer wants to check other sizes check-other-sizes →run-size-lookup
- Customer frustrated or wants to leave frustrated →escalation-specialist
Join Waitlist
InventoryManagement.AddToWaitlist for customer.email on product.id in size recommendation.primary.
- Customer wants to keep browsing keep-browsing →discover-needs
- Customer is done done →resolution
- Customer wants to add the alternate to cart instead wants-alternate →add-to-cart
Answer Questions
kb.product-faq — retrieve relevant FAQs for product.id covering fabric, care, returns, sizing tolerances, and fit philosophy.
- Customer asks about fabric, care, or material material-question →answer-questions
- Customer asks about returns or exchanges returns-question →answer-questions
- Customer is satisfied and ready to buy ready-to-buy →add-to-cart
- Customer wants a different recommendation different-option →present-alternate
- Customer frustrated or escalating frustrated →escalation-specialist
Add to Cart
EcommerceCart.AddItem with product.id, recommendation.primary, and customer.id to add the confirmed selection.
- Customer wants to keep shopping keep-shopping →discover-needs
- Customer is done and happy done →resolution
- Customer has a cart or checkout issue cart-issue →escalation-specialist
Escalation to Specialist
CRM.CreateCase for customer.id tagged fit-escalation, logging all collected preferences, measurements, and conversation context.
Resolution

Roaming / International Add-on Request
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountNumber
CRM.VerifyPIN against customer.pin
- Identity verified successfully verified →account-review
- PIN incorrect on first attempt — prompt once more →identity-retry
- Account not found or unresolvable →escalation-human
Identity Retry
CRM.VerifyPIN against customer.pin
- Identity verified on second attempt verified →account-review
- Second attempt fails failed →escalation-human
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.outstandingBalance, customer.accountFlags
- Account flagged for fraud or suspension flagged →escalation-human
- Account has a past-due balance outstanding pastdue →past-due-balance
- Account in good standing, no flags clear →trip-details
Past-Due Balance
- Customer agrees to pay →payment-collection
- Customer declines or requests a payment arrangement →escalation-human
Payment Collection
PaymentProcessing.InitiatePayment for customer.outstandingBalance on customer.accountNumber
- Payment successful payment_cleared CRM.UpdateAccountStatus →trip-details
- Payment declined or failed payment_failed →escalation-human
Trip Details
CRM.SetTripContext with trip.destinationCountry, trip.departureDate, trip.returnDate
- Travel dates are upcoming or current and destination captured →device-check
- Customer is already abroad and reports unexpected charges →already-abroad
Device Check
DeviceCompatibilityChecker.Assess using device.imei, device.model, device.simStatus for trip.destinationCountry
CarrierInternationalAPI.CheckPartnerCoverage for trip.destinationCountry
- Device is compatible with international bands and destination network device_ok →addon-selection
- Device is CDMA-only or SIM-locked for destination device_incompatible →device-incompatibility
- Coverage unavailable in destination through partner network no_coverage →escalation-human
Device Incompatibility
- Customer wants international SIM option →sim-rental-offer
- Customer wants rental device option →sim-rental-offer
- Customer declines alternatives and wants to explore further →escalation-human
SIM / Rental Offer
CRM.CreateCase tagged device-compatibility-roaming, linked to customer.accountNumber
→escalation-human
Add-on Selection
AddonCatalog.GetEligibleAddons for customer.currentPlan, trip.destinationCountry, trip.departureDate, trip.returnDate
kb.roaming-addon-policy — review eligible plans, pricing tiers, promotional offers, and usage caps for trip.destinationCountry
- Customer selects a preferred add-on →pricing-confirmation
- Customer disputes the pricing or expected charges →pricing-dispute
- Customer requests a plan not currently eligible for their account →escalation-human
Pricing Confirmation
- Customer confirms selection confirmed →addon-activation
- Customer wants to change selection →addon-selection
- Customer wants to cancel the request →resolution-no-change
Add-on Activation
BillingPlatform.ActivateAddon with addon.name, addon.effectiveDate on customer.accountNumber
CRM.LogInteraction with add-on details, trip.destinationCountry, trip.departureDate, trip.returnDate
BillingPlatform.SendConfirmationEmail to customer.email with addon.name, addon.price, addon.usageCap, addon.effectiveDate
- Customer has additional questions or requests →trip-details
- Customer is satisfied, no further needs →resolution-complete
Already Abroad
BillingPlatform.GetRecentCharges for customer.accountNumber — review charge.amount for pay-per-use international activity
kb.roaming-retroactive-credit-policy — check eligibility window and thresholds for credit.eligibility
- Customer has been incurring pay-per-use charges within the retroactive credit window credit_eligible →retroactive-credit-review
- Charges are outside the policy window or ineligible for credit →addon-selection
- Customer is disputing a large existing international charge →charge-dispute
Retroactive Credit Review
- Credit is within agent approval threshold and eligible credit_approved →apply-retroactive-credit
- Credit amount exceeds agent threshold or policy bars it credit_escalate →escalation-human
Apply Retroactive Credit
BillingPlatform.ApplyCredit of credit.amount to customer.accountNumber tagged retroactive-roaming-adjustment
CRM.LogInteraction with credit amount, reason, and linked charges
→addon-selection
Charge Dispute
BillingPlatform.GetChargeDetail for charge.disputeAmount on customer.accountNumber
kb.roaming-dispute-policy — review dispute thresholds and agent authorization limits
- Dispute amount is within agent adjustment authority within_threshold →pricing-dispute
- Dispute amount exceeds agent authority exceeds_threshold →escalation-human
Pricing Dispute
kb.roaming-addon-policy — check active promotional offers, loyalty discounts, and goodwill adjustment eligibility
- A valid promotion or discount applies and resolves the concern promotion_found BillingPlatform.ApplyPromotion →addon-selection
- No promotion available but a courtesy adjustment is warranted and within threshold courtesy_ok BillingPlatform.ApplyCredit →addon-selection
- No resolution possible within agent authority no_resolution →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged roaming-escalation, linked to customer.accountNumber
CRM.LogInteraction with full context: trip.destinationCountry, customer.currentPlan, charge.disputeAmount, customer.accountFlags
Resolution — Complete
CRM.LogInteraction with resolved add-on, addon.effectiveDate, trip.destinationCountry, trip.returnDate
Resolution — No Change
CRM.LogInteraction tagged no-change-requested, customer.accountNumber

Product Availability / Stock Inquiry
Gather Product Details
- Customer provides a clear product name or SKU product-identified →gather-variant-details
- Customer gives a vague or partial description product-unclear →clarify-product
- Customer is already frustrated or mentions previous failed lookup frustrated →escalation-human
Clarify Product
- Customer provides enough detail to identify the product product-identified →gather-variant-details
- Customer still cannot identify the product product-unclear ProductCatalog.Search to surface closest matches →suggest-alternatives
- Customer expresses frustration frustrated →escalation-human
Gather Variant Details
- Customer provides variant and prefers in-store pickup in-store →gather-location
- Customer provides variant and prefers online online →check-online-inventory
- Customer has no variant preference and prefers in-store in-store →gather-location
- Customer has no variant preference and prefers online online →check-online-inventory
- Customer is flexible on channel flexible →check-online-inventory
Gather Location
- Customer provides zip code or store name location-provided StoreLocator.FindNearestStores using customer.zipCode →check-store-inventory
- Customer cannot provide location location-unknown →check-online-inventory
- Customer expresses frustration frustrated →escalation-human
Check Online Inventory
InventoryManagement.GetOnlineStock for product.sku, variant product.variant.size, product.variant.color
- Online stock confirmed available in-stock →confirm-online-availability
- Online stock is zero or unavailable out-of-stock →check-store-inventory
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Check Store Inventory
InventoryManagement.GetStoreStock for product.sku at customer.preferredStore, variant product.variant.size, product.variant.color
- Stock confirmed at preferred or nearest store in-stock →confirm-store-availability
- In-stock only at a distant store distant-stock →offer-ship-or-transfer
- Out of stock at all nearby stores and online out-of-stock →check-discontinued
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Confirm Online Availability
CRM.LogInteraction tagged availability-confirmed-online, linked to product.sku
- Customer wants a link SendEmail or SendSMS with product URL to customer.email or customer.phone →resolution
- Customer is satisfied and needs nothing else confirmed →resolution
- Customer mentions price match, special hold, or bulk quantity special-request →escalation-human
Confirm Store Availability
CRM.LogInteraction tagged availability-confirmed-store, linked to product.sku
- Customer wants to reserve the item wants-reservation InventoryManagement.PlaceHold for product.sku at store.name →reservation-confirmed
- Customer is satisfied and will go to the store confirmed →resolution
- Customer requests price match, special hold, or bulk quantity special-request →escalation-human
- Customer expresses frustration frustrated →escalation-human
Reservation Confirmed
CRM.LogInteraction tagged reservation-placed, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Offer Ship or Transfer
InventoryManagement.CheckShipFromStore for product.sku at store.name
InventoryManagement.CheckTransferEligibility for product.sku
- Ship-from-store is available and customer agrees ship-available InventoryManagement.InitiateShipFromStore →ship-from-store-confirmed
- Transfer to closer store is available and customer prefers pickup transfer-available InventoryManagement.InitiateTransfer →transfer-initiated
- Neither option is available or customer declines both declined →check-discontinued
- Customer requests special handling or bulk quantity special-request →escalation-human
Ship From Store Confirmed
CRM.LogInteraction tagged ship-from-store-initiated, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Transfer Initiated
CRM.UpdateContactInfo with customer.email, customer.phone
CRM.LogInteraction tagged transfer-requested, linked to product.sku
- Customer provides contact info contact-provided →resolution
- Customer declines contact info declined →resolution
Check Discontinued
ProductCatalog.CheckDiscontinuedStatus for product.sku
- Product is confirmed discontinued discontinued →product-discontinued
- Product is not discontinued but broadly out of stock out-of-stock →offer-restock-notification
Product Discontinued
ProductCatalog.GetSimilarItems for product.sku
- Customer wants to see alternatives wants-alternatives →suggest-alternatives
- Customer does not want alternatives declined →resolution
- Customer is upset about the discontinuation frustrated →escalation-human
Offer Restock Notification
- Customer agrees to restock alert confirmed RestockNotification.Subscribe with product.sku, customer.email, customer.phone →restock-signup-confirmed
- Customer declines and wants to see similar items wants-alternatives →suggest-alternatives
- Customer declines all options declined →resolution
Restock Signup Confirmed
CRM.LogInteraction tagged restock-alert-registered, linked to product.sku
- Customer has another question follow-up →gather-product-details
- Customer is satisfied confirmed →resolution
Suggest Alternatives
- Suitable alternatives found and customer is interested alternatives-found →present-alternatives
- No suitable alternatives found or customer declines no-match →resolution
- Customer expresses frustration or demands a manager frustrated →escalation-human
Present Alternatives
- Customer selects an alternative and wants to check availability selected →check-online-inventory
- Customer wants to know more about an alternative wants-details ProductCatalog.GetProductDetails →present-alternatives
- Customer declines all alternatives declined →resolution
- Customer expresses frustration frustrated →escalation-human
Inventory Lookup Failure
CRM.LogSystemError with lookup.errorCode, product.sku, tagged inventory-lookup-failure
- Customer is okay with the workaround confirmed →resolution
- Customer is frustrated or wants further help frustrated →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged availability-escalation, linked to product.sku, customer.name
CRM.LogInteraction tagged escalated-to-human
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to product.sku

Premium Payment / Billing Inquiry
Inbound Greeting
CRM.LookupCustomer on policy.number
- Policy number provided and record found →identity-verification
- Customer cannot locate policy number →identity-verification
- No response or line is silent →escalation-human
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob, customer.ssn_last4, or customer.passphrase
- Identity verified successfully verified →policy-overview
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer hesitant or asks why it is needed frustrated →verification-explain
Verification Explain
- Customer agrees and provides credentials →identity-verification
- Customer refuses to verify and wants to end call →escalation-human
Identity Failure
- Customer wants branch or written request information CRM.LogContactAttempt →escalation-human
- Customer agrees to end call CRM.LogContactAttempt →session-close
Policy Overview
PolicyManagement.GetPolicyDetails on policy.number
BillingLedger.GetCurrentBalance returning policy.premium_amount, policy.due_date, payment.outstanding_balance, payment.last_payment_date, payment.method_on_file
- Policy is active and in good standing active →billing-inquiry-triage
- Policy is in lapsed status lapsed →escalation-lapsed-policy
- Policy is cancellation-pending cancellation_pending →escalation-lapsed-policy
Billing Inquiry Triage
- Customer wants to make a payment now pay_now →process-payment
- Customer questions or disputes the premium amount dispute_amount →premium-explanation
- Customer reports a missed or failed payment missed_payment →missed-payment-review
- Customer asks about an upcoming renewal renewal_question →renewal-review
- Customer asks about an unexpected or unrecognized charge unexpected_charge →premium-explanation
- Customer wants to update payment method update_payment →update-payment-method
- Customer requests supervisor or escalation wants_supervisor →escalation-human
Premium Explanation
BillingLedger.GetChangeHistory on policy.number returning billing.recent_changes, billing.endorsements, billing.rate_adjustment_reason
kb.premium-rate-adjustment-policy — review applicable rate change rules and endorsement billing guidelines
- Change explained by endorsement or coverage adjustment CRM.LogExplanation →explanation-confirmed
- Change explained by annual rate adjustment CRM.LogExplanation →explanation-confirmed
- Change cannot be explained by visible account data unexplained_charge →escalation-human
Explanation Confirmed
- Customer accepts explanation and wants to pay now →process-payment
- Customer accepts explanation but has no payment due →confirmation-send
- Customer still disputes the explanation still_disputing →escalation-human
Missed Payment Review
kb.payment-plan-eligibility-policy — check grace period rules, payment plan thresholds, and eligibility criteria
- Account is within grace period and customer wants to pay now within_grace →process-payment
- Account is eligible for a payment plan payment_plan_eligible →payment-plan-setup
- Grace period has expired and policy is at risk grace_expired →escalation-lapsed-policy
Payment Plan Setup
kb.payment-plan-options — retrieve available installment schedules and terms
- Customer agrees to a plan and first payment is collected BillingLedger.EnrollPaymentPlan →confirmation-send
- Customer declines plan and wants to pay full balance now →process-payment
- Customer declines all options →escalation-human
Renewal Review
kb.renewal-billing-policy — review renewal terms, auto-pay rules, and advance payment options
- Customer wants to make an advance renewal payment →process-payment
- Customer has questions about coverage changes at renewal coverage_question →escalation-human
- Customer wants to update payment method before renewal →update-payment-method
- Customer is satisfied with the renewal information →confirmation-send
Update Payment Method
PaymentGateway.UpdatePaymentMethod with new details provided by customer
BillingLedger.ConfirmMethodUpdate on policy.number
- Payment method updated successfully method_updated →billing-inquiry-triage
- New payment method declined or invalid method_declined →payment-declined
Process Payment
PaymentGateway.ProcessPayment for payment.outstanding_balance on policy.number
- Payment approved and processed successfully payment_success →confirmation-send
- Payment method declined payment_declined →payment-declined
- Payment gateway timeout or system error system_error →escalation-human
Payment Declined
- Customer provides an alternate payment method →update-payment-method
- Customer wants to explore a payment plan →payment-plan-setup
- Customer wants to call back later CRM.LogDeclinedPayment CRM.SetFollowUpFlag →session-close
- Customer requests supervisor →escalation-human
Confirmation Send
Twilio.SendSMS to customer.phone with payment confirmation and payment.confirmation_number
CRM.SendConfirmationEmail to customer.email with policy status, payment amount, and next due date
CRM.LogInteraction with summary of inquiry type, actions taken, and outcome
- Confirmation sent and customer has no further questions →session-close
- Customer has an additional question additional_question →billing-inquiry-triage
Escalation — Lapsed or Cancellation-Pending Policy
CRM.LogEscalation tagged lapse-reinstatement, linked to policy.number
CRM.FlagForReinstatementReview on policy.number
- Transferring to reinstatement workflow →policy-reinstatement-workflow
- Customer disconnects before transfer CRM.LogContactAttempt →session-close
Escalation to Human Agent
CRM.LogEscalation with inquiry summary, policy.number, and reason for escalation
CRM.CreateCase priority: high, tagged billing-escalation, linked to policy.number
Session Close
- Customer has another question another_question →inbound-greeting
- Customer is done — closing interaction CRM.LogInteraction tagged session-complete

Plan Change / Upgrade Request
Identity Verification
CRM.LookupAccount using customer.accountNumber or customer.phone
- Account found and identity confirmed verified →account-review
- Account not found or customer cannot verify identity unverified →escalation-human
- Customer wants to browse plans before verifying intent_browse →plan-discovery
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.contractEndDate, customer.billingCycleDate, customer.deviceModel, customer.location
PlanCatalog.GetEligiblePlans for customer.accountNumber, customer.deviceModel, customer.location
- Plans retrieved successfully →plan-discovery
- No eligible plans returned or catalog error catalog_error →escalation-human
Plan Discovery
kb.plan-catalog — present eligible options with pricing, data allowances, speeds, and feature highlights relevant to customer.currentPlan
- Customer selects a specific plan plan_selected →plan-confirmation
- Customer asks about a promotion or discount promo_inquiry →promotion-check
- Customer's preferred plan is incompatible with device or location incompatible →compatibility-resolution
- Customer is unsure and wants time to decide undecided →follow-up-scheduling
- Customer mentions wanting to cancel instead cancel_intent →escalation-human
Promotion Check
PlanCatalog.GetPromotions for customer.accountNumber
kb.promotions-policy — verify eligibility criteria for active promotions against customer.currentPlan and customer.contractEndDate
- Valid promotion found and auto-applicable promo_valid CRM.ApplyPromotion with promotion.code →plan-confirmation
- Promotion exists but requires manager approval promo_needs_approval →promotion-approval
- No eligible promotion found →plan-confirmation
Promotion Approval
- Approved approved CRM.ApplyPromotion with promotion.code →plan-confirmation
- Rejected rejected Say: "I wasn't able to apply that specific promotion, but I can still offer you our best available rate." →plan-confirmation
- No response in 20 min →escalation-human
Compatibility Resolution
PlanCatalog.GetCompatibleAlternatives for customer.deviceModel, customer.location
kb.device-compatibility-policy — review alternatives against customer.currentPlan to identify closest feature and pricing match
- Compatible alternative found and customer accepts alt_accepted →plan-confirmation
- Customer rejects all alternatives and escalates frustration frustrated →escalation-human
- Customer wants to upgrade device to access desired plan device_upgrade_intent →escalation-human
Plan Confirmation
PlanCatalog.CalculateProration for customer.accountNumber, plan.selected, customer.billingCycleDate — return plan.proratedAmount, plan.effectiveDate, plan.monthlyCost
ContractDB.CheckContractTerms for customer.accountNumber, customer.contractEndDate — check for early change fee fee.earlyChange
- No contract fee applies and customer confirms confirmed →apply-plan-change
- Contract change fee applies →contract-fee-review
- Customer wants to reconsider or go back reconsider →plan-discovery
- Customer declines and threatens cancellation cancel_intent →escalation-human
Contract Fee Review
kb.contract-terms-policy — confirm fee calculation and waiver eligibility for customer.accountNumber
- Customer accepts fee and wants to proceed today fee_accepted →apply-plan-change
- Customer prefers a future effective date future_date →schedule-future-change
- Customer disputes the fee or feels it should be waived fee_dispute →escalation-human
- Customer wants to cancel instead of paying the fee cancel_intent →escalation-human
Schedule Future Change
BillingPlatform.SchedulePlanChange for customer.accountNumber, plan.selected, effective: customer.contractEndDate
CRM.UpdateAccountNotes with scheduled change details, case.id
- Change scheduled successfully →confirmation-notification
- Scheduling fails system_error →billing-system-error
Apply Plan Change
BillingPlatform.ApplyPlanChange for customer.accountNumber, plan.selected, effective: plan.effectiveDate, proration: plan.proratedAmount
- Plan change applied successfully →confirmation-notification
- System returns error on first attempt system_error BillingPlatform.RetryPlanChange →apply-plan-change-retry
- Customer threatens cancellation during wait cancel_intent →escalation-human
Apply Plan Change Retry
BillingPlatform.RetryPlanChange for customer.accountNumber, plan.selected
- Retry successful →confirmation-notification
- Retry also fails system_error_final →billing-system-error
Billing System Error
CRM.CreateCase priority: high, tagged: plan-change-system-error, linked to customer.accountNumber
CRM.UpdateAccountNotes with plan.selected, plan.monthlyCost, plan.effectiveDate, error details
NotificationService.SendEmail to customer.email confirming the logged request and manual resolution timeline
- Case logged and customer is satisfied satisfied →resolution
- Customer is frustrated and demands immediate resolution or escalation frustrated →escalation-human
Confirmation Notification
NotificationService.SendSMS to customer.phone with plan change summary, plan.selected, plan.effectiveDate, plan.monthlyCost
NotificationService.SendEmail to customer.email with full confirmation details and updated plan terms
CRM.UpdateAccountNotes with completed plan change, plan.selected, plan.effectiveDate
→resolution
Follow-up Scheduling
CRM.CreateFollowUpTask for customer.accountNumber, note: plans discussed, follow-up within 48 hours
CRM.UpdateAccountNotes with plan.selected, customer preference notes
- Follow-up scheduled successfully →resolution
- Customer decides to proceed after all plan_selected →plan-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: plan-change-escalation, linked to customer.accountNumber
Slack.Notify to #plan-change-escalations with customer.accountNumber, customer.currentPlan, plan.selected, escalation reason
Resolution

Patient Intake Pre-Visit
Pre-Visit Outreach
Twilio.SendSMS to patient.phone: "Hi patient.firstName, your appointment with appointment.provider is scheduled for appointment.date at appointment.time. Please complete your pre-visit intake at intake.linkUrl to help us serve you better. It takes about 5 minutes."
Twilio.SendEmail to patient.email with subject "Complete Your Pre-Visit Intake — appointment.date" and body including intake.linkUrl, appointment.provider, and appointment.time.
- Patient opens intake link and proceeds engaged →identity-verification
- Patient replies with an urgent symptom or distress signal urgent →escalation-human
- No response within 24 hours Twilio.SendSMS reminder to patient.phone →intake-reminder
- Patient replies they cannot access the portal access_issue →assisted-intake
Identity Verification
PatientPortal.VerifyIdentity using patient.firstName, patient.lastName, patient.dateOfBirth, patient.portalId
- Identity confirmed on first or second attempt identity_verified →demographics-and-insurance
- Identity cannot be verified after two attempts identity_failed →escalation-human
Demographics and Insurance
EHR.GetPatientRecord for chart.id — pre-populate name, address, phone, email, emergency contact
InsuranceEligibilityAPI.CheckEligibility using insurance.carrier, insurance.memberId, insurance.groupNumber
- All demographic and insurance fields confirmed, eligibility verified confirmed →health-history
- Insurance ID does not match eligibility records eligibility_mismatch →insurance-verification
- Patient updates contact or emergency contact details updated EHR.UpdatePatientRecord →health-history
Insurance Verification
PatientPortal.RequestInsuranceCardUpload for patient.portalId
- Patient re-enters corrected insurance details InsuranceEligibilityAPI.CheckEligibility →insurance-recheck
- Patient uploads insurance card photo EHR.FlagForManualVerification tagged insurance-review, linked to chart.id →health-history
- Patient is unable to provide insurance information EHR.FlagChart as insurance-unverified →health-history
Insurance Recheck
InsuranceEligibilityAPI.CheckEligibility using updated insurance.carrier, insurance.memberId, insurance.groupNumber
- Eligibility now confirmed eligibility_verified →health-history
- Still not matching after recheck eligibility_failed EHR.FlagForManualVerification tagged insurance-review →health-history
Health History
EHR.GetMedicationList for chart.id — display current medications on file
EHR.GetAllergyList for chart.id — display current allergies on file
- Patient confirms medications and allergies as accurate confirmed →reason-for-visit
- Patient disputes a listed medication medication_dispute EHR.FlagMedication as needs-review linked to medication.flagged →medications-flagged
- Patient disputes a listed allergy allergy_dispute EHR.FlagAllergy as needs-review linked to allergy.flagged →allergies-flagged
- Patient reports a new urgent symptom during review urgent →escalation-human
Medications Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes medication on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Allergies Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes allergy on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Reason for Visit
- Routine or previously known concern symptom.reported, no urgency flags routine →pharmacy-and-preferences
- Patient describes a new or worsening urgent symptom urgent →urgent-symptom-triage
- Patient indicates a mental health crisis or emergency crisis →escalation-human
Urgent Symptom Triage
kb.triage-guidelines — check symptom against urgency thresholds and same-day care criteria
CRM.CreateUrgentNote linked to chart.id and appointment.id, tagged triage-flagged
Twilio.SendSMS to patient.phone: "We've noted your symptom. Please call our clinic or visit urgent care. For emergencies, call 911."
- Patient acknowledges and will seek immediate care acknowledged AppointmentScheduling.FlagAppointment as triage-pending →intake-incomplete-flag
- Patient insists on continuing intake continues →pharmacy-and-preferences
Pharmacy and Preferences
EHR.GetPreferredPharmacy for chart.id — display pharmacy on file if available
- Patient confirms pharmacy on file confirmed →intake-complete
- Patient provides a new or updated pharmacy EHR.UpdatePreferredPharmacy for chart.id →intake-complete
Intake Complete
EHR.UpdateChartStatus for chart.id as intake-complete
CRM.LogInteraction for patient.portalId tagged pre-visit-intake-completed, linked to appointment.id
Twilio.SendSMS to patient.phone: "Your intake is complete — thank you, patient.firstName! We look forward to seeing you on appointment.date at appointment.time."
Twilio.SendEmail to patient.email with appointment summary and any flagged items note if applicable
AppointmentScheduling.NotifyCareTeam for appointment.id: "Intake complete. Chart chart.id ready for pre-visit review."
Intake Reminder
Twilio.SendSMS to patient.phone: "Hi patient.firstName, a reminder to complete your pre-visit intake before intake.cutoffTime: intake.linkUrl. It only takes a few minutes."
- Patient engages with intake link after reminder engaged →identity-verification
- Patient does not respond by cutoff window no_response EHR.FlagChart as intake-incomplete →intake-incomplete-flag
- Patient replies with an urgent concern urgent →escalation-human
Intake Incomplete Flag
EHR.UpdateChartStatus for chart.id as intake-incomplete
CRM.CreateTask assigned to front-desk, tagged collect-on-arrival, linked to appointment.id and chart.id
Twilio.SendEmail to front-desk team: "Patient patient.firstName patient.lastName (appointment.date, appointment.time) did not complete pre-visit intake. Please collect information on arrival."
Assisted Intake
→identity-verification
Escalation to Care Team
EHR.FlagChart for chart.id as escalation-required, tagged crisis-or-identity-failure
CRM.CreateUrgentCase priority: high, linked to patient.portalId and appointment.id, tagged patient-escalation
AppointmentScheduling.AlertClinicalStaff for appointment.id with escalation reason and chart.id
Twilio.SendSMS to patient.phone: "We want to make sure you get the right support. A member of our care team will reach out to you shortly. If this is an emergency, please call 911 now."

Order Status Inquiry
Greeting & Identity Verification
IdentityVerification.VerifyCustomer using customer.accountEmail and customer.name
- Identity verified, order number provided verified →order-lookup
- Customer cannot provide order number no_order_number →lookup-by-email
- Identity cannot be verified after two attempts →escalation-human
Order Lookup by Email or Name
OMS.LookupOrderByEmail using customer.accountEmail or customer.name
- Order found OMS.LookupOrderByEmail order_found →order-lookup
- Order still not found after email and name search not_found →order-not-found
Order Not Found
- Customer provides order number from confirmation email →order-lookup
- Customer has no confirmation email and order remains unresolved →escalation-human
Order Lookup & Status Check
OMS.GetOrderDetails using order.id and customer.accountEmail
- Order is still processing, has not shipped yet processing →order-still-processing
- Order has shipped, tracking number available shipped →retrieve-tracking
- Order shows as delivered in OMS delivered →delivered-not-received-check
Order Still Processing
- Customer is satisfied and has no further questions confirmed →resolution
- Customer wants to know if the ship date can be expedited expedite_request →escalation-human
- Customer wants to cancel the unshipped order cancel_request →escalation-human
Retrieve Tracking Data
CarrierAPI.GetTrackingStatus using carrier.trackingNumber
- Live tracking data returned, last scan within 48 hours tracking_current →communicate-status
- Tracking has not updated in more than 72 hours tracking_stale →stale-tracking
Communicate Status
- Customer is satisfied confirmed →resolution
- Customer has a concern about the delivery address or timing address_concern →escalation-human
Stale Tracking
kb.shipping-delay-policy — review thresholds for carrier claim eligibility and customer communication guidelines
- Within acceptable delay window, advise customer to wait within_window →stale-tracking-advisory
- Delay exceeds policy threshold, carrier claim warranted claim_warranted →escalation-human
Stale Tracking Advisory
- Customer is willing to wait confirmed →resolution
- Customer wants to escalate now escalate_now →escalation-human
Delivered But Not Received Check
- Customer confirms receipt confirmed →resolution
- Customer says package was not received not_received →lost-package-review
- Customer is unsure — may have been left with a neighbor or in a safe spot unsure →delivery-location-check
Delivery Location Check
- Customer finds the package confirmed →resolution
- Customer confirms the package is truly not there not_received →lost-package-review
Lost Package Review
OMS.FlagOrderLostPackage on order.id
CRM.CreateCase tagged lost-package, linked to order.id and carrier.trackingNumber
kb.lost-package-policy — review carrier liability window, replacement vs. refund eligibility, and documentation requirements
- Package confirmed lost or stolen, or customer is requesting refund or replacement →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged order-escalation, linked to order.id
CRM.LogInteractionSummary with customer.email, order.id, and current status context
Resolution
- Customer has another question another_question →greeting-and-identity
- Customer is done confirmed CRM.LogInteractionSummary with customer.email and order.id

Loyalty Tier / Points Inquiry
Identity Verification
IdentityVerification.LookupMember using member.id or member.email
- Member record found, proceed to secondary verification →secondary-verification
- Member record not found after two attempts →identity-failure
- Loyalty platform unavailable CaseManagement.LogInquiry →system-outage
Secondary Verification
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified successfully →account-overview
- Identity verification fails once →secondary-verification-retry
- Identity verification fails twice →identity-failure
Secondary Verification Retry
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified on retry →account-overview
- Identity fails again →identity-failure
Account Overview
LoyaltyPlatform.GetMemberProfile for member.id — retrieve member.currentTier, member.pointsBalance, member.pendingPoints, member.expiringPoints, member.expiryDate, member.tierQualifyingNights, member.tierThreshold, member.tierExpiryDate
CRM.UpdateLastContactDate for member.id
- Customer asks about tier status or how to reach the next tier tier-inquiry →tier-status
- Customer asks about a specific points discrepancy or missing points discrepancy →discrepancy-intake
- Customer is concerned about tier or points expiry expiry-concern →expiry-review
- Customer's question is fully answered satisfied →resolution-summary
- Customer asks about points earning or redemption history history-inquiry →points-history
Tier Status
kb.loyalty-tier-thresholds — retrieve qualification criteria, benefits, and upgrade requirements for member.currentTier and the next tier
- Customer wants to know about tier benefits →tier-status-benefits
- Customer is upset that they are close but won't reach next tier frustrated →tier-goodwill-check
- Customer is satisfied with the information satisfied →resolution-summary
Tier Status Benefits
kb.loyalty-tier-benefits — retrieve current and next-tier benefit details
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Tier Goodwill Check
- Goodwill extension is within policy and applied LoyaltyPlatform.ApplyGoodwillExtension →goodwill-confirmation
- Shortfall exceeds policy limit or extension already used this period exceeds-policy →escalation-loyalty-specialist
Goodwill Confirmation
CRM.LogInteraction note: goodwill tier extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Points History
LoyaltyPlatform.GetTransactionHistory for member.id
- Customer provides a specific booking reference specific-booking →discrepancy-intake
- Customer wants a general history summary general-history →points-history-summary
- Customer identifies a missing or incorrect transaction discrepancy →discrepancy-intake
Points History Summary
LoyaltyPlatform.GetTransactionHistory for member.id — last 90 days of earn and redemption activity
- Customer spots a discrepancy discrepancy →discrepancy-intake
- Customer is satisfied with the summary satisfied →resolution-summary
Discrepancy Intake
LoyaltyPlatform.GetTransaction using booking.referenceNumber or transaction.id
PropertyManagementSystem.VerifyStay using booking.referenceNumber and member.id
- Transaction found and points gap confirmed gap-confirmed →discrepancy-assessment
- Transaction not found or stay not verified unverified →discrepancy-unverified
- Transaction involves a very large point volume or suspected fraud high-risk →escalation-loyalty-specialist
Discrepancy Assessment
- Discrepancy is within auto-correction threshold and earn rules confirm the gap →points-correction-approval
- Discrepancy requires manual audit or exceeds auto-correction threshold needs-audit →manual-audit-queue
- Agent detects pattern suggesting account compromise suspected-fraud →escalation-loyalty-specialist
Points Correction Approval
- Approved approved LoyaltyPlatform.AdjustPoints →correction-confirmation
- Rejected rejected →manual-audit-queue
- No response in 60 min →manual-audit-queue
Correction Confirmation
CaseManagement.CreateCase linked to member.id and transaction.id, status: resolved
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Manual Audit Queue
CaseManagement.CreateCase priority: standard, tagged points-discrepancy, linked to member.id and transaction.id
CRM.LogInteraction note: points discrepancy flagged for manual audit, case case.id created
- Customer is satisfied with the timeline satisfied →resolution-summary
- Customer escalates or disputes the timeline frustrated →escalation-loyalty-specialist
Discrepancy Unverified
CaseManagement.CreateCase priority: standard, tagged unverified-discrepancy, linked to member.id
CRM.LogInteraction note: transaction unverified, manual investigation case created, case case.id opened
- Customer accepts the outcome and case creation satisfied →resolution-summary
- Customer insists on immediate resolution frustrated →escalation-loyalty-specialist
Expiry Review
kb.loyalty-expiry-policy — retrieve points and tier expiry rules, extension eligibility, and activity requirements
- Customer is calm and accepts the information satisfied →resolution-summary
- Customer is upset about imminent expiry and requests help frustrated →expiry-goodwill-check
- Customer wants to know what activity would prevent expiry activity-inquiry →expiry-activity-options
Expiry Activity Options
kb.loyalty-earn-partners — retrieve list of qualifying partner activities that reset expiry clock
CRM.LogInteraction note: expiry activity options provided to member.id
- Customer requests the list be sent LoyaltyPlatform.SendPartnerListEmail to member.email →resolution-summary
- Customer is satisfied with the verbal summary satisfied →resolution-summary
Expiry Goodwill Check
- Extension is within policy and applied LoyaltyPlatform.ExtendPointsExpiry →expiry-extension-confirmation
- Extension not permitted under policy or limit already used exceeds-policy →escalation-loyalty-specialist
Expiry Extension Confirmation
CRM.LogInteraction note: one-time points expiry extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
System Outage
CaseManagement.CreateCase priority: standard, tagged system-outage-callback, linked to member.email
CRM.LogInteraction note: loyalty platform unavailable, callback committed within 4 business hours
- Customer accepts the callback commitment satisfied →resolution-summary
- Customer requests immediate escalation frustrated →escalation-loyalty-specialist
Identity Failure
CRM.LogInteraction note: identity verification failed, member directed to self-service portal or property front desk
Escalation to Loyalty Specialist
CaseManagement.CreateCase priority: high, tagged loyalty-specialist-escalation, linked to member.id
CRM.LogInteraction note: escalated to loyalty specialist, reason captured in case case.id
Slack.Notify to #loyalty-specialist-queue with member summary, member.id, member.currentTier, member.pointsBalance, and reason for escalation
Resolution Summary
CRM.LogInteraction note: inquiry resolved, summary provided to member.id
- Customer has another question follow-up →account-overview
- Customer is done satisfied →farewell
Farewell
CRM.CloseInteraction for member.id

Group / Event Booking Inquiry
Inquiry Intake
- Customer describes a specific event type event-described →gather-event-details
- Customer is vague or asking general questions exploring →scope-clarification
- Customer states group size is 50 or more rooms / full venue buyout / custom SLA high-complexity →escalation-event-sales-manager
Scope Clarification
- Customer clarifies event scope event-described →gather-event-details
- Customer remains unclear or needs guidance still-vague →gather-event-details
- Customer mentions scale that triggers complexity threshold high-complexity →escalation-event-sales-manager
Gather Event Details
Salesforce.CreateLead with customer.name, customer.email, customer.phone, source: group-inquiry
- Customer provides all key details (dates, guest count, destination, budget) details-complete →validate-group-size
- Customer provides partial details details-partial →clarify-missing-details
- Customer declines to share budget or contact info details-minimal →clarify-missing-details
Clarify Missing Details
Salesforce.UpdateLead with any partial data already collected
- Customer supplies remaining details details-complete →validate-group-size
- Customer still cannot confirm details still-incomplete →capture-lead-for-follow-up
Capture Lead for Follow-up
Salesforce.UpdateLead with customer.name, customer.email, status: nurture
email-automation.EnrollSequence campaign: group-inquiry-nurture, contact: customer.email
- Lead captured successfully →resolution-lead-captured
- Customer disengages with no contact info provided →resolution-no-contact
Validate Group Size
- Group size is 10–20 rooms and standard event type →check-availability
- Group size is 21–49 rooms or complexity is moderate →route-to-group-sales-specialist
- Group size is 50 or more rooms, full buyout, or custom SLA →escalation-event-sales-manager
Check Availability
group-inventory-calendar.CheckAvailability for event.property, event.dates, event.roomCount, event.type
property-management-system.GetGroupRates for event.property, event.dates, event.roomCount
- Dates and room count are available available →present-options
- Requested dates are unavailable but alternatives exist partial-availability →offer-alternatives
- No availability at requested property or destination unavailable →offer-alternatives
Present Options
quoting-tool.GenerateProposal for event.type, event.dates, event.roomCount, event.budget, event.specialRequirements
Salesforce.UpdateLead status: proposal-sent, quote.id
email-automation.SendEmail template: group-proposal, to: customer.email, attach: quote.id
- Customer reviews and selects a preferred option option-selected →confirm-provisional-hold
- Customer has questions or wants adjustments needs-adjustment →handle-quote-adjustment
- Customer indicates budget does not align with presented options budget-misaligned →offer-value-alternatives
- Customer goes silent after proposal is sent →quote-follow-up-sequence
Offer Alternatives
group-inventory-calendar.GetAlternativeDates for event.property, event.roomCount
property-management-system.GetNearbyProperties for event.destination, event.dates, event.roomCount
- Customer accepts an alternative date or property alternative-accepted →check-availability
- Customer wants to explore further still-exploring →route-to-group-sales-specialist
- Customer declines all alternatives and disengages declined →resolution-no-booking
Handle Quote Adjustment
quoting-tool.ReviseProposal for quote.id, updated event.roomCount, event.dates, event.specialRequirements
email-automation.SendEmail template: group-proposal-revised, to: customer.email, attach: quote.id
- Customer accepts revised proposal option-selected →confirm-provisional-hold
- Customer still has concerns needs-further-adjustment →handle-quote-adjustment
- Customer budget remains misaligned budget-misaligned →offer-value-alternatives
Offer Value Alternatives
quoting-tool.GetTieredOptions for event.type, event.dates, event.roomCount, event.budget
kb.group-value-add-packages
- Customer selects a tiered option option-selected →confirm-provisional-hold
- Customer wants specialist help with budget negotiation →route-to-group-sales-specialist
- Customer declines all options declined →resolution-no-booking
Confirm Provisional Hold
property-management-system.PlaceProvisionalHold for event.property, event.dates, event.roomCount, quote.id
Salesforce.UpdateLead status: hold-placed, hold.confirmationNumber
contract-management.GenerateContract for quote.id, customer.name, customer.email, event.type, event.dates
email-automation.SendEmail template: contract-and-deposit, to: customer.email, attach: contract.link
- Customer confirms they received the contract and will proceed proceeding →resolution-booking-confirmed
- Customer has contract or deposit questions has-questions →handle-contract-questions
- Customer has not responded by hold expiry date →hold-expiry-follow-up
Handle Contract Questions
kb.group-contract-terms
kb.deposit-and-cancellation-policy
- Questions answered and customer is ready to proceed proceeding →resolution-booking-confirmed
- Contract terms require negotiation or custom clauses requires-negotiation →escalation-event-sales-manager
- Customer declines after reviewing terms declined →resolution-no-booking
Quote Follow-up Sequence
email-automation.EnrollSequence campaign: group-quote-follow-up, contact: customer.email, reference: quote.id
Salesforce.UpdateLead status: follow-up-in-progress
- Customer responds and re-engages re-engaged →present-options
- Customer responds and selects an option option-selected →confirm-provisional-hold
- Customer remains unresponsive after full follow-up sequence no-response →route-to-group-sales-specialist
Hold Expiry Follow-up
email-automation.SendEmail template: hold-expiry-reminder, to: customer.email, reference: hold.confirmationNumber
Salesforce.UpdateLead status: hold-expiring-soon
- Customer responds and confirms they will proceed proceeding →resolution-booking-confirmed
- Customer requests an extension needs-extension →escalation-event-sales-manager
- Hold expires with no response expired →resolution-hold-expired
Route to Group Sales Specialist
Salesforce.UpdateLead status: routed-to-specialist, owner: group-sales-team
Salesforce.CreateTask assign-to: group-sales-team, subject: group-inquiry-handoff, reference: customer.email, event.type, event.dates, event.roomCount
email-automation.SendEmail template: specialist-intro, to: customer.email, cc: salesSpecialist.email
- Handoff confirmed and customer satisfied →resolution-specialist-assigned
- Customer requests immediate escalation to senior manager →escalation-event-sales-manager
Escalation to Event Sales Manager
Salesforce.UpdateLead status: escalated, priority: high, tagged: high-value-event
Salesforce.CreateTask assign-to: event-sales-manager, subject: high-complexity-group-escalation, reference: customer.email, event.type, event.dates, event.roomCount, event.budget
email-automation.SendEmail template: escalation-acknowledgement, to: customer.email
Resolution — Booking Confirmed
Salesforce.UpdateLead status: closed-won
property-management-system.ConfirmBooking for hold.confirmationNumber
Resolution — Specialist Assigned
Salesforce.UpdateLead status: specialist-assigned
Resolution — Lead Captured
Resolution — Hold Expired
Salesforce.UpdateLead status: hold-expired
property-management-system.ReleaseHold for hold.confirmationNumber
Resolution — No Booking
Salesforce.UpdateLead status: closed-lost
Resolution — No Contact
Salesforce.UpdateLead status: no-contact

General FAQ Insurance
Inbound Greeting
- Customer provides name and policy number →identity-verification
- Customer asks a question before providing identity →identity-first-prompt
- Customer explicitly requests a human agent →escalation-human
Identity First Prompt
- Customer provides name and policy number →identity-verification
- Customer declines or cannot provide policy number →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Identity Verification
IdentityVerification.Verify using customer.name and customer.policyNumber
- Verification passes →policy-lookup
- Verification fails after two attempts →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Policy Lookup
PolicyAdmin.GetRecord for customer.policyNumber
CRM.GetCustomerProfile for customer.name
- Policy is active →topic-detection
- Policy is lapsed →lapsed-policy-notice
- Policy record not found →escalation-human
Topic Detection
- Question is about coverage or what the plan includes coverage →faq-coverage
- Question is about billing, payment, or due dates billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about an existing claim already in progress claim-status →active-claim-redirect
- Question is about policy documents, ID cards, or proof of insurance documents →faq-documents
- Question is about cancellation or reinstatement policy-changes →faq-policy-changes
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
FAQ — Coverage
kb.coverage-faq — retrieve coverage details relevant to customer.productType
PolicyAdmin.GetCoverageDetails for customer.policyNumber
- Customer wants more detail on a specific benefit →faq-coverage-detail
- Customer's question is resolved confirmed →resolution
- Customer raises a dispute about what should be covered dispute →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — Coverage Detail
kb.coverage-faq — look up specific benefit or exclusion matching question.topic
- Customer confirms the answer resolves their question confirmed →resolution
- Customer disagrees with the coverage detail dispute →escalation-human
- Customer has a follow-up question →topic-detection
FAQ — Billing
PolicyAdmin.GetBillingRecord for customer.policyNumber
kb.billing-faq — retrieve billing process and payment method information
- Customer wants to update payment method or set up autopay →escalation-human
- Customer questions a charge or amount billing-dispute →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Claims Process
kb.claims-process-faq — retrieve step-by-step claims filing guidance for customer.productType
- Customer wants the claims contact or portal link CRM.SendClaimsInfo to customer.email →resolution
- Customer says they already have a claim in progress claim-in-progress →active-claim-redirect
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Documents
kb.documents-faq — retrieve document request process for customer.productType
- Customer confirms email and requests document PolicyAdmin.SendDocuments to customer.email →resolution
- Customer wants a different email address PolicyAdmin.SendDocuments after confirming new address →resolution
- Customer has a follow-up question →topic-detection
FAQ — Policy Changes
kb.policy-changes-faq — retrieve cancellation and reinstatement policy for customer.productType
- Customer asks about cancellation →escalation-human
- Customer asks about reinstatement →faq-reinstatement
- Customer has a general question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Reinstatement
kb.reinstatement-policy — retrieve reinstatement eligibility and process
- Customer wants to proceed with reinstatement →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
Active Claim Redirect
CRM.LogInteraction tag: claim-status-inquiry, linked to customer.policyNumber
- Claim ID is available claim.id →claims-status-workflow
- Claim ID is not available →escalation-human
Lapsed Policy Notice
kb.reinstatement-policy — check reinstatement eligibility window using customer.reinstatementDeadline
- Customer wants to proceed with their original question →topic-detection-lapsed
- Customer wants reinstatement information first →faq-reinstatement
- Customer explicitly requests a human agent →escalation-human
Topic Detection — Lapsed Policy
- Question is about coverage coverage →faq-coverage
- Question is about billing billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about documents documents →faq-documents
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
Unverified — General Info Only
kb.public-faq — retrieve general public-facing insurance information
- Question is about coverage in general coverage →faq-coverage-general
- Question is about billing in general billing →faq-billing-general
- Question is about how to file a claim claims-process →faq-claims-process
- Customer wants account-specific help →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — General Coverage (Unverified)
kb.public-faq — retrieve general coverage overview, not account-specific
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
FAQ — General Billing (Unverified)
kb.public-faq — retrieve general billing and payment information
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
Clarification Prompt
- Customer clarifies a known topic confirmed →topic-detection
- Customer's question still unclear after clarification →escalation-human
- Customer explicitly requests a human agent →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation, reason: question.topic, linked to customer.policyNumber
CRM.CreateCase priority: normal, linked to customer.policyNumber
Resolution
CRM.LogInteraction tag: faq-resolved, topic: question.topic, linked to customer.policyNumber
- Customer has another question →topic-detection
- Customer confirms no further questions confirmed →close-conversation
Close Conversation
CRM.CloseInteraction linked to customer.policyNumber

General FAQ — Healthcare
Intake
- Patient asks about billing or payments billing →category-billing
- Patient asks about scheduling or appointments scheduling →category-scheduling
- Patient asks about insurance or coverage insurance →category-insurance
- Patient asks about services, procedures, or treatments services →category-services
- Patient asks about location, hours, or directions location →category-location
- Patient asks about prescriptions or medications prescriptions →category-prescriptions
- Patient mentions a symptom, pain, or medical concern clinical →clinical-deflection
- Patient expresses distress, fear, or emotional upset distressed →escalation-human
- Patient asks about their personal health record or account-specific details personal-record →identity-verification
- Patient requests a specific staff member or provider by name staff-request →escalation-human
- Question does not fit any known category unclear →clarify-question
Clarify Question
- Category becomes clear on follow-up billing →category-billing
- Category becomes clear on follow-up scheduling →category-scheduling
- Category becomes clear on follow-up insurance →category-insurance
- Category becomes clear on follow-up services →category-services
- Category becomes clear on follow-up location →category-location
- Category becomes clear on follow-up prescriptions →category-prescriptions
- Patient mentions a symptom or medical concern clinical →clinical-deflection
- Patient expresses distress distressed →escalation-human
- Still unclear after follow-up still_unclear →knowledge-base-fallback
Category — Billing
kb.billing-faq — retrieve billing policies, payment options, balance inquiry process, financial assistance programs
- Patient has a question about a specific charge or balance on their account account_specific →identity-verification
- Patient asks a general question about payment options or financial assistance general →deliver-billing-answer
- Patient asks about payment plans payment_plan →deliver-billing-answer
- Patient is confused or frustrated about a charge frustrated →escalation-human
Deliver Billing Answer
kb.billing-faq — confirm answer to patient's specific billing question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is still confused or wants to speak with someone needs_agent →escalation-human
Category — Scheduling
kb.scheduling-faq — retrieve scheduling policies, new patient process, cancellation policy, telehealth availability
- Patient wants to book, reschedule, or cancel book_appt →scheduling-action
- Patient asks a general scheduling question general →deliver-scheduling-answer
- Patient mentions a specific provider staff-request →escalation-human
Deliver Scheduling Answer
kb.scheduling-faq — confirm answer to scheduling question
- Patient wants to schedule directly book_appt →scheduling-action
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
Scheduling Action
- Existing patient confirmed patient.status EHR.LookupPatient →confirm-patient-identity-scheduling
- New patient new_patient →new-patient-intake
- Patient declines to provide info and wants to self-schedule self_serve →resolution
Confirm Patient Identity — Scheduling
- Identity confirmed EHR.LookupPatient verified →escalation-human
- Patient cannot verify identity unverified →identity-fail
New Patient Intake
kb.new-patient-faq — retrieve new patient registration process, required documents, insurance accepted
- Patient wants portal link CRM.SendPortalLink →resolution
- Patient wants to speak with front desk speak_to_staff →escalation-human
- Patient confirms they have what they need confirmed →resolution
Category — Insurance
kb.insurance-faq — retrieve accepted insurance carriers, coverage verification process, referral and prior authorization info
- Patient asks which insurance plans are accepted plans_accepted →deliver-insurance-answer
- Patient wants to verify their specific coverage verify_coverage →identity-verification
- Patient asks about referrals or prior authorization auth_referral →deliver-insurance-answer
- Patient asks a general insurance question general →deliver-insurance-answer
Deliver Insurance Answer
kb.insurance-faq — confirm answer relevant to patient's insurance question
- Patient confirms they have what they need confirmed →resolution
- Patient wants insurance team to verify their benefits verify_coverage →identity-verification
- Patient has a follow-up question follow_up →intake
- Patient is frustrated about coverage or a denial frustrated →escalation-human
Category — Services
kb.services-faq — retrieve information on available specialties, procedures, telehealth, and referral requirements
- Patient asks about a specific procedure or treatment procedure →deliver-services-answer
- Patient asks about a specialty specialty →deliver-services-answer
- Patient asks about telehealth telehealth →deliver-services-answer
- Patient's question touches on clinical advice or personal symptoms clinical →clinical-deflection
Deliver Services Answer
kb.services-faq — confirm answer relevant to patient's services question
- Patient confirms they have what they need confirmed →resolution
- Patient wants to schedule related to this service book_appt →category-scheduling
- Patient has a follow-up question follow_up →intake
- Patient's follow-up veers into clinical advice territory clinical →clinical-deflection
Category — Location & Hours
kb.facility-directory — retrieve facility addresses, hours of operation, parking, and contact numbers
- Patient names a specific facility or location facility.name →deliver-location-answer
- Patient wants a list of all locations all_locations →deliver-location-answer
- Patient asks about after-hours or urgent care availability after_hours →deliver-location-answer
Deliver Location Answer
kb.facility-directory — confirm address, hours, and contact details for facility.name
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
- Patient cannot find the location or needs further help needs_agent →escalation-human
Category — Prescriptions
kb.prescriptions-faq — retrieve prescription refill process, pharmacy partnerships, prior authorization for medications
- Patient asks about refills refill →deliver-prescriptions-answer
- Patient asks about pharmacy partners pharmacy →deliver-prescriptions-answer
- Patient asks about prior authorization for a specific medication prior_auth →deliver-prescriptions-answer
- Patient asks about dosage, interactions, or clinical guidance clinical →clinical-deflection
Deliver Prescriptions Answer
kb.prescriptions-faq — confirm answer relevant to prescription question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient's question requires clinical judgment clinical →clinical-deflection
- Patient wants to speak with their care team needs_agent →escalation-human
Identity Verification
CRM.VerifyPatientIdentity using patient.name, patient.dob, patient.phone or patient.email
- Identity verified successfully verified →post-verification-routing
- Identity cannot be verified unverified →identity-fail
Post-Verification Routing
- Original question was about billing billing EHR.LookupPatientAccount →deliver-billing-answer
- Original question was about insurance or coverage insurance InsuranceEligibility.VerifyCoverage →deliver-insurance-answer
- Original question was about scheduling scheduling EHR.LookupPatient →confirm-patient-identity-scheduling
- Original question required record access record EHR.LookupPatientAccount →escalation-human
Identity Fail
- Patient wants to try a general question general →intake
- Patient wants to call or visit in person confirmed →resolution
- Patient is frustrated or upset frustrated →escalation-human
Knowledge Base Fallback
- Answer found with high confidence answer_found →deliver-fallback-answer
- No reliable answer found in knowledge base no_answer →acknowledge-uncertainty
Deliver Fallback Answer
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is unsatisfied or needs more detail needs_agent →escalation-human
Acknowledge Uncertainty
- Patient wants to be connected to a staff member needs_agent →escalation-human
- Patient wants the patient portal link CRM.SendPortalLink →resolution
- Patient is okay waiting or will follow up themselves confirmed →resolution
Clinical Deflection
- Patient wants to schedule an appointment book_appt →category-scheduling
- Patient wants a facility location location →category-location
- Patient indicates this may be an emergency emergency →escalation-emergency
- Patient confirms they understand and has no further needs confirmed →resolution
- Patient is distressed or escalating distressed →escalation-human
Escalation — Emergency
Escalation to Human Agent
CRM.CreateCaseNote with question.category, conversation summary, and patient.name if provided
CRM.RouteToAgent with priority: standard, tagged with question.category
Resolution
CRM.LogInteraction with question.category and resolution status

Dispute Escalation to Human Agent
Dispute Intake
- Customer provides name and account number →identity-verification
- Customer mentions an already-open dispute or prior case number →existing-case-lookup
- Customer immediately invokes legal rights (CFPB, arbitration, attorney) or threatens legal action legal_threat →escalation-human
- Customer is highly distressed or agitated distressed →escalation-human
Identity Verification
IdentityVerification.Verify against customer.accountNumber — check security questions, date of birth, and registered contact details.
- Identity verified on first or second attempt verified →account-and-dispute-lookup
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer refuses verification or abandons →escalation-human
Identity Failure
CRM.LogAttempt tag: identity-verification-failed, linked to customer.accountNumber
Account and Dispute Lookup
CoreBanking.GetAccountDetails for customer.accountNumber
CoreBanking.GetTransactionHistory for customer.accountNumber
- Customer provides transaction or decision details →dispute-eligibility-check
- Agent cannot locate the transaction after two attempts →escalation-human
- Customer mentions fraud and amount is above USD 500 high_value_fraud →escalation-human
Dispute Eligibility Check
kb.dispute-eligibility-policy — check whether transaction.date falls within the eligible dispute window and whether dispute.reason qualifies under policy.
- Dispute is within policy window and qualifies eligible →dispute-logging
- Dispute falls outside the eligible window or does not qualify under policy ineligible →dispute-ineligible
- Eligibility is ambiguous and requires human judgment ambiguous →escalation-human
Dispute Ineligible
CRM.LogAttempt tag: dispute-ineligible, linked to customer.accountNumber, note dispute.reason
- Customer accepts the outcome and has no further questions →resolution-closed
- Customer requests secondary review or escalation →escalation-human
Existing Case Lookup
CaseManagement.GetCase by dispute.priorCaseNumber or customer.accountNumber
- Existing open case found case_found →existing-case-update
- No matching case found, treat as new dispute no_case →identity-verification
- Customer escalates frustration about lack of progress frustrated →escalation-human
Existing Case Update
CaseManagement.UpdateCase on case.id with new dispute.reason and today's contact timestamp
CRM.LogInteraction linked to case.id, tag: customer-follow-up
- Customer is satisfied with the update →resolution-closed
- Customer escalates or expresses legal intent legal_threat →escalation-human
- Customer requests to speak with a human specialist →escalation-human
Dispute Logging
- Customer confirms details confirmed →case-creation
- Customer corrects or amends details correction →account-and-dispute-lookup
Case Creation
DisputesManagement.CreateCase for customer.accountNumber with transaction.referenceId, transaction.amount, transaction.date, dispute.reason
CaseManagement.AssignCaseNumber and capture as case.id
CRM.LogInteraction tag: dispute-filed, linked to case.id
→dispute-confirmation
Dispute Confirmation
Twilio.SendSMS to customer.phone: "Your dispute (Case case.id) has been logged. Amount: transaction.amount. We'll follow up within 3–5 business days. Reply STOP to opt out."
Twilio.SendEmail to customer.email with full case summary including case.id, transaction.referenceId, transaction.amount, transaction.date, and next steps.
- Customer has no further questions →resolution-closed
- Customer has additional questions or a separate dispute →dispute-intake
- Customer escalates or requests immediate human follow-up →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation-triggered, linked to customer.accountNumber, note dispute.reason
CaseManagement.CreateOrUpdateCase priority: high, tag: human-escalation, linked to transaction.referenceId
DisputesManagement.FlagForReview on customer.accountNumber with escalation reason and agent transcript summary
- Specialist accepts and takes over approved →escalation-handoff-complete
- No response within 10 min timeout →escalation-handoff-complete
Escalation Handoff Complete
Twilio.SendSMS to customer.phone: "You've been connected with a disputes specialist. Reference: case.id. Expect contact via customer.preferredContact shortly."
Resolution / Closed
CRM.LogInteraction tag: interaction-complete, linked to case.id

Complaint Intake & Routing
Intake & Greeting
- Customer provides name and account number →identity-verification
- Customer refuses to provide details or cannot locate account number →anonymous-record
- Customer immediately mentions a lawyer, regulator, or media escalation-signal →escalation-legal-regulatory
Identity Verification
IdentityVerification.VerifyCustomer using customer.fullName and customer.accountNumber
- Identity confirmed verified →complaint-details-collection
- Identity cannot be confirmed after two attempts unverified →anonymous-record
- System error or timeout system_error CRM.LogAttempt →escalation-human-agent
Complaint Details Collection
CRM.UpdateRecord with customer.accountNumber to flag active complaint intake
- Customer provides complaint details →prior-contact-check
- Customer becomes highly distressed or threatening legal action distressed →escalation-legal-regulatory
- Customer is unclear or needs prompting →complaint-clarification
Complaint Clarification
kb.complaint-intake-guidelines — review required fields for a complete complaint record
- Details now sufficient to proceed →prior-contact-check
- Customer remains unable to provide details CRM.LogPartialComplaint →complaint-details-collection
- Customer escalates tone or mentions legal action distressed →escalation-legal-regulatory
Prior Contact Check
ComplaintManagement.SearchExistingCases using customer.accountNumber and complaint.nature
- Duplicate case found duplicate_detected →duplicate-complaint-handling
- No prior case found, complaint is new no_duplicate →regulatory-category-check
- Customer provides prior reference number complaint.priorReference ComplaintManagement.LinkCase →regulatory-category-check
Duplicate Complaint Handling
ComplaintManagement.RetrieveCase to get case.existingId and current status
CRM.AddInteractionNote linked to case.existingId with today's contact details and any new information provided
- Customer confirms preferred contact and accepts outcome Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer disputes that the duplicate is the same issue →complaint-details-collection
- Customer is dissatisfied with existing case handling frustrated →escalation-human-agent
Regulatory Category Check
ComplianceFlagging.ClassifyComplaint using complaint.nature and complaint.product
kb.regulatory-complaint-categories — check whether complaint falls under fraud, discrimination, CFPB-reportable, FCA-reportable, or other regulated classification
- Complaint classified as regulated category (fraud, discrimination, CFPB, FCA) regulated_category →compliance-routing
- Complaint classified as standard (service, billing, product experience) standard_category →complaint-registration
- Classification inconclusive inconclusive CRM.LogForManualReview →escalation-compliance-team
Compliance Routing
ComplianceFlagging.FlagCase with complaint.category, customer.accountNumber, and complaint.nature
CaseRouting.AssignToComplianceQueue with priority: high
CRM.CreateComplaintRecord tagged regulatory, linked to customer.accountNumber
- Customer would like written confirmation now Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer has further information to add →complaint-clarification
- Customer escalates or mentions external bodies escalation-signal →escalation-legal-regulatory
Complaint Registration
ComplaintManagement.CreateCase with customer.fullName, customer.accountNumber, complaint.nature, complaint.date, complaint.product, complaint.priorReference
CaseRouting.AssignToStandardQueue
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer confirms preferred contact method →preferred-contact-capture
- Customer wants to add anything further →complaint-clarification
- Customer is highly dissatisfied with the process frustrated →escalation-human-agent
Preferred Contact Capture
CRM.UpdatePreferredContact for customer.accountNumber with customer.preferredContact
- Customer confirms email Twilio.SendEmail to customer.email with acknowledgment letter and complaint.referenceNumber →resolution-acknowledgment
- Customer confirms phone or SMS Twilio.SendSMS to customer.phone with acknowledgment summary and complaint.referenceNumber →resolution-acknowledgment
- Customer has no preference, use address on file CRM.RetrieveContactDetails Twilio.SendEmail to customer.email →resolution-acknowledgment
Resolution & Acknowledgment
CRM.CloseInteraction with outcome: complaint-logged, reference: complaint.referenceNumber
- Customer has no further questions — flow ends here
- Customer raises an additional issue →intake-greeting
- Customer requests to speak with someone now wants_agent →escalation-human-agent
Anonymous Record
ComplaintManagement.CreateAnonymousRecord with complaint.nature and any details provided
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer provides a contact method CRM.LogAnonymousContactPreference →resolution-acknowledgment
- Customer declines and ends the interaction — flow ends here
- Customer becomes agitated or references legal action distressed →escalation-legal-regulatory
Escalation — Legal or Regulatory Signal
ComplianceFlagging.FlagCase with priority: urgent, reason: legal-regulatory-signal
CaseRouting.AssignToSeniorComplaintsHandler
CRM.CreateComplaintRecord tagged escalated, legal-signal, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
Twilio.SendSMS to customer.preferredContact confirming escalation and complaint.referenceNumber
Escalation — Human Agent
CaseRouting.TransferToLiveAgent with context: complaint.referenceNumber, customer.accountNumber, complaint.nature
CRM.LogHandoffNote with reason: customer-requested or verification-failure or system-error
Escalation — Compliance Team
ComplianceFlagging.FlagCase with priority: high, reason: inconclusive-classification
CaseRouting.AssignToComplianceReviewTeam
CRM.CreateComplaintRecord tagged compliance-review-required, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber

Complaint Escalation — Insurance
Intake and Greeting
- Customer is calm or moderately frustrated neutral →identity-verification
- Customer is highly distressed, upset, or using strong escalation language distressed →empathy-protocol
- Customer explicitly mentions the ombudsman, legal action, or litigation legal_threat →regulatory-flag
Empathy Protocol
- Customer settles and is willing to continue confirmed →identity-verification
- Customer demands to speak with a manager immediately escalation_request →escalation-human
- Customer remains highly distressed and conversation cannot progress unresolvable →escalation-human
Regulatory Flag
ComplaintsManagementSystem.SetPriorityFlag on case.existingId with tag regulatory-legal-threat
- Continue to identity verification →identity-verification
Identity Verification
IdentityVerification.Verify using policy.number and policy.holderId
- Identity verified successfully verified →complaint-capture
- Identity cannot be verified after two attempts unverified →unverified-complaint-log
- Customer refuses to provide verification details refused →unverified-complaint-log
Complaint Capture
PolicyAdministrationSystem.GetRecord for policy.number
CRM.GetCustomerProfile for policy.holderId
CaseManagement.SearchExistingCases using policy.number and claim.referenceNumber
- Existing open case found matching this complaint duplicate →duplicate-case-update
- No existing case found, proceed to log new complaint no_duplicate →complaint-classification
- Complaint involves a protected or vulnerable customer flag customer.vulnerableFlag →vulnerable-customer-handling
Vulnerable Customer Handling
CRM.SetVulnerableFlag on policy.holderId
ComplaintsManagementSystem.SetPriorityFlag with tag vulnerable-customer
- Customer confirms preferred contact method, continue to classification →complaint-classification
- Customer requests specialist support or senior handler →escalation-human
Complaint Classification
- Classification complete, no escalation triggers identified classified →complaint-logging
- Classification reveals regulatory or legal risk not yet flagged legal_threat →regulatory-flag
- Classification reveals vulnerable customer indicator not yet flagged vulnerable →vulnerable-customer-handling
Duplicate Case Update
CaseManagement.UpdateCase on case.existingId with complaint.description and complaint.date
CRM.AddInteractionNote for policy.holderId with summary of call and updated complaint details
- Update complete, confirm timeframes with customer →regulatory-timeframe-confirmation
Complaint Logging
ComplaintsManagementSystem.CreateComplaint with policy.number, customer.name, complaint.description, complaint.category, complaint.date, claim.referenceNumber
CRM.AddInteractionNote for policy.holderId linking complaint.referenceNumber and complaint.category
- Complaint logged, proceed to confirm response timeframes →regulatory-timeframe-confirmation
Regulatory Timeframe Confirmation
kb.regulatory-response-timeframes — retrieve applicable acknowledgment and resolution deadlines based on complaint.category
- Customer has nothing further to add confirmed →resolution-confirmation
- Customer raises an additional concern or asks a follow-up question further_query →complaint-capture
- Customer requests a callback from a senior handler escalation_request →escalation-human
Unverified Complaint Log
ComplaintsManagementSystem.CreateUnverifiedComplaint with complaint.description, complaint.date, and a note that identity verification is pending
CRM.AddUnverifiedInteractionNote with complaint.description
- Unverified log complete →resolution-confirmation
Escalation to Human Agent
ComplaintsManagementSystem.SetPriorityFlag on complaint.referenceNumber with tag senior-handler-required
CRM.AddInteractionNote for policy.holderId with reason for escalation
CaseManagement.AssignToSeniorHandler and notify agent.seniorHandlerEmail
Resolution Confirmation
CRM.CloseInteraction for policy.holderId with outcome logged and complaint.referenceNumber attached

Claims Intake
Welcome & Policy Lookup
PolicyManagement.LookupPolicy using policy.number or customer.name
- Policy record found, status active →identity-verification
- Policy record found, status lapsed or expired →lapsed-policy
- Policy record not found after two attempts →escalation-human
- System unavailable CRM.LogInteraction with caller details →system-unavailable
Identity Verification
IdentityVerification.Verify using policy.number and provided identifiers
- Identity verified on first or second attempt →loss-details-collection
- Identity not verified on primary identifiers →secondary-identity-check
Secondary Identity Check
IdentityVerification.VerifySecondary using policy.number
- Identity verified with secondary identifiers →loss-details-collection
- Identity still unverified identity_failed →escalation-human
Loss Details Collection
- Customer provides loss date, location, and description →damages-and-injuries-check
- Customer is distressed or mentions injuries or fatalities →escalation-complex-loss
Damages & Injuries Check
- Customer reports injuries, fatality, or catastrophic loss high_severity →escalation-complex-loss
- Customer mentions intent to involve legal counsel legal_intent →escalation-complex-loss
- No injuries, damages appear routine →coverage-check
Coverage Check
kb.coverage-rules — verify loss.type falls within policy.coverageType scope and that loss.date is within the active policy period
- Coverage confirmed active and loss type within scope coverage_confirmed →claim-record-creation
- Loss type appears potentially excluded or ambiguous coverage_ambiguous →flagged-adjuster-review
- Policy was not active on loss.date coverage_inactive →lapsed-policy
Claim Record Creation
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type
CRM.UpdateContact with customer.preferredContact and claim reference
ClaimsManagement.GetClaimID -> claim.id
- Claim record created successfully claim_created →claim-confirmation
- System error during claim creation system_error →system-unavailable
Claim Confirmation
CRM.SendConfirmation to customer.email or customer.phone with claim.id and next-steps summary
- Customer has additional questions →claim-next-steps
- Customer is satisfied, no further questions →resolution
Claim Next Steps
kb.claims-process-guide — retrieve adjuster contact timeline, documentation requirements, and repair/replacement process for policy.coverageType
- Customer satisfied →resolution
- Customer wants to add more details to the claim ClaimsManagement.UpdateClaim →claim-confirmation
- Customer requests escalation →escalation-human
Flagged for Adjuster Review
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type, flag: coverage_review_required
ClaimsManagement.GetClaimID -> claim.id
CRM.UpdateContact with customer.preferredContact and claim reference
CRM.SendConfirmation to customer.email or customer.phone with claim.id and review-pending notice
→resolution
Lapsed Policy
kb.reinstatement-options — retrieve available reinstatement paths for policy.coverageType
- Customer wants reinstatement information CRM.LogInteraction tag: reinstatement-interest →escalation-human
- Customer acknowledges and ends interaction →resolution
System Unavailable
CRM.LogManualClaimDetails with customer.name, customer.phone, customer.email, loss.date, loss.location, loss.description, loss.damages, loss.type, policy.number, flag: manual_follow_up_required
- Customer accepts and ends interaction →resolution
- Customer is dissatisfied and requests immediate escalation →escalation-human
Escalation — Complex or High-Severity Loss
CRM.LogInteraction with full loss details, flag: high_severity
ClaimsManagement.CreatePriorityAlert with loss.description, loss.injuries, policy.number
Escalation to Human Agent
CRM.LogInteraction with full context, flag: human_review_required
Resolution

Card Lost / Stolen Replacement
Intake
- Customer confirms card is lost confirmed →identity-verification
- Customer mentions unauthorized charges or suspected fraud fraud_concern →identity-verification-fraud
- Customer is unresponsive or unclear →identity-verification
Identity Verification
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes on first or second attempt verified →card-block
- Verification fails after multiple attempts failed →verification-failure
Identity Verification — Fraud Path
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes verified →card-block-fraud
- Verification fails after multiple attempts failed →verification-failure
Card Block
CardManagement.BlockCard for card.id
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked
Salesforce.CreateCase type: card-lost-stolen, linked to account.id
- Customer provides last seen details →address-confirmation
- Customer cannot recall details →address-confirmation
Card Block — Fraud Path
CardManagement.BlockCard for card.id
FraudDetection.FlagAccount on account.id tagged: unauthorized-transactions
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked-fraud
Salesforce.CreateCase type: fraud-card-lost-stolen, priority: high, linked to account.id
- Proceed to address confirmation for replacement →address-confirmation-fraud
Address Confirmation
- Customer confirms existing address confirmed →replacement-issuance
- Customer requests a new or different address new_address →address-review
Address Confirmation — Fraud Path
- Customer confirms existing address confirmed →replacement-issuance-fraud
- Customer requests a new or different address new_address →address-review
Address Review
Salesforce.UpdateCase add: unrecognized-replacement-address, replacement.address, flagged-for-review
ShippingFulfillment.HoldOrder pending address verification on account.id
- Address approved approved →replacement-issuance
- Address flagged or rejected rejected →escalation-human
Replacement Issuance
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited
- Customer accepts standard delivery standard →replacement-standard
- Expedited requested but not eligible expedited →replacement-standard
Replacement Issuance — Fraud Path
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited-fraud
- Customer accepts standard delivery standard →replacement-standard-fraud
Replacement — Standard
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines digital card →resolution
Replacement — Expedited
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines →resolution
Replacement — Standard (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
→escalation-fraud
Replacement — Expedited (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
→escalation-fraud
Digital Card Offer
- Digital card provisioned successfully provisioned →resolution
- Customer not eligible or provisioning fails ineligible →resolution
Verification Failure
Salesforce.CreateCase type: identity-verification-failure, priority: high, linked to account.id
Salesforce.LogNote add: customer-directed-to-branch, verification-failed
- Customer wants branch info →escalation-human
- Customer ends interaction →resolution-no-action
Escalation — Fraud Team
FraudDetection.OpenDisputeCase linked to account.id, flagged: unauthorized-transactions, transaction.unauthorized_flag
Salesforce.UpdateCase priority: high, tagged: fraud-escalation, dispute-opened
Slack.Notify to #fraud-ops with case summary, account.id, card.last4
Escalation — Human Agent
Salesforce.UpdateCase priority: high, tagged: manual-review-required
Slack.Notify to #card-services-review with case summary, account.id, customer.name
Resolution
Salesforce.CloseCase resolution: card-replaced, linked to account.id
Resolution — No Action Taken
Salesforce.CloseCase resolution: blocked-no-replacement-issued, linked to account.id

Branch / ATM Locator & Appointment Booking
Greeting & Intent Capture
- Customer wants to find a branch or ATM find-location →location-capture
- Customer wants to book an appointment book-appointment →account-verification
- Customer mentions a complaint or requests a manager complaint →escalation-human
- Intent is unclear or mixed unclear →clarify-intent
Clarify Intent
- Customer clarifies location lookup find-location →location-capture
- Customer clarifies appointment booking book-appointment →account-verification
- Customer remains unclear or frustrated frustrated →escalation-human
Location Capture
MapsGeolocation.DetectLocation from session context if available
- Location detected automatically from session location-detected →location-results
- Customer provides ZIP code or city manually location-provided →location-results
- Customer cannot or will not provide location no-location →location-fallback
Location Fallback
- Customer provides a ZIP or city after all location-provided →location-results
- Customer is satisfied and done done →resolution
- Customer wants to book an appointment instead book-appointment →account-verification
Location Results
BranchATMLocator.Search using customer.zip or customer.city, return top 3 branches and nearest ATMs
BranchATMLocator.SurfaceResults including branch.name, branch.address, branch.hours, branch.distance, branch.status, and atm.address, atm.distance
- One or more branches show as temporarily closed branch-closed →closed-branch-handling
- Customer selects a branch and wants to book an appointment book-appointment →account-verification
- Customer is satisfied with location info only info-only →resolution
- Customer asks about accessibility or language services accessibility →accessibility-check
Closed Branch Handling
BranchATMLocator.GetUpdatedHours for branch.name, surface branch.hours and branch.status
BranchATMLocator.Search for next nearest open branch, surface branch.address and branch.distance
- Customer wants to book at the open alternative book-appointment →account-verification
- Customer satisfied with updated info info-only →resolution
- Customer frustrated or escalates frustrated →escalation-human
Accessibility Check
BranchATMLocator.FilterByAccessibility using customer.accessibilityNeeds and customer.languagePreference
- Accessible branch found and customer wants to book book-appointment →account-verification
- Accessible branch found and customer wants info only info-only →resolution
- No fully accessible branch available nearby no-accessible-branch →escalation-human
Account Verification
CRM.LookupCustomer using customer.phone or customer.email
- Existing customer confirmed account-verified →appointment-type-capture
- Customer is not an existing account holder no-account →non-account-holder-handling
- Unable to verify account status verification-failed →manual-account-check
Manual Account Check
CRM.LookupCustomer using customer.phone or customer.email
- Account found account-verified →appointment-type-capture
- Still unable to verify verification-failed →non-account-holder-handling
Non-Account Holder Handling
- Customer wants branch or ATM info only find-location →location-capture
- Customer interested in opening an account new-account →escalation-specialist
- Customer wants to book a general appointment anyway book-appointment →appointment-type-capture
Appointment Type Capture
- Customer requests a standard appointment type standard-appointment →datetime-capture
- Customer requests a specialized appointment such as mortgage, business banking, or wealth management specialist-appointment →escalation-specialist
- Customer describes a complaint or sensitive issue complaint →escalation-human
Date & Time Capture
AppointmentScheduler.CheckAvailability for appointment.type at branch.name on appointment.preferredDate at appointment.preferredTime
- Slot is available slot-available →appointment-confirmation
- Requested slot is unavailable slot-unavailable →offer-alternative-slot
- Branch has no availability on preferred date no-availability →offer-alternative-branch
Offer Alternative Slot
AppointmentScheduler.GetNextAvailable for appointment.type at branch.name
- Customer accepts the next available slot accepts-slot →appointment-confirmation
- Customer wants a different date or time different-datetime →datetime-capture
- Customer wants to try a different branch different-branch →offer-alternative-branch
Offer Alternative Branch
BranchATMLocator.Search for next nearest branch with availability for appointment.type on appointment.preferredDate
AppointmentScheduler.CheckAvailability at alternative branch
- Customer accepts alternative branch and slot accepts-slot →appointment-confirmation
- Customer wants to try yet another date or branch different-datetime →datetime-capture
- Customer frustrated or wants to escalate frustrated →escalation-human
Appointment Confirmation
AppointmentScheduler.BookAppointment for customer.email, appointment.type, appointment.preferredDate, appointment.preferredTime at branch.name
Twilio.SendSMS to customer.phone with confirmation details: appointment.confirmationNumber, branch.name, branch.address, appointment.preferredDate, appointment.preferredTime
Twilio.SendEmail to customer.email with the same confirmation details and a calendar invite attachment
- Customer has accessibility or special requirements accessibility →accessibility-check
- Customer is done done →resolution
- Customer wants to modify or cancel the appointment modify-appointment →appointment-modification
Appointment Modification
AppointmentScheduler.LookupAppointment using appointment.confirmationNumber
- Customer wants to reschedule reschedule →datetime-capture
- Customer wants to cancel cancel AppointmentScheduler.CancelAppointment for appointment.confirmationNumber →cancellation-confirmation
- Customer is unsure or has another question other →greeting-intent-capture
Cancellation Confirmation
Twilio.SendSMS to customer.phone confirming cancellation of appointment.confirmationNumber
Twilio.SendEmail to customer.email confirming cancellation
- Customer wants to rebook book-appointment →appointment-type-capture
- Customer is done done →resolution
Escalation to Specialist
CRM.CreateCase tagged specialist-appointment, linked to customer.email and appointment.type
AppointmentScheduler.RouteToAdvisor for appointment.type, surface available advisor and earliest slot
Twilio.SendEmail to customer.email with advisor contact information and next steps
- Customer has additional questions other →greeting-intent-capture
- Customer is satisfied done →resolution
Escalation to Human Agent
CRM.CreateCase priority: high, tagged branch-escalation, linked to customer.phone and customer.email
Resolution

Billing Inquiry / Dispute
Greeting and Identity Verification
IdentityVerification.LookupAccount using customer.accountNumber or customer.phoneNumber
IdentityVerification.Verify using customer.pin, customer.dob, or customer.ssn4
- Identity verified successfully verified →inquiry-intake
- Identity verification fails after two attempts unverified →identity-failure
- Customer is unable to provide any credentials →identity-failure
Identity Failure
CaseManagement.LogContact note: identity verification failed, customer redirected
- Customer agrees to visit store or reset online →resolution-no-account-access
- Customer wants to escalate or is upset frustrated →escalation-human
Resolution — No Account Access
Inquiry Intake
CRM.PullAccount for customer.accountNumber, load customer.name, billing.previousCredits, billing.accountBalance
BillingSystem.FetchBillDetail for billing.cycleAffected
- Customer identifies a specific charge or line item →charge-review
- Customer is generally confused about the total bill amount →full-bill-walkthrough
- Customer mentions they never received a notification about a plan or rate change →plan-change-review
- Customer sounds upset or frustrated before details are gathered frustrated →emotional-acknowledgment
Emotional Acknowledgment
- Customer settles and is ready to continue neutral →inquiry-intake
- Customer remains highly agitated or begins demanding a supervisor escalating →escalation-human
Full Bill Walkthrough
BillingSystem.FetchBillDetail for billing.cycleAffected
kb.telecom-billing-line-item-guide — review standard line items, taxes, and surcharge descriptions
- Customer identifies a specific charge after walkthrough →charge-review
- Customer accepts the explanation confirmed →resolution-explained
- Customer remains confused or disputes a line →charge-review
Plan Change Review
BillingSystem.FetchPlanChangeHistory for customer.accountNumber
kb.telecom-plan-change-notification-policy — verify whether advance notice was required and sent
- Notification was sent and change was valid →charge-review
- No notification found and change was applied without notice notification-missing →error-confirmed
- Customer disputes they authorized the change →charge-review
Charge Review
BillingSystem.FetchChargeDetail for billing.chargeDate, billing.chargeDescription, billing.chargeAmount
kb.telecom-billing-policy — check overage rules, promo expiration terms, and adjustment eligibility
- Charge is valid and explainable →explanation-delivery
- Billing error confirmed error-confirmed →error-confirmed
- Charge is outside the 90-day policy adjustment window →outside-policy-window
- Usage or account pattern suggests possible fraud fraud-suspected →escalation-human
- Billing system is unavailable or returns an error system-down →billing-system-down
Explanation Delivery
kb.telecom-billing-policy — reference relevant policy language for promo expiration, overages, or rate changes
- Customer accepts the explanation confirmed →resolution-explained
- Customer disputes the explanation or asks for a supervisor unsatisfied →escalation-human
- Customer accepts but asks for a goodwill credit →goodwill-credit-evaluation
Error Confirmed
BillingSystem.FetchAccountBalance to confirm current billing.accountBalance and billing.previousCredits
- Error amount is within agent authorization threshold within-auth →credit-issuance
- Error amount exceeds agent.authLimit exceeds-auth →escalation-human
Outside Policy Window
kb.telecom-goodwill-credit-policy — check goodwill credit eligibility and authorized limit
- Customer accepts goodwill credit offer →goodwill-credit-evaluation
- Customer rejects and requests further escalation →escalation-human
Goodwill Credit Evaluation
- Goodwill credit is appropriate and within limits approved →credit-issuance
- Credit was already issued recently or customer is ineligible ineligible →escalation-human
Credit Issuance
CreditAdjustmentModule.IssueCredit for credit.amount, linked to customer.accountNumber and billing.cycleAffected
BillingSystem.FetchAccountBalance to confirm updated billing.accountBalance post-credit
CRM.LogInteraction note: credit of credit.amount issued, reason, billing cycle, and agent ID
- Customer is satisfied and has no further questions confirmed →resolution-credit-issued
- Customer has an additional question or concern →inquiry-intake
Billing System Down
CaseManagement.CreateCase priority: normal, note: billing inquiry pending system restoration, link customer.accountNumber
CaseManagement.GenerateReferenceNumber assign to case.referenceNumber
CRM.LogContact note: billing system unavailable, case created, reference case.referenceNumber
- Customer confirms callback or email preference →resolution-callback-scheduled
- Customer is upset about the delay frustrated →emotional-acknowledgment
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered, reason, dispute amount billing.chargeAmount, account customer.accountNumber
CaseManagement.CreateCase priority: high, linked to customer.accountNumber, billing.chargeDescription, billing.chargeAmount
Resolution — Charge Explained
CRM.LogInteraction note: billing inquiry resolved via explanation, no credit issued
Resolution — Credit Issued
CRM.LogInteraction note: billing dispute resolved, credit issued, customer confirmed satisfied
Resolution — Callback Scheduled
CRM.LogInteraction note: callback or email follow-up scheduled, system outage, reference case.referenceNumber

Balance / Transaction Inquiry
Intake
- Customer asks about current balance balance-inquiry →identity-verification
- Customer asks about a specific transaction or unrecognized charge transaction-inquiry →identity-verification
- Customer immediately alleges fraud or unauthorized access fraud-allegation →escalation-fraud
- Intent unclear — ask a clarifying question, then →identity-verification
Identity Verification
OTPAuth.SendOTP to customer.phone
- Customer provides correct OTP verified IdentityVerification.Confirm →account-lookup
- Customer cannot receive OTP, offer security question fallback otp-failed →security-question-fallback
- Customer has already failed one attempt — verification.attemptCount equals 1 →second-attempt-warning
Second Attempt Warning
- Customer provides correct OTP on second try verified IdentityVerification.Confirm →account-lookup
- Customer fails again unverified →escalation-identity-failure
Security Question Fallback
IdentityVerification.FetchSecurityQuestion for customer.accountNumber
- Customer answers correctly verified IdentityVerification.Confirm →account-lookup
- Customer answers incorrectly unverified →escalation-identity-failure
Account Lookup
CoreBanking.GetAccountSummary for customer.accountNumber including account.status, account.balance, account.availableBalance, and customer.accountType
- Account returned successfully and status is active account-found →inquiry-routing
- Account has a hold, freeze, or legal flag on it account-flagged →escalation-account-flag
- System returns an error or times out lookup-error →system-error
Inquiry Routing
- Customer needs current balance confirmed balance-inquiry →balance-delivery
- Customer needs a specific transaction explained transaction-inquiry →transaction-lookup
- Customer now mentions an unexpected fee fee-concern →fee-review
Balance Delivery
CoreBanking.GetAccountSummary to retrieve account.balance and account.availableBalance for customer.accountType
- Customer is satisfied and has no further questions satisfied →resolution
- Customer wants to see recent transactions as well wants-transactions →transaction-lookup
- Customer disputes a charge or says a transaction looks wrong transaction-dispute →transaction-lookup
- Customer raises concern about an unexpected fee fee-concern →fee-review
Transaction Lookup
CoreBanking.GetTransactionHistory for customer.accountNumber over inquiry.dateRange
- Transactions returned successfully transactions-found →transaction-detail
- No transactions found in the requested range no-results →no-transaction-found
- System returns an error lookup-error →system-error
Transaction Detail
CRM.LogInteraction tagged balance-transaction-inquiry, linked to customer.accountNumber and transaction.id
- Customer recognizes the transaction and is satisfied satisfied →resolution
- Customer does not recognize the transaction and believes it is fraudulent fraud-allegation →escalation-fraud
- Customer recognizes the merchant but wants to dispute the amount amount-dispute →escalation-fraud
- Customer has a question about a fee within the transaction fee-concern →fee-review
No Transaction Found
- Customer provides more details — retry lookup →transaction-lookup
- Customer still cannot locate the transaction and suspects fraud fraud-allegation →escalation-fraud
- Customer is satisfied and wants to close satisfied →resolution
Fee Review
CoreBanking.GetFeeDetail for fee.type and fee.amount on customer.accountNumber
kb.fee-waiver-policy — check one-time waiver eligibility criteria for customer.accountType and account standing
- Customer is eligible and agent applies waiver waiver-applied CoreBanking.ApplyFeeWaiver →fee-waiver-confirmation
- Customer is not eligible for a waiver waiver-ineligible →fee-waiver-declined
- Customer is upset and escalation is warranted needs-escalation →escalation-human
Fee Waiver Confirmation
CRM.LogInteraction tagged fee-waiver-applied, linked to customer.accountNumber and fee.type
- Customer is satisfied satisfied →resolution
- Customer has an additional question →inquiry-routing
Fee Waiver Declined
- Customer accepts the outcome satisfied →resolution
- Customer wants to speak to a specialist or is upset escalation-requested →escalation-human
System Error
CRM.LogIncident tagged system-error, linked to customer.accountNumber and customer.phone
CRM.ScheduleCallback for customer.phone at next available slot
- Customer agrees to callback and conversation ends satisfied →resolution
- Customer wants to try again immediately →account-lookup
- Customer is very frustrated and demands to speak with someone now escalation-requested →escalation-human
Escalation — Fraud or Dispute
FraudDetection.FlagAccount for customer.accountNumber tagged suspected-fraud, linked to transaction.id
CRM.CreateCase priority: high, tagged fraud-dispute, linked to customer.accountNumber and transaction.id
→fraud-alert-follow-up
Escalation — Identity Verification Failed
CRM.LogIncident tagged verification-failure, linked to customer.phone
CRM.CreateCase priority: high, tagged identity-lockout
Escalation — Account Flag
CRM.CreateCase priority: high, tagged account-flag-review, linked to customer.accountNumber
CRM.LogInteraction tagged account-flag-escalation
→escalation-human
Escalation — Human Specialist
CRM.CreateCase priority: high, tagged specialist-handoff, linked to customer.accountNumber
CRM.LogInteraction tagged escalation-human, with case summary
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to customer.accountNumber

Amenity / Service Request
Greet and Identify
- Guest provides name and room number confirmed →verify-reservation
- Guest expresses urgency or frustration upfront frustrated →priority-flag
- Guest message is unclear or incomplete unclear →greet-and-identify
Verify Reservation
PMS.LookupReservation by guest.roomNumber and guest.name to confirm reservation.status
- Active reservation found, room matches confirmed →capture-request
- Room number not found or name mismatch unverified →secondary-verification
- Reservation is checked out or future-dated inactive →reservation-mismatch
Secondary Verification
PMS.LookupReservation by guest.reservationId as fallback
- Identity confirmed on second attempt confirmed →capture-request
- Identity still cannot be confirmed unverified →escalation-human
Reservation Mismatch
- Guest believes it is an error →escalation-human
- Guest acknowledges wrong room or wrong stay →greet-and-identify
Capture Request
kb.amenity-catalog — check available items, standard fees, and any quantity limits per room type
- Guest states item or service clearly confirmed →check-availability
- Guest is unsure what is available unclear →suggest-options
- Guest raises a safety or accessibility concern safety →escalation-human
Suggest Options
- Guest selects an item or service confirmed →check-availability
- Guest still uncertain, requests human assistance unclear →escalation-human
Check Availability
HousekeepingDispatch.CheckInventory for request.item against current stock and department capacity
- Item is available and no fee applies available →confirm-and-dispatch
- Item is available with an associated fee fee_required →disclose-fee
- Item is unavailable or out of stock unavailable →offer-alternative
- Request is a late checkout or policy-bound service →policy-check
Disclose Fee
- Guest accepts the fee confirmed →confirm-and-dispatch
- Guest declines the fee declined →offer-alternative
- Guest disputes the fee frustrated →escalation-human
Policy Check
kb.hotel-stay-policies — check late checkout availability, occupancy level, and any blackout conditions for reservation.checkoutDate
- Late checkout is available within policy window available →confirm-and-dispatch
- Hotel is at full occupancy or request falls outside policy window unavailable →policy-limitation
Policy Limitation
- Guest accepts the alternative confirmed →confirm-and-dispatch
- Guest requests a manager or fee waiver escalate →escalation-human
- Guest declines and has no further requests declined →resolution-close
Offer Alternative
- Suitable alternative identified and guest accepts confirmed →confirm-and-dispatch
- Guest declines all alternatives declined →escalation-human
Confirm and Dispatch
HousekeepingDispatch.CreateTicket for request.item to room guest.roomNumber, urgency request.urgency, notes request.notes — returns dispatch.ticketId and dispatch.eta
CRM.LogInteraction for guest.reservationId tagged amenity-request, linked to dispatch.ticketId
- Guest confirms and has nothing further confirmed →resolution-close
- Guest has an additional request additional →capture-request
- Guest expresses dissatisfaction with the expected wait time frustrated →priority-flag
Priority Flag
HousekeepingDispatch.EscalateTicket for dispatch.ticketId, set priority: urgent — returns updated dispatch.eta
CRM.LogInteraction for guest.reservationId tagged priority-escalation
- Re-dispatch confirmed and guest is satisfied confirmed →resolution-close
- Guest remains dissatisfied after re-dispatch frustrated →escalation-human
Escalation to Human Agent
CRM.LogInteraction for guest.reservationId tagged escalation, with full request context and dispatch.ticketId
GuestMessaging.NotifyStaff to #guest-services-ops with guest.name, guest.roomNumber, request.item, and reason for escalation
Resolution / Close
CRM.LogInteraction for guest.reservationId tagged resolved, linked to dispatch.ticketId

SIM Swap / Number Porting
Intake & Request Classification
- Customer requests SIM swap (upgrade or device change) sim-swap →identity-verification
- Customer requests port-out to another carrier port-out →identity-verification
- Customer reports lost or stolen SIM lost-stolen →identity-verification
- Customer reports a SIM change they did not request unauthorized →suspected-hijacking
Identity Verification
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails on first attempt unverified →verification-retry
- Verification fails a second time or customer cannot provide credentials failed →verification-lockout
Verification Retry
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails again failed →verification-lockout
Verification Lockout
CRM.LogFailedVerification for customer.phoneNumber, flag request as locked
CRM.AddNote to account.id: "Identity verification failed — in-store ID required."
Account Eligibility Check
CRM.LookupAccount by customer.phoneNumber, retrieve account.id, account.fraudFlag, account.portFreeze
- Account has an active fraud flag fraud-flag →fraud-hold-escalation
- Account has an active port freeze port-freeze →fraud-hold-escalation
- Account is clear and eligible eligible →request-routing
Request Routing
- Request is a SIM swap sim-swap →sim-swap-execution
- Request is a port-out port-out →port-out-execution
- Request is for a lost or stolen SIM lost-stolen →lost-stolen-sim
SIM Swap Execution
SubscriberProvisioning.ValidateICCID for sim.newICCID
- ICCID is valid and unassigned iccid-valid →sim-swap-confirm
- ICCID is invalid or already in use iccid-invalid →sim-swap-iccid-error
SIM ICCID Error
- Customer provides a new ICCID to try →sim-swap-execution
- Customer cannot provide a valid ICCID →escalation-human-agent
SIM Swap Confirm
- Customer confirms confirmed →sim-swap-provisioning
- Customer cancels or is unsure cancelled →sim-swap-cancelled
SIM Swap Provisioning
SubscriberProvisioning.ExecuteSIMSwap for account.id, new ICCID sim.newICCID, deactivate old SIM
CRM.LogActivity on account.id: "SIM swap completed, new ICCID recorded."
CarrierMessagingGateway.SendSMS to customer.phoneNumber: "Your SIM swap is complete. If your service is not active within 15 minutes, please restart your device."
→resolution
SIM Swap Cancelled
→resolution
Port-Out Execution
NumberPortabilityClearinghouse.LookupCarrier for port.receivingCarrier
- Carrier found and eligible for port carrier-valid →port-auth-code-generation
- Carrier lookup fails or carrier not found carrier-not-found →port-lookup-failure
Port Authorization Code Generation
NumberPortabilityClearinghouse.GeneratePAC for customer.phoneNumber, linked to account.id
CRM.LogActivity on account.id: "Port-out PAC generated for port.receivingCarrier."
→resolution
Port Lookup Failure
CRM.CreateTicket for account.id: "Port-out request — receiving carrier lookup failed. Carrier: port.receivingCarrier. Manual follow-up required."
CRM.LogActivity on account.id: "Carrier lookup failed during port-out request."
- Customer provides callback number callback-provided →port-callback-scheduled
- Customer prefers email email-preferred →port-callback-scheduled
- Customer wants to wait and try again retry →port-out-execution
Port Callback Scheduled
CRM.ScheduleCallback on case.id with customer contact preference
→resolution
Lost or Stolen SIM
SubscriberProvisioning.SuspendSIM for customer.phoneNumber, reason: lost-stolen
CRM.LogActivity on account.id: "SIM suspended — customer reported lost or stolen. Replacement process initiated."
FraudManagement.NotifyLostStolen for account.id
- Customer wants replacement shipped ship-replacement →replacement-sim-dispatch
- Customer will pick up in store store-pickup →store-pickup-guidance
- Customer needs more time to decide undecided →resolution
Replacement SIM Dispatch
SubscriberProvisioning.OrderReplacementSIM for account.id, ship to address on file
CRM.LogActivity on account.id: "Replacement SIM ordered — shipping to address on file."
CarrierMessagingGateway.SendSMS to customer.email: "Your replacement SIM has been ordered and will arrive in 3 to 5 business days. Activation instructions will be included."
→resolution
Store Pickup Guidance
CRM.LogActivity on account.id: "Customer advised to pick up replacement SIM in store."
→resolution
Suspected SIM Hijacking
SubscriberProvisioning.SuspendAccount for customer.phoneNumber, reason: suspected-hijacking
FraudManagement.RaiseSIMHijackingAlert for account.id
CRM.CreateTicket for account.id: "Suspected SIM hijacking — customer did not authorize swap. Immediate fraud team review required."
→escalation-fraud-team
Fraud Hold Escalation
FraudManagement.EscalateAccount for account.id, reason: port-freeze-or-fraud-flag
CRM.LogActivity on account.id: "SIM/port request blocked — active fraud flag or port freeze. Escalated to fraud team."
→escalation-fraud-team
Escalation — Fraud Team
FraudManagement.CreateCase for account.id, priority: high
CRM.NotifyFraudTeam with account.id, customer.phoneNumber, case summary
Escalation — Human Agent
CRM.CreateTicket for account.id: "Customer requires human agent assistance — could not complete SIM swap or port automatically."
Resolution
- Customer has another request new-request →intake
- Customer is done done →close
Close
CRM.CloseInteraction for account.id

Returns / Exchange Request
Intake
- Customer provides order ID and email →order-verification
- Customer says they don't have their order ID no_order_id →order-lookup-fallback
- Customer immediately states item is damaged or wrong damaged_wrong →damaged-wrong-item
Order Lookup Fallback
CRM.LookupOrder by customer.name or customer.email or lookup.method
- Order found →order-verification
- Order not found after lookup CRM.LogAttempt →escalation-human
Order Verification
OrderManagement.GetOrder using order.id and customer.email
kb.return-exchange-policy — confirm return window, final sale rules, and eligible items for order.purchaseDate
- Order verified and item is within return window →reason-and-preference
- Order verified but item is outside return window outside_window →outside-return-window
- Order verified and item is marked final sale final_sale →final-sale-ineligible
- Order cannot be verified after attempts →escalation-human
Reason and Preference
- Customer states reason and wants a refund wants_refund →refund-path
- Customer states reason and wants an exchange wants_exchange →exchange-path
- Customer is unsure — offer both options Say: "I can process either a full refund back to your original payment method or place a new exchange order — whichever works best for you." →reason-and-preference
Refund Path
- Refund is eligible and amount is within auto-approve threshold approved →generate-return-label
- Refund amount exceeds threshold high_value →refund-approval
- Item flagged as ineligible based on stated reason ineligible →policy-exception-check
Generate Return Label
ReturnsManagement.CreateReturnShipment for item.sku linked to order.id
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, return instructions, and expected refund timeline
→resolution
Exchange Path
ReturnsManagement.CheckEligibility for item.sku and order.id
OrderManagement.CheckInventory for the requested replacement item
- Replacement item is in stock →place-exchange-order
- Replacement item is out of stock Say: "Unfortunately the item you requested isn't available right now. I can set up a refund instead, or hold the exchange until it's restocked — which would you prefer?" →reason-and-preference
- Item is ineligible for exchange ineligible →policy-exception-check
Place Exchange Order
OrderManagement.CreateExchangeOrder linked to order.id, capture exchange.orderId
ReturnsManagement.CreateReturnShipment for original item.sku
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, exchange.orderId, and exchange confirmation details
→resolution
Refund Approval
- Approved approved →generate-return-label
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Damaged or Wrong Item
OrderManagement.GetOrder using order.id and customer.email
CRM.LogIssue tagged damaged-or-wrong, linked to order.id
- Low value order — waive return and reship immediately OrderManagement.CreateReplacementOrder EmailNotification.Send →resolution
- Higher value order — request photo evidence then reship evidence_required Say: "Could you reply with a photo of the item? Once I have that I'll get a replacement out to you right away." →damaged-evidence-review
- Ambiguous or high-risk needs_review →escalation-human
Damaged Evidence Review
OrderManagement.CreateReplacementOrder linked to order.id
ReturnsManagement.WaiveReturn for item.sku
EmailNotification.Send to customer.email with replacement order confirmation and apology note
→resolution
Outside Return Window
kb.return-exchange-policy — check goodwill store credit eligibility for borderline cases
- Purchase is borderline outside window (within 7 days past deadline) — offer store credit as goodwill gesture Say: "As a one-time courtesy, I'd be happy to offer you store credit for the value of the item. Would that work for you?" →goodwill-store-credit
- Purchase is well outside window — explain policy firmly outside_window_firm Say: "Unfortunately I'm not able to make exceptions beyond our standard window, but I'd love to help you with anything else." →resolution
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Goodwill Store Credit
ReturnsManagement.IssueStoreCredit for order.total linked to customer.email
EmailNotification.Send to customer.email with store credit amount and redemption instructions
CRM.LogNote tagged goodwill-credit, linked to order.id
→resolution
Final Sale Ineligible
kb.return-exchange-policy — confirm no exceptions apply for final sale items
- Customer accepts the policy →resolution
- Customer reports the item arrived damaged or wrong damaged_wrong →damaged-wrong-item
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Policy Exception Check
- Exception applies — proceed with return or exchange →generate-return-label
- No exception — inform customer and offer alternative support →final-sale-ineligible
- Requires manager judgment needs_review →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged returns-escalation, linked to order.id and customer.email
Slack.Notify to #returns-escalations with case summary, order.id, order.total, and return.reason
Resolution
CRM.UpdateCase status: resolved, linked to order.id

Prior Authorization Status Inquiry
Intake & Caller Identification
- Caller identifies as the patient or member confirmed →member-identity-verification
- Caller identifies as provider staff or office provider →provider-identity-verification
- Caller relationship unclear or caller does not respond unclear →intake-verification
Member Identity Verification
EligibilitySystem.VerifyMember using member.id and member.dob
CRM.PullMemberRecord for member.id
- Identity verified, coverage active verified →auth-lookup
- Identity verified but coverage inactive coverage_inactive →coverage-issue
- Identity cannot be confirmed after two attempts unverified →escalation-human
Provider Identity Verification
ProviderDirectory.VerifyProvider using provider.npi or provider.practiceName
EligibilitySystem.VerifyMember using member.id and member.dob
- Provider and member both verified, coverage active verified →auth-lookup
- Member coverage inactive coverage_inactive →coverage-issue
- Provider NPI not found in directory provider_not_found →escalation-human
- Identity cannot be confirmed unverified →escalation-human
Coverage Issue
CRM.LogCoverageFlag for member.id with status member.coverageStatus
- Caller wants to continue to auth lookup regardless →auth-lookup
- Caller wants to resolve coverage issue first →escalation-human
Authorization Lookup
AuthManagement.LookupAuthorization using auth.referenceNumber or member.id and auth.submittedDate and medication.name or procedure.name
- Authorization record found, status is pending pending →status-pending
- Authorization record found, status is approved approved →status-approved
- Authorization record found, status is denied denied →status-denied
- Authorization record found, clinical info still outstanding info_outstanding →clinical-info-outstanding
- Authorization record cannot be located not_found →auth-not-found
Status — Pending
AuthManagement.CheckReviewDeadline for auth.referenceNumber
- Request is still within the payer's mandated review timeframe →pending-next-steps
- Request has exceeded the mandated review timeframe overdue →escalation-urgent
Pending — Next Steps
CRM.LogInteraction for member.id with status pending and next review date auth.reviewDeadline
- Caller has additional questions →intake-verification
- Caller is satisfied and ends interaction →resolution
Status — Approved
CRM.LogInteraction for member.id with outcome approved
Portal.ConfirmLetterDelivery for auth.referenceNumber
- Caller needs the approval reference number or letter resent →resend-approval
- Caller has no further questions →resolution
Resend Approval Letter
Portal.ResendApprovalLetter for auth.referenceNumber to member.id
CRM.LogInteraction noting resend requested
- Letter resent successfully letter_sent →resolution
- Delivery fails or address needs updating delivery_failed →escalation-human
Status — Denied
kb.appeal-rights-policy — confirm appeal window, peer-to-peer review rights, and deadline rules for auth.denialReason
CRM.LogDenialOutcome for member.id and auth.referenceNumber with reason auth.denialReason
- Denial involves urgent or life-sustaining treatment urgent →escalation-urgent
- Caller confirms intent to appeal appeal_intent →escalation-appeal
- Caller wants to discuss denial reason further →denial-detail
- Caller accepts denial and has no further questions →resolution
Denial Detail
kb.clinical-criteria-policy — look up criteria applied to medication.name or procedure.name
- Caller now wants to initiate appeal appeal_intent →escalation-appeal
- Caller has no further questions →resolution
Clinical Info Outstanding
Portal.SendClinicalInfoRequest to provider.npi with list auth.outstandingDocs
CRM.LogInteraction for member.id noting outstanding documents and notification sent
- Notification sent and caller is satisfied notified →resolution
- Provider disputes what is listed as outstanding disputed →escalation-human
Authorization Not Found
CRM.LogInteraction for member.id noting authorization not found and submission details provided
- Caller wants to escalate to intake team for investigation escalate_intake →escalation-intake
- Caller will resubmit and has no further questions →resolution
Escalation — Urgent or Life-Sustaining Denial
CRM.FlagUrgentCase for member.id and auth.referenceNumber with priority high
AuthManagement.EscalateForExpediteReview for auth.referenceNumber
CRM.LogInteraction noting urgent escalation initiated
Escalation — Formal Appeal
CRM.OpenAppealCase for member.id and auth.referenceNumber with deadline auth.appealDeadline
Portal.SendAppealInstructions to member.id and provider.npi
CRM.LogInteraction noting appeal case opened
Escalation — Intake Investigation
CRM.CreateIntakeInvestigationTicket for member.id with submission details auth.submittedDate and medication.name or procedure.name
CRM.LogInteraction noting intake escalation for missing authorization record
- Caller has additional questions →intake-verification
- Caller is satisfied →resolution
Escalation — Human Agent
CRM.LogInteraction for member.id noting reason for escalation
CRM.RouteToSpecialist priority standard
Resolution
CRM.LogInteraction for member.id with outcome resolved and summary of interaction

Policy Renewal Reminder / Confirmation
Renewal Outreach
Twilio.SendSMS to customer.phone: "Hi customer.name, your policy policy.number is due for renewal on policy.renewal_date. Your updated premium is policy.renewal_premium. Reply CONFIRM to renew, CHANGE to update coverage, or call us to speak with an agent."
Twilio.SendEmail to customer.email with full renewal notice including policy.coverage_summary, policy.renewal_premium, and policy.expiry_deadline.
- Customer responds CONFIRM or calls to confirm renewal confirmed →identity-verification
- Customer responds CHANGE or requests a coverage update change_coverage →identity-verification
- Customer calls or replies to dispute the premium amount dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response within 5 days Twilio.SendSMS follow-up reminder, then →renewal-outreach-followup
Renewal Outreach Follow-up
Twilio.SendSMS to customer.phone: "Reminder: your policy policy.number expires on policy.expiry_deadline. Please confirm your renewal to avoid a lapse in coverage. Reply CONFIRM or call us."
Twilio.SendEmail to customer.email with final renewal warning and policy.expiry_deadline highlighted.
- Customer responds or calls to confirm confirmed →identity-verification
- Customer responds or calls to dispute or change dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response before expiry deadline CRM.LogNoResponse, flag policy for lapse review →escalation-lapse-review
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob and customer.ssn_last4 against policy.number
- Identity verified successfully identity_verified →policy-review
- Identity cannot be verified after two attempts identity_failed →escalation-human
Policy Review
PolicyManagement.GetPolicyDetails for policy.number to load policy.coverage_summary, policy.current_premium, policy.renewal_premium, and policy.renewal_date.
BillingPlatform.GetAccountBalance for policy.number to check billing.outstanding_balance.
- Customer has an outstanding balance and billing.outstanding_balance is greater than zero balance_due →outstanding-balance-resolution
- Customer's intent was to dispute the premium dispute_premium →premium-dispute
- Customer's intent was to change coverage change_coverage →coverage-change-request
- Customer's intent was to cancel cancel_intent →cancellation-intent
- No outstanding balance and customer is ready to confirm renewal confirmed →renewal-confirmation
Outstanding Balance Resolution
BillingPlatform.GetPaymentOptions for policy.number
- Customer agrees to pay balance in full now →payment-processing
- Customer agrees to a payment plan and plan is within policy limits payment_plan_arranged →renewal-confirmation
- Customer refuses to pay or situation is too complex for self-service balance_unresolved →escalation-billing
Premium Dispute
UnderwritingEngine.GetRateChangeFactors for policy.number
kb.rate-change-explanations — retrieve standard explanations for common rate change drivers
- Customer accepts the explanation and is ready to renew accepted →renewal-confirmation
- Customer wants to explore lower-cost coverage tiers explore_options →coverage-change-request
- Customer formally disputes the rate and wants an official review formal_dispute →escalation-underwriting
- Customer still intends to cancel after explanation cancel_intent →cancellation-intent
Coverage Change Request
CRM.LogCoverageChangeRequest for policy.number with customer's requested modifications.
- Requested changes are within auto-approval parameters changes_approved →renewal-confirmation
- Requested changes require underwriter review needs_underwriter →escalation-underwriting
- Customer decides not to change coverage after all and wants to renew as-is confirmed →renewal-confirmation
Cancellation Intent
- Price is the concern price_concern →premium-dispute
- Coverage or service concern coverage_concern →coverage-change-request
- Customer is switching to another insurer switching_insurer →retention-offer
- Customer confirms firm decision to cancel after retention scripting firm_cancel →cancellation-logging
Retention Offer
kb.retention-offers — look up eligible discounts, bundling options, and loyalty incentives for policy.number
CRM.LogRetentionAttempt for policy.number
- Customer accepts a retention offer and agrees to renew retention_accepted →renewal-confirmation
- Customer declines all offers and confirms cancellation intent firm_cancel →cancellation-logging
- Situation is complex or customer is very high value high_value_at_risk →escalation-retention
Cancellation Logging
PolicyManagement.LogNonRenewalIntent for policy.number with cancellation reason.
CRM.UpdateCustomerRecord with non-renewal status and reason code.
DocumentDelivery.SendNonRenewalConfirmation to customer.email.
Renewal Confirmation
- Customer confirms existing payment method use_existing_payment →payment-processing
- Customer wants to update payment method update_payment →payment-method-update
- Customer wants to schedule payment for a later date schedule_payment →payment-scheduling
Payment Method Update
BillingPlatform.UpdatePaymentMethod for policy.number
- Payment method updated successfully payment_updated →payment-processing
- Payment method update fails or customer has trouble payment_update_failed →escalation-billing
Payment Scheduling
BillingPlatform.SchedulePayment for policy.number on customer's chosen date
- Payment successfully scheduled payment_scheduled →renewal-complete
- Requested date is after expiry deadline date_invalid →escalation-billing
Payment Processing
BillingPlatform.ProcessPayment for policy.number using billing.payment_method for policy.renewal_premium.
- Payment processed successfully payment_success →renewal-complete
- Payment declined or failed payment_failed →escalation-billing
Renewal Complete
PolicyManagement.ConfirmRenewal for policy.number and generate renewal.confirmation_number.
DocumentDelivery.SendRenewalConfirmation to customer.email with updated policy documents, policy.renewal_premium, and renewal.confirmation_number.
CRM.UpdateCustomerRecord with renewal status and renewal.confirmation_number.
Escalation — Human Agent
CRM.CreateCase priority: high, reason: identity-verification-failure, linked to policy.number.
Twilio.NotifyAgent on #renewal-support-queue with case summary and policy.number.
Escalation — Underwriting Review
CRM.CreateCase priority: high, reason: underwriting-review-required, linked to policy.number.
UnderwritingEngine.SubmitReviewRequest for policy.number with supporting details and customer's stated concerns.
Twilio.NotifyAgent on #underwriting-queue with case summary.
Escalation — Billing
CRM.CreateCase priority: high, reason: billing-issue, linked to policy.number.
Twilio.NotifyAgent on #billing-support-queue with case summary, billing.outstanding_balance, and policy.renewal_date.
Escalation — Retention Specialist
CRM.CreateCase priority: urgent, reason: high-value-cancellation-risk, linked to policy.number.
CRM.FlagForRetentionSpecialist for policy.number.
Twilio.NotifyAgent on #retention-team with customer summary, policy.renewal_premium, and cancellation reason.
Escalation — Lapse Review
PolicyManagement.FlagPolicyForLapse for policy.number.
CRM.CreateCase priority: high, reason: no-response-lapse-risk, linked to policy.number.
Twilio.SendSMS to customer.phone: "Urgent: your policy policy.number has not been renewed and is at risk of lapsing on policy.expiry_deadline. Please call us immediately to avoid a gap in coverage."

Payment / Billing Issue
Identity Verification
CRM.LookupAccount using customer.email
- Account found, identity confirmed →transaction-lookup
- Account not found or details do not match →identity-retry
- Customer reports suspected fraud or unauthorized access →escalation-fraud
Identity Retry
CRM.LookupAccount using customer.email
- Account found on second attempt →transaction-lookup
- Still unable to locate account →escalation-back-office
Transaction Lookup
OrderManagement.GetOrder using order.id
PaymentProcessor.GetTransaction using transaction.id
- Transaction located and discrepancy confirmed →discrepancy-assessment
- Transaction found but charge appears valid →valid-charge-explanation
- Transaction cannot be found in any system →manual-collection
Discrepancy Assessment
- Duplicate or erroneous charge confirmed, refund not yet issued →refund-initiation
- Charge is valid upon review →valid-charge-explanation
- Refund was already issued, customer has not received it →refund-status-check
- Payment failed due to card or funds issue →failed-payment-recovery
- Refund amount exceeds agent authorization limit high_value →escalation-approval
- Issue cannot be reproduced or confirmed in any system →manual-collection
Refund Initiation
RefundPortal.InitiateRefund for transaction.id, amount refund.amount, linked to customer.accountId
EmailNotifications.Send to customer.email with refund confirmation, refund.id, and refund.timeline
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Valid Charge Explanation
kb.billing-policy — retrieve applicable policy documentation (restocking fees, subscription renewals, promotional terms)
EmailNotifications.Send to customer.email with charge explanation and relevant kb.billing-policy documentation
- Customer accepts the explanation →resolution-confirmed
- Customer disputes the explanation and still believes charge is incorrect →escalation-back-office
- Customer reports the charge was not authorized by them →escalation-fraud
Refund Status Check
PaymentProcessor.GetRefundStatus using refund.id
RefundPortal.CheckRefundHistory for customer.accountId
EmailNotifications.Send to customer.email with refund.id, refund.status, and bank follow-up instructions
- Customer is satisfied with the status and reference number →resolution-confirmed
- Refund is still within processing window, customer accepts →resolution-confirmed
- Refund is overdue and processor shows an error or failed status refund_failed →escalation-back-office
Failed Payment Recovery
- Error message indicates expired card card_expired →update-payment-method
- Error message indicates insufficient funds insufficient_funds →update-payment-method
- Error message is unclear or system shows another reason unknown_error →escalation-back-office
Update Payment Method
kb.billing-policy — retrieve payment update and retry procedures
EmailNotifications.Send to customer.email with payment update link and retry instructions
- Customer confirms they have updated their payment method →payment-retry-confirmed
- Customer is unable to update payment method and needs further help →escalation-back-office
Payment Retry Confirmed
EmailNotifications.Send to customer.email with payment retry confirmation and order.id status
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Manual Collection
CRM.CreateCase for customer.accountId, tagged billing-discrepancy, with transaction.amount, transaction.date, payment.method, and error.message
EmailNotifications.Send to customer.email confirming case has been opened with expected response timeline
- Details collected and case created →escalation-back-office
Escalation — Back-Office Review
CRM.CreateCase priority: high, tagged billing-review, linked to customer.accountId and order.id
CRM.AssignToBackOfficeQueue with all collected transaction details
EmailNotifications.Send to customer.email with case reference, summary of issue, and expected resolution timeline
Escalation — High-Value Refund Approval
- Approved approved →refund-initiation
- Rejected rejected →valid-charge-explanation
- No response within 60 min →escalation-back-office
Escalation — Fraud or Unauthorized Access
CRM.CreateCase priority: urgent, tagged fraud-suspected, linked to customer.accountId
CRM.FlagAccount for customer.accountId with fraud-hold status
PaymentProcessor.NotifyFraudTeam with transaction.id and customer.accountId
EmailNotifications.Send to customer.email with fraud case reference and next steps
Resolution Confirmed
CRM.UpdateCase status: resolved, linked to customer.accountId and order.id
EmailNotifications.Send to customer.email with resolution summary and case closure confirmation

Password / Login Recovery
Intake — Login Issue
- Customer states forgotten password or cannot log in forgotten-password →identity-verification
- Customer states account appears locked or suspended account-locked →account-status-check
- Customer states they did not initiate any lockout or suspects unauthorised access unauthorised-access →escalation-fraud-review
- Issue is unclear or customer is unsure unclear CRM.LogInteraction, ask one clarifying question →identity-verification
Identity Verification
CRM.PullCustomerRecord using customer.registeredEmail or customer.accountNumber
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
- Identity confirmed on first or second attempt identity-confirmed →account-status-check
- Identity fails first attempt identity-failed-once CRM.IncrementAttemptCount, prompt retry →identity-verification-retry
- Account already shows two or more failed attempts max-attempts-reached →escalation-identity-lockout
Identity Verification — Retry
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
CRM.IncrementAttemptCount
- Identity confirmed on retry identity-confirmed →account-status-check
- Identity fails again on retry identity-failed-twice →escalation-identity-lockout
Account Status Check
CoreBanking.GetAccountStatus for customer.accountNumber
FraudMonitoring.CheckFraudFlag for customer.accountNumber
- Account is clear with no flags or locks account-clear →contact-info-check
- Account is locked due to repeated failed login attempts account-locked-cooldown →cooldown-notice
- Account is flagged for suspicious or fraudulent activity fraud-flag-active →escalation-fraud-review
- Account status is suspended or otherwise restricted account-suspended →escalation-account-review
Contact Info Check
CRM.VerifyContactInfo for customer.registeredEmail and customer.registeredPhone
- Registered email or phone confirmed current by customer contact-confirmed →mfa-challenge
- Customer states contact info is outdated or no longer accessible contact-outdated →escalation-manual-id-verification
MFA Challenge
MFAOTP.SendCode to customer.registeredEmail or customer.registeredPhone based on reset.linkDeliveryMethod
- Customer provides correct OTP code otp-valid →password-reset-initiation
- Customer provides incorrect code otp-invalid →escalation-mfa-failure
- Customer states they did not receive the code otp-not-received MFAOTP.ResendCode, confirm delivery method →mfa-challenge
- Customer states the contact they received it on is not theirs otp-wrong-contact →escalation-fraud-review
Password Reset Initiation
CoreBanking.InitiatePasswordReset for customer.accountNumber
EmailSMSDelivery.SendResetLink to customer.registeredEmail or customer.registeredPhone
- Customer confirms new password set and login successful access-restored →resolution-access-confirmed
- Customer states link expired or not received link-expired EmailSMSDelivery.ResendResetLink →password-reset-initiation
- Customer states they are still unable to log in after reset reset-failed →escalation-account-review
Cooldown Notice
CoreBanking.GetCooldownStatus for customer.accountNumber
- Customer acknowledges and agrees to wait customer-accepts-cooldown →resolution-cooldown-advised
- Customer states they did not make those login attempts customer-denies-attempts →escalation-fraud-review
Resolution — Access Confirmed
CRM.LogInteraction tagged password-reset-successful, linked to customer.accountNumber
CoreBanking.ClearLockStatus for customer.accountNumber
Resolution — Cooldown Advised
CRM.LogInteraction tagged cooldown-in-effect, linked to customer.accountNumber
Escalation — Identity Lockout
CoreBanking.LockAccount for customer.accountNumber
CRM.CreateCase priority: high, tagged identity-verification-failed, linked to customer.accountNumber
CRM.LogInteraction tagged max-attempts-reached
Escalation — Fraud Review
CoreBanking.FreezeAccount for customer.accountNumber
FraudMonitoring.EscalateCase for customer.accountNumber, flag: suspicious-activity
CRM.CreateCase priority: high, tagged fraud-review-required, linked to customer.accountNumber
CRM.LogInteraction tagged fraud-flag-escalation
Escalation — Manual ID Verification
CRM.CreateCase priority: medium, tagged outdated-contact-info-manual-review, linked to customer.accountNumber
CRM.LogInteraction tagged contact-info-outdated-escalation
Escalation — MFA Failure
CRM.CreateCase priority: medium, tagged mfa-failure-escalation, linked to customer.accountNumber
CRM.LogInteraction tagged otp-verification-failed
Escalation — Account Review
CRM.CreateCase priority: medium, tagged account-status-restricted, linked to customer.accountNumber
CRM.LogInteraction tagged account-review-escalation

Order Modification / Cancellation
Identity Verification
CRM.LookupCustomer using provided email or phone against customer.email or customer.phone
- Identity verified successfully confirmed →order-status-check
- Customer cannot provide matching credentials unverified →identity-failure
- Customer provides partial info — try one additional prompt partial →identity-retry
Identity Retry
CRM.LookupCustomer with alternate verification field
- Identity confirmed on second attempt confirmed →order-status-check
- Still unable to verify unverified →identity-failure
Identity Failure
EmailNotification.Send to customer.email with self-service portal link and instructions
Order Status Check
OrderManagement.GetOrder using order.id to retrieve order.status, order.items, order.total, order.shippingAddress, order.paymentMethod
kb.order-modification-policy — check modification and cancellation window rules against order.status
- Order is still in a modifiable state (not yet shipped) confirmed →change-intent
- Order has already shipped or is out for delivery shipped →order-already-shipped
- Order is flagged for fraud review fraud_flag →escalation-fraud
Change Intent
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to change item or quantity item_change →item-modification
- Customer wants to update shipping address address_change →address-modification
- Customer is unsure or wants to discuss options unclear →change-intent
Cancellation Confirm
kb.order-cancellation-policy — confirm refund eligibility and timeline for order.paymentMethod
- Customer confirms cancellation confirmed →process-cancellation
- Customer changes their mind or wants partial cancellation instead partial →item-modification
- Customer wants to reconsider — pause and re-engage uncertain →change-intent
Process Cancellation
OrderManagement.CancelOrder for order.id
PaymentProcessor.InitiateRefund for refund.amount to order.paymentMethod
EmailNotification.Send to customer.email with cancellation confirmation and refund.timeline
→resolution-complete
Item Modification
OrderManagement.CheckInventory for the requested replacement or updated quantity against change.requested
- Requested item or quantity is available →apply-item-change
- Requested substitution is out of stock out_of_stock →offer-alternatives
- Customer wants to remove item and remainder falls below free-shipping threshold below_threshold →shipping-cost-warning
Offer Alternatives
OrderManagement.GetSimilarItems for item.substitute recommendations
- Customer selects an available alternative confirmed →apply-item-change
- Customer wants to remove the item instead remove →shipping-cost-warning
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to keep the original order as-is keep →resolution-complete
Shipping Cost Warning
- Customer accepts the added shipping cost and confirms removal confirmed →apply-item-change
- Customer decides to keep the item keep →resolution-complete
- Customer wants to cancel the full order instead cancel →cancellation-confirm
Apply Item Change
OrderManagement.ModifyOrder for order.id with updated order.items and quantities
PaymentProcessor.AdjustCharge if order total has changed, updating refund.amount as applicable
EmailNotification.Send to customer.email with updated order summary
- Customer has another change to make more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Address Modification
OrderManagement.UpdateShippingAddress for order.id with new order.shippingAddress
EmailNotification.Send to customer.email confirming the address update
- Customer has another change more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Order Already Shipped
kb.return-policy — retrieve return window and process details
- Customer wants return instructions sent confirmed EmailNotification.Send to customer.email with return instructions →resolution-complete
- Customer disputes the charge or is not satisfied disputed →escalation-dispute
- Customer accepts the outcome accepted →resolution-complete
Escalation — Fraud Review
CRM.CreateCase priority: high, tagged fraud-review, linked to order.id
Slack.Notify to #fraud-ops with order.id, customer.email, and order summary
Escalation — Dispute or High-Value Refund
CRM.CreateCase priority: high, tagged charge-dispute, linked to order.id and refund.amount
Slack.Notify to #support-escalations with order.id, customer.name, refund.amount, and case summary
Resolution Complete
CRM.UpdateCase status: resolved, linked to order.id

Loyalty / Rewards Inquiry
Intake & Account Lookup
LoyaltyPlatform.LookupAccount by customer.email or customer.phone
- Account found, no fraud flag →identity-verification
- Account found with fraud flag fraud_flag →escalation-human
- Account not found →account-not-found
Identity Verification
IdentityVerification.Verify using customer.fullName and customer.accountId
- Identity confirmed on first or second attempt verified →inquiry-classification
- Identity fails after two attempts unverified →escalation-human
Account Not Found
LoyaltyPlatform.LookupAccount secondary attempt using alternate customer.email or customer.phone
- Account found on secondary lookup →identity-verification
- Account still not found after secondary attempt →escalation-human
Inquiry Classification
- Customer asks about balance or tier status balance_inquiry →balance-and-tier-summary
- Customer wants to redeem rewards redeem →redemption-assistance
- Customer reports missing points after a purchase missing_points →missing-points-investigation
- Customer asks about or disputes expiration expiration_inquiry →expiration-review
- Customer expresses frustration or perceived unfair treatment frustrated →empathy-and-policy-explanation
Balance & Tier Summary
LoyaltyPlatform.GetAccountDetails for customer.accountId
kb.loyalty-rewards-policy — confirm tier benefits and point value rules
- Customer wants to know how to redeem redeem →redemption-assistance
- Customer is satisfied and has no further questions resolved →resolution
- Customer raises a new concern new_concern →inquiry-classification
Redemption Assistance
kb.loyalty-rewards-policy — retrieve current redemption options, minimum threshold, and any active promotions
LoyaltyPlatform.GetRedemptionOptions for customer.accountId
- Customer wants to apply reward to a current or upcoming purchase LoyaltyPlatform.ApplyReward →redemption-confirmed
- Customer wants to know options only, no redemption yet info_only →resolution
- Customer's balance is below the redemption minimum below_minimum →below-minimum-notice
Below Minimum Notice
kb.loyalty-rewards-policy — confirm minimum redemption threshold and earning opportunities
- Customer is satisfied with the explanation resolved →resolution
- Customer is frustrated or disputes the threshold frustrated →empathy-and-policy-explanation
Redemption Confirmed
CRM.LogInteraction tagged reward-redeemed, linked to customer.accountId
- Customer has no further questions resolved →resolution
- Customer has another question new_concern →inquiry-classification
Missing Points Investigation
OrderManagement.LookupTransaction by transaction.receiptNumber and transaction.purchaseDate
- Transaction found and points not yet posted LoyaltyPlatform.CheckPendingPoints →points-adjustment-review
- Transaction found and points already posted →points-already-posted
- Transaction not found in order history →unverified-transaction
Points Already Posted
- Customer confirms the issue is resolved resolved →resolution
- Customer says the balance still looks wrong disputed →escalation-human
Unverified Transaction
OrderManagement.LookupTransaction secondary attempt using transaction.amount and transaction.purchaseDate
- Transaction found on secondary lookup →points-adjustment-review
- Transaction still not found after second attempt →escalation-human
Points Adjustment Review
- Adjustment is within policy limits and clearly supported low_risk_adjustment →adjustment-approval
- Adjustment amount is high, ambiguous, or flags a pattern high_risk_adjustment →escalation-human
Adjustment Approval
- Approved approved LoyaltyPlatform.CreditPoints →adjustment-confirmed
- Rejected rejected →adjustment-declined
- No response in 30 min →escalation-human
Adjustment Confirmed
CRM.LogInteraction tagged points-adjustment-approved, linked to customer.accountId, reference adjustment.requestId
- Customer is satisfied resolved →resolution
- Customer has another question new_concern →inquiry-classification
Adjustment Declined
kb.loyalty-rewards-policy — confirm decline reason to share with customer
- Customer accepts the explanation resolved →resolution
- Customer remains dissatisfied or requests an exception frustrated →escalation-human
Expiration Review
kb.loyalty-rewards-policy — retrieve expiration policy, grace window rules, and reinstatement eligibility criteria
- Points have not yet expired, customer wants prevention tips info_only →resolution
- Points expired recently and fall within the grace window within_grace_window →escalation-human
- Points expired outside the grace window outside_grace_window →expiration-outside-grace
- Customer is upset about the expiration frustrated →empathy-and-policy-explanation
Expiration Outside Grace
kb.loyalty-rewards-policy — confirm grace window boundaries and prevention steps
- Customer accepts the explanation resolved →resolution
- Customer is still dissatisfied and requests a policy exception frustrated →escalation-human
Empathy & Policy Explanation
kb.loyalty-rewards-policy — retrieve relevant policy section to explain to customer
- Customer feels heard and is satisfied satisfied →resolution
- Customer remains dissatisfied and wants to escalate escalate →escalation-human
Escalation to Human Agent
CRM.LogInteraction tagged escalation, linked to customer.accountId, with full interaction summary
Slack.Notify to #loyalty-ops with customer.accountId, customer.fullName, reason for escalation
Resolution
CRM.LogInteraction tagged resolved, linked to customer.accountId

General FAQ Telecom
Intake
- Question is purely general / no account data needed general →general-lookup
- Question requires account-specific details account-specific →identity-verification
- Question reveals a billing dispute or unexpected charge billing-dispute →escalation-billing
- Question reveals a service outage or technical fault technical-issue →escalation-technical
- Customer sounds frustrated or complaint is embedded in the question frustrated →acknowledge-concern
Acknowledge Concern
- Underlying topic is general general →general-lookup
- Underlying topic requires account data account-specific →identity-verification
- Underlying topic is a billing dispute billing-dispute →escalation-billing
- Underlying topic is a technical fault technical-issue →escalation-technical
- Concern is a formal complaint requiring case handling complaint →escalation-complaint
Identity Verification
IdentityVerification.RequestAccountLookup using customer.accountNumber or customer.phone
IdentityVerification.VerifyIdentity using customer.name, customer.pin, customer.ssn4
- Identity verified successfully verified →account-lookup
- Identity verification fails after two attempts unverified →unverified-general-only
Unverified — General Info Only
kb.general-plans-policy — retrieve publicly available plan and policy information relevant to question.topic
- Customer accepts general information and asks a follow-up general →general-lookup
- Customer wants to try a different verification channel retry →escalation-human
- Customer has no further questions →resolution
Account Lookup
CRM.GetAccountProfile using customer.accountNumber
AccountManagement.GetCurrentPlan to retrieve customer.currentPlan and customer.serviceType
→account-specific-answer
Account-Specific Answer
- Answer delivered and customer is satisfied confirmed →resolution
- Answer reveals a billing discrepancy or charge dispute billing-dispute →escalation-billing
- Answer reveals a service or network issue technical-issue →escalation-technical
- Topic is outside knowledge base coverage kb-gap →escalation-human
- Customer wants to make a plan change plan-change →escalation-plan-change
General Lookup
kb.faq-content — retrieve answer matching question.topic
kb.general-plans-policy — supplement with plan or policy details if applicable
- Answer delivered and customer confirms it resolved their question confirmed →resolution
- Customer follow-up question is still general general →general-lookup
- Customer follow-up requires account details account-specific →identity-verification
- Topic falls outside knowledge base coverage kb-gap →kb-gap-acknowledgement
- Customer reveals frustration or complaint frustrated →acknowledge-concern
Knowledge Base Gap
- Customer agrees to be escalated confirmed →escalation-human
- Customer has a different, simpler question general →general-lookup
- Customer wants to try self-service and end the call self-service →resolution
Escalation — Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.accountNumber, notes include question.raw
Escalation — Billing
CRM.CreateCase tagged billing-dispute, priority: high, linked to customer.accountNumber
Escalation — Technical Issue
CRM.CreateCase tagged technical-issue, linked to customer.accountNumber, notes include customer.serviceType
Escalation — Plan Change
→plan-change-telecom
Escalation — Complaint
CRM.CreateCase tagged formal-complaint, priority: high, linked to customer.accountNumber, notes include question.raw
Resolution
- Customer has another question follow-up →intake
- Customer confirms they are done confirmed →close
Close

General FAQ / Product Info
Intake
- Customer asks about a specific product or account type (HYSA, CD, checking, savings, loan) product-inquiry →topic-identification
- Customer asks about rates or current pricing rate-inquiry →topic-identification
- Customer asks about fees or charges fee-inquiry →topic-identification
- Customer asks about a policy or terms policy-inquiry →topic-identification
- Customer references their own account balance, transaction, or personal account detail account-detail-request →identity-verification
- Customer mentions a complaint, dispute, or expresses frustration complaint →escalation-human
- Customer explicitly asks to speak with a human human-request →escalation-human
- Intent unclear or ambiguous unclear →clarify-question
Clarify Question
- Customer clarifies a product, rate, fee, or policy topic product-inquiry →topic-identification
- Customer clarifies they need account-specific information account-detail-request →identity-verification
- Customer still unclear or asks for a human unclear →escalation-human
Topic Identification
- Topic identified and maps to a standard product or policy kb.product-catalog →knowledge-base-lookup
- Topic identified and is rate- or fee-specific RateFeeDatabase.QueryProduct →rate-fee-retrieval
- Topic involves investment products or securities investment-topic →investment-disclaimer-check
- Topic cannot be matched to any known product or policy no-match →knowledge-gap-handling
Knowledge Base Lookup
FAQCMS.LookupTopic for query.topic filtered by customer.state
CRM.GetCustomerProfile for customer.id to confirm customer.status (existing or prospective)
- Clear, current, single result returned result-found →deliver-answer
- Result returned but flagged as recently updated or version-changed stale-or-updated →change-flag-review
- No result or conflicting entries returned no-result →knowledge-gap-handling
Rate / Fee Retrieval
RateFeeDatabase.QueryProduct for product.name filtered by customer.state
FAQCMS.LookupTopic for any associated fee-schedule or policy footnotes
- Current rate or fee confirmed, no promotional flag result-found →deliver-answer
- Promotional rate or limited-time offer applies promo-active →promo-terms-delivery
- Rate or fee recently changed rate-changed →change-flag-review
- Query returns no data or an error no-result →knowledge-gap-handling
Change Flag Review
RateFeeDatabase.QueryProduct to pull the most current record and confirm effective date
FAQCMS.LookupTopic to retrieve any change notice or customer communication linked to query.topic
- Most current version confirmed and retrieved →deliver-answer
- Change is tied to a promotional window promo-active →promo-terms-delivery
- Conflict persists or effective date is ambiguous conflict →knowledge-gap-handling
Promo Terms Delivery
- Customer wants to know how to apply or enroll apply-intent →escalation-human
- Customer has another question more-questions →intake
- Customer is satisfied and has no further questions satisfied →close-interaction
Investment Disclaimer Check
ComplianceDisclaimerLibrary.GetDisclaimer for query.product
- Customer is asking for general product information only (no personalized recommendation) general-info →knowledge-base-lookup
- Customer is asking for a recommendation or advice on what to buy or invest in advice-request →escalation-human
- Regulatory disclaimer required before answering kb.compliance-disclaimer-library →deliver-answer-with-disclaimer
Deliver Answer
- Customer has a follow-up question on the same topic follow-up →deliver-answer
- Customer has a new question on a different topic new-topic →intake
- Customer asks something that now touches on their specific account account-detail-request →identity-verification
- Customer is satisfied satisfied →close-interaction
- Customer expresses frustration or dissatisfaction frustrated →escalation-human
Deliver Answer With Disclaimer
- Customer has another general question more-questions →intake
- Customer asks for a personalized recommendation or advice advice-request →escalation-human
- Customer is satisfied satisfied →close-interaction
Identity Verification
IdentityVerification.InitiateCheck for customer.id via query.channel
- Verification passed identity-verified →account-detail-lookup
- Verification failed or customer unable to complete it identity-failed →escalation-human
- Customer declines verification declined →offer-general-only
Offer General Only
- Customer accepts general answer and asks a product question product-inquiry →intake
- Customer still wants account detail or requests a human human-request →escalation-human
- Customer has no further questions satisfied →close-interaction
Account Detail Lookup
CRM.GetCustomerProfile for customer.id
RateFeeDatabase.QueryProduct for customer.accountType filtered by customer.state
- Customer is asking about their current rate or fee on an existing product rate-fee-detail →deliver-answer
- Customer is asking about a balance or recent transaction transaction-request →escalation-human
- Customer is asking about a policy as it applies to their account policy-detail →deliver-answer
Knowledge Gap Handling
CRM.LogInteraction with query.topic flagged as unresolved, route note to specialist.queue
- Route to specialist queue →escalation-human
Escalation to Human
CRM.LogInteraction with full conversation context, query.topic, customer.id, and escalation reason
CRM.CreateCase tagged faq-escalation, linked to customer.id and query.topic
Close Interaction
CRM.LogInteraction with query.topic marked resolved and customer.status updated

Fraud Alert Follow-up
Alert Notification
FraudDetectionPlatform.FetchFlaggedTransaction to retrieve transaction.id, transaction.amount, transaction.merchant, transaction.datetime, and transaction.riskScore.
- System lookup succeeds and transaction details are retrieved →identity-verification
- System lookup fails or returns no transaction record system_error →system-lookup-failure
Identity Verification
IdentityVerification.VerifyCustomer using customer.name, customer.dob, and customer.pin or customer.securityAnswer.
- Identity verified successfully confirmed →transaction-confirmation
- Identity cannot be verified after two attempts failed →verification-failure
- Customer is uncertain or provides partial information partial →verification-retry
Verification Retry
IdentityVerification.VerifyCustomer retry with alternate credentials.
- Identity verified on retry confirmed →transaction-confirmation
- Identity still cannot be verified failed →verification-failure
Verification Failure
CRM.LogInteraction tagged verification-failure, linked to account.id, noting no transaction details were disclosed.
Transaction Confirmation
- Customer confirms the transaction is theirs confirmed →resolution-clear
- Customer says the transaction is not theirs denied →disputed-transaction
- Customer is unsure or asks for more time uncertain →transaction-detail-review
Transaction Detail Review
kb.fraud-dispute-policy — review dispute eligibility window for transaction.datetime.
- Customer recognizes the transaction after further detail confirmed →resolution-clear
- Customer confirms the transaction is not theirs denied →disputed-transaction
- Customer remains unsure and cannot confirm or deny uncertain CRM.LogInteraction tagged pending-customer-response →escalation-human
Disputed Transaction
CardManagement.BlockCard for card.last4.
CRM.UpdateCase flagged as fraud-reported, linked to account.id and transaction.id.
- Customer confirms only the single flagged transaction is unrecognized single-transaction →open-dispute
- Customer flags additional unrecognized transactions multiple-transactions →expanded-fraud-event
- Customer is distressed, upset, or requests immediate escalation distressed →escalation-human
Expanded Fraud Event
CoreBanking.FreezeAccount for account.id.
FraudDetectionPlatform.FlagAccountCompromised linked to account.id.
CRM.CreateCase priority: critical, tagged expanded-fraud-account-review, linked to account.id.
DisputeManagement.OpenExpandedReview for account.id, noting all flagged transactions.
- Case created and account frozen →escalation-human
Open Dispute
DisputeManagement.OpenDispute for transaction.id, transaction.amount, transaction.merchant, linked to account.id. Capture dispute.caseId.
→replacement-card
Replacement Card
CardManagement.IssueReplacementCard for card.last4, ship to replacement.deliveryAddress.
- Approved approved →dispute-wrap-up
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Dispute Wrap-up
CRM.UpdateCase with dispute.caseId, card block status, and replacement card shipping confirmation.
CoreBanking.ClearFraudAlert on transaction.id.
- Customer has further questions or concerns →escalation-human
- Customer is satisfied and call can close →resolution-clear
System Lookup Failure
CRM.LogInteraction tagged system-error-transaction-lookup, linked to account.id, noting transaction details could not be retrieved.
FraudDetectionPlatform.FlagForManualReview linked to account.id, tagged system-lookup-failure.
Escalation to Human Agent
CRM.CreateCase priority: high, tagged fraud-escalation, linked to account.id and transaction.id.
Slack.Notify to #fraud-ops with case summary including account.id, transaction.id, transaction.amount, card.last4, and reason for escalation.
Resolution — Clear
CoreBanking.ClearFraudAlert on transaction.id.
CRM.LogInteraction tagged alert-cleared-customer-confirmed, linked to account.id.

Device Troubleshooting
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountId
- Account found, identity confirmed verified →device-details
- Account not found or system lookup fails lookup_failed →manual-account-collection
- Customer cannot verify identity after two attempts →escalation-human
Manual Account Collection
CRM.CreateManualRecord with collected details
Ticketing.FlagForDataSyncReview tagged data-sync-error, linked to customer.accountId
- Details collected and record created →device-details
- Customer unable to provide sufficient details →escalation-human
Device Details
DeviceManagement.LookupDevice using device.imei or customer.accountId
- Device record found, pulling device.make, device.model, device.imei →issue-intake
- Device record not found CRM.NoteManualDevice collect device.make, device.model, device.imei manually →issue-intake
Issue Intake
CRM.LogInteraction note issue.description, issue.startDate, issue.stepsTried
Ticketing.CheckPriorContacts for customer.accountId, device.imei
- Same issue reported three or more times repeat_contact →escalation-specialist
- Customer expresses significant frustration or urgency frustrated →escalation-specialist
- Physical damage mentioned (cracked screen, water damage, etc.) physical_damage →physical-damage-assessment
- No prior contacts or fewer than three, standard issue →basic-troubleshooting
Basic Troubleshooting
kb.device-troubleshooting-standard-steps — retrieve model-specific restart and reset instructions for device.make device.model
NetworkDiagnostics.RunCheck on device.imei — scan for signal, data connectivity, and provisioning issues
- Network or provisioning fault detected network_fault NetworkDiagnostics.PushProvisioningFix →post-basic-check
- No network fault, continue with device-side steps →software-update-check
Software Update Check
- Customer confirms update available, guides them to install DeviceManagement.LogUpdateInitiated →post-basic-check
- Device already on latest software, no update available →network-settings-reset
Network Settings Reset
kb.network-reset-instructions — confirm steps for device.make device.model
- Customer completes reset and reconnects →post-basic-check
- Customer declines to proceed or step causes a new error →advanced-troubleshooting
Post-Basic Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present unresolved →advanced-troubleshooting
Advanced Troubleshooting
- Agent determines factory reset is appropriate path factory_reset_candidate →factory-reset-guidance
- Agent determines hardware fault likely hardware_fault →physical-damage-assessment
- Agent determines issue is unresolvable through scripted steps unresolved_scripted →escalation-specialist
Factory Reset Guidance
kb.factory-reset-instructions — retrieve step-by-step for device.make device.model
- Customer confirms backup complete and agrees to proceed DeviceManagement.LogFactoryResetInitiated →post-factory-check
- Customer wants to back up first CRM.NoteBackupPending →callback-scheduling
- Customer declines factory reset →escalation-specialist
Post-Factory Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present after factory reset unresolved →escalation-specialist
Physical Damage Assessment
WarrantyInsurance.CheckEligibility for device.imei, customer.accountId — retrieve device.warrantyStatus, device.insuranceStatus
- Device under active warranty, damage type covered warranty_eligible →warranty-repair-route
- Device covered by insurance insurance_eligible →insurance-claim-route
- No warranty or insurance coverage no_coverage →out-of-warranty-options
Warranty Repair Route
WarrantyInsurance.InitiateWarrantyClaim for device.imei, customer.accountId
Ticketing.CreateTicket tagged warranty-repair, linked to device.imei
CRM.LogInteraction note warranty claim initiated
→resolution-confirmed
Insurance Claim Route
Ticketing.CreateTicket tagged insurance-claim, linked to device.imei
CRM.LogInteraction note insurance claim routed
→insurance-claims-workflow
Out-of-Warranty Options
kb.repair-center-locator — retrieve authorized repair centers near customer
kb.device-upgrade-eligibility — check upgrade options for customer.accountId
- Customer wants paid repair CRM.LogInteraction note repair referral provided, share repair center details →resolution-confirmed
- Customer wants to explore upgrade →escalation-human
- Customer wants to think it over CRM.LogInteraction note options presented →resolution-confirmed
Callback Scheduling
CRM.ScheduleCallback for customer.phone, note issue.description and steps completed
Ticketing.CreateTicket tagged callback-pending, linked to device.imei
→resolution-confirmed
Escalation to Specialist
Ticketing.CreateTicket tagged specialist-escalation, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note escalation reason: issue.description, prior contacts ticket.priorContactCount, steps completed
CRM.NotifySpecialistQueue with ticket summary
- Customer prefers callback →callback-scheduling
- Customer holds for specialist →escalation-human
Escalation to Human Agent
Ticketing.CreateTicket tagged human-handoff, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note full interaction summary
Resolution Confirmed
Ticketing.CreateTicket tagged resolved, linked to device.imei, customer.accountId
CRM.LogInteraction note resolution summary, steps taken, outcome
CRM.CloseInteraction for customer.accountId

Complaint Escalation Stay/Trip Issue
Intake & Verification
CRM.LookupCustomer by customer.phone or customer.email
PropertyManagementSystem.LookupReservation by booking.id
- Reservation found and account matched →complaint-capture
- Reservation not found in system →manual-case-creation
- Customer mentions a prior unresolved case CaseManagement.LookupCase by complaint.priorCaseNumber →complaint-capture
Complaint Capture
LoyaltyPlatform.GetProfile by customer.loyaltyNumber
- Customer describes issue calmly and provides clear details neutral →policy-check
- Customer is highly upset, distressed, or emotional frustrated →empathy-de-escalation
- Customer explicitly mentions legal action, regulatory body, health or safety incident threatened →escalation-human
Empathy & De-escalation
- Customer calms and continues describing the issue neutral →policy-check
- Customer remains highly distressed or repeats legal / safety threat threatened →escalation-human
Policy Check
kb.complaint-resolution-policy — verify complaint window, eligible remedy types, and authorization limits for booking.checkOut and complaint.nature
PropertyManagementSystem.GetReservationDetails for booking.id to confirm rate, room type, and recorded amenities
- Stay is within complaint window and issue is policy-eligible →remedy-assessment
- Stay falls outside complaint window or issue is partially out of scope →out-of-scope-partial-remedy
- Booking channel is a third-party OTA OTAPartnerPortal.CheckBookingOwnership →ota-redirect
Remedy Assessment
- Remedy is within authorization limits and straightforward →remedy-confirmation
- Requested or warranted compensation exceeds authorization limit exceeds_limit →escalation-human
- Complaint involves a safety or health element safety_flag →escalation-human
Remedy Confirmation
- Customer accepts the remedy confirmed →process-remedy
- Customer rejects and requests higher compensation dissatisfied →escalation-review
- Customer requests time to think and asks to be followed up →case-documentation
Process Remedy
RefundBillingSystem.ProcessRefundOrCredit for booking.id with remedy.type and remedy.value
LoyaltyPlatform.ApplyCredit if remedy.type is loyalty credit
CaseManagement.CreateCase tagged complaint-resolved, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with case reference case.id and remedy details
- Customer confirms receipt and has no further issues →resolution-close
- Customer raises an additional complaint →complaint-capture
Escalation Review
- Approved approved →process-remedy
- Rejected rejected →remedy-final-offer
- No response in 60 min →escalation-human
Remedy Final Offer
- Customer accepts confirmed →process-remedy
- Customer declines and wishes to escalate further dissatisfied →escalation-human
OTA Redirect
CaseManagement.CreateCase tagged ota-redirect, linked to booking.id
OTAPartnerPortal.InitiateDisputeReferral for booking.id with complaint.nature and complaint.details
- Customer is satisfied with the redirect guidance →resolution-close
- Customer is unsatisfied and escalates frustration frustrated →escalation-human
Out-of-Scope / Partial Remedy
kb.complaint-resolution-policy — identify any goodwill or partial remedy options available outside the standard window
CaseManagement.CreateCase tagged out-of-scope, linked to booking.id
- Customer accepts the partial or goodwill remedy confirmed →process-remedy
- Customer is dissatisfied and escalates frustrated →escalation-human
Manual Case Creation
CRM.LookupCustomer by customer.email or customer.loyaltyNumber
CaseManagement.CreateCase tagged pending-lookup, with booking.propertyName, booking.checkIn, booking.checkOut, complaint.nature, customer.email, customer.phone
- Customer accepts the follow-up path →resolution-close
- Customer is unwilling to wait and is highly agitated frustrated →escalation-human
Escalation to Human Agent
CaseManagement.CreateCase priority: urgent, tagged escalation, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with escalation flag and complaint.details
Slack.Notify to #hospitality-escalations with case summary, booking.id, complaint.nature, and customer.desiredResolution
Case Documentation & Follow-up
CaseManagement.CreateCase tagged pending-customer-response, linked to booking.id with complaint.details and proposed remedy.type
CRM.UpdateCustomerRecord with case.id and follow-up flag
SendEmail to customer.email with case summary, proposed remedy, and contact instructions
- Customer returns and accepts remedy confirmed →process-remedy
- Customer returns and escalates dissatisfied →escalation-human
Resolution & Close
CaseManagement.CloseCase for case.id with resolution status
CRM.UpdateCustomerRecord with resolved status and remedy applied
LoyaltyPlatform.LogInteraction for customer.loyaltyNumber tagged complaint-resolved

Complaint Escalation
Greeting & Acknowledgement
- Customer provides details calmly or with mild frustration neutral →identity-verification
- Customer is immediately hostile or uses escalation language ("speak to a manager", "unacceptable") escalation_language →pre-escalation-check
- Customer is highly distressed or emotional frustrated →empathy-bridge
Empathy Bridge
- Customer settles and is willing to continue →identity-verification
- Customer continues to demand a manager or escalate escalation_language →pre-escalation-check
Identity Verification
CRM.LookupCustomer using customer.accountId or order.id
ContactHistory.GetLog for customer.accountId to retrieve prior contact history on this issue
- Customer identity and order verified successfully verified →complaint-review
- Identity or order cannot be verified unverified →proof-request
Proof Request
- Alternate proof provided and accepted verified →complaint-review
- Customer cannot provide any proof unverified →policy-exception-flag
- Customer becomes agitated or refuses frustrated →empathy-bridge
Complaint Review
OrderManagement.GetOrderDetails for order.id including order.value, order.date, and item details
ContactHistory.GetLog to confirm complaint.nature and complaint.date and any previous resolution attempts
- Complaint relates to a product defect or damage product_issue →remedy-assessment
- Complaint relates to a missing, late, or incorrect order fulfilment_issue →remedy-assessment
- Complaint relates to a service or staff experience service_issue →remedy-assessment
- Complaint involves a potential safety or legal concern safety_legal →escalation-supervisor
Remedy Assessment
- Remedy identified within policy and agent authority remedy_ready →remedy-offer
- Order value or complexity exceeds agent authority threshold authority_exceeded →escalation-supervisor
- Issue falls outside return or compensation policy out_of_policy →policy-exception-flag
Remedy Offer
- Customer accepts the remedy accepted →resolution-logging
- Customer rejects the remedy and gives a reason rejected →alternative-remedy-offer
- Customer demands a manager explicitly escalation_language →pre-escalation-check
Alternative Remedy Offer
- Customer accepts the alternative remedy accepted →resolution-logging
- Customer rejects the alternative remedy as well rejected →pre-escalation-check
- Customer demands a manager escalation_language →pre-escalation-check
Pre-Escalation Check
- Customer language is abusive or threatening abusive →conduct-warning
- Customer is demanding escalation but not abusive escalation_language →escalation-supervisor
- Two remedy offers have been refused remedies_exhausted →escalation-supervisor
Conduct Warning
- Customer agrees and calms down neutral →remedy-offer
- Customer continues to use abusive language abusive →escalation-conduct
Policy Exception Flag
CRM.UpdateCase with complaint.nature, order.id, and exception request details
RefundCompensationTool.FlagException tagged policy-exception, linked to order.id
- Approved approved →remedy-offer
- Rejected rejected →escalation-supervisor
- No response within 30 min timeout →escalation-supervisor
Escalation to Supervisor
CRM.UpdateCase with full complaint summary, remedy.offered, remedy.alternative, contact.history, and escalation reason
SupervisorQueue.Assign priority: high, tagged complaint-escalation, linked to order.id
Escalation — Conduct Transfer
CRM.UpdateCase with complaint.nature, contact.history, and conduct flag
SupervisorQueue.Assign priority: high, tagged conduct-escalation, linked to customer.accountId
Resolution Logging
RefundCompensationTool.ApplyRemedy for order.id with agreed remedy details
CRM.UpdateCase with complaint.nature, remedy applied, and resolution status: closed
ContactHistory.LogResolution for customer.accountId with outcome summary
- Customer has further queries →greeting-acknowledgement
- Customer is satisfied and done confirmed →resolution-complete
Resolution Complete
CRM.UpdateCase status: resolved, satisfaction: confirmed

Claim Status Inquiry
Intake and Verification
CRM.LookupCustomer using customer.fullName and policy.number
IdentityVerification.Verify using customer.dateOfBirth or customer.ssnLast4 against policy.number
- Identity verified successfully verified →claim-record-lookup
- Identity verification fails or information does not match unverified →identity-failure
- Customer mentions legal action, complaint, or attorney representation escalation-intent →escalation-special-handling
Claim Record Lookup
ClaimsManagementSystem.GetClaim using claim.number or claim.dateOfLoss and policy.number
- Claims system returns record successfully →claim-triage
- Claims system is unavailable or returns an error system-down →system-unavailable
Claim Triage
- claim.litigationFlag or claim.attorneyFlag or claim.specialHandlingFlag is set special_handling →escalation-special-handling
- claim.fatalityFlag or major injury indicator is set major_injury →escalation-special-handling
- Claim status is denied denied →denial-status
- Claim status is approved, paid, under review, received, or closed standard_status →standard-status-delivery
Standard Status Delivery
PolicyAdministrationSystem.GetOutstandingItems for claim.number
- Outstanding action items exist for the customer items_outstanding →outstanding-items-review
- No outstanding items and claim is closed or paid →resolution-and-close
- No outstanding items and claim is still in progress →resolution-and-close
Outstanding Items Review
kb.claims-outstanding-items-guide — reference for explaining document or action requirements to policyholders
CRM.LogInteraction with claim.number, customer.fullName, outstanding items noted, preferred contact customer.preferredContact
- Customer requests follow-up summary TicketingPlatform.SendSummary to customer.preferredContact →resolution-and-close
- Customer has no further requests →resolution-and-close
Denial Status
kb.claims-appeals-process — retrieve current appeals eligibility window, required forms, and submission instructions
CRM.LogInteraction with claim.number, denial reason claim.denialReasonCode, appeals information provided
- Customer wants appeals information explained →appeals-guidance
- Customer expresses intent to file complaint or legal action escalation-intent →escalation-special-handling
- Customer declines appeals information and has no further questions →resolution-and-close
Appeals Guidance
kb.claims-appeals-process — confirm deadlines, required forms, and submission address or portal link
TicketingPlatform.SendAppealInstructions to customer.preferredContact with claim.number
CRM.LogInteraction with claim.number, appeals guidance provided, instructions sent to customer.preferredContact
- Customer has additional questions →resolution-and-close
- Customer has no further questions →resolution-and-close
Identity Failure
IdentityVerification.SendSecureLink to customer.preferredContact
CRM.LogInteraction with policy.number, identity verification failed, secure link sent
System Unavailable
TicketingPlatform.CreateInquiry with customer.fullName, policy.number, claim.number, claim.dateOfLoss, customer.preferredContact — generate ticket.referenceNumber
CRM.LogInteraction with ticket.referenceNumber, system unavailability noted, callback committed
Escalation — Special Handling
TicketingPlatform.CreatePriorityCase with customer.fullName, policy.number, claim.number, claim.specialHandlingFlag, claim.litigationFlag, claim.fatalityFlag, claim.attorneyFlag, escalation reason noted
CRM.LogInteraction with claim.number, escalation to special handling team, reason flagged
- Handoff package complete and specialist team notified escalation_ready →escalation-human
Escalation to Human Specialist
CRM.UpdateCase priority: high, assigned to claims-special-handling-team, ticket.referenceNumber noted
Resolution and Close
CRM.LogInteraction with claim.number, inquiry resolved, status communicated, no further action required
- Customer has additional questions or a new topic →intake-and-verification
- Customer confirms no further questions — interaction complete

Cancellation Request
Intake & Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
PolicyManagement.LookupPolicy using policy.number
- Identity confirmed and policy found confirmed →reason-capture
- Identity cannot be confirmed after two attempts unverified →escalation-identity-failure
- Policy number not found or does not match customer record mismatch →escalation-identity-failure
Reason Capture
CRM.LogInteraction tag: cancellation-request, policy.number
- Customer states price is too high or service dissatisfaction price-or-service →retention-offer
- Customer states they are switching providers switching →active-claim-check
- Customer states coverage no longer needed coverage-not-needed →active-claim-check
- Any other stated reason other-reason →active-claim-check
Retention Offer
kb.retention-offers — check available discounts and coverage adjustment options for policy.type
- Customer is open to hearing options interested →present-retention-options
- Customer declines and confirms they want to cancel declines-retention →active-claim-check
Present Retention Options
- Customer accepts a retention offer and wants to keep the policy retained PolicyManagement.ApplyRetentionChange →retention-confirmed
- Customer hears the options and still wants to cancel still-cancelling →active-claim-check
Retention Confirmed
DocumentDelivery.SendEmail to customer.email with updated policy summary
Active Claim Check
PolicyManagement.CheckActiveClaims for policy.number
- No active claims found no-claims →effective-date-check
- Active claim found on policy active-claim →escalation-active-claim
Effective Date Check
PolicyManagement.ValidateCancellationDate using cancellation.requestedDate and policy.effectiveDate
kb.cancellation-backdating-rules — check whether backdating is permitted for policy.type
- Requested date is today or in the future date-valid →cancellation-terms-review
- Requested date is in the past and backdating is permitted per policy rules backdating-permitted →cancellation-terms-review
- Requested date is in the past and backdating is not permitted backdating-not-permitted →flag-backdating-issue
Flag Backdating Issue
- Customer accepts today's date or a future date accepts-new-date →cancellation-terms-review
- Customer disputes the backdating limitation and refuses disputes-backdating →escalation-fee-or-policy-dispute
Cancellation Terms Review
BillingPayments.GetOutstandingBalance for policy.number
BillingPayments.CalculateRefund for policy.number and cancellation.requestedDate
- Customer confirms and wants to proceed confirmed-terms →authorization-check
- Customer disputes the cancellation fee disputes-fee →escalation-fee-or-policy-dispute
- Customer wants to reconsider reconsider →reason-capture
Authorization Check
kb.cancellation-authorization-rules — check whether policy.type requires a licensed agent or supervisor to authorize
- Standard policy — no additional authorization required standard-auth →process-cancellation
- Policy type requires licensed agent or supervisor authorization requires-supervisor →escalation-supervisor-authorization
Process Cancellation
PolicyManagement.CancelPolicy policy: policy.number, effectiveDate: cancellation.requestedDate
BillingPayments.ProcessRefund amount: policy.refundAmount, to: customer.email
CRM.UpdateRecord tag: policy-cancelled, policy.number, cancellation.reason
DocumentDelivery.SendEmail to customer.email with cancellation confirmation and cancellation.confirmationNumber
→cancellation-complete
Cancellation Complete
CRM.LogInteraction tag: cancellation-complete, policy.number, cancellation.confirmationNumber
Escalation — Active Claim on Policy
CRM.LogInteraction tag: escalation-active-claim, policy.number, claim.id, claim.status
CRM.CreateCase priority: high, tag: cancellation-blocked-active-claim, policy.number
Escalation — Identity Failure
CRM.LogInteraction tag: identity-verification-failed, policy.number
Escalation — Fee or Policy Dispute
CRM.CreateCase priority: high, tag: cancellation-dispute, policy.number, cancellation.reason
CRM.LogInteraction tag: escalation-dispute, policy.number
Escalation — Supervisor Authorization Required
CRM.LogInteraction tag: escalation-supervisor-auth-required, policy.number, policy.type
CRM.CreateCase priority: normal, tag: supervisor-auth-cancellation, policy.number

Booking Modification
Verify Customer
CRM.LookupCustomer using customer.name and booking.reference
- Customer provides valid reference and name, identity confirmed verified →retrieve-booking
- Customer cannot provide reference or name fails to match →identity-not-found
- Customer mentions a group booking or multi-leg itinerary →escalation-complex-booking
Identity Not Found
CRM.LookupByContact using customer.email or customer.phone
- Record found and customer confirmed verified →retrieve-booking
- Still no match after second attempt →escalation-complex-booking
Retrieve Booking
ReservationSystem.GetBooking using booking.reference
LoyaltyDB.GetCustomerTier using customer.name to resolve customer.loyaltyTier
- Customer wants to change dates change-dates →check-date-availability
- Customer wants to change room or cabin type change-room-type →check-room-availability
- Customer wants to update passenger or guest name change-name →process-name-change
- Customer requests multiple changes at once multiple-changes →escalation-complex-booking
- Booking was made through a third party third-party-booking →third-party-advisory
Check Date Availability
AvailabilityEngine.CheckDates using booking.reference and change.newDates
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Requested dates are available and rate is modifiable available →review-fare-difference
- Requested dates are available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Requested dates are unavailable unavailable →suggest-alternative-dates
Suggest Alternative Dates
AvailabilityEngine.GetNearestAvailable using booking.reference to resolve availability.nearestDates
- Customer accepts an alternative date →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over and call back defer →wrap-up-no-change
Check Room Availability
AvailabilityEngine.CheckRoomType using booking.reference and change.newRoomType
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Room type available and rate is modifiable available →review-fare-difference
- Room type available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Room type unavailable unavailable →suggest-alternative-room
Suggest Alternative Room
AvailabilityEngine.GetAlternativeRooms using booking.reference
- Customer selects an alternative →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over defer →wrap-up-no-change
Review Fare Difference
PaymentProcessor.CalculateDifference using booking.reference, change.newDates, change.newRoomType to resolve fare.difference and fee.modification
- Customer accepts the cost and confirms confirmed →apply-modification
- Customer disputes the modification fee disputes-fee →fee-waiver-review
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer declines and wants to keep original booking keep-original →wrap-up-no-change
Fee Waiver Review
LoyaltyDB.GetCustomerTier using customer.name to confirm customer.loyaltyTier
kb.goodwill-waiver-policy — check eligibility based on customer.loyaltyTier and fee.modification
- Agent determines fee is auto-waivable under loyalty or goodwill policy auto-waiver →apply-modification
- Agent determines fee waiver requires supervisor sign-off needs-approval →waiver-approval
- Agent determines fee is not waivable and customer still disputes disputed →escalation-fee-dispute
Waiver Approval
- Approved approved CRM.LogWaiverGranted →apply-modification
- Rejected rejected →fee-waiver-declined
- No response in 20 min →escalation-fee-dispute
Fee Waiver Declined
- Customer agrees to pay the fee confirmed →apply-modification
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer wants to keep original booking keep-original →wrap-up-no-change
- Customer escalates and demands supervisor escalate →escalation-fee-dispute
Process Name Change
kb.name-change-policy — verify permissible name change rules for booking.rateType
- Minor spelling correction permitted under policy minor-correction →apply-modification
- Full name transfer or legal name change required →escalation-complex-booking
Apply Modification
ReservationSystem.UpdateBooking with booking.reference, change.newDates, change.newRoomType, change.newPassengerName, change.requestedDetail
PaymentProcessor.ChargeBalance using booking.paymentMethod for fare.difference and any approved fee.modification
CRM.UpdateRecord for customer.name with new booking details
NotificationService.SendConfirmation to customer.email and customer.phone with updated itinerary
- Customer has additional requests more-changes →retrieve-booking
- Customer is satisfied and done done →wrap-up-confirmed
Non-Modifiable Rate
kb.cancellation-refund-policy — review applicable refund terms for booking.rateType
- Customer wants to explore cancellation and refund cancel-request →cancellation-advisory
- Customer wants to check same-rate rebooking availability rebook →check-date-availability
- Customer wants to keep original booking keep-original →wrap-up-no-change
Cancellation Advisory
kb.cancellation-refund-policy — retrieve applicable terms for booking.rateType and booking.currentDates
- Customer confirms cancellation confirmed →escalation-cancellation-processing
- Customer changes mind and wants to keep booking keep-original →wrap-up-no-change
- Customer disputes refund terms and demands exception dispute →escalation-fee-dispute
Third-Party Advisory
- Customer understands and has no further questions done →wrap-up-no-change
- Customer disagrees and insists we process it anyway disputes →escalation-complex-booking
Wrap-Up — No Change Made
CRM.LogInteraction for customer.name with outcome: no modification made
Wrap-Up — Change Confirmed
CRM.LogInteraction for customer.name with outcome: modification successful
Escalation — Complex Booking
CRM.CreateCase priority: high, tagged complex-modification, linked to booking.reference
Slack.Notify to #reservations-complex with case summary, booking.reference, and customer.name
Escalation — Fee Dispute
CRM.CreateCase priority: high, tagged fee-dispute, linked to booking.reference
Slack.Notify to #reservations-supervisors with customer.name, booking.reference, fee.modification, and dispute summary
Escalation — Cancellation Processing
CRM.CreateCase priority: normal, tagged cancellation-request, linked to booking.reference
ReservationSystem.InitiateCancellation using booking.reference
NotificationService.SendCancellationSummary to customer.email with refund terms and timeline

Billing / Statement Inquiry
Patient Greeting
- Patient provides all required identifiers →identity-verification
- Patient is unable or unwilling to provide identifiers →hipaa-decline
- Patient is clearly distressed or immediately demands a supervisor frustrated →escalation-human
Identity Verification
CRM.LookupPatient using patient.name, patient.dob, and patient.accountId
- All three identifiers match confirmed in system verified →inquiry-intake
- Partial match — one identifier missing or mismatched partial_match →identity-retry
- No matching record found no_match →hipaa-decline
Identity Retry
- Patient provides corrected identifiers CRM.LookupPatient →identity-verification
- Patient still cannot provide matching information →hipaa-decline
HIPAA Decline
CRM.LogInteraction note: identity verification failed, HIPAA protocol applied, no account data disclosed
Inquiry Intake
PatientBillingSystem.PullAccount using patient.accountId
- Patient identifies a specific charge or line item →charge-lookup
- Patient has a general question about their total balance →balance-explanation
- Patient reports they believe there is a billing error →billing-error-flag
- Patient disputes the clinical service itself was rendered or necessary →clinical-dispute
- Patient mentions possible fraud or identity theft suspected_fraud →escalation-human
Charge Lookup
PatientBillingSystem.GetChargeDetail for charge.lineItem on charge.dateOfService
InsuranceEligibilityClaims.GetClaimStatus using insurance.memberId and claim.id
EOBLookup.GetEOB for claim.id
- EOB received and processed, patient responsibility calculated eob_received →charge-explanation
- Claim submitted but EOB not yet issued — claim still pending claim_pending →pending-claim-advisory
- Claim was denied by insurer claim_denied →claim-denial-review
- Charge not found or appears duplicated charge_anomaly →billing-error-flag
Charge Explanation
kb.billing-patient-responsibility — reference plan benefit structure and cost-sharing explanation guidance
- Patient understands and accepts the explanation confirmed →payment-options
- Patient disagrees with the insurance calculation or wants to dispute the claim disputed →claim-denial-review
- Patient still has questions about the charge needs_clarification →charge-explanation-detail
Charge Explanation Detail
- Patient satisfied with detailed explanation confirmed →payment-options
- Patient remains unconvinced and wishes to dispute →claim-denial-review
- Patient becomes distressed frustrated →escalation-human
Balance Explanation
PatientBillingSystem.GetAccountSummary for patient.accountId
kb.billing-patient-responsibility — use for explaining deductible, copay, and coinsurance terms
- Patient understands the balance and wants to pay →payment-options
- Patient questions a specific line item on the account →charge-lookup
- Patient believes the total is incorrect →billing-error-flag
- Patient is unable to pay and asks about financial assistance kb.financial-assistance-programs →payment-options
Pending Claim Advisory
CRM.LogInteraction note: patient inquiry on pending claim claim.id, follow-up requested
CaseManagement.CreateCase type: pending-eob-followup, linked to claim.id, patient.accountId
- Patient is satisfied and wants no further action →resolution-close
- Patient wants to escalate because the claim has been pending an unusually long time frustrated →escalation-human
Claim Denial Review
InsuranceEligibilityClaims.GetDenialReason for claim.id
kb.claim-denial-codes — reference insurer denial code definitions and standard appeal pathways
- Denial is administrative or technical — can be corrected by rebilling admin_denial CaseManagement.CreateCase type: rebilling-request →billing-error-flag
- Denial is a coverage or clinical necessity issue requiring appeal clinical_denial →escalation-human
- Patient wishes to proceed independently and is satisfied with the information confirmed →resolution-close
Billing Error Flag
CaseManagement.CreateCase type: billing-review, priority: standard, linked to patient.accountId, charge.lineItem, charge.dateOfService
CRM.LogInteraction note: potential billing error flagged on charge.lineItem, case opened for specialist review
- Patient is satisfied and the case is documented →resolution-close
- Patient is not satisfied and demands immediate resolution frustrated →escalation-human
Clinical Dispute
CRM.LogInteraction note: patient disputes clinical service on charge.dateOfService, charge.description — routed to clinical review
CaseManagement.CreateCase type: clinical-dispute, priority: high, linked to patient.accountId, charge.dateOfService
- Patient acknowledges and accepts the routing →resolution-close
- Patient is distressed or requests immediate supervisor contact frustrated →escalation-human
Payment Options
kb.financial-assistance-programs — check eligibility criteria for charity care, sliding scale, or hardship plans
- Patient wants to pay now PaymentPortal.ProcessPayment using patient.accountId →payment-confirmation
- Patient wants to set up a payment plan PaymentPortal.CreatePaymentPlan using patient.accountId →payment-plan-setup
- Patient wants to apply for financial assistance CaseManagement.CreateCase type: financial-assistance-referral →resolution-close
- Patient declines to pay at this time and has no further questions →resolution-close
Payment Confirmation
PaymentPortal.ProcessPayment confirm transaction for patient.accountId, charge.amount
CRM.LogInteraction note: payment processed for charge.amount on account patient.accountId
- Patient has additional questions →inquiry-intake
- Patient is done →resolution-close
Payment Plan Setup
PaymentPortal.CreatePaymentPlan for patient.accountId
CRM.LogInteraction note: payment plan established for patient.accountId
- Patient confirms and is satisfied →resolution-close
- Patient has additional questions →inquiry-intake
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered — reason documented, all context preserved for handoff
CaseManagement.CreateCase type: escalation, priority: high, linked to patient.accountId, claim.id
CRM.TransferWithContext to billing-escalation-queue, include patient.accountId, claim.id, charge.lineItem, interaction summary
Resolution / Close
CRM.LogInteraction note: inquiry resolved, case closed
CaseManagement.CloseCase for case.id if open

Appointment Scheduling
Patient Intake
EHR.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found and identity confirmed verified →appointment-intent
- Patient record not found or details do not match →identity-retry
- Patient describes urgent or emergent symptoms at any point →escalation-clinical
Identity Retry
EHR.LookupPatient retry with corrected input
- Record found on second attempt verified →appointment-intent
- Still no match after retry →escalation-human
Appointment Intent
- Patient wants to book a new appointment book →insurance-verification
- Patient wants to reschedule an existing appointment reschedule →reschedule-lookup
- Patient wants to cancel an appointment cancel →cancel-lookup
- Patient describes urgent or emergent symptoms →escalation-clinical
Insurance Verification
InsuranceEligibilityAPI.VerifyEligibility using patient.insurance.provider and patient.insurance.memberId
kb.insurance-eligibility-policy — check referral requirements for appointment.type
- Insurance verified, no referral required eligible →gather-preferences
- Insurance verified, referral required and on file eligible referral_present →gather-preferences
- Insurance verified, referral required but not on file referral_missing →referral-hold
- Insurance verification fails or returns inactive coverage ineligible →insurance-unverified
- Patient has no insurance or declines to provide →self-pay-offer
Self-Pay Offer
kb.selfpay-rates — retrieve selfpay.rate for appointment.type
- Patient agrees to self-pay confirmed →gather-preferences
- Patient wants to contact insurer first callback →intake-close-callback
- Patient is unsure →escalation-human
Insurance Unverified
- Patient wants self-pay rates →self-pay-offer
- Patient wants to wait and call back →intake-close-callback
- Patient wants to escalate or is frustrated →escalation-human
Referral Hold
SchedulingModule.HoldSoftReservation for patient.fullName, appointment.type, appointment.preferredDates
- Patient agrees to soft hold confirmed CRM.CreateTask referral-pending note →intake-close-referral
- Patient does not want a hold →intake-close-callback
- Patient says referral is already submitted →escalation-human
Gather Preferences
EHR.GetProviderList filtered by appointment.preferredLocation and appointment.type
- Preferences collected, preferred provider specified →slot-search-provider
- Preferences collected, no provider preference →slot-search-open
Slot Search — Provider Preference
SchedulingModule.GetAvailableSlots for appointment.preferredProvider, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences for preferred provider →slot-no-match
Slot Search — Open Availability
SchedulingModule.GetAvailableSlots for appointment.preferredLocation, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences →slot-no-match
Slot Selection
PatientPortal.DisplaySlots or read aloud up to three options from appointment.selectedSlot candidates
- Patient selects a slot confirmed →booking-confirmation
- Patient wants to hear more options →slot-search-open
- Patient wants to go on a waitlist instead →waitlist-enrollment
- Patient changes their mind and wants to cancel the process →intake-close-callback
Slot No Match
SchedulingModule.GetNextAvailable for appointment.type, appointment.preferredLocation
- Patient accepts next closest slot confirmed →booking-confirmation
- Patient wants waitlist →waitlist-enrollment
- Patient wants to try different dates or times →gather-preferences
Waitlist Enrollment
SchedulingModule.AddToWaitlist patient.fullName, appointment.type, appointment.preferredProvider, appointment.preferredDates
CRM.UpdateRecord waitlist status for patient.fullName
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Booking Confirmation
SchedulingModule.BookAppointment for patient.fullName, appointment.selectedSlot, appointment.type, appointment.preferredProvider
CRM.UpdateRecord appointment booked, appointment.confirmationNumber
Twilio.SendSMS to patient.phone: "Your appointment is confirmed for appointment.selectedSlot. Confirmation number: appointment.confirmationNumber. Reply CANCEL to cancel or call us to make changes."
Twilio.SendEmail to patient.email with appointment details, preparation instructions, and location or telehealth link
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Reschedule Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
- Appointment found →reschedule-preferences
- Appointment not found →escalation-human
Reschedule Preferences
SchedulingModule.CancelAppointment for appointment.existingId
SchedulingModule.GetAvailableSlots for updated appointment.preferredDates, appointment.preferredTimes, appointment.type, appointment.preferredProvider
- New slots found →slot-selection
- No slots match new preferences →slot-no-match
Cancel Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
kb.cancellation-policy — check short-notice window and applicable cancellation.fee for appointment.selectedSlot
- Appointment found, cancellation outside short-notice window →cancel-confirm
- Appointment found, cancellation within short-notice window short_notice →cancel-fee-notice
- Appointment not found →escalation-human
Cancel Fee Notice
- Patient confirms cancellation despite fee confirmed →cancel-confirm
- Patient wants to reschedule instead →reschedule-preferences
- Patient disputes the fee or wants to escalate →escalation-human
Cancel Confirm
SchedulingModule.CancelAppointment for appointment.existingId
CRM.UpdateRecord cancellation logged for patient.fullName
Twilio.SendSMS to patient.phone: "Your appointment has been cancelled. Confirmation: appointment.confirmationNumber. Contact us to rebook."
Twilio.SendEmail to patient.email with cancellation confirmation
- Patient wants to book a new appointment →appointment-intent
- Patient is done →intake-close-complete
Intake Close — Callback
CRM.UpdateRecord contact reason, outcome pending callback, patient.fullName
Intake Close — Referral Pending
CRM.UpdateRecord soft hold active, referral pending, patient.fullName
Intake Close — Complete
CRM.UpdateRecord interaction complete, outcome successful, patient.fullName
Escalation — Clinical
CRM.CreateCase priority: urgent, tagged clinical-escalation, patient.fullName
Twilio.NotifyOnCall clinical triage staff with patient name and reported symptoms
Escalation — Human Agent
CRM.CreateCase priority: high, tagged scheduling-escalation, patient.fullName, interaction summary
Twilio.TransferCall or route chat to live scheduling specialist queue

Account Closure Request
Intake and Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
IdentityVerification.InitiateCheck for customer.fullName and customer.dateOfBirth
- Verification passes confirmed →account-selection
- Verification fails on first attempt unconfirmed →verification-retry
- Account has an active fraud or legal hold flagged by IdentityVerification.InitiateCheck hold_detected →escalation-human
- Customer is linked to a business or trust account entity_account →escalation-human
Verification Retry
IdentityVerification.SecondaryCheck using additional customer-provided details
- Verification passes on retry confirmed →account-selection
- Verification fails again unconfirmed →escalation-human
Account Selection
CoreBanking.GetAccountList for verified customer record
- Customer provides a valid account number confirmed →compliance-screening
- Customer is unsure which account or requests guidance needs_help →account-selection-assist
- Customer becomes uncooperative or hostile hostile →escalation-human
Account Selection Assist
CoreBanking.GetAccountList — surface account type, last four digits, and current status for each account
- Customer confirms account selection confirmed →compliance-screening
- Customer still cannot identify the account unconfirmed →escalation-human
Compliance and AML Screening
ComplianceAML.ScreenAccount for account.number
CRM.LogInteraction note: closure request initiated for account.number
- Account clears compliance screening confirmed →account-balance-check
- Account flagged for elevated risk or AML concern high_risk →compliance-review
- Account has an existing legal or regulatory hold legal_hold →escalation-human
Compliance Review
- Agent determines low-risk flag, safe to proceed →account-balance-check
- Agent determines elevated risk requiring human review needs_review →escalation-human
Account Balance and Pending Transaction Check
CoreBanking.GetAccountDetail for account.number — retrieve account.balance, account.pendingTransactions, and account.status
- Balance is zero and no pending transactions clear →closure-reason-collection
- Pending transactions exist on the account pending →pending-transactions-hold
- Outstanding balance or linked loan exists on the account balance_owed →outstanding-balance-hold
Pending Transactions Hold
kb.account-closure-policy — confirm settlement window and closure processing rules for account.type
- Customer agrees to automatic post-settlement closure confirmed CoreBanking.QueueClosureRequest for account.number →closure-reason-collection
- Customer prefers to wait and call back declined →closure-pending-confirmation
- Customer escalates or disputes the pending transactions disputed →escalation-human
Closure Pending Confirmation
CRM.LogInteraction note: customer deferred closure for account.number pending transaction settlement
Outstanding Balance Hold
kb.account-closure-policy — confirm balance resolution requirements for account.type
- Customer agrees to resolve balance and requests options confirmed →escalation-human
- Customer requests more time and wants to call back declined →closure-pending-confirmation
- Customer disputes the balance disputed →escalation-human
Closure Reason Collection
- Customer cites fees or dissatisfaction with service frustrated →retention-offer
- Customer cites a neutral or logistical reason neutral →funds-destination-collection
- Customer shows signs of financial distress distressed →financial-distress-flag
Financial Distress Flag
ComplianceAML.FlagForReview note: potential financial distress indicator on account.number
CRM.LogInteraction note: distress signal detected during closure request for customer.fullName
- Customer agrees to speak with a specialist confirmed →escalation-human
- Customer declines and wishes to continue closure declined →funds-destination-collection
Retention Offer
kb.retention-offers-policy — surface eligible retention offers for account.type and customer.fullName profile
- Customer is open to retention options interested →escalation-human
- Customer declines and confirms they want to close confirmed →funds-destination-collection
Funds Destination Collection
ACHTransfer.ValidateDestination for transfer.destinationAccount and transfer.destinationBank
- Destination account validated successfully confirmed →closure-confirmation
- Destination account cannot be verified unconfirmed →funds-destination-hold
- Customer has no external account and requests a check CoreBanking.GetAccountDetail →closure-confirmation
Funds Destination Hold
CRM.LogInteraction note: closure held for account.number — destination account unverifiable
SecureMessaging.SendConfirmation to customer.email note: closure request on hold pending valid transfer details
Closure Confirmation
CoreBanking.SubmitClosureRequest for account.number — generate closure.requestId and closure.timeline
ACHTransfer.InitiateTransfer of account.balance to transfer.destinationAccount
CRM.LogInteraction note: closure submitted for account.number, request ID closure.requestId
SecureMessaging.SendConfirmation to customer.email with closure.requestId and closure.timeline
- Customer has additional questions or requests needs_help →post-closure-support
- Customer is satisfied and ends interaction confirmed →resolution
Post-Closure Support
kb.account-closure-policy — reference post-closure FAQs including statement access, tax documents, and credit impact
- Question answered and customer satisfied confirmed →resolution
- Issue requires specialist involvement or account access complex →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged account-closure-escalation, linked to account.number
CRM.LogInteraction note: escalation triggered — reason logged under agent.caseId
SecureMessaging.SendNotification to assigned specialist with customer profile, account.number, and case summary
Resolution
CRM.LogInteraction note: closure interaction completed for customer.fullName, account account.number

Symptom Triage / Nurse Line Routing
Identity Verification
EHR.LookupPatient by patient.fullName and patient.dateOfBirth
- Identity confirmed, record found CRM.OpenRecord →symptom-intake
- Identity confirmed but DOB mismatch — ask for patient.memberId EHR.LookupPatientById →symptom-intake
- Caller is a caregiver, not the patient — collect patient.caregiverName and relationship, then verify patient identity →symptom-intake
- Identity cannot be verified after two attempts CRM.FlagUnverified →unverified-caller-triage
Symptom Intake
Collect patient.primarySymptom, patient.symptomDuration, and patient.symptomTrend.
Collect patient.currentMedications and patient.knownConditions.
- Caller mentions chest pain, pressure, or tightness →emergency-redirect
- Caller mentions difficulty breathing or shortness of breath at rest →emergency-redirect
- Caller mentions sudden face drooping, arm weakness, or speech difficulty →emergency-redirect
- Caller mentions severe bleeding that won't stop or loss of consciousness →emergency-redirect
- Caller explicitly requests to speak with a nurse →escalation-nurse-callback
- Symptoms collected, no red-flag keywords detected →triage-assessment
Emergency Redirect
CRM.CreateCase priority: critical, tagged emergency-redirect, linked to patient.memberId
NurseQueue.AlertOnCall with patient.primarySymptom and case.id
EHR.AddEncounterNote "Emergency redirect issued. Patient advised to call 911. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
- Caller confirms they are calling 911 or help is on the way →emergency-documentation
- Caller refuses to call 911 — document refusal, stay on the line, re-advise →care-refusal
- No response or line goes silent NurseQueue.AlertOnCall escalate immediately →escalation-nurse-callback
Emergency Documentation
EHR.AddEncounterNote "Patient acknowledged emergency redirect. 911 advised. Case case.id created."
CRM.UpdateCase case.id status: emergency-dispatched
Triage Assessment
- Triage engine returns tier: self-care tier_selfcare →self-care-guidance
- Triage engine returns tier: nurse callback tier_nurse →escalation-nurse-callback
- Triage engine returns tier: urgent care tier_urgent →urgent-care-routing
- Triage engine returns tier: emergency tier_emergency →emergency-redirect
- Triage engine lookup fails or confidence below threshold needs_review →escalation-nurse-callback
Self-Care Guidance
kb.schmitt-thompson-protocols — retrieve home-care instructions matching triage.protocol
EHR.AddEncounterNote "Triage complete. Tier: self-care. Protocol: triage.protocol. Guidance delivered. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
CRM.UpdateCase case.id status: self-care-guidance-provided
- Patient accepts guidance and has no further questions →resolution
- Patient is uncertain or wants a nurse to confirm →escalation-nurse-callback
- Patient refuses self-care recommendation →care-refusal
Urgent Care Routing
Scheduling.FindNearestUrgentCare by patient.zip -> facility.nearest
EHR.AddEncounterNote "Triage complete. Tier: urgent care within 4 hours. Facility: facility.nearest. Symptoms: patient.primarySymptom. Protocol: triage.protocol."
CRM.UpdateCase case.id status: urgent-care-routed
SecureMessaging.SendSummary to patient.phone with facility address and care instructions
- Patient confirms they will go →resolution
- Patient requests a different facility Scheduling.FindNearestUrgentCare alternate →urgent-care-routing
- Patient refuses urgent care recommendation →care-refusal
- Patient requests nurse confirmation before going →escalation-nurse-callback
Escalation to Nurse Callback
NurseQueue.AddToCallbackQueue patient.memberId, patient.primarySymptom, patient.symptomDuration, patient.symptomTrend, patient.knownConditions, patient.currentMedications, triage.riskScore
NurseQueue.GetEta -> nurse.callbackEta
CRM.CreateCase priority: high, tagged nurse-callback, linked to patient.memberId
EHR.AddEncounterNote "Escalated to nurse callback queue. ETA: nurse.callbackEta. Symptoms: patient.primarySymptom. Risk score: triage.riskScore. Case: case.id."
SecureMessaging.SendSummary to patient.phone confirming callback and safety instructions
- Nurse callback queued and patient is stable →resolution
- Patient's condition appears to be worsening during call →emergency-redirect
Unverified Caller Triage
Collect patient.primarySymptom, patient.symptomDuration, patient.symptomTrend.
CRM.CreateCase priority: high, tagged unverified-caller, flagged for nurse review
NurseQueue.AddToCallbackQueue unverified, patient.primarySymptom, patient.symptomDuration, patient.phone
EHR.AddEncounterNote "Unverified caller. Symptoms collected for nurse review. Callback number: patient.phone."
- Caller mentions any emergency symptom →emergency-redirect
- Case queued successfully →resolution
- Caller explicitly requests nurse immediately →escalation-nurse-callback
Care Refusal
EHR.AddEncounterNote "Patient declined recommended care tier: triage.tier. Symptoms: patient.primarySymptom. Refusal documented per protocol. Case: case.id."
CRM.UpdateCase case.id status: care-refusal-documented
NurseQueue.AlertOnCall with refusal note and patient.memberId for awareness
- Patient reconsiders and agrees to recommended care tier →triage-assessment
- Patient maintains refusal but accepts lower-acuity guidance →self-care-guidance
- Patient ends call →resolution
Resolution
EHR.AddEncounterNote "Encounter complete. Final routing: triage.tier. Case: case.id. Patient acknowledged next steps."
CRM.UpdateCase case.id status: resolved
SecureMessaging.SendSummary to patient.phone with encounter summary and care instructions

Size / Fit / Product Recommendation
Opening
CRM.LookupCustomer by customer.id or session identity to pre-load customer.purchaseHistory and any saved preferences.
- Customer wants sizing or fit help for a specific item size-help →collect-item-and-measurements
- Customer is comparing two or more products compare →product-comparison
- Customer is unsure what they need / browsing browsing →discover-needs
- Customer mentions a previous bad fit or return past-issue →review-past-purchase
Collect Item and Measurements
ProductCatalog.GetProduct to load product.category, product.attributes, and product.sizeGuide for the item the customer mentioned.
- Customer provides measurements has-measurements →run-size-lookup
- Customer doesn't know measurements or is unsure no-measurements →guide-self-measure
- Customer mentions they are between sizes between-sizes →between-sizes-advice
Guide Self-Measure
kb.self-measure-guide — retrieve step-by-step measurement instructions relevant to product.category
- Customer provides measurements after guide has-measurements →run-size-lookup
- Customer still can't measure or prefers not to skip-measure →recommend-size-up
- Customer wants to escalate or speaks with frustration frustrated →escalation-specialist
Between Sizes Advice
kb.sizing-policy — check brand fit philosophy (relaxed, true-to-size, runs small/large) for product.id
- Customer prefers snug fit snug →run-size-lookup
- Customer prefers relaxed fit relaxed →run-size-lookup
- Customer is still unsure unsure →recommend-size-up
Recommend Size Up
→run-size-lookup
Run Size Lookup
SizingGuideDB.MatchSize using customer.measurements, customer.preferences.fitStyle, and product.sizeGuide to generate recommendation.primary.
InventoryManagement.CheckStock for recommendation.primary in product.id to confirm product.stockStatus and product.availableSizes.
- Size is in stock in-stock →present-recommendation
- Size is out of stock out-of-stock →out-of-stock-handling
- Lookup error or ambiguous result lookup-error →escalation-specialist
Present Recommendation
- Customer is ready to add to cart ready-to-buy →add-to-cart
- Customer wants to see an alternative or compare wants-options →present-alternate
- Customer has more questions more-questions →answer-questions
- Customer expresses strong uncertainty or frustration frustrated →escalation-specialist
Present Alternate
ProductCatalog.GetAlternates using product.id, customer.preferences.budget, and customer.preferences.fitStyle to generate recommendation.alternate.
InventoryManagement.CheckStock for recommendation.alternate.
- Customer selects primary recommendation chose-primary →add-to-cart
- Customer selects alternate recommendation chose-alternate →add-to-cart
- Customer wants more comparison detail compare-detail →product-comparison
- Customer is stuck or frustrated frustrated →escalation-specialist
Product Comparison
ProductCatalog.GetProduct for each product the customer is comparing, loading product.attributes for both.
kb.product-comparison-guides — retrieve any curated head-to-head notes for these items.
- Customer is ready to choose and buy ready-to-buy →add-to-cart
- Customer wants sizing checked on one of the options size-help →collect-item-and-measurements
- Customer still undecided still-undecided →present-alternate
- Customer frustrated or overwhelmed frustrated →escalation-specialist
Discover Needs
- Customer provides enough detail to proceed sufficient-detail →collect-item-and-measurements
- Customer provides partial detail partial-detail →collect-item-and-measurements
- Customer is very unclear or disengaged disengaged →escalation-specialist
Review Past Purchase
CRM.GetPurchaseHistory for customer.id to retrieve customer.purchaseHistory including prior sizes, items, and any returns or exchanges.
kb.return-reason-codes — look up fit-related return notes linked to customer.id if available.
- Customer is happy with the adjusted recommendation accepts-advice →run-size-lookup
- Customer wants to explore a different product entirely different-product →discover-needs
- Customer is frustrated about the past experience frustrated →escalation-specialist
Out-of-Stock Handling
InventoryManagement.GetAvailableAlternates for product.id filtered by recommendation.primary size and customer.preferences.budget to find nearest in-stock alternative.
InventoryManagement.GetRestockDate for recommendation.primary in product.id if available.
- Customer wants the waitlist option wants-waitlist →join-waitlist
- Customer wants the in-stock alternative wants-alternate →present-alternate
- Customer wants to check other sizes check-other-sizes →run-size-lookup
- Customer frustrated or wants to leave frustrated →escalation-specialist
Join Waitlist
InventoryManagement.AddToWaitlist for customer.email on product.id in size recommendation.primary.
- Customer wants to keep browsing keep-browsing →discover-needs
- Customer is done done →resolution
- Customer wants to add the alternate to cart instead wants-alternate →add-to-cart
Answer Questions
kb.product-faq — retrieve relevant FAQs for product.id covering fabric, care, returns, sizing tolerances, and fit philosophy.
- Customer asks about fabric, care, or material material-question →answer-questions
- Customer asks about returns or exchanges returns-question →answer-questions
- Customer is satisfied and ready to buy ready-to-buy →add-to-cart
- Customer wants a different recommendation different-option →present-alternate
- Customer frustrated or escalating frustrated →escalation-specialist
Add to Cart
EcommerceCart.AddItem with product.id, recommendation.primary, and customer.id to add the confirmed selection.
- Customer wants to keep shopping keep-shopping →discover-needs
- Customer is done and happy done →resolution
- Customer has a cart or checkout issue cart-issue →escalation-specialist
Escalation to Specialist
CRM.CreateCase for customer.id tagged fit-escalation, logging all collected preferences, measurements, and conversation context.
Resolution

SIM Swap / Number Porting
Intake & Request Classification
- Customer requests SIM swap (upgrade or device change) sim-swap →identity-verification
- Customer requests port-out to another carrier port-out →identity-verification
- Customer reports lost or stolen SIM lost-stolen →identity-verification
- Customer reports a SIM change they did not request unauthorized →suspected-hijacking
Identity Verification
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails on first attempt unverified →verification-retry
- Verification fails a second time or customer cannot provide credentials failed →verification-lockout
Verification Retry
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails again failed →verification-lockout
Verification Lockout
CRM.LogFailedVerification for customer.phoneNumber, flag request as locked
CRM.AddNote to account.id: "Identity verification failed — in-store ID required."
Account Eligibility Check
CRM.LookupAccount by customer.phoneNumber, retrieve account.id, account.fraudFlag, account.portFreeze
- Account has an active fraud flag fraud-flag →fraud-hold-escalation
- Account has an active port freeze port-freeze →fraud-hold-escalation
- Account is clear and eligible eligible →request-routing
Request Routing
- Request is a SIM swap sim-swap →sim-swap-execution
- Request is a port-out port-out →port-out-execution
- Request is for a lost or stolen SIM lost-stolen →lost-stolen-sim
SIM Swap Execution
SubscriberProvisioning.ValidateICCID for sim.newICCID
- ICCID is valid and unassigned iccid-valid →sim-swap-confirm
- ICCID is invalid or already in use iccid-invalid →sim-swap-iccid-error
SIM ICCID Error
- Customer provides a new ICCID to try →sim-swap-execution
- Customer cannot provide a valid ICCID →escalation-human-agent
SIM Swap Confirm
- Customer confirms confirmed →sim-swap-provisioning
- Customer cancels or is unsure cancelled →sim-swap-cancelled
SIM Swap Provisioning
SubscriberProvisioning.ExecuteSIMSwap for account.id, new ICCID sim.newICCID, deactivate old SIM
CRM.LogActivity on account.id: "SIM swap completed, new ICCID recorded."
CarrierMessagingGateway.SendSMS to customer.phoneNumber: "Your SIM swap is complete. If your service is not active within 15 minutes, please restart your device."
→resolution
SIM Swap Cancelled
→resolution
Port-Out Execution
NumberPortabilityClearinghouse.LookupCarrier for port.receivingCarrier
- Carrier found and eligible for port carrier-valid →port-auth-code-generation
- Carrier lookup fails or carrier not found carrier-not-found →port-lookup-failure
Port Authorization Code Generation
NumberPortabilityClearinghouse.GeneratePAC for customer.phoneNumber, linked to account.id
CRM.LogActivity on account.id: "Port-out PAC generated for port.receivingCarrier."
→resolution
Port Lookup Failure
CRM.CreateTicket for account.id: "Port-out request — receiving carrier lookup failed. Carrier: port.receivingCarrier. Manual follow-up required."
CRM.LogActivity on account.id: "Carrier lookup failed during port-out request."
- Customer provides callback number callback-provided →port-callback-scheduled
- Customer prefers email email-preferred →port-callback-scheduled
- Customer wants to wait and try again retry →port-out-execution
Port Callback Scheduled
CRM.ScheduleCallback on case.id with customer contact preference
→resolution
Lost or Stolen SIM
SubscriberProvisioning.SuspendSIM for customer.phoneNumber, reason: lost-stolen
CRM.LogActivity on account.id: "SIM suspended — customer reported lost or stolen. Replacement process initiated."
FraudManagement.NotifyLostStolen for account.id
- Customer wants replacement shipped ship-replacement →replacement-sim-dispatch
- Customer will pick up in store store-pickup →store-pickup-guidance
- Customer needs more time to decide undecided →resolution
Replacement SIM Dispatch
SubscriberProvisioning.OrderReplacementSIM for account.id, ship to address on file
CRM.LogActivity on account.id: "Replacement SIM ordered — shipping to address on file."
CarrierMessagingGateway.SendSMS to customer.email: "Your replacement SIM has been ordered and will arrive in 3 to 5 business days. Activation instructions will be included."
→resolution
Store Pickup Guidance
CRM.LogActivity on account.id: "Customer advised to pick up replacement SIM in store."
→resolution
Suspected SIM Hijacking
SubscriberProvisioning.SuspendAccount for customer.phoneNumber, reason: suspected-hijacking
FraudManagement.RaiseSIMHijackingAlert for account.id
CRM.CreateTicket for account.id: "Suspected SIM hijacking — customer did not authorize swap. Immediate fraud team review required."
→escalation-fraud-team
Fraud Hold Escalation
FraudManagement.EscalateAccount for account.id, reason: port-freeze-or-fraud-flag
CRM.LogActivity on account.id: "SIM/port request blocked — active fraud flag or port freeze. Escalated to fraud team."
→escalation-fraud-team
Escalation — Fraud Team
FraudManagement.CreateCase for account.id, priority: high
CRM.NotifyFraudTeam with account.id, customer.phoneNumber, case summary
Escalation — Human Agent
CRM.CreateTicket for account.id: "Customer requires human agent assistance — could not complete SIM swap or port automatically."
Resolution
- Customer has another request new-request →intake
- Customer is done done →close
Close
CRM.CloseInteraction for account.id

Service Activation / New Line Setup
Identity Verification
CRM.LookupAccount using account.holder_name and account.id
CRM.VerifyPIN against account.pin
- Identity verified on first or second attempt confirmed →eligibility-check
- Identity fails first attempt unconfirmed CRM.LogVerificationAttempt →secondary-verification
- Fraud flag raised on account fraud_flag →escalation-fraud
- Identity fails after two attempts verification_failed →escalation-identity
Secondary Verification
CRM.VerifySecondaryIdentity using account.billing_address and account.payment_method
- Secondary verification passes confirmed →eligibility-check
- Secondary verification fails unconfirmed →escalation-identity
Eligibility Check
BillingPlatform.CheckEligibility for account.id
- Account is eligible for a new line eligible →device-and-sim-collection
- Account has outstanding balance or restrictions ineligible →eligibility-resolution
Eligibility Resolution
BillingPlatform.GetAccountStatus for account.id
- Customer agrees to resolve balance now confirmed BillingPlatform.ProcessPayment →device-and-sim-collection
- Customer wants to handle it later or disputes the hold declined →escalation-billing
Device and SIM Collection
SIMIMEIProvisioning.ValidateIMEI using device.imei
SIMIMEIProvisioning.ValidateSIM using sim.number
- IMEI and SIM both valid confirmed →plan-selection
- IMEI is blacklisted or incompatible imei_flagged →device-issue
- SIM number is unrecognized or already active sim_invalid →sim-issue
Device Issue
kb.compatible-device-catalog — retrieve compatible device options and current upgrade promotions for account.id
- Customer wants to use a different device confirmed →device-and-sim-collection
- Customer wants to explore upgrade or purchase options interested →escalation-device-upgrade
- Customer wants to end the interaction declined →resolution-closed
SIM Issue
kb.sim-replacement-policy — check eligibility for a new SIM
- Customer can obtain or activate a replacement SIM confirmed →device-and-sim-collection
- Issue requires physical store visit or mailed SIM store_required →escalation-store-referral
Plan Selection
kb.plan-catalog — retrieve available plans, pricing, and promotional offers for account.id
- Customer selects a plan confirmed →number-selection
- Customer is unsure or wants more information undecided →plan-recommendation
Plan Recommendation
- Customer selects a plan after recommendation confirmed →number-selection
- Customer still undecided or wants to call back deferred →resolution-deferred
- Customer declines all plans declined →resolution-closed
Number Selection
- Customer wants a new number assigned new_number CarrierNetworkAPI.AssignNumber for account.id →payment-processing
- Customer wants to port an existing number port_in →port-in-collection
Port-In Collection
NumberPortabilityDB.ValidatePortRequest using port.number, port.carrier, port.account_number, port.pin
- Port request validated and eligible confirmed →port-in-initiated
- Port request rejected or information mismatch invalid →port-in-issue
Port-In Initiated
NumberPortabilityDB.SubmitPortRequest for port.number linked to account.id
CarrierNetworkAPI.AssignTemporaryNumber for account.id
- Temporary number assigned and port submitted confirmed →payment-processing
- Port submission fails due to carrier-side issue port_error →escalation-porting
Port-In Issue
- Customer provides corrected details confirmed →port-in-collection
- Customer is unable to provide correct details unconfirmed →escalation-porting
- Customer prefers to take a new number instead new_number →payment-processing
Payment Processing
PaymentProcessor.ChargeActivationFee of plan.activation_fee to account.payment_method
- Payment succeeds payment_success →line-provisioning
- Payment declines payment_declined →payment-retry
Payment Retry
kb.installment-eligibility — check if account.id qualifies for installment plan on activation fee
- Customer provides alternate payment method alternate_payment PaymentProcessor.ChargeActivationFee →line-provisioning
- Customer qualifies for and accepts installment option installment_approved BillingPlatform.SetupInstallment →line-provisioning
- Customer declines all payment options declined →resolution-payment-abandoned
Line Provisioning
CarrierNetworkAPI.ProvisionLine for account.id with sim.number, device.imei, plan.selected
CRM.UpdateAccount with line.assigned_number and new line details
BillingPlatform.AddLineToAccount for account.id with plan.selected
- Line provisioned successfully line_active →activation-confirmation
- Provisioning error returned by network provisioning_error →escalation-provisioning
Activation Confirmation
- Customer confirms call or data is working confirmed →resolution-success
- Customer reports no signal or data issues not_working →activation-troubleshooting
Activation Troubleshooting
CarrierNetworkAPI.CheckLineStatus for line.assigned_number
SIMIMEIProvisioning.VerifyProvisioningStatus for sim.number
- Network confirms line is active and issue resolves resolved →resolution-success
- Line status shows error or provisioning incomplete provisioning_error →escalation-provisioning
- Issue persists despite active line status unresolved →escalation-technical
Escalation — Identity Verification Failed
CRM.LogFailedVerification for account.id with verification.attempts
CRM.CreateTicket tagged identity-verification-failed, linked to account.id
Escalation — Fraud Flag
CRM.FlagAccountForReview tagged fraud, for account.id
CRM.CreateTicket priority: high, tagged fraud-flag, linked to account.id
Escalation — Billing or Eligibility
CRM.CreateTicket tagged billing-hold, linked to account.id
Escalation — Device Upgrade
CRM.CreateTicket tagged device-upgrade-referral, linked to account.id
Escalation — Store Referral
CRM.CreateTicket tagged sim-store-referral, linked to account.id
Escalation — Porting Issue
CRM.CreateTicket priority: high, tagged port-in-escalation, linked to account.id, including port.number and port.carrier
Escalation — Provisioning Error
CRM.CreateTicket priority: high, tagged provisioning-error, linked to account.id and line.assigned_number
Escalation — Technical Support
CRM.CreateTicket tagged device-technical-issue, linked to account.id and line.assigned_number
Resolution — Success
CRM.CloseTicket for account.id tagged activation-complete
Resolution — Deferred
CRM.SaveSessionState for account.id with plan.selected and device.imei
Resolution — Payment Abandoned
CRM.SaveSessionState for account.id with plan.selected and line.assigned_number tagged payment-pending
Resolution — Closed
CRM.LogInteraction for account.id tagged activation-not-completed

Roaming / International Add-on Request
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountNumber
CRM.VerifyPIN against customer.pin
- Identity verified successfully verified →account-review
- PIN incorrect on first attempt — prompt once more →identity-retry
- Account not found or unresolvable →escalation-human
Identity Retry
CRM.VerifyPIN against customer.pin
- Identity verified on second attempt verified →account-review
- Second attempt fails failed →escalation-human
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.outstandingBalance, customer.accountFlags
- Account flagged for fraud or suspension flagged →escalation-human
- Account has a past-due balance outstanding pastdue →past-due-balance
- Account in good standing, no flags clear →trip-details
Past-Due Balance
- Customer agrees to pay →payment-collection
- Customer declines or requests a payment arrangement →escalation-human
Payment Collection
PaymentProcessing.InitiatePayment for customer.outstandingBalance on customer.accountNumber
- Payment successful payment_cleared CRM.UpdateAccountStatus →trip-details
- Payment declined or failed payment_failed →escalation-human
Trip Details
CRM.SetTripContext with trip.destinationCountry, trip.departureDate, trip.returnDate
- Travel dates are upcoming or current and destination captured →device-check
- Customer is already abroad and reports unexpected charges →already-abroad
Device Check
DeviceCompatibilityChecker.Assess using device.imei, device.model, device.simStatus for trip.destinationCountry
CarrierInternationalAPI.CheckPartnerCoverage for trip.destinationCountry
- Device is compatible with international bands and destination network device_ok →addon-selection
- Device is CDMA-only or SIM-locked for destination device_incompatible →device-incompatibility
- Coverage unavailable in destination through partner network no_coverage →escalation-human
Device Incompatibility
- Customer wants international SIM option →sim-rental-offer
- Customer wants rental device option →sim-rental-offer
- Customer declines alternatives and wants to explore further →escalation-human
SIM / Rental Offer
CRM.CreateCase tagged device-compatibility-roaming, linked to customer.accountNumber
→escalation-human
Add-on Selection
AddonCatalog.GetEligibleAddons for customer.currentPlan, trip.destinationCountry, trip.departureDate, trip.returnDate
kb.roaming-addon-policy — review eligible plans, pricing tiers, promotional offers, and usage caps for trip.destinationCountry
- Customer selects a preferred add-on →pricing-confirmation
- Customer disputes the pricing or expected charges →pricing-dispute
- Customer requests a plan not currently eligible for their account →escalation-human
Pricing Confirmation
- Customer confirms selection confirmed →addon-activation
- Customer wants to change selection →addon-selection
- Customer wants to cancel the request →resolution-no-change
Add-on Activation
BillingPlatform.ActivateAddon with addon.name, addon.effectiveDate on customer.accountNumber
CRM.LogInteraction with add-on details, trip.destinationCountry, trip.departureDate, trip.returnDate
BillingPlatform.SendConfirmationEmail to customer.email with addon.name, addon.price, addon.usageCap, addon.effectiveDate
- Customer has additional questions or requests →trip-details
- Customer is satisfied, no further needs →resolution-complete
Already Abroad
BillingPlatform.GetRecentCharges for customer.accountNumber — review charge.amount for pay-per-use international activity
kb.roaming-retroactive-credit-policy — check eligibility window and thresholds for credit.eligibility
- Customer has been incurring pay-per-use charges within the retroactive credit window credit_eligible →retroactive-credit-review
- Charges are outside the policy window or ineligible for credit →addon-selection
- Customer is disputing a large existing international charge →charge-dispute
Retroactive Credit Review
- Credit is within agent approval threshold and eligible credit_approved →apply-retroactive-credit
- Credit amount exceeds agent threshold or policy bars it credit_escalate →escalation-human
Apply Retroactive Credit
BillingPlatform.ApplyCredit of credit.amount to customer.accountNumber tagged retroactive-roaming-adjustment
CRM.LogInteraction with credit amount, reason, and linked charges
→addon-selection
Charge Dispute
BillingPlatform.GetChargeDetail for charge.disputeAmount on customer.accountNumber
kb.roaming-dispute-policy — review dispute thresholds and agent authorization limits
- Dispute amount is within agent adjustment authority within_threshold →pricing-dispute
- Dispute amount exceeds agent authority exceeds_threshold →escalation-human
Pricing Dispute
kb.roaming-addon-policy — check active promotional offers, loyalty discounts, and goodwill adjustment eligibility
- A valid promotion or discount applies and resolves the concern promotion_found BillingPlatform.ApplyPromotion →addon-selection
- No promotion available but a courtesy adjustment is warranted and within threshold courtesy_ok BillingPlatform.ApplyCredit →addon-selection
- No resolution possible within agent authority no_resolution →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged roaming-escalation, linked to customer.accountNumber
CRM.LogInteraction with full context: trip.destinationCountry, customer.currentPlan, charge.disputeAmount, customer.accountFlags
Resolution — Complete
CRM.LogInteraction with resolved add-on, addon.effectiveDate, trip.destinationCountry, trip.returnDate
Resolution — No Change
CRM.LogInteraction tagged no-change-requested, customer.accountNumber

Returns / Exchange Request
Intake
- Customer provides order ID and email →order-verification
- Customer says they don't have their order ID no_order_id →order-lookup-fallback
- Customer immediately states item is damaged or wrong damaged_wrong →damaged-wrong-item
Order Lookup Fallback
CRM.LookupOrder by customer.name or customer.email or lookup.method
- Order found →order-verification
- Order not found after lookup CRM.LogAttempt →escalation-human
Order Verification
OrderManagement.GetOrder using order.id and customer.email
kb.return-exchange-policy — confirm return window, final sale rules, and eligible items for order.purchaseDate
- Order verified and item is within return window →reason-and-preference
- Order verified but item is outside return window outside_window →outside-return-window
- Order verified and item is marked final sale final_sale →final-sale-ineligible
- Order cannot be verified after attempts →escalation-human
Reason and Preference
- Customer states reason and wants a refund wants_refund →refund-path
- Customer states reason and wants an exchange wants_exchange →exchange-path
- Customer is unsure — offer both options Say: "I can process either a full refund back to your original payment method or place a new exchange order — whichever works best for you." →reason-and-preference
Refund Path
- Refund is eligible and amount is within auto-approve threshold approved →generate-return-label
- Refund amount exceeds threshold high_value →refund-approval
- Item flagged as ineligible based on stated reason ineligible →policy-exception-check
Generate Return Label
ReturnsManagement.CreateReturnShipment for item.sku linked to order.id
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, return instructions, and expected refund timeline
→resolution
Exchange Path
ReturnsManagement.CheckEligibility for item.sku and order.id
OrderManagement.CheckInventory for the requested replacement item
- Replacement item is in stock →place-exchange-order
- Replacement item is out of stock Say: "Unfortunately the item you requested isn't available right now. I can set up a refund instead, or hold the exchange until it's restocked — which would you prefer?" →reason-and-preference
- Item is ineligible for exchange ineligible →policy-exception-check
Place Exchange Order
OrderManagement.CreateExchangeOrder linked to order.id, capture exchange.orderId
ReturnsManagement.CreateReturnShipment for original item.sku
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, exchange.orderId, and exchange confirmation details
→resolution
Refund Approval
- Approved approved →generate-return-label
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Damaged or Wrong Item
OrderManagement.GetOrder using order.id and customer.email
CRM.LogIssue tagged damaged-or-wrong, linked to order.id
- Low value order — waive return and reship immediately OrderManagement.CreateReplacementOrder EmailNotification.Send →resolution
- Higher value order — request photo evidence then reship evidence_required Say: "Could you reply with a photo of the item? Once I have that I'll get a replacement out to you right away." →damaged-evidence-review
- Ambiguous or high-risk needs_review →escalation-human
Damaged Evidence Review
OrderManagement.CreateReplacementOrder linked to order.id
ReturnsManagement.WaiveReturn for item.sku
EmailNotification.Send to customer.email with replacement order confirmation and apology note
→resolution
Outside Return Window
kb.return-exchange-policy — check goodwill store credit eligibility for borderline cases
- Purchase is borderline outside window (within 7 days past deadline) — offer store credit as goodwill gesture Say: "As a one-time courtesy, I'd be happy to offer you store credit for the value of the item. Would that work for you?" →goodwill-store-credit
- Purchase is well outside window — explain policy firmly outside_window_firm Say: "Unfortunately I'm not able to make exceptions beyond our standard window, but I'd love to help you with anything else." →resolution
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Goodwill Store Credit
ReturnsManagement.IssueStoreCredit for order.total linked to customer.email
EmailNotification.Send to customer.email with store credit amount and redemption instructions
CRM.LogNote tagged goodwill-credit, linked to order.id
→resolution
Final Sale Ineligible
kb.return-exchange-policy — confirm no exceptions apply for final sale items
- Customer accepts the policy →resolution
- Customer reports the item arrived damaged or wrong damaged_wrong →damaged-wrong-item
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Policy Exception Check
- Exception applies — proceed with return or exchange →generate-return-label
- No exception — inform customer and offer alternative support →final-sale-ineligible
- Requires manager judgment needs_review →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged returns-escalation, linked to order.id and customer.email
Slack.Notify to #returns-escalations with case summary, order.id, order.total, and return.reason
Resolution
CRM.UpdateCase status: resolved, linked to order.id

Quote Request Intake
Intake Greeting
- Customer names a specific coverage type confirmed →coverage-type-selected
- Customer is unsure or asks for a recommendation uncertain →coverage-guidance
- Customer wants to speak with a person directly escalation_request →escalation-human
Coverage Guidance
- Agent identifies a suitable coverage type and customer agrees confirmed →coverage-type-selected
- Customer remains undecided or disengages disengaged →partial-intake-save
- Customer requests a human advisor escalation_request →escalation-human
Coverage Type Selected
CRM.LookupCustomer by customer.phone or customer.email to check for an existing record.
- Existing customer record found returning_customer →risk-detail-collection
- No existing record found new_customer →personal-info-collection
Personal Info Collection
CRM.CreateContact with customer.name, customer.email, customer.phone, customer.address
- All required contact details collected info_complete →risk-detail-collection
- Customer provides partial info then stops responding disengaged →partial-intake-save
Risk Detail Collection
- All required risk fields collected fields_complete →underwriting-check
- Critical fields missing after follow-up prompts fields_incomplete →partial-intake-save
- Customer disengages mid-collection disengaged →partial-intake-save
Underwriting Check
UnderwritingRulesAPI.Evaluate with coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits
- Risk profile passes standard guidelines eligible →quote-generation
- Risk profile flagged — outside standard guidelines flagged high_risk →underwriter-review
- API returns an error or timeout error →quoting-system-error
Quote Generation
QuotingEngine.GenerateQuote with customer.name, coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits, coverage.startDate
- Quote successfully generated quote_ready →quote-presentation
- Quoting engine error or timeout on first attempt error →quoting-retry
Quoting Retry
QuotingEngine.GenerateQuote retry with same inputs
- Quote successfully generated on retry quote_ready →quote-presentation
- Second attempt also fails error →quoting-system-error
Quote Presentation
NotificationService.SendEmail to customer.email with quote summary: quote.id, quote.premium, quote.tier, coverage.desiredLimits, coverage.startDate
NotificationService.SendSMS to customer.phone with quote summary link
- Customer wants to bind coverage now bind_now →next-steps-binding
- Customer wants to explore different tiers or limits adjust_quote →risk-detail-collection
- Customer wants to speak with a licensed agent escalation_request →escalation-human
- Customer acknowledges receipt but wants to decide later defer →resolution-follow-up
Next Steps — Binding
PolicyManagement.InitiateBinding with quote.id, customer.name, customer.email, coverage.startDate
CRM.UpdateContact status: quote-accepted, linked to quote.id
- Customer has additional questions →intake-greeting
- Customer is done — no further questions →resolution-complete
Underwriter Review
CRM.UpdateContact status: pending-underwriter-review, flag: underwriting.flagReason
NotificationService.SendEmail to customer.email confirming review is in progress, expected timeline 1 to 2 business days
UnderwritingRulesAPI.CreateReviewCase with customer.name, coverage.type, underwriting.flagReason, all risk fields
- Customer wants an agent callback confirmed →escalation-human
- Customer is satisfied to wait defer →resolution-follow-up
Partial Intake Save
CRM.SavePartialIntake with all collected fields, status: incomplete, customer.phone, customer.email
NotificationService.ScheduleFollowUp outreach in 24 hours to customer.phone and customer.email
CRM.UpdateContact preferred_contact: as stated by customer
- Customer provides a preferred follow-up time or method →resolution-follow-up
- Customer does not respond or disengages →resolution-follow-up
Quoting System Error
CRM.LogQuoteAttempt status: system-error, customer.name, coverage.type, all collected risk fields
NotificationService.AlertLicensedAgent with customer.name, customer.phone, customer.email, coverage.type, collected risk fields
- Handoff to licensed agent →escalation-human
Escalation to Human Agent
CRM.UpdateContact status: escalated-to-agent
CRM.CreateTask priority: high, assigned: licensed_agent_queue, linked to customer.name, coverage.type, quote.id
NotificationService.AlertLicensedAgent with full intake summary: customer.name, customer.email, customer.phone, coverage.type, coverage.desiredLimits, coverage.startDate, all risk fields, quote.id if available
Resolution — Follow-up Scheduled
CRM.UpdateContact status: follow-up-scheduled
Resolution — Complete
CRM.UpdateContact status: quote-delivered

Product Availability / Stock Inquiry
Gather Product Details
- Customer provides a clear product name or SKU product-identified →gather-variant-details
- Customer gives a vague or partial description product-unclear →clarify-product
- Customer is already frustrated or mentions previous failed lookup frustrated →escalation-human
Clarify Product
- Customer provides enough detail to identify the product product-identified →gather-variant-details
- Customer still cannot identify the product product-unclear ProductCatalog.Search to surface closest matches →suggest-alternatives
- Customer expresses frustration frustrated →escalation-human
Gather Variant Details
- Customer provides variant and prefers in-store pickup in-store →gather-location
- Customer provides variant and prefers online online →check-online-inventory
- Customer has no variant preference and prefers in-store in-store →gather-location
- Customer has no variant preference and prefers online online →check-online-inventory
- Customer is flexible on channel flexible →check-online-inventory
Gather Location
- Customer provides zip code or store name location-provided StoreLocator.FindNearestStores using customer.zipCode →check-store-inventory
- Customer cannot provide location location-unknown →check-online-inventory
- Customer expresses frustration frustrated →escalation-human
Check Online Inventory
InventoryManagement.GetOnlineStock for product.sku, variant product.variant.size, product.variant.color
- Online stock confirmed available in-stock →confirm-online-availability
- Online stock is zero or unavailable out-of-stock →check-store-inventory
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Check Store Inventory
InventoryManagement.GetStoreStock for product.sku at customer.preferredStore, variant product.variant.size, product.variant.color
- Stock confirmed at preferred or nearest store in-stock →confirm-store-availability
- In-stock only at a distant store distant-stock →offer-ship-or-transfer
- Out of stock at all nearby stores and online out-of-stock →check-discontinued
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Confirm Online Availability
CRM.LogInteraction tagged availability-confirmed-online, linked to product.sku
- Customer wants a link SendEmail or SendSMS with product URL to customer.email or customer.phone →resolution
- Customer is satisfied and needs nothing else confirmed →resolution
- Customer mentions price match, special hold, or bulk quantity special-request →escalation-human
Confirm Store Availability
CRM.LogInteraction tagged availability-confirmed-store, linked to product.sku
- Customer wants to reserve the item wants-reservation InventoryManagement.PlaceHold for product.sku at store.name →reservation-confirmed
- Customer is satisfied and will go to the store confirmed →resolution
- Customer requests price match, special hold, or bulk quantity special-request →escalation-human
- Customer expresses frustration frustrated →escalation-human
Reservation Confirmed
CRM.LogInteraction tagged reservation-placed, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Offer Ship or Transfer
InventoryManagement.CheckShipFromStore for product.sku at store.name
InventoryManagement.CheckTransferEligibility for product.sku
- Ship-from-store is available and customer agrees ship-available InventoryManagement.InitiateShipFromStore →ship-from-store-confirmed
- Transfer to closer store is available and customer prefers pickup transfer-available InventoryManagement.InitiateTransfer →transfer-initiated
- Neither option is available or customer declines both declined →check-discontinued
- Customer requests special handling or bulk quantity special-request →escalation-human
Ship From Store Confirmed
CRM.LogInteraction tagged ship-from-store-initiated, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Transfer Initiated
CRM.UpdateContactInfo with customer.email, customer.phone
CRM.LogInteraction tagged transfer-requested, linked to product.sku
- Customer provides contact info contact-provided →resolution
- Customer declines contact info declined →resolution
Check Discontinued
ProductCatalog.CheckDiscontinuedStatus for product.sku
- Product is confirmed discontinued discontinued →product-discontinued
- Product is not discontinued but broadly out of stock out-of-stock →offer-restock-notification
Product Discontinued
ProductCatalog.GetSimilarItems for product.sku
- Customer wants to see alternatives wants-alternatives →suggest-alternatives
- Customer does not want alternatives declined →resolution
- Customer is upset about the discontinuation frustrated →escalation-human
Offer Restock Notification
- Customer agrees to restock alert confirmed RestockNotification.Subscribe with product.sku, customer.email, customer.phone →restock-signup-confirmed
- Customer declines and wants to see similar items wants-alternatives →suggest-alternatives
- Customer declines all options declined →resolution
Restock Signup Confirmed
CRM.LogInteraction tagged restock-alert-registered, linked to product.sku
- Customer has another question follow-up →gather-product-details
- Customer is satisfied confirmed →resolution
Suggest Alternatives
- Suitable alternatives found and customer is interested alternatives-found →present-alternatives
- No suitable alternatives found or customer declines no-match →resolution
- Customer expresses frustration or demands a manager frustrated →escalation-human
Present Alternatives
- Customer selects an alternative and wants to check availability selected →check-online-inventory
- Customer wants to know more about an alternative wants-details ProductCatalog.GetProductDetails →present-alternatives
- Customer declines all alternatives declined →resolution
- Customer expresses frustration frustrated →escalation-human
Inventory Lookup Failure
CRM.LogSystemError with lookup.errorCode, product.sku, tagged inventory-lookup-failure
- Customer is okay with the workaround confirmed →resolution
- Customer is frustrated or wants further help frustrated →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged availability-escalation, linked to product.sku, customer.name
CRM.LogInteraction tagged escalated-to-human
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to product.sku

Prior Authorization Status Inquiry
Intake & Caller Identification
- Caller identifies as the patient or member confirmed →member-identity-verification
- Caller identifies as provider staff or office provider →provider-identity-verification
- Caller relationship unclear or caller does not respond unclear →intake-verification
Member Identity Verification
EligibilitySystem.VerifyMember using member.id and member.dob
CRM.PullMemberRecord for member.id
- Identity verified, coverage active verified →auth-lookup
- Identity verified but coverage inactive coverage_inactive →coverage-issue
- Identity cannot be confirmed after two attempts unverified →escalation-human
Provider Identity Verification
ProviderDirectory.VerifyProvider using provider.npi or provider.practiceName
EligibilitySystem.VerifyMember using member.id and member.dob
- Provider and member both verified, coverage active verified →auth-lookup
- Member coverage inactive coverage_inactive →coverage-issue
- Provider NPI not found in directory provider_not_found →escalation-human
- Identity cannot be confirmed unverified →escalation-human
Coverage Issue
CRM.LogCoverageFlag for member.id with status member.coverageStatus
- Caller wants to continue to auth lookup regardless →auth-lookup
- Caller wants to resolve coverage issue first →escalation-human
Authorization Lookup
AuthManagement.LookupAuthorization using auth.referenceNumber or member.id and auth.submittedDate and medication.name or procedure.name
- Authorization record found, status is pending pending →status-pending
- Authorization record found, status is approved approved →status-approved
- Authorization record found, status is denied denied →status-denied
- Authorization record found, clinical info still outstanding info_outstanding →clinical-info-outstanding
- Authorization record cannot be located not_found →auth-not-found
Status — Pending
AuthManagement.CheckReviewDeadline for auth.referenceNumber
- Request is still within the payer's mandated review timeframe →pending-next-steps
- Request has exceeded the mandated review timeframe overdue →escalation-urgent
Pending — Next Steps
CRM.LogInteraction for member.id with status pending and next review date auth.reviewDeadline
- Caller has additional questions →intake-verification
- Caller is satisfied and ends interaction →resolution
Status — Approved
CRM.LogInteraction for member.id with outcome approved
Portal.ConfirmLetterDelivery for auth.referenceNumber
- Caller needs the approval reference number or letter resent →resend-approval
- Caller has no further questions →resolution
Resend Approval Letter
Portal.ResendApprovalLetter for auth.referenceNumber to member.id
CRM.LogInteraction noting resend requested
- Letter resent successfully letter_sent →resolution
- Delivery fails or address needs updating delivery_failed →escalation-human
Status — Denied
kb.appeal-rights-policy — confirm appeal window, peer-to-peer review rights, and deadline rules for auth.denialReason
CRM.LogDenialOutcome for member.id and auth.referenceNumber with reason auth.denialReason
- Denial involves urgent or life-sustaining treatment urgent →escalation-urgent
- Caller confirms intent to appeal appeal_intent →escalation-appeal
- Caller wants to discuss denial reason further →denial-detail
- Caller accepts denial and has no further questions →resolution
Denial Detail
kb.clinical-criteria-policy — look up criteria applied to medication.name or procedure.name
- Caller now wants to initiate appeal appeal_intent →escalation-appeal
- Caller has no further questions →resolution
Clinical Info Outstanding
Portal.SendClinicalInfoRequest to provider.npi with list auth.outstandingDocs
CRM.LogInteraction for member.id noting outstanding documents and notification sent
- Notification sent and caller is satisfied notified →resolution
- Provider disputes what is listed as outstanding disputed →escalation-human
Authorization Not Found
CRM.LogInteraction for member.id noting authorization not found and submission details provided
- Caller wants to escalate to intake team for investigation escalate_intake →escalation-intake
- Caller will resubmit and has no further questions →resolution
Escalation — Urgent or Life-Sustaining Denial
CRM.FlagUrgentCase for member.id and auth.referenceNumber with priority high
AuthManagement.EscalateForExpediteReview for auth.referenceNumber
CRM.LogInteraction noting urgent escalation initiated
Escalation — Formal Appeal
CRM.OpenAppealCase for member.id and auth.referenceNumber with deadline auth.appealDeadline
Portal.SendAppealInstructions to member.id and provider.npi
CRM.LogInteraction noting appeal case opened
Escalation — Intake Investigation
CRM.CreateIntakeInvestigationTicket for member.id with submission details auth.submittedDate and medication.name or procedure.name
CRM.LogInteraction noting intake escalation for missing authorization record
- Caller has additional questions →intake-verification
- Caller is satisfied →resolution
Escalation — Human Agent
CRM.LogInteraction for member.id noting reason for escalation
CRM.RouteToSpecialist priority standard
Resolution
CRM.LogInteraction for member.id with outcome resolved and summary of interaction

Prescription Refill Request
Patient Verification
PatientIdentityVerification.LookupPatient using patient.fullName and patient.dateOfBirth
- Identity verified successfully verified →prescription-lookup
- Identity cannot be confirmed after two attempts unverified →escalation-human
- Patient reports urgent clinical concern or adverse reaction urgent →escalation-clinical
Prescription Lookup
Epic.GetPrescriptionRecord using patient.memberId, prescription.name, prescription.dosage
- Prescription found, refills remaining and not expired →pharmacy-confirmation
- Prescription found, no refills remaining no_refills →no-refills-remaining
- Prescription found but expired expired →prescription-expired
- Prescription flagged as controlled substance controlled →escalation-clinical
- Prescription not found in record →escalation-human
Pharmacy Confirmation
- Patient confirms pharmacy on file confirmed →submit-refill-request
- Patient requests a different pharmacy change_pharmacy →update-pharmacy
- Patient is unresponsive or unclear →escalation-human
Update Pharmacy
Epic.UpdatePreferredPharmacy with pharmacy.name and pharmacy.address
CRM.UpdatePatientRecord with updated pharmacy.name
→submit-refill-request
Submit Refill Request
Surescripts.SendRefillRequest for prescription.name prescription.dosage to pharmacy.name on behalf of patient.memberId
CRM.LogInteraction with patient.memberId, prescription.name, pharmacy.name
- Patient has another request another →patient-verification
- Patient confirms they are done done →resolution-confirmed
No Refills Remaining
Epic.SendRefillAuthorizationRequest to prescription.prescriberId for patient.memberId and prescription.name
CRM.LogInteraction with patient.memberId, note: refill authorization requested, no refills remaining
- Patient indicates urgent medical need urgent →escalation-clinical
- Patient acknowledges and is satisfied acknowledged →resolution-pending-authorization
Prescription Expired
CRM.LogInteraction with patient.memberId, note: prescription expired, appointment recommended
- Patient wants to schedule an appointment schedule →appointment-scheduling
- Patient declines and has no urgent need decline →resolution-no-action
- Patient reports an urgent clinical concern urgent →escalation-clinical
Appointment Scheduling
Epic.InitiateAppointmentRequest for patient.memberId with prescription.prescriberId
CRM.LogInteraction with patient.memberId, note: appointment scheduling initiated for expired prescription
- Appointment request successfully initiated scheduled →resolution-appointment-booked
- Scheduling system unavailable unavailable →escalation-human
Escalation to Clinical Staff
Epic.CreateClinicalAlert priority: high, patient.memberId, prescription.name, prescription.isControlled
CRM.CreateCase tagged: clinical-escalation, controlled-substance, linked to patient.memberId
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: refill-escalation, linked to patient.memberId, prescription.name
Resolution — Confirmed
CRM.LogInteraction with patient.memberId, note: refill successfully submitted, case closed
Resolution — Pending Authorization
CRM.LogInteraction with patient.memberId, note: patient informed of pending provider authorization
Resolution — Appointment Booked
CRM.LogInteraction with patient.memberId, note: appointment booked for expired prescription renewal
Resolution — No Action
CRM.LogInteraction with patient.memberId, note: patient declined appointment scheduling, no refill action taken

Premium Payment / Billing Inquiry
Inbound Greeting
CRM.LookupCustomer on policy.number
- Policy number provided and record found →identity-verification
- Customer cannot locate policy number →identity-verification
- No response or line is silent →escalation-human
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob, customer.ssn_last4, or customer.passphrase
- Identity verified successfully verified →policy-overview
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer hesitant or asks why it is needed frustrated →verification-explain
Verification Explain
- Customer agrees and provides credentials →identity-verification
- Customer refuses to verify and wants to end call →escalation-human
Identity Failure
- Customer wants branch or written request information CRM.LogContactAttempt →escalation-human
- Customer agrees to end call CRM.LogContactAttempt →session-close
Policy Overview
PolicyManagement.GetPolicyDetails on policy.number
BillingLedger.GetCurrentBalance returning policy.premium_amount, policy.due_date, payment.outstanding_balance, payment.last_payment_date, payment.method_on_file
- Policy is active and in good standing active →billing-inquiry-triage
- Policy is in lapsed status lapsed →escalation-lapsed-policy
- Policy is cancellation-pending cancellation_pending →escalation-lapsed-policy
Billing Inquiry Triage
- Customer wants to make a payment now pay_now →process-payment
- Customer questions or disputes the premium amount dispute_amount →premium-explanation
- Customer reports a missed or failed payment missed_payment →missed-payment-review
- Customer asks about an upcoming renewal renewal_question →renewal-review
- Customer asks about an unexpected or unrecognized charge unexpected_charge →premium-explanation
- Customer wants to update payment method update_payment →update-payment-method
- Customer requests supervisor or escalation wants_supervisor →escalation-human
Premium Explanation
BillingLedger.GetChangeHistory on policy.number returning billing.recent_changes, billing.endorsements, billing.rate_adjustment_reason
kb.premium-rate-adjustment-policy — review applicable rate change rules and endorsement billing guidelines
- Change explained by endorsement or coverage adjustment CRM.LogExplanation →explanation-confirmed
- Change explained by annual rate adjustment CRM.LogExplanation →explanation-confirmed
- Change cannot be explained by visible account data unexplained_charge →escalation-human
Explanation Confirmed
- Customer accepts explanation and wants to pay now →process-payment
- Customer accepts explanation but has no payment due →confirmation-send
- Customer still disputes the explanation still_disputing →escalation-human
Missed Payment Review
kb.payment-plan-eligibility-policy — check grace period rules, payment plan thresholds, and eligibility criteria
- Account is within grace period and customer wants to pay now within_grace →process-payment
- Account is eligible for a payment plan payment_plan_eligible →payment-plan-setup
- Grace period has expired and policy is at risk grace_expired →escalation-lapsed-policy
Payment Plan Setup
kb.payment-plan-options — retrieve available installment schedules and terms
- Customer agrees to a plan and first payment is collected BillingLedger.EnrollPaymentPlan →confirmation-send
- Customer declines plan and wants to pay full balance now →process-payment
- Customer declines all options →escalation-human
Renewal Review
kb.renewal-billing-policy — review renewal terms, auto-pay rules, and advance payment options
- Customer wants to make an advance renewal payment →process-payment
- Customer has questions about coverage changes at renewal coverage_question →escalation-human
- Customer wants to update payment method before renewal →update-payment-method
- Customer is satisfied with the renewal information →confirmation-send
Update Payment Method
PaymentGateway.UpdatePaymentMethod with new details provided by customer
BillingLedger.ConfirmMethodUpdate on policy.number
- Payment method updated successfully method_updated →billing-inquiry-triage
- New payment method declined or invalid method_declined →payment-declined
Process Payment
PaymentGateway.ProcessPayment for payment.outstanding_balance on policy.number
- Payment approved and processed successfully payment_success →confirmation-send
- Payment method declined payment_declined →payment-declined
- Payment gateway timeout or system error system_error →escalation-human
Payment Declined
- Customer provides an alternate payment method →update-payment-method
- Customer wants to explore a payment plan →payment-plan-setup
- Customer wants to call back later CRM.LogDeclinedPayment CRM.SetFollowUpFlag →session-close
- Customer requests supervisor →escalation-human
Confirmation Send
Twilio.SendSMS to customer.phone with payment confirmation and payment.confirmation_number
CRM.SendConfirmationEmail to customer.email with policy status, payment amount, and next due date
CRM.LogInteraction with summary of inquiry type, actions taken, and outcome
- Confirmation sent and customer has no further questions →session-close
- Customer has an additional question additional_question →billing-inquiry-triage
Escalation — Lapsed or Cancellation-Pending Policy
CRM.LogEscalation tagged lapse-reinstatement, linked to policy.number
CRM.FlagForReinstatementReview on policy.number
- Transferring to reinstatement workflow →policy-reinstatement-workflow
- Customer disconnects before transfer CRM.LogContactAttempt →session-close
Escalation to Human Agent
CRM.LogEscalation with inquiry summary, policy.number, and reason for escalation
CRM.CreateCase priority: high, tagged billing-escalation, linked to policy.number
Session Close
- Customer has another question another_question →inbound-greeting
- Customer is done — closing interaction CRM.LogInteraction tagged session-complete

Policy Renewal Reminder / Confirmation
Renewal Outreach
Twilio.SendSMS to customer.phone: "Hi customer.name, your policy policy.number is due for renewal on policy.renewal_date. Your updated premium is policy.renewal_premium. Reply CONFIRM to renew, CHANGE to update coverage, or call us to speak with an agent."
Twilio.SendEmail to customer.email with full renewal notice including policy.coverage_summary, policy.renewal_premium, and policy.expiry_deadline.
- Customer responds CONFIRM or calls to confirm renewal confirmed →identity-verification
- Customer responds CHANGE or requests a coverage update change_coverage →identity-verification
- Customer calls or replies to dispute the premium amount dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response within 5 days Twilio.SendSMS follow-up reminder, then →renewal-outreach-followup
Renewal Outreach Follow-up
Twilio.SendSMS to customer.phone: "Reminder: your policy policy.number expires on policy.expiry_deadline. Please confirm your renewal to avoid a lapse in coverage. Reply CONFIRM or call us."
Twilio.SendEmail to customer.email with final renewal warning and policy.expiry_deadline highlighted.
- Customer responds or calls to confirm confirmed →identity-verification
- Customer responds or calls to dispute or change dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response before expiry deadline CRM.LogNoResponse, flag policy for lapse review →escalation-lapse-review
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob and customer.ssn_last4 against policy.number
- Identity verified successfully identity_verified →policy-review
- Identity cannot be verified after two attempts identity_failed →escalation-human
Policy Review
PolicyManagement.GetPolicyDetails for policy.number to load policy.coverage_summary, policy.current_premium, policy.renewal_premium, and policy.renewal_date.
BillingPlatform.GetAccountBalance for policy.number to check billing.outstanding_balance.
- Customer has an outstanding balance and billing.outstanding_balance is greater than zero balance_due →outstanding-balance-resolution
- Customer's intent was to dispute the premium dispute_premium →premium-dispute
- Customer's intent was to change coverage change_coverage →coverage-change-request
- Customer's intent was to cancel cancel_intent →cancellation-intent
- No outstanding balance and customer is ready to confirm renewal confirmed →renewal-confirmation
Outstanding Balance Resolution
BillingPlatform.GetPaymentOptions for policy.number
- Customer agrees to pay balance in full now →payment-processing
- Customer agrees to a payment plan and plan is within policy limits payment_plan_arranged →renewal-confirmation
- Customer refuses to pay or situation is too complex for self-service balance_unresolved →escalation-billing
Premium Dispute
UnderwritingEngine.GetRateChangeFactors for policy.number
kb.rate-change-explanations — retrieve standard explanations for common rate change drivers
- Customer accepts the explanation and is ready to renew accepted →renewal-confirmation
- Customer wants to explore lower-cost coverage tiers explore_options →coverage-change-request
- Customer formally disputes the rate and wants an official review formal_dispute →escalation-underwriting
- Customer still intends to cancel after explanation cancel_intent →cancellation-intent
Coverage Change Request
CRM.LogCoverageChangeRequest for policy.number with customer's requested modifications.
- Requested changes are within auto-approval parameters changes_approved →renewal-confirmation
- Requested changes require underwriter review needs_underwriter →escalation-underwriting
- Customer decides not to change coverage after all and wants to renew as-is confirmed →renewal-confirmation
Cancellation Intent
- Price is the concern price_concern →premium-dispute
- Coverage or service concern coverage_concern →coverage-change-request
- Customer is switching to another insurer switching_insurer →retention-offer
- Customer confirms firm decision to cancel after retention scripting firm_cancel →cancellation-logging
Retention Offer
kb.retention-offers — look up eligible discounts, bundling options, and loyalty incentives for policy.number
CRM.LogRetentionAttempt for policy.number
- Customer accepts a retention offer and agrees to renew retention_accepted →renewal-confirmation
- Customer declines all offers and confirms cancellation intent firm_cancel →cancellation-logging
- Situation is complex or customer is very high value high_value_at_risk →escalation-retention
Cancellation Logging
PolicyManagement.LogNonRenewalIntent for policy.number with cancellation reason.
CRM.UpdateCustomerRecord with non-renewal status and reason code.
DocumentDelivery.SendNonRenewalConfirmation to customer.email.
Renewal Confirmation
- Customer confirms existing payment method use_existing_payment →payment-processing
- Customer wants to update payment method update_payment →payment-method-update
- Customer wants to schedule payment for a later date schedule_payment →payment-scheduling
Payment Method Update
BillingPlatform.UpdatePaymentMethod for policy.number
- Payment method updated successfully payment_updated →payment-processing
- Payment method update fails or customer has trouble payment_update_failed →escalation-billing
Payment Scheduling
BillingPlatform.SchedulePayment for policy.number on customer's chosen date
- Payment successfully scheduled payment_scheduled →renewal-complete
- Requested date is after expiry deadline date_invalid →escalation-billing
Payment Processing
BillingPlatform.ProcessPayment for policy.number using billing.payment_method for policy.renewal_premium.
- Payment processed successfully payment_success →renewal-complete
- Payment declined or failed payment_failed →escalation-billing
Renewal Complete
PolicyManagement.ConfirmRenewal for policy.number and generate renewal.confirmation_number.
DocumentDelivery.SendRenewalConfirmation to customer.email with updated policy documents, policy.renewal_premium, and renewal.confirmation_number.
CRM.UpdateCustomerRecord with renewal status and renewal.confirmation_number.
Escalation — Human Agent
CRM.CreateCase priority: high, reason: identity-verification-failure, linked to policy.number.
Twilio.NotifyAgent on #renewal-support-queue with case summary and policy.number.
Escalation — Underwriting Review
CRM.CreateCase priority: high, reason: underwriting-review-required, linked to policy.number.
UnderwritingEngine.SubmitReviewRequest for policy.number with supporting details and customer's stated concerns.
Twilio.NotifyAgent on #underwriting-queue with case summary.
Escalation — Billing
CRM.CreateCase priority: high, reason: billing-issue, linked to policy.number.
Twilio.NotifyAgent on #billing-support-queue with case summary, billing.outstanding_balance, and policy.renewal_date.
Escalation — Retention Specialist
CRM.CreateCase priority: urgent, reason: high-value-cancellation-risk, linked to policy.number.
CRM.FlagForRetentionSpecialist for policy.number.
Twilio.NotifyAgent on #retention-team with customer summary, policy.renewal_premium, and cancellation reason.
Escalation — Lapse Review
PolicyManagement.FlagPolicyForLapse for policy.number.
CRM.CreateCase priority: high, reason: no-response-lapse-risk, linked to policy.number.
Twilio.SendSMS to customer.phone: "Urgent: your policy policy.number has not been renewed and is at risk of lapsing on policy.expiry_deadline. Please call us immediately to avoid a gap in coverage."

Policy Coverage Question
Inbound Coverage Inquiry
- Customer provides name and policy number →identity-verification
- Customer doesn't have policy number handy →collect-account-details
Collect Account Details
PolicyManagement.LookupByContact using customer.email or customer.phone
- Account found →identity-verification
- Account not found CRM.CreatePendingRecord →system-lookup-failure
Identity Verification
PolicyManagement.FetchPolicy using policy.number
CRM.VerifyIdentity confirm customer.name against policy record
- Identity confirmed, policy active confirmed →retrieve-policy-details
- Identity confirmed, policy lapsed or expired confirmed →lapsed-policy
- Identity check fails after two attempts unverified →escalation-human
Retrieve Policy Details
PolicyManagement.GetPolicyDetails for policy.number — retrieve policy.type, policy.effectiveDate, policy.expirationDate, policy.deductible, policy.coverageLimits
CRM.LogInteraction tag: coverage-inquiry, linked to policy.number
- Customer describes a specific situation or event →coverage-assessment
- Customer is distressed or alarmed about a potential denial frustrated →acknowledge-concern
Acknowledge Concern
- Customer calms down and describes the situation neutral →coverage-assessment
- Customer remains very distressed or mentions legal action frustrated →escalation-licensed-agent
Coverage Assessment
- Situation is clearly covered →deliver-covered-answer
- Situation falls in a gray area or under an exclusion →explain-exclusion-or-gray-area
- Situation involves a large, complex, or legally disputed claim complex_claim →escalation-underwriter
Deliver Covered Answer
DocumentRetrieval.GetRelevantSection for policy.type and coverage.situation
- Customer asks about filing a claim →claim-guidance
- Customer confirms they understand and has no further questions →resolution-close
- Customer wants to speak with a licensed agent escalation_requested →escalation-licensed-agent
Explain Exclusion or Gray Area
DocumentRetrieval.GetExclusionClause for policy.type and coverage.situation
kb.coverage-exclusions-guide — retrieve plain-language explanation for the applicable exclusion
- Customer wants underwriter review →escalation-underwriter
- Customer accepts the explanation and understands →resolution-close
- Customer disputes the exclusion or mentions an attorney frustrated →escalation-licensed-agent
Claim Guidance
CRM.CheckExistingClaim for policy.number and coverage.situation
- Existing claim found, linked to claim.existingId →claim-already-filed
- No existing claim found →new-claim-guidance
Claim Already Filed
- Customer has more questions →coverage-assessment
- Customer is satisfied →resolution-close
New Claim Guidance
- Customer wants to file now PolicyManagement.InitiateClaim →resolution-close
- Customer wants to file later →resolution-close
- Customer wants to escalate or speak with someone directly →escalation-licensed-agent
Lapsed Policy
- Customer wants to explore reinstatement or renewal →policy-renewal-reinstatement
- Customer wants to speak with someone directly →escalation-licensed-agent
- Customer acknowledges and wants to end the call →resolution-close
System Lookup Failure
CRM.CreateFollowUpTask assign to policy-support team, SLA: 1 business day, include customer.name, customer.phone, customer.email, coverage.situation
- Customer agrees to follow-up →resolution-close
- Customer wants immediate assistance →escalation-licensed-agent
Escalation to Underwriter
UnderwritingQueue.SubmitReviewRequest with policy.number, coverage.situation, agent's risk assessment, and policy.coverageLimits
CRM.LogInteraction tag: underwriter-referral, linked to policy.number
- Customer has additional questions for the underwriter →escalation-licensed-agent
- Customer is satisfied with the next step →resolution-close
Escalation to Licensed Agent
CRM.CreateCase priority: high, tag: licensed-agent-requested, linked to policy.number
CRM.LogInteraction tag: escalation, include full coverage-question context
Policy Renewal Reinstatement
CRM.LogInteraction tag: renewal-interest, linked to policy.number
→policy-renewal-reinstatement-flow
Resolution Close
CRM.CloseInteraction tag: resolved, linked to policy.number
- Customer has another question →inbound-coverage-inquiry
- Customer is done Say: "Thank you for calling. You're all set, and don't hesitate to reach out if questions come up. Have a great day." →resolution-close

Plan Change / Upgrade Request
Identity Verification
CRM.LookupAccount using customer.accountNumber or customer.phone
- Account found and identity confirmed verified →account-review
- Account not found or customer cannot verify identity unverified →escalation-human
- Customer wants to browse plans before verifying intent_browse →plan-discovery
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.contractEndDate, customer.billingCycleDate, customer.deviceModel, customer.location
PlanCatalog.GetEligiblePlans for customer.accountNumber, customer.deviceModel, customer.location
- Plans retrieved successfully →plan-discovery
- No eligible plans returned or catalog error catalog_error →escalation-human
Plan Discovery
kb.plan-catalog — present eligible options with pricing, data allowances, speeds, and feature highlights relevant to customer.currentPlan
- Customer selects a specific plan plan_selected →plan-confirmation
- Customer asks about a promotion or discount promo_inquiry →promotion-check
- Customer's preferred plan is incompatible with device or location incompatible →compatibility-resolution
- Customer is unsure and wants time to decide undecided →follow-up-scheduling
- Customer mentions wanting to cancel instead cancel_intent →escalation-human
Promotion Check
PlanCatalog.GetPromotions for customer.accountNumber
kb.promotions-policy — verify eligibility criteria for active promotions against customer.currentPlan and customer.contractEndDate
- Valid promotion found and auto-applicable promo_valid CRM.ApplyPromotion with promotion.code →plan-confirmation
- Promotion exists but requires manager approval promo_needs_approval →promotion-approval
- No eligible promotion found →plan-confirmation
Promotion Approval
- Approved approved CRM.ApplyPromotion with promotion.code →plan-confirmation
- Rejected rejected Say: "I wasn't able to apply that specific promotion, but I can still offer you our best available rate." →plan-confirmation
- No response in 20 min →escalation-human
Compatibility Resolution
PlanCatalog.GetCompatibleAlternatives for customer.deviceModel, customer.location
kb.device-compatibility-policy — review alternatives against customer.currentPlan to identify closest feature and pricing match
- Compatible alternative found and customer accepts alt_accepted →plan-confirmation
- Customer rejects all alternatives and escalates frustration frustrated →escalation-human
- Customer wants to upgrade device to access desired plan device_upgrade_intent →escalation-human
Plan Confirmation
PlanCatalog.CalculateProration for customer.accountNumber, plan.selected, customer.billingCycleDate — return plan.proratedAmount, plan.effectiveDate, plan.monthlyCost
ContractDB.CheckContractTerms for customer.accountNumber, customer.contractEndDate — check for early change fee fee.earlyChange
- No contract fee applies and customer confirms confirmed →apply-plan-change
- Contract change fee applies →contract-fee-review
- Customer wants to reconsider or go back reconsider →plan-discovery
- Customer declines and threatens cancellation cancel_intent →escalation-human
Contract Fee Review
kb.contract-terms-policy — confirm fee calculation and waiver eligibility for customer.accountNumber
- Customer accepts fee and wants to proceed today fee_accepted →apply-plan-change
- Customer prefers a future effective date future_date →schedule-future-change
- Customer disputes the fee or feels it should be waived fee_dispute →escalation-human
- Customer wants to cancel instead of paying the fee cancel_intent →escalation-human
Schedule Future Change
BillingPlatform.SchedulePlanChange for customer.accountNumber, plan.selected, effective: customer.contractEndDate
CRM.UpdateAccountNotes with scheduled change details, case.id
- Change scheduled successfully →confirmation-notification
- Scheduling fails system_error →billing-system-error
Apply Plan Change
BillingPlatform.ApplyPlanChange for customer.accountNumber, plan.selected, effective: plan.effectiveDate, proration: plan.proratedAmount
- Plan change applied successfully →confirmation-notification
- System returns error on first attempt system_error BillingPlatform.RetryPlanChange →apply-plan-change-retry
- Customer threatens cancellation during wait cancel_intent →escalation-human
Apply Plan Change Retry
BillingPlatform.RetryPlanChange for customer.accountNumber, plan.selected
- Retry successful →confirmation-notification
- Retry also fails system_error_final →billing-system-error
Billing System Error
CRM.CreateCase priority: high, tagged: plan-change-system-error, linked to customer.accountNumber
CRM.UpdateAccountNotes with plan.selected, plan.monthlyCost, plan.effectiveDate, error details
NotificationService.SendEmail to customer.email confirming the logged request and manual resolution timeline
- Case logged and customer is satisfied satisfied →resolution
- Customer is frustrated and demands immediate resolution or escalation frustrated →escalation-human
Confirmation Notification
NotificationService.SendSMS to customer.phone with plan change summary, plan.selected, plan.effectiveDate, plan.monthlyCost
NotificationService.SendEmail to customer.email with full confirmation details and updated plan terms
CRM.UpdateAccountNotes with completed plan change, plan.selected, plan.effectiveDate
→resolution
Follow-up Scheduling
CRM.CreateFollowUpTask for customer.accountNumber, note: plans discussed, follow-up within 48 hours
CRM.UpdateAccountNotes with plan.selected, customer preference notes
- Follow-up scheduled successfully →resolution
- Customer decides to proceed after all plan_selected →plan-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: plan-change-escalation, linked to customer.accountNumber
Slack.Notify to #plan-change-escalations with customer.accountNumber, customer.currentPlan, plan.selected, escalation reason
Resolution

Payment / Billing Issue
Identity Verification
CRM.LookupAccount using customer.email
- Account found, identity confirmed →transaction-lookup
- Account not found or details do not match →identity-retry
- Customer reports suspected fraud or unauthorized access →escalation-fraud
Identity Retry
CRM.LookupAccount using customer.email
- Account found on second attempt →transaction-lookup
- Still unable to locate account →escalation-back-office
Transaction Lookup
OrderManagement.GetOrder using order.id
PaymentProcessor.GetTransaction using transaction.id
- Transaction located and discrepancy confirmed →discrepancy-assessment
- Transaction found but charge appears valid →valid-charge-explanation
- Transaction cannot be found in any system →manual-collection
Discrepancy Assessment
- Duplicate or erroneous charge confirmed, refund not yet issued →refund-initiation
- Charge is valid upon review →valid-charge-explanation
- Refund was already issued, customer has not received it →refund-status-check
- Payment failed due to card or funds issue →failed-payment-recovery
- Refund amount exceeds agent authorization limit high_value →escalation-approval
- Issue cannot be reproduced or confirmed in any system →manual-collection
Refund Initiation
RefundPortal.InitiateRefund for transaction.id, amount refund.amount, linked to customer.accountId
EmailNotifications.Send to customer.email with refund confirmation, refund.id, and refund.timeline
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Valid Charge Explanation
kb.billing-policy — retrieve applicable policy documentation (restocking fees, subscription renewals, promotional terms)
EmailNotifications.Send to customer.email with charge explanation and relevant kb.billing-policy documentation
- Customer accepts the explanation →resolution-confirmed
- Customer disputes the explanation and still believes charge is incorrect →escalation-back-office
- Customer reports the charge was not authorized by them →escalation-fraud
Refund Status Check
PaymentProcessor.GetRefundStatus using refund.id
RefundPortal.CheckRefundHistory for customer.accountId
EmailNotifications.Send to customer.email with refund.id, refund.status, and bank follow-up instructions
- Customer is satisfied with the status and reference number →resolution-confirmed
- Refund is still within processing window, customer accepts →resolution-confirmed
- Refund is overdue and processor shows an error or failed status refund_failed →escalation-back-office
Failed Payment Recovery
- Error message indicates expired card card_expired →update-payment-method
- Error message indicates insufficient funds insufficient_funds →update-payment-method
- Error message is unclear or system shows another reason unknown_error →escalation-back-office
Update Payment Method
kb.billing-policy — retrieve payment update and retry procedures
EmailNotifications.Send to customer.email with payment update link and retry instructions
- Customer confirms they have updated their payment method →payment-retry-confirmed
- Customer is unable to update payment method and needs further help →escalation-back-office
Payment Retry Confirmed
EmailNotifications.Send to customer.email with payment retry confirmation and order.id status
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Manual Collection
CRM.CreateCase for customer.accountId, tagged billing-discrepancy, with transaction.amount, transaction.date, payment.method, and error.message
EmailNotifications.Send to customer.email confirming case has been opened with expected response timeline
- Details collected and case created →escalation-back-office
Escalation — Back-Office Review
CRM.CreateCase priority: high, tagged billing-review, linked to customer.accountId and order.id
CRM.AssignToBackOfficeQueue with all collected transaction details
EmailNotifications.Send to customer.email with case reference, summary of issue, and expected resolution timeline
Escalation — High-Value Refund Approval
- Approved approved →refund-initiation
- Rejected rejected →valid-charge-explanation
- No response within 60 min →escalation-back-office
Escalation — Fraud or Unauthorized Access
CRM.CreateCase priority: urgent, tagged fraud-suspected, linked to customer.accountId
CRM.FlagAccount for customer.accountId with fraud-hold status
PaymentProcessor.NotifyFraudTeam with transaction.id and customer.accountId
EmailNotifications.Send to customer.email with fraud case reference and next steps
Resolution Confirmed
CRM.UpdateCase status: resolved, linked to customer.accountId and order.id
EmailNotifications.Send to customer.email with resolution summary and case closure confirmation

Payment / Billing Inquiry
Intake & Verification
- Customer provides booking confirmation and identity details CRS.LookupReservation →charge-identification
- Customer cannot provide confirmation number but provides name and email CRS.LookupByGuestEmail →charge-identification
- Customer cannot provide any identifying information →identity-verification-required
Identity Verification Required
- Customer supplies one or more valid identifiers CRS.LookupReservation →charge-identification
- Customer is still unable to verify identity →escalation-human
Charge Identification
PMS.GetPaymentHistory for booking.confirmationNumber
kb.billing-charge-definitions — review resort fees, late checkout policies, cancellation penalty rules, and incidental hold release timelines
- Charge found and matches a known fee type →charge-explanation
- Charge appears duplicated or does not match any reservation line item possible_error →billing-error-review
- Customer references a charge not visible in payment history PaymentGateway.LookupTransaction →charge-identification-extended
- Customer explicitly states the charge is unauthorized or fraudulent fraud_flag →escalation-fraud
Charge Identification — Extended Lookup
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
kb.billing-charge-definitions — verify against settlement timing and pending-to-posted conversion windows
- Transaction located and matched to reservation →charge-explanation
- Transaction located but cannot be matched to any booking possible_error →billing-error-review
- Transaction not found in gateway records →escalation-human
Charge Explanation
- Customer accepts the explanation and is satisfied →resolution-confirmed
- Customer accepts the explanation but requests an itemized receipt PMS.SendReceipt to customer.email →resolution-confirmed
- Customer disputes the charge as unfair but it is policy-valid →goodwill-options
- Customer believes the charge is a billing error possible_error →billing-error-review
Goodwill Options
kb.goodwill-adjustment-policy — check eligible goodwill gestures (loyalty points, partial waiver, future discount) and current authorization limits for agent.adjustmentLimit
- Goodwill offer made and customer accepts RefundAdjustmentTool.ApplyPartialWaiver, PMS.SendReceipt to customer.email →resolution-confirmed
- Goodwill offer made and customer accepts loyalty points LoyaltyPlatform.AwardPoints to loyalty.accountNumber →resolution-confirmed
- Customer declines goodwill options and insists on full refund of a valid non-refundable charge →escalation-human
- Adjustment amount required exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
Billing Error Review
PMS.GetPaymentHistory for booking.confirmationNumber
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
- Error confirmed and within adjustment authorization RefundAdjustmentTool.InitiateCorrection, Salesforce.CreateCase →correction-initiated
- Error confirmed but correction amount exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
- No error found — charge is valid →charge-explanation
Correction Initiated
Salesforce.CreateCase tagged billing-correction, linked to booking.confirmationNumber
PMS.SendReceipt to customer.email with updated billing summary
- Customer asks about a refund they already expected to have received →refund-status-check
- Customer is satisfied with the resolution →resolution-confirmed
Refund Status Check
PaymentGateway.LookupTransaction using payment.last4, refund.amount, refund.date
kb.refund-processing-timelines — check standard bank processing windows by payment type
- Customer confirms they will wait and is satisfied →resolution-confirmed
- Refund date was over 10 business days ago and still not received PaymentGateway.InitiateRefundTrace →escalation-human
- Customer disputes the refund amount as incorrect possible_error →billing-error-review
Escalation to Billing Specialist
Salesforce.CreateCase priority: high, tagged billing-specialist-review, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-specialist-team with case summary, charge.amount, charge.description, customer.email
Escalation to Human Agent
Salesforce.CreateCase priority: high, tagged billing-escalation, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-support-team with full case context, charge.amount, charge.date, customer.email
Escalation — Fraud
Salesforce.CreateCase priority: urgent, tagged unauthorized-charge-fraud, linked to booking.confirmationNumber
PaymentGateway.FlagTransaction for charge.amount on payment.last4
Salesforce.NotifyQueue fraud-and-security-team with transaction details, customer.email, booking.confirmationNumber
Resolution Confirmed
Salesforce.UpdateCase status: resolved, linked to booking.confirmationNumber

Patient Intake Pre-Visit
Pre-Visit Outreach
Twilio.SendSMS to patient.phone: "Hi patient.firstName, your appointment with appointment.provider is scheduled for appointment.date at appointment.time. Please complete your pre-visit intake at intake.linkUrl to help us serve you better. It takes about 5 minutes."
Twilio.SendEmail to patient.email with subject "Complete Your Pre-Visit Intake — appointment.date" and body including intake.linkUrl, appointment.provider, and appointment.time.
- Patient opens intake link and proceeds engaged →identity-verification
- Patient replies with an urgent symptom or distress signal urgent →escalation-human
- No response within 24 hours Twilio.SendSMS reminder to patient.phone →intake-reminder
- Patient replies they cannot access the portal access_issue →assisted-intake
Identity Verification
PatientPortal.VerifyIdentity using patient.firstName, patient.lastName, patient.dateOfBirth, patient.portalId
- Identity confirmed on first or second attempt identity_verified →demographics-and-insurance
- Identity cannot be verified after two attempts identity_failed →escalation-human
Demographics and Insurance
EHR.GetPatientRecord for chart.id — pre-populate name, address, phone, email, emergency contact
InsuranceEligibilityAPI.CheckEligibility using insurance.carrier, insurance.memberId, insurance.groupNumber
- All demographic and insurance fields confirmed, eligibility verified confirmed →health-history
- Insurance ID does not match eligibility records eligibility_mismatch →insurance-verification
- Patient updates contact or emergency contact details updated EHR.UpdatePatientRecord →health-history
Insurance Verification
PatientPortal.RequestInsuranceCardUpload for patient.portalId
- Patient re-enters corrected insurance details InsuranceEligibilityAPI.CheckEligibility →insurance-recheck
- Patient uploads insurance card photo EHR.FlagForManualVerification tagged insurance-review, linked to chart.id →health-history
- Patient is unable to provide insurance information EHR.FlagChart as insurance-unverified →health-history
Insurance Recheck
InsuranceEligibilityAPI.CheckEligibility using updated insurance.carrier, insurance.memberId, insurance.groupNumber
- Eligibility now confirmed eligibility_verified →health-history
- Still not matching after recheck eligibility_failed EHR.FlagForManualVerification tagged insurance-review →health-history
Health History
EHR.GetMedicationList for chart.id — display current medications on file
EHR.GetAllergyList for chart.id — display current allergies on file
- Patient confirms medications and allergies as accurate confirmed →reason-for-visit
- Patient disputes a listed medication medication_dispute EHR.FlagMedication as needs-review linked to medication.flagged →medications-flagged
- Patient disputes a listed allergy allergy_dispute EHR.FlagAllergy as needs-review linked to allergy.flagged →allergies-flagged
- Patient reports a new urgent symptom during review urgent →escalation-human
Medications Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes medication on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Allergies Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes allergy on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Reason for Visit
- Routine or previously known concern symptom.reported, no urgency flags routine →pharmacy-and-preferences
- Patient describes a new or worsening urgent symptom urgent →urgent-symptom-triage
- Patient indicates a mental health crisis or emergency crisis →escalation-human
Urgent Symptom Triage
kb.triage-guidelines — check symptom against urgency thresholds and same-day care criteria
CRM.CreateUrgentNote linked to chart.id and appointment.id, tagged triage-flagged
Twilio.SendSMS to patient.phone: "We've noted your symptom. Please call our clinic or visit urgent care. For emergencies, call 911."
- Patient acknowledges and will seek immediate care acknowledged AppointmentScheduling.FlagAppointment as triage-pending →intake-incomplete-flag
- Patient insists on continuing intake continues →pharmacy-and-preferences
Pharmacy and Preferences
EHR.GetPreferredPharmacy for chart.id — display pharmacy on file if available
- Patient confirms pharmacy on file confirmed →intake-complete
- Patient provides a new or updated pharmacy EHR.UpdatePreferredPharmacy for chart.id →intake-complete
Intake Complete
EHR.UpdateChartStatus for chart.id as intake-complete
CRM.LogInteraction for patient.portalId tagged pre-visit-intake-completed, linked to appointment.id
Twilio.SendSMS to patient.phone: "Your intake is complete — thank you, patient.firstName! We look forward to seeing you on appointment.date at appointment.time."
Twilio.SendEmail to patient.email with appointment summary and any flagged items note if applicable
AppointmentScheduling.NotifyCareTeam for appointment.id: "Intake complete. Chart chart.id ready for pre-visit review."
Intake Reminder
Twilio.SendSMS to patient.phone: "Hi patient.firstName, a reminder to complete your pre-visit intake before intake.cutoffTime: intake.linkUrl. It only takes a few minutes."
- Patient engages with intake link after reminder engaged →identity-verification
- Patient does not respond by cutoff window no_response EHR.FlagChart as intake-incomplete →intake-incomplete-flag
- Patient replies with an urgent concern urgent →escalation-human
Intake Incomplete Flag
EHR.UpdateChartStatus for chart.id as intake-incomplete
CRM.CreateTask assigned to front-desk, tagged collect-on-arrival, linked to appointment.id and chart.id
Twilio.SendEmail to front-desk team: "Patient patient.firstName patient.lastName (appointment.date, appointment.time) did not complete pre-visit intake. Please collect information on arrival."
Assisted Intake
→identity-verification
Escalation to Care Team
EHR.FlagChart for chart.id as escalation-required, tagged crisis-or-identity-failure
CRM.CreateUrgentCase priority: high, linked to patient.portalId and appointment.id, tagged patient-escalation
AppointmentScheduling.AlertClinicalStaff for appointment.id with escalation reason and chart.id
Twilio.SendSMS to patient.phone: "We want to make sure you get the right support. A member of our care team will reach out to you shortly. If this is an emergency, please call 911 now."

Password / Login Recovery
Intake — Login Issue
- Customer states forgotten password or cannot log in forgotten-password →identity-verification
- Customer states account appears locked or suspended account-locked →account-status-check
- Customer states they did not initiate any lockout or suspects unauthorised access unauthorised-access →escalation-fraud-review
- Issue is unclear or customer is unsure unclear CRM.LogInteraction, ask one clarifying question →identity-verification
Identity Verification
CRM.PullCustomerRecord using customer.registeredEmail or customer.accountNumber
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
- Identity confirmed on first or second attempt identity-confirmed →account-status-check
- Identity fails first attempt identity-failed-once CRM.IncrementAttemptCount, prompt retry →identity-verification-retry
- Account already shows two or more failed attempts max-attempts-reached →escalation-identity-lockout
Identity Verification — Retry
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
CRM.IncrementAttemptCount
- Identity confirmed on retry identity-confirmed →account-status-check
- Identity fails again on retry identity-failed-twice →escalation-identity-lockout
Account Status Check
CoreBanking.GetAccountStatus for customer.accountNumber
FraudMonitoring.CheckFraudFlag for customer.accountNumber
- Account is clear with no flags or locks account-clear →contact-info-check
- Account is locked due to repeated failed login attempts account-locked-cooldown →cooldown-notice
- Account is flagged for suspicious or fraudulent activity fraud-flag-active →escalation-fraud-review
- Account status is suspended or otherwise restricted account-suspended →escalation-account-review
Contact Info Check
CRM.VerifyContactInfo for customer.registeredEmail and customer.registeredPhone
- Registered email or phone confirmed current by customer contact-confirmed →mfa-challenge
- Customer states contact info is outdated or no longer accessible contact-outdated →escalation-manual-id-verification
MFA Challenge
MFAOTP.SendCode to customer.registeredEmail or customer.registeredPhone based on reset.linkDeliveryMethod
- Customer provides correct OTP code otp-valid →password-reset-initiation
- Customer provides incorrect code otp-invalid →escalation-mfa-failure
- Customer states they did not receive the code otp-not-received MFAOTP.ResendCode, confirm delivery method →mfa-challenge
- Customer states the contact they received it on is not theirs otp-wrong-contact →escalation-fraud-review
Password Reset Initiation
CoreBanking.InitiatePasswordReset for customer.accountNumber
EmailSMSDelivery.SendResetLink to customer.registeredEmail or customer.registeredPhone
- Customer confirms new password set and login successful access-restored →resolution-access-confirmed
- Customer states link expired or not received link-expired EmailSMSDelivery.ResendResetLink →password-reset-initiation
- Customer states they are still unable to log in after reset reset-failed →escalation-account-review
Cooldown Notice
CoreBanking.GetCooldownStatus for customer.accountNumber
- Customer acknowledges and agrees to wait customer-accepts-cooldown →resolution-cooldown-advised
- Customer states they did not make those login attempts customer-denies-attempts →escalation-fraud-review
Resolution — Access Confirmed
CRM.LogInteraction tagged password-reset-successful, linked to customer.accountNumber
CoreBanking.ClearLockStatus for customer.accountNumber
Resolution — Cooldown Advised
CRM.LogInteraction tagged cooldown-in-effect, linked to customer.accountNumber
Escalation — Identity Lockout
CoreBanking.LockAccount for customer.accountNumber
CRM.CreateCase priority: high, tagged identity-verification-failed, linked to customer.accountNumber
CRM.LogInteraction tagged max-attempts-reached
Escalation — Fraud Review
CoreBanking.FreezeAccount for customer.accountNumber
FraudMonitoring.EscalateCase for customer.accountNumber, flag: suspicious-activity
CRM.CreateCase priority: high, tagged fraud-review-required, linked to customer.accountNumber
CRM.LogInteraction tagged fraud-flag-escalation
Escalation — Manual ID Verification
CRM.CreateCase priority: medium, tagged outdated-contact-info-manual-review, linked to customer.accountNumber
CRM.LogInteraction tagged contact-info-outdated-escalation
Escalation — MFA Failure
CRM.CreateCase priority: medium, tagged mfa-failure-escalation, linked to customer.accountNumber
CRM.LogInteraction tagged otp-verification-failed
Escalation — Account Review
CRM.CreateCase priority: medium, tagged account-status-restricted, linked to customer.accountNumber
CRM.LogInteraction tagged account-review-escalation

Outage Report & Status Check
Inbound Contact
- Customer provides account number or registered phone number →identity-verification
- Customer cannot or will not provide account details →public-outage-info
- Customer mentions inability to reach emergency services safety_risk →escalation-safety
Identity Verification
IdentityVerification.VerifyCustomer using customer.accountNumber or customer.phone
- Verification passes verified →account-and-symptoms
- Verification fails after two attempts unverified →public-outage-info
Account & Symptoms
CRM.PullAccount using customer.accountNumber to retrieve customer.name, customer.serviceAddress, customer.serviceType
- Customer describes complete loss of service no_service →outage-lookup
- Customer describes degraded signal or slow data degraded_service →outage-lookup
- Customer mentions safety impact such as no 911 access safety_concern safety_risk →escalation-safety
- Customer describes issue on one device only single_device →outage-lookup
Outage Lookup
OutageManagement.CheckActiveIncidents for customer.serviceAddress and customer.serviceType
- Known active outage found matching location and service type outage_found →known-outage-confirmed
- No known outage found for this location no_outage →no-outage-found
- System lookup fails or times out lookup_error →escalation-noc
Known Outage Confirmed
OutageManagement.GetIncidentDetails to retrieve outage.incidentId, outage.affectedArea, outage.estimatedRestoration, outage.duration
- Outage duration is extended and likely qualifies for service credit kb.service-credit-policy CRM.FlagAccountForCreditReview captures credit.flagId →outage-updates-offer
- Outage is recent and within normal resolution window →outage-updates-offer
Outage Updates Offer
- Customer wants SMS updates Twilio.SendSMS to customer.phone with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer wants email updates NotificationPlatform.SendEmail to customer.email with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer declines updates →resolution-confirmed
No Outage Found
kb.telecom-troubleshooting-guide — retrieve steps appropriate for customer.serviceType and customer.symptoms
- Customer confirms service is restored resolved →resolution-confirmed
- Customer confirms issue persists after troubleshooting unresolved →new-ticket-creation
- Customer reports safety-related impact during troubleshooting safety_concern safety_risk →escalation-safety
New Ticket Creation
Ticketing.CreateTroubleTicket with customer.accountNumber, customer.serviceAddress, customer.serviceType, customer.symptoms, customer.deviceCount to generate ticket.id and ticket.referenceNumber
- Customer requests SMS confirmation Twilio.SendSMS to customer.phone with ticket.referenceNumber →resolution-confirmed
- Customer requests email confirmation NotificationPlatform.SendEmail to customer.email with ticket.referenceNumber →resolution-confirmed
- Customer needs no confirmation →resolution-confirmed
- Customer expresses continued frustration or reports critical business impact escalation_needed →escalation-specialist
Public Outage Info
OutageManagement.GetPublicOutageSummary for any broad regional incidents
- Public outage exists in the reported region public_outage_found →public-outage-details
- No public outage on record →public-no-outage
Public Outage Details
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Public No Outage
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Escalation — Network Operations
NOCDashboard.RaiseSystemLookupFailure with customer.accountNumber and customer.serviceAddress
CRM.LogInteraction with lookup failure details and customer.phone for callback scheduling
Twilio.SendSMS to customer.phone confirming a callback will be arranged
Escalation — Specialist
Ticketing.EscalateTicket for ticket.id to senior support queue
CRM.LogInteraction with escalation reason and customer.accountNumber
Escalation — Safety
CRM.LogInteraction flagged safety_risk with customer.accountNumber and customer.symptoms
NOCDashboard.RaiseSafetyFlag with customer.serviceAddress
Resolution Confirmed
- Customer has additional questions or issues →inbound-contact
- Customer confirms they are all set CRM.LogInteraction with resolution summary and outage.incidentId or ticket.referenceNumber →close-interaction
Close Interaction

Order Status Inquiry
Greeting & Identity Verification
IdentityVerification.VerifyCustomer using customer.accountEmail and customer.name
- Identity verified, order number provided verified →order-lookup
- Customer cannot provide order number no_order_number →lookup-by-email
- Identity cannot be verified after two attempts →escalation-human
Order Lookup by Email or Name
OMS.LookupOrderByEmail using customer.accountEmail or customer.name
- Order found OMS.LookupOrderByEmail order_found →order-lookup
- Order still not found after email and name search not_found →order-not-found
Order Not Found
- Customer provides order number from confirmation email →order-lookup
- Customer has no confirmation email and order remains unresolved →escalation-human
Order Lookup & Status Check
OMS.GetOrderDetails using order.id and customer.accountEmail
- Order is still processing, has not shipped yet processing →order-still-processing
- Order has shipped, tracking number available shipped →retrieve-tracking
- Order shows as delivered in OMS delivered →delivered-not-received-check
Order Still Processing
- Customer is satisfied and has no further questions confirmed →resolution
- Customer wants to know if the ship date can be expedited expedite_request →escalation-human
- Customer wants to cancel the unshipped order cancel_request →escalation-human
Retrieve Tracking Data
CarrierAPI.GetTrackingStatus using carrier.trackingNumber
- Live tracking data returned, last scan within 48 hours tracking_current →communicate-status
- Tracking has not updated in more than 72 hours tracking_stale →stale-tracking
Communicate Status
- Customer is satisfied confirmed →resolution
- Customer has a concern about the delivery address or timing address_concern →escalation-human
Stale Tracking
kb.shipping-delay-policy — review thresholds for carrier claim eligibility and customer communication guidelines
- Within acceptable delay window, advise customer to wait within_window →stale-tracking-advisory
- Delay exceeds policy threshold, carrier claim warranted claim_warranted →escalation-human
Stale Tracking Advisory
- Customer is willing to wait confirmed →resolution
- Customer wants to escalate now escalate_now →escalation-human
Delivered But Not Received Check
- Customer confirms receipt confirmed →resolution
- Customer says package was not received not_received →lost-package-review
- Customer is unsure — may have been left with a neighbor or in a safe spot unsure →delivery-location-check
Delivery Location Check
- Customer finds the package confirmed →resolution
- Customer confirms the package is truly not there not_received →lost-package-review
Lost Package Review
OMS.FlagOrderLostPackage on order.id
CRM.CreateCase tagged lost-package, linked to order.id and carrier.trackingNumber
kb.lost-package-policy — review carrier liability window, replacement vs. refund eligibility, and documentation requirements
- Package confirmed lost or stolen, or customer is requesting refund or replacement →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged order-escalation, linked to order.id
CRM.LogInteractionSummary with customer.email, order.id, and current status context
Resolution
- Customer has another question another_question →greeting-and-identity
- Customer is done confirmed CRM.LogInteractionSummary with customer.email and order.id

Order Modification / Cancellation
Identity Verification
CRM.LookupCustomer using provided email or phone against customer.email or customer.phone
- Identity verified successfully confirmed →order-status-check
- Customer cannot provide matching credentials unverified →identity-failure
- Customer provides partial info — try one additional prompt partial →identity-retry
Identity Retry
CRM.LookupCustomer with alternate verification field
- Identity confirmed on second attempt confirmed →order-status-check
- Still unable to verify unverified →identity-failure
Identity Failure
EmailNotification.Send to customer.email with self-service portal link and instructions
Order Status Check
OrderManagement.GetOrder using order.id to retrieve order.status, order.items, order.total, order.shippingAddress, order.paymentMethod
kb.order-modification-policy — check modification and cancellation window rules against order.status
- Order is still in a modifiable state (not yet shipped) confirmed →change-intent
- Order has already shipped or is out for delivery shipped →order-already-shipped
- Order is flagged for fraud review fraud_flag →escalation-fraud
Change Intent
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to change item or quantity item_change →item-modification
- Customer wants to update shipping address address_change →address-modification
- Customer is unsure or wants to discuss options unclear →change-intent
Cancellation Confirm
kb.order-cancellation-policy — confirm refund eligibility and timeline for order.paymentMethod
- Customer confirms cancellation confirmed →process-cancellation
- Customer changes their mind or wants partial cancellation instead partial →item-modification
- Customer wants to reconsider — pause and re-engage uncertain →change-intent
Process Cancellation
OrderManagement.CancelOrder for order.id
PaymentProcessor.InitiateRefund for refund.amount to order.paymentMethod
EmailNotification.Send to customer.email with cancellation confirmation and refund.timeline
→resolution-complete
Item Modification
OrderManagement.CheckInventory for the requested replacement or updated quantity against change.requested
- Requested item or quantity is available →apply-item-change
- Requested substitution is out of stock out_of_stock →offer-alternatives
- Customer wants to remove item and remainder falls below free-shipping threshold below_threshold →shipping-cost-warning
Offer Alternatives
OrderManagement.GetSimilarItems for item.substitute recommendations
- Customer selects an available alternative confirmed →apply-item-change
- Customer wants to remove the item instead remove →shipping-cost-warning
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to keep the original order as-is keep →resolution-complete
Shipping Cost Warning
- Customer accepts the added shipping cost and confirms removal confirmed →apply-item-change
- Customer decides to keep the item keep →resolution-complete
- Customer wants to cancel the full order instead cancel →cancellation-confirm
Apply Item Change
OrderManagement.ModifyOrder for order.id with updated order.items and quantities
PaymentProcessor.AdjustCharge if order total has changed, updating refund.amount as applicable
EmailNotification.Send to customer.email with updated order summary
- Customer has another change to make more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Address Modification
OrderManagement.UpdateShippingAddress for order.id with new order.shippingAddress
EmailNotification.Send to customer.email confirming the address update
- Customer has another change more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Order Already Shipped
kb.return-policy — retrieve return window and process details
- Customer wants return instructions sent confirmed EmailNotification.Send to customer.email with return instructions →resolution-complete
- Customer disputes the charge or is not satisfied disputed →escalation-dispute
- Customer accepts the outcome accepted →resolution-complete
Escalation — Fraud Review
CRM.CreateCase priority: high, tagged fraud-review, linked to order.id
Slack.Notify to #fraud-ops with order.id, customer.email, and order summary
Escalation — Dispute or High-Value Refund
CRM.CreateCase priority: high, tagged charge-dispute, linked to order.id and refund.amount
Slack.Notify to #support-escalations with order.id, customer.name, refund.amount, and case summary
Resolution Complete
CRM.UpdateCase status: resolved, linked to order.id

New Account Onboarding
Intent Capture
- Customer requests a personal account type (checking, savings, investment) personal-account →info-collection
- Customer requests a business or trust account business-or-trust-account →specialist-routing
- Customer is unsure or needs guidance unsure →account-type-guidance
Account Type Guidance
kb.account-types-overview — retrieve product descriptions, minimum balance requirements, and eligibility criteria
- Customer selects a personal account type personal-account →info-collection
- Customer still wants a business or trust account business-or-trust-account →specialist-routing
- Customer wants to end the conversation end-session →session-close
Info Collection
CRM.CreateDraftRecord to initialize a draft customer profile
kb.minimum-deposit-requirements — validate customer.initialDepositAmount and customer.fundingSource eligibility
- All required fields collected and deposit method is supported fields-complete →identity-verification
- Funding method is unsupported or deposit is below the minimum funding-issue →funding-issue-resolution
- Customer is unwilling to provide required information declined-to-provide →escalation-human
Funding Issue Resolution
kb.funding-methods-policy — retrieve supported funding sources and minimum initial deposit thresholds
- Customer selects a supported alternative funding method alternative-accepted →identity-verification
- Customer cannot or will not meet deposit requirements cannot-meet-requirements →session-close
Identity Verification
KYCService.SubmitVerification with customer.fullLegalName, customer.dateOfBirth, customer.govIdNumber, customer.taxId, customer.address
- Verification passes on first or second attempt kyc-pass →compliance-screening
- Verification fails — first attempt kyc-fail-first →kyc-retry
- Verification fails — second attempt or kyc.attemptCount exceeds 2 kyc-fail-final →escalation-human
KYC Retry
DocUploadPortal.RequestDocument to customer.email for alternative ID submission
- Customer submits alternative document and resubmission passes kyc-pass →compliance-screening
- Customer submits alternative document and resubmission fails kyc-fail-final →escalation-human
- Customer cannot provide alternative documentation cannot-verify →escalation-human
Compliance Screening
ComplianceScreening.RunCheck with customer.fullLegalName, customer.taxId, customer.dateOfBirth, customer.address
- Screening passes with no flags compliance-clear →account-creation
- Any KYC or AML flag is raised compliance-flagged →escalation-compliance
- Customer is identified as a Politically Exposed Person (PEP) compliance.isPEP pep-flag →escalation-compliance
Account Creation
CoreBanking.CreateAccount with customer.fullLegalName, customer.taxId, customer.address, customer.fundingSource, customer.initialDepositAmount, customer.accountType
CRM.UpdateRecord with account.id, mark status: account-created
Twilio.SendSMS to customer.phone: "Your new account has been created. Your account ID is account.id. Your login credentials will arrive by email shortly."
CoreBanking.IssueCredentials to customer.email with account.credentials and welcome packet link
- Account created and credentials delivered successfully account-ready →customer-orientation
- Account creation fails due to a system error system-error →escalation-human
Customer Orientation
kb.new-account-faq — retrieve top questions about first login, mobile app access, and deposit timelines
- Customer has additional questions more-questions →customer-orientation
- Customer is satisfied and ready to end satisfied →session-close
- Customer wants to add a beneficiary or linked account additional-setup →escalation-human
Specialist Routing
CRM.CreateLeadRecord with customer.phone, customer.email, customer.accountType, note: specialist-referral
- Details captured and specialist notified →escalation-human
Escalation to Compliance Officer
ComplianceScreening.FlagRecord with customer.fullLegalName, customer.taxId, compliance.flagCode, compliance.isPEP
CRM.EscalateRecord priority: critical, tag: compliance-review
Escalation to Human Agent
CRM.EscalateRecord priority: high, tag: agent-review
Twilio.SendSMS to customer.phone: "Your account application requires attention from one of our specialists. A team member will reach out to you shortly."
Session Close
CRM.CloseSession with session outcome logged

Loyalty Tier / Points Inquiry
Identity Verification
IdentityVerification.LookupMember using member.id or member.email
- Member record found, proceed to secondary verification →secondary-verification
- Member record not found after two attempts →identity-failure
- Loyalty platform unavailable CaseManagement.LogInquiry →system-outage
Secondary Verification
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified successfully →account-overview
- Identity verification fails once →secondary-verification-retry
- Identity verification fails twice →identity-failure
Secondary Verification Retry
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified on retry →account-overview
- Identity fails again →identity-failure
Account Overview
LoyaltyPlatform.GetMemberProfile for member.id — retrieve member.currentTier, member.pointsBalance, member.pendingPoints, member.expiringPoints, member.expiryDate, member.tierQualifyingNights, member.tierThreshold, member.tierExpiryDate
CRM.UpdateLastContactDate for member.id
- Customer asks about tier status or how to reach the next tier tier-inquiry →tier-status
- Customer asks about a specific points discrepancy or missing points discrepancy →discrepancy-intake
- Customer is concerned about tier or points expiry expiry-concern →expiry-review
- Customer's question is fully answered satisfied →resolution-summary
- Customer asks about points earning or redemption history history-inquiry →points-history
Tier Status
kb.loyalty-tier-thresholds — retrieve qualification criteria, benefits, and upgrade requirements for member.currentTier and the next tier
- Customer wants to know about tier benefits →tier-status-benefits
- Customer is upset that they are close but won't reach next tier frustrated →tier-goodwill-check
- Customer is satisfied with the information satisfied →resolution-summary
Tier Status Benefits
kb.loyalty-tier-benefits — retrieve current and next-tier benefit details
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Tier Goodwill Check
- Goodwill extension is within policy and applied LoyaltyPlatform.ApplyGoodwillExtension →goodwill-confirmation
- Shortfall exceeds policy limit or extension already used this period exceeds-policy →escalation-loyalty-specialist
Goodwill Confirmation
CRM.LogInteraction note: goodwill tier extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Points History
LoyaltyPlatform.GetTransactionHistory for member.id
- Customer provides a specific booking reference specific-booking →discrepancy-intake
- Customer wants a general history summary general-history →points-history-summary
- Customer identifies a missing or incorrect transaction discrepancy →discrepancy-intake
Points History Summary
LoyaltyPlatform.GetTransactionHistory for member.id — last 90 days of earn and redemption activity
- Customer spots a discrepancy discrepancy →discrepancy-intake
- Customer is satisfied with the summary satisfied →resolution-summary
Discrepancy Intake
LoyaltyPlatform.GetTransaction using booking.referenceNumber or transaction.id
PropertyManagementSystem.VerifyStay using booking.referenceNumber and member.id
- Transaction found and points gap confirmed gap-confirmed →discrepancy-assessment
- Transaction not found or stay not verified unverified →discrepancy-unverified
- Transaction involves a very large point volume or suspected fraud high-risk →escalation-loyalty-specialist
Discrepancy Assessment
- Discrepancy is within auto-correction threshold and earn rules confirm the gap →points-correction-approval
- Discrepancy requires manual audit or exceeds auto-correction threshold needs-audit →manual-audit-queue
- Agent detects pattern suggesting account compromise suspected-fraud →escalation-loyalty-specialist
Points Correction Approval
- Approved approved LoyaltyPlatform.AdjustPoints →correction-confirmation
- Rejected rejected →manual-audit-queue
- No response in 60 min →manual-audit-queue
Correction Confirmation
CaseManagement.CreateCase linked to member.id and transaction.id, status: resolved
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Manual Audit Queue
CaseManagement.CreateCase priority: standard, tagged points-discrepancy, linked to member.id and transaction.id
CRM.LogInteraction note: points discrepancy flagged for manual audit, case case.id created
- Customer is satisfied with the timeline satisfied →resolution-summary
- Customer escalates or disputes the timeline frustrated →escalation-loyalty-specialist
Discrepancy Unverified
CaseManagement.CreateCase priority: standard, tagged unverified-discrepancy, linked to member.id
CRM.LogInteraction note: transaction unverified, manual investigation case created, case case.id opened
- Customer accepts the outcome and case creation satisfied →resolution-summary
- Customer insists on immediate resolution frustrated →escalation-loyalty-specialist
Expiry Review
kb.loyalty-expiry-policy — retrieve points and tier expiry rules, extension eligibility, and activity requirements
- Customer is calm and accepts the information satisfied →resolution-summary
- Customer is upset about imminent expiry and requests help frustrated →expiry-goodwill-check
- Customer wants to know what activity would prevent expiry activity-inquiry →expiry-activity-options
Expiry Activity Options
kb.loyalty-earn-partners — retrieve list of qualifying partner activities that reset expiry clock
CRM.LogInteraction note: expiry activity options provided to member.id
- Customer requests the list be sent LoyaltyPlatform.SendPartnerListEmail to member.email →resolution-summary
- Customer is satisfied with the verbal summary satisfied →resolution-summary
Expiry Goodwill Check
- Extension is within policy and applied LoyaltyPlatform.ExtendPointsExpiry →expiry-extension-confirmation
- Extension not permitted under policy or limit already used exceeds-policy →escalation-loyalty-specialist
Expiry Extension Confirmation
CRM.LogInteraction note: one-time points expiry extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
System Outage
CaseManagement.CreateCase priority: standard, tagged system-outage-callback, linked to member.email
CRM.LogInteraction note: loyalty platform unavailable, callback committed within 4 business hours
- Customer accepts the callback commitment satisfied →resolution-summary
- Customer requests immediate escalation frustrated →escalation-loyalty-specialist
Identity Failure
CRM.LogInteraction note: identity verification failed, member directed to self-service portal or property front desk
Escalation to Loyalty Specialist
CaseManagement.CreateCase priority: high, tagged loyalty-specialist-escalation, linked to member.id
CRM.LogInteraction note: escalated to loyalty specialist, reason captured in case case.id
Slack.Notify to #loyalty-specialist-queue with member summary, member.id, member.currentTier, member.pointsBalance, and reason for escalation
Resolution Summary
CRM.LogInteraction note: inquiry resolved, summary provided to member.id
- Customer has another question follow-up →account-overview
- Customer is done satisfied →farewell
Farewell
CRM.CloseInteraction for member.id

Loyalty / Rewards Inquiry
Intake & Account Lookup
LoyaltyPlatform.LookupAccount by customer.email or customer.phone
- Account found, no fraud flag →identity-verification
- Account found with fraud flag fraud_flag →escalation-human
- Account not found →account-not-found
Identity Verification
IdentityVerification.Verify using customer.fullName and customer.accountId
- Identity confirmed on first or second attempt verified →inquiry-classification
- Identity fails after two attempts unverified →escalation-human
Account Not Found
LoyaltyPlatform.LookupAccount secondary attempt using alternate customer.email or customer.phone
- Account found on secondary lookup →identity-verification
- Account still not found after secondary attempt →escalation-human
Inquiry Classification
- Customer asks about balance or tier status balance_inquiry →balance-and-tier-summary
- Customer wants to redeem rewards redeem →redemption-assistance
- Customer reports missing points after a purchase missing_points →missing-points-investigation
- Customer asks about or disputes expiration expiration_inquiry →expiration-review
- Customer expresses frustration or perceived unfair treatment frustrated →empathy-and-policy-explanation
Balance & Tier Summary
LoyaltyPlatform.GetAccountDetails for customer.accountId
kb.loyalty-rewards-policy — confirm tier benefits and point value rules
- Customer wants to know how to redeem redeem →redemption-assistance
- Customer is satisfied and has no further questions resolved →resolution
- Customer raises a new concern new_concern →inquiry-classification
Redemption Assistance
kb.loyalty-rewards-policy — retrieve current redemption options, minimum threshold, and any active promotions
LoyaltyPlatform.GetRedemptionOptions for customer.accountId
- Customer wants to apply reward to a current or upcoming purchase LoyaltyPlatform.ApplyReward →redemption-confirmed
- Customer wants to know options only, no redemption yet info_only →resolution
- Customer's balance is below the redemption minimum below_minimum →below-minimum-notice
Below Minimum Notice
kb.loyalty-rewards-policy — confirm minimum redemption threshold and earning opportunities
- Customer is satisfied with the explanation resolved →resolution
- Customer is frustrated or disputes the threshold frustrated →empathy-and-policy-explanation
Redemption Confirmed
CRM.LogInteraction tagged reward-redeemed, linked to customer.accountId
- Customer has no further questions resolved →resolution
- Customer has another question new_concern →inquiry-classification
Missing Points Investigation
OrderManagement.LookupTransaction by transaction.receiptNumber and transaction.purchaseDate
- Transaction found and points not yet posted LoyaltyPlatform.CheckPendingPoints →points-adjustment-review
- Transaction found and points already posted →points-already-posted
- Transaction not found in order history →unverified-transaction
Points Already Posted
- Customer confirms the issue is resolved resolved →resolution
- Customer says the balance still looks wrong disputed →escalation-human
Unverified Transaction
OrderManagement.LookupTransaction secondary attempt using transaction.amount and transaction.purchaseDate
- Transaction found on secondary lookup →points-adjustment-review
- Transaction still not found after second attempt →escalation-human
Points Adjustment Review
- Adjustment is within policy limits and clearly supported low_risk_adjustment →adjustment-approval
- Adjustment amount is high, ambiguous, or flags a pattern high_risk_adjustment →escalation-human
Adjustment Approval
- Approved approved LoyaltyPlatform.CreditPoints →adjustment-confirmed
- Rejected rejected →adjustment-declined
- No response in 30 min →escalation-human
Adjustment Confirmed
CRM.LogInteraction tagged points-adjustment-approved, linked to customer.accountId, reference adjustment.requestId
- Customer is satisfied resolved →resolution
- Customer has another question new_concern →inquiry-classification
Adjustment Declined
kb.loyalty-rewards-policy — confirm decline reason to share with customer
- Customer accepts the explanation resolved →resolution
- Customer remains dissatisfied or requests an exception frustrated →escalation-human
Expiration Review
kb.loyalty-rewards-policy — retrieve expiration policy, grace window rules, and reinstatement eligibility criteria
- Points have not yet expired, customer wants prevention tips info_only →resolution
- Points expired recently and fall within the grace window within_grace_window →escalation-human
- Points expired outside the grace window outside_grace_window →expiration-outside-grace
- Customer is upset about the expiration frustrated →empathy-and-policy-explanation
Expiration Outside Grace
kb.loyalty-rewards-policy — confirm grace window boundaries and prevention steps
- Customer accepts the explanation resolved →resolution
- Customer is still dissatisfied and requests a policy exception frustrated →escalation-human
Empathy & Policy Explanation
kb.loyalty-rewards-policy — retrieve relevant policy section to explain to customer
- Customer feels heard and is satisfied satisfied →resolution
- Customer remains dissatisfied and wants to escalate escalate →escalation-human
Escalation to Human Agent
CRM.LogInteraction tagged escalation, linked to customer.accountId, with full interaction summary
Slack.Notify to #loyalty-ops with customer.accountId, customer.fullName, reason for escalation
Resolution
CRM.LogInteraction tagged resolved, linked to customer.accountId

Insurance Coverage Check
Patient Intake
CRM.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found in CRM →insurance-verification
- No record found, continue to collect details manually →insurance-verification
- Patient is unresponsive or call drops →escalation-human
Insurance Verification
EligibilitySystem.VerifyMember using patient.insuranceCarrier and patient.memberId
- Coverage active and returned successfully confirmed →service-inquiry
- Coverage shows as inactive or lapsed inactive →coverage-lapsed
- System returns no results or an error error →system-error
Service Inquiry
CRM.UpdateRecord with patient.memberId and confirmed coverage.status
- Patient provides service type or CPT code →network-status-check
- Patient is unsure of service details →service-clarification
Service Clarification
- Patient provides enough detail to proceed →network-status-check
- Patient still unable to provide details →escalation-human
Network Status Check
ProviderDirectory.CheckNetworkStatus using provider.name and provider.facility and patient.insuranceCarrier
PayerPortal.LookupBenefit using service.cptCode and patient.memberId and coverage.effectiveDate
- Provider and service confirmed in-network in-network →benefit-details
- Provider confirmed out-of-network out-of-network →out-of-network-options
- Service requires prior authorization prior-auth-required →prior-auth-guidance
- Lookup returns ambiguous or missing data unclear →escalation-human
Benefit Details
kb.benefit-tier-definitions — confirm explanation of coverage.tier, copay, and deductible language
PriorAuthTracker.CheckRequirements using service.cptCode and patient.memberId
- No referral or prior authorization required →confirmation-close
- Referral required referral-flag →referral-guidance
- Prior authorization required prior-auth-flag →prior-auth-guidance
Referral Guidance
kb.referral-process — retrieve steps for obtaining and submitting a referral
- Patient understands and confirms next steps →confirmation-close
- Patient has questions or disputes the referral requirement →escalation-human
Prior Auth Guidance
kb.prior-auth-process — retrieve steps and typical timelines for prior authorization submission
PriorAuthTracker.CreateCase using patient.memberId and service.cptCode and provider.name
- Patient acknowledges and has no further questions →confirmation-close
- Patient wants to dispute that prior auth is required →escalation-human
Out-of-Network Options
kb.out-of-network-benefits — look up whether the plan includes out-of-network benefit coverage and applicable cost-sharing
- Plan includes out-of-network benefits oon-benefits-available →oon-benefit-details
- Plan does not cover out-of-network services oon-no-benefits →suggest-in-network
OON Benefit Details
- Patient wants in-network alternatives instead →suggest-in-network
- Patient is satisfied with out-of-network information →confirmation-close
- Patient references a denial or billing dispute →escalation-human
Suggest In-Network Alternatives
ProviderDirectory.FindInNetworkProviders using service.type and patient.insuranceCarrier
- Patient accepts alternatives and has no further questions →confirmation-close
- Patient insists on the out-of-network provider and references a coverage dispute →escalation-human
Coverage Lapsed
kb.enrollment-support — retrieve guidance on coverage reinstatement and insurer contact process
- Patient wants to escalate or believes coverage should be active →escalation-human
- Patient understands and will contact insurer →confirmation-close
System Error
PayerPortal.ManualEligibilityLookup using patient.memberId and patient.insuranceCarrier
- Payer portal lookup succeeds →network-status-check
- Payer portal also unavailable, offer callback CRM.CreateCallbackTask →escalation-human
Confirmation & Close
CRM.LogInteraction with coverage check summary, patient.memberId, service.cptCode, and outcome
- Patient has no further questions satisfied →session-complete
- Patient has an additional service to check new-inquiry →service-inquiry
- Patient raises a dispute or references a denial dispute →escalation-human
Session Complete
CRM.CloseInteraction with resolved status and patient.memberId
Escalation to Specialist
CRM.CreateCase priority: high, tagged coverage-escalation, linked to patient.memberId and service.cptCode
CRM.LogInteraction with escalation reason and full session context

Group / Event Booking Inquiry
Inquiry Intake
- Customer describes a specific event type event-described →gather-event-details
- Customer is vague or asking general questions exploring →scope-clarification
- Customer states group size is 50 or more rooms / full venue buyout / custom SLA high-complexity →escalation-event-sales-manager
Scope Clarification
- Customer clarifies event scope event-described →gather-event-details
- Customer remains unclear or needs guidance still-vague →gather-event-details
- Customer mentions scale that triggers complexity threshold high-complexity →escalation-event-sales-manager
Gather Event Details
Salesforce.CreateLead with customer.name, customer.email, customer.phone, source: group-inquiry
- Customer provides all key details (dates, guest count, destination, budget) details-complete →validate-group-size
- Customer provides partial details details-partial →clarify-missing-details
- Customer declines to share budget or contact info details-minimal →clarify-missing-details
Clarify Missing Details
Salesforce.UpdateLead with any partial data already collected
- Customer supplies remaining details details-complete →validate-group-size
- Customer still cannot confirm details still-incomplete →capture-lead-for-follow-up
Capture Lead for Follow-up
Salesforce.UpdateLead with customer.name, customer.email, status: nurture
email-automation.EnrollSequence campaign: group-inquiry-nurture, contact: customer.email
- Lead captured successfully →resolution-lead-captured
- Customer disengages with no contact info provided →resolution-no-contact
Validate Group Size
- Group size is 10–20 rooms and standard event type →check-availability
- Group size is 21–49 rooms or complexity is moderate →route-to-group-sales-specialist
- Group size is 50 or more rooms, full buyout, or custom SLA →escalation-event-sales-manager
Check Availability
group-inventory-calendar.CheckAvailability for event.property, event.dates, event.roomCount, event.type
property-management-system.GetGroupRates for event.property, event.dates, event.roomCount
- Dates and room count are available available →present-options
- Requested dates are unavailable but alternatives exist partial-availability →offer-alternatives
- No availability at requested property or destination unavailable →offer-alternatives
Present Options
quoting-tool.GenerateProposal for event.type, event.dates, event.roomCount, event.budget, event.specialRequirements
Salesforce.UpdateLead status: proposal-sent, quote.id
email-automation.SendEmail template: group-proposal, to: customer.email, attach: quote.id
- Customer reviews and selects a preferred option option-selected →confirm-provisional-hold
- Customer has questions or wants adjustments needs-adjustment →handle-quote-adjustment
- Customer indicates budget does not align with presented options budget-misaligned →offer-value-alternatives
- Customer goes silent after proposal is sent →quote-follow-up-sequence
Offer Alternatives
group-inventory-calendar.GetAlternativeDates for event.property, event.roomCount
property-management-system.GetNearbyProperties for event.destination, event.dates, event.roomCount
- Customer accepts an alternative date or property alternative-accepted →check-availability
- Customer wants to explore further still-exploring →route-to-group-sales-specialist
- Customer declines all alternatives and disengages declined →resolution-no-booking
Handle Quote Adjustment
quoting-tool.ReviseProposal for quote.id, updated event.roomCount, event.dates, event.specialRequirements
email-automation.SendEmail template: group-proposal-revised, to: customer.email, attach: quote.id
- Customer accepts revised proposal option-selected →confirm-provisional-hold
- Customer still has concerns needs-further-adjustment →handle-quote-adjustment
- Customer budget remains misaligned budget-misaligned →offer-value-alternatives
Offer Value Alternatives
quoting-tool.GetTieredOptions for event.type, event.dates, event.roomCount, event.budget
kb.group-value-add-packages
- Customer selects a tiered option option-selected →confirm-provisional-hold
- Customer wants specialist help with budget negotiation →route-to-group-sales-specialist
- Customer declines all options declined →resolution-no-booking
Confirm Provisional Hold
property-management-system.PlaceProvisionalHold for event.property, event.dates, event.roomCount, quote.id
Salesforce.UpdateLead status: hold-placed, hold.confirmationNumber
contract-management.GenerateContract for quote.id, customer.name, customer.email, event.type, event.dates
email-automation.SendEmail template: contract-and-deposit, to: customer.email, attach: contract.link
- Customer confirms they received the contract and will proceed proceeding →resolution-booking-confirmed
- Customer has contract or deposit questions has-questions →handle-contract-questions
- Customer has not responded by hold expiry date →hold-expiry-follow-up
Handle Contract Questions
kb.group-contract-terms
kb.deposit-and-cancellation-policy
- Questions answered and customer is ready to proceed proceeding →resolution-booking-confirmed
- Contract terms require negotiation or custom clauses requires-negotiation →escalation-event-sales-manager
- Customer declines after reviewing terms declined →resolution-no-booking
Quote Follow-up Sequence
email-automation.EnrollSequence campaign: group-quote-follow-up, contact: customer.email, reference: quote.id
Salesforce.UpdateLead status: follow-up-in-progress
- Customer responds and re-engages re-engaged →present-options
- Customer responds and selects an option option-selected →confirm-provisional-hold
- Customer remains unresponsive after full follow-up sequence no-response →route-to-group-sales-specialist
Hold Expiry Follow-up
email-automation.SendEmail template: hold-expiry-reminder, to: customer.email, reference: hold.confirmationNumber
Salesforce.UpdateLead status: hold-expiring-soon
- Customer responds and confirms they will proceed proceeding →resolution-booking-confirmed
- Customer requests an extension needs-extension →escalation-event-sales-manager
- Hold expires with no response expired →resolution-hold-expired
Route to Group Sales Specialist
Salesforce.UpdateLead status: routed-to-specialist, owner: group-sales-team
Salesforce.CreateTask assign-to: group-sales-team, subject: group-inquiry-handoff, reference: customer.email, event.type, event.dates, event.roomCount
email-automation.SendEmail template: specialist-intro, to: customer.email, cc: salesSpecialist.email
- Handoff confirmed and customer satisfied →resolution-specialist-assigned
- Customer requests immediate escalation to senior manager →escalation-event-sales-manager
Escalation to Event Sales Manager
Salesforce.UpdateLead status: escalated, priority: high, tagged: high-value-event
Salesforce.CreateTask assign-to: event-sales-manager, subject: high-complexity-group-escalation, reference: customer.email, event.type, event.dates, event.roomCount, event.budget
email-automation.SendEmail template: escalation-acknowledgement, to: customer.email
Resolution — Booking Confirmed
Salesforce.UpdateLead status: closed-won
property-management-system.ConfirmBooking for hold.confirmationNumber
Resolution — Specialist Assigned
Salesforce.UpdateLead status: specialist-assigned
Resolution — Lead Captured
Resolution — Hold Expired
Salesforce.UpdateLead status: hold-expired
property-management-system.ReleaseHold for hold.confirmationNumber
Resolution — No Booking
Salesforce.UpdateLead status: closed-lost
Resolution — No Contact
Salesforce.UpdateLead status: no-contact

General FAQ Telecom
Intake
- Question is purely general / no account data needed general →general-lookup
- Question requires account-specific details account-specific →identity-verification
- Question reveals a billing dispute or unexpected charge billing-dispute →escalation-billing
- Question reveals a service outage or technical fault technical-issue →escalation-technical
- Customer sounds frustrated or complaint is embedded in the question frustrated →acknowledge-concern
Acknowledge Concern
- Underlying topic is general general →general-lookup
- Underlying topic requires account data account-specific →identity-verification
- Underlying topic is a billing dispute billing-dispute →escalation-billing
- Underlying topic is a technical fault technical-issue →escalation-technical
- Concern is a formal complaint requiring case handling complaint →escalation-complaint
Identity Verification
IdentityVerification.RequestAccountLookup using customer.accountNumber or customer.phone
IdentityVerification.VerifyIdentity using customer.name, customer.pin, customer.ssn4
- Identity verified successfully verified →account-lookup
- Identity verification fails after two attempts unverified →unverified-general-only
Unverified — General Info Only
kb.general-plans-policy — retrieve publicly available plan and policy information relevant to question.topic
- Customer accepts general information and asks a follow-up general →general-lookup
- Customer wants to try a different verification channel retry →escalation-human
- Customer has no further questions →resolution
Account Lookup
CRM.GetAccountProfile using customer.accountNumber
AccountManagement.GetCurrentPlan to retrieve customer.currentPlan and customer.serviceType
→account-specific-answer
Account-Specific Answer
- Answer delivered and customer is satisfied confirmed →resolution
- Answer reveals a billing discrepancy or charge dispute billing-dispute →escalation-billing
- Answer reveals a service or network issue technical-issue →escalation-technical
- Topic is outside knowledge base coverage kb-gap →escalation-human
- Customer wants to make a plan change plan-change →escalation-plan-change
General Lookup
kb.faq-content — retrieve answer matching question.topic
kb.general-plans-policy — supplement with plan or policy details if applicable
- Answer delivered and customer confirms it resolved their question confirmed →resolution
- Customer follow-up question is still general general →general-lookup
- Customer follow-up requires account details account-specific →identity-verification
- Topic falls outside knowledge base coverage kb-gap →kb-gap-acknowledgement
- Customer reveals frustration or complaint frustrated →acknowledge-concern
Knowledge Base Gap
- Customer agrees to be escalated confirmed →escalation-human
- Customer has a different, simpler question general →general-lookup
- Customer wants to try self-service and end the call self-service →resolution
Escalation — Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.accountNumber, notes include question.raw
Escalation — Billing
CRM.CreateCase tagged billing-dispute, priority: high, linked to customer.accountNumber
Escalation — Technical Issue
CRM.CreateCase tagged technical-issue, linked to customer.accountNumber, notes include customer.serviceType
Escalation — Plan Change
→plan-change-telecom
Escalation — Complaint
CRM.CreateCase tagged formal-complaint, priority: high, linked to customer.accountNumber, notes include question.raw
Resolution
- Customer has another question follow-up →intake
- Customer confirms they are done confirmed →close
Close

General FAQ Retail
Intake
- Customer asks about store hours or location store-info →store-info
- Customer asks about return or exchange policy return-policy →return-policy
- Customer asks about payment methods or financing payment-options →payment-options
- Customer asks about product availability or details product-inquiry →product-inquiry
- Customer references a specific order or account account-specific →identity-verification
- Customer asks something outside standard categories out-of-scope →edge-case-handler
Store Info
kb.store-locator-policy — retrieve hours and location details relevant to customer.location
StoreLocator.GetStoreDetails for customer.location
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes the information frustrated →policy-pushback
Return Policy
kb.return-exchange-policy — retrieve current return window, conditions, and exclusions based on policy.version
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up or edge-case question follow-up →edge-case-handler
- Customer is frustrated with the policy frustrated →policy-pushback
- Customer references a specific order account-specific →identity-verification
Payment Options
kb.payment-options-policy — retrieve accepted payment methods, financing partners, and any current promotions
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes policy frustrated →policy-pushback
Product Inquiry
kb.product-catalog — look up details for product.name or product.sku
ProductCatalog.GetProductDetails for product.sku
InventoryLookup.CheckAvailability for product.sku at customer.location
- Customer confirms the answer resolves their need confirmed →resolution
- Customer wants more product detail follow-up →product-inquiry-detail
- Customer asks about ordering or account account-specific →identity-verification
- Customer is dissatisfied with availability or details frustrated →policy-pushback
Product Inquiry Detail
kb.product-catalog — retrieve extended specifications, compatibility notes, and related items for product.sku
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has additional questions follow-up →intake
- Customer needs account-level help account-specific →identity-verification
- Customer is dissatisfied frustrated →policy-pushback
Identity Verification
- Customer provides verifiable details confirmed CRM.LookupCustomer →account-inquiry
- Customer is unable or unwilling to provide details unverified →escalation-human
- Customer clarifies they do not actually need account-level help no-account-needed →intake
Account Inquiry
CRM.LookupCustomer for order.id
- Question can be answered with available account data confirmed →resolution
- Issue involves a dispute, complaint, or action beyond FAQ scope complaint →escalation-human
- Customer confirms answer resolves their need resolved →resolution
Edge Case Handler
kb.general-faq — attempt to locate a match for customer.question across all FAQ categories
- A confident, accurate answer is found in FAQ content faq-match →faq-answer
- FAQ content is ambiguous, outdated, or contradicts another source uncertain →uncertainty-acknowledgment
- No relevant FAQ content exists no-match →escalation-human
FAQ Answer
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up follow-up →intake
- Customer is dissatisfied or pushes back frustrated →policy-pushback
Uncertainty Acknowledgment
→escalation-human
Policy Pushback
- Customer agrees to speak with a team member confirmed →escalation-human
- Customer accepts the explanation and no longer needs help resolved →resolution
- Customer has a new or different question follow-up →intake
Escalation to Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.name and customer.question
Resolution

General FAQ Insurance
Inbound Greeting
- Customer provides name and policy number →identity-verification
- Customer asks a question before providing identity →identity-first-prompt
- Customer explicitly requests a human agent →escalation-human
Identity First Prompt
- Customer provides name and policy number →identity-verification
- Customer declines or cannot provide policy number →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Identity Verification
IdentityVerification.Verify using customer.name and customer.policyNumber
- Verification passes →policy-lookup
- Verification fails after two attempts →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Policy Lookup
PolicyAdmin.GetRecord for customer.policyNumber
CRM.GetCustomerProfile for customer.name
- Policy is active →topic-detection
- Policy is lapsed →lapsed-policy-notice
- Policy record not found →escalation-human
Topic Detection
- Question is about coverage or what the plan includes coverage →faq-coverage
- Question is about billing, payment, or due dates billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about an existing claim already in progress claim-status →active-claim-redirect
- Question is about policy documents, ID cards, or proof of insurance documents →faq-documents
- Question is about cancellation or reinstatement policy-changes →faq-policy-changes
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
FAQ — Coverage
kb.coverage-faq — retrieve coverage details relevant to customer.productType
PolicyAdmin.GetCoverageDetails for customer.policyNumber
- Customer wants more detail on a specific benefit →faq-coverage-detail
- Customer's question is resolved confirmed →resolution
- Customer raises a dispute about what should be covered dispute →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — Coverage Detail
kb.coverage-faq — look up specific benefit or exclusion matching question.topic
- Customer confirms the answer resolves their question confirmed →resolution
- Customer disagrees with the coverage detail dispute →escalation-human
- Customer has a follow-up question →topic-detection
FAQ — Billing
PolicyAdmin.GetBillingRecord for customer.policyNumber
kb.billing-faq — retrieve billing process and payment method information
- Customer wants to update payment method or set up autopay →escalation-human
- Customer questions a charge or amount billing-dispute →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Claims Process
kb.claims-process-faq — retrieve step-by-step claims filing guidance for customer.productType
- Customer wants the claims contact or portal link CRM.SendClaimsInfo to customer.email →resolution
- Customer says they already have a claim in progress claim-in-progress →active-claim-redirect
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Documents
kb.documents-faq — retrieve document request process for customer.productType
- Customer confirms email and requests document PolicyAdmin.SendDocuments to customer.email →resolution
- Customer wants a different email address PolicyAdmin.SendDocuments after confirming new address →resolution
- Customer has a follow-up question →topic-detection
FAQ — Policy Changes
kb.policy-changes-faq — retrieve cancellation and reinstatement policy for customer.productType
- Customer asks about cancellation →escalation-human
- Customer asks about reinstatement →faq-reinstatement
- Customer has a general question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Reinstatement
kb.reinstatement-policy — retrieve reinstatement eligibility and process
- Customer wants to proceed with reinstatement →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
Active Claim Redirect
CRM.LogInteraction tag: claim-status-inquiry, linked to customer.policyNumber
- Claim ID is available claim.id →claims-status-workflow
- Claim ID is not available →escalation-human
Lapsed Policy Notice
kb.reinstatement-policy — check reinstatement eligibility window using customer.reinstatementDeadline
- Customer wants to proceed with their original question →topic-detection-lapsed
- Customer wants reinstatement information first →faq-reinstatement
- Customer explicitly requests a human agent →escalation-human
Topic Detection — Lapsed Policy
- Question is about coverage coverage →faq-coverage
- Question is about billing billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about documents documents →faq-documents
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
Unverified — General Info Only
kb.public-faq — retrieve general public-facing insurance information
- Question is about coverage in general coverage →faq-coverage-general
- Question is about billing in general billing →faq-billing-general
- Question is about how to file a claim claims-process →faq-claims-process
- Customer wants account-specific help →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — General Coverage (Unverified)
kb.public-faq — retrieve general coverage overview, not account-specific
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
FAQ — General Billing (Unverified)
kb.public-faq — retrieve general billing and payment information
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
Clarification Prompt
- Customer clarifies a known topic confirmed →topic-detection
- Customer's question still unclear after clarification →escalation-human
- Customer explicitly requests a human agent →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation, reason: question.topic, linked to customer.policyNumber
CRM.CreateCase priority: normal, linked to customer.policyNumber
Resolution
CRM.LogInteraction tag: faq-resolved, topic: question.topic, linked to customer.policyNumber
- Customer has another question →topic-detection
- Customer confirms no further questions confirmed →close-conversation
Close Conversation
CRM.CloseInteraction linked to customer.policyNumber

General FAQ / Product Info
Intake
- Customer asks about a specific product or account type (HYSA, CD, checking, savings, loan) product-inquiry →topic-identification
- Customer asks about rates or current pricing rate-inquiry →topic-identification
- Customer asks about fees or charges fee-inquiry →topic-identification
- Customer asks about a policy or terms policy-inquiry →topic-identification
- Customer references their own account balance, transaction, or personal account detail account-detail-request →identity-verification
- Customer mentions a complaint, dispute, or expresses frustration complaint →escalation-human
- Customer explicitly asks to speak with a human human-request →escalation-human
- Intent unclear or ambiguous unclear →clarify-question
Clarify Question
- Customer clarifies a product, rate, fee, or policy topic product-inquiry →topic-identification
- Customer clarifies they need account-specific information account-detail-request →identity-verification
- Customer still unclear or asks for a human unclear →escalation-human
Topic Identification
- Topic identified and maps to a standard product or policy kb.product-catalog →knowledge-base-lookup
- Topic identified and is rate- or fee-specific RateFeeDatabase.QueryProduct →rate-fee-retrieval
- Topic involves investment products or securities investment-topic →investment-disclaimer-check
- Topic cannot be matched to any known product or policy no-match →knowledge-gap-handling
Knowledge Base Lookup
FAQCMS.LookupTopic for query.topic filtered by customer.state
CRM.GetCustomerProfile for customer.id to confirm customer.status (existing or prospective)
- Clear, current, single result returned result-found →deliver-answer
- Result returned but flagged as recently updated or version-changed stale-or-updated →change-flag-review
- No result or conflicting entries returned no-result →knowledge-gap-handling
Rate / Fee Retrieval
RateFeeDatabase.QueryProduct for product.name filtered by customer.state
FAQCMS.LookupTopic for any associated fee-schedule or policy footnotes
- Current rate or fee confirmed, no promotional flag result-found →deliver-answer
- Promotional rate or limited-time offer applies promo-active →promo-terms-delivery
- Rate or fee recently changed rate-changed →change-flag-review
- Query returns no data or an error no-result →knowledge-gap-handling
Change Flag Review
RateFeeDatabase.QueryProduct to pull the most current record and confirm effective date
FAQCMS.LookupTopic to retrieve any change notice or customer communication linked to query.topic
- Most current version confirmed and retrieved →deliver-answer
- Change is tied to a promotional window promo-active →promo-terms-delivery
- Conflict persists or effective date is ambiguous conflict →knowledge-gap-handling
Promo Terms Delivery
- Customer wants to know how to apply or enroll apply-intent →escalation-human
- Customer has another question more-questions →intake
- Customer is satisfied and has no further questions satisfied →close-interaction
Investment Disclaimer Check
ComplianceDisclaimerLibrary.GetDisclaimer for query.product
- Customer is asking for general product information only (no personalized recommendation) general-info →knowledge-base-lookup
- Customer is asking for a recommendation or advice on what to buy or invest in advice-request →escalation-human
- Regulatory disclaimer required before answering kb.compliance-disclaimer-library →deliver-answer-with-disclaimer
Deliver Answer
- Customer has a follow-up question on the same topic follow-up →deliver-answer
- Customer has a new question on a different topic new-topic →intake
- Customer asks something that now touches on their specific account account-detail-request →identity-verification
- Customer is satisfied satisfied →close-interaction
- Customer expresses frustration or dissatisfaction frustrated →escalation-human
Deliver Answer With Disclaimer
- Customer has another general question more-questions →intake
- Customer asks for a personalized recommendation or advice advice-request →escalation-human
- Customer is satisfied satisfied →close-interaction
Identity Verification
IdentityVerification.InitiateCheck for customer.id via query.channel
- Verification passed identity-verified →account-detail-lookup
- Verification failed or customer unable to complete it identity-failed →escalation-human
- Customer declines verification declined →offer-general-only
Offer General Only
- Customer accepts general answer and asks a product question product-inquiry →intake
- Customer still wants account detail or requests a human human-request →escalation-human
- Customer has no further questions satisfied →close-interaction
Account Detail Lookup
CRM.GetCustomerProfile for customer.id
RateFeeDatabase.QueryProduct for customer.accountType filtered by customer.state
- Customer is asking about their current rate or fee on an existing product rate-fee-detail →deliver-answer
- Customer is asking about a balance or recent transaction transaction-request →escalation-human
- Customer is asking about a policy as it applies to their account policy-detail →deliver-answer
Knowledge Gap Handling
CRM.LogInteraction with query.topic flagged as unresolved, route note to specialist.queue
- Route to specialist queue →escalation-human
Escalation to Human
CRM.LogInteraction with full conversation context, query.topic, customer.id, and escalation reason
CRM.CreateCase tagged faq-escalation, linked to customer.id and query.topic
Close Interaction
CRM.LogInteraction with query.topic marked resolved and customer.status updated

General FAQ — Travel & Hospitality
Inbound Question
CRM.LookupCustomer by customer.phone or customer.email
- Customer asks about cancellation or change policies cancellation →clarify-reservation-context
- Customer asks about amenities, facilities, or property features amenities →clarify-property
- Customer asks about pet policy pets →clarify-property
- Customer asks about meals, dining, or breakfast inclusion dining →clarify-property
- Customer asks about loyalty program benefits or points loyalty →loyalty-faq
- Customer asks about visa, health, or travel entry requirements travel-requirements →travel-requirements-faq
- Customer message is vague or multi-topic unclear →clarify-question
- Customer expresses frustration or dissatisfaction upfront frustrated →escalation-human
Clarify Question
- Customer provides enough detail to categorise clarified →inbound-question
- Customer remains vague or asks multiple unrelated things still-unclear →retrieve-general-faq
- Customer shows frustration frustrated →escalation-human
Clarify Reservation Context
- Customer references an existing reservation →clarify-property
- Customer is asking prospectively →retrieve-general-faq
Clarify Property
PMS.LookupReservation by reservation.id if provided
- Property identified or reservation found →retrieve-property-faq
- Customer cannot specify a property and question is general →retrieve-general-faq
- Customer is frustrated by the extra question frustrated →escalation-human
Retrieve Property-Specific FAQ
kb.property-policies — look up topic.category policy for property.name
- Answer found and complete →deliver-answer
- Answer found but varies by date or rate type →deliver-answer-with-caveat
- Knowledge base has no coverage for this question no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Retrieve General FAQ
kb.general-faq — look up topic.category
- Answer found and universally applicable →deliver-answer
- Answer varies by property →clarify-property
- Answer varies by loyalty tier LoyaltyPlatform.GetTierBenefits →deliver-answer-with-caveat
- Knowledge base has no coverage no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Loyalty FAQ
kb.loyalty-program — retrieve benefits, earning rules, and redemption policies for customer.loyaltyTier
LoyaltyPlatform.GetTierBenefits for customer.loyaltyTier
- Benefits information retrieved →deliver-answer
- Customer's tier could not be confirmed →deliver-answer-with-caveat
- Customer disputes their tier or points balance dispute →escalation-human
Travel Requirements FAQ
kb.travel-entry-requirements — look up destination property.location for reservation.checkIn dates
- Summary retrieved →deliver-answer-with-caveat
- No information available for this destination no-coverage →knowledge-gap
- Customer raises a medical or legal compliance concern sensitive →escalation-human
Deliver Answer
- Customer is satisfied and has no further questions satisfied →resolution
- Customer has a follow-up question on the same topic follow-up →retrieve-property-faq
- Customer has a completely new question new-topic →inbound-question
- Customer is not satisfied with the answer unsatisfied →escalation-human
Deliver Answer With Caveat
- Customer accepts the answer and caveats satisfied →resolution
- Customer wants clarification on a specific variant follow-up →clarify-property
- Customer is unsatisfied or concerned unsatisfied →escalation-human
Knowledge Gap
CRM.LogInteraction note: unanswered FAQ topic, question.raw, property.name
- Customer agrees to be connected confirmed →escalation-human
- Customer declines transfer and wants to try another question new-topic →inbound-question
- Customer ends the conversation end →resolution
Escalation to Human Specialist
CRM.LogInteraction with question.raw, topic.category, reservation.id, customer.loyaltyTier, escalation reason
Resolution
CRM.LogInteraction note: FAQ resolved, topic.category, property.name, customer.loyaltyTier

General FAQ — Healthcare
Intake
- Patient asks about billing or payments billing →category-billing
- Patient asks about scheduling or appointments scheduling →category-scheduling
- Patient asks about insurance or coverage insurance →category-insurance
- Patient asks about services, procedures, or treatments services →category-services
- Patient asks about location, hours, or directions location →category-location
- Patient asks about prescriptions or medications prescriptions →category-prescriptions
- Patient mentions a symptom, pain, or medical concern clinical →clinical-deflection
- Patient expresses distress, fear, or emotional upset distressed →escalation-human
- Patient asks about their personal health record or account-specific details personal-record →identity-verification
- Patient requests a specific staff member or provider by name staff-request →escalation-human
- Question does not fit any known category unclear →clarify-question
Clarify Question
- Category becomes clear on follow-up billing →category-billing
- Category becomes clear on follow-up scheduling →category-scheduling
- Category becomes clear on follow-up insurance →category-insurance
- Category becomes clear on follow-up services →category-services
- Category becomes clear on follow-up location →category-location
- Category becomes clear on follow-up prescriptions →category-prescriptions
- Patient mentions a symptom or medical concern clinical →clinical-deflection
- Patient expresses distress distressed →escalation-human
- Still unclear after follow-up still_unclear →knowledge-base-fallback
Category — Billing
kb.billing-faq — retrieve billing policies, payment options, balance inquiry process, financial assistance programs
- Patient has a question about a specific charge or balance on their account account_specific →identity-verification
- Patient asks a general question about payment options or financial assistance general →deliver-billing-answer
- Patient asks about payment plans payment_plan →deliver-billing-answer
- Patient is confused or frustrated about a charge frustrated →escalation-human
Deliver Billing Answer
kb.billing-faq — confirm answer to patient's specific billing question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is still confused or wants to speak with someone needs_agent →escalation-human
Category — Scheduling
kb.scheduling-faq — retrieve scheduling policies, new patient process, cancellation policy, telehealth availability
- Patient wants to book, reschedule, or cancel book_appt →scheduling-action
- Patient asks a general scheduling question general →deliver-scheduling-answer
- Patient mentions a specific provider staff-request →escalation-human
Deliver Scheduling Answer
kb.scheduling-faq — confirm answer to scheduling question
- Patient wants to schedule directly book_appt →scheduling-action
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
Scheduling Action
- Existing patient confirmed patient.status EHR.LookupPatient →confirm-patient-identity-scheduling
- New patient new_patient →new-patient-intake
- Patient declines to provide info and wants to self-schedule self_serve →resolution
Confirm Patient Identity — Scheduling
- Identity confirmed EHR.LookupPatient verified →escalation-human
- Patient cannot verify identity unverified →identity-fail
New Patient Intake
kb.new-patient-faq — retrieve new patient registration process, required documents, insurance accepted
- Patient wants portal link CRM.SendPortalLink →resolution
- Patient wants to speak with front desk speak_to_staff →escalation-human
- Patient confirms they have what they need confirmed →resolution
Category — Insurance
kb.insurance-faq — retrieve accepted insurance carriers, coverage verification process, referral and prior authorization info
- Patient asks which insurance plans are accepted plans_accepted →deliver-insurance-answer
- Patient wants to verify their specific coverage verify_coverage →identity-verification
- Patient asks about referrals or prior authorization auth_referral →deliver-insurance-answer
- Patient asks a general insurance question general →deliver-insurance-answer
Deliver Insurance Answer
kb.insurance-faq — confirm answer relevant to patient's insurance question
- Patient confirms they have what they need confirmed →resolution
- Patient wants insurance team to verify their benefits verify_coverage →identity-verification
- Patient has a follow-up question follow_up →intake
- Patient is frustrated about coverage or a denial frustrated →escalation-human
Category — Services
kb.services-faq — retrieve information on available specialties, procedures, telehealth, and referral requirements
- Patient asks about a specific procedure or treatment procedure →deliver-services-answer
- Patient asks about a specialty specialty →deliver-services-answer
- Patient asks about telehealth telehealth →deliver-services-answer
- Patient's question touches on clinical advice or personal symptoms clinical →clinical-deflection
Deliver Services Answer
kb.services-faq — confirm answer relevant to patient's services question
- Patient confirms they have what they need confirmed →resolution
- Patient wants to schedule related to this service book_appt →category-scheduling
- Patient has a follow-up question follow_up →intake
- Patient's follow-up veers into clinical advice territory clinical →clinical-deflection
Category — Location & Hours
kb.facility-directory — retrieve facility addresses, hours of operation, parking, and contact numbers
- Patient names a specific facility or location facility.name →deliver-location-answer
- Patient wants a list of all locations all_locations →deliver-location-answer
- Patient asks about after-hours or urgent care availability after_hours →deliver-location-answer
Deliver Location Answer
kb.facility-directory — confirm address, hours, and contact details for facility.name
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
- Patient cannot find the location or needs further help needs_agent →escalation-human
Category — Prescriptions
kb.prescriptions-faq — retrieve prescription refill process, pharmacy partnerships, prior authorization for medications
- Patient asks about refills refill →deliver-prescriptions-answer
- Patient asks about pharmacy partners pharmacy →deliver-prescriptions-answer
- Patient asks about prior authorization for a specific medication prior_auth →deliver-prescriptions-answer
- Patient asks about dosage, interactions, or clinical guidance clinical →clinical-deflection
Deliver Prescriptions Answer
kb.prescriptions-faq — confirm answer relevant to prescription question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient's question requires clinical judgment clinical →clinical-deflection
- Patient wants to speak with their care team needs_agent →escalation-human
Identity Verification
CRM.VerifyPatientIdentity using patient.name, patient.dob, patient.phone or patient.email
- Identity verified successfully verified →post-verification-routing
- Identity cannot be verified unverified →identity-fail
Post-Verification Routing
- Original question was about billing billing EHR.LookupPatientAccount →deliver-billing-answer
- Original question was about insurance or coverage insurance InsuranceEligibility.VerifyCoverage →deliver-insurance-answer
- Original question was about scheduling scheduling EHR.LookupPatient →confirm-patient-identity-scheduling
- Original question required record access record EHR.LookupPatientAccount →escalation-human
Identity Fail
- Patient wants to try a general question general →intake
- Patient wants to call or visit in person confirmed →resolution
- Patient is frustrated or upset frustrated →escalation-human
Knowledge Base Fallback
- Answer found with high confidence answer_found →deliver-fallback-answer
- No reliable answer found in knowledge base no_answer →acknowledge-uncertainty
Deliver Fallback Answer
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is unsatisfied or needs more detail needs_agent →escalation-human
Acknowledge Uncertainty
- Patient wants to be connected to a staff member needs_agent →escalation-human
- Patient wants the patient portal link CRM.SendPortalLink →resolution
- Patient is okay waiting or will follow up themselves confirmed →resolution
Clinical Deflection
- Patient wants to schedule an appointment book_appt →category-scheduling
- Patient wants a facility location location →category-location
- Patient indicates this may be an emergency emergency →escalation-emergency
- Patient confirms they understand and has no further needs confirmed →resolution
- Patient is distressed or escalating distressed →escalation-human
Escalation — Emergency
Escalation to Human Agent
CRM.CreateCaseNote with question.category, conversation summary, and patient.name if provided
CRM.RouteToAgent with priority: standard, tagged with question.category
Resolution
CRM.LogInteraction with question.category and resolution status

Fraud Alert Follow-up
Alert Notification
FraudDetectionPlatform.FetchFlaggedTransaction to retrieve transaction.id, transaction.amount, transaction.merchant, transaction.datetime, and transaction.riskScore.
- System lookup succeeds and transaction details are retrieved →identity-verification
- System lookup fails or returns no transaction record system_error →system-lookup-failure
Identity Verification
IdentityVerification.VerifyCustomer using customer.name, customer.dob, and customer.pin or customer.securityAnswer.
- Identity verified successfully confirmed →transaction-confirmation
- Identity cannot be verified after two attempts failed →verification-failure
- Customer is uncertain or provides partial information partial →verification-retry
Verification Retry
IdentityVerification.VerifyCustomer retry with alternate credentials.
- Identity verified on retry confirmed →transaction-confirmation
- Identity still cannot be verified failed →verification-failure
Verification Failure
CRM.LogInteraction tagged verification-failure, linked to account.id, noting no transaction details were disclosed.
Transaction Confirmation
- Customer confirms the transaction is theirs confirmed →resolution-clear
- Customer says the transaction is not theirs denied →disputed-transaction
- Customer is unsure or asks for more time uncertain →transaction-detail-review
Transaction Detail Review
kb.fraud-dispute-policy — review dispute eligibility window for transaction.datetime.
- Customer recognizes the transaction after further detail confirmed →resolution-clear
- Customer confirms the transaction is not theirs denied →disputed-transaction
- Customer remains unsure and cannot confirm or deny uncertain CRM.LogInteraction tagged pending-customer-response →escalation-human
Disputed Transaction
CardManagement.BlockCard for card.last4.
CRM.UpdateCase flagged as fraud-reported, linked to account.id and transaction.id.
- Customer confirms only the single flagged transaction is unrecognized single-transaction →open-dispute
- Customer flags additional unrecognized transactions multiple-transactions →expanded-fraud-event
- Customer is distressed, upset, or requests immediate escalation distressed →escalation-human
Expanded Fraud Event
CoreBanking.FreezeAccount for account.id.
FraudDetectionPlatform.FlagAccountCompromised linked to account.id.
CRM.CreateCase priority: critical, tagged expanded-fraud-account-review, linked to account.id.
DisputeManagement.OpenExpandedReview for account.id, noting all flagged transactions.
- Case created and account frozen →escalation-human
Open Dispute
DisputeManagement.OpenDispute for transaction.id, transaction.amount, transaction.merchant, linked to account.id. Capture dispute.caseId.
→replacement-card
Replacement Card
CardManagement.IssueReplacementCard for card.last4, ship to replacement.deliveryAddress.
- Approved approved →dispute-wrap-up
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Dispute Wrap-up
CRM.UpdateCase with dispute.caseId, card block status, and replacement card shipping confirmation.
CoreBanking.ClearFraudAlert on transaction.id.
- Customer has further questions or concerns →escalation-human
- Customer is satisfied and call can close →resolution-clear
System Lookup Failure
CRM.LogInteraction tagged system-error-transaction-lookup, linked to account.id, noting transaction details could not be retrieved.
FraudDetectionPlatform.FlagForManualReview linked to account.id, tagged system-lookup-failure.
Escalation to Human Agent
CRM.CreateCase priority: high, tagged fraud-escalation, linked to account.id and transaction.id.
Slack.Notify to #fraud-ops with case summary including account.id, transaction.id, transaction.amount, card.last4, and reason for escalation.
Resolution — Clear
CoreBanking.ClearFraudAlert on transaction.id.
CRM.LogInteraction tagged alert-cleared-customer-confirmed, linked to account.id.

Flight/Trip Disruption Support
Intake & Verification
PNR.LookupBooking using booking.confirmationNumber and booking.passengerName
- Booking found and passenger name matches →identity-check
- Booking not found or name mismatch confused PNR.LookupBooking retry with loyalty number booking.loyaltyNumber →identity-check
- No booking reference available at all →escalation-human
Identity Check
IdentityVerification.Challenge using booking.passengerName and traveler.email
- Identity verified identity_verified →disruption-assessment
- Identity check fails after two attempts identity_failed →escalation-secure-verification
- Customer declines verification declined →escalation-secure-verification
Disruption Assessment
PNR.GetAffectedSegment for booking.confirmationNumber to pre-populate trip.affectedSegment
- Flight cancellation confirmed cancellation →rebooking-options
- Significant delay (2+ hours) delay →rebooking-options
- Missed connection missed-connection →rebooking-options
- Hotel or accommodation failure hotel-issue →hotel-resolution
- Customer already self-rebooked self-rebooked →self-rebook-review
- Medical or safety emergency emergency →escalation-human
Rebooking Options
kb.rebooking-policy — check eligibility rules, same-carrier preference, fare class protection, and partner airline agreements for booking.fareClass
GDS.SearchAvailability for trip.destination from traveler.currentLocation on trip.travelDate and next 24 hours
- Suitable same-carrier option found →rebook-confirmation
- Only partner carrier options available →partner-carrier-offer
- No viable rebooking option exists no_options →refund-assessment
- Minor traveling alone flag raised minor_alone →escalation-human
Rebook Confirmation
- Customer confirms new flight confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Customer wants to see other options wants-alternatives →rebooking-options
- Customer declines all options and wants a refund refund-requested →refund-assessment
Partner Carrier Offer
kb.partner-airline-policy — confirm interline agreement, baggage transfer rules, and any fare difference liability
- Customer accepts confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Fare difference exceeds authorization limit fare_over_limit →escalation-human
- Customer declines and requests refund refund-requested →refund-assessment
Self-Rebook Review
PNR.GetAffectedSegment to compare original booking.itinerary against new booking
GDS.CheckFareDifference for rebooking.fareDifference
- Self-rebook is clean, no fare difference owed no_difference →confirmation-and-vouchers
- Fare difference owed to customer fare_refund_due →refund-assessment
- Duplicate charge detected duplicate_charge →refund-assessment
- Self-rebook is invalid or ticketing error ticketing_error →rebooking-options
Hotel Resolution
kb.hotel-disruption-policy — review duty-of-care obligations, walk procedures, and compensation entitlements
- Hotel overbooked, walk required hotel-walk HotelAPI.FindAlternativeProperty →hotel-rebook-confirmation
- Room condition complaint (safety, cleanliness) room-condition HotelAPI.EscalateProperty →hotel-rebook-confirmation
- Issue requires compensation above agent limit hotel_over_limit →escalation-human
Hotel Rebook Confirmation
- Customer confirms confirmed HotelAPI.TransferReservation CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer prefers to resolve independently self-resolve →confirmation-and-vouchers
- Compensation amount exceeds authorization hotel_over_limit →escalation-human
Refund Assessment
kb.refund-policy — verify refundability for booking.fareClass, disruption cause trip.disruption.cause, and weather exception rules
- Full refund eligible full_refund PNR.InitiateRefund →confirmation-and-vouchers
- Travel credit or voucher eligible voucher_eligible CompensationTool.IssueVoucher →confirmation-and-vouchers
- Weather-related, limited compensation weather_limited →weather-exception-handling
- Refund amount exceeds agent authorization refund_over_limit →escalation-human
- No refund eligibility confirmed no_refund →compensation-conversation
Weather Exception Handling
kb.weather-disruption-policy — confirm exact entitlements and any duty-of-care exceptions
- Customer accepts limited offer accepted CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer disputes and requests escalation escalate →escalation-human
- Customer requests full refund citing extraordinary circumstances extraordinary →escalation-human
Compensation Conversation
CompensationTool.CalculateEntitlement for booking.fareClass and booking.loyaltyNumber
- Goodwill voucher available CompensationTool.IssueVoucher →confirmation-and-vouchers
- Nothing available within agent limits no_compensation_available →escalation-human
Confirmation & Vouchers
PNR.SendConfirmationEmail to traveler.email with updated booking.itinerary
CompensationTool.DeliverVoucher to traveler.email if applicable
Salesforce.UpdateCase with resolution summary, disruption type trip.disruption.type, and compensation issued
- Customer has additional questions or issues more-help →disruption-assessment
- Customer is satisfied and conversation is complete resolved →resolution-close
Resolution Close
Salesforce.CloseCase with outcome logged and customer satisfaction noted
Escalation — Secure Verification
Salesforce.CreateCase priority: high, tagged identity-verification-required
IdentityVerification.RouteToSecureChannel for traveler.phone or traveler.email
Escalation — Human Agent
Salesforce.CreateCase priority: high, tagged disruption-escalation with full case summary, booking.confirmationNumber, trip.affectedSegment, and trip.disruption.cause
PNR.FlagForSeniorAgent on booking.confirmationNumber
Salesforce.NotifyAgent via #disruption-escalations with case link and urgency flag

Dispute Escalation to Human Agent
Dispute Intake
- Customer provides name and account number →identity-verification
- Customer mentions an already-open dispute or prior case number →existing-case-lookup
- Customer immediately invokes legal rights (CFPB, arbitration, attorney) or threatens legal action legal_threat →escalation-human
- Customer is highly distressed or agitated distressed →escalation-human
Identity Verification
IdentityVerification.Verify against customer.accountNumber — check security questions, date of birth, and registered contact details.
- Identity verified on first or second attempt verified →account-and-dispute-lookup
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer refuses verification or abandons →escalation-human
Identity Failure
CRM.LogAttempt tag: identity-verification-failed, linked to customer.accountNumber
Account and Dispute Lookup
CoreBanking.GetAccountDetails for customer.accountNumber
CoreBanking.GetTransactionHistory for customer.accountNumber
- Customer provides transaction or decision details →dispute-eligibility-check
- Agent cannot locate the transaction after two attempts →escalation-human
- Customer mentions fraud and amount is above USD 500 high_value_fraud →escalation-human
Dispute Eligibility Check
kb.dispute-eligibility-policy — check whether transaction.date falls within the eligible dispute window and whether dispute.reason qualifies under policy.
- Dispute is within policy window and qualifies eligible →dispute-logging
- Dispute falls outside the eligible window or does not qualify under policy ineligible →dispute-ineligible
- Eligibility is ambiguous and requires human judgment ambiguous →escalation-human
Dispute Ineligible
CRM.LogAttempt tag: dispute-ineligible, linked to customer.accountNumber, note dispute.reason
- Customer accepts the outcome and has no further questions →resolution-closed
- Customer requests secondary review or escalation →escalation-human
Existing Case Lookup
CaseManagement.GetCase by dispute.priorCaseNumber or customer.accountNumber
- Existing open case found case_found →existing-case-update
- No matching case found, treat as new dispute no_case →identity-verification
- Customer escalates frustration about lack of progress frustrated →escalation-human
Existing Case Update
CaseManagement.UpdateCase on case.id with new dispute.reason and today's contact timestamp
CRM.LogInteraction linked to case.id, tag: customer-follow-up
- Customer is satisfied with the update →resolution-closed
- Customer escalates or expresses legal intent legal_threat →escalation-human
- Customer requests to speak with a human specialist →escalation-human
Dispute Logging
- Customer confirms details confirmed →case-creation
- Customer corrects or amends details correction →account-and-dispute-lookup
Case Creation
DisputesManagement.CreateCase for customer.accountNumber with transaction.referenceId, transaction.amount, transaction.date, dispute.reason
CaseManagement.AssignCaseNumber and capture as case.id
CRM.LogInteraction tag: dispute-filed, linked to case.id
→dispute-confirmation
Dispute Confirmation
Twilio.SendSMS to customer.phone: "Your dispute (Case case.id) has been logged. Amount: transaction.amount. We'll follow up within 3–5 business days. Reply STOP to opt out."
Twilio.SendEmail to customer.email with full case summary including case.id, transaction.referenceId, transaction.amount, transaction.date, and next steps.
- Customer has no further questions →resolution-closed
- Customer has additional questions or a separate dispute →dispute-intake
- Customer escalates or requests immediate human follow-up →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation-triggered, linked to customer.accountNumber, note dispute.reason
CaseManagement.CreateOrUpdateCase priority: high, tag: human-escalation, linked to transaction.referenceId
DisputesManagement.FlagForReview on customer.accountNumber with escalation reason and agent transcript summary
- Specialist accepts and takes over approved →escalation-handoff-complete
- No response within 10 min timeout →escalation-handoff-complete
Escalation Handoff Complete
Twilio.SendSMS to customer.phone: "You've been connected with a disputes specialist. Reference: case.id. Expect contact via customer.preferredContact shortly."
Resolution / Closed
CRM.LogInteraction tag: interaction-complete, linked to case.id

Device Troubleshooting
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountId
- Account found, identity confirmed verified →device-details
- Account not found or system lookup fails lookup_failed →manual-account-collection
- Customer cannot verify identity after two attempts →escalation-human
Manual Account Collection
CRM.CreateManualRecord with collected details
Ticketing.FlagForDataSyncReview tagged data-sync-error, linked to customer.accountId
- Details collected and record created →device-details
- Customer unable to provide sufficient details →escalation-human
Device Details
DeviceManagement.LookupDevice using device.imei or customer.accountId
- Device record found, pulling device.make, device.model, device.imei →issue-intake
- Device record not found CRM.NoteManualDevice collect device.make, device.model, device.imei manually →issue-intake
Issue Intake
CRM.LogInteraction note issue.description, issue.startDate, issue.stepsTried
Ticketing.CheckPriorContacts for customer.accountId, device.imei
- Same issue reported three or more times repeat_contact →escalation-specialist
- Customer expresses significant frustration or urgency frustrated →escalation-specialist
- Physical damage mentioned (cracked screen, water damage, etc.) physical_damage →physical-damage-assessment
- No prior contacts or fewer than three, standard issue →basic-troubleshooting
Basic Troubleshooting
kb.device-troubleshooting-standard-steps — retrieve model-specific restart and reset instructions for device.make device.model
NetworkDiagnostics.RunCheck on device.imei — scan for signal, data connectivity, and provisioning issues
- Network or provisioning fault detected network_fault NetworkDiagnostics.PushProvisioningFix →post-basic-check
- No network fault, continue with device-side steps →software-update-check
Software Update Check
- Customer confirms update available, guides them to install DeviceManagement.LogUpdateInitiated →post-basic-check
- Device already on latest software, no update available →network-settings-reset
Network Settings Reset
kb.network-reset-instructions — confirm steps for device.make device.model
- Customer completes reset and reconnects →post-basic-check
- Customer declines to proceed or step causes a new error →advanced-troubleshooting
Post-Basic Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present unresolved →advanced-troubleshooting
Advanced Troubleshooting
- Agent determines factory reset is appropriate path factory_reset_candidate →factory-reset-guidance
- Agent determines hardware fault likely hardware_fault →physical-damage-assessment
- Agent determines issue is unresolvable through scripted steps unresolved_scripted →escalation-specialist
Factory Reset Guidance
kb.factory-reset-instructions — retrieve step-by-step for device.make device.model
- Customer confirms backup complete and agrees to proceed DeviceManagement.LogFactoryResetInitiated →post-factory-check
- Customer wants to back up first CRM.NoteBackupPending →callback-scheduling
- Customer declines factory reset →escalation-specialist
Post-Factory Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present after factory reset unresolved →escalation-specialist
Physical Damage Assessment
WarrantyInsurance.CheckEligibility for device.imei, customer.accountId — retrieve device.warrantyStatus, device.insuranceStatus
- Device under active warranty, damage type covered warranty_eligible →warranty-repair-route
- Device covered by insurance insurance_eligible →insurance-claim-route
- No warranty or insurance coverage no_coverage →out-of-warranty-options
Warranty Repair Route
WarrantyInsurance.InitiateWarrantyClaim for device.imei, customer.accountId
Ticketing.CreateTicket tagged warranty-repair, linked to device.imei
CRM.LogInteraction note warranty claim initiated
→resolution-confirmed
Insurance Claim Route
Ticketing.CreateTicket tagged insurance-claim, linked to device.imei
CRM.LogInteraction note insurance claim routed
→insurance-claims-workflow
Out-of-Warranty Options
kb.repair-center-locator — retrieve authorized repair centers near customer
kb.device-upgrade-eligibility — check upgrade options for customer.accountId
- Customer wants paid repair CRM.LogInteraction note repair referral provided, share repair center details →resolution-confirmed
- Customer wants to explore upgrade →escalation-human
- Customer wants to think it over CRM.LogInteraction note options presented →resolution-confirmed
Callback Scheduling
CRM.ScheduleCallback for customer.phone, note issue.description and steps completed
Ticketing.CreateTicket tagged callback-pending, linked to device.imei
→resolution-confirmed
Escalation to Specialist
Ticketing.CreateTicket tagged specialist-escalation, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note escalation reason: issue.description, prior contacts ticket.priorContactCount, steps completed
CRM.NotifySpecialistQueue with ticket summary
- Customer prefers callback →callback-scheduling
- Customer holds for specialist →escalation-human
Escalation to Human Agent
Ticketing.CreateTicket tagged human-handoff, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note full interaction summary
Resolution Confirmed
Ticketing.CreateTicket tagged resolved, linked to device.imei, customer.accountId
CRM.LogInteraction note resolution summary, steps taken, outcome
CRM.CloseInteraction for customer.accountId

Damaged / Wrong Item Received
Intake & Verify
- Customer provides order ID OMS.LookupOrder by order.id →confirm-order
- Customer provides email or phone instead CRM.LookupByContact by customer.email or customer.phone →confirm-order
- Customer cannot provide any identifying information →identity-unverifiable
Confirm Order
OMS.GetOrderDetails for order.id — retrieve item.description, order.deliveryDate, order.status, order.value
- Order found, delivery confirmed, customer describes damaged item →issue-triage
- Order found, delivery confirmed, customer describes wrong item received →issue-triage
- Order found but not yet marked delivered ShippingCarrier.GetTrackingStatus →delivery-unclear
- Order lookup returns an error or ambiguous result CRM.FlagForManualReview →system-lookup-failed
Issue Triage
kb.returns-replacement-policy — verify order.deliveryDate is within policy.replacementWindowDays and check photo evidence requirements for item.issue
- Within policy window, photo evidence required by policy →request-photo-evidence
- Within policy window, no photo evidence required →resolution-offer
- Outside policy window →outside-return-window
Request Photo Evidence
PhotoUpload.SendUploadLink to customer.email or customer.phone
- Customer submits photo, evidence is clear →resolution-offer
- Customer unable to submit photo, order value is within policy.autoApprovalThreshold Policy.CheckGoodwillEligibility →goodwill-exception-review
- Customer unable to submit photo, order value exceeds policy.autoApprovalThreshold →escalation-human
Goodwill Exception Review
- Goodwill waiver approved within constraints goodwill_approved →resolution-offer
- Goodwill waiver outside constraints or repeat exception needs_review →escalation-human
Resolution Offer
- Customer prefers replacement →initiate-replacement
- Customer prefers refund →initiate-refund
- Customer is unsure, asks for more information →explain-resolution-options
Explain Resolution Options
kb.returns-replacement-policy — confirm refund and replacement timelines for customer.preferredResolution
- Customer selects replacement →initiate-replacement
- Customer selects refund →initiate-refund
- Customer requests something outside standard options →escalation-human
Initiate Replacement
OMS.CreateReplacementOrder for order.id, ship to address on file
ReturnsManager.OpenReturnCase tagged replacement, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and estimated delivery
→close-case
Initiate Refund
ReturnsManager.InitiateRefund for order.id, full amount to original payment method
ReturnsManager.OpenReturnCase tagged refund, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and refund timeline
→close-case
Outside Return Window
kb.returns-replacement-policy — check partial goodwill resolution eligibility for out-of-window orders
- Approved for partial goodwill resolution approved ReturnsManager.InitiatePartialCredit →partial-resolution-confirmed
- Rejected, no goodwill exception authorised rejected →policy-decline
- No response within 60 min →escalation-human
Partial Resolution Confirmed
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and credit details
→close-case
Policy Decline
- Customer accepts the outcome →close-case
- Customer wants to escalate or disputes the outcome →escalation-human
Delivery Unclear
ShippingCarrier.GetTrackingStatus for order.id
- Carrier confirms delivered, discrepancy in OMS OMS.FlagOrderStatusMismatch →system-lookup-failed
- Carrier confirms still in transit →close-case
- Carrier confirms lost or exception raised →escalation-human
System Lookup Failed
CRM.CreateCase priority: medium, tagged order-lookup-error, linked to customer.email
CRM.ScheduleCallback for customer.phone within 24 hours
- Customer confirms callback number CRM.UpdateCaseContactDetails →close-case
- Customer prefers email follow-up Twilio.SendNotification confirmation to customer.email →close-case
Identity Unverifiable
- Customer finds identifying information →intake-and-verify
- Customer still cannot provide verification, low-value context →escalation-human
- Customer becomes frustrated or demands override →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged damaged-wrong-item-escalation, linked to order.id and customer.email
Slack.Notify to #retail-support-escalations with case summary, order.id, order.value, item.issue, and reason for escalation
Close Case
CRM.CloseCase for case.id, log resolution type and resolution.confirmationNumber

Complaint Intake & Routing
Intake & Greeting
- Customer provides name and account number →identity-verification
- Customer refuses to provide details or cannot locate account number →anonymous-record
- Customer immediately mentions a lawyer, regulator, or media escalation-signal →escalation-legal-regulatory
Identity Verification
IdentityVerification.VerifyCustomer using customer.fullName and customer.accountNumber
- Identity confirmed verified →complaint-details-collection
- Identity cannot be confirmed after two attempts unverified →anonymous-record
- System error or timeout system_error CRM.LogAttempt →escalation-human-agent
Complaint Details Collection
CRM.UpdateRecord with customer.accountNumber to flag active complaint intake
- Customer provides complaint details →prior-contact-check
- Customer becomes highly distressed or threatening legal action distressed →escalation-legal-regulatory
- Customer is unclear or needs prompting →complaint-clarification
Complaint Clarification
kb.complaint-intake-guidelines — review required fields for a complete complaint record
- Details now sufficient to proceed →prior-contact-check
- Customer remains unable to provide details CRM.LogPartialComplaint →complaint-details-collection
- Customer escalates tone or mentions legal action distressed →escalation-legal-regulatory
Prior Contact Check
ComplaintManagement.SearchExistingCases using customer.accountNumber and complaint.nature
- Duplicate case found duplicate_detected →duplicate-complaint-handling
- No prior case found, complaint is new no_duplicate →regulatory-category-check
- Customer provides prior reference number complaint.priorReference ComplaintManagement.LinkCase →regulatory-category-check
Duplicate Complaint Handling
ComplaintManagement.RetrieveCase to get case.existingId and current status
CRM.AddInteractionNote linked to case.existingId with today's contact details and any new information provided
- Customer confirms preferred contact and accepts outcome Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer disputes that the duplicate is the same issue →complaint-details-collection
- Customer is dissatisfied with existing case handling frustrated →escalation-human-agent
Regulatory Category Check
ComplianceFlagging.ClassifyComplaint using complaint.nature and complaint.product
kb.regulatory-complaint-categories — check whether complaint falls under fraud, discrimination, CFPB-reportable, FCA-reportable, or other regulated classification
- Complaint classified as regulated category (fraud, discrimination, CFPB, FCA) regulated_category →compliance-routing
- Complaint classified as standard (service, billing, product experience) standard_category →complaint-registration
- Classification inconclusive inconclusive CRM.LogForManualReview →escalation-compliance-team
Compliance Routing
ComplianceFlagging.FlagCase with complaint.category, customer.accountNumber, and complaint.nature
CaseRouting.AssignToComplianceQueue with priority: high
CRM.CreateComplaintRecord tagged regulatory, linked to customer.accountNumber
- Customer would like written confirmation now Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer has further information to add →complaint-clarification
- Customer escalates or mentions external bodies escalation-signal →escalation-legal-regulatory
Complaint Registration
ComplaintManagement.CreateCase with customer.fullName, customer.accountNumber, complaint.nature, complaint.date, complaint.product, complaint.priorReference
CaseRouting.AssignToStandardQueue
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer confirms preferred contact method →preferred-contact-capture
- Customer wants to add anything further →complaint-clarification
- Customer is highly dissatisfied with the process frustrated →escalation-human-agent
Preferred Contact Capture
CRM.UpdatePreferredContact for customer.accountNumber with customer.preferredContact
- Customer confirms email Twilio.SendEmail to customer.email with acknowledgment letter and complaint.referenceNumber →resolution-acknowledgment
- Customer confirms phone or SMS Twilio.SendSMS to customer.phone with acknowledgment summary and complaint.referenceNumber →resolution-acknowledgment
- Customer has no preference, use address on file CRM.RetrieveContactDetails Twilio.SendEmail to customer.email →resolution-acknowledgment
Resolution & Acknowledgment
CRM.CloseInteraction with outcome: complaint-logged, reference: complaint.referenceNumber
- Customer has no further questions — flow ends here
- Customer raises an additional issue →intake-greeting
- Customer requests to speak with someone now wants_agent →escalation-human-agent
Anonymous Record
ComplaintManagement.CreateAnonymousRecord with complaint.nature and any details provided
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer provides a contact method CRM.LogAnonymousContactPreference →resolution-acknowledgment
- Customer declines and ends the interaction — flow ends here
- Customer becomes agitated or references legal action distressed →escalation-legal-regulatory
Escalation — Legal or Regulatory Signal
ComplianceFlagging.FlagCase with priority: urgent, reason: legal-regulatory-signal
CaseRouting.AssignToSeniorComplaintsHandler
CRM.CreateComplaintRecord tagged escalated, legal-signal, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
Twilio.SendSMS to customer.preferredContact confirming escalation and complaint.referenceNumber
Escalation — Human Agent
CaseRouting.TransferToLiveAgent with context: complaint.referenceNumber, customer.accountNumber, complaint.nature
CRM.LogHandoffNote with reason: customer-requested or verification-failure or system-error
Escalation — Compliance Team
ComplianceFlagging.FlagCase with priority: high, reason: inconclusive-classification
CaseRouting.AssignToComplianceReviewTeam
CRM.CreateComplaintRecord tagged compliance-review-required, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber

Complaint Escalation Stay/Trip Issue
Intake & Verification
CRM.LookupCustomer by customer.phone or customer.email
PropertyManagementSystem.LookupReservation by booking.id
- Reservation found and account matched →complaint-capture
- Reservation not found in system →manual-case-creation
- Customer mentions a prior unresolved case CaseManagement.LookupCase by complaint.priorCaseNumber →complaint-capture
Complaint Capture
LoyaltyPlatform.GetProfile by customer.loyaltyNumber
- Customer describes issue calmly and provides clear details neutral →policy-check
- Customer is highly upset, distressed, or emotional frustrated →empathy-de-escalation
- Customer explicitly mentions legal action, regulatory body, health or safety incident threatened →escalation-human
Empathy & De-escalation
- Customer calms and continues describing the issue neutral →policy-check
- Customer remains highly distressed or repeats legal / safety threat threatened →escalation-human
Policy Check
kb.complaint-resolution-policy — verify complaint window, eligible remedy types, and authorization limits for booking.checkOut and complaint.nature
PropertyManagementSystem.GetReservationDetails for booking.id to confirm rate, room type, and recorded amenities
- Stay is within complaint window and issue is policy-eligible →remedy-assessment
- Stay falls outside complaint window or issue is partially out of scope →out-of-scope-partial-remedy
- Booking channel is a third-party OTA OTAPartnerPortal.CheckBookingOwnership →ota-redirect
Remedy Assessment
- Remedy is within authorization limits and straightforward →remedy-confirmation
- Requested or warranted compensation exceeds authorization limit exceeds_limit →escalation-human
- Complaint involves a safety or health element safety_flag →escalation-human
Remedy Confirmation
- Customer accepts the remedy confirmed →process-remedy
- Customer rejects and requests higher compensation dissatisfied →escalation-review
- Customer requests time to think and asks to be followed up →case-documentation
Process Remedy
RefundBillingSystem.ProcessRefundOrCredit for booking.id with remedy.type and remedy.value
LoyaltyPlatform.ApplyCredit if remedy.type is loyalty credit
CaseManagement.CreateCase tagged complaint-resolved, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with case reference case.id and remedy details
- Customer confirms receipt and has no further issues →resolution-close
- Customer raises an additional complaint →complaint-capture
Escalation Review
- Approved approved →process-remedy
- Rejected rejected →remedy-final-offer
- No response in 60 min →escalation-human
Remedy Final Offer
- Customer accepts confirmed →process-remedy
- Customer declines and wishes to escalate further dissatisfied →escalation-human
OTA Redirect
CaseManagement.CreateCase tagged ota-redirect, linked to booking.id
OTAPartnerPortal.InitiateDisputeReferral for booking.id with complaint.nature and complaint.details
- Customer is satisfied with the redirect guidance →resolution-close
- Customer is unsatisfied and escalates frustration frustrated →escalation-human
Out-of-Scope / Partial Remedy
kb.complaint-resolution-policy — identify any goodwill or partial remedy options available outside the standard window
CaseManagement.CreateCase tagged out-of-scope, linked to booking.id
- Customer accepts the partial or goodwill remedy confirmed →process-remedy
- Customer is dissatisfied and escalates frustrated →escalation-human
Manual Case Creation
CRM.LookupCustomer by customer.email or customer.loyaltyNumber
CaseManagement.CreateCase tagged pending-lookup, with booking.propertyName, booking.checkIn, booking.checkOut, complaint.nature, customer.email, customer.phone
- Customer accepts the follow-up path →resolution-close
- Customer is unwilling to wait and is highly agitated frustrated →escalation-human
Escalation to Human Agent
CaseManagement.CreateCase priority: urgent, tagged escalation, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with escalation flag and complaint.details
Slack.Notify to #hospitality-escalations with case summary, booking.id, complaint.nature, and customer.desiredResolution
Case Documentation & Follow-up
CaseManagement.CreateCase tagged pending-customer-response, linked to booking.id with complaint.details and proposed remedy.type
CRM.UpdateCustomerRecord with case.id and follow-up flag
SendEmail to customer.email with case summary, proposed remedy, and contact instructions
- Customer returns and accepts remedy confirmed →process-remedy
- Customer returns and escalates dissatisfied →escalation-human
Resolution & Close
CaseManagement.CloseCase for case.id with resolution status
CRM.UpdateCustomerRecord with resolved status and remedy applied
LoyaltyPlatform.LogInteraction for customer.loyaltyNumber tagged complaint-resolved

Complaint Escalation — Telecom
Intake and Verification
CRM.LookupAccount using customer.accountNumber or customer.name
- Identity verified successfully CRM.PullComplaintHistory →complaint-history-review
- Identity cannot be verified after two attempts →identity-escalation
- Customer is immediately hostile or threatening frustrated →de-escalation
Complaint History Review
CRM.GetAccountSummary to load customer.accountNumber, complaint.history, and complaint.compensationOffered
CaseManagement.SearchByAccount to find any existing ticket linked to complaint.priorTicketId
- Prior ticket found CaseManagement.OpenCase with complaint.priorTicketId →complaint-confirmation
- No prior ticket found →new-case-creation
- Customer references regulatory body or legal action legal_threat →regulatory-legal-routing
New Case Creation
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, complaint.compensationOffered
- Case created successfully →complaint-confirmation
- System unavailable system_down →system-unavailable-fallback
Complaint Confirmation
- Customer confirms details are correct confirmed →escalation-routing
- Customer adds new information or corrects details update_needed CaseManagement.UpdateCase with revised notes →escalation-routing
- Customer becomes highly distressed or makes a regulatory reference legal_threat →regulatory-legal-routing
- Customer demands supervisor immediately supervisor_demand →escalation-routing
Escalation Routing
EscalationRouting.IdentifyTeam using complaint.servicesAffected, complaint.nature, and customer.accountNumber to assign case.escalationTeam and case.responseTimeline
CaseManagement.UpdateCase with case.escalationTeam, case.responseTimeline, full interaction notes, and complaint.compensationOffered
CommsLog.RecordInteraction with customer.accountNumber, case.id, and channel details
- Standard priority confirmed →escalation-acknowledgement
- Upgrade to high priority warranted high_priority EscalationRouting.UpgradePriority →escalation-acknowledgement
- Business or critical infrastructure account identified critical_account EscalationRouting.UpgradePriority →escalation-acknowledgement
Escalation Acknowledgement
- Approved and owner assigned approved CaseManagement.UpdateCase →customer-close-out
- Rejected or reassignment needed rejected EscalationRouting.IdentifyTeam →escalation-routing
- No response within 20 minutes →escalation-human
Customer Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id, case.escalationTeam, and case.responseTimeline
BillingPlatform.NoteAccount with escalation flag and case.id
- Customer is satisfied and has no further questions confirmed →resolution-close
- Customer requests additional credit or compensation →compensation-review
- Customer remains unsatisfied and escalates further frustrated →escalation-human
Compensation Review
kb.compensation-credit-policy — check eligibility based on complaint.servicesAffected, outage duration, and complaint.compensationOffered
- Credit within policy limits approved approved BillingPlatform.ApplyCredit →customer-close-out
- Credit exceeds policy limit needs_approval →escalation-human
- Prior credit already granted, none applicable ineligible →customer-close-out
De-escalation
kb.de-escalation-guidelines — apply language and pacing guidance for hostile or distressed callers
- Customer settles enough to continue confirmed →intake-and-verification
- Customer remains hostile or uses threatening language hostile CommsLog.FlagInteraction for supervisor review →escalation-human
- Customer mentions regulatory body or legal action legal_threat →regulatory-legal-routing
Regulatory and Legal Routing
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, and legal or regulatory flag
CommsLog.FlagInteraction with legal_regulatory tag and case.id
EscalationRouting.RouteToCompliance with case.id and full case context
- Compliance or legal team notified compliance_routed →regulatory-close-out
- Routing system unavailable system_down →system-unavailable-fallback
Regulatory Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id and compliance escalation notice
System Unavailable Fallback
CommsLog.ManualNoteEntry with customer.name, customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, and timestamp
- Manual log completed, systems expected to restore shortly →resolution-close
- Systems remain down and customer needs immediate escalation →escalation-human
Escalation to Human Agent
EscalationRouting.PageSupervisor with case.id, customer.accountNumber, complaint.nature, and urgency flag
CommsLog.FlagInteraction with supervisor_required tag
Slack.Notify to #escalations-live with case summary, customer.accountNumber, and case.id
Identity Escalation
CRM.SendVerificationLink to contact details on file
- Customer verifies via link and calls back →intake-and-verification
- Customer unable or unwilling to verify →escalation-human
Resolution Close
CaseManagement.UpdateCase with resolved_handoff status and final interaction notes
CommsLog.CloseInteraction with customer.accountNumber and case.id

Complaint Escalation — Insurance
Intake and Greeting
- Customer is calm or moderately frustrated neutral →identity-verification
- Customer is highly distressed, upset, or using strong escalation language distressed →empathy-protocol
- Customer explicitly mentions the ombudsman, legal action, or litigation legal_threat →regulatory-flag
Empathy Protocol
- Customer settles and is willing to continue confirmed →identity-verification
- Customer demands to speak with a manager immediately escalation_request →escalation-human
- Customer remains highly distressed and conversation cannot progress unresolvable →escalation-human
Regulatory Flag
ComplaintsManagementSystem.SetPriorityFlag on case.existingId with tag regulatory-legal-threat
- Continue to identity verification →identity-verification
Identity Verification
IdentityVerification.Verify using policy.number and policy.holderId
- Identity verified successfully verified →complaint-capture
- Identity cannot be verified after two attempts unverified →unverified-complaint-log
- Customer refuses to provide verification details refused →unverified-complaint-log
Complaint Capture
PolicyAdministrationSystem.GetRecord for policy.number
CRM.GetCustomerProfile for policy.holderId
CaseManagement.SearchExistingCases using policy.number and claim.referenceNumber
- Existing open case found matching this complaint duplicate →duplicate-case-update
- No existing case found, proceed to log new complaint no_duplicate →complaint-classification
- Complaint involves a protected or vulnerable customer flag customer.vulnerableFlag →vulnerable-customer-handling
Vulnerable Customer Handling
CRM.SetVulnerableFlag on policy.holderId
ComplaintsManagementSystem.SetPriorityFlag with tag vulnerable-customer
- Customer confirms preferred contact method, continue to classification →complaint-classification
- Customer requests specialist support or senior handler →escalation-human
Complaint Classification
- Classification complete, no escalation triggers identified classified →complaint-logging
- Classification reveals regulatory or legal risk not yet flagged legal_threat →regulatory-flag
- Classification reveals vulnerable customer indicator not yet flagged vulnerable →vulnerable-customer-handling
Duplicate Case Update
CaseManagement.UpdateCase on case.existingId with complaint.description and complaint.date
CRM.AddInteractionNote for policy.holderId with summary of call and updated complaint details
- Update complete, confirm timeframes with customer →regulatory-timeframe-confirmation
Complaint Logging
ComplaintsManagementSystem.CreateComplaint with policy.number, customer.name, complaint.description, complaint.category, complaint.date, claim.referenceNumber
CRM.AddInteractionNote for policy.holderId linking complaint.referenceNumber and complaint.category
- Complaint logged, proceed to confirm response timeframes →regulatory-timeframe-confirmation
Regulatory Timeframe Confirmation
kb.regulatory-response-timeframes — retrieve applicable acknowledgment and resolution deadlines based on complaint.category
- Customer has nothing further to add confirmed →resolution-confirmation
- Customer raises an additional concern or asks a follow-up question further_query →complaint-capture
- Customer requests a callback from a senior handler escalation_request →escalation-human
Unverified Complaint Log
ComplaintsManagementSystem.CreateUnverifiedComplaint with complaint.description, complaint.date, and a note that identity verification is pending
CRM.AddUnverifiedInteractionNote with complaint.description
- Unverified log complete →resolution-confirmation
Escalation to Human Agent
ComplaintsManagementSystem.SetPriorityFlag on complaint.referenceNumber with tag senior-handler-required
CRM.AddInteractionNote for policy.holderId with reason for escalation
CaseManagement.AssignToSeniorHandler and notify agent.seniorHandlerEmail
Resolution Confirmation
CRM.CloseInteraction for policy.holderId with outcome logged and complaint.referenceNumber attached

Complaint Escalation
Greeting & Acknowledgement
- Customer provides details calmly or with mild frustration neutral →identity-verification
- Customer is immediately hostile or uses escalation language ("speak to a manager", "unacceptable") escalation_language →pre-escalation-check
- Customer is highly distressed or emotional frustrated →empathy-bridge
Empathy Bridge
- Customer settles and is willing to continue →identity-verification
- Customer continues to demand a manager or escalate escalation_language →pre-escalation-check
Identity Verification
CRM.LookupCustomer using customer.accountId or order.id
ContactHistory.GetLog for customer.accountId to retrieve prior contact history on this issue
- Customer identity and order verified successfully verified →complaint-review
- Identity or order cannot be verified unverified →proof-request
Proof Request
- Alternate proof provided and accepted verified →complaint-review
- Customer cannot provide any proof unverified →policy-exception-flag
- Customer becomes agitated or refuses frustrated →empathy-bridge
Complaint Review
OrderManagement.GetOrderDetails for order.id including order.value, order.date, and item details
ContactHistory.GetLog to confirm complaint.nature and complaint.date and any previous resolution attempts
- Complaint relates to a product defect or damage product_issue →remedy-assessment
- Complaint relates to a missing, late, or incorrect order fulfilment_issue →remedy-assessment
- Complaint relates to a service or staff experience service_issue →remedy-assessment
- Complaint involves a potential safety or legal concern safety_legal →escalation-supervisor
Remedy Assessment
- Remedy identified within policy and agent authority remedy_ready →remedy-offer
- Order value or complexity exceeds agent authority threshold authority_exceeded →escalation-supervisor
- Issue falls outside return or compensation policy out_of_policy →policy-exception-flag
Remedy Offer
- Customer accepts the remedy accepted →resolution-logging
- Customer rejects the remedy and gives a reason rejected →alternative-remedy-offer
- Customer demands a manager explicitly escalation_language →pre-escalation-check
Alternative Remedy Offer
- Customer accepts the alternative remedy accepted →resolution-logging
- Customer rejects the alternative remedy as well rejected →pre-escalation-check
- Customer demands a manager escalation_language →pre-escalation-check
Pre-Escalation Check
- Customer language is abusive or threatening abusive →conduct-warning
- Customer is demanding escalation but not abusive escalation_language →escalation-supervisor
- Two remedy offers have been refused remedies_exhausted →escalation-supervisor
Conduct Warning
- Customer agrees and calms down neutral →remedy-offer
- Customer continues to use abusive language abusive →escalation-conduct
Policy Exception Flag
CRM.UpdateCase with complaint.nature, order.id, and exception request details
RefundCompensationTool.FlagException tagged policy-exception, linked to order.id
- Approved approved →remedy-offer
- Rejected rejected →escalation-supervisor
- No response within 30 min timeout →escalation-supervisor
Escalation to Supervisor
CRM.UpdateCase with full complaint summary, remedy.offered, remedy.alternative, contact.history, and escalation reason
SupervisorQueue.Assign priority: high, tagged complaint-escalation, linked to order.id
Escalation — Conduct Transfer
CRM.UpdateCase with complaint.nature, contact.history, and conduct flag
SupervisorQueue.Assign priority: high, tagged conduct-escalation, linked to customer.accountId
Resolution Logging
RefundCompensationTool.ApplyRemedy for order.id with agreed remedy details
CRM.UpdateCase with complaint.nature, remedy applied, and resolution status: closed
ContactHistory.LogResolution for customer.accountId with outcome summary
- Customer has further queries →greeting-acknowledgement
- Customer is satisfied and done confirmed →resolution-complete
Resolution Complete
CRM.UpdateCase status: resolved, satisfaction: confirmed

Complaint / Feedback Intake
Intake Greeting
- Patient provides name and date of birth →identity-verification
- Patient declines to provide identifying information →unverified-caller
- Patient immediately expresses significant distress →distressed-patient
Identity Verification
EHR.LookupPatient using patient.name and patient.dob
- Identity confirmed, patient record located in EHR verified →complaint-type-triage
- Identity cannot be confirmed after two attempts unverified →unverified-caller
- Patient becomes distressed during verification →distressed-patient
Complaint Type Triage
- Patient describes a potential safety event, clinical harm, abuse, or neglect safety-incident →safety-escalation
- Patient explicitly requests a patient advocate or administrator requests-advocate →escalation-human
- Patient describes a complaint about care quality, provider conduct, facility, or billing complaint →complaint-intake
- Patient is sharing positive or general feedback positive-feedback →commendation-intake
- Patient becomes emotionally distressed at any point distressed →distressed-patient
Distressed Patient
- Patient is ready to continue after acknowledgment ready →complaint-type-triage
- Patient remains highly distressed and requests to speak with someone senior requests-advocate →escalation-human
- Patient discloses a safety concern or harm during this exchange safety-incident →safety-escalation
Complaint Intake
EHR.GetPatientContext for patient.id to pre-populate known provider and visit history
- All key details collected — date, provider or department, nature, preferred contact →complaint-logging
- Patient cannot recall specific date or provider →complaint-logging
- Patient discloses details suggesting clinical harm or a safety event during intake safety-incident →safety-escalation
- Patient becomes distressed during intake →distressed-patient
Complaint Logging
GrievanceManagement.CreateCase with patient.id, patient.name, patient.dob, complaint.date, complaint.nature, complaint.provider, complaint.department, patient.preferredContact, case.priority
CRM.UpdatePatientRecord with case reference and feedback.type tagged as complaint
- Patient has no further questions →resolution-acknowledgment
- Patient raises an additional complaint or concern →complaint-intake
- Patient raises a safety concern at this stage safety-incident →safety-escalation
- Patient requests to speak with a patient advocate requests-advocate →escalation-human
Commendation Intake
CRM.LogFeedback with patient.id, patient.name, feedback.type tagged as commendation, and complaint.provider or complaint.department if provided
- Patient has nothing further to add →resolution-acknowledgment
- Patient also has a complaint to raise →complaint-intake
Unverified Caller
kb.patient-complaint-submission-policy — confirm current written complaint and in-person intake options
- Patient accepts alternative options and ends the call →resolution-acknowledgment
- Patient becomes distressed about inability to proceed →distressed-patient
- Patient discloses a safety concern despite being unverified safety-incident →safety-escalation
Safety Escalation
RiskReporting.CreateIncident tagged high-priority with patient.name, patient.dob, patient.id if verified, complaint.nature, complaint.date, complaint.provider, complaint.department
GrievanceManagement.CreateCase with case.priority set to high and flagged for clinical risk management review
SecureMessaging.NotifyClinicalRiskTeam with incident summary and complaint.referenceNumber
Escalation to Human Agent
CRM.UpdatePatientRecord with escalation flag and case summary
SecureMessaging.NotifyPatientAdvocate with patient.name, patient.id if verified, complaint.nature, and preferred contact patient.preferredContact
Resolution Acknowledgment

Claims Intake
Welcome & Policy Lookup
PolicyManagement.LookupPolicy using policy.number or customer.name
- Policy record found, status active →identity-verification
- Policy record found, status lapsed or expired →lapsed-policy
- Policy record not found after two attempts →escalation-human
- System unavailable CRM.LogInteraction with caller details →system-unavailable
Identity Verification
IdentityVerification.Verify using policy.number and provided identifiers
- Identity verified on first or second attempt →loss-details-collection
- Identity not verified on primary identifiers →secondary-identity-check
Secondary Identity Check
IdentityVerification.VerifySecondary using policy.number
- Identity verified with secondary identifiers →loss-details-collection
- Identity still unverified identity_failed →escalation-human
Loss Details Collection
- Customer provides loss date, location, and description →damages-and-injuries-check
- Customer is distressed or mentions injuries or fatalities →escalation-complex-loss
Damages & Injuries Check
- Customer reports injuries, fatality, or catastrophic loss high_severity →escalation-complex-loss
- Customer mentions intent to involve legal counsel legal_intent →escalation-complex-loss
- No injuries, damages appear routine →coverage-check
Coverage Check
kb.coverage-rules — verify loss.type falls within policy.coverageType scope and that loss.date is within the active policy period
- Coverage confirmed active and loss type within scope coverage_confirmed →claim-record-creation
- Loss type appears potentially excluded or ambiguous coverage_ambiguous →flagged-adjuster-review
- Policy was not active on loss.date coverage_inactive →lapsed-policy
Claim Record Creation
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type
CRM.UpdateContact with customer.preferredContact and claim reference
ClaimsManagement.GetClaimID -> claim.id
- Claim record created successfully claim_created →claim-confirmation
- System error during claim creation system_error →system-unavailable
Claim Confirmation
CRM.SendConfirmation to customer.email or customer.phone with claim.id and next-steps summary
- Customer has additional questions →claim-next-steps
- Customer is satisfied, no further questions →resolution
Claim Next Steps
kb.claims-process-guide — retrieve adjuster contact timeline, documentation requirements, and repair/replacement process for policy.coverageType
- Customer satisfied →resolution
- Customer wants to add more details to the claim ClaimsManagement.UpdateClaim →claim-confirmation
- Customer requests escalation →escalation-human
Flagged for Adjuster Review
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type, flag: coverage_review_required
ClaimsManagement.GetClaimID -> claim.id
CRM.UpdateContact with customer.preferredContact and claim reference
CRM.SendConfirmation to customer.email or customer.phone with claim.id and review-pending notice
→resolution
Lapsed Policy
kb.reinstatement-options — retrieve available reinstatement paths for policy.coverageType
- Customer wants reinstatement information CRM.LogInteraction tag: reinstatement-interest →escalation-human
- Customer acknowledges and ends interaction →resolution
System Unavailable
CRM.LogManualClaimDetails with customer.name, customer.phone, customer.email, loss.date, loss.location, loss.description, loss.damages, loss.type, policy.number, flag: manual_follow_up_required
- Customer accepts and ends interaction →resolution
- Customer is dissatisfied and requests immediate escalation →escalation-human
Escalation — Complex or High-Severity Loss
CRM.LogInteraction with full loss details, flag: high_severity
ClaimsManagement.CreatePriorityAlert with loss.description, loss.injuries, policy.number
Escalation to Human Agent
CRM.LogInteraction with full context, flag: human_review_required
Resolution

Claim Status Inquiry
Intake and Verification
CRM.LookupCustomer using customer.fullName and policy.number
IdentityVerification.Verify using customer.dateOfBirth or customer.ssnLast4 against policy.number
- Identity verified successfully verified →claim-record-lookup
- Identity verification fails or information does not match unverified →identity-failure
- Customer mentions legal action, complaint, or attorney representation escalation-intent →escalation-special-handling
Claim Record Lookup
ClaimsManagementSystem.GetClaim using claim.number or claim.dateOfLoss and policy.number
- Claims system returns record successfully →claim-triage
- Claims system is unavailable or returns an error system-down →system-unavailable
Claim Triage
- claim.litigationFlag or claim.attorneyFlag or claim.specialHandlingFlag is set special_handling →escalation-special-handling
- claim.fatalityFlag or major injury indicator is set major_injury →escalation-special-handling
- Claim status is denied denied →denial-status
- Claim status is approved, paid, under review, received, or closed standard_status →standard-status-delivery
Standard Status Delivery
PolicyAdministrationSystem.GetOutstandingItems for claim.number
- Outstanding action items exist for the customer items_outstanding →outstanding-items-review
- No outstanding items and claim is closed or paid →resolution-and-close
- No outstanding items and claim is still in progress →resolution-and-close
Outstanding Items Review
kb.claims-outstanding-items-guide — reference for explaining document or action requirements to policyholders
CRM.LogInteraction with claim.number, customer.fullName, outstanding items noted, preferred contact customer.preferredContact
- Customer requests follow-up summary TicketingPlatform.SendSummary to customer.preferredContact →resolution-and-close
- Customer has no further requests →resolution-and-close
Denial Status
kb.claims-appeals-process — retrieve current appeals eligibility window, required forms, and submission instructions
CRM.LogInteraction with claim.number, denial reason claim.denialReasonCode, appeals information provided
- Customer wants appeals information explained →appeals-guidance
- Customer expresses intent to file complaint or legal action escalation-intent →escalation-special-handling
- Customer declines appeals information and has no further questions →resolution-and-close
Appeals Guidance
kb.claims-appeals-process — confirm deadlines, required forms, and submission address or portal link
TicketingPlatform.SendAppealInstructions to customer.preferredContact with claim.number
CRM.LogInteraction with claim.number, appeals guidance provided, instructions sent to customer.preferredContact
- Customer has additional questions →resolution-and-close
- Customer has no further questions →resolution-and-close
Identity Failure
IdentityVerification.SendSecureLink to customer.preferredContact
CRM.LogInteraction with policy.number, identity verification failed, secure link sent
System Unavailable
TicketingPlatform.CreateInquiry with customer.fullName, policy.number, claim.number, claim.dateOfLoss, customer.preferredContact — generate ticket.referenceNumber
CRM.LogInteraction with ticket.referenceNumber, system unavailability noted, callback committed
Escalation — Special Handling
TicketingPlatform.CreatePriorityCase with customer.fullName, policy.number, claim.number, claim.specialHandlingFlag, claim.litigationFlag, claim.fatalityFlag, claim.attorneyFlag, escalation reason noted
CRM.LogInteraction with claim.number, escalation to special handling team, reason flagged
- Handoff package complete and specialist team notified escalation_ready →escalation-human
Escalation to Human Specialist
CRM.UpdateCase priority: high, assigned to claims-special-handling-team, ticket.referenceNumber noted
Resolution and Close
CRM.LogInteraction with claim.number, inquiry resolved, status communicated, no further action required
- Customer has additional questions or a new topic →intake-and-verification
- Customer confirms no further questions — interaction complete

Check-in / Check-out Assistance
Contact & Intent Capture
- Guest says checking in intent-checkin →reservation-lookup-checkin
- Guest says checking out intent-checkout →reservation-lookup-checkout
- Guest mentions a problem or issue intent-issue →reservation-lookup-checkin
- Intent is unclear unclear →clarify-intent
Clarify Intent
- Guest clarifies check-in intent-checkin →reservation-lookup-checkin
- Guest clarifies check-out intent-checkout →reservation-lookup-checkout
- Still unclear after two attempts still-unclear →escalation-human
Reservation Lookup — Check-in
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, arrival date matches reservation.arrivalDate →identity-verification
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Lookup — Check-out
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, departure date matches reservation.departureDate →folio-review
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Not Found
PMS.SearchByNameAndDate using guest.fullName and reservation.arrivalDate
CRM.LookupGuestProfile using guest.email or guest.loyaltyId
- Reservation found by name and date search →identity-verification
- Reservation appears to be a third-party booking third-party-booking PMS.RequestThirdPartyImport for booking.thirdPartySource →third-party-import-pending
- No reservation found after all searches →escalation-human
Third-Party Import Pending
- Guest agrees to wait, import completes successfully →identity-verification
- Guest prefers callback or notification CRM.CreateCallback for guest.phone or guest.email →resolution-pending-notification
- Import fails after retry import-failed →escalation-human
Identity Verification
IDVerification.VerifyGuest using guest.fullName, guest.loyaltyId, and reservation.confirmationNumber
- Identity verified successfully identity-verified →room-readiness-check
- Identity cannot be verified after two attempts identity-failed →escalation-human
Room Readiness Check
PMS.CheckRoomStatus for reservation.roomType and reservation.specialRequests
- Room is ready and assigned room.number is available room-ready →room-assignment-confirm
- Room is not yet ready room-not-ready →room-not-ready-options
- No room available due to overbooking overbooked →escalation-human
Room Assignment Confirmation
DigitalKeySystem.IssueKey for room.number linked to guest.email or guest.phone
CRM.UpdateGuestProfile with check-in timestamp and room.number
PMS.RecordCheckIn for reservation.confirmationNumber
- Guest has additional requests additional-requests →special-requests-handling
- Guest is satisfied and done satisfied →resolution-checkin-complete
Room Not Ready — Options
- Guest requests luggage storage PMS.ArrangeLuggageStorage for guest.fullName →ready-room-alert-setup
- Guest requests lounge access PMS.GrantLoungeAccess for guest.loyaltyId →ready-room-alert-setup
- Guest wants notification only →ready-room-alert-setup
- Guest is frustrated or insists on immediate room frustrated →escalation-human
Ready-Room Alert Setup
PMS.SetReadyRoomAlert for reservation.confirmationNumber, notify via guest.phone or guest.email
- Guest has further needs additional-requests →special-requests-handling
- Guest is happy to wait satisfied →resolution-pending-notification
Special Requests Handling
PMS.UpdateSpecialRequests for reservation.confirmationNumber with reservation.specialRequests
CRM.LogGuestPreference for guest.loyaltyId
- Request logged successfully, guest is satisfied →resolution-checkin-complete
- Request cannot be fulfilled, requires manager input →escalation-human
Folio Review
BillingSystem.GenerateFolio for reservation.confirmationNumber
BillingSystem.SendItemizedFolio to guest.email with folio.itemizedUrl
- Guest confirms all charges are correct confirmed →checkout-processing
- Guest has a question about a charge question →folio-explanation
- Guest disputes a charge dispute →charge-dispute
Folio Explanation
kb.billing-policy — review applicable rate, tax, and incidental policies
- Guest accepts the explanation confirmed →checkout-processing
- Guest still disputes after explanation still-disputes →charge-dispute
Charge Dispute
- Dispute is valid and within adjustment authority adjustment-approved BillingSystem.ApplyAdjustment for dispute.amount →checkout-processing
- Dispute is valid but exceeds adjustment authority exceeds-authority →escalation-human
- Dispute is not supported by policy dispute-denied →dispute-denial-explanation
Dispute Denial Explanation
- Guest accepts and wants to proceed accepted →checkout-processing
- Guest wants escalation wants-escalation →escalation-human
Check-out Processing
BillingSystem.SettleFolio for reservation.confirmationNumber
PMS.RecordCheckOut for reservation.confirmationNumber
DigitalKeySystem.DeactivateKey for room.number
CRM.UpdateGuestProfile with check-out timestamp and stay summary
- Guest has feedback or further questions feedback →post-stay-feedback
- Guest is satisfied and done satisfied →resolution-checkout-complete
Post-Stay Feedback
CRM.LogFeedback for guest.loyaltyId and reservation.confirmationNumber
- Feedback logged, guest is done →resolution-checkout-complete
- Guest raises a serious concern or complaint serious-complaint →escalation-human
Outside Hours — Self-Service or On-Call
PMS.CheckSelfServiceKioskAvailability
- Self-service kiosk is available and guest agrees kiosk-ready DigitalKeySystem.IssueKioskKey for reservation.confirmationNumber →room-assignment-confirm
- Guest prefers on-call staff or kiosk is unavailable →escalation-human
Escalation to Human Agent
CRM.CreateUrgentCase for guest.fullName, reservation.confirmationNumber, and reason for escalation
PMS.FlagReservation with escalation status
Resolution — Check-in Complete
Resolution — Check-out Complete
Resolution — Pending Notification

Card Lost / Stolen Replacement
Intake
- Customer confirms card is lost confirmed →identity-verification
- Customer mentions unauthorized charges or suspected fraud fraud_concern →identity-verification-fraud
- Customer is unresponsive or unclear →identity-verification
Identity Verification
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes on first or second attempt verified →card-block
- Verification fails after multiple attempts failed →verification-failure
Identity Verification — Fraud Path
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes verified →card-block-fraud
- Verification fails after multiple attempts failed →verification-failure
Card Block
CardManagement.BlockCard for card.id
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked
Salesforce.CreateCase type: card-lost-stolen, linked to account.id
- Customer provides last seen details →address-confirmation
- Customer cannot recall details →address-confirmation
Card Block — Fraud Path
CardManagement.BlockCard for card.id
FraudDetection.FlagAccount on account.id tagged: unauthorized-transactions
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked-fraud
Salesforce.CreateCase type: fraud-card-lost-stolen, priority: high, linked to account.id
- Proceed to address confirmation for replacement →address-confirmation-fraud
Address Confirmation
- Customer confirms existing address confirmed →replacement-issuance
- Customer requests a new or different address new_address →address-review
Address Confirmation — Fraud Path
- Customer confirms existing address confirmed →replacement-issuance-fraud
- Customer requests a new or different address new_address →address-review
Address Review
Salesforce.UpdateCase add: unrecognized-replacement-address, replacement.address, flagged-for-review
ShippingFulfillment.HoldOrder pending address verification on account.id
- Address approved approved →replacement-issuance
- Address flagged or rejected rejected →escalation-human
Replacement Issuance
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited
- Customer accepts standard delivery standard →replacement-standard
- Expedited requested but not eligible expedited →replacement-standard
Replacement Issuance — Fraud Path
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited-fraud
- Customer accepts standard delivery standard →replacement-standard-fraud
Replacement — Standard
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines digital card →resolution
Replacement — Expedited
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines →resolution
Replacement — Standard (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
→escalation-fraud
Replacement — Expedited (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
→escalation-fraud
Digital Card Offer
- Digital card provisioned successfully provisioned →resolution
- Customer not eligible or provisioning fails ineligible →resolution
Verification Failure
Salesforce.CreateCase type: identity-verification-failure, priority: high, linked to account.id
Salesforce.LogNote add: customer-directed-to-branch, verification-failed
- Customer wants branch info →escalation-human
- Customer ends interaction →resolution-no-action
Escalation — Fraud Team
FraudDetection.OpenDisputeCase linked to account.id, flagged: unauthorized-transactions, transaction.unauthorized_flag
Salesforce.UpdateCase priority: high, tagged: fraud-escalation, dispute-opened
Slack.Notify to #fraud-ops with case summary, account.id, card.last4
Escalation — Human Agent
Salesforce.UpdateCase priority: high, tagged: manual-review-required
Slack.Notify to #card-services-review with case summary, account.id, customer.name
Resolution
Salesforce.CloseCase resolution: card-replaced, linked to account.id
Resolution — No Action Taken
Salesforce.CloseCase resolution: blocked-no-replacement-issued, linked to account.id

Cancellation Request
Intake & Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
PolicyManagement.LookupPolicy using policy.number
- Identity confirmed and policy found confirmed →reason-capture
- Identity cannot be confirmed after two attempts unverified →escalation-identity-failure
- Policy number not found or does not match customer record mismatch →escalation-identity-failure
Reason Capture
CRM.LogInteraction tag: cancellation-request, policy.number
- Customer states price is too high or service dissatisfaction price-or-service →retention-offer
- Customer states they are switching providers switching →active-claim-check
- Customer states coverage no longer needed coverage-not-needed →active-claim-check
- Any other stated reason other-reason →active-claim-check
Retention Offer
kb.retention-offers — check available discounts and coverage adjustment options for policy.type
- Customer is open to hearing options interested →present-retention-options
- Customer declines and confirms they want to cancel declines-retention →active-claim-check
Present Retention Options
- Customer accepts a retention offer and wants to keep the policy retained PolicyManagement.ApplyRetentionChange →retention-confirmed
- Customer hears the options and still wants to cancel still-cancelling →active-claim-check
Retention Confirmed
DocumentDelivery.SendEmail to customer.email with updated policy summary
Active Claim Check
PolicyManagement.CheckActiveClaims for policy.number
- No active claims found no-claims →effective-date-check
- Active claim found on policy active-claim →escalation-active-claim
Effective Date Check
PolicyManagement.ValidateCancellationDate using cancellation.requestedDate and policy.effectiveDate
kb.cancellation-backdating-rules — check whether backdating is permitted for policy.type
- Requested date is today or in the future date-valid →cancellation-terms-review
- Requested date is in the past and backdating is permitted per policy rules backdating-permitted →cancellation-terms-review
- Requested date is in the past and backdating is not permitted backdating-not-permitted →flag-backdating-issue
Flag Backdating Issue
- Customer accepts today's date or a future date accepts-new-date →cancellation-terms-review
- Customer disputes the backdating limitation and refuses disputes-backdating →escalation-fee-or-policy-dispute
Cancellation Terms Review
BillingPayments.GetOutstandingBalance for policy.number
BillingPayments.CalculateRefund for policy.number and cancellation.requestedDate
- Customer confirms and wants to proceed confirmed-terms →authorization-check
- Customer disputes the cancellation fee disputes-fee →escalation-fee-or-policy-dispute
- Customer wants to reconsider reconsider →reason-capture
Authorization Check
kb.cancellation-authorization-rules — check whether policy.type requires a licensed agent or supervisor to authorize
- Standard policy — no additional authorization required standard-auth →process-cancellation
- Policy type requires licensed agent or supervisor authorization requires-supervisor →escalation-supervisor-authorization
Process Cancellation
PolicyManagement.CancelPolicy policy: policy.number, effectiveDate: cancellation.requestedDate
BillingPayments.ProcessRefund amount: policy.refundAmount, to: customer.email
CRM.UpdateRecord tag: policy-cancelled, policy.number, cancellation.reason
DocumentDelivery.SendEmail to customer.email with cancellation confirmation and cancellation.confirmationNumber
→cancellation-complete
Cancellation Complete
CRM.LogInteraction tag: cancellation-complete, policy.number, cancellation.confirmationNumber
Escalation — Active Claim on Policy
CRM.LogInteraction tag: escalation-active-claim, policy.number, claim.id, claim.status
CRM.CreateCase priority: high, tag: cancellation-blocked-active-claim, policy.number
Escalation — Identity Failure
CRM.LogInteraction tag: identity-verification-failed, policy.number
Escalation — Fee or Policy Dispute
CRM.CreateCase priority: high, tag: cancellation-dispute, policy.number, cancellation.reason
CRM.LogInteraction tag: escalation-dispute, policy.number
Escalation — Supervisor Authorization Required
CRM.LogInteraction tag: escalation-supervisor-auth-required, policy.number, policy.type
CRM.CreateCase priority: normal, tag: supervisor-auth-cancellation, policy.number

Cancellation / Retention
Intent Capture
CRM.LookupAccount on customer.accountNumber
- Identity verified successfully verified →account-review
- Identity cannot be confirmed after two attempts →escalation-human
Account Review
CRM.GetAccountDetails to load account.planName, account.contractStatus, account.contractEndDate, account.tenure
BillingSystem.GetBalance to load account.outstandingBalance and account.paymentHistory
ContractManagement.GetETF to load account.etfAmount
- Customer cites cost or billing concern reason-cost →retention-offer
- Customer cites service quality or technical issue reason-service →complaint-resolution
- Customer cites competitor offer or plan comparison reason-competitor →retention-offer
- Customer cites relocation or life change reason-life-change →retention-offer
- Customer gives no specific reason or says "just want to cancel" reason-firm →etf-disclosure-check
Complaint Resolution
CRM.CreateCase tagged service-complaint, linked to customer.accountNumber
- Complaint is resolvable and customer is receptive →retention-offer
- Complaint is complex or customer remains frustrated unresolved_complaint →escalation-human
ETF Disclosure Check
ContractManagement.GetETF to confirm account.etfAmount and account.contractStatus
- Account is within contract and ETF applies etf_applies →etf-disclosure
- Account is out of contract or no ETF no_etf →retention-offer
ETF Disclosure
- Customer acknowledges ETF and still wants to proceed etf-acknowledged →retention-offer
- Customer disputes the ETF amount or asks for a waiver etf-disputed →escalation-human
- Customer is surprised and wants time to think etf-reconsidering →retention-offer
Retention Offer
RetentionOfferEngine.GetEligibleOffers for customer.accountNumber, filtered by cancellation.reason, account.tenure, account.paymentHistory
- Suitable offer identified offer_ready →present-offer
- No eligible offers found no_offer →outstanding-balance-check
Present Offer
- Customer accepts the offer offer-accepted →offer-acceptance
- Customer asks for something better or different offer-counter →secondary-offer
- Customer declines and still wants to cancel offer-declined →outstanding-balance-check
Secondary Offer
RetentionOfferEngine.GetEligibleOffers ranked by value, excluding retention.offerId already presented
- A second distinct offer exists second_offer_available →present-second-offer
- No further offers available no_further_offers →outstanding-balance-check
Present Second Offer
- Customer accepts offer-accepted →offer-acceptance
- Customer declines or remains firm offer-declined →outstanding-balance-check
Offer Acceptance
RetentionOfferEngine.ApplyOffer for customer.accountNumber with retention.offerId
CRM.UpdateAccount with retention outcome and retention.offerId applied
Twilio.SendSMS to customer.phone confirming offer details and retention.offerExpiry
Twilio.SendEmail to customer.email with full offer confirmation and updated plan summary
Outstanding Balance Check
BillingSystem.GetBalance to confirm account.outstandingBalance
- Outstanding balance exists on account balance_owing →balance-disclosure
- No outstanding balance balance_clear →process-cancellation
Balance Disclosure
- Customer wants to discuss payment or sort balance first balance-resolve →escalation-human
- Customer acknowledges and confirms they want to proceed with cancellation balance-acknowledged →process-cancellation
- Customer becomes frustrated or disputes the balance balance-disputed →escalation-human
Process Cancellation
CRM.InitiateCancellation for customer.accountNumber
BillingSystem.CalculateFinalBill to return transaction.finalBillDate and any remaining charges
ContractManagement.ApplyETF if etf_applies is set on this session
CRM.UpdateAccount with cancellation status and reason cancellation.reason
- ETF applies on this account etf_applies →cancellation-confirmation-etf
- No ETF on this account no_etf →cancellation-confirmation-clean
Cancellation Confirmation — ETF
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, account.etfAmount, and balance summary
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Cancellation Confirmation — Clean
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, and any final balance details
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to customer.accountNumber
CRM.AddNote with full session summary: cancellation.reason, offers presented, ETF status, balance status
Twilio.SendSMS to customer.phone: "We're connecting you with a specialist who can assist further."

Branch / ATM Locator & Appointment Booking
Greeting & Intent Capture
- Customer wants to find a branch or ATM find-location →location-capture
- Customer wants to book an appointment book-appointment →account-verification
- Customer mentions a complaint or requests a manager complaint →escalation-human
- Intent is unclear or mixed unclear →clarify-intent
Clarify Intent
- Customer clarifies location lookup find-location →location-capture
- Customer clarifies appointment booking book-appointment →account-verification
- Customer remains unclear or frustrated frustrated →escalation-human
Location Capture
MapsGeolocation.DetectLocation from session context if available
- Location detected automatically from session location-detected →location-results
- Customer provides ZIP code or city manually location-provided →location-results
- Customer cannot or will not provide location no-location →location-fallback
Location Fallback
- Customer provides a ZIP or city after all location-provided →location-results
- Customer is satisfied and done done →resolution
- Customer wants to book an appointment instead book-appointment →account-verification
Location Results
BranchATMLocator.Search using customer.zip or customer.city, return top 3 branches and nearest ATMs
BranchATMLocator.SurfaceResults including branch.name, branch.address, branch.hours, branch.distance, branch.status, and atm.address, atm.distance
- One or more branches show as temporarily closed branch-closed →closed-branch-handling
- Customer selects a branch and wants to book an appointment book-appointment →account-verification
- Customer is satisfied with location info only info-only →resolution
- Customer asks about accessibility or language services accessibility →accessibility-check
Closed Branch Handling
BranchATMLocator.GetUpdatedHours for branch.name, surface branch.hours and branch.status
BranchATMLocator.Search for next nearest open branch, surface branch.address and branch.distance
- Customer wants to book at the open alternative book-appointment →account-verification
- Customer satisfied with updated info info-only →resolution
- Customer frustrated or escalates frustrated →escalation-human
Accessibility Check
BranchATMLocator.FilterByAccessibility using customer.accessibilityNeeds and customer.languagePreference
- Accessible branch found and customer wants to book book-appointment →account-verification
- Accessible branch found and customer wants info only info-only →resolution
- No fully accessible branch available nearby no-accessible-branch →escalation-human
Account Verification
CRM.LookupCustomer using customer.phone or customer.email
- Existing customer confirmed account-verified →appointment-type-capture
- Customer is not an existing account holder no-account →non-account-holder-handling
- Unable to verify account status verification-failed →manual-account-check
Manual Account Check
CRM.LookupCustomer using customer.phone or customer.email
- Account found account-verified →appointment-type-capture
- Still unable to verify verification-failed →non-account-holder-handling
Non-Account Holder Handling
- Customer wants branch or ATM info only find-location →location-capture
- Customer interested in opening an account new-account →escalation-specialist
- Customer wants to book a general appointment anyway book-appointment →appointment-type-capture
Appointment Type Capture
- Customer requests a standard appointment type standard-appointment →datetime-capture
- Customer requests a specialized appointment such as mortgage, business banking, or wealth management specialist-appointment →escalation-specialist
- Customer describes a complaint or sensitive issue complaint →escalation-human
Date & Time Capture
AppointmentScheduler.CheckAvailability for appointment.type at branch.name on appointment.preferredDate at appointment.preferredTime
- Slot is available slot-available →appointment-confirmation
- Requested slot is unavailable slot-unavailable →offer-alternative-slot
- Branch has no availability on preferred date no-availability →offer-alternative-branch
Offer Alternative Slot
AppointmentScheduler.GetNextAvailable for appointment.type at branch.name
- Customer accepts the next available slot accepts-slot →appointment-confirmation
- Customer wants a different date or time different-datetime →datetime-capture
- Customer wants to try a different branch different-branch →offer-alternative-branch
Offer Alternative Branch
BranchATMLocator.Search for next nearest branch with availability for appointment.type on appointment.preferredDate
AppointmentScheduler.CheckAvailability at alternative branch
- Customer accepts alternative branch and slot accepts-slot →appointment-confirmation
- Customer wants to try yet another date or branch different-datetime →datetime-capture
- Customer frustrated or wants to escalate frustrated →escalation-human
Appointment Confirmation
AppointmentScheduler.BookAppointment for customer.email, appointment.type, appointment.preferredDate, appointment.preferredTime at branch.name
Twilio.SendSMS to customer.phone with confirmation details: appointment.confirmationNumber, branch.name, branch.address, appointment.preferredDate, appointment.preferredTime
Twilio.SendEmail to customer.email with the same confirmation details and a calendar invite attachment
- Customer has accessibility or special requirements accessibility →accessibility-check
- Customer is done done →resolution
- Customer wants to modify or cancel the appointment modify-appointment →appointment-modification
Appointment Modification
AppointmentScheduler.LookupAppointment using appointment.confirmationNumber
- Customer wants to reschedule reschedule →datetime-capture
- Customer wants to cancel cancel AppointmentScheduler.CancelAppointment for appointment.confirmationNumber →cancellation-confirmation
- Customer is unsure or has another question other →greeting-intent-capture
Cancellation Confirmation
Twilio.SendSMS to customer.phone confirming cancellation of appointment.confirmationNumber
Twilio.SendEmail to customer.email confirming cancellation
- Customer wants to rebook book-appointment →appointment-type-capture
- Customer is done done →resolution
Escalation to Specialist
CRM.CreateCase tagged specialist-appointment, linked to customer.email and appointment.type
AppointmentScheduler.RouteToAdvisor for appointment.type, surface available advisor and earliest slot
Twilio.SendEmail to customer.email with advisor contact information and next steps
- Customer has additional questions other →greeting-intent-capture
- Customer is satisfied done →resolution
Escalation to Human Agent
CRM.CreateCase priority: high, tagged branch-escalation, linked to customer.phone and customer.email
Resolution

Booking Modification
Verify Customer
CRM.LookupCustomer using customer.name and booking.reference
- Customer provides valid reference and name, identity confirmed verified →retrieve-booking
- Customer cannot provide reference or name fails to match →identity-not-found
- Customer mentions a group booking or multi-leg itinerary →escalation-complex-booking
Identity Not Found
CRM.LookupByContact using customer.email or customer.phone
- Record found and customer confirmed verified →retrieve-booking
- Still no match after second attempt →escalation-complex-booking
Retrieve Booking
ReservationSystem.GetBooking using booking.reference
LoyaltyDB.GetCustomerTier using customer.name to resolve customer.loyaltyTier
- Customer wants to change dates change-dates →check-date-availability
- Customer wants to change room or cabin type change-room-type →check-room-availability
- Customer wants to update passenger or guest name change-name →process-name-change
- Customer requests multiple changes at once multiple-changes →escalation-complex-booking
- Booking was made through a third party third-party-booking →third-party-advisory
Check Date Availability
AvailabilityEngine.CheckDates using booking.reference and change.newDates
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Requested dates are available and rate is modifiable available →review-fare-difference
- Requested dates are available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Requested dates are unavailable unavailable →suggest-alternative-dates
Suggest Alternative Dates
AvailabilityEngine.GetNearestAvailable using booking.reference to resolve availability.nearestDates
- Customer accepts an alternative date →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over and call back defer →wrap-up-no-change
Check Room Availability
AvailabilityEngine.CheckRoomType using booking.reference and change.newRoomType
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Room type available and rate is modifiable available →review-fare-difference
- Room type available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Room type unavailable unavailable →suggest-alternative-room
Suggest Alternative Room
AvailabilityEngine.GetAlternativeRooms using booking.reference
- Customer selects an alternative →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over defer →wrap-up-no-change
Review Fare Difference
PaymentProcessor.CalculateDifference using booking.reference, change.newDates, change.newRoomType to resolve fare.difference and fee.modification
- Customer accepts the cost and confirms confirmed →apply-modification
- Customer disputes the modification fee disputes-fee →fee-waiver-review
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer declines and wants to keep original booking keep-original →wrap-up-no-change
Fee Waiver Review
LoyaltyDB.GetCustomerTier using customer.name to confirm customer.loyaltyTier
kb.goodwill-waiver-policy — check eligibility based on customer.loyaltyTier and fee.modification
- Agent determines fee is auto-waivable under loyalty or goodwill policy auto-waiver →apply-modification
- Agent determines fee waiver requires supervisor sign-off needs-approval →waiver-approval
- Agent determines fee is not waivable and customer still disputes disputed →escalation-fee-dispute
Waiver Approval
- Approved approved CRM.LogWaiverGranted →apply-modification
- Rejected rejected →fee-waiver-declined
- No response in 20 min →escalation-fee-dispute
Fee Waiver Declined
- Customer agrees to pay the fee confirmed →apply-modification
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer wants to keep original booking keep-original →wrap-up-no-change
- Customer escalates and demands supervisor escalate →escalation-fee-dispute
Process Name Change
kb.name-change-policy — verify permissible name change rules for booking.rateType
- Minor spelling correction permitted under policy minor-correction →apply-modification
- Full name transfer or legal name change required →escalation-complex-booking
Apply Modification
ReservationSystem.UpdateBooking with booking.reference, change.newDates, change.newRoomType, change.newPassengerName, change.requestedDetail
PaymentProcessor.ChargeBalance using booking.paymentMethod for fare.difference and any approved fee.modification
CRM.UpdateRecord for customer.name with new booking details
NotificationService.SendConfirmation to customer.email and customer.phone with updated itinerary
- Customer has additional requests more-changes →retrieve-booking
- Customer is satisfied and done done →wrap-up-confirmed
Non-Modifiable Rate
kb.cancellation-refund-policy — review applicable refund terms for booking.rateType
- Customer wants to explore cancellation and refund cancel-request →cancellation-advisory
- Customer wants to check same-rate rebooking availability rebook →check-date-availability
- Customer wants to keep original booking keep-original →wrap-up-no-change
Cancellation Advisory
kb.cancellation-refund-policy — retrieve applicable terms for booking.rateType and booking.currentDates
- Customer confirms cancellation confirmed →escalation-cancellation-processing
- Customer changes mind and wants to keep booking keep-original →wrap-up-no-change
- Customer disputes refund terms and demands exception dispute →escalation-fee-dispute
Third-Party Advisory
- Customer understands and has no further questions done →wrap-up-no-change
- Customer disagrees and insists we process it anyway disputes →escalation-complex-booking
Wrap-Up — No Change Made
CRM.LogInteraction for customer.name with outcome: no modification made
Wrap-Up — Change Confirmed
CRM.LogInteraction for customer.name with outcome: modification successful
Escalation — Complex Booking
CRM.CreateCase priority: high, tagged complex-modification, linked to booking.reference
Slack.Notify to #reservations-complex with case summary, booking.reference, and customer.name
Escalation — Fee Dispute
CRM.CreateCase priority: high, tagged fee-dispute, linked to booking.reference
Slack.Notify to #reservations-supervisors with customer.name, booking.reference, fee.modification, and dispute summary
Escalation — Cancellation Processing
CRM.CreateCase priority: normal, tagged cancellation-request, linked to booking.reference
ReservationSystem.InitiateCancellation using booking.reference
NotificationService.SendCancellationSummary to customer.email with refund terms and timeline

Booking Cancellation / Refund Request
Identity Verification
CRM.LookupCustomer using customer.fullName and customer.email or customer.phone
- Customer record found and details match confirmed →booking-lookup
- Details provided do not match any record unrecognized →reverify-identity
- Customer is unable or unwilling to provide verification details refused →escalation-human
Re-verify Identity
CRM.LookupCustomer retry with alternate details
- Match found on second attempt confirmed →booking-lookup
- Still no match after second attempt unrecognized →escalation-human
Booking Lookup
ReservationManagement.GetBooking using booking.id
- Booking found and active confirmed →cancellation-policy-check
- Booking not found or ID invalid not_found →escalation-human
- Booking already cancelled already_cancelled →refund-status-check
Cancellation Policy Check
PolicyRulesEngine.GetCancellationPolicy for booking.id and booking.rateClass
- Booking is within the free-cancellation window free_cancel →confirm-cancellation-intent
- Booking is outside the free-cancellation window and fees apply fees_apply →outside-window-advisory
- Booking was made through a third-party OTA ota_booking →ota-redirect
Confirm Cancellation Intent
- Customer provides cancellation reason and confirms they want to proceed confirmed →process-cancellation
- Customer wants to change dates instead of cancelling date_change →escalation-human
- Customer is unsure and wants time to decide undecided →send-policy-summary
Send Policy Summary
NotificationService.SendEmail to customer.email with cancellation policy summary and free-cancellation deadline for booking.id
- Customer returns and confirms cancellation confirmed →process-cancellation
- Customer does not respond within 24 hours →escalation-human
Outside Window Advisory
kb.cancellation-policy — check fee waiver eligibility and alternative options for booking.rateClass
- Customer accepts the fee and wants to cancel accepted_fee →process-cancellation
- Customer wants to apply for a travel credit instead credit_preferred →process-travel-credit
- Customer cites extenuating circumstances such as medical or bereavement extenuating →extenuating-circumstances-review
- Customer disputes the fee and demands a waiver beyond advisory authority disputes_fee →escalation-human
Extenuating Circumstances Review
CRM.CreateCase tagged exception-review, linked to booking.id, reason: cancellation.reason
- Customer agrees to submit documentation doc_provided →flag-for-exception-review
- Customer cannot or will not provide documentation no_doc →escalation-human
Flag for Exception Review
CRM.UpdateCase with exception.documentType and submitted evidence
NotificationService.SendEmail to customer.email confirming exception review has been opened with case reference
- Exception review is opened and customer is notified →resolution-confirmation
Process Cancellation
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.InitiateRefund for refund.amount to booking.paymentMethod
CRM.UpdateRecord with cancellation details for customer.fullName
- Cancellation and refund initiated successfully success →send-confirmation
- System error prevents processing system_error →escalation-human
Process Travel Credit
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.IssueTravelCredit for refund.creditValue linked to customer.email
CRM.UpdateRecord with credit issuance details
- Credit issued successfully success →send-confirmation
- System error during credit issuance system_error →escalation-human
Send Confirmation
NotificationService.SendEmail to customer.email with cancellation confirmation, refund.amount or refund.creditValue, and refund.timeline
- Confirmation sent successfully →resolution-confirmation
Refund Status Check
PaymentProcessor.GetRefundStatus for refund.transactionId
- Refund has been issued and should have been received issued →refund-already-issued
- Refund is still processing processing →advise-refund-in-progress
- No refund record found not_found →escalation-human
Refund Already Issued
- Customer confirms refund has now been received confirmed →resolution-confirmation
- Customer still has not received the refund after the expected window not_received →escalation-finance
Advise Refund In Progress
NotificationService.SendEmail to customer.email with refund status and refund.transactionId
- Customer is satisfied and no further action needed →resolution-confirmation
- Customer requests further escalation escalation_requested →escalation-finance
OTA Redirect
kb.ota-partner-contacts — retrieve contact instructions and cancellation process for booking.otaSource
NotificationService.SendEmail to customer.email with OTA redirect instructions and booking reference details
- Customer acknowledges and will contact OTA directly →resolution-confirmation
- Customer is frustrated and requests direct escalation escalation_requested →escalation-human
Escalation to Finance Team
CRM.CreateCase priority: high, tagged refund-not-received, linked to refund.transactionId
NotificationService.NotifyTeam to #finance-escalations with customer.fullName, booking.id, refund.amount, and refund.transactionId
→resolution-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to booking.id
NotificationService.NotifyTeam to #reservations-support with customer.fullName, booking.id, and case summary
Resolution Confirmation

Billing Inquiry / Dispute
Greeting and Identity Verification
IdentityVerification.LookupAccount using customer.accountNumber or customer.phoneNumber
IdentityVerification.Verify using customer.pin, customer.dob, or customer.ssn4
- Identity verified successfully verified →inquiry-intake
- Identity verification fails after two attempts unverified →identity-failure
- Customer is unable to provide any credentials →identity-failure
Identity Failure
CaseManagement.LogContact note: identity verification failed, customer redirected
- Customer agrees to visit store or reset online →resolution-no-account-access
- Customer wants to escalate or is upset frustrated →escalation-human
Resolution — No Account Access
Inquiry Intake
CRM.PullAccount for customer.accountNumber, load customer.name, billing.previousCredits, billing.accountBalance
BillingSystem.FetchBillDetail for billing.cycleAffected
- Customer identifies a specific charge or line item →charge-review
- Customer is generally confused about the total bill amount →full-bill-walkthrough
- Customer mentions they never received a notification about a plan or rate change →plan-change-review
- Customer sounds upset or frustrated before details are gathered frustrated →emotional-acknowledgment
Emotional Acknowledgment
- Customer settles and is ready to continue neutral →inquiry-intake
- Customer remains highly agitated or begins demanding a supervisor escalating →escalation-human
Full Bill Walkthrough
BillingSystem.FetchBillDetail for billing.cycleAffected
kb.telecom-billing-line-item-guide — review standard line items, taxes, and surcharge descriptions
- Customer identifies a specific charge after walkthrough →charge-review
- Customer accepts the explanation confirmed →resolution-explained
- Customer remains confused or disputes a line →charge-review
Plan Change Review
BillingSystem.FetchPlanChangeHistory for customer.accountNumber
kb.telecom-plan-change-notification-policy — verify whether advance notice was required and sent
- Notification was sent and change was valid →charge-review
- No notification found and change was applied without notice notification-missing →error-confirmed
- Customer disputes they authorized the change →charge-review
Charge Review
BillingSystem.FetchChargeDetail for billing.chargeDate, billing.chargeDescription, billing.chargeAmount
kb.telecom-billing-policy — check overage rules, promo expiration terms, and adjustment eligibility
- Charge is valid and explainable →explanation-delivery
- Billing error confirmed error-confirmed →error-confirmed
- Charge is outside the 90-day policy adjustment window →outside-policy-window
- Usage or account pattern suggests possible fraud fraud-suspected →escalation-human
- Billing system is unavailable or returns an error system-down →billing-system-down
Explanation Delivery
kb.telecom-billing-policy — reference relevant policy language for promo expiration, overages, or rate changes
- Customer accepts the explanation confirmed →resolution-explained
- Customer disputes the explanation or asks for a supervisor unsatisfied →escalation-human
- Customer accepts but asks for a goodwill credit →goodwill-credit-evaluation
Error Confirmed
BillingSystem.FetchAccountBalance to confirm current billing.accountBalance and billing.previousCredits
- Error amount is within agent authorization threshold within-auth →credit-issuance
- Error amount exceeds agent.authLimit exceeds-auth →escalation-human
Outside Policy Window
kb.telecom-goodwill-credit-policy — check goodwill credit eligibility and authorized limit
- Customer accepts goodwill credit offer →goodwill-credit-evaluation
- Customer rejects and requests further escalation →escalation-human
Goodwill Credit Evaluation
- Goodwill credit is appropriate and within limits approved →credit-issuance
- Credit was already issued recently or customer is ineligible ineligible →escalation-human
Credit Issuance
CreditAdjustmentModule.IssueCredit for credit.amount, linked to customer.accountNumber and billing.cycleAffected
BillingSystem.FetchAccountBalance to confirm updated billing.accountBalance post-credit
CRM.LogInteraction note: credit of credit.amount issued, reason, billing cycle, and agent ID
- Customer is satisfied and has no further questions confirmed →resolution-credit-issued
- Customer has an additional question or concern →inquiry-intake
Billing System Down
CaseManagement.CreateCase priority: normal, note: billing inquiry pending system restoration, link customer.accountNumber
CaseManagement.GenerateReferenceNumber assign to case.referenceNumber
CRM.LogContact note: billing system unavailable, case created, reference case.referenceNumber
- Customer confirms callback or email preference →resolution-callback-scheduled
- Customer is upset about the delay frustrated →emotional-acknowledgment
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered, reason, dispute amount billing.chargeAmount, account customer.accountNumber
CaseManagement.CreateCase priority: high, linked to customer.accountNumber, billing.chargeDescription, billing.chargeAmount
Resolution — Charge Explained
CRM.LogInteraction note: billing inquiry resolved via explanation, no credit issued
Resolution — Credit Issued
CRM.LogInteraction note: billing dispute resolved, credit issued, customer confirmed satisfied
Resolution — Callback Scheduled
CRM.LogInteraction note: callback or email follow-up scheduled, system outage, reference case.referenceNumber

Billing / Statement Inquiry
Patient Greeting
- Patient provides all required identifiers →identity-verification
- Patient is unable or unwilling to provide identifiers →hipaa-decline
- Patient is clearly distressed or immediately demands a supervisor frustrated →escalation-human
Identity Verification
CRM.LookupPatient using patient.name, patient.dob, and patient.accountId
- All three identifiers match confirmed in system verified →inquiry-intake
- Partial match — one identifier missing or mismatched partial_match →identity-retry
- No matching record found no_match →hipaa-decline
Identity Retry
- Patient provides corrected identifiers CRM.LookupPatient →identity-verification
- Patient still cannot provide matching information →hipaa-decline
HIPAA Decline
CRM.LogInteraction note: identity verification failed, HIPAA protocol applied, no account data disclosed
Inquiry Intake
PatientBillingSystem.PullAccount using patient.accountId
- Patient identifies a specific charge or line item →charge-lookup
- Patient has a general question about their total balance →balance-explanation
- Patient reports they believe there is a billing error →billing-error-flag
- Patient disputes the clinical service itself was rendered or necessary →clinical-dispute
- Patient mentions possible fraud or identity theft suspected_fraud →escalation-human
Charge Lookup
PatientBillingSystem.GetChargeDetail for charge.lineItem on charge.dateOfService
InsuranceEligibilityClaims.GetClaimStatus using insurance.memberId and claim.id
EOBLookup.GetEOB for claim.id
- EOB received and processed, patient responsibility calculated eob_received →charge-explanation
- Claim submitted but EOB not yet issued — claim still pending claim_pending →pending-claim-advisory
- Claim was denied by insurer claim_denied →claim-denial-review
- Charge not found or appears duplicated charge_anomaly →billing-error-flag
Charge Explanation
kb.billing-patient-responsibility — reference plan benefit structure and cost-sharing explanation guidance
- Patient understands and accepts the explanation confirmed →payment-options
- Patient disagrees with the insurance calculation or wants to dispute the claim disputed →claim-denial-review
- Patient still has questions about the charge needs_clarification →charge-explanation-detail
Charge Explanation Detail
- Patient satisfied with detailed explanation confirmed →payment-options
- Patient remains unconvinced and wishes to dispute →claim-denial-review
- Patient becomes distressed frustrated →escalation-human
Balance Explanation
PatientBillingSystem.GetAccountSummary for patient.accountId
kb.billing-patient-responsibility — use for explaining deductible, copay, and coinsurance terms
- Patient understands the balance and wants to pay →payment-options
- Patient questions a specific line item on the account →charge-lookup
- Patient believes the total is incorrect →billing-error-flag
- Patient is unable to pay and asks about financial assistance kb.financial-assistance-programs →payment-options
Pending Claim Advisory
CRM.LogInteraction note: patient inquiry on pending claim claim.id, follow-up requested
CaseManagement.CreateCase type: pending-eob-followup, linked to claim.id, patient.accountId
- Patient is satisfied and wants no further action →resolution-close
- Patient wants to escalate because the claim has been pending an unusually long time frustrated →escalation-human
Claim Denial Review
InsuranceEligibilityClaims.GetDenialReason for claim.id
kb.claim-denial-codes — reference insurer denial code definitions and standard appeal pathways
- Denial is administrative or technical — can be corrected by rebilling admin_denial CaseManagement.CreateCase type: rebilling-request →billing-error-flag
- Denial is a coverage or clinical necessity issue requiring appeal clinical_denial →escalation-human
- Patient wishes to proceed independently and is satisfied with the information confirmed →resolution-close
Billing Error Flag
CaseManagement.CreateCase type: billing-review, priority: standard, linked to patient.accountId, charge.lineItem, charge.dateOfService
CRM.LogInteraction note: potential billing error flagged on charge.lineItem, case opened for specialist review
- Patient is satisfied and the case is documented →resolution-close
- Patient is not satisfied and demands immediate resolution frustrated →escalation-human
Clinical Dispute
CRM.LogInteraction note: patient disputes clinical service on charge.dateOfService, charge.description — routed to clinical review
CaseManagement.CreateCase type: clinical-dispute, priority: high, linked to patient.accountId, charge.dateOfService
- Patient acknowledges and accepts the routing →resolution-close
- Patient is distressed or requests immediate supervisor contact frustrated →escalation-human
Payment Options
kb.financial-assistance-programs — check eligibility criteria for charity care, sliding scale, or hardship plans
- Patient wants to pay now PaymentPortal.ProcessPayment using patient.accountId →payment-confirmation
- Patient wants to set up a payment plan PaymentPortal.CreatePaymentPlan using patient.accountId →payment-plan-setup
- Patient wants to apply for financial assistance CaseManagement.CreateCase type: financial-assistance-referral →resolution-close
- Patient declines to pay at this time and has no further questions →resolution-close
Payment Confirmation
PaymentPortal.ProcessPayment confirm transaction for patient.accountId, charge.amount
CRM.LogInteraction note: payment processed for charge.amount on account patient.accountId
- Patient has additional questions →inquiry-intake
- Patient is done →resolution-close
Payment Plan Setup
PaymentPortal.CreatePaymentPlan for patient.accountId
CRM.LogInteraction note: payment plan established for patient.accountId
- Patient confirms and is satisfied →resolution-close
- Patient has additional questions →inquiry-intake
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered — reason documented, all context preserved for handoff
CaseManagement.CreateCase type: escalation, priority: high, linked to patient.accountId, claim.id
CRM.TransferWithContext to billing-escalation-queue, include patient.accountId, claim.id, charge.lineItem, interaction summary
Resolution / Close
CRM.LogInteraction note: inquiry resolved, case closed
CaseManagement.CloseCase for case.id if open

Beneficiary / Policy Detail Update
Intake and Change Request
CRM.LookupPolicy using customer.fullName and customer.policyNumber
- Policy record found, proceed to verification →identity-verification
- Policy record not found or mismatch →policy-not-found
Policy Not Found
- Customer provides corrected details CRM.LookupPolicy retry →identity-verification
- Customer cannot locate their policy number →escalation-human
Identity Verification
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified on first or second attempt verified →change-type-collection
- First attempt fails, prompt retry retry →identity-retry
- Second attempt fails identity_failed →identity-lockout
Identity Retry
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified verified →change-type-collection
- Second attempt also fails identity_failed →identity-lockout
Identity Lockout
CRM.LogEvent tag: identity-verification-failure, policy: customer.policyNumber
CRM.CreateCase priority: high, tag: id-lockout-policy-change
- Customer requests written instructions CRM.SendEmail template: id-lockout-instructions to customer.email →escalation-human
- Customer declines →escalation-human
Change Type Collection
- Customer wants to update a beneficiary beneficiary-change →beneficiary-detail-collection
- Customer wants to update address, name, or contact info contact-or-name-change →contact-detail-collection
- Customer mentions a death in relation to the beneficiary change death-related →bereavement-sensitive-path
- Request involves a disputed beneficiary or legal document such as a court order legal-dispute →escalation-human
Beneficiary Detail Collection
PolicyAdmin.GetCurrentBeneficiary for customer.policyNumber
- New beneficiary details collected, no death involved →form-requirement-check
- Customer indicates they are removing a beneficiary following a death →bereavement-sensitive-path
Bereavement Sensitive Path
CRM.FlagCase tag: bereavement-sensitivity, policy: customer.policyNumber
- Customer has or will submit death certificate →form-requirement-check
- Customer cannot provide documentation at this time CRM.CreateFollowUpTask deadline: 30-days, policy: customer.policyNumber →pending-form-followup
Contact Detail Collection
PolicyAdmin.GetPolicyDetails for customer.policyNumber
- Customer provides the new detail clearly →direct-update-check
- Customer is changing their legal name, supporting documentation may be required →form-requirement-check
Direct Update Check
- Simple contact update, no form required no_form_needed →apply-direct-update
- Legal name or document-required change form_required →form-requirement-check
Form Requirement Check
kb.policy-change-requirements — check whether a wet signature, e-signature form, or supporting document is legally required for policy.changeType
- E-signature form is sufficient ESignature.SendForm template: change-of-beneficiary to customer.email →esignature-pending
- Wet signature or physical document required →wet-signature-required
- No form required, change can be processed directly →apply-direct-update
E-Signature Pending
ESignature.SendForm to customer.email, linked to customer.policyNumber
CRM.CreateFollowUpTask tag: esignature-pending, deadline: 7-days, policy: customer.policyNumber
- Customer confirms they received and completed the form →apply-direct-update
- Customer cannot complete the form now →pending-form-followup
- No response or form not returned within deadline CRM.EscalateTask →escalation-human
Wet Signature Required
DocumentManagement.GenerateForm template: beneficiary-change-form, policy: customer.policyNumber
CRM.SendEmail template: wet-signature-instructions, attachment: change-form to customer.email
CRM.CreateFollowUpTask tag: wet-signature-pending, deadline: 30-days, policy: customer.policyNumber
- Customer acknowledges and will return the form →pending-form-followup
- Customer cannot return the form within the deadline →pending-form-followup
Pending Form Follow-up
CRM.CreateFollowUpTask tag: pending-change-form, deadline: 30-days, policy: customer.policyNumber
CRM.SendEmail template: pending-change-reminder to customer.email
- Customer has additional questions →escalation-human
- Customer is satisfied →resolution-confirmed
Apply Direct Update
- Customer confirms the details are correct →save-policy-update
- Customer requests a correction →change-type-collection
Save Policy Update
PolicyAdmin.SaveChange policy: customer.policyNumber, change: update.newDetail
CRM.UpdateRecord policy: customer.policyNumber, tag: policy-detail-updated
DocumentManagement.LogChange policy: customer.policyNumber, agent: Insurance Support Agent
- Save successful save_success →confirmation-and-close
- System unavailable or save error system_down →system-unavailable
System Unavailable
CRM.CreateManualLog details: update.newDetail, policy: customer.policyNumber, tag: manual-change-request
CRM.GenerateCaseReference -> case.referenceNumber
CRM.ScheduleCallback within: 1-business-day, contact: customer.phone
→resolution-confirmed
Confirmation and Close
CRM.SendEmail template: policy-change-confirmation, policy: customer.policyNumber to customer.email
- Customer has another request →change-type-collection
- Customer is done →resolution-confirmed
Resolution Confirmed
CRM.CloseCase policy: customer.policyNumber, status: resolved
Escalation to Human Agent
CRM.CreateCase priority: high, tag: policy-change-escalation, policy: customer.policyNumber
CRM.NotifyTeam channel: #policy-ops-escalations, details: customer.policyNumber

Balance / Transaction Inquiry
Intake
- Customer asks about current balance balance-inquiry →identity-verification
- Customer asks about a specific transaction or unrecognized charge transaction-inquiry →identity-verification
- Customer immediately alleges fraud or unauthorized access fraud-allegation →escalation-fraud
- Intent unclear — ask a clarifying question, then →identity-verification
Identity Verification
OTPAuth.SendOTP to customer.phone
- Customer provides correct OTP verified IdentityVerification.Confirm →account-lookup
- Customer cannot receive OTP, offer security question fallback otp-failed →security-question-fallback
- Customer has already failed one attempt — verification.attemptCount equals 1 →second-attempt-warning
Second Attempt Warning
- Customer provides correct OTP on second try verified IdentityVerification.Confirm →account-lookup
- Customer fails again unverified →escalation-identity-failure
Security Question Fallback
IdentityVerification.FetchSecurityQuestion for customer.accountNumber
- Customer answers correctly verified IdentityVerification.Confirm →account-lookup
- Customer answers incorrectly unverified →escalation-identity-failure
Account Lookup
CoreBanking.GetAccountSummary for customer.accountNumber including account.status, account.balance, account.availableBalance, and customer.accountType
- Account returned successfully and status is active account-found →inquiry-routing
- Account has a hold, freeze, or legal flag on it account-flagged →escalation-account-flag
- System returns an error or times out lookup-error →system-error
Inquiry Routing
- Customer needs current balance confirmed balance-inquiry →balance-delivery
- Customer needs a specific transaction explained transaction-inquiry →transaction-lookup
- Customer now mentions an unexpected fee fee-concern →fee-review
Balance Delivery
CoreBanking.GetAccountSummary to retrieve account.balance and account.availableBalance for customer.accountType
- Customer is satisfied and has no further questions satisfied →resolution
- Customer wants to see recent transactions as well wants-transactions →transaction-lookup
- Customer disputes a charge or says a transaction looks wrong transaction-dispute →transaction-lookup
- Customer raises concern about an unexpected fee fee-concern →fee-review
Transaction Lookup
CoreBanking.GetTransactionHistory for customer.accountNumber over inquiry.dateRange
- Transactions returned successfully transactions-found →transaction-detail
- No transactions found in the requested range no-results →no-transaction-found
- System returns an error lookup-error →system-error
Transaction Detail
CRM.LogInteraction tagged balance-transaction-inquiry, linked to customer.accountNumber and transaction.id
- Customer recognizes the transaction and is satisfied satisfied →resolution
- Customer does not recognize the transaction and believes it is fraudulent fraud-allegation →escalation-fraud
- Customer recognizes the merchant but wants to dispute the amount amount-dispute →escalation-fraud
- Customer has a question about a fee within the transaction fee-concern →fee-review
No Transaction Found
- Customer provides more details — retry lookup →transaction-lookup
- Customer still cannot locate the transaction and suspects fraud fraud-allegation →escalation-fraud
- Customer is satisfied and wants to close satisfied →resolution
Fee Review
CoreBanking.GetFeeDetail for fee.type and fee.amount on customer.accountNumber
kb.fee-waiver-policy — check one-time waiver eligibility criteria for customer.accountType and account standing
- Customer is eligible and agent applies waiver waiver-applied CoreBanking.ApplyFeeWaiver →fee-waiver-confirmation
- Customer is not eligible for a waiver waiver-ineligible →fee-waiver-declined
- Customer is upset and escalation is warranted needs-escalation →escalation-human
Fee Waiver Confirmation
CRM.LogInteraction tagged fee-waiver-applied, linked to customer.accountNumber and fee.type
- Customer is satisfied satisfied →resolution
- Customer has an additional question →inquiry-routing
Fee Waiver Declined
- Customer accepts the outcome satisfied →resolution
- Customer wants to speak to a specialist or is upset escalation-requested →escalation-human
System Error
CRM.LogIncident tagged system-error, linked to customer.accountNumber and customer.phone
CRM.ScheduleCallback for customer.phone at next available slot
- Customer agrees to callback and conversation ends satisfied →resolution
- Customer wants to try again immediately →account-lookup
- Customer is very frustrated and demands to speak with someone now escalation-requested →escalation-human
Escalation — Fraud or Dispute
FraudDetection.FlagAccount for customer.accountNumber tagged suspected-fraud, linked to transaction.id
CRM.CreateCase priority: high, tagged fraud-dispute, linked to customer.accountNumber and transaction.id
→fraud-alert-follow-up
Escalation — Identity Verification Failed
CRM.LogIncident tagged verification-failure, linked to customer.phone
CRM.CreateCase priority: high, tagged identity-lockout
Escalation — Account Flag
CRM.CreateCase priority: high, tagged account-flag-review, linked to customer.accountNumber
CRM.LogInteraction tagged account-flag-escalation
→escalation-human
Escalation — Human Specialist
CRM.CreateCase priority: high, tagged specialist-handoff, linked to customer.accountNumber
CRM.LogInteraction tagged escalation-human, with case summary
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to customer.accountNumber

Appointment Scheduling
Patient Intake
EHR.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found and identity confirmed verified →appointment-intent
- Patient record not found or details do not match →identity-retry
- Patient describes urgent or emergent symptoms at any point →escalation-clinical
Identity Retry
EHR.LookupPatient retry with corrected input
- Record found on second attempt verified →appointment-intent
- Still no match after retry →escalation-human
Appointment Intent
- Patient wants to book a new appointment book →insurance-verification
- Patient wants to reschedule an existing appointment reschedule →reschedule-lookup
- Patient wants to cancel an appointment cancel →cancel-lookup
- Patient describes urgent or emergent symptoms →escalation-clinical
Insurance Verification
InsuranceEligibilityAPI.VerifyEligibility using patient.insurance.provider and patient.insurance.memberId
kb.insurance-eligibility-policy — check referral requirements for appointment.type
- Insurance verified, no referral required eligible →gather-preferences
- Insurance verified, referral required and on file eligible referral_present →gather-preferences
- Insurance verified, referral required but not on file referral_missing →referral-hold
- Insurance verification fails or returns inactive coverage ineligible →insurance-unverified
- Patient has no insurance or declines to provide →self-pay-offer
Self-Pay Offer
kb.selfpay-rates — retrieve selfpay.rate for appointment.type
- Patient agrees to self-pay confirmed →gather-preferences
- Patient wants to contact insurer first callback →intake-close-callback
- Patient is unsure →escalation-human
Insurance Unverified
- Patient wants self-pay rates →self-pay-offer
- Patient wants to wait and call back →intake-close-callback
- Patient wants to escalate or is frustrated →escalation-human
Referral Hold
SchedulingModule.HoldSoftReservation for patient.fullName, appointment.type, appointment.preferredDates
- Patient agrees to soft hold confirmed CRM.CreateTask referral-pending note →intake-close-referral
- Patient does not want a hold →intake-close-callback
- Patient says referral is already submitted →escalation-human
Gather Preferences
EHR.GetProviderList filtered by appointment.preferredLocation and appointment.type
- Preferences collected, preferred provider specified →slot-search-provider
- Preferences collected, no provider preference →slot-search-open
Slot Search — Provider Preference
SchedulingModule.GetAvailableSlots for appointment.preferredProvider, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences for preferred provider →slot-no-match
Slot Search — Open Availability
SchedulingModule.GetAvailableSlots for appointment.preferredLocation, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences →slot-no-match
Slot Selection
PatientPortal.DisplaySlots or read aloud up to three options from appointment.selectedSlot candidates
- Patient selects a slot confirmed →booking-confirmation
- Patient wants to hear more options →slot-search-open
- Patient wants to go on a waitlist instead →waitlist-enrollment
- Patient changes their mind and wants to cancel the process →intake-close-callback
Slot No Match
SchedulingModule.GetNextAvailable for appointment.type, appointment.preferredLocation
- Patient accepts next closest slot confirmed →booking-confirmation
- Patient wants waitlist →waitlist-enrollment
- Patient wants to try different dates or times →gather-preferences
Waitlist Enrollment
SchedulingModule.AddToWaitlist patient.fullName, appointment.type, appointment.preferredProvider, appointment.preferredDates
CRM.UpdateRecord waitlist status for patient.fullName
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Booking Confirmation
SchedulingModule.BookAppointment for patient.fullName, appointment.selectedSlot, appointment.type, appointment.preferredProvider
CRM.UpdateRecord appointment booked, appointment.confirmationNumber
Twilio.SendSMS to patient.phone: "Your appointment is confirmed for appointment.selectedSlot. Confirmation number: appointment.confirmationNumber. Reply CANCEL to cancel or call us to make changes."
Twilio.SendEmail to patient.email with appointment details, preparation instructions, and location or telehealth link
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Reschedule Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
- Appointment found →reschedule-preferences
- Appointment not found →escalation-human
Reschedule Preferences
SchedulingModule.CancelAppointment for appointment.existingId
SchedulingModule.GetAvailableSlots for updated appointment.preferredDates, appointment.preferredTimes, appointment.type, appointment.preferredProvider
- New slots found →slot-selection
- No slots match new preferences →slot-no-match
Cancel Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
kb.cancellation-policy — check short-notice window and applicable cancellation.fee for appointment.selectedSlot
- Appointment found, cancellation outside short-notice window →cancel-confirm
- Appointment found, cancellation within short-notice window short_notice →cancel-fee-notice
- Appointment not found →escalation-human
Cancel Fee Notice
- Patient confirms cancellation despite fee confirmed →cancel-confirm
- Patient wants to reschedule instead →reschedule-preferences
- Patient disputes the fee or wants to escalate →escalation-human
Cancel Confirm
SchedulingModule.CancelAppointment for appointment.existingId
CRM.UpdateRecord cancellation logged for patient.fullName
Twilio.SendSMS to patient.phone: "Your appointment has been cancelled. Confirmation: appointment.confirmationNumber. Contact us to rebook."
Twilio.SendEmail to patient.email with cancellation confirmation
- Patient wants to book a new appointment →appointment-intent
- Patient is done →intake-close-complete
Intake Close — Callback
CRM.UpdateRecord contact reason, outcome pending callback, patient.fullName
Intake Close — Referral Pending
CRM.UpdateRecord soft hold active, referral pending, patient.fullName
Intake Close — Complete
CRM.UpdateRecord interaction complete, outcome successful, patient.fullName
Escalation — Clinical
CRM.CreateCase priority: urgent, tagged clinical-escalation, patient.fullName
Twilio.NotifyOnCall clinical triage staff with patient name and reported symptoms
Escalation — Human Agent
CRM.CreateCase priority: high, tagged scheduling-escalation, patient.fullName, interaction summary
Twilio.TransferCall or route chat to live scheduling specialist queue

Appointment Reschedule / Cancellation
Intake and Identity Verification
EHR.LookupPatient using patient.fullName and patient.dateOfBirth to retrieve the patient record and patient.id.
EHR.VerifyIdentity against patient.id and patient.accountNumber.
- Identity verified successfully verified →confirm-appointment-details
- Identity cannot be verified after two attempts unverified →identity-failure
- Patient reports an urgent symptom or medical concern during intake urgent_concern →clinical-triage-escalation
Identity Verification Failure
CRM.LogInteraction tagged identity-verification-failure, linked to patient.id
- Patient accepts and ends the call accepted →resolution-no-change
- Patient escalates or disputes the inability to verify frustrated →escalation-human
Confirm Appointment Details
EHR.GetAppointment for patient.id to retrieve appointment.date, appointment.provider, and appointment.id.
- Patient wants to reschedule reschedule →reschedule-reason
- Patient wants to cancel cancel →cancellation-reason
- Patient is vague or unsure unclear →clarify-intent
- Patient mentions a new or worsening symptom as the reason urgent_concern →clinical-triage-escalation
Clarify Intent
- Patient confirms reschedule reschedule →reschedule-reason
- Patient confirms cancellation cancel →cancellation-reason
- Patient mentions a symptom or health concern urgent_concern →clinical-triage-escalation
Reschedule — Reason Capture
CRM.LogInteraction tagged reschedule-request, linked to appointment.id
- Patient provides a reason and preferred window has_preference →check-slot-availability
- Patient has no preference and any slot works no_preference →check-slot-availability
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Check Slot Availability
SchedulingPortal.GetAvailableSlots for appointment.provider within the patient's preferred window.
- Slots available with the same provider within the acceptable window slots_found →offer-new-slot
- No slots available with the same provider within the acceptable window no_slots →no-availability-options
- New slot requires eligibility check due to insurance or date change eligibility_check_needed →insurance-eligibility-check
Offer New Slot
SchedulingPortal.PresentSlots to surface top three available options.
- Patient selects a slot slot_selected SchedulingPortal.BookAppointment →confirm-reschedule
- Patient wants to see more options more_options SchedulingPortal.GetAvailableSlots extended range →offer-new-slot
- Patient changes mind and wants to cancel instead cancel →cancellation-reason
- Patient cannot find a suitable time no_match →no-availability-options
No Availability Options
- Patient accepts the next available slot with the same provider same_provider SchedulingPortal.BookAppointment →confirm-reschedule
- Patient accepts a different provider different_provider SchedulingPortal.GetAvailableSlots alternative providers →offer-new-slot
- Patient wants to join the waitlist waitlist SchedulingPortal.AddToWaitlist for patient.id and appointment.provider →waitlist-confirmed
- Patient is dissatisfied or requests provider callback frustrated →escalation-human
Insurance Eligibility Check
EligibilityVerification.CheckCoverage using patient.id and insurance.status for newAppointment.date.
- Coverage confirmed for the new date eligible →offer-new-slot
- Coverage issue detected — patient may owe out of pocket ineligible →insurance-issue-flag
- Eligibility check inconclusive inconclusive →escalation-human
Insurance Issue Flag
- Patient wants to proceed anyway proceed →offer-new-slot
- Patient wants to speak with billing billing →escalation-human
- Patient decides to cancel instead cancel →cancellation-reason
Cancellation — Reason Capture
EHR.CheckCancellationWindow for appointment.id to retrieve appointment.cancellationWindow.
CRM.LogInteraction tagged cancellation-request, linked to appointment.id
- Within the cancellation window, no fee applicable no_fee →process-cancellation
- Inside the late-cancellation or no-show fee window fee_applicable →late-cancellation-notice
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Late Cancellation Notice
kb.cancellation-fee-policy — reference the applicable fee schedule and patient notification requirements.
- Patient acknowledges and confirms cancellation confirmed →process-cancellation
- Patient disputes the fee or requests a waiver disputes_fee →escalation-human
- Patient decides to keep the appointment instead keep_appointment →resolution-no-change
Process Cancellation
EHR.CancelAppointment for appointment.id, recording reason.change.
SchedulingPortal.ReleaseSlot for appointment.id.
CRM.UpdateRecord tagged cancelled, linked to patient.id and appointment.id.
Twilio.SendNotification to patient.preferredContact with cancellation confirmation referencing appointment.date and appointment.provider.
- Confirmation sent and patient has no further questions →resolution-complete
- Patient wants to reschedule after all reschedule →reschedule-reason
Confirm Reschedule
EHR.UpdateAppointment replacing appointment.id with new slot details: newAppointment.date, newAppointment.time, newAppointment.provider.
CRM.UpdateRecord tagged rescheduled, linked to patient.id.
Twilio.SendNotification to patient.preferredContact with reschedule confirmation including newAppointment.date, newAppointment.time, and newAppointment.provider.
- Patient confirms receipt and has no further questions →resolution-complete
- Patient has an additional question or concern follow_up →resolution-complete
Waitlist Confirmed
CRM.UpdateRecord tagged waitlisted, linked to patient.id and appointment.provider.
- Patient has no further needs →resolution-complete
- Patient wants to also reschedule with a different provider in the meantime reschedule →no-availability-options
Clinical Triage Escalation
CRM.LogInteraction tagged clinical-concern, priority: high, linked to patient.id and appointment.id.
EHR.FlagForTriage for patient.id with note: patient reported symptom concern during scheduling interaction.
- Triage nurse or clinical staff available to take the transfer →escalation-human
- After-hours: no clinical staff available Twilio.SendNotification urgent triage message to on-call line →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, linked to patient.id and appointment.id, tagged for appropriate queue based on reason.
CRM.LogInteraction with full context: appointment.date, appointment.provider, reason.change, escalation trigger.
Resolution — No Change Made
CRM.LogInteraction tagged no-change, linked to patient.id.
Resolution — Complete
CRM.LogInteraction tagged resolved, linked to patient.id.
- Patient has no further needs no_further_needs →session-closed
- Patient has another request another_request →intake-and-verification
Session Closed
CRM.CloseCase linked to patient.id.

Amenity / Service Request
Greet and Identify
- Guest provides name and room number confirmed →verify-reservation
- Guest expresses urgency or frustration upfront frustrated →priority-flag
- Guest message is unclear or incomplete unclear →greet-and-identify
Verify Reservation
PMS.LookupReservation by guest.roomNumber and guest.name to confirm reservation.status
- Active reservation found, room matches confirmed →capture-request
- Room number not found or name mismatch unverified →secondary-verification
- Reservation is checked out or future-dated inactive →reservation-mismatch
Secondary Verification
PMS.LookupReservation by guest.reservationId as fallback
- Identity confirmed on second attempt confirmed →capture-request
- Identity still cannot be confirmed unverified →escalation-human
Reservation Mismatch
- Guest believes it is an error →escalation-human
- Guest acknowledges wrong room or wrong stay →greet-and-identify
Capture Request
kb.amenity-catalog — check available items, standard fees, and any quantity limits per room type
- Guest states item or service clearly confirmed →check-availability
- Guest is unsure what is available unclear →suggest-options
- Guest raises a safety or accessibility concern safety →escalation-human
Suggest Options
- Guest selects an item or service confirmed →check-availability
- Guest still uncertain, requests human assistance unclear →escalation-human
Check Availability
HousekeepingDispatch.CheckInventory for request.item against current stock and department capacity
- Item is available and no fee applies available →confirm-and-dispatch
- Item is available with an associated fee fee_required →disclose-fee
- Item is unavailable or out of stock unavailable →offer-alternative
- Request is a late checkout or policy-bound service →policy-check
Disclose Fee
- Guest accepts the fee confirmed →confirm-and-dispatch
- Guest declines the fee declined →offer-alternative
- Guest disputes the fee frustrated →escalation-human
Policy Check
kb.hotel-stay-policies — check late checkout availability, occupancy level, and any blackout conditions for reservation.checkoutDate
- Late checkout is available within policy window available →confirm-and-dispatch
- Hotel is at full occupancy or request falls outside policy window unavailable →policy-limitation
Policy Limitation
- Guest accepts the alternative confirmed →confirm-and-dispatch
- Guest requests a manager or fee waiver escalate →escalation-human
- Guest declines and has no further requests declined →resolution-close
Offer Alternative
- Suitable alternative identified and guest accepts confirmed →confirm-and-dispatch
- Guest declines all alternatives declined →escalation-human
Confirm and Dispatch
HousekeepingDispatch.CreateTicket for request.item to room guest.roomNumber, urgency request.urgency, notes request.notes — returns dispatch.ticketId and dispatch.eta
CRM.LogInteraction for guest.reservationId tagged amenity-request, linked to dispatch.ticketId
- Guest confirms and has nothing further confirmed →resolution-close
- Guest has an additional request additional →capture-request
- Guest expresses dissatisfaction with the expected wait time frustrated →priority-flag
Priority Flag
HousekeepingDispatch.EscalateTicket for dispatch.ticketId, set priority: urgent — returns updated dispatch.eta
CRM.LogInteraction for guest.reservationId tagged priority-escalation
- Re-dispatch confirmed and guest is satisfied confirmed →resolution-close
- Guest remains dissatisfied after re-dispatch frustrated →escalation-human
Escalation to Human Agent
CRM.LogInteraction for guest.reservationId tagged escalation, with full request context and dispatch.ticketId
GuestMessaging.NotifyStaff to #guest-services-ops with guest.name, guest.roomNumber, request.item, and reason for escalation
Resolution / Close
CRM.LogInteraction for guest.reservationId tagged resolved, linked to dispatch.ticketId

Account Closure Request
Intake and Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
IdentityVerification.InitiateCheck for customer.fullName and customer.dateOfBirth
- Verification passes confirmed →account-selection
- Verification fails on first attempt unconfirmed →verification-retry
- Account has an active fraud or legal hold flagged by IdentityVerification.InitiateCheck hold_detected →escalation-human
- Customer is linked to a business or trust account entity_account →escalation-human
Verification Retry
IdentityVerification.SecondaryCheck using additional customer-provided details
- Verification passes on retry confirmed →account-selection
- Verification fails again unconfirmed →escalation-human
Account Selection
CoreBanking.GetAccountList for verified customer record
- Customer provides a valid account number confirmed →compliance-screening
- Customer is unsure which account or requests guidance needs_help →account-selection-assist
- Customer becomes uncooperative or hostile hostile →escalation-human
Account Selection Assist
CoreBanking.GetAccountList — surface account type, last four digits, and current status for each account
- Customer confirms account selection confirmed →compliance-screening
- Customer still cannot identify the account unconfirmed →escalation-human
Compliance and AML Screening
ComplianceAML.ScreenAccount for account.number
CRM.LogInteraction note: closure request initiated for account.number
- Account clears compliance screening confirmed →account-balance-check
- Account flagged for elevated risk or AML concern high_risk →compliance-review
- Account has an existing legal or regulatory hold legal_hold →escalation-human
Compliance Review
- Agent determines low-risk flag, safe to proceed →account-balance-check
- Agent determines elevated risk requiring human review needs_review →escalation-human
Account Balance and Pending Transaction Check
CoreBanking.GetAccountDetail for account.number — retrieve account.balance, account.pendingTransactions, and account.status
- Balance is zero and no pending transactions clear →closure-reason-collection
- Pending transactions exist on the account pending →pending-transactions-hold
- Outstanding balance or linked loan exists on the account balance_owed →outstanding-balance-hold
Pending Transactions Hold
kb.account-closure-policy — confirm settlement window and closure processing rules for account.type
- Customer agrees to automatic post-settlement closure confirmed CoreBanking.QueueClosureRequest for account.number →closure-reason-collection
- Customer prefers to wait and call back declined →closure-pending-confirmation
- Customer escalates or disputes the pending transactions disputed →escalation-human
Closure Pending Confirmation
CRM.LogInteraction note: customer deferred closure for account.number pending transaction settlement
Outstanding Balance Hold
kb.account-closure-policy — confirm balance resolution requirements for account.type
- Customer agrees to resolve balance and requests options confirmed →escalation-human
- Customer requests more time and wants to call back declined →closure-pending-confirmation
- Customer disputes the balance disputed →escalation-human
Closure Reason Collection
- Customer cites fees or dissatisfaction with service frustrated →retention-offer
- Customer cites a neutral or logistical reason neutral →funds-destination-collection
- Customer shows signs of financial distress distressed →financial-distress-flag
Financial Distress Flag
ComplianceAML.FlagForReview note: potential financial distress indicator on account.number
CRM.LogInteraction note: distress signal detected during closure request for customer.fullName
- Customer agrees to speak with a specialist confirmed →escalation-human
- Customer declines and wishes to continue closure declined →funds-destination-collection
Retention Offer
kb.retention-offers-policy — surface eligible retention offers for account.type and customer.fullName profile
- Customer is open to retention options interested →escalation-human
- Customer declines and confirms they want to close confirmed →funds-destination-collection
Funds Destination Collection
ACHTransfer.ValidateDestination for transfer.destinationAccount and transfer.destinationBank
- Destination account validated successfully confirmed →closure-confirmation
- Destination account cannot be verified unconfirmed →funds-destination-hold
- Customer has no external account and requests a check CoreBanking.GetAccountDetail →closure-confirmation
Funds Destination Hold
CRM.LogInteraction note: closure held for account.number — destination account unverifiable
SecureMessaging.SendConfirmation to customer.email note: closure request on hold pending valid transfer details
Closure Confirmation
CoreBanking.SubmitClosureRequest for account.number — generate closure.requestId and closure.timeline
ACHTransfer.InitiateTransfer of account.balance to transfer.destinationAccount
CRM.LogInteraction note: closure submitted for account.number, request ID closure.requestId
SecureMessaging.SendConfirmation to customer.email with closure.requestId and closure.timeline
- Customer has additional questions or requests needs_help →post-closure-support
- Customer is satisfied and ends interaction confirmed →resolution
Post-Closure Support
kb.account-closure-policy — reference post-closure FAQs including statement access, tax documents, and credit impact
- Question answered and customer satisfied confirmed →resolution
- Issue requires specialist involvement or account access complex →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged account-closure-escalation, linked to account.number
CRM.LogInteraction note: escalation triggered — reason logged under agent.caseId
SecureMessaging.SendNotification to assigned specialist with customer profile, account.number, and case summary
Resolution
CRM.LogInteraction note: closure interaction completed for customer.fullName, account account.number

Symptom Triage / Nurse Line Routing
Identity Verification
EHR.LookupPatient by patient.fullName and patient.dateOfBirth
- Identity confirmed, record found CRM.OpenRecord →symptom-intake
- Identity confirmed but DOB mismatch — ask for patient.memberId EHR.LookupPatientById →symptom-intake
- Caller is a caregiver, not the patient — collect patient.caregiverName and relationship, then verify patient identity →symptom-intake
- Identity cannot be verified after two attempts CRM.FlagUnverified →unverified-caller-triage
Symptom Intake
Collect patient.primarySymptom, patient.symptomDuration, and patient.symptomTrend.
Collect patient.currentMedications and patient.knownConditions.
- Caller mentions chest pain, pressure, or tightness →emergency-redirect
- Caller mentions difficulty breathing or shortness of breath at rest →emergency-redirect
- Caller mentions sudden face drooping, arm weakness, or speech difficulty →emergency-redirect
- Caller mentions severe bleeding that won't stop or loss of consciousness →emergency-redirect
- Caller explicitly requests to speak with a nurse →escalation-nurse-callback
- Symptoms collected, no red-flag keywords detected →triage-assessment
Emergency Redirect
CRM.CreateCase priority: critical, tagged emergency-redirect, linked to patient.memberId
NurseQueue.AlertOnCall with patient.primarySymptom and case.id
EHR.AddEncounterNote "Emergency redirect issued. Patient advised to call 911. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
- Caller confirms they are calling 911 or help is on the way →emergency-documentation
- Caller refuses to call 911 — document refusal, stay on the line, re-advise →care-refusal
- No response or line goes silent NurseQueue.AlertOnCall escalate immediately →escalation-nurse-callback
Emergency Documentation
EHR.AddEncounterNote "Patient acknowledged emergency redirect. 911 advised. Case case.id created."
CRM.UpdateCase case.id status: emergency-dispatched
Triage Assessment
- Triage engine returns tier: self-care tier_selfcare →self-care-guidance
- Triage engine returns tier: nurse callback tier_nurse →escalation-nurse-callback
- Triage engine returns tier: urgent care tier_urgent →urgent-care-routing
- Triage engine returns tier: emergency tier_emergency →emergency-redirect
- Triage engine lookup fails or confidence below threshold needs_review →escalation-nurse-callback
Self-Care Guidance
kb.schmitt-thompson-protocols — retrieve home-care instructions matching triage.protocol
EHR.AddEncounterNote "Triage complete. Tier: self-care. Protocol: triage.protocol. Guidance delivered. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
CRM.UpdateCase case.id status: self-care-guidance-provided
- Patient accepts guidance and has no further questions →resolution
- Patient is uncertain or wants a nurse to confirm →escalation-nurse-callback
- Patient refuses self-care recommendation →care-refusal
Urgent Care Routing
Scheduling.FindNearestUrgentCare by patient.zip -> facility.nearest
EHR.AddEncounterNote "Triage complete. Tier: urgent care within 4 hours. Facility: facility.nearest. Symptoms: patient.primarySymptom. Protocol: triage.protocol."
CRM.UpdateCase case.id status: urgent-care-routed
SecureMessaging.SendSummary to patient.phone with facility address and care instructions
- Patient confirms they will go →resolution
- Patient requests a different facility Scheduling.FindNearestUrgentCare alternate →urgent-care-routing
- Patient refuses urgent care recommendation →care-refusal
- Patient requests nurse confirmation before going →escalation-nurse-callback
Escalation to Nurse Callback
NurseQueue.AddToCallbackQueue patient.memberId, patient.primarySymptom, patient.symptomDuration, patient.symptomTrend, patient.knownConditions, patient.currentMedications, triage.riskScore
NurseQueue.GetEta -> nurse.callbackEta
CRM.CreateCase priority: high, tagged nurse-callback, linked to patient.memberId
EHR.AddEncounterNote "Escalated to nurse callback queue. ETA: nurse.callbackEta. Symptoms: patient.primarySymptom. Risk score: triage.riskScore. Case: case.id."
SecureMessaging.SendSummary to patient.phone confirming callback and safety instructions
- Nurse callback queued and patient is stable →resolution
- Patient's condition appears to be worsening during call →emergency-redirect
Unverified Caller Triage
Collect patient.primarySymptom, patient.symptomDuration, patient.symptomTrend.
CRM.CreateCase priority: high, tagged unverified-caller, flagged for nurse review
NurseQueue.AddToCallbackQueue unverified, patient.primarySymptom, patient.symptomDuration, patient.phone
EHR.AddEncounterNote "Unverified caller. Symptoms collected for nurse review. Callback number: patient.phone."
- Caller mentions any emergency symptom →emergency-redirect
- Case queued successfully →resolution
- Caller explicitly requests nurse immediately →escalation-nurse-callback
Care Refusal
EHR.AddEncounterNote "Patient declined recommended care tier: triage.tier. Symptoms: patient.primarySymptom. Refusal documented per protocol. Case: case.id."
CRM.UpdateCase case.id status: care-refusal-documented
NurseQueue.AlertOnCall with refusal note and patient.memberId for awareness
- Patient reconsiders and agrees to recommended care tier →triage-assessment
- Patient maintains refusal but accepts lower-acuity guidance →self-care-guidance
- Patient ends call →resolution
Resolution
EHR.AddEncounterNote "Encounter complete. Final routing: triage.tier. Case: case.id. Patient acknowledged next steps."
CRM.UpdateCase case.id status: resolved
SecureMessaging.SendSummary to patient.phone with encounter summary and care instructions

Service Activation / New Line Setup
Identity Verification
CRM.LookupAccount using account.holder_name and account.id
CRM.VerifyPIN against account.pin
- Identity verified on first or second attempt confirmed →eligibility-check
- Identity fails first attempt unconfirmed CRM.LogVerificationAttempt →secondary-verification
- Fraud flag raised on account fraud_flag →escalation-fraud
- Identity fails after two attempts verification_failed →escalation-identity
Secondary Verification
CRM.VerifySecondaryIdentity using account.billing_address and account.payment_method
- Secondary verification passes confirmed →eligibility-check
- Secondary verification fails unconfirmed →escalation-identity
Eligibility Check
BillingPlatform.CheckEligibility for account.id
- Account is eligible for a new line eligible →device-and-sim-collection
- Account has outstanding balance or restrictions ineligible →eligibility-resolution
Eligibility Resolution
BillingPlatform.GetAccountStatus for account.id
- Customer agrees to resolve balance now confirmed BillingPlatform.ProcessPayment →device-and-sim-collection
- Customer wants to handle it later or disputes the hold declined →escalation-billing
Device and SIM Collection
SIMIMEIProvisioning.ValidateIMEI using device.imei
SIMIMEIProvisioning.ValidateSIM using sim.number
- IMEI and SIM both valid confirmed →plan-selection
- IMEI is blacklisted or incompatible imei_flagged →device-issue
- SIM number is unrecognized or already active sim_invalid →sim-issue
Device Issue
kb.compatible-device-catalog — retrieve compatible device options and current upgrade promotions for account.id
- Customer wants to use a different device confirmed →device-and-sim-collection
- Customer wants to explore upgrade or purchase options interested →escalation-device-upgrade
- Customer wants to end the interaction declined →resolution-closed
SIM Issue
kb.sim-replacement-policy — check eligibility for a new SIM
- Customer can obtain or activate a replacement SIM confirmed →device-and-sim-collection
- Issue requires physical store visit or mailed SIM store_required →escalation-store-referral
Plan Selection
kb.plan-catalog — retrieve available plans, pricing, and promotional offers for account.id
- Customer selects a plan confirmed →number-selection
- Customer is unsure or wants more information undecided →plan-recommendation
Plan Recommendation
- Customer selects a plan after recommendation confirmed →number-selection
- Customer still undecided or wants to call back deferred →resolution-deferred
- Customer declines all plans declined →resolution-closed
Number Selection
- Customer wants a new number assigned new_number CarrierNetworkAPI.AssignNumber for account.id →payment-processing
- Customer wants to port an existing number port_in →port-in-collection
Port-In Collection
NumberPortabilityDB.ValidatePortRequest using port.number, port.carrier, port.account_number, port.pin
- Port request validated and eligible confirmed →port-in-initiated
- Port request rejected or information mismatch invalid →port-in-issue
Port-In Initiated
NumberPortabilityDB.SubmitPortRequest for port.number linked to account.id
CarrierNetworkAPI.AssignTemporaryNumber for account.id
- Temporary number assigned and port submitted confirmed →payment-processing
- Port submission fails due to carrier-side issue port_error →escalation-porting
Port-In Issue
- Customer provides corrected details confirmed →port-in-collection
- Customer is unable to provide correct details unconfirmed →escalation-porting
- Customer prefers to take a new number instead new_number →payment-processing
Payment Processing
PaymentProcessor.ChargeActivationFee of plan.activation_fee to account.payment_method
- Payment succeeds payment_success →line-provisioning
- Payment declines payment_declined →payment-retry
Payment Retry
kb.installment-eligibility — check if account.id qualifies for installment plan on activation fee
- Customer provides alternate payment method alternate_payment PaymentProcessor.ChargeActivationFee →line-provisioning
- Customer qualifies for and accepts installment option installment_approved BillingPlatform.SetupInstallment →line-provisioning
- Customer declines all payment options declined →resolution-payment-abandoned
Line Provisioning
CarrierNetworkAPI.ProvisionLine for account.id with sim.number, device.imei, plan.selected
CRM.UpdateAccount with line.assigned_number and new line details
BillingPlatform.AddLineToAccount for account.id with plan.selected
- Line provisioned successfully line_active →activation-confirmation
- Provisioning error returned by network provisioning_error →escalation-provisioning
Activation Confirmation
- Customer confirms call or data is working confirmed →resolution-success
- Customer reports no signal or data issues not_working →activation-troubleshooting
Activation Troubleshooting
CarrierNetworkAPI.CheckLineStatus for line.assigned_number
SIMIMEIProvisioning.VerifyProvisioningStatus for sim.number
- Network confirms line is active and issue resolves resolved →resolution-success
- Line status shows error or provisioning incomplete provisioning_error →escalation-provisioning
- Issue persists despite active line status unresolved →escalation-technical
Escalation — Identity Verification Failed
CRM.LogFailedVerification for account.id with verification.attempts
CRM.CreateTicket tagged identity-verification-failed, linked to account.id
Escalation — Fraud Flag
CRM.FlagAccountForReview tagged fraud, for account.id
CRM.CreateTicket priority: high, tagged fraud-flag, linked to account.id
Escalation — Billing or Eligibility
CRM.CreateTicket tagged billing-hold, linked to account.id
Escalation — Device Upgrade
CRM.CreateTicket tagged device-upgrade-referral, linked to account.id
Escalation — Store Referral
CRM.CreateTicket tagged sim-store-referral, linked to account.id
Escalation — Porting Issue
CRM.CreateTicket priority: high, tagged port-in-escalation, linked to account.id, including port.number and port.carrier
Escalation — Provisioning Error
CRM.CreateTicket priority: high, tagged provisioning-error, linked to account.id and line.assigned_number
Escalation — Technical Support
CRM.CreateTicket tagged device-technical-issue, linked to account.id and line.assigned_number
Resolution — Success
CRM.CloseTicket for account.id tagged activation-complete
Resolution — Deferred
CRM.SaveSessionState for account.id with plan.selected and device.imei
Resolution — Payment Abandoned
CRM.SaveSessionState for account.id with plan.selected and line.assigned_number tagged payment-pending
Resolution — Closed
CRM.LogInteraction for account.id tagged activation-not-completed

Quote Request Intake
Intake Greeting
- Customer names a specific coverage type confirmed →coverage-type-selected
- Customer is unsure or asks for a recommendation uncertain →coverage-guidance
- Customer wants to speak with a person directly escalation_request →escalation-human
Coverage Guidance
- Agent identifies a suitable coverage type and customer agrees confirmed →coverage-type-selected
- Customer remains undecided or disengages disengaged →partial-intake-save
- Customer requests a human advisor escalation_request →escalation-human
Coverage Type Selected
CRM.LookupCustomer by customer.phone or customer.email to check for an existing record.
- Existing customer record found returning_customer →risk-detail-collection
- No existing record found new_customer →personal-info-collection
Personal Info Collection
CRM.CreateContact with customer.name, customer.email, customer.phone, customer.address
- All required contact details collected info_complete →risk-detail-collection
- Customer provides partial info then stops responding disengaged →partial-intake-save
Risk Detail Collection
- All required risk fields collected fields_complete →underwriting-check
- Critical fields missing after follow-up prompts fields_incomplete →partial-intake-save
- Customer disengages mid-collection disengaged →partial-intake-save
Underwriting Check
UnderwritingRulesAPI.Evaluate with coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits
- Risk profile passes standard guidelines eligible →quote-generation
- Risk profile flagged — outside standard guidelines flagged high_risk →underwriter-review
- API returns an error or timeout error →quoting-system-error
Quote Generation
QuotingEngine.GenerateQuote with customer.name, coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits, coverage.startDate
- Quote successfully generated quote_ready →quote-presentation
- Quoting engine error or timeout on first attempt error →quoting-retry
Quoting Retry
QuotingEngine.GenerateQuote retry with same inputs
- Quote successfully generated on retry quote_ready →quote-presentation
- Second attempt also fails error →quoting-system-error
Quote Presentation
NotificationService.SendEmail to customer.email with quote summary: quote.id, quote.premium, quote.tier, coverage.desiredLimits, coverage.startDate
NotificationService.SendSMS to customer.phone with quote summary link
- Customer wants to bind coverage now bind_now →next-steps-binding
- Customer wants to explore different tiers or limits adjust_quote →risk-detail-collection
- Customer wants to speak with a licensed agent escalation_request →escalation-human
- Customer acknowledges receipt but wants to decide later defer →resolution-follow-up
Next Steps — Binding
PolicyManagement.InitiateBinding with quote.id, customer.name, customer.email, coverage.startDate
CRM.UpdateContact status: quote-accepted, linked to quote.id
- Customer has additional questions →intake-greeting
- Customer is done — no further questions →resolution-complete
Underwriter Review
CRM.UpdateContact status: pending-underwriter-review, flag: underwriting.flagReason
NotificationService.SendEmail to customer.email confirming review is in progress, expected timeline 1 to 2 business days
UnderwritingRulesAPI.CreateReviewCase with customer.name, coverage.type, underwriting.flagReason, all risk fields
- Customer wants an agent callback confirmed →escalation-human
- Customer is satisfied to wait defer →resolution-follow-up
Partial Intake Save
CRM.SavePartialIntake with all collected fields, status: incomplete, customer.phone, customer.email
NotificationService.ScheduleFollowUp outreach in 24 hours to customer.phone and customer.email
CRM.UpdateContact preferred_contact: as stated by customer
- Customer provides a preferred follow-up time or method →resolution-follow-up
- Customer does not respond or disengages →resolution-follow-up
Quoting System Error
CRM.LogQuoteAttempt status: system-error, customer.name, coverage.type, all collected risk fields
NotificationService.AlertLicensedAgent with customer.name, customer.phone, customer.email, coverage.type, collected risk fields
- Handoff to licensed agent →escalation-human
Escalation to Human Agent
CRM.UpdateContact status: escalated-to-agent
CRM.CreateTask priority: high, assigned: licensed_agent_queue, linked to customer.name, coverage.type, quote.id
NotificationService.AlertLicensedAgent with full intake summary: customer.name, customer.email, customer.phone, coverage.type, coverage.desiredLimits, coverage.startDate, all risk fields, quote.id if available
Resolution — Follow-up Scheduled
CRM.UpdateContact status: follow-up-scheduled
Resolution — Complete
CRM.UpdateContact status: quote-delivered

Prescription Refill Request
Patient Verification
PatientIdentityVerification.LookupPatient using patient.fullName and patient.dateOfBirth
- Identity verified successfully verified →prescription-lookup
- Identity cannot be confirmed after two attempts unverified →escalation-human
- Patient reports urgent clinical concern or adverse reaction urgent →escalation-clinical
Prescription Lookup
Epic.GetPrescriptionRecord using patient.memberId, prescription.name, prescription.dosage
- Prescription found, refills remaining and not expired →pharmacy-confirmation
- Prescription found, no refills remaining no_refills →no-refills-remaining
- Prescription found but expired expired →prescription-expired
- Prescription flagged as controlled substance controlled →escalation-clinical
- Prescription not found in record →escalation-human
Pharmacy Confirmation
- Patient confirms pharmacy on file confirmed →submit-refill-request
- Patient requests a different pharmacy change_pharmacy →update-pharmacy
- Patient is unresponsive or unclear →escalation-human
Update Pharmacy
Epic.UpdatePreferredPharmacy with pharmacy.name and pharmacy.address
CRM.UpdatePatientRecord with updated pharmacy.name
→submit-refill-request
Submit Refill Request
Surescripts.SendRefillRequest for prescription.name prescription.dosage to pharmacy.name on behalf of patient.memberId
CRM.LogInteraction with patient.memberId, prescription.name, pharmacy.name
- Patient has another request another →patient-verification
- Patient confirms they are done done →resolution-confirmed
No Refills Remaining
Epic.SendRefillAuthorizationRequest to prescription.prescriberId for patient.memberId and prescription.name
CRM.LogInteraction with patient.memberId, note: refill authorization requested, no refills remaining
- Patient indicates urgent medical need urgent →escalation-clinical
- Patient acknowledges and is satisfied acknowledged →resolution-pending-authorization
Prescription Expired
CRM.LogInteraction with patient.memberId, note: prescription expired, appointment recommended
- Patient wants to schedule an appointment schedule →appointment-scheduling
- Patient declines and has no urgent need decline →resolution-no-action
- Patient reports an urgent clinical concern urgent →escalation-clinical
Appointment Scheduling
Epic.InitiateAppointmentRequest for patient.memberId with prescription.prescriberId
CRM.LogInteraction with patient.memberId, note: appointment scheduling initiated for expired prescription
- Appointment request successfully initiated scheduled →resolution-appointment-booked
- Scheduling system unavailable unavailable →escalation-human
Escalation to Clinical Staff
Epic.CreateClinicalAlert priority: high, patient.memberId, prescription.name, prescription.isControlled
CRM.CreateCase tagged: clinical-escalation, controlled-substance, linked to patient.memberId
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: refill-escalation, linked to patient.memberId, prescription.name
Resolution — Confirmed
CRM.LogInteraction with patient.memberId, note: refill successfully submitted, case closed
Resolution — Pending Authorization
CRM.LogInteraction with patient.memberId, note: patient informed of pending provider authorization
Resolution — Appointment Booked
CRM.LogInteraction with patient.memberId, note: appointment booked for expired prescription renewal
Resolution — No Action
CRM.LogInteraction with patient.memberId, note: patient declined appointment scheduling, no refill action taken

Policy Coverage Question
Inbound Coverage Inquiry
- Customer provides name and policy number →identity-verification
- Customer doesn't have policy number handy →collect-account-details
Collect Account Details
PolicyManagement.LookupByContact using customer.email or customer.phone
- Account found →identity-verification
- Account not found CRM.CreatePendingRecord →system-lookup-failure
Identity Verification
PolicyManagement.FetchPolicy using policy.number
CRM.VerifyIdentity confirm customer.name against policy record
- Identity confirmed, policy active confirmed →retrieve-policy-details
- Identity confirmed, policy lapsed or expired confirmed →lapsed-policy
- Identity check fails after two attempts unverified →escalation-human
Retrieve Policy Details
PolicyManagement.GetPolicyDetails for policy.number — retrieve policy.type, policy.effectiveDate, policy.expirationDate, policy.deductible, policy.coverageLimits
CRM.LogInteraction tag: coverage-inquiry, linked to policy.number
- Customer describes a specific situation or event →coverage-assessment
- Customer is distressed or alarmed about a potential denial frustrated →acknowledge-concern
Acknowledge Concern
- Customer calms down and describes the situation neutral →coverage-assessment
- Customer remains very distressed or mentions legal action frustrated →escalation-licensed-agent
Coverage Assessment
- Situation is clearly covered →deliver-covered-answer
- Situation falls in a gray area or under an exclusion →explain-exclusion-or-gray-area
- Situation involves a large, complex, or legally disputed claim complex_claim →escalation-underwriter
Deliver Covered Answer
DocumentRetrieval.GetRelevantSection for policy.type and coverage.situation
- Customer asks about filing a claim →claim-guidance
- Customer confirms they understand and has no further questions →resolution-close
- Customer wants to speak with a licensed agent escalation_requested →escalation-licensed-agent
Explain Exclusion or Gray Area
DocumentRetrieval.GetExclusionClause for policy.type and coverage.situation
kb.coverage-exclusions-guide — retrieve plain-language explanation for the applicable exclusion
- Customer wants underwriter review →escalation-underwriter
- Customer accepts the explanation and understands →resolution-close
- Customer disputes the exclusion or mentions an attorney frustrated →escalation-licensed-agent
Claim Guidance
CRM.CheckExistingClaim for policy.number and coverage.situation
- Existing claim found, linked to claim.existingId →claim-already-filed
- No existing claim found →new-claim-guidance
Claim Already Filed
- Customer has more questions →coverage-assessment
- Customer is satisfied →resolution-close
New Claim Guidance
- Customer wants to file now PolicyManagement.InitiateClaim →resolution-close
- Customer wants to file later →resolution-close
- Customer wants to escalate or speak with someone directly →escalation-licensed-agent
Lapsed Policy
- Customer wants to explore reinstatement or renewal →policy-renewal-reinstatement
- Customer wants to speak with someone directly →escalation-licensed-agent
- Customer acknowledges and wants to end the call →resolution-close
System Lookup Failure
CRM.CreateFollowUpTask assign to policy-support team, SLA: 1 business day, include customer.name, customer.phone, customer.email, coverage.situation
- Customer agrees to follow-up →resolution-close
- Customer wants immediate assistance →escalation-licensed-agent
Escalation to Underwriter
UnderwritingQueue.SubmitReviewRequest with policy.number, coverage.situation, agent's risk assessment, and policy.coverageLimits
CRM.LogInteraction tag: underwriter-referral, linked to policy.number
- Customer has additional questions for the underwriter →escalation-licensed-agent
- Customer is satisfied with the next step →resolution-close
Escalation to Licensed Agent
CRM.CreateCase priority: high, tag: licensed-agent-requested, linked to policy.number
CRM.LogInteraction tag: escalation, include full coverage-question context
Policy Renewal Reinstatement
CRM.LogInteraction tag: renewal-interest, linked to policy.number
→policy-renewal-reinstatement-flow
Resolution Close
CRM.CloseInteraction tag: resolved, linked to policy.number
- Customer has another question →inbound-coverage-inquiry
- Customer is done Say: "Thank you for calling. You're all set, and don't hesitate to reach out if questions come up. Have a great day." →resolution-close

Payment / Billing Inquiry
Intake & Verification
- Customer provides booking confirmation and identity details CRS.LookupReservation →charge-identification
- Customer cannot provide confirmation number but provides name and email CRS.LookupByGuestEmail →charge-identification
- Customer cannot provide any identifying information →identity-verification-required
Identity Verification Required
- Customer supplies one or more valid identifiers CRS.LookupReservation →charge-identification
- Customer is still unable to verify identity →escalation-human
Charge Identification
PMS.GetPaymentHistory for booking.confirmationNumber
kb.billing-charge-definitions — review resort fees, late checkout policies, cancellation penalty rules, and incidental hold release timelines
- Charge found and matches a known fee type →charge-explanation
- Charge appears duplicated or does not match any reservation line item possible_error →billing-error-review
- Customer references a charge not visible in payment history PaymentGateway.LookupTransaction →charge-identification-extended
- Customer explicitly states the charge is unauthorized or fraudulent fraud_flag →escalation-fraud
Charge Identification — Extended Lookup
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
kb.billing-charge-definitions — verify against settlement timing and pending-to-posted conversion windows
- Transaction located and matched to reservation →charge-explanation
- Transaction located but cannot be matched to any booking possible_error →billing-error-review
- Transaction not found in gateway records →escalation-human
Charge Explanation
- Customer accepts the explanation and is satisfied →resolution-confirmed
- Customer accepts the explanation but requests an itemized receipt PMS.SendReceipt to customer.email →resolution-confirmed
- Customer disputes the charge as unfair but it is policy-valid →goodwill-options
- Customer believes the charge is a billing error possible_error →billing-error-review
Goodwill Options
kb.goodwill-adjustment-policy — check eligible goodwill gestures (loyalty points, partial waiver, future discount) and current authorization limits for agent.adjustmentLimit
- Goodwill offer made and customer accepts RefundAdjustmentTool.ApplyPartialWaiver, PMS.SendReceipt to customer.email →resolution-confirmed
- Goodwill offer made and customer accepts loyalty points LoyaltyPlatform.AwardPoints to loyalty.accountNumber →resolution-confirmed
- Customer declines goodwill options and insists on full refund of a valid non-refundable charge →escalation-human
- Adjustment amount required exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
Billing Error Review
PMS.GetPaymentHistory for booking.confirmationNumber
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
- Error confirmed and within adjustment authorization RefundAdjustmentTool.InitiateCorrection, Salesforce.CreateCase →correction-initiated
- Error confirmed but correction amount exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
- No error found — charge is valid →charge-explanation
Correction Initiated
Salesforce.CreateCase tagged billing-correction, linked to booking.confirmationNumber
PMS.SendReceipt to customer.email with updated billing summary
- Customer asks about a refund they already expected to have received →refund-status-check
- Customer is satisfied with the resolution →resolution-confirmed
Refund Status Check
PaymentGateway.LookupTransaction using payment.last4, refund.amount, refund.date
kb.refund-processing-timelines — check standard bank processing windows by payment type
- Customer confirms they will wait and is satisfied →resolution-confirmed
- Refund date was over 10 business days ago and still not received PaymentGateway.InitiateRefundTrace →escalation-human
- Customer disputes the refund amount as incorrect possible_error →billing-error-review
Escalation to Billing Specialist
Salesforce.CreateCase priority: high, tagged billing-specialist-review, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-specialist-team with case summary, charge.amount, charge.description, customer.email
Escalation to Human Agent
Salesforce.CreateCase priority: high, tagged billing-escalation, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-support-team with full case context, charge.amount, charge.date, customer.email
Escalation — Fraud
Salesforce.CreateCase priority: urgent, tagged unauthorized-charge-fraud, linked to booking.confirmationNumber
PaymentGateway.FlagTransaction for charge.amount on payment.last4
Salesforce.NotifyQueue fraud-and-security-team with transaction details, customer.email, booking.confirmationNumber
Resolution Confirmed
Salesforce.UpdateCase status: resolved, linked to booking.confirmationNumber

Outage Report & Status Check
Inbound Contact
- Customer provides account number or registered phone number →identity-verification
- Customer cannot or will not provide account details →public-outage-info
- Customer mentions inability to reach emergency services safety_risk →escalation-safety
Identity Verification
IdentityVerification.VerifyCustomer using customer.accountNumber or customer.phone
- Verification passes verified →account-and-symptoms
- Verification fails after two attempts unverified →public-outage-info
Account & Symptoms
CRM.PullAccount using customer.accountNumber to retrieve customer.name, customer.serviceAddress, customer.serviceType
- Customer describes complete loss of service no_service →outage-lookup
- Customer describes degraded signal or slow data degraded_service →outage-lookup
- Customer mentions safety impact such as no 911 access safety_concern safety_risk →escalation-safety
- Customer describes issue on one device only single_device →outage-lookup
Outage Lookup
OutageManagement.CheckActiveIncidents for customer.serviceAddress and customer.serviceType
- Known active outage found matching location and service type outage_found →known-outage-confirmed
- No known outage found for this location no_outage →no-outage-found
- System lookup fails or times out lookup_error →escalation-noc
Known Outage Confirmed
OutageManagement.GetIncidentDetails to retrieve outage.incidentId, outage.affectedArea, outage.estimatedRestoration, outage.duration
- Outage duration is extended and likely qualifies for service credit kb.service-credit-policy CRM.FlagAccountForCreditReview captures credit.flagId →outage-updates-offer
- Outage is recent and within normal resolution window →outage-updates-offer
Outage Updates Offer
- Customer wants SMS updates Twilio.SendSMS to customer.phone with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer wants email updates NotificationPlatform.SendEmail to customer.email with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer declines updates →resolution-confirmed
No Outage Found
kb.telecom-troubleshooting-guide — retrieve steps appropriate for customer.serviceType and customer.symptoms
- Customer confirms service is restored resolved →resolution-confirmed
- Customer confirms issue persists after troubleshooting unresolved →new-ticket-creation
- Customer reports safety-related impact during troubleshooting safety_concern safety_risk →escalation-safety
New Ticket Creation
Ticketing.CreateTroubleTicket with customer.accountNumber, customer.serviceAddress, customer.serviceType, customer.symptoms, customer.deviceCount to generate ticket.id and ticket.referenceNumber
- Customer requests SMS confirmation Twilio.SendSMS to customer.phone with ticket.referenceNumber →resolution-confirmed
- Customer requests email confirmation NotificationPlatform.SendEmail to customer.email with ticket.referenceNumber →resolution-confirmed
- Customer needs no confirmation →resolution-confirmed
- Customer expresses continued frustration or reports critical business impact escalation_needed →escalation-specialist
Public Outage Info
OutageManagement.GetPublicOutageSummary for any broad regional incidents
- Public outage exists in the reported region public_outage_found →public-outage-details
- No public outage on record →public-no-outage
Public Outage Details
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Public No Outage
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Escalation — Network Operations
NOCDashboard.RaiseSystemLookupFailure with customer.accountNumber and customer.serviceAddress
CRM.LogInteraction with lookup failure details and customer.phone for callback scheduling
Twilio.SendSMS to customer.phone confirming a callback will be arranged
Escalation — Specialist
Ticketing.EscalateTicket for ticket.id to senior support queue
CRM.LogInteraction with escalation reason and customer.accountNumber
Escalation — Safety
CRM.LogInteraction flagged safety_risk with customer.accountNumber and customer.symptoms
NOCDashboard.RaiseSafetyFlag with customer.serviceAddress
Resolution Confirmed
- Customer has additional questions or issues →inbound-contact
- Customer confirms they are all set CRM.LogInteraction with resolution summary and outage.incidentId or ticket.referenceNumber →close-interaction
Close Interaction

New Account Onboarding
Intent Capture
- Customer requests a personal account type (checking, savings, investment) personal-account →info-collection
- Customer requests a business or trust account business-or-trust-account →specialist-routing
- Customer is unsure or needs guidance unsure →account-type-guidance
Account Type Guidance
kb.account-types-overview — retrieve product descriptions, minimum balance requirements, and eligibility criteria
- Customer selects a personal account type personal-account →info-collection
- Customer still wants a business or trust account business-or-trust-account →specialist-routing
- Customer wants to end the conversation end-session →session-close
Info Collection
CRM.CreateDraftRecord to initialize a draft customer profile
kb.minimum-deposit-requirements — validate customer.initialDepositAmount and customer.fundingSource eligibility
- All required fields collected and deposit method is supported fields-complete →identity-verification
- Funding method is unsupported or deposit is below the minimum funding-issue →funding-issue-resolution
- Customer is unwilling to provide required information declined-to-provide →escalation-human
Funding Issue Resolution
kb.funding-methods-policy — retrieve supported funding sources and minimum initial deposit thresholds
- Customer selects a supported alternative funding method alternative-accepted →identity-verification
- Customer cannot or will not meet deposit requirements cannot-meet-requirements →session-close
Identity Verification
KYCService.SubmitVerification with customer.fullLegalName, customer.dateOfBirth, customer.govIdNumber, customer.taxId, customer.address
- Verification passes on first or second attempt kyc-pass →compliance-screening
- Verification fails — first attempt kyc-fail-first →kyc-retry
- Verification fails — second attempt or kyc.attemptCount exceeds 2 kyc-fail-final →escalation-human
KYC Retry
DocUploadPortal.RequestDocument to customer.email for alternative ID submission
- Customer submits alternative document and resubmission passes kyc-pass →compliance-screening
- Customer submits alternative document and resubmission fails kyc-fail-final →escalation-human
- Customer cannot provide alternative documentation cannot-verify →escalation-human
Compliance Screening
ComplianceScreening.RunCheck with customer.fullLegalName, customer.taxId, customer.dateOfBirth, customer.address
- Screening passes with no flags compliance-clear →account-creation
- Any KYC or AML flag is raised compliance-flagged →escalation-compliance
- Customer is identified as a Politically Exposed Person (PEP) compliance.isPEP pep-flag →escalation-compliance
Account Creation
CoreBanking.CreateAccount with customer.fullLegalName, customer.taxId, customer.address, customer.fundingSource, customer.initialDepositAmount, customer.accountType
CRM.UpdateRecord with account.id, mark status: account-created
Twilio.SendSMS to customer.phone: "Your new account has been created. Your account ID is account.id. Your login credentials will arrive by email shortly."
CoreBanking.IssueCredentials to customer.email with account.credentials and welcome packet link
- Account created and credentials delivered successfully account-ready →customer-orientation
- Account creation fails due to a system error system-error →escalation-human
Customer Orientation
kb.new-account-faq — retrieve top questions about first login, mobile app access, and deposit timelines
- Customer has additional questions more-questions →customer-orientation
- Customer is satisfied and ready to end satisfied →session-close
- Customer wants to add a beneficiary or linked account additional-setup →escalation-human
Specialist Routing
CRM.CreateLeadRecord with customer.phone, customer.email, customer.accountType, note: specialist-referral
- Details captured and specialist notified →escalation-human
Escalation to Compliance Officer
ComplianceScreening.FlagRecord with customer.fullLegalName, customer.taxId, compliance.flagCode, compliance.isPEP
CRM.EscalateRecord priority: critical, tag: compliance-review
Escalation to Human Agent
CRM.EscalateRecord priority: high, tag: agent-review
Twilio.SendSMS to customer.phone: "Your account application requires attention from one of our specialists. A team member will reach out to you shortly."
Session Close
CRM.CloseSession with session outcome logged

Insurance Coverage Check
Patient Intake
CRM.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found in CRM →insurance-verification
- No record found, continue to collect details manually →insurance-verification
- Patient is unresponsive or call drops →escalation-human
Insurance Verification
EligibilitySystem.VerifyMember using patient.insuranceCarrier and patient.memberId
- Coverage active and returned successfully confirmed →service-inquiry
- Coverage shows as inactive or lapsed inactive →coverage-lapsed
- System returns no results or an error error →system-error
Service Inquiry
CRM.UpdateRecord with patient.memberId and confirmed coverage.status
- Patient provides service type or CPT code →network-status-check
- Patient is unsure of service details →service-clarification
Service Clarification
- Patient provides enough detail to proceed →network-status-check
- Patient still unable to provide details →escalation-human
Network Status Check
ProviderDirectory.CheckNetworkStatus using provider.name and provider.facility and patient.insuranceCarrier
PayerPortal.LookupBenefit using service.cptCode and patient.memberId and coverage.effectiveDate
- Provider and service confirmed in-network in-network →benefit-details
- Provider confirmed out-of-network out-of-network →out-of-network-options
- Service requires prior authorization prior-auth-required →prior-auth-guidance
- Lookup returns ambiguous or missing data unclear →escalation-human
Benefit Details
kb.benefit-tier-definitions — confirm explanation of coverage.tier, copay, and deductible language
PriorAuthTracker.CheckRequirements using service.cptCode and patient.memberId
- No referral or prior authorization required →confirmation-close
- Referral required referral-flag →referral-guidance
- Prior authorization required prior-auth-flag →prior-auth-guidance
Referral Guidance
kb.referral-process — retrieve steps for obtaining and submitting a referral
- Patient understands and confirms next steps →confirmation-close
- Patient has questions or disputes the referral requirement →escalation-human
Prior Auth Guidance
kb.prior-auth-process — retrieve steps and typical timelines for prior authorization submission
PriorAuthTracker.CreateCase using patient.memberId and service.cptCode and provider.name
- Patient acknowledges and has no further questions →confirmation-close
- Patient wants to dispute that prior auth is required →escalation-human
Out-of-Network Options
kb.out-of-network-benefits — look up whether the plan includes out-of-network benefit coverage and applicable cost-sharing
- Plan includes out-of-network benefits oon-benefits-available →oon-benefit-details
- Plan does not cover out-of-network services oon-no-benefits →suggest-in-network
OON Benefit Details
- Patient wants in-network alternatives instead →suggest-in-network
- Patient is satisfied with out-of-network information →confirmation-close
- Patient references a denial or billing dispute →escalation-human
Suggest In-Network Alternatives
ProviderDirectory.FindInNetworkProviders using service.type and patient.insuranceCarrier
- Patient accepts alternatives and has no further questions →confirmation-close
- Patient insists on the out-of-network provider and references a coverage dispute →escalation-human
Coverage Lapsed
kb.enrollment-support — retrieve guidance on coverage reinstatement and insurer contact process
- Patient wants to escalate or believes coverage should be active →escalation-human
- Patient understands and will contact insurer →confirmation-close
System Error
PayerPortal.ManualEligibilityLookup using patient.memberId and patient.insuranceCarrier
- Payer portal lookup succeeds →network-status-check
- Payer portal also unavailable, offer callback CRM.CreateCallbackTask →escalation-human
Confirmation & Close
CRM.LogInteraction with coverage check summary, patient.memberId, service.cptCode, and outcome
- Patient has no further questions satisfied →session-complete
- Patient has an additional service to check new-inquiry →service-inquiry
- Patient raises a dispute or references a denial dispute →escalation-human
Session Complete
CRM.CloseInteraction with resolved status and patient.memberId
Escalation to Specialist
CRM.CreateCase priority: high, tagged coverage-escalation, linked to patient.memberId and service.cptCode
CRM.LogInteraction with escalation reason and full session context

General FAQ Retail
Intake
- Customer asks about store hours or location store-info →store-info
- Customer asks about return or exchange policy return-policy →return-policy
- Customer asks about payment methods or financing payment-options →payment-options
- Customer asks about product availability or details product-inquiry →product-inquiry
- Customer references a specific order or account account-specific →identity-verification
- Customer asks something outside standard categories out-of-scope →edge-case-handler
Store Info
kb.store-locator-policy — retrieve hours and location details relevant to customer.location
StoreLocator.GetStoreDetails for customer.location
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes the information frustrated →policy-pushback
Return Policy
kb.return-exchange-policy — retrieve current return window, conditions, and exclusions based on policy.version
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up or edge-case question follow-up →edge-case-handler
- Customer is frustrated with the policy frustrated →policy-pushback
- Customer references a specific order account-specific →identity-verification
Payment Options
kb.payment-options-policy — retrieve accepted payment methods, financing partners, and any current promotions
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes policy frustrated →policy-pushback
Product Inquiry
kb.product-catalog — look up details for product.name or product.sku
ProductCatalog.GetProductDetails for product.sku
InventoryLookup.CheckAvailability for product.sku at customer.location
- Customer confirms the answer resolves their need confirmed →resolution
- Customer wants more product detail follow-up →product-inquiry-detail
- Customer asks about ordering or account account-specific →identity-verification
- Customer is dissatisfied with availability or details frustrated →policy-pushback
Product Inquiry Detail
kb.product-catalog — retrieve extended specifications, compatibility notes, and related items for product.sku
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has additional questions follow-up →intake
- Customer needs account-level help account-specific →identity-verification
- Customer is dissatisfied frustrated →policy-pushback
Identity Verification
- Customer provides verifiable details confirmed CRM.LookupCustomer →account-inquiry
- Customer is unable or unwilling to provide details unverified →escalation-human
- Customer clarifies they do not actually need account-level help no-account-needed →intake
Account Inquiry
CRM.LookupCustomer for order.id
- Question can be answered with available account data confirmed →resolution
- Issue involves a dispute, complaint, or action beyond FAQ scope complaint →escalation-human
- Customer confirms answer resolves their need resolved →resolution
Edge Case Handler
kb.general-faq — attempt to locate a match for customer.question across all FAQ categories
- A confident, accurate answer is found in FAQ content faq-match →faq-answer
- FAQ content is ambiguous, outdated, or contradicts another source uncertain →uncertainty-acknowledgment
- No relevant FAQ content exists no-match →escalation-human
FAQ Answer
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up follow-up →intake
- Customer is dissatisfied or pushes back frustrated →policy-pushback
Uncertainty Acknowledgment
→escalation-human
Policy Pushback
- Customer agrees to speak with a team member confirmed →escalation-human
- Customer accepts the explanation and no longer needs help resolved →resolution
- Customer has a new or different question follow-up →intake
Escalation to Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.name and customer.question
Resolution

General FAQ — Travel & Hospitality
Inbound Question
CRM.LookupCustomer by customer.phone or customer.email
- Customer asks about cancellation or change policies cancellation →clarify-reservation-context
- Customer asks about amenities, facilities, or property features amenities →clarify-property
- Customer asks about pet policy pets →clarify-property
- Customer asks about meals, dining, or breakfast inclusion dining →clarify-property
- Customer asks about loyalty program benefits or points loyalty →loyalty-faq
- Customer asks about visa, health, or travel entry requirements travel-requirements →travel-requirements-faq
- Customer message is vague or multi-topic unclear →clarify-question
- Customer expresses frustration or dissatisfaction upfront frustrated →escalation-human
Clarify Question
- Customer provides enough detail to categorise clarified →inbound-question
- Customer remains vague or asks multiple unrelated things still-unclear →retrieve-general-faq
- Customer shows frustration frustrated →escalation-human
Clarify Reservation Context
- Customer references an existing reservation →clarify-property
- Customer is asking prospectively →retrieve-general-faq
Clarify Property
PMS.LookupReservation by reservation.id if provided
- Property identified or reservation found →retrieve-property-faq
- Customer cannot specify a property and question is general →retrieve-general-faq
- Customer is frustrated by the extra question frustrated →escalation-human
Retrieve Property-Specific FAQ
kb.property-policies — look up topic.category policy for property.name
- Answer found and complete →deliver-answer
- Answer found but varies by date or rate type →deliver-answer-with-caveat
- Knowledge base has no coverage for this question no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Retrieve General FAQ
kb.general-faq — look up topic.category
- Answer found and universally applicable →deliver-answer
- Answer varies by property →clarify-property
- Answer varies by loyalty tier LoyaltyPlatform.GetTierBenefits →deliver-answer-with-caveat
- Knowledge base has no coverage no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Loyalty FAQ
kb.loyalty-program — retrieve benefits, earning rules, and redemption policies for customer.loyaltyTier
LoyaltyPlatform.GetTierBenefits for customer.loyaltyTier
- Benefits information retrieved →deliver-answer
- Customer's tier could not be confirmed →deliver-answer-with-caveat
- Customer disputes their tier or points balance dispute →escalation-human
Travel Requirements FAQ
kb.travel-entry-requirements — look up destination property.location for reservation.checkIn dates
- Summary retrieved →deliver-answer-with-caveat
- No information available for this destination no-coverage →knowledge-gap
- Customer raises a medical or legal compliance concern sensitive →escalation-human
Deliver Answer
- Customer is satisfied and has no further questions satisfied →resolution
- Customer has a follow-up question on the same topic follow-up →retrieve-property-faq
- Customer has a completely new question new-topic →inbound-question
- Customer is not satisfied with the answer unsatisfied →escalation-human
Deliver Answer With Caveat
- Customer accepts the answer and caveats satisfied →resolution
- Customer wants clarification on a specific variant follow-up →clarify-property
- Customer is unsatisfied or concerned unsatisfied →escalation-human
Knowledge Gap
CRM.LogInteraction note: unanswered FAQ topic, question.raw, property.name
- Customer agrees to be connected confirmed →escalation-human
- Customer declines transfer and wants to try another question new-topic →inbound-question
- Customer ends the conversation end →resolution
Escalation to Human Specialist
CRM.LogInteraction with question.raw, topic.category, reservation.id, customer.loyaltyTier, escalation reason
Resolution
CRM.LogInteraction note: FAQ resolved, topic.category, property.name, customer.loyaltyTier

Flight/Trip Disruption Support
Intake & Verification
PNR.LookupBooking using booking.confirmationNumber and booking.passengerName
- Booking found and passenger name matches →identity-check
- Booking not found or name mismatch confused PNR.LookupBooking retry with loyalty number booking.loyaltyNumber →identity-check
- No booking reference available at all →escalation-human
Identity Check
IdentityVerification.Challenge using booking.passengerName and traveler.email
- Identity verified identity_verified →disruption-assessment
- Identity check fails after two attempts identity_failed →escalation-secure-verification
- Customer declines verification declined →escalation-secure-verification
Disruption Assessment
PNR.GetAffectedSegment for booking.confirmationNumber to pre-populate trip.affectedSegment
- Flight cancellation confirmed cancellation →rebooking-options
- Significant delay (2+ hours) delay →rebooking-options
- Missed connection missed-connection →rebooking-options
- Hotel or accommodation failure hotel-issue →hotel-resolution
- Customer already self-rebooked self-rebooked →self-rebook-review
- Medical or safety emergency emergency →escalation-human
Rebooking Options
kb.rebooking-policy — check eligibility rules, same-carrier preference, fare class protection, and partner airline agreements for booking.fareClass
GDS.SearchAvailability for trip.destination from traveler.currentLocation on trip.travelDate and next 24 hours
- Suitable same-carrier option found →rebook-confirmation
- Only partner carrier options available →partner-carrier-offer
- No viable rebooking option exists no_options →refund-assessment
- Minor traveling alone flag raised minor_alone →escalation-human
Rebook Confirmation
- Customer confirms new flight confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Customer wants to see other options wants-alternatives →rebooking-options
- Customer declines all options and wants a refund refund-requested →refund-assessment
Partner Carrier Offer
kb.partner-airline-policy — confirm interline agreement, baggage transfer rules, and any fare difference liability
- Customer accepts confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Fare difference exceeds authorization limit fare_over_limit →escalation-human
- Customer declines and requests refund refund-requested →refund-assessment
Self-Rebook Review
PNR.GetAffectedSegment to compare original booking.itinerary against new booking
GDS.CheckFareDifference for rebooking.fareDifference
- Self-rebook is clean, no fare difference owed no_difference →confirmation-and-vouchers
- Fare difference owed to customer fare_refund_due →refund-assessment
- Duplicate charge detected duplicate_charge →refund-assessment
- Self-rebook is invalid or ticketing error ticketing_error →rebooking-options
Hotel Resolution
kb.hotel-disruption-policy — review duty-of-care obligations, walk procedures, and compensation entitlements
- Hotel overbooked, walk required hotel-walk HotelAPI.FindAlternativeProperty →hotel-rebook-confirmation
- Room condition complaint (safety, cleanliness) room-condition HotelAPI.EscalateProperty →hotel-rebook-confirmation
- Issue requires compensation above agent limit hotel_over_limit →escalation-human
Hotel Rebook Confirmation
- Customer confirms confirmed HotelAPI.TransferReservation CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer prefers to resolve independently self-resolve →confirmation-and-vouchers
- Compensation amount exceeds authorization hotel_over_limit →escalation-human
Refund Assessment
kb.refund-policy — verify refundability for booking.fareClass, disruption cause trip.disruption.cause, and weather exception rules
- Full refund eligible full_refund PNR.InitiateRefund →confirmation-and-vouchers
- Travel credit or voucher eligible voucher_eligible CompensationTool.IssueVoucher →confirmation-and-vouchers
- Weather-related, limited compensation weather_limited →weather-exception-handling
- Refund amount exceeds agent authorization refund_over_limit →escalation-human
- No refund eligibility confirmed no_refund →compensation-conversation
Weather Exception Handling
kb.weather-disruption-policy — confirm exact entitlements and any duty-of-care exceptions
- Customer accepts limited offer accepted CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer disputes and requests escalation escalate →escalation-human
- Customer requests full refund citing extraordinary circumstances extraordinary →escalation-human
Compensation Conversation
CompensationTool.CalculateEntitlement for booking.fareClass and booking.loyaltyNumber
- Goodwill voucher available CompensationTool.IssueVoucher →confirmation-and-vouchers
- Nothing available within agent limits no_compensation_available →escalation-human
Confirmation & Vouchers
PNR.SendConfirmationEmail to traveler.email with updated booking.itinerary
CompensationTool.DeliverVoucher to traveler.email if applicable
Salesforce.UpdateCase with resolution summary, disruption type trip.disruption.type, and compensation issued
- Customer has additional questions or issues more-help →disruption-assessment
- Customer is satisfied and conversation is complete resolved →resolution-close
Resolution Close
Salesforce.CloseCase with outcome logged and customer satisfaction noted
Escalation — Secure Verification
Salesforce.CreateCase priority: high, tagged identity-verification-required
IdentityVerification.RouteToSecureChannel for traveler.phone or traveler.email
Escalation — Human Agent
Salesforce.CreateCase priority: high, tagged disruption-escalation with full case summary, booking.confirmationNumber, trip.affectedSegment, and trip.disruption.cause
PNR.FlagForSeniorAgent on booking.confirmationNumber
Salesforce.NotifyAgent via #disruption-escalations with case link and urgency flag

Damaged / Wrong Item Received
Intake & Verify
- Customer provides order ID OMS.LookupOrder by order.id →confirm-order
- Customer provides email or phone instead CRM.LookupByContact by customer.email or customer.phone →confirm-order
- Customer cannot provide any identifying information →identity-unverifiable
Confirm Order
OMS.GetOrderDetails for order.id — retrieve item.description, order.deliveryDate, order.status, order.value
- Order found, delivery confirmed, customer describes damaged item →issue-triage
- Order found, delivery confirmed, customer describes wrong item received →issue-triage
- Order found but not yet marked delivered ShippingCarrier.GetTrackingStatus →delivery-unclear
- Order lookup returns an error or ambiguous result CRM.FlagForManualReview →system-lookup-failed
Issue Triage
kb.returns-replacement-policy — verify order.deliveryDate is within policy.replacementWindowDays and check photo evidence requirements for item.issue
- Within policy window, photo evidence required by policy →request-photo-evidence
- Within policy window, no photo evidence required →resolution-offer
- Outside policy window →outside-return-window
Request Photo Evidence
PhotoUpload.SendUploadLink to customer.email or customer.phone
- Customer submits photo, evidence is clear →resolution-offer
- Customer unable to submit photo, order value is within policy.autoApprovalThreshold Policy.CheckGoodwillEligibility →goodwill-exception-review
- Customer unable to submit photo, order value exceeds policy.autoApprovalThreshold →escalation-human
Goodwill Exception Review
- Goodwill waiver approved within constraints goodwill_approved →resolution-offer
- Goodwill waiver outside constraints or repeat exception needs_review →escalation-human
Resolution Offer
- Customer prefers replacement →initiate-replacement
- Customer prefers refund →initiate-refund
- Customer is unsure, asks for more information →explain-resolution-options
Explain Resolution Options
kb.returns-replacement-policy — confirm refund and replacement timelines for customer.preferredResolution
- Customer selects replacement →initiate-replacement
- Customer selects refund →initiate-refund
- Customer requests something outside standard options →escalation-human
Initiate Replacement
OMS.CreateReplacementOrder for order.id, ship to address on file
ReturnsManager.OpenReturnCase tagged replacement, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and estimated delivery
→close-case
Initiate Refund
ReturnsManager.InitiateRefund for order.id, full amount to original payment method
ReturnsManager.OpenReturnCase tagged refund, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and refund timeline
→close-case
Outside Return Window
kb.returns-replacement-policy — check partial goodwill resolution eligibility for out-of-window orders
- Approved for partial goodwill resolution approved ReturnsManager.InitiatePartialCredit →partial-resolution-confirmed
- Rejected, no goodwill exception authorised rejected →policy-decline
- No response within 60 min →escalation-human
Partial Resolution Confirmed
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and credit details
→close-case
Policy Decline
- Customer accepts the outcome →close-case
- Customer wants to escalate or disputes the outcome →escalation-human
Delivery Unclear
ShippingCarrier.GetTrackingStatus for order.id
- Carrier confirms delivered, discrepancy in OMS OMS.FlagOrderStatusMismatch →system-lookup-failed
- Carrier confirms still in transit →close-case
- Carrier confirms lost or exception raised →escalation-human
System Lookup Failed
CRM.CreateCase priority: medium, tagged order-lookup-error, linked to customer.email
CRM.ScheduleCallback for customer.phone within 24 hours
- Customer confirms callback number CRM.UpdateCaseContactDetails →close-case
- Customer prefers email follow-up Twilio.SendNotification confirmation to customer.email →close-case
Identity Unverifiable
- Customer finds identifying information →intake-and-verify
- Customer still cannot provide verification, low-value context →escalation-human
- Customer becomes frustrated or demands override →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged damaged-wrong-item-escalation, linked to order.id and customer.email
Slack.Notify to #retail-support-escalations with case summary, order.id, order.value, item.issue, and reason for escalation
Close Case
CRM.CloseCase for case.id, log resolution type and resolution.confirmationNumber

Complaint Escalation — Telecom
Intake and Verification
CRM.LookupAccount using customer.accountNumber or customer.name
- Identity verified successfully CRM.PullComplaintHistory →complaint-history-review
- Identity cannot be verified after two attempts →identity-escalation
- Customer is immediately hostile or threatening frustrated →de-escalation
Complaint History Review
CRM.GetAccountSummary to load customer.accountNumber, complaint.history, and complaint.compensationOffered
CaseManagement.SearchByAccount to find any existing ticket linked to complaint.priorTicketId
- Prior ticket found CaseManagement.OpenCase with complaint.priorTicketId →complaint-confirmation
- No prior ticket found →new-case-creation
- Customer references regulatory body or legal action legal_threat →regulatory-legal-routing
New Case Creation
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, complaint.compensationOffered
- Case created successfully →complaint-confirmation
- System unavailable system_down →system-unavailable-fallback
Complaint Confirmation
- Customer confirms details are correct confirmed →escalation-routing
- Customer adds new information or corrects details update_needed CaseManagement.UpdateCase with revised notes →escalation-routing
- Customer becomes highly distressed or makes a regulatory reference legal_threat →regulatory-legal-routing
- Customer demands supervisor immediately supervisor_demand →escalation-routing
Escalation Routing
EscalationRouting.IdentifyTeam using complaint.servicesAffected, complaint.nature, and customer.accountNumber to assign case.escalationTeam and case.responseTimeline
CaseManagement.UpdateCase with case.escalationTeam, case.responseTimeline, full interaction notes, and complaint.compensationOffered
CommsLog.RecordInteraction with customer.accountNumber, case.id, and channel details
- Standard priority confirmed →escalation-acknowledgement
- Upgrade to high priority warranted high_priority EscalationRouting.UpgradePriority →escalation-acknowledgement
- Business or critical infrastructure account identified critical_account EscalationRouting.UpgradePriority →escalation-acknowledgement
Escalation Acknowledgement
- Approved and owner assigned approved CaseManagement.UpdateCase →customer-close-out
- Rejected or reassignment needed rejected EscalationRouting.IdentifyTeam →escalation-routing
- No response within 20 minutes →escalation-human
Customer Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id, case.escalationTeam, and case.responseTimeline
BillingPlatform.NoteAccount with escalation flag and case.id
- Customer is satisfied and has no further questions confirmed →resolution-close
- Customer requests additional credit or compensation →compensation-review
- Customer remains unsatisfied and escalates further frustrated →escalation-human
Compensation Review
kb.compensation-credit-policy — check eligibility based on complaint.servicesAffected, outage duration, and complaint.compensationOffered
- Credit within policy limits approved approved BillingPlatform.ApplyCredit →customer-close-out
- Credit exceeds policy limit needs_approval →escalation-human
- Prior credit already granted, none applicable ineligible →customer-close-out
De-escalation
kb.de-escalation-guidelines — apply language and pacing guidance for hostile or distressed callers
- Customer settles enough to continue confirmed →intake-and-verification
- Customer remains hostile or uses threatening language hostile CommsLog.FlagInteraction for supervisor review →escalation-human
- Customer mentions regulatory body or legal action legal_threat →regulatory-legal-routing
Regulatory and Legal Routing
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, and legal or regulatory flag
CommsLog.FlagInteraction with legal_regulatory tag and case.id
EscalationRouting.RouteToCompliance with case.id and full case context
- Compliance or legal team notified compliance_routed →regulatory-close-out
- Routing system unavailable system_down →system-unavailable-fallback
Regulatory Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id and compliance escalation notice
System Unavailable Fallback
CommsLog.ManualNoteEntry with customer.name, customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, and timestamp
- Manual log completed, systems expected to restore shortly →resolution-close
- Systems remain down and customer needs immediate escalation →escalation-human
Escalation to Human Agent
EscalationRouting.PageSupervisor with case.id, customer.accountNumber, complaint.nature, and urgency flag
CommsLog.FlagInteraction with supervisor_required tag
Slack.Notify to #escalations-live with case summary, customer.accountNumber, and case.id
Identity Escalation
CRM.SendVerificationLink to contact details on file
- Customer verifies via link and calls back →intake-and-verification
- Customer unable or unwilling to verify →escalation-human
Resolution Close
CaseManagement.UpdateCase with resolved_handoff status and final interaction notes
CommsLog.CloseInteraction with customer.accountNumber and case.id

Complaint / Feedback Intake
Intake Greeting
- Patient provides name and date of birth →identity-verification
- Patient declines to provide identifying information →unverified-caller
- Patient immediately expresses significant distress →distressed-patient
Identity Verification
EHR.LookupPatient using patient.name and patient.dob
- Identity confirmed, patient record located in EHR verified →complaint-type-triage
- Identity cannot be confirmed after two attempts unverified →unverified-caller
- Patient becomes distressed during verification →distressed-patient
Complaint Type Triage
- Patient describes a potential safety event, clinical harm, abuse, or neglect safety-incident →safety-escalation
- Patient explicitly requests a patient advocate or administrator requests-advocate →escalation-human
- Patient describes a complaint about care quality, provider conduct, facility, or billing complaint →complaint-intake
- Patient is sharing positive or general feedback positive-feedback →commendation-intake
- Patient becomes emotionally distressed at any point distressed →distressed-patient
Distressed Patient
- Patient is ready to continue after acknowledgment ready →complaint-type-triage
- Patient remains highly distressed and requests to speak with someone senior requests-advocate →escalation-human
- Patient discloses a safety concern or harm during this exchange safety-incident →safety-escalation
Complaint Intake
EHR.GetPatientContext for patient.id to pre-populate known provider and visit history
- All key details collected — date, provider or department, nature, preferred contact →complaint-logging
- Patient cannot recall specific date or provider →complaint-logging
- Patient discloses details suggesting clinical harm or a safety event during intake safety-incident →safety-escalation
- Patient becomes distressed during intake →distressed-patient
Complaint Logging
GrievanceManagement.CreateCase with patient.id, patient.name, patient.dob, complaint.date, complaint.nature, complaint.provider, complaint.department, patient.preferredContact, case.priority
CRM.UpdatePatientRecord with case reference and feedback.type tagged as complaint
- Patient has no further questions →resolution-acknowledgment
- Patient raises an additional complaint or concern →complaint-intake
- Patient raises a safety concern at this stage safety-incident →safety-escalation
- Patient requests to speak with a patient advocate requests-advocate →escalation-human
Commendation Intake
CRM.LogFeedback with patient.id, patient.name, feedback.type tagged as commendation, and complaint.provider or complaint.department if provided
- Patient has nothing further to add →resolution-acknowledgment
- Patient also has a complaint to raise →complaint-intake
Unverified Caller
kb.patient-complaint-submission-policy — confirm current written complaint and in-person intake options
- Patient accepts alternative options and ends the call →resolution-acknowledgment
- Patient becomes distressed about inability to proceed →distressed-patient
- Patient discloses a safety concern despite being unverified safety-incident →safety-escalation
Safety Escalation
RiskReporting.CreateIncident tagged high-priority with patient.name, patient.dob, patient.id if verified, complaint.nature, complaint.date, complaint.provider, complaint.department
GrievanceManagement.CreateCase with case.priority set to high and flagged for clinical risk management review
SecureMessaging.NotifyClinicalRiskTeam with incident summary and complaint.referenceNumber
Escalation to Human Agent
CRM.UpdatePatientRecord with escalation flag and case summary
SecureMessaging.NotifyPatientAdvocate with patient.name, patient.id if verified, complaint.nature, and preferred contact patient.preferredContact
Resolution Acknowledgment

Check-in / Check-out Assistance
Contact & Intent Capture
- Guest says checking in intent-checkin →reservation-lookup-checkin
- Guest says checking out intent-checkout →reservation-lookup-checkout
- Guest mentions a problem or issue intent-issue →reservation-lookup-checkin
- Intent is unclear unclear →clarify-intent
Clarify Intent
- Guest clarifies check-in intent-checkin →reservation-lookup-checkin
- Guest clarifies check-out intent-checkout →reservation-lookup-checkout
- Still unclear after two attempts still-unclear →escalation-human
Reservation Lookup — Check-in
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, arrival date matches reservation.arrivalDate →identity-verification
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Lookup — Check-out
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, departure date matches reservation.departureDate →folio-review
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Not Found
PMS.SearchByNameAndDate using guest.fullName and reservation.arrivalDate
CRM.LookupGuestProfile using guest.email or guest.loyaltyId
- Reservation found by name and date search →identity-verification
- Reservation appears to be a third-party booking third-party-booking PMS.RequestThirdPartyImport for booking.thirdPartySource →third-party-import-pending
- No reservation found after all searches →escalation-human
Third-Party Import Pending
- Guest agrees to wait, import completes successfully →identity-verification
- Guest prefers callback or notification CRM.CreateCallback for guest.phone or guest.email →resolution-pending-notification
- Import fails after retry import-failed →escalation-human
Identity Verification
IDVerification.VerifyGuest using guest.fullName, guest.loyaltyId, and reservation.confirmationNumber
- Identity verified successfully identity-verified →room-readiness-check
- Identity cannot be verified after two attempts identity-failed →escalation-human
Room Readiness Check
PMS.CheckRoomStatus for reservation.roomType and reservation.specialRequests
- Room is ready and assigned room.number is available room-ready →room-assignment-confirm
- Room is not yet ready room-not-ready →room-not-ready-options
- No room available due to overbooking overbooked →escalation-human
Room Assignment Confirmation
DigitalKeySystem.IssueKey for room.number linked to guest.email or guest.phone
CRM.UpdateGuestProfile with check-in timestamp and room.number
PMS.RecordCheckIn for reservation.confirmationNumber
- Guest has additional requests additional-requests →special-requests-handling
- Guest is satisfied and done satisfied →resolution-checkin-complete
Room Not Ready — Options
- Guest requests luggage storage PMS.ArrangeLuggageStorage for guest.fullName →ready-room-alert-setup
- Guest requests lounge access PMS.GrantLoungeAccess for guest.loyaltyId →ready-room-alert-setup
- Guest wants notification only →ready-room-alert-setup
- Guest is frustrated or insists on immediate room frustrated →escalation-human
Ready-Room Alert Setup
PMS.SetReadyRoomAlert for reservation.confirmationNumber, notify via guest.phone or guest.email
- Guest has further needs additional-requests →special-requests-handling
- Guest is happy to wait satisfied →resolution-pending-notification
Special Requests Handling
PMS.UpdateSpecialRequests for reservation.confirmationNumber with reservation.specialRequests
CRM.LogGuestPreference for guest.loyaltyId
- Request logged successfully, guest is satisfied →resolution-checkin-complete
- Request cannot be fulfilled, requires manager input →escalation-human
Folio Review
BillingSystem.GenerateFolio for reservation.confirmationNumber
BillingSystem.SendItemizedFolio to guest.email with folio.itemizedUrl
- Guest confirms all charges are correct confirmed →checkout-processing
- Guest has a question about a charge question →folio-explanation
- Guest disputes a charge dispute →charge-dispute
Folio Explanation
kb.billing-policy — review applicable rate, tax, and incidental policies
- Guest accepts the explanation confirmed →checkout-processing
- Guest still disputes after explanation still-disputes →charge-dispute
Charge Dispute
- Dispute is valid and within adjustment authority adjustment-approved BillingSystem.ApplyAdjustment for dispute.amount →checkout-processing
- Dispute is valid but exceeds adjustment authority exceeds-authority →escalation-human
- Dispute is not supported by policy dispute-denied →dispute-denial-explanation
Dispute Denial Explanation
- Guest accepts and wants to proceed accepted →checkout-processing
- Guest wants escalation wants-escalation →escalation-human
Check-out Processing
BillingSystem.SettleFolio for reservation.confirmationNumber
PMS.RecordCheckOut for reservation.confirmationNumber
DigitalKeySystem.DeactivateKey for room.number
CRM.UpdateGuestProfile with check-out timestamp and stay summary
- Guest has feedback or further questions feedback →post-stay-feedback
- Guest is satisfied and done satisfied →resolution-checkout-complete
Post-Stay Feedback
CRM.LogFeedback for guest.loyaltyId and reservation.confirmationNumber
- Feedback logged, guest is done →resolution-checkout-complete
- Guest raises a serious concern or complaint serious-complaint →escalation-human
Outside Hours — Self-Service or On-Call
PMS.CheckSelfServiceKioskAvailability
- Self-service kiosk is available and guest agrees kiosk-ready DigitalKeySystem.IssueKioskKey for reservation.confirmationNumber →room-assignment-confirm
- Guest prefers on-call staff or kiosk is unavailable →escalation-human
Escalation to Human Agent
CRM.CreateUrgentCase for guest.fullName, reservation.confirmationNumber, and reason for escalation
PMS.FlagReservation with escalation status
Resolution — Check-in Complete
Resolution — Check-out Complete
Resolution — Pending Notification

Cancellation / Retention
Intent Capture
CRM.LookupAccount on customer.accountNumber
- Identity verified successfully verified →account-review
- Identity cannot be confirmed after two attempts →escalation-human
Account Review
CRM.GetAccountDetails to load account.planName, account.contractStatus, account.contractEndDate, account.tenure
BillingSystem.GetBalance to load account.outstandingBalance and account.paymentHistory
ContractManagement.GetETF to load account.etfAmount
- Customer cites cost or billing concern reason-cost →retention-offer
- Customer cites service quality or technical issue reason-service →complaint-resolution
- Customer cites competitor offer or plan comparison reason-competitor →retention-offer
- Customer cites relocation or life change reason-life-change →retention-offer
- Customer gives no specific reason or says "just want to cancel" reason-firm →etf-disclosure-check
Complaint Resolution
CRM.CreateCase tagged service-complaint, linked to customer.accountNumber
- Complaint is resolvable and customer is receptive →retention-offer
- Complaint is complex or customer remains frustrated unresolved_complaint →escalation-human
ETF Disclosure Check
ContractManagement.GetETF to confirm account.etfAmount and account.contractStatus
- Account is within contract and ETF applies etf_applies →etf-disclosure
- Account is out of contract or no ETF no_etf →retention-offer
ETF Disclosure
- Customer acknowledges ETF and still wants to proceed etf-acknowledged →retention-offer
- Customer disputes the ETF amount or asks for a waiver etf-disputed →escalation-human
- Customer is surprised and wants time to think etf-reconsidering →retention-offer
Retention Offer
RetentionOfferEngine.GetEligibleOffers for customer.accountNumber, filtered by cancellation.reason, account.tenure, account.paymentHistory
- Suitable offer identified offer_ready →present-offer
- No eligible offers found no_offer →outstanding-balance-check
Present Offer
- Customer accepts the offer offer-accepted →offer-acceptance
- Customer asks for something better or different offer-counter →secondary-offer
- Customer declines and still wants to cancel offer-declined →outstanding-balance-check
Secondary Offer
RetentionOfferEngine.GetEligibleOffers ranked by value, excluding retention.offerId already presented
- A second distinct offer exists second_offer_available →present-second-offer
- No further offers available no_further_offers →outstanding-balance-check
Present Second Offer
- Customer accepts offer-accepted →offer-acceptance
- Customer declines or remains firm offer-declined →outstanding-balance-check
Offer Acceptance
RetentionOfferEngine.ApplyOffer for customer.accountNumber with retention.offerId
CRM.UpdateAccount with retention outcome and retention.offerId applied
Twilio.SendSMS to customer.phone confirming offer details and retention.offerExpiry
Twilio.SendEmail to customer.email with full offer confirmation and updated plan summary
Outstanding Balance Check
BillingSystem.GetBalance to confirm account.outstandingBalance
- Outstanding balance exists on account balance_owing →balance-disclosure
- No outstanding balance balance_clear →process-cancellation
Balance Disclosure
- Customer wants to discuss payment or sort balance first balance-resolve →escalation-human
- Customer acknowledges and confirms they want to proceed with cancellation balance-acknowledged →process-cancellation
- Customer becomes frustrated or disputes the balance balance-disputed →escalation-human
Process Cancellation
CRM.InitiateCancellation for customer.accountNumber
BillingSystem.CalculateFinalBill to return transaction.finalBillDate and any remaining charges
ContractManagement.ApplyETF if etf_applies is set on this session
CRM.UpdateAccount with cancellation status and reason cancellation.reason
- ETF applies on this account etf_applies →cancellation-confirmation-etf
- No ETF on this account no_etf →cancellation-confirmation-clean
Cancellation Confirmation — ETF
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, account.etfAmount, and balance summary
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Cancellation Confirmation — Clean
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, and any final balance details
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to customer.accountNumber
CRM.AddNote with full session summary: cancellation.reason, offers presented, ETF status, balance status
Twilio.SendSMS to customer.phone: "We're connecting you with a specialist who can assist further."

Booking Cancellation / Refund Request
Identity Verification
CRM.LookupCustomer using customer.fullName and customer.email or customer.phone
- Customer record found and details match confirmed →booking-lookup
- Details provided do not match any record unrecognized →reverify-identity
- Customer is unable or unwilling to provide verification details refused →escalation-human
Re-verify Identity
CRM.LookupCustomer retry with alternate details
- Match found on second attempt confirmed →booking-lookup
- Still no match after second attempt unrecognized →escalation-human
Booking Lookup
ReservationManagement.GetBooking using booking.id
- Booking found and active confirmed →cancellation-policy-check
- Booking not found or ID invalid not_found →escalation-human
- Booking already cancelled already_cancelled →refund-status-check
Cancellation Policy Check
PolicyRulesEngine.GetCancellationPolicy for booking.id and booking.rateClass
- Booking is within the free-cancellation window free_cancel →confirm-cancellation-intent
- Booking is outside the free-cancellation window and fees apply fees_apply →outside-window-advisory
- Booking was made through a third-party OTA ota_booking →ota-redirect
Confirm Cancellation Intent
- Customer provides cancellation reason and confirms they want to proceed confirmed →process-cancellation
- Customer wants to change dates instead of cancelling date_change →escalation-human
- Customer is unsure and wants time to decide undecided →send-policy-summary
Send Policy Summary
NotificationService.SendEmail to customer.email with cancellation policy summary and free-cancellation deadline for booking.id
- Customer returns and confirms cancellation confirmed →process-cancellation
- Customer does not respond within 24 hours →escalation-human
Outside Window Advisory
kb.cancellation-policy — check fee waiver eligibility and alternative options for booking.rateClass
- Customer accepts the fee and wants to cancel accepted_fee →process-cancellation
- Customer wants to apply for a travel credit instead credit_preferred →process-travel-credit
- Customer cites extenuating circumstances such as medical or bereavement extenuating →extenuating-circumstances-review
- Customer disputes the fee and demands a waiver beyond advisory authority disputes_fee →escalation-human
Extenuating Circumstances Review
CRM.CreateCase tagged exception-review, linked to booking.id, reason: cancellation.reason
- Customer agrees to submit documentation doc_provided →flag-for-exception-review
- Customer cannot or will not provide documentation no_doc →escalation-human
Flag for Exception Review
CRM.UpdateCase with exception.documentType and submitted evidence
NotificationService.SendEmail to customer.email confirming exception review has been opened with case reference
- Exception review is opened and customer is notified →resolution-confirmation
Process Cancellation
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.InitiateRefund for refund.amount to booking.paymentMethod
CRM.UpdateRecord with cancellation details for customer.fullName
- Cancellation and refund initiated successfully success →send-confirmation
- System error prevents processing system_error →escalation-human
Process Travel Credit
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.IssueTravelCredit for refund.creditValue linked to customer.email
CRM.UpdateRecord with credit issuance details
- Credit issued successfully success →send-confirmation
- System error during credit issuance system_error →escalation-human
Send Confirmation
NotificationService.SendEmail to customer.email with cancellation confirmation, refund.amount or refund.creditValue, and refund.timeline
- Confirmation sent successfully →resolution-confirmation
Refund Status Check
PaymentProcessor.GetRefundStatus for refund.transactionId
- Refund has been issued and should have been received issued →refund-already-issued
- Refund is still processing processing →advise-refund-in-progress
- No refund record found not_found →escalation-human
Refund Already Issued
- Customer confirms refund has now been received confirmed →resolution-confirmation
- Customer still has not received the refund after the expected window not_received →escalation-finance
Advise Refund In Progress
NotificationService.SendEmail to customer.email with refund status and refund.transactionId
- Customer is satisfied and no further action needed →resolution-confirmation
- Customer requests further escalation escalation_requested →escalation-finance
OTA Redirect
kb.ota-partner-contacts — retrieve contact instructions and cancellation process for booking.otaSource
NotificationService.SendEmail to customer.email with OTA redirect instructions and booking reference details
- Customer acknowledges and will contact OTA directly →resolution-confirmation
- Customer is frustrated and requests direct escalation escalation_requested →escalation-human
Escalation to Finance Team
CRM.CreateCase priority: high, tagged refund-not-received, linked to refund.transactionId
NotificationService.NotifyTeam to #finance-escalations with customer.fullName, booking.id, refund.amount, and refund.transactionId
→resolution-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to booking.id
NotificationService.NotifyTeam to #reservations-support with customer.fullName, booking.id, and case summary
Resolution Confirmation

Beneficiary / Policy Detail Update
Intake and Change Request
CRM.LookupPolicy using customer.fullName and customer.policyNumber
- Policy record found, proceed to verification →identity-verification
- Policy record not found or mismatch →policy-not-found
Policy Not Found
- Customer provides corrected details CRM.LookupPolicy retry →identity-verification
- Customer cannot locate their policy number →escalation-human
Identity Verification
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified on first or second attempt verified →change-type-collection
- First attempt fails, prompt retry retry →identity-retry
- Second attempt fails identity_failed →identity-lockout
Identity Retry
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified verified →change-type-collection
- Second attempt also fails identity_failed →identity-lockout
Identity Lockout
CRM.LogEvent tag: identity-verification-failure, policy: customer.policyNumber
CRM.CreateCase priority: high, tag: id-lockout-policy-change
- Customer requests written instructions CRM.SendEmail template: id-lockout-instructions to customer.email →escalation-human
- Customer declines →escalation-human
Change Type Collection
- Customer wants to update a beneficiary beneficiary-change →beneficiary-detail-collection
- Customer wants to update address, name, or contact info contact-or-name-change →contact-detail-collection
- Customer mentions a death in relation to the beneficiary change death-related →bereavement-sensitive-path
- Request involves a disputed beneficiary or legal document such as a court order legal-dispute →escalation-human
Beneficiary Detail Collection
PolicyAdmin.GetCurrentBeneficiary for customer.policyNumber
- New beneficiary details collected, no death involved →form-requirement-check
- Customer indicates they are removing a beneficiary following a death →bereavement-sensitive-path
Bereavement Sensitive Path
CRM.FlagCase tag: bereavement-sensitivity, policy: customer.policyNumber
- Customer has or will submit death certificate →form-requirement-check
- Customer cannot provide documentation at this time CRM.CreateFollowUpTask deadline: 30-days, policy: customer.policyNumber →pending-form-followup
Contact Detail Collection
PolicyAdmin.GetPolicyDetails for customer.policyNumber
- Customer provides the new detail clearly →direct-update-check
- Customer is changing their legal name, supporting documentation may be required →form-requirement-check
Direct Update Check
- Simple contact update, no form required no_form_needed →apply-direct-update
- Legal name or document-required change form_required →form-requirement-check
Form Requirement Check
kb.policy-change-requirements — check whether a wet signature, e-signature form, or supporting document is legally required for policy.changeType
- E-signature form is sufficient ESignature.SendForm template: change-of-beneficiary to customer.email →esignature-pending
- Wet signature or physical document required →wet-signature-required
- No form required, change can be processed directly →apply-direct-update
E-Signature Pending
ESignature.SendForm to customer.email, linked to customer.policyNumber
CRM.CreateFollowUpTask tag: esignature-pending, deadline: 7-days, policy: customer.policyNumber
- Customer confirms they received and completed the form →apply-direct-update
- Customer cannot complete the form now →pending-form-followup
- No response or form not returned within deadline CRM.EscalateTask →escalation-human
Wet Signature Required
DocumentManagement.GenerateForm template: beneficiary-change-form, policy: customer.policyNumber
CRM.SendEmail template: wet-signature-instructions, attachment: change-form to customer.email
CRM.CreateFollowUpTask tag: wet-signature-pending, deadline: 30-days, policy: customer.policyNumber
- Customer acknowledges and will return the form →pending-form-followup
- Customer cannot return the form within the deadline →pending-form-followup
Pending Form Follow-up
CRM.CreateFollowUpTask tag: pending-change-form, deadline: 30-days, policy: customer.policyNumber
CRM.SendEmail template: pending-change-reminder to customer.email
- Customer has additional questions →escalation-human
- Customer is satisfied →resolution-confirmed
Apply Direct Update
- Customer confirms the details are correct →save-policy-update
- Customer requests a correction →change-type-collection
Save Policy Update
PolicyAdmin.SaveChange policy: customer.policyNumber, change: update.newDetail
CRM.UpdateRecord policy: customer.policyNumber, tag: policy-detail-updated
DocumentManagement.LogChange policy: customer.policyNumber, agent: Insurance Support Agent
- Save successful save_success →confirmation-and-close
- System unavailable or save error system_down →system-unavailable
System Unavailable
CRM.CreateManualLog details: update.newDetail, policy: customer.policyNumber, tag: manual-change-request
CRM.GenerateCaseReference -> case.referenceNumber
CRM.ScheduleCallback within: 1-business-day, contact: customer.phone
→resolution-confirmed
Confirmation and Close
CRM.SendEmail template: policy-change-confirmation, policy: customer.policyNumber to customer.email
- Customer has another request →change-type-collection
- Customer is done →resolution-confirmed
Resolution Confirmed
CRM.CloseCase policy: customer.policyNumber, status: resolved
Escalation to Human Agent
CRM.CreateCase priority: high, tag: policy-change-escalation, policy: customer.policyNumber
CRM.NotifyTeam channel: #policy-ops-escalations, details: customer.policyNumber

Appointment Reschedule / Cancellation
Intake and Identity Verification
EHR.LookupPatient using patient.fullName and patient.dateOfBirth to retrieve the patient record and patient.id.
EHR.VerifyIdentity against patient.id and patient.accountNumber.
- Identity verified successfully verified →confirm-appointment-details
- Identity cannot be verified after two attempts unverified →identity-failure
- Patient reports an urgent symptom or medical concern during intake urgent_concern →clinical-triage-escalation
Identity Verification Failure
CRM.LogInteraction tagged identity-verification-failure, linked to patient.id
- Patient accepts and ends the call accepted →resolution-no-change
- Patient escalates or disputes the inability to verify frustrated →escalation-human
Confirm Appointment Details
EHR.GetAppointment for patient.id to retrieve appointment.date, appointment.provider, and appointment.id.
- Patient wants to reschedule reschedule →reschedule-reason
- Patient wants to cancel cancel →cancellation-reason
- Patient is vague or unsure unclear →clarify-intent
- Patient mentions a new or worsening symptom as the reason urgent_concern →clinical-triage-escalation
Clarify Intent
- Patient confirms reschedule reschedule →reschedule-reason
- Patient confirms cancellation cancel →cancellation-reason
- Patient mentions a symptom or health concern urgent_concern →clinical-triage-escalation
Reschedule — Reason Capture
CRM.LogInteraction tagged reschedule-request, linked to appointment.id
- Patient provides a reason and preferred window has_preference →check-slot-availability
- Patient has no preference and any slot works no_preference →check-slot-availability
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Check Slot Availability
SchedulingPortal.GetAvailableSlots for appointment.provider within the patient's preferred window.
- Slots available with the same provider within the acceptable window slots_found →offer-new-slot
- No slots available with the same provider within the acceptable window no_slots →no-availability-options
- New slot requires eligibility check due to insurance or date change eligibility_check_needed →insurance-eligibility-check
Offer New Slot
SchedulingPortal.PresentSlots to surface top three available options.
- Patient selects a slot slot_selected SchedulingPortal.BookAppointment →confirm-reschedule
- Patient wants to see more options more_options SchedulingPortal.GetAvailableSlots extended range →offer-new-slot
- Patient changes mind and wants to cancel instead cancel →cancellation-reason
- Patient cannot find a suitable time no_match →no-availability-options
No Availability Options
- Patient accepts the next available slot with the same provider same_provider SchedulingPortal.BookAppointment →confirm-reschedule
- Patient accepts a different provider different_provider SchedulingPortal.GetAvailableSlots alternative providers →offer-new-slot
- Patient wants to join the waitlist waitlist SchedulingPortal.AddToWaitlist for patient.id and appointment.provider →waitlist-confirmed
- Patient is dissatisfied or requests provider callback frustrated →escalation-human
Insurance Eligibility Check
EligibilityVerification.CheckCoverage using patient.id and insurance.status for newAppointment.date.
- Coverage confirmed for the new date eligible →offer-new-slot
- Coverage issue detected — patient may owe out of pocket ineligible →insurance-issue-flag
- Eligibility check inconclusive inconclusive →escalation-human
Insurance Issue Flag
- Patient wants to proceed anyway proceed →offer-new-slot
- Patient wants to speak with billing billing →escalation-human
- Patient decides to cancel instead cancel →cancellation-reason
Cancellation — Reason Capture
EHR.CheckCancellationWindow for appointment.id to retrieve appointment.cancellationWindow.
CRM.LogInteraction tagged cancellation-request, linked to appointment.id
- Within the cancellation window, no fee applicable no_fee →process-cancellation
- Inside the late-cancellation or no-show fee window fee_applicable →late-cancellation-notice
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Late Cancellation Notice
kb.cancellation-fee-policy — reference the applicable fee schedule and patient notification requirements.
- Patient acknowledges and confirms cancellation confirmed →process-cancellation
- Patient disputes the fee or requests a waiver disputes_fee →escalation-human
- Patient decides to keep the appointment instead keep_appointment →resolution-no-change
Process Cancellation
EHR.CancelAppointment for appointment.id, recording reason.change.
SchedulingPortal.ReleaseSlot for appointment.id.
CRM.UpdateRecord tagged cancelled, linked to patient.id and appointment.id.
Twilio.SendNotification to patient.preferredContact with cancellation confirmation referencing appointment.date and appointment.provider.
- Confirmation sent and patient has no further questions →resolution-complete
- Patient wants to reschedule after all reschedule →reschedule-reason
Confirm Reschedule
EHR.UpdateAppointment replacing appointment.id with new slot details: newAppointment.date, newAppointment.time, newAppointment.provider.
CRM.UpdateRecord tagged rescheduled, linked to patient.id.
Twilio.SendNotification to patient.preferredContact with reschedule confirmation including newAppointment.date, newAppointment.time, and newAppointment.provider.
- Patient confirms receipt and has no further questions →resolution-complete
- Patient has an additional question or concern follow_up →resolution-complete
Waitlist Confirmed
CRM.UpdateRecord tagged waitlisted, linked to patient.id and appointment.provider.
- Patient has no further needs →resolution-complete
- Patient wants to also reschedule with a different provider in the meantime reschedule →no-availability-options
Clinical Triage Escalation
CRM.LogInteraction tagged clinical-concern, priority: high, linked to patient.id and appointment.id.
EHR.FlagForTriage for patient.id with note: patient reported symptom concern during scheduling interaction.
- Triage nurse or clinical staff available to take the transfer →escalation-human
- After-hours: no clinical staff available Twilio.SendNotification urgent triage message to on-call line →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, linked to patient.id and appointment.id, tagged for appropriate queue based on reason.
CRM.LogInteraction with full context: appointment.date, appointment.provider, reason.change, escalation trigger.
Resolution — No Change Made
CRM.LogInteraction tagged no-change, linked to patient.id.
Resolution — Complete
CRM.LogInteraction tagged resolved, linked to patient.id.
- Patient has no further needs no_further_needs →session-closed
- Patient has another request another_request →intake-and-verification
Session Closed
CRM.CloseCase linked to patient.id.

Size / Fit / Product Recommendation
Opening
CRM.LookupCustomer by customer.id or session identity to pre-load customer.purchaseHistory and any saved preferences.
- Customer wants sizing or fit help for a specific item size-help →collect-item-and-measurements
- Customer is comparing two or more products compare →product-comparison
- Customer is unsure what they need / browsing browsing →discover-needs
- Customer mentions a previous bad fit or return past-issue →review-past-purchase
Collect Item and Measurements
ProductCatalog.GetProduct to load product.category, product.attributes, and product.sizeGuide for the item the customer mentioned.
- Customer provides measurements has-measurements →run-size-lookup
- Customer doesn't know measurements or is unsure no-measurements →guide-self-measure
- Customer mentions they are between sizes between-sizes →between-sizes-advice
Guide Self-Measure
kb.self-measure-guide — retrieve step-by-step measurement instructions relevant to product.category
- Customer provides measurements after guide has-measurements →run-size-lookup
- Customer still can't measure or prefers not to skip-measure →recommend-size-up
- Customer wants to escalate or speaks with frustration frustrated →escalation-specialist
Between Sizes Advice
kb.sizing-policy — check brand fit philosophy (relaxed, true-to-size, runs small/large) for product.id
- Customer prefers snug fit snug →run-size-lookup
- Customer prefers relaxed fit relaxed →run-size-lookup
- Customer is still unsure unsure →recommend-size-up
Recommend Size Up
→run-size-lookup
Run Size Lookup
SizingGuideDB.MatchSize using customer.measurements, customer.preferences.fitStyle, and product.sizeGuide to generate recommendation.primary.
InventoryManagement.CheckStock for recommendation.primary in product.id to confirm product.stockStatus and product.availableSizes.
- Size is in stock in-stock →present-recommendation
- Size is out of stock out-of-stock →out-of-stock-handling
- Lookup error or ambiguous result lookup-error →escalation-specialist
Present Recommendation
- Customer is ready to add to cart ready-to-buy →add-to-cart
- Customer wants to see an alternative or compare wants-options →present-alternate
- Customer has more questions more-questions →answer-questions
- Customer expresses strong uncertainty or frustration frustrated →escalation-specialist
Present Alternate
ProductCatalog.GetAlternates using product.id, customer.preferences.budget, and customer.preferences.fitStyle to generate recommendation.alternate.
InventoryManagement.CheckStock for recommendation.alternate.
- Customer selects primary recommendation chose-primary →add-to-cart
- Customer selects alternate recommendation chose-alternate →add-to-cart
- Customer wants more comparison detail compare-detail →product-comparison
- Customer is stuck or frustrated frustrated →escalation-specialist
Product Comparison
ProductCatalog.GetProduct for each product the customer is comparing, loading product.attributes for both.
kb.product-comparison-guides — retrieve any curated head-to-head notes for these items.
- Customer is ready to choose and buy ready-to-buy →add-to-cart
- Customer wants sizing checked on one of the options size-help →collect-item-and-measurements
- Customer still undecided still-undecided →present-alternate
- Customer frustrated or overwhelmed frustrated →escalation-specialist
Discover Needs
- Customer provides enough detail to proceed sufficient-detail →collect-item-and-measurements
- Customer provides partial detail partial-detail →collect-item-and-measurements
- Customer is very unclear or disengaged disengaged →escalation-specialist
Review Past Purchase
CRM.GetPurchaseHistory for customer.id to retrieve customer.purchaseHistory including prior sizes, items, and any returns or exchanges.
kb.return-reason-codes — look up fit-related return notes linked to customer.id if available.
- Customer is happy with the adjusted recommendation accepts-advice →run-size-lookup
- Customer wants to explore a different product entirely different-product →discover-needs
- Customer is frustrated about the past experience frustrated →escalation-specialist
Out-of-Stock Handling
InventoryManagement.GetAvailableAlternates for product.id filtered by recommendation.primary size and customer.preferences.budget to find nearest in-stock alternative.
InventoryManagement.GetRestockDate for recommendation.primary in product.id if available.
- Customer wants the waitlist option wants-waitlist →join-waitlist
- Customer wants the in-stock alternative wants-alternate →present-alternate
- Customer wants to check other sizes check-other-sizes →run-size-lookup
- Customer frustrated or wants to leave frustrated →escalation-specialist
Join Waitlist
InventoryManagement.AddToWaitlist for customer.email on product.id in size recommendation.primary.
- Customer wants to keep browsing keep-browsing →discover-needs
- Customer is done done →resolution
- Customer wants to add the alternate to cart instead wants-alternate →add-to-cart
Answer Questions
kb.product-faq — retrieve relevant FAQs for product.id covering fabric, care, returns, sizing tolerances, and fit philosophy.
- Customer asks about fabric, care, or material material-question →answer-questions
- Customer asks about returns or exchanges returns-question →answer-questions
- Customer is satisfied and ready to buy ready-to-buy →add-to-cart
- Customer wants a different recommendation different-option →present-alternate
- Customer frustrated or escalating frustrated →escalation-specialist
Add to Cart
EcommerceCart.AddItem with product.id, recommendation.primary, and customer.id to add the confirmed selection.
- Customer wants to keep shopping keep-shopping →discover-needs
- Customer is done and happy done →resolution
- Customer has a cart or checkout issue cart-issue →escalation-specialist
Escalation to Specialist
CRM.CreateCase for customer.id tagged fit-escalation, logging all collected preferences, measurements, and conversation context.
Resolution

Roaming / International Add-on Request
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountNumber
CRM.VerifyPIN against customer.pin
- Identity verified successfully verified →account-review
- PIN incorrect on first attempt — prompt once more →identity-retry
- Account not found or unresolvable →escalation-human
Identity Retry
CRM.VerifyPIN against customer.pin
- Identity verified on second attempt verified →account-review
- Second attempt fails failed →escalation-human
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.outstandingBalance, customer.accountFlags
- Account flagged for fraud or suspension flagged →escalation-human
- Account has a past-due balance outstanding pastdue →past-due-balance
- Account in good standing, no flags clear →trip-details
Past-Due Balance
- Customer agrees to pay →payment-collection
- Customer declines or requests a payment arrangement →escalation-human
Payment Collection
PaymentProcessing.InitiatePayment for customer.outstandingBalance on customer.accountNumber
- Payment successful payment_cleared CRM.UpdateAccountStatus →trip-details
- Payment declined or failed payment_failed →escalation-human
Trip Details
CRM.SetTripContext with trip.destinationCountry, trip.departureDate, trip.returnDate
- Travel dates are upcoming or current and destination captured →device-check
- Customer is already abroad and reports unexpected charges →already-abroad
Device Check
DeviceCompatibilityChecker.Assess using device.imei, device.model, device.simStatus for trip.destinationCountry
CarrierInternationalAPI.CheckPartnerCoverage for trip.destinationCountry
- Device is compatible with international bands and destination network device_ok →addon-selection
- Device is CDMA-only or SIM-locked for destination device_incompatible →device-incompatibility
- Coverage unavailable in destination through partner network no_coverage →escalation-human
Device Incompatibility
- Customer wants international SIM option →sim-rental-offer
- Customer wants rental device option →sim-rental-offer
- Customer declines alternatives and wants to explore further →escalation-human
SIM / Rental Offer
CRM.CreateCase tagged device-compatibility-roaming, linked to customer.accountNumber
→escalation-human
Add-on Selection
AddonCatalog.GetEligibleAddons for customer.currentPlan, trip.destinationCountry, trip.departureDate, trip.returnDate
kb.roaming-addon-policy — review eligible plans, pricing tiers, promotional offers, and usage caps for trip.destinationCountry
- Customer selects a preferred add-on →pricing-confirmation
- Customer disputes the pricing or expected charges →pricing-dispute
- Customer requests a plan not currently eligible for their account →escalation-human
Pricing Confirmation
- Customer confirms selection confirmed →addon-activation
- Customer wants to change selection →addon-selection
- Customer wants to cancel the request →resolution-no-change
Add-on Activation
BillingPlatform.ActivateAddon with addon.name, addon.effectiveDate on customer.accountNumber
CRM.LogInteraction with add-on details, trip.destinationCountry, trip.departureDate, trip.returnDate
BillingPlatform.SendConfirmationEmail to customer.email with addon.name, addon.price, addon.usageCap, addon.effectiveDate
- Customer has additional questions or requests →trip-details
- Customer is satisfied, no further needs →resolution-complete
Already Abroad
BillingPlatform.GetRecentCharges for customer.accountNumber — review charge.amount for pay-per-use international activity
kb.roaming-retroactive-credit-policy — check eligibility window and thresholds for credit.eligibility
- Customer has been incurring pay-per-use charges within the retroactive credit window credit_eligible →retroactive-credit-review
- Charges are outside the policy window or ineligible for credit →addon-selection
- Customer is disputing a large existing international charge →charge-dispute
Retroactive Credit Review
- Credit is within agent approval threshold and eligible credit_approved →apply-retroactive-credit
- Credit amount exceeds agent threshold or policy bars it credit_escalate →escalation-human
Apply Retroactive Credit
BillingPlatform.ApplyCredit of credit.amount to customer.accountNumber tagged retroactive-roaming-adjustment
CRM.LogInteraction with credit amount, reason, and linked charges
→addon-selection
Charge Dispute
BillingPlatform.GetChargeDetail for charge.disputeAmount on customer.accountNumber
kb.roaming-dispute-policy — review dispute thresholds and agent authorization limits
- Dispute amount is within agent adjustment authority within_threshold →pricing-dispute
- Dispute amount exceeds agent authority exceeds_threshold →escalation-human
Pricing Dispute
kb.roaming-addon-policy — check active promotional offers, loyalty discounts, and goodwill adjustment eligibility
- A valid promotion or discount applies and resolves the concern promotion_found BillingPlatform.ApplyPromotion →addon-selection
- No promotion available but a courtesy adjustment is warranted and within threshold courtesy_ok BillingPlatform.ApplyCredit →addon-selection
- No resolution possible within agent authority no_resolution →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged roaming-escalation, linked to customer.accountNumber
CRM.LogInteraction with full context: trip.destinationCountry, customer.currentPlan, charge.disputeAmount, customer.accountFlags
Resolution — Complete
CRM.LogInteraction with resolved add-on, addon.effectiveDate, trip.destinationCountry, trip.returnDate
Resolution — No Change
CRM.LogInteraction tagged no-change-requested, customer.accountNumber

Product Availability / Stock Inquiry
Gather Product Details
- Customer provides a clear product name or SKU product-identified →gather-variant-details
- Customer gives a vague or partial description product-unclear →clarify-product
- Customer is already frustrated or mentions previous failed lookup frustrated →escalation-human
Clarify Product
- Customer provides enough detail to identify the product product-identified →gather-variant-details
- Customer still cannot identify the product product-unclear ProductCatalog.Search to surface closest matches →suggest-alternatives
- Customer expresses frustration frustrated →escalation-human
Gather Variant Details
- Customer provides variant and prefers in-store pickup in-store →gather-location
- Customer provides variant and prefers online online →check-online-inventory
- Customer has no variant preference and prefers in-store in-store →gather-location
- Customer has no variant preference and prefers online online →check-online-inventory
- Customer is flexible on channel flexible →check-online-inventory
Gather Location
- Customer provides zip code or store name location-provided StoreLocator.FindNearestStores using customer.zipCode →check-store-inventory
- Customer cannot provide location location-unknown →check-online-inventory
- Customer expresses frustration frustrated →escalation-human
Check Online Inventory
InventoryManagement.GetOnlineStock for product.sku, variant product.variant.size, product.variant.color
- Online stock confirmed available in-stock →confirm-online-availability
- Online stock is zero or unavailable out-of-stock →check-store-inventory
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Check Store Inventory
InventoryManagement.GetStoreStock for product.sku at customer.preferredStore, variant product.variant.size, product.variant.color
- Stock confirmed at preferred or nearest store in-stock →confirm-store-availability
- In-stock only at a distant store distant-stock →offer-ship-or-transfer
- Out of stock at all nearby stores and online out-of-stock →check-discontinued
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Confirm Online Availability
CRM.LogInteraction tagged availability-confirmed-online, linked to product.sku
- Customer wants a link SendEmail or SendSMS with product URL to customer.email or customer.phone →resolution
- Customer is satisfied and needs nothing else confirmed →resolution
- Customer mentions price match, special hold, or bulk quantity special-request →escalation-human
Confirm Store Availability
CRM.LogInteraction tagged availability-confirmed-store, linked to product.sku
- Customer wants to reserve the item wants-reservation InventoryManagement.PlaceHold for product.sku at store.name →reservation-confirmed
- Customer is satisfied and will go to the store confirmed →resolution
- Customer requests price match, special hold, or bulk quantity special-request →escalation-human
- Customer expresses frustration frustrated →escalation-human
Reservation Confirmed
CRM.LogInteraction tagged reservation-placed, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Offer Ship or Transfer
InventoryManagement.CheckShipFromStore for product.sku at store.name
InventoryManagement.CheckTransferEligibility for product.sku
- Ship-from-store is available and customer agrees ship-available InventoryManagement.InitiateShipFromStore →ship-from-store-confirmed
- Transfer to closer store is available and customer prefers pickup transfer-available InventoryManagement.InitiateTransfer →transfer-initiated
- Neither option is available or customer declines both declined →check-discontinued
- Customer requests special handling or bulk quantity special-request →escalation-human
Ship From Store Confirmed
CRM.LogInteraction tagged ship-from-store-initiated, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Transfer Initiated
CRM.UpdateContactInfo with customer.email, customer.phone
CRM.LogInteraction tagged transfer-requested, linked to product.sku
- Customer provides contact info contact-provided →resolution
- Customer declines contact info declined →resolution
Check Discontinued
ProductCatalog.CheckDiscontinuedStatus for product.sku
- Product is confirmed discontinued discontinued →product-discontinued
- Product is not discontinued but broadly out of stock out-of-stock →offer-restock-notification
Product Discontinued
ProductCatalog.GetSimilarItems for product.sku
- Customer wants to see alternatives wants-alternatives →suggest-alternatives
- Customer does not want alternatives declined →resolution
- Customer is upset about the discontinuation frustrated →escalation-human
Offer Restock Notification
- Customer agrees to restock alert confirmed RestockNotification.Subscribe with product.sku, customer.email, customer.phone →restock-signup-confirmed
- Customer declines and wants to see similar items wants-alternatives →suggest-alternatives
- Customer declines all options declined →resolution
Restock Signup Confirmed
CRM.LogInteraction tagged restock-alert-registered, linked to product.sku
- Customer has another question follow-up →gather-product-details
- Customer is satisfied confirmed →resolution
Suggest Alternatives
- Suitable alternatives found and customer is interested alternatives-found →present-alternatives
- No suitable alternatives found or customer declines no-match →resolution
- Customer expresses frustration or demands a manager frustrated →escalation-human
Present Alternatives
- Customer selects an alternative and wants to check availability selected →check-online-inventory
- Customer wants to know more about an alternative wants-details ProductCatalog.GetProductDetails →present-alternatives
- Customer declines all alternatives declined →resolution
- Customer expresses frustration frustrated →escalation-human
Inventory Lookup Failure
CRM.LogSystemError with lookup.errorCode, product.sku, tagged inventory-lookup-failure
- Customer is okay with the workaround confirmed →resolution
- Customer is frustrated or wants further help frustrated →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged availability-escalation, linked to product.sku, customer.name
CRM.LogInteraction tagged escalated-to-human
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to product.sku

Premium Payment / Billing Inquiry
Inbound Greeting
CRM.LookupCustomer on policy.number
- Policy number provided and record found →identity-verification
- Customer cannot locate policy number →identity-verification
- No response or line is silent →escalation-human
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob, customer.ssn_last4, or customer.passphrase
- Identity verified successfully verified →policy-overview
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer hesitant or asks why it is needed frustrated →verification-explain
Verification Explain
- Customer agrees and provides credentials →identity-verification
- Customer refuses to verify and wants to end call →escalation-human
Identity Failure
- Customer wants branch or written request information CRM.LogContactAttempt →escalation-human
- Customer agrees to end call CRM.LogContactAttempt →session-close
Policy Overview
PolicyManagement.GetPolicyDetails on policy.number
BillingLedger.GetCurrentBalance returning policy.premium_amount, policy.due_date, payment.outstanding_balance, payment.last_payment_date, payment.method_on_file
- Policy is active and in good standing active →billing-inquiry-triage
- Policy is in lapsed status lapsed →escalation-lapsed-policy
- Policy is cancellation-pending cancellation_pending →escalation-lapsed-policy
Billing Inquiry Triage
- Customer wants to make a payment now pay_now →process-payment
- Customer questions or disputes the premium amount dispute_amount →premium-explanation
- Customer reports a missed or failed payment missed_payment →missed-payment-review
- Customer asks about an upcoming renewal renewal_question →renewal-review
- Customer asks about an unexpected or unrecognized charge unexpected_charge →premium-explanation
- Customer wants to update payment method update_payment →update-payment-method
- Customer requests supervisor or escalation wants_supervisor →escalation-human
Premium Explanation
BillingLedger.GetChangeHistory on policy.number returning billing.recent_changes, billing.endorsements, billing.rate_adjustment_reason
kb.premium-rate-adjustment-policy — review applicable rate change rules and endorsement billing guidelines
- Change explained by endorsement or coverage adjustment CRM.LogExplanation →explanation-confirmed
- Change explained by annual rate adjustment CRM.LogExplanation →explanation-confirmed
- Change cannot be explained by visible account data unexplained_charge →escalation-human
Explanation Confirmed
- Customer accepts explanation and wants to pay now →process-payment
- Customer accepts explanation but has no payment due →confirmation-send
- Customer still disputes the explanation still_disputing →escalation-human
Missed Payment Review
kb.payment-plan-eligibility-policy — check grace period rules, payment plan thresholds, and eligibility criteria
- Account is within grace period and customer wants to pay now within_grace →process-payment
- Account is eligible for a payment plan payment_plan_eligible →payment-plan-setup
- Grace period has expired and policy is at risk grace_expired →escalation-lapsed-policy
Payment Plan Setup
kb.payment-plan-options — retrieve available installment schedules and terms
- Customer agrees to a plan and first payment is collected BillingLedger.EnrollPaymentPlan →confirmation-send
- Customer declines plan and wants to pay full balance now →process-payment
- Customer declines all options →escalation-human
Renewal Review
kb.renewal-billing-policy — review renewal terms, auto-pay rules, and advance payment options
- Customer wants to make an advance renewal payment →process-payment
- Customer has questions about coverage changes at renewal coverage_question →escalation-human
- Customer wants to update payment method before renewal →update-payment-method
- Customer is satisfied with the renewal information →confirmation-send
Update Payment Method
PaymentGateway.UpdatePaymentMethod with new details provided by customer
BillingLedger.ConfirmMethodUpdate on policy.number
- Payment method updated successfully method_updated →billing-inquiry-triage
- New payment method declined or invalid method_declined →payment-declined
Process Payment
PaymentGateway.ProcessPayment for payment.outstanding_balance on policy.number
- Payment approved and processed successfully payment_success →confirmation-send
- Payment method declined payment_declined →payment-declined
- Payment gateway timeout or system error system_error →escalation-human
Payment Declined
- Customer provides an alternate payment method →update-payment-method
- Customer wants to explore a payment plan →payment-plan-setup
- Customer wants to call back later CRM.LogDeclinedPayment CRM.SetFollowUpFlag →session-close
- Customer requests supervisor →escalation-human
Confirmation Send
Twilio.SendSMS to customer.phone with payment confirmation and payment.confirmation_number
CRM.SendConfirmationEmail to customer.email with policy status, payment amount, and next due date
CRM.LogInteraction with summary of inquiry type, actions taken, and outcome
- Confirmation sent and customer has no further questions →session-close
- Customer has an additional question additional_question →billing-inquiry-triage
Escalation — Lapsed or Cancellation-Pending Policy
CRM.LogEscalation tagged lapse-reinstatement, linked to policy.number
CRM.FlagForReinstatementReview on policy.number
- Transferring to reinstatement workflow →policy-reinstatement-workflow
- Customer disconnects before transfer CRM.LogContactAttempt →session-close
Escalation to Human Agent
CRM.LogEscalation with inquiry summary, policy.number, and reason for escalation
CRM.CreateCase priority: high, tagged billing-escalation, linked to policy.number
Session Close
- Customer has another question another_question →inbound-greeting
- Customer is done — closing interaction CRM.LogInteraction tagged session-complete

Plan Change / Upgrade Request
Identity Verification
CRM.LookupAccount using customer.accountNumber or customer.phone
- Account found and identity confirmed verified →account-review
- Account not found or customer cannot verify identity unverified →escalation-human
- Customer wants to browse plans before verifying intent_browse →plan-discovery
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.contractEndDate, customer.billingCycleDate, customer.deviceModel, customer.location
PlanCatalog.GetEligiblePlans for customer.accountNumber, customer.deviceModel, customer.location
- Plans retrieved successfully →plan-discovery
- No eligible plans returned or catalog error catalog_error →escalation-human
Plan Discovery
kb.plan-catalog — present eligible options with pricing, data allowances, speeds, and feature highlights relevant to customer.currentPlan
- Customer selects a specific plan plan_selected →plan-confirmation
- Customer asks about a promotion or discount promo_inquiry →promotion-check
- Customer's preferred plan is incompatible with device or location incompatible →compatibility-resolution
- Customer is unsure and wants time to decide undecided →follow-up-scheduling
- Customer mentions wanting to cancel instead cancel_intent →escalation-human
Promotion Check
PlanCatalog.GetPromotions for customer.accountNumber
kb.promotions-policy — verify eligibility criteria for active promotions against customer.currentPlan and customer.contractEndDate
- Valid promotion found and auto-applicable promo_valid CRM.ApplyPromotion with promotion.code →plan-confirmation
- Promotion exists but requires manager approval promo_needs_approval →promotion-approval
- No eligible promotion found →plan-confirmation
Promotion Approval
- Approved approved CRM.ApplyPromotion with promotion.code →plan-confirmation
- Rejected rejected Say: "I wasn't able to apply that specific promotion, but I can still offer you our best available rate." →plan-confirmation
- No response in 20 min →escalation-human
Compatibility Resolution
PlanCatalog.GetCompatibleAlternatives for customer.deviceModel, customer.location
kb.device-compatibility-policy — review alternatives against customer.currentPlan to identify closest feature and pricing match
- Compatible alternative found and customer accepts alt_accepted →plan-confirmation
- Customer rejects all alternatives and escalates frustration frustrated →escalation-human
- Customer wants to upgrade device to access desired plan device_upgrade_intent →escalation-human
Plan Confirmation
PlanCatalog.CalculateProration for customer.accountNumber, plan.selected, customer.billingCycleDate — return plan.proratedAmount, plan.effectiveDate, plan.monthlyCost
ContractDB.CheckContractTerms for customer.accountNumber, customer.contractEndDate — check for early change fee fee.earlyChange
- No contract fee applies and customer confirms confirmed →apply-plan-change
- Contract change fee applies →contract-fee-review
- Customer wants to reconsider or go back reconsider →plan-discovery
- Customer declines and threatens cancellation cancel_intent →escalation-human
Contract Fee Review
kb.contract-terms-policy — confirm fee calculation and waiver eligibility for customer.accountNumber
- Customer accepts fee and wants to proceed today fee_accepted →apply-plan-change
- Customer prefers a future effective date future_date →schedule-future-change
- Customer disputes the fee or feels it should be waived fee_dispute →escalation-human
- Customer wants to cancel instead of paying the fee cancel_intent →escalation-human
Schedule Future Change
BillingPlatform.SchedulePlanChange for customer.accountNumber, plan.selected, effective: customer.contractEndDate
CRM.UpdateAccountNotes with scheduled change details, case.id
- Change scheduled successfully →confirmation-notification
- Scheduling fails system_error →billing-system-error
Apply Plan Change
BillingPlatform.ApplyPlanChange for customer.accountNumber, plan.selected, effective: plan.effectiveDate, proration: plan.proratedAmount
- Plan change applied successfully →confirmation-notification
- System returns error on first attempt system_error BillingPlatform.RetryPlanChange →apply-plan-change-retry
- Customer threatens cancellation during wait cancel_intent →escalation-human
Apply Plan Change Retry
BillingPlatform.RetryPlanChange for customer.accountNumber, plan.selected
- Retry successful →confirmation-notification
- Retry also fails system_error_final →billing-system-error
Billing System Error
CRM.CreateCase priority: high, tagged: plan-change-system-error, linked to customer.accountNumber
CRM.UpdateAccountNotes with plan.selected, plan.monthlyCost, plan.effectiveDate, error details
NotificationService.SendEmail to customer.email confirming the logged request and manual resolution timeline
- Case logged and customer is satisfied satisfied →resolution
- Customer is frustrated and demands immediate resolution or escalation frustrated →escalation-human
Confirmation Notification
NotificationService.SendSMS to customer.phone with plan change summary, plan.selected, plan.effectiveDate, plan.monthlyCost
NotificationService.SendEmail to customer.email with full confirmation details and updated plan terms
CRM.UpdateAccountNotes with completed plan change, plan.selected, plan.effectiveDate
→resolution
Follow-up Scheduling
CRM.CreateFollowUpTask for customer.accountNumber, note: plans discussed, follow-up within 48 hours
CRM.UpdateAccountNotes with plan.selected, customer preference notes
- Follow-up scheduled successfully →resolution
- Customer decides to proceed after all plan_selected →plan-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: plan-change-escalation, linked to customer.accountNumber
Slack.Notify to #plan-change-escalations with customer.accountNumber, customer.currentPlan, plan.selected, escalation reason
Resolution

Patient Intake Pre-Visit
Pre-Visit Outreach
Twilio.SendSMS to patient.phone: "Hi patient.firstName, your appointment with appointment.provider is scheduled for appointment.date at appointment.time. Please complete your pre-visit intake at intake.linkUrl to help us serve you better. It takes about 5 minutes."
Twilio.SendEmail to patient.email with subject "Complete Your Pre-Visit Intake — appointment.date" and body including intake.linkUrl, appointment.provider, and appointment.time.
- Patient opens intake link and proceeds engaged →identity-verification
- Patient replies with an urgent symptom or distress signal urgent →escalation-human
- No response within 24 hours Twilio.SendSMS reminder to patient.phone →intake-reminder
- Patient replies they cannot access the portal access_issue →assisted-intake
Identity Verification
PatientPortal.VerifyIdentity using patient.firstName, patient.lastName, patient.dateOfBirth, patient.portalId
- Identity confirmed on first or second attempt identity_verified →demographics-and-insurance
- Identity cannot be verified after two attempts identity_failed →escalation-human
Demographics and Insurance
EHR.GetPatientRecord for chart.id — pre-populate name, address, phone, email, emergency contact
InsuranceEligibilityAPI.CheckEligibility using insurance.carrier, insurance.memberId, insurance.groupNumber
- All demographic and insurance fields confirmed, eligibility verified confirmed →health-history
- Insurance ID does not match eligibility records eligibility_mismatch →insurance-verification
- Patient updates contact or emergency contact details updated EHR.UpdatePatientRecord →health-history
Insurance Verification
PatientPortal.RequestInsuranceCardUpload for patient.portalId
- Patient re-enters corrected insurance details InsuranceEligibilityAPI.CheckEligibility →insurance-recheck
- Patient uploads insurance card photo EHR.FlagForManualVerification tagged insurance-review, linked to chart.id →health-history
- Patient is unable to provide insurance information EHR.FlagChart as insurance-unverified →health-history
Insurance Recheck
InsuranceEligibilityAPI.CheckEligibility using updated insurance.carrier, insurance.memberId, insurance.groupNumber
- Eligibility now confirmed eligibility_verified →health-history
- Still not matching after recheck eligibility_failed EHR.FlagForManualVerification tagged insurance-review →health-history
Health History
EHR.GetMedicationList for chart.id — display current medications on file
EHR.GetAllergyList for chart.id — display current allergies on file
- Patient confirms medications and allergies as accurate confirmed →reason-for-visit
- Patient disputes a listed medication medication_dispute EHR.FlagMedication as needs-review linked to medication.flagged →medications-flagged
- Patient disputes a listed allergy allergy_dispute EHR.FlagAllergy as needs-review linked to allergy.flagged →allergies-flagged
- Patient reports a new urgent symptom during review urgent →escalation-human
Medications Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes medication on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Allergies Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes allergy on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Reason for Visit
- Routine or previously known concern symptom.reported, no urgency flags routine →pharmacy-and-preferences
- Patient describes a new or worsening urgent symptom urgent →urgent-symptom-triage
- Patient indicates a mental health crisis or emergency crisis →escalation-human
Urgent Symptom Triage
kb.triage-guidelines — check symptom against urgency thresholds and same-day care criteria
CRM.CreateUrgentNote linked to chart.id and appointment.id, tagged triage-flagged
Twilio.SendSMS to patient.phone: "We've noted your symptom. Please call our clinic or visit urgent care. For emergencies, call 911."
- Patient acknowledges and will seek immediate care acknowledged AppointmentScheduling.FlagAppointment as triage-pending →intake-incomplete-flag
- Patient insists on continuing intake continues →pharmacy-and-preferences
Pharmacy and Preferences
EHR.GetPreferredPharmacy for chart.id — display pharmacy on file if available
- Patient confirms pharmacy on file confirmed →intake-complete
- Patient provides a new or updated pharmacy EHR.UpdatePreferredPharmacy for chart.id →intake-complete
Intake Complete
EHR.UpdateChartStatus for chart.id as intake-complete
CRM.LogInteraction for patient.portalId tagged pre-visit-intake-completed, linked to appointment.id
Twilio.SendSMS to patient.phone: "Your intake is complete — thank you, patient.firstName! We look forward to seeing you on appointment.date at appointment.time."
Twilio.SendEmail to patient.email with appointment summary and any flagged items note if applicable
AppointmentScheduling.NotifyCareTeam for appointment.id: "Intake complete. Chart chart.id ready for pre-visit review."
Intake Reminder
Twilio.SendSMS to patient.phone: "Hi patient.firstName, a reminder to complete your pre-visit intake before intake.cutoffTime: intake.linkUrl. It only takes a few minutes."
- Patient engages with intake link after reminder engaged →identity-verification
- Patient does not respond by cutoff window no_response EHR.FlagChart as intake-incomplete →intake-incomplete-flag
- Patient replies with an urgent concern urgent →escalation-human
Intake Incomplete Flag
EHR.UpdateChartStatus for chart.id as intake-incomplete
CRM.CreateTask assigned to front-desk, tagged collect-on-arrival, linked to appointment.id and chart.id
Twilio.SendEmail to front-desk team: "Patient patient.firstName patient.lastName (appointment.date, appointment.time) did not complete pre-visit intake. Please collect information on arrival."
Assisted Intake
→identity-verification
Escalation to Care Team
EHR.FlagChart for chart.id as escalation-required, tagged crisis-or-identity-failure
CRM.CreateUrgentCase priority: high, linked to patient.portalId and appointment.id, tagged patient-escalation
AppointmentScheduling.AlertClinicalStaff for appointment.id with escalation reason and chart.id
Twilio.SendSMS to patient.phone: "We want to make sure you get the right support. A member of our care team will reach out to you shortly. If this is an emergency, please call 911 now."

Order Status Inquiry
Greeting & Identity Verification
IdentityVerification.VerifyCustomer using customer.accountEmail and customer.name
- Identity verified, order number provided verified →order-lookup
- Customer cannot provide order number no_order_number →lookup-by-email
- Identity cannot be verified after two attempts →escalation-human
Order Lookup by Email or Name
OMS.LookupOrderByEmail using customer.accountEmail or customer.name
- Order found OMS.LookupOrderByEmail order_found →order-lookup
- Order still not found after email and name search not_found →order-not-found
Order Not Found
- Customer provides order number from confirmation email →order-lookup
- Customer has no confirmation email and order remains unresolved →escalation-human
Order Lookup & Status Check
OMS.GetOrderDetails using order.id and customer.accountEmail
- Order is still processing, has not shipped yet processing →order-still-processing
- Order has shipped, tracking number available shipped →retrieve-tracking
- Order shows as delivered in OMS delivered →delivered-not-received-check
Order Still Processing
- Customer is satisfied and has no further questions confirmed →resolution
- Customer wants to know if the ship date can be expedited expedite_request →escalation-human
- Customer wants to cancel the unshipped order cancel_request →escalation-human
Retrieve Tracking Data
CarrierAPI.GetTrackingStatus using carrier.trackingNumber
- Live tracking data returned, last scan within 48 hours tracking_current →communicate-status
- Tracking has not updated in more than 72 hours tracking_stale →stale-tracking
Communicate Status
- Customer is satisfied confirmed →resolution
- Customer has a concern about the delivery address or timing address_concern →escalation-human
Stale Tracking
kb.shipping-delay-policy — review thresholds for carrier claim eligibility and customer communication guidelines
- Within acceptable delay window, advise customer to wait within_window →stale-tracking-advisory
- Delay exceeds policy threshold, carrier claim warranted claim_warranted →escalation-human
Stale Tracking Advisory
- Customer is willing to wait confirmed →resolution
- Customer wants to escalate now escalate_now →escalation-human
Delivered But Not Received Check
- Customer confirms receipt confirmed →resolution
- Customer says package was not received not_received →lost-package-review
- Customer is unsure — may have been left with a neighbor or in a safe spot unsure →delivery-location-check
Delivery Location Check
- Customer finds the package confirmed →resolution
- Customer confirms the package is truly not there not_received →lost-package-review
Lost Package Review
OMS.FlagOrderLostPackage on order.id
CRM.CreateCase tagged lost-package, linked to order.id and carrier.trackingNumber
kb.lost-package-policy — review carrier liability window, replacement vs. refund eligibility, and documentation requirements
- Package confirmed lost or stolen, or customer is requesting refund or replacement →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged order-escalation, linked to order.id
CRM.LogInteractionSummary with customer.email, order.id, and current status context
Resolution
- Customer has another question another_question →greeting-and-identity
- Customer is done confirmed CRM.LogInteractionSummary with customer.email and order.id

Loyalty Tier / Points Inquiry
Identity Verification
IdentityVerification.LookupMember using member.id or member.email
- Member record found, proceed to secondary verification →secondary-verification
- Member record not found after two attempts →identity-failure
- Loyalty platform unavailable CaseManagement.LogInquiry →system-outage
Secondary Verification
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified successfully →account-overview
- Identity verification fails once →secondary-verification-retry
- Identity verification fails twice →identity-failure
Secondary Verification Retry
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified on retry →account-overview
- Identity fails again →identity-failure
Account Overview
LoyaltyPlatform.GetMemberProfile for member.id — retrieve member.currentTier, member.pointsBalance, member.pendingPoints, member.expiringPoints, member.expiryDate, member.tierQualifyingNights, member.tierThreshold, member.tierExpiryDate
CRM.UpdateLastContactDate for member.id
- Customer asks about tier status or how to reach the next tier tier-inquiry →tier-status
- Customer asks about a specific points discrepancy or missing points discrepancy →discrepancy-intake
- Customer is concerned about tier or points expiry expiry-concern →expiry-review
- Customer's question is fully answered satisfied →resolution-summary
- Customer asks about points earning or redemption history history-inquiry →points-history
Tier Status
kb.loyalty-tier-thresholds — retrieve qualification criteria, benefits, and upgrade requirements for member.currentTier and the next tier
- Customer wants to know about tier benefits →tier-status-benefits
- Customer is upset that they are close but won't reach next tier frustrated →tier-goodwill-check
- Customer is satisfied with the information satisfied →resolution-summary
Tier Status Benefits
kb.loyalty-tier-benefits — retrieve current and next-tier benefit details
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Tier Goodwill Check
- Goodwill extension is within policy and applied LoyaltyPlatform.ApplyGoodwillExtension →goodwill-confirmation
- Shortfall exceeds policy limit or extension already used this period exceeds-policy →escalation-loyalty-specialist
Goodwill Confirmation
CRM.LogInteraction note: goodwill tier extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Points History
LoyaltyPlatform.GetTransactionHistory for member.id
- Customer provides a specific booking reference specific-booking →discrepancy-intake
- Customer wants a general history summary general-history →points-history-summary
- Customer identifies a missing or incorrect transaction discrepancy →discrepancy-intake
Points History Summary
LoyaltyPlatform.GetTransactionHistory for member.id — last 90 days of earn and redemption activity
- Customer spots a discrepancy discrepancy →discrepancy-intake
- Customer is satisfied with the summary satisfied →resolution-summary
Discrepancy Intake
LoyaltyPlatform.GetTransaction using booking.referenceNumber or transaction.id
PropertyManagementSystem.VerifyStay using booking.referenceNumber and member.id
- Transaction found and points gap confirmed gap-confirmed →discrepancy-assessment
- Transaction not found or stay not verified unverified →discrepancy-unverified
- Transaction involves a very large point volume or suspected fraud high-risk →escalation-loyalty-specialist
Discrepancy Assessment
- Discrepancy is within auto-correction threshold and earn rules confirm the gap →points-correction-approval
- Discrepancy requires manual audit or exceeds auto-correction threshold needs-audit →manual-audit-queue
- Agent detects pattern suggesting account compromise suspected-fraud →escalation-loyalty-specialist
Points Correction Approval
- Approved approved LoyaltyPlatform.AdjustPoints →correction-confirmation
- Rejected rejected →manual-audit-queue
- No response in 60 min →manual-audit-queue
Correction Confirmation
CaseManagement.CreateCase linked to member.id and transaction.id, status: resolved
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Manual Audit Queue
CaseManagement.CreateCase priority: standard, tagged points-discrepancy, linked to member.id and transaction.id
CRM.LogInteraction note: points discrepancy flagged for manual audit, case case.id created
- Customer is satisfied with the timeline satisfied →resolution-summary
- Customer escalates or disputes the timeline frustrated →escalation-loyalty-specialist
Discrepancy Unverified
CaseManagement.CreateCase priority: standard, tagged unverified-discrepancy, linked to member.id
CRM.LogInteraction note: transaction unverified, manual investigation case created, case case.id opened
- Customer accepts the outcome and case creation satisfied →resolution-summary
- Customer insists on immediate resolution frustrated →escalation-loyalty-specialist
Expiry Review
kb.loyalty-expiry-policy — retrieve points and tier expiry rules, extension eligibility, and activity requirements
- Customer is calm and accepts the information satisfied →resolution-summary
- Customer is upset about imminent expiry and requests help frustrated →expiry-goodwill-check
- Customer wants to know what activity would prevent expiry activity-inquiry →expiry-activity-options
Expiry Activity Options
kb.loyalty-earn-partners — retrieve list of qualifying partner activities that reset expiry clock
CRM.LogInteraction note: expiry activity options provided to member.id
- Customer requests the list be sent LoyaltyPlatform.SendPartnerListEmail to member.email →resolution-summary
- Customer is satisfied with the verbal summary satisfied →resolution-summary
Expiry Goodwill Check
- Extension is within policy and applied LoyaltyPlatform.ExtendPointsExpiry →expiry-extension-confirmation
- Extension not permitted under policy or limit already used exceeds-policy →escalation-loyalty-specialist
Expiry Extension Confirmation
CRM.LogInteraction note: one-time points expiry extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
System Outage
CaseManagement.CreateCase priority: standard, tagged system-outage-callback, linked to member.email
CRM.LogInteraction note: loyalty platform unavailable, callback committed within 4 business hours
- Customer accepts the callback commitment satisfied →resolution-summary
- Customer requests immediate escalation frustrated →escalation-loyalty-specialist
Identity Failure
CRM.LogInteraction note: identity verification failed, member directed to self-service portal or property front desk
Escalation to Loyalty Specialist
CaseManagement.CreateCase priority: high, tagged loyalty-specialist-escalation, linked to member.id
CRM.LogInteraction note: escalated to loyalty specialist, reason captured in case case.id
Slack.Notify to #loyalty-specialist-queue with member summary, member.id, member.currentTier, member.pointsBalance, and reason for escalation
Resolution Summary
CRM.LogInteraction note: inquiry resolved, summary provided to member.id
- Customer has another question follow-up →account-overview
- Customer is done satisfied →farewell
Farewell
CRM.CloseInteraction for member.id

Group / Event Booking Inquiry
Inquiry Intake
- Customer describes a specific event type event-described →gather-event-details
- Customer is vague or asking general questions exploring →scope-clarification
- Customer states group size is 50 or more rooms / full venue buyout / custom SLA high-complexity →escalation-event-sales-manager
Scope Clarification
- Customer clarifies event scope event-described →gather-event-details
- Customer remains unclear or needs guidance still-vague →gather-event-details
- Customer mentions scale that triggers complexity threshold high-complexity →escalation-event-sales-manager
Gather Event Details
Salesforce.CreateLead with customer.name, customer.email, customer.phone, source: group-inquiry
- Customer provides all key details (dates, guest count, destination, budget) details-complete →validate-group-size
- Customer provides partial details details-partial →clarify-missing-details
- Customer declines to share budget or contact info details-minimal →clarify-missing-details
Clarify Missing Details
Salesforce.UpdateLead with any partial data already collected
- Customer supplies remaining details details-complete →validate-group-size
- Customer still cannot confirm details still-incomplete →capture-lead-for-follow-up
Capture Lead for Follow-up
Salesforce.UpdateLead with customer.name, customer.email, status: nurture
email-automation.EnrollSequence campaign: group-inquiry-nurture, contact: customer.email
- Lead captured successfully →resolution-lead-captured
- Customer disengages with no contact info provided →resolution-no-contact
Validate Group Size
- Group size is 10–20 rooms and standard event type →check-availability
- Group size is 21–49 rooms or complexity is moderate →route-to-group-sales-specialist
- Group size is 50 or more rooms, full buyout, or custom SLA →escalation-event-sales-manager
Check Availability
group-inventory-calendar.CheckAvailability for event.property, event.dates, event.roomCount, event.type
property-management-system.GetGroupRates for event.property, event.dates, event.roomCount
- Dates and room count are available available →present-options
- Requested dates are unavailable but alternatives exist partial-availability →offer-alternatives
- No availability at requested property or destination unavailable →offer-alternatives
Present Options
quoting-tool.GenerateProposal for event.type, event.dates, event.roomCount, event.budget, event.specialRequirements
Salesforce.UpdateLead status: proposal-sent, quote.id
email-automation.SendEmail template: group-proposal, to: customer.email, attach: quote.id
- Customer reviews and selects a preferred option option-selected →confirm-provisional-hold
- Customer has questions or wants adjustments needs-adjustment →handle-quote-adjustment
- Customer indicates budget does not align with presented options budget-misaligned →offer-value-alternatives
- Customer goes silent after proposal is sent →quote-follow-up-sequence
Offer Alternatives
group-inventory-calendar.GetAlternativeDates for event.property, event.roomCount
property-management-system.GetNearbyProperties for event.destination, event.dates, event.roomCount
- Customer accepts an alternative date or property alternative-accepted →check-availability
- Customer wants to explore further still-exploring →route-to-group-sales-specialist
- Customer declines all alternatives and disengages declined →resolution-no-booking
Handle Quote Adjustment
quoting-tool.ReviseProposal for quote.id, updated event.roomCount, event.dates, event.specialRequirements
email-automation.SendEmail template: group-proposal-revised, to: customer.email, attach: quote.id
- Customer accepts revised proposal option-selected →confirm-provisional-hold
- Customer still has concerns needs-further-adjustment →handle-quote-adjustment
- Customer budget remains misaligned budget-misaligned →offer-value-alternatives
Offer Value Alternatives
quoting-tool.GetTieredOptions for event.type, event.dates, event.roomCount, event.budget
kb.group-value-add-packages
- Customer selects a tiered option option-selected →confirm-provisional-hold
- Customer wants specialist help with budget negotiation →route-to-group-sales-specialist
- Customer declines all options declined →resolution-no-booking
Confirm Provisional Hold
property-management-system.PlaceProvisionalHold for event.property, event.dates, event.roomCount, quote.id
Salesforce.UpdateLead status: hold-placed, hold.confirmationNumber
contract-management.GenerateContract for quote.id, customer.name, customer.email, event.type, event.dates
email-automation.SendEmail template: contract-and-deposit, to: customer.email, attach: contract.link
- Customer confirms they received the contract and will proceed proceeding →resolution-booking-confirmed
- Customer has contract or deposit questions has-questions →handle-contract-questions
- Customer has not responded by hold expiry date →hold-expiry-follow-up
Handle Contract Questions
kb.group-contract-terms
kb.deposit-and-cancellation-policy
- Questions answered and customer is ready to proceed proceeding →resolution-booking-confirmed
- Contract terms require negotiation or custom clauses requires-negotiation →escalation-event-sales-manager
- Customer declines after reviewing terms declined →resolution-no-booking
Quote Follow-up Sequence
email-automation.EnrollSequence campaign: group-quote-follow-up, contact: customer.email, reference: quote.id
Salesforce.UpdateLead status: follow-up-in-progress
- Customer responds and re-engages re-engaged →present-options
- Customer responds and selects an option option-selected →confirm-provisional-hold
- Customer remains unresponsive after full follow-up sequence no-response →route-to-group-sales-specialist
Hold Expiry Follow-up
email-automation.SendEmail template: hold-expiry-reminder, to: customer.email, reference: hold.confirmationNumber
Salesforce.UpdateLead status: hold-expiring-soon
- Customer responds and confirms they will proceed proceeding →resolution-booking-confirmed
- Customer requests an extension needs-extension →escalation-event-sales-manager
- Hold expires with no response expired →resolution-hold-expired
Route to Group Sales Specialist
Salesforce.UpdateLead status: routed-to-specialist, owner: group-sales-team
Salesforce.CreateTask assign-to: group-sales-team, subject: group-inquiry-handoff, reference: customer.email, event.type, event.dates, event.roomCount
email-automation.SendEmail template: specialist-intro, to: customer.email, cc: salesSpecialist.email
- Handoff confirmed and customer satisfied →resolution-specialist-assigned
- Customer requests immediate escalation to senior manager →escalation-event-sales-manager
Escalation to Event Sales Manager
Salesforce.UpdateLead status: escalated, priority: high, tagged: high-value-event
Salesforce.CreateTask assign-to: event-sales-manager, subject: high-complexity-group-escalation, reference: customer.email, event.type, event.dates, event.roomCount, event.budget
email-automation.SendEmail template: escalation-acknowledgement, to: customer.email
Resolution — Booking Confirmed
Salesforce.UpdateLead status: closed-won
property-management-system.ConfirmBooking for hold.confirmationNumber
Resolution — Specialist Assigned
Salesforce.UpdateLead status: specialist-assigned
Resolution — Lead Captured
Resolution — Hold Expired
Salesforce.UpdateLead status: hold-expired
property-management-system.ReleaseHold for hold.confirmationNumber
Resolution — No Booking
Salesforce.UpdateLead status: closed-lost
Resolution — No Contact
Salesforce.UpdateLead status: no-contact

General FAQ Insurance
Inbound Greeting
- Customer provides name and policy number →identity-verification
- Customer asks a question before providing identity →identity-first-prompt
- Customer explicitly requests a human agent →escalation-human
Identity First Prompt
- Customer provides name and policy number →identity-verification
- Customer declines or cannot provide policy number →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Identity Verification
IdentityVerification.Verify using customer.name and customer.policyNumber
- Verification passes →policy-lookup
- Verification fails after two attempts →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Policy Lookup
PolicyAdmin.GetRecord for customer.policyNumber
CRM.GetCustomerProfile for customer.name
- Policy is active →topic-detection
- Policy is lapsed →lapsed-policy-notice
- Policy record not found →escalation-human
Topic Detection
- Question is about coverage or what the plan includes coverage →faq-coverage
- Question is about billing, payment, or due dates billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about an existing claim already in progress claim-status →active-claim-redirect
- Question is about policy documents, ID cards, or proof of insurance documents →faq-documents
- Question is about cancellation or reinstatement policy-changes →faq-policy-changes
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
FAQ — Coverage
kb.coverage-faq — retrieve coverage details relevant to customer.productType
PolicyAdmin.GetCoverageDetails for customer.policyNumber
- Customer wants more detail on a specific benefit →faq-coverage-detail
- Customer's question is resolved confirmed →resolution
- Customer raises a dispute about what should be covered dispute →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — Coverage Detail
kb.coverage-faq — look up specific benefit or exclusion matching question.topic
- Customer confirms the answer resolves their question confirmed →resolution
- Customer disagrees with the coverage detail dispute →escalation-human
- Customer has a follow-up question →topic-detection
FAQ — Billing
PolicyAdmin.GetBillingRecord for customer.policyNumber
kb.billing-faq — retrieve billing process and payment method information
- Customer wants to update payment method or set up autopay →escalation-human
- Customer questions a charge or amount billing-dispute →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Claims Process
kb.claims-process-faq — retrieve step-by-step claims filing guidance for customer.productType
- Customer wants the claims contact or portal link CRM.SendClaimsInfo to customer.email →resolution
- Customer says they already have a claim in progress claim-in-progress →active-claim-redirect
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Documents
kb.documents-faq — retrieve document request process for customer.productType
- Customer confirms email and requests document PolicyAdmin.SendDocuments to customer.email →resolution
- Customer wants a different email address PolicyAdmin.SendDocuments after confirming new address →resolution
- Customer has a follow-up question →topic-detection
FAQ — Policy Changes
kb.policy-changes-faq — retrieve cancellation and reinstatement policy for customer.productType
- Customer asks about cancellation →escalation-human
- Customer asks about reinstatement →faq-reinstatement
- Customer has a general question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Reinstatement
kb.reinstatement-policy — retrieve reinstatement eligibility and process
- Customer wants to proceed with reinstatement →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
Active Claim Redirect
CRM.LogInteraction tag: claim-status-inquiry, linked to customer.policyNumber
- Claim ID is available claim.id →claims-status-workflow
- Claim ID is not available →escalation-human
Lapsed Policy Notice
kb.reinstatement-policy — check reinstatement eligibility window using customer.reinstatementDeadline
- Customer wants to proceed with their original question →topic-detection-lapsed
- Customer wants reinstatement information first →faq-reinstatement
- Customer explicitly requests a human agent →escalation-human
Topic Detection — Lapsed Policy
- Question is about coverage coverage →faq-coverage
- Question is about billing billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about documents documents →faq-documents
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
Unverified — General Info Only
kb.public-faq — retrieve general public-facing insurance information
- Question is about coverage in general coverage →faq-coverage-general
- Question is about billing in general billing →faq-billing-general
- Question is about how to file a claim claims-process →faq-claims-process
- Customer wants account-specific help →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — General Coverage (Unverified)
kb.public-faq — retrieve general coverage overview, not account-specific
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
FAQ — General Billing (Unverified)
kb.public-faq — retrieve general billing and payment information
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
Clarification Prompt
- Customer clarifies a known topic confirmed →topic-detection
- Customer's question still unclear after clarification →escalation-human
- Customer explicitly requests a human agent →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation, reason: question.topic, linked to customer.policyNumber
CRM.CreateCase priority: normal, linked to customer.policyNumber
Resolution
CRM.LogInteraction tag: faq-resolved, topic: question.topic, linked to customer.policyNumber
- Customer has another question →topic-detection
- Customer confirms no further questions confirmed →close-conversation
Close Conversation
CRM.CloseInteraction linked to customer.policyNumber

General FAQ — Healthcare
Intake
- Patient asks about billing or payments billing →category-billing
- Patient asks about scheduling or appointments scheduling →category-scheduling
- Patient asks about insurance or coverage insurance →category-insurance
- Patient asks about services, procedures, or treatments services →category-services
- Patient asks about location, hours, or directions location →category-location
- Patient asks about prescriptions or medications prescriptions →category-prescriptions
- Patient mentions a symptom, pain, or medical concern clinical →clinical-deflection
- Patient expresses distress, fear, or emotional upset distressed →escalation-human
- Patient asks about their personal health record or account-specific details personal-record →identity-verification
- Patient requests a specific staff member or provider by name staff-request →escalation-human
- Question does not fit any known category unclear →clarify-question
Clarify Question
- Category becomes clear on follow-up billing →category-billing
- Category becomes clear on follow-up scheduling →category-scheduling
- Category becomes clear on follow-up insurance →category-insurance
- Category becomes clear on follow-up services →category-services
- Category becomes clear on follow-up location →category-location
- Category becomes clear on follow-up prescriptions →category-prescriptions
- Patient mentions a symptom or medical concern clinical →clinical-deflection
- Patient expresses distress distressed →escalation-human
- Still unclear after follow-up still_unclear →knowledge-base-fallback
Category — Billing
kb.billing-faq — retrieve billing policies, payment options, balance inquiry process, financial assistance programs
- Patient has a question about a specific charge or balance on their account account_specific →identity-verification
- Patient asks a general question about payment options or financial assistance general →deliver-billing-answer
- Patient asks about payment plans payment_plan →deliver-billing-answer
- Patient is confused or frustrated about a charge frustrated →escalation-human
Deliver Billing Answer
kb.billing-faq — confirm answer to patient's specific billing question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is still confused or wants to speak with someone needs_agent →escalation-human
Category — Scheduling
kb.scheduling-faq — retrieve scheduling policies, new patient process, cancellation policy, telehealth availability
- Patient wants to book, reschedule, or cancel book_appt →scheduling-action
- Patient asks a general scheduling question general →deliver-scheduling-answer
- Patient mentions a specific provider staff-request →escalation-human
Deliver Scheduling Answer
kb.scheduling-faq — confirm answer to scheduling question
- Patient wants to schedule directly book_appt →scheduling-action
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
Scheduling Action
- Existing patient confirmed patient.status EHR.LookupPatient →confirm-patient-identity-scheduling
- New patient new_patient →new-patient-intake
- Patient declines to provide info and wants to self-schedule self_serve →resolution
Confirm Patient Identity — Scheduling
- Identity confirmed EHR.LookupPatient verified →escalation-human
- Patient cannot verify identity unverified →identity-fail
New Patient Intake
kb.new-patient-faq — retrieve new patient registration process, required documents, insurance accepted
- Patient wants portal link CRM.SendPortalLink →resolution
- Patient wants to speak with front desk speak_to_staff →escalation-human
- Patient confirms they have what they need confirmed →resolution
Category — Insurance
kb.insurance-faq — retrieve accepted insurance carriers, coverage verification process, referral and prior authorization info
- Patient asks which insurance plans are accepted plans_accepted →deliver-insurance-answer
- Patient wants to verify their specific coverage verify_coverage →identity-verification
- Patient asks about referrals or prior authorization auth_referral →deliver-insurance-answer
- Patient asks a general insurance question general →deliver-insurance-answer
Deliver Insurance Answer
kb.insurance-faq — confirm answer relevant to patient's insurance question
- Patient confirms they have what they need confirmed →resolution
- Patient wants insurance team to verify their benefits verify_coverage →identity-verification
- Patient has a follow-up question follow_up →intake
- Patient is frustrated about coverage or a denial frustrated →escalation-human
Category — Services
kb.services-faq — retrieve information on available specialties, procedures, telehealth, and referral requirements
- Patient asks about a specific procedure or treatment procedure →deliver-services-answer
- Patient asks about a specialty specialty →deliver-services-answer
- Patient asks about telehealth telehealth →deliver-services-answer
- Patient's question touches on clinical advice or personal symptoms clinical →clinical-deflection
Deliver Services Answer
kb.services-faq — confirm answer relevant to patient's services question
- Patient confirms they have what they need confirmed →resolution
- Patient wants to schedule related to this service book_appt →category-scheduling
- Patient has a follow-up question follow_up →intake
- Patient's follow-up veers into clinical advice territory clinical →clinical-deflection
Category — Location & Hours
kb.facility-directory — retrieve facility addresses, hours of operation, parking, and contact numbers
- Patient names a specific facility or location facility.name →deliver-location-answer
- Patient wants a list of all locations all_locations →deliver-location-answer
- Patient asks about after-hours or urgent care availability after_hours →deliver-location-answer
Deliver Location Answer
kb.facility-directory — confirm address, hours, and contact details for facility.name
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
- Patient cannot find the location or needs further help needs_agent →escalation-human
Category — Prescriptions
kb.prescriptions-faq — retrieve prescription refill process, pharmacy partnerships, prior authorization for medications
- Patient asks about refills refill →deliver-prescriptions-answer
- Patient asks about pharmacy partners pharmacy →deliver-prescriptions-answer
- Patient asks about prior authorization for a specific medication prior_auth →deliver-prescriptions-answer
- Patient asks about dosage, interactions, or clinical guidance clinical →clinical-deflection
Deliver Prescriptions Answer
kb.prescriptions-faq — confirm answer relevant to prescription question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient's question requires clinical judgment clinical →clinical-deflection
- Patient wants to speak with their care team needs_agent →escalation-human
Identity Verification
CRM.VerifyPatientIdentity using patient.name, patient.dob, patient.phone or patient.email
- Identity verified successfully verified →post-verification-routing
- Identity cannot be verified unverified →identity-fail
Post-Verification Routing
- Original question was about billing billing EHR.LookupPatientAccount →deliver-billing-answer
- Original question was about insurance or coverage insurance InsuranceEligibility.VerifyCoverage →deliver-insurance-answer
- Original question was about scheduling scheduling EHR.LookupPatient →confirm-patient-identity-scheduling
- Original question required record access record EHR.LookupPatientAccount →escalation-human
Identity Fail
- Patient wants to try a general question general →intake
- Patient wants to call or visit in person confirmed →resolution
- Patient is frustrated or upset frustrated →escalation-human
Knowledge Base Fallback
- Answer found with high confidence answer_found →deliver-fallback-answer
- No reliable answer found in knowledge base no_answer →acknowledge-uncertainty
Deliver Fallback Answer
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is unsatisfied or needs more detail needs_agent →escalation-human
Acknowledge Uncertainty
- Patient wants to be connected to a staff member needs_agent →escalation-human
- Patient wants the patient portal link CRM.SendPortalLink →resolution
- Patient is okay waiting or will follow up themselves confirmed →resolution
Clinical Deflection
- Patient wants to schedule an appointment book_appt →category-scheduling
- Patient wants a facility location location →category-location
- Patient indicates this may be an emergency emergency →escalation-emergency
- Patient confirms they understand and has no further needs confirmed →resolution
- Patient is distressed or escalating distressed →escalation-human
Escalation — Emergency
Escalation to Human Agent
CRM.CreateCaseNote with question.category, conversation summary, and patient.name if provided
CRM.RouteToAgent with priority: standard, tagged with question.category
Resolution
CRM.LogInteraction with question.category and resolution status

Dispute Escalation to Human Agent
Dispute Intake
- Customer provides name and account number →identity-verification
- Customer mentions an already-open dispute or prior case number →existing-case-lookup
- Customer immediately invokes legal rights (CFPB, arbitration, attorney) or threatens legal action legal_threat →escalation-human
- Customer is highly distressed or agitated distressed →escalation-human
Identity Verification
IdentityVerification.Verify against customer.accountNumber — check security questions, date of birth, and registered contact details.
- Identity verified on first or second attempt verified →account-and-dispute-lookup
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer refuses verification or abandons →escalation-human
Identity Failure
CRM.LogAttempt tag: identity-verification-failed, linked to customer.accountNumber
Account and Dispute Lookup
CoreBanking.GetAccountDetails for customer.accountNumber
CoreBanking.GetTransactionHistory for customer.accountNumber
- Customer provides transaction or decision details →dispute-eligibility-check
- Agent cannot locate the transaction after two attempts →escalation-human
- Customer mentions fraud and amount is above USD 500 high_value_fraud →escalation-human
Dispute Eligibility Check
kb.dispute-eligibility-policy — check whether transaction.date falls within the eligible dispute window and whether dispute.reason qualifies under policy.
- Dispute is within policy window and qualifies eligible →dispute-logging
- Dispute falls outside the eligible window or does not qualify under policy ineligible →dispute-ineligible
- Eligibility is ambiguous and requires human judgment ambiguous →escalation-human
Dispute Ineligible
CRM.LogAttempt tag: dispute-ineligible, linked to customer.accountNumber, note dispute.reason
- Customer accepts the outcome and has no further questions →resolution-closed
- Customer requests secondary review or escalation →escalation-human
Existing Case Lookup
CaseManagement.GetCase by dispute.priorCaseNumber or customer.accountNumber
- Existing open case found case_found →existing-case-update
- No matching case found, treat as new dispute no_case →identity-verification
- Customer escalates frustration about lack of progress frustrated →escalation-human
Existing Case Update
CaseManagement.UpdateCase on case.id with new dispute.reason and today's contact timestamp
CRM.LogInteraction linked to case.id, tag: customer-follow-up
- Customer is satisfied with the update →resolution-closed
- Customer escalates or expresses legal intent legal_threat →escalation-human
- Customer requests to speak with a human specialist →escalation-human
Dispute Logging
- Customer confirms details confirmed →case-creation
- Customer corrects or amends details correction →account-and-dispute-lookup
Case Creation
DisputesManagement.CreateCase for customer.accountNumber with transaction.referenceId, transaction.amount, transaction.date, dispute.reason
CaseManagement.AssignCaseNumber and capture as case.id
CRM.LogInteraction tag: dispute-filed, linked to case.id
→dispute-confirmation
Dispute Confirmation
Twilio.SendSMS to customer.phone: "Your dispute (Case case.id) has been logged. Amount: transaction.amount. We'll follow up within 3–5 business days. Reply STOP to opt out."
Twilio.SendEmail to customer.email with full case summary including case.id, transaction.referenceId, transaction.amount, transaction.date, and next steps.
- Customer has no further questions →resolution-closed
- Customer has additional questions or a separate dispute →dispute-intake
- Customer escalates or requests immediate human follow-up →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation-triggered, linked to customer.accountNumber, note dispute.reason
CaseManagement.CreateOrUpdateCase priority: high, tag: human-escalation, linked to transaction.referenceId
DisputesManagement.FlagForReview on customer.accountNumber with escalation reason and agent transcript summary
- Specialist accepts and takes over approved →escalation-handoff-complete
- No response within 10 min timeout →escalation-handoff-complete
Escalation Handoff Complete
Twilio.SendSMS to customer.phone: "You've been connected with a disputes specialist. Reference: case.id. Expect contact via customer.preferredContact shortly."
Resolution / Closed
CRM.LogInteraction tag: interaction-complete, linked to case.id

Complaint Intake & Routing
Intake & Greeting
- Customer provides name and account number →identity-verification
- Customer refuses to provide details or cannot locate account number →anonymous-record
- Customer immediately mentions a lawyer, regulator, or media escalation-signal →escalation-legal-regulatory
Identity Verification
IdentityVerification.VerifyCustomer using customer.fullName and customer.accountNumber
- Identity confirmed verified →complaint-details-collection
- Identity cannot be confirmed after two attempts unverified →anonymous-record
- System error or timeout system_error CRM.LogAttempt →escalation-human-agent
Complaint Details Collection
CRM.UpdateRecord with customer.accountNumber to flag active complaint intake
- Customer provides complaint details →prior-contact-check
- Customer becomes highly distressed or threatening legal action distressed →escalation-legal-regulatory
- Customer is unclear or needs prompting →complaint-clarification
Complaint Clarification
kb.complaint-intake-guidelines — review required fields for a complete complaint record
- Details now sufficient to proceed →prior-contact-check
- Customer remains unable to provide details CRM.LogPartialComplaint →complaint-details-collection
- Customer escalates tone or mentions legal action distressed →escalation-legal-regulatory
Prior Contact Check
ComplaintManagement.SearchExistingCases using customer.accountNumber and complaint.nature
- Duplicate case found duplicate_detected →duplicate-complaint-handling
- No prior case found, complaint is new no_duplicate →regulatory-category-check
- Customer provides prior reference number complaint.priorReference ComplaintManagement.LinkCase →regulatory-category-check
Duplicate Complaint Handling
ComplaintManagement.RetrieveCase to get case.existingId and current status
CRM.AddInteractionNote linked to case.existingId with today's contact details and any new information provided
- Customer confirms preferred contact and accepts outcome Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer disputes that the duplicate is the same issue →complaint-details-collection
- Customer is dissatisfied with existing case handling frustrated →escalation-human-agent
Regulatory Category Check
ComplianceFlagging.ClassifyComplaint using complaint.nature and complaint.product
kb.regulatory-complaint-categories — check whether complaint falls under fraud, discrimination, CFPB-reportable, FCA-reportable, or other regulated classification
- Complaint classified as regulated category (fraud, discrimination, CFPB, FCA) regulated_category →compliance-routing
- Complaint classified as standard (service, billing, product experience) standard_category →complaint-registration
- Classification inconclusive inconclusive CRM.LogForManualReview →escalation-compliance-team
Compliance Routing
ComplianceFlagging.FlagCase with complaint.category, customer.accountNumber, and complaint.nature
CaseRouting.AssignToComplianceQueue with priority: high
CRM.CreateComplaintRecord tagged regulatory, linked to customer.accountNumber
- Customer would like written confirmation now Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer has further information to add →complaint-clarification
- Customer escalates or mentions external bodies escalation-signal →escalation-legal-regulatory
Complaint Registration
ComplaintManagement.CreateCase with customer.fullName, customer.accountNumber, complaint.nature, complaint.date, complaint.product, complaint.priorReference
CaseRouting.AssignToStandardQueue
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer confirms preferred contact method →preferred-contact-capture
- Customer wants to add anything further →complaint-clarification
- Customer is highly dissatisfied with the process frustrated →escalation-human-agent
Preferred Contact Capture
CRM.UpdatePreferredContact for customer.accountNumber with customer.preferredContact
- Customer confirms email Twilio.SendEmail to customer.email with acknowledgment letter and complaint.referenceNumber →resolution-acknowledgment
- Customer confirms phone or SMS Twilio.SendSMS to customer.phone with acknowledgment summary and complaint.referenceNumber →resolution-acknowledgment
- Customer has no preference, use address on file CRM.RetrieveContactDetails Twilio.SendEmail to customer.email →resolution-acknowledgment
Resolution & Acknowledgment
CRM.CloseInteraction with outcome: complaint-logged, reference: complaint.referenceNumber
- Customer has no further questions — flow ends here
- Customer raises an additional issue →intake-greeting
- Customer requests to speak with someone now wants_agent →escalation-human-agent
Anonymous Record
ComplaintManagement.CreateAnonymousRecord with complaint.nature and any details provided
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer provides a contact method CRM.LogAnonymousContactPreference →resolution-acknowledgment
- Customer declines and ends the interaction — flow ends here
- Customer becomes agitated or references legal action distressed →escalation-legal-regulatory
Escalation — Legal or Regulatory Signal
ComplianceFlagging.FlagCase with priority: urgent, reason: legal-regulatory-signal
CaseRouting.AssignToSeniorComplaintsHandler
CRM.CreateComplaintRecord tagged escalated, legal-signal, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
Twilio.SendSMS to customer.preferredContact confirming escalation and complaint.referenceNumber
Escalation — Human Agent
CaseRouting.TransferToLiveAgent with context: complaint.referenceNumber, customer.accountNumber, complaint.nature
CRM.LogHandoffNote with reason: customer-requested or verification-failure or system-error
Escalation — Compliance Team
ComplianceFlagging.FlagCase with priority: high, reason: inconclusive-classification
CaseRouting.AssignToComplianceReviewTeam
CRM.CreateComplaintRecord tagged compliance-review-required, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber

Complaint Escalation — Insurance
Intake and Greeting
- Customer is calm or moderately frustrated neutral →identity-verification
- Customer is highly distressed, upset, or using strong escalation language distressed →empathy-protocol
- Customer explicitly mentions the ombudsman, legal action, or litigation legal_threat →regulatory-flag
Empathy Protocol
- Customer settles and is willing to continue confirmed →identity-verification
- Customer demands to speak with a manager immediately escalation_request →escalation-human
- Customer remains highly distressed and conversation cannot progress unresolvable →escalation-human
Regulatory Flag
ComplaintsManagementSystem.SetPriorityFlag on case.existingId with tag regulatory-legal-threat
- Continue to identity verification →identity-verification
Identity Verification
IdentityVerification.Verify using policy.number and policy.holderId
- Identity verified successfully verified →complaint-capture
- Identity cannot be verified after two attempts unverified →unverified-complaint-log
- Customer refuses to provide verification details refused →unverified-complaint-log
Complaint Capture
PolicyAdministrationSystem.GetRecord for policy.number
CRM.GetCustomerProfile for policy.holderId
CaseManagement.SearchExistingCases using policy.number and claim.referenceNumber
- Existing open case found matching this complaint duplicate →duplicate-case-update
- No existing case found, proceed to log new complaint no_duplicate →complaint-classification
- Complaint involves a protected or vulnerable customer flag customer.vulnerableFlag →vulnerable-customer-handling
Vulnerable Customer Handling
CRM.SetVulnerableFlag on policy.holderId
ComplaintsManagementSystem.SetPriorityFlag with tag vulnerable-customer
- Customer confirms preferred contact method, continue to classification →complaint-classification
- Customer requests specialist support or senior handler →escalation-human
Complaint Classification
- Classification complete, no escalation triggers identified classified →complaint-logging
- Classification reveals regulatory or legal risk not yet flagged legal_threat →regulatory-flag
- Classification reveals vulnerable customer indicator not yet flagged vulnerable →vulnerable-customer-handling
Duplicate Case Update
CaseManagement.UpdateCase on case.existingId with complaint.description and complaint.date
CRM.AddInteractionNote for policy.holderId with summary of call and updated complaint details
- Update complete, confirm timeframes with customer →regulatory-timeframe-confirmation
Complaint Logging
ComplaintsManagementSystem.CreateComplaint with policy.number, customer.name, complaint.description, complaint.category, complaint.date, claim.referenceNumber
CRM.AddInteractionNote for policy.holderId linking complaint.referenceNumber and complaint.category
- Complaint logged, proceed to confirm response timeframes →regulatory-timeframe-confirmation
Regulatory Timeframe Confirmation
kb.regulatory-response-timeframes — retrieve applicable acknowledgment and resolution deadlines based on complaint.category
- Customer has nothing further to add confirmed →resolution-confirmation
- Customer raises an additional concern or asks a follow-up question further_query →complaint-capture
- Customer requests a callback from a senior handler escalation_request →escalation-human
Unverified Complaint Log
ComplaintsManagementSystem.CreateUnverifiedComplaint with complaint.description, complaint.date, and a note that identity verification is pending
CRM.AddUnverifiedInteractionNote with complaint.description
- Unverified log complete →resolution-confirmation
Escalation to Human Agent
ComplaintsManagementSystem.SetPriorityFlag on complaint.referenceNumber with tag senior-handler-required
CRM.AddInteractionNote for policy.holderId with reason for escalation
CaseManagement.AssignToSeniorHandler and notify agent.seniorHandlerEmail
Resolution Confirmation
CRM.CloseInteraction for policy.holderId with outcome logged and complaint.referenceNumber attached

Claims Intake
Welcome & Policy Lookup
PolicyManagement.LookupPolicy using policy.number or customer.name
- Policy record found, status active →identity-verification
- Policy record found, status lapsed or expired →lapsed-policy
- Policy record not found after two attempts →escalation-human
- System unavailable CRM.LogInteraction with caller details →system-unavailable
Identity Verification
IdentityVerification.Verify using policy.number and provided identifiers
- Identity verified on first or second attempt →loss-details-collection
- Identity not verified on primary identifiers →secondary-identity-check
Secondary Identity Check
IdentityVerification.VerifySecondary using policy.number
- Identity verified with secondary identifiers →loss-details-collection
- Identity still unverified identity_failed →escalation-human
Loss Details Collection
- Customer provides loss date, location, and description →damages-and-injuries-check
- Customer is distressed or mentions injuries or fatalities →escalation-complex-loss
Damages & Injuries Check
- Customer reports injuries, fatality, or catastrophic loss high_severity →escalation-complex-loss
- Customer mentions intent to involve legal counsel legal_intent →escalation-complex-loss
- No injuries, damages appear routine →coverage-check
Coverage Check
kb.coverage-rules — verify loss.type falls within policy.coverageType scope and that loss.date is within the active policy period
- Coverage confirmed active and loss type within scope coverage_confirmed →claim-record-creation
- Loss type appears potentially excluded or ambiguous coverage_ambiguous →flagged-adjuster-review
- Policy was not active on loss.date coverage_inactive →lapsed-policy
Claim Record Creation
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type
CRM.UpdateContact with customer.preferredContact and claim reference
ClaimsManagement.GetClaimID -> claim.id
- Claim record created successfully claim_created →claim-confirmation
- System error during claim creation system_error →system-unavailable
Claim Confirmation
CRM.SendConfirmation to customer.email or customer.phone with claim.id and next-steps summary
- Customer has additional questions →claim-next-steps
- Customer is satisfied, no further questions →resolution
Claim Next Steps
kb.claims-process-guide — retrieve adjuster contact timeline, documentation requirements, and repair/replacement process for policy.coverageType
- Customer satisfied →resolution
- Customer wants to add more details to the claim ClaimsManagement.UpdateClaim →claim-confirmation
- Customer requests escalation →escalation-human
Flagged for Adjuster Review
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type, flag: coverage_review_required
ClaimsManagement.GetClaimID -> claim.id
CRM.UpdateContact with customer.preferredContact and claim reference
CRM.SendConfirmation to customer.email or customer.phone with claim.id and review-pending notice
→resolution
Lapsed Policy
kb.reinstatement-options — retrieve available reinstatement paths for policy.coverageType
- Customer wants reinstatement information CRM.LogInteraction tag: reinstatement-interest →escalation-human
- Customer acknowledges and ends interaction →resolution
System Unavailable
CRM.LogManualClaimDetails with customer.name, customer.phone, customer.email, loss.date, loss.location, loss.description, loss.damages, loss.type, policy.number, flag: manual_follow_up_required
- Customer accepts and ends interaction →resolution
- Customer is dissatisfied and requests immediate escalation →escalation-human
Escalation — Complex or High-Severity Loss
CRM.LogInteraction with full loss details, flag: high_severity
ClaimsManagement.CreatePriorityAlert with loss.description, loss.injuries, policy.number
Escalation to Human Agent
CRM.LogInteraction with full context, flag: human_review_required
Resolution

Card Lost / Stolen Replacement
Intake
- Customer confirms card is lost confirmed →identity-verification
- Customer mentions unauthorized charges or suspected fraud fraud_concern →identity-verification-fraud
- Customer is unresponsive or unclear →identity-verification
Identity Verification
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes on first or second attempt verified →card-block
- Verification fails after multiple attempts failed →verification-failure
Identity Verification — Fraud Path
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes verified →card-block-fraud
- Verification fails after multiple attempts failed →verification-failure
Card Block
CardManagement.BlockCard for card.id
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked
Salesforce.CreateCase type: card-lost-stolen, linked to account.id
- Customer provides last seen details →address-confirmation
- Customer cannot recall details →address-confirmation
Card Block — Fraud Path
CardManagement.BlockCard for card.id
FraudDetection.FlagAccount on account.id tagged: unauthorized-transactions
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked-fraud
Salesforce.CreateCase type: fraud-card-lost-stolen, priority: high, linked to account.id
- Proceed to address confirmation for replacement →address-confirmation-fraud
Address Confirmation
- Customer confirms existing address confirmed →replacement-issuance
- Customer requests a new or different address new_address →address-review
Address Confirmation — Fraud Path
- Customer confirms existing address confirmed →replacement-issuance-fraud
- Customer requests a new or different address new_address →address-review
Address Review
Salesforce.UpdateCase add: unrecognized-replacement-address, replacement.address, flagged-for-review
ShippingFulfillment.HoldOrder pending address verification on account.id
- Address approved approved →replacement-issuance
- Address flagged or rejected rejected →escalation-human
Replacement Issuance
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited
- Customer accepts standard delivery standard →replacement-standard
- Expedited requested but not eligible expedited →replacement-standard
Replacement Issuance — Fraud Path
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited-fraud
- Customer accepts standard delivery standard →replacement-standard-fraud
Replacement — Standard
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines digital card →resolution
Replacement — Expedited
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines →resolution
Replacement — Standard (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
→escalation-fraud
Replacement — Expedited (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
→escalation-fraud
Digital Card Offer
- Digital card provisioned successfully provisioned →resolution
- Customer not eligible or provisioning fails ineligible →resolution
Verification Failure
Salesforce.CreateCase type: identity-verification-failure, priority: high, linked to account.id
Salesforce.LogNote add: customer-directed-to-branch, verification-failed
- Customer wants branch info →escalation-human
- Customer ends interaction →resolution-no-action
Escalation — Fraud Team
FraudDetection.OpenDisputeCase linked to account.id, flagged: unauthorized-transactions, transaction.unauthorized_flag
Salesforce.UpdateCase priority: high, tagged: fraud-escalation, dispute-opened
Slack.Notify to #fraud-ops with case summary, account.id, card.last4
Escalation — Human Agent
Salesforce.UpdateCase priority: high, tagged: manual-review-required
Slack.Notify to #card-services-review with case summary, account.id, customer.name
Resolution
Salesforce.CloseCase resolution: card-replaced, linked to account.id
Resolution — No Action Taken
Salesforce.CloseCase resolution: blocked-no-replacement-issued, linked to account.id

Branch / ATM Locator & Appointment Booking
Greeting & Intent Capture
- Customer wants to find a branch or ATM find-location →location-capture
- Customer wants to book an appointment book-appointment →account-verification
- Customer mentions a complaint or requests a manager complaint →escalation-human
- Intent is unclear or mixed unclear →clarify-intent
Clarify Intent
- Customer clarifies location lookup find-location →location-capture
- Customer clarifies appointment booking book-appointment →account-verification
- Customer remains unclear or frustrated frustrated →escalation-human
Location Capture
MapsGeolocation.DetectLocation from session context if available
- Location detected automatically from session location-detected →location-results
- Customer provides ZIP code or city manually location-provided →location-results
- Customer cannot or will not provide location no-location →location-fallback
Location Fallback
- Customer provides a ZIP or city after all location-provided →location-results
- Customer is satisfied and done done →resolution
- Customer wants to book an appointment instead book-appointment →account-verification
Location Results
BranchATMLocator.Search using customer.zip or customer.city, return top 3 branches and nearest ATMs
BranchATMLocator.SurfaceResults including branch.name, branch.address, branch.hours, branch.distance, branch.status, and atm.address, atm.distance
- One or more branches show as temporarily closed branch-closed →closed-branch-handling
- Customer selects a branch and wants to book an appointment book-appointment →account-verification
- Customer is satisfied with location info only info-only →resolution
- Customer asks about accessibility or language services accessibility →accessibility-check
Closed Branch Handling
BranchATMLocator.GetUpdatedHours for branch.name, surface branch.hours and branch.status
BranchATMLocator.Search for next nearest open branch, surface branch.address and branch.distance
- Customer wants to book at the open alternative book-appointment →account-verification
- Customer satisfied with updated info info-only →resolution
- Customer frustrated or escalates frustrated →escalation-human
Accessibility Check
BranchATMLocator.FilterByAccessibility using customer.accessibilityNeeds and customer.languagePreference
- Accessible branch found and customer wants to book book-appointment →account-verification
- Accessible branch found and customer wants info only info-only →resolution
- No fully accessible branch available nearby no-accessible-branch →escalation-human
Account Verification
CRM.LookupCustomer using customer.phone or customer.email
- Existing customer confirmed account-verified →appointment-type-capture
- Customer is not an existing account holder no-account →non-account-holder-handling
- Unable to verify account status verification-failed →manual-account-check
Manual Account Check
CRM.LookupCustomer using customer.phone or customer.email
- Account found account-verified →appointment-type-capture
- Still unable to verify verification-failed →non-account-holder-handling
Non-Account Holder Handling
- Customer wants branch or ATM info only find-location →location-capture
- Customer interested in opening an account new-account →escalation-specialist
- Customer wants to book a general appointment anyway book-appointment →appointment-type-capture
Appointment Type Capture
- Customer requests a standard appointment type standard-appointment →datetime-capture
- Customer requests a specialized appointment such as mortgage, business banking, or wealth management specialist-appointment →escalation-specialist
- Customer describes a complaint or sensitive issue complaint →escalation-human
Date & Time Capture
AppointmentScheduler.CheckAvailability for appointment.type at branch.name on appointment.preferredDate at appointment.preferredTime
- Slot is available slot-available →appointment-confirmation
- Requested slot is unavailable slot-unavailable →offer-alternative-slot
- Branch has no availability on preferred date no-availability →offer-alternative-branch
Offer Alternative Slot
AppointmentScheduler.GetNextAvailable for appointment.type at branch.name
- Customer accepts the next available slot accepts-slot →appointment-confirmation
- Customer wants a different date or time different-datetime →datetime-capture
- Customer wants to try a different branch different-branch →offer-alternative-branch
Offer Alternative Branch
BranchATMLocator.Search for next nearest branch with availability for appointment.type on appointment.preferredDate
AppointmentScheduler.CheckAvailability at alternative branch
- Customer accepts alternative branch and slot accepts-slot →appointment-confirmation
- Customer wants to try yet another date or branch different-datetime →datetime-capture
- Customer frustrated or wants to escalate frustrated →escalation-human
Appointment Confirmation
AppointmentScheduler.BookAppointment for customer.email, appointment.type, appointment.preferredDate, appointment.preferredTime at branch.name
Twilio.SendSMS to customer.phone with confirmation details: appointment.confirmationNumber, branch.name, branch.address, appointment.preferredDate, appointment.preferredTime
Twilio.SendEmail to customer.email with the same confirmation details and a calendar invite attachment
- Customer has accessibility or special requirements accessibility →accessibility-check
- Customer is done done →resolution
- Customer wants to modify or cancel the appointment modify-appointment →appointment-modification
Appointment Modification
AppointmentScheduler.LookupAppointment using appointment.confirmationNumber
- Customer wants to reschedule reschedule →datetime-capture
- Customer wants to cancel cancel AppointmentScheduler.CancelAppointment for appointment.confirmationNumber →cancellation-confirmation
- Customer is unsure or has another question other →greeting-intent-capture
Cancellation Confirmation
Twilio.SendSMS to customer.phone confirming cancellation of appointment.confirmationNumber
Twilio.SendEmail to customer.email confirming cancellation
- Customer wants to rebook book-appointment →appointment-type-capture
- Customer is done done →resolution
Escalation to Specialist
CRM.CreateCase tagged specialist-appointment, linked to customer.email and appointment.type
AppointmentScheduler.RouteToAdvisor for appointment.type, surface available advisor and earliest slot
Twilio.SendEmail to customer.email with advisor contact information and next steps
- Customer has additional questions other →greeting-intent-capture
- Customer is satisfied done →resolution
Escalation to Human Agent
CRM.CreateCase priority: high, tagged branch-escalation, linked to customer.phone and customer.email
Resolution

Billing Inquiry / Dispute
Greeting and Identity Verification
IdentityVerification.LookupAccount using customer.accountNumber or customer.phoneNumber
IdentityVerification.Verify using customer.pin, customer.dob, or customer.ssn4
- Identity verified successfully verified →inquiry-intake
- Identity verification fails after two attempts unverified →identity-failure
- Customer is unable to provide any credentials →identity-failure
Identity Failure
CaseManagement.LogContact note: identity verification failed, customer redirected
- Customer agrees to visit store or reset online →resolution-no-account-access
- Customer wants to escalate or is upset frustrated →escalation-human
Resolution — No Account Access
Inquiry Intake
CRM.PullAccount for customer.accountNumber, load customer.name, billing.previousCredits, billing.accountBalance
BillingSystem.FetchBillDetail for billing.cycleAffected
- Customer identifies a specific charge or line item →charge-review
- Customer is generally confused about the total bill amount →full-bill-walkthrough
- Customer mentions they never received a notification about a plan or rate change →plan-change-review
- Customer sounds upset or frustrated before details are gathered frustrated →emotional-acknowledgment
Emotional Acknowledgment
- Customer settles and is ready to continue neutral →inquiry-intake
- Customer remains highly agitated or begins demanding a supervisor escalating →escalation-human
Full Bill Walkthrough
BillingSystem.FetchBillDetail for billing.cycleAffected
kb.telecom-billing-line-item-guide — review standard line items, taxes, and surcharge descriptions
- Customer identifies a specific charge after walkthrough →charge-review
- Customer accepts the explanation confirmed →resolution-explained
- Customer remains confused or disputes a line →charge-review
Plan Change Review
BillingSystem.FetchPlanChangeHistory for customer.accountNumber
kb.telecom-plan-change-notification-policy — verify whether advance notice was required and sent
- Notification was sent and change was valid →charge-review
- No notification found and change was applied without notice notification-missing →error-confirmed
- Customer disputes they authorized the change →charge-review
Charge Review
BillingSystem.FetchChargeDetail for billing.chargeDate, billing.chargeDescription, billing.chargeAmount
kb.telecom-billing-policy — check overage rules, promo expiration terms, and adjustment eligibility
- Charge is valid and explainable →explanation-delivery
- Billing error confirmed error-confirmed →error-confirmed
- Charge is outside the 90-day policy adjustment window →outside-policy-window
- Usage or account pattern suggests possible fraud fraud-suspected →escalation-human
- Billing system is unavailable or returns an error system-down →billing-system-down
Explanation Delivery
kb.telecom-billing-policy — reference relevant policy language for promo expiration, overages, or rate changes
- Customer accepts the explanation confirmed →resolution-explained
- Customer disputes the explanation or asks for a supervisor unsatisfied →escalation-human
- Customer accepts but asks for a goodwill credit →goodwill-credit-evaluation
Error Confirmed
BillingSystem.FetchAccountBalance to confirm current billing.accountBalance and billing.previousCredits
- Error amount is within agent authorization threshold within-auth →credit-issuance
- Error amount exceeds agent.authLimit exceeds-auth →escalation-human
Outside Policy Window
kb.telecom-goodwill-credit-policy — check goodwill credit eligibility and authorized limit
- Customer accepts goodwill credit offer →goodwill-credit-evaluation
- Customer rejects and requests further escalation →escalation-human
Goodwill Credit Evaluation
- Goodwill credit is appropriate and within limits approved →credit-issuance
- Credit was already issued recently or customer is ineligible ineligible →escalation-human
Credit Issuance
CreditAdjustmentModule.IssueCredit for credit.amount, linked to customer.accountNumber and billing.cycleAffected
BillingSystem.FetchAccountBalance to confirm updated billing.accountBalance post-credit
CRM.LogInteraction note: credit of credit.amount issued, reason, billing cycle, and agent ID
- Customer is satisfied and has no further questions confirmed →resolution-credit-issued
- Customer has an additional question or concern →inquiry-intake
Billing System Down
CaseManagement.CreateCase priority: normal, note: billing inquiry pending system restoration, link customer.accountNumber
CaseManagement.GenerateReferenceNumber assign to case.referenceNumber
CRM.LogContact note: billing system unavailable, case created, reference case.referenceNumber
- Customer confirms callback or email preference →resolution-callback-scheduled
- Customer is upset about the delay frustrated →emotional-acknowledgment
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered, reason, dispute amount billing.chargeAmount, account customer.accountNumber
CaseManagement.CreateCase priority: high, linked to customer.accountNumber, billing.chargeDescription, billing.chargeAmount
Resolution — Charge Explained
CRM.LogInteraction note: billing inquiry resolved via explanation, no credit issued
Resolution — Credit Issued
CRM.LogInteraction note: billing dispute resolved, credit issued, customer confirmed satisfied
Resolution — Callback Scheduled
CRM.LogInteraction note: callback or email follow-up scheduled, system outage, reference case.referenceNumber

Balance / Transaction Inquiry
Intake
- Customer asks about current balance balance-inquiry →identity-verification
- Customer asks about a specific transaction or unrecognized charge transaction-inquiry →identity-verification
- Customer immediately alleges fraud or unauthorized access fraud-allegation →escalation-fraud
- Intent unclear — ask a clarifying question, then →identity-verification
Identity Verification
OTPAuth.SendOTP to customer.phone
- Customer provides correct OTP verified IdentityVerification.Confirm →account-lookup
- Customer cannot receive OTP, offer security question fallback otp-failed →security-question-fallback
- Customer has already failed one attempt — verification.attemptCount equals 1 →second-attempt-warning
Second Attempt Warning
- Customer provides correct OTP on second try verified IdentityVerification.Confirm →account-lookup
- Customer fails again unverified →escalation-identity-failure
Security Question Fallback
IdentityVerification.FetchSecurityQuestion for customer.accountNumber
- Customer answers correctly verified IdentityVerification.Confirm →account-lookup
- Customer answers incorrectly unverified →escalation-identity-failure
Account Lookup
CoreBanking.GetAccountSummary for customer.accountNumber including account.status, account.balance, account.availableBalance, and customer.accountType
- Account returned successfully and status is active account-found →inquiry-routing
- Account has a hold, freeze, or legal flag on it account-flagged →escalation-account-flag
- System returns an error or times out lookup-error →system-error
Inquiry Routing
- Customer needs current balance confirmed balance-inquiry →balance-delivery
- Customer needs a specific transaction explained transaction-inquiry →transaction-lookup
- Customer now mentions an unexpected fee fee-concern →fee-review
Balance Delivery
CoreBanking.GetAccountSummary to retrieve account.balance and account.availableBalance for customer.accountType
- Customer is satisfied and has no further questions satisfied →resolution
- Customer wants to see recent transactions as well wants-transactions →transaction-lookup
- Customer disputes a charge or says a transaction looks wrong transaction-dispute →transaction-lookup
- Customer raises concern about an unexpected fee fee-concern →fee-review
Transaction Lookup
CoreBanking.GetTransactionHistory for customer.accountNumber over inquiry.dateRange
- Transactions returned successfully transactions-found →transaction-detail
- No transactions found in the requested range no-results →no-transaction-found
- System returns an error lookup-error →system-error
Transaction Detail
CRM.LogInteraction tagged balance-transaction-inquiry, linked to customer.accountNumber and transaction.id
- Customer recognizes the transaction and is satisfied satisfied →resolution
- Customer does not recognize the transaction and believes it is fraudulent fraud-allegation →escalation-fraud
- Customer recognizes the merchant but wants to dispute the amount amount-dispute →escalation-fraud
- Customer has a question about a fee within the transaction fee-concern →fee-review
No Transaction Found
- Customer provides more details — retry lookup →transaction-lookup
- Customer still cannot locate the transaction and suspects fraud fraud-allegation →escalation-fraud
- Customer is satisfied and wants to close satisfied →resolution
Fee Review
CoreBanking.GetFeeDetail for fee.type and fee.amount on customer.accountNumber
kb.fee-waiver-policy — check one-time waiver eligibility criteria for customer.accountType and account standing
- Customer is eligible and agent applies waiver waiver-applied CoreBanking.ApplyFeeWaiver →fee-waiver-confirmation
- Customer is not eligible for a waiver waiver-ineligible →fee-waiver-declined
- Customer is upset and escalation is warranted needs-escalation →escalation-human
Fee Waiver Confirmation
CRM.LogInteraction tagged fee-waiver-applied, linked to customer.accountNumber and fee.type
- Customer is satisfied satisfied →resolution
- Customer has an additional question →inquiry-routing
Fee Waiver Declined
- Customer accepts the outcome satisfied →resolution
- Customer wants to speak to a specialist or is upset escalation-requested →escalation-human
System Error
CRM.LogIncident tagged system-error, linked to customer.accountNumber and customer.phone
CRM.ScheduleCallback for customer.phone at next available slot
- Customer agrees to callback and conversation ends satisfied →resolution
- Customer wants to try again immediately →account-lookup
- Customer is very frustrated and demands to speak with someone now escalation-requested →escalation-human
Escalation — Fraud or Dispute
FraudDetection.FlagAccount for customer.accountNumber tagged suspected-fraud, linked to transaction.id
CRM.CreateCase priority: high, tagged fraud-dispute, linked to customer.accountNumber and transaction.id
→fraud-alert-follow-up
Escalation — Identity Verification Failed
CRM.LogIncident tagged verification-failure, linked to customer.phone
CRM.CreateCase priority: high, tagged identity-lockout
Escalation — Account Flag
CRM.CreateCase priority: high, tagged account-flag-review, linked to customer.accountNumber
CRM.LogInteraction tagged account-flag-escalation
→escalation-human
Escalation — Human Specialist
CRM.CreateCase priority: high, tagged specialist-handoff, linked to customer.accountNumber
CRM.LogInteraction tagged escalation-human, with case summary
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to customer.accountNumber

Amenity / Service Request
Greet and Identify
- Guest provides name and room number confirmed →verify-reservation
- Guest expresses urgency or frustration upfront frustrated →priority-flag
- Guest message is unclear or incomplete unclear →greet-and-identify
Verify Reservation
PMS.LookupReservation by guest.roomNumber and guest.name to confirm reservation.status
- Active reservation found, room matches confirmed →capture-request
- Room number not found or name mismatch unverified →secondary-verification
- Reservation is checked out or future-dated inactive →reservation-mismatch
Secondary Verification
PMS.LookupReservation by guest.reservationId as fallback
- Identity confirmed on second attempt confirmed →capture-request
- Identity still cannot be confirmed unverified →escalation-human
Reservation Mismatch
- Guest believes it is an error →escalation-human
- Guest acknowledges wrong room or wrong stay →greet-and-identify
Capture Request
kb.amenity-catalog — check available items, standard fees, and any quantity limits per room type
- Guest states item or service clearly confirmed →check-availability
- Guest is unsure what is available unclear →suggest-options
- Guest raises a safety or accessibility concern safety →escalation-human
Suggest Options
- Guest selects an item or service confirmed →check-availability
- Guest still uncertain, requests human assistance unclear →escalation-human
Check Availability
HousekeepingDispatch.CheckInventory for request.item against current stock and department capacity
- Item is available and no fee applies available →confirm-and-dispatch
- Item is available with an associated fee fee_required →disclose-fee
- Item is unavailable or out of stock unavailable →offer-alternative
- Request is a late checkout or policy-bound service →policy-check
Disclose Fee
- Guest accepts the fee confirmed →confirm-and-dispatch
- Guest declines the fee declined →offer-alternative
- Guest disputes the fee frustrated →escalation-human
Policy Check
kb.hotel-stay-policies — check late checkout availability, occupancy level, and any blackout conditions for reservation.checkoutDate
- Late checkout is available within policy window available →confirm-and-dispatch
- Hotel is at full occupancy or request falls outside policy window unavailable →policy-limitation
Policy Limitation
- Guest accepts the alternative confirmed →confirm-and-dispatch
- Guest requests a manager or fee waiver escalate →escalation-human
- Guest declines and has no further requests declined →resolution-close
Offer Alternative
- Suitable alternative identified and guest accepts confirmed →confirm-and-dispatch
- Guest declines all alternatives declined →escalation-human
Confirm and Dispatch
HousekeepingDispatch.CreateTicket for request.item to room guest.roomNumber, urgency request.urgency, notes request.notes — returns dispatch.ticketId and dispatch.eta
CRM.LogInteraction for guest.reservationId tagged amenity-request, linked to dispatch.ticketId
- Guest confirms and has nothing further confirmed →resolution-close
- Guest has an additional request additional →capture-request
- Guest expresses dissatisfaction with the expected wait time frustrated →priority-flag
Priority Flag
HousekeepingDispatch.EscalateTicket for dispatch.ticketId, set priority: urgent — returns updated dispatch.eta
CRM.LogInteraction for guest.reservationId tagged priority-escalation
- Re-dispatch confirmed and guest is satisfied confirmed →resolution-close
- Guest remains dissatisfied after re-dispatch frustrated →escalation-human
Escalation to Human Agent
CRM.LogInteraction for guest.reservationId tagged escalation, with full request context and dispatch.ticketId
GuestMessaging.NotifyStaff to #guest-services-ops with guest.name, guest.roomNumber, request.item, and reason for escalation
Resolution / Close
CRM.LogInteraction for guest.reservationId tagged resolved, linked to dispatch.ticketId

SIM Swap / Number Porting
Intake & Request Classification
- Customer requests SIM swap (upgrade or device change) sim-swap →identity-verification
- Customer requests port-out to another carrier port-out →identity-verification
- Customer reports lost or stolen SIM lost-stolen →identity-verification
- Customer reports a SIM change they did not request unauthorized →suspected-hijacking
Identity Verification
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails on first attempt unverified →verification-retry
- Verification fails a second time or customer cannot provide credentials failed →verification-lockout
Verification Retry
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails again failed →verification-lockout
Verification Lockout
CRM.LogFailedVerification for customer.phoneNumber, flag request as locked
CRM.AddNote to account.id: "Identity verification failed — in-store ID required."
Account Eligibility Check
CRM.LookupAccount by customer.phoneNumber, retrieve account.id, account.fraudFlag, account.portFreeze
- Account has an active fraud flag fraud-flag →fraud-hold-escalation
- Account has an active port freeze port-freeze →fraud-hold-escalation
- Account is clear and eligible eligible →request-routing
Request Routing
- Request is a SIM swap sim-swap →sim-swap-execution
- Request is a port-out port-out →port-out-execution
- Request is for a lost or stolen SIM lost-stolen →lost-stolen-sim
SIM Swap Execution
SubscriberProvisioning.ValidateICCID for sim.newICCID
- ICCID is valid and unassigned iccid-valid →sim-swap-confirm
- ICCID is invalid or already in use iccid-invalid →sim-swap-iccid-error
SIM ICCID Error
- Customer provides a new ICCID to try →sim-swap-execution
- Customer cannot provide a valid ICCID →escalation-human-agent
SIM Swap Confirm
- Customer confirms confirmed →sim-swap-provisioning
- Customer cancels or is unsure cancelled →sim-swap-cancelled
SIM Swap Provisioning
SubscriberProvisioning.ExecuteSIMSwap for account.id, new ICCID sim.newICCID, deactivate old SIM
CRM.LogActivity on account.id: "SIM swap completed, new ICCID recorded."
CarrierMessagingGateway.SendSMS to customer.phoneNumber: "Your SIM swap is complete. If your service is not active within 15 minutes, please restart your device."
→resolution
SIM Swap Cancelled
→resolution
Port-Out Execution
NumberPortabilityClearinghouse.LookupCarrier for port.receivingCarrier
- Carrier found and eligible for port carrier-valid →port-auth-code-generation
- Carrier lookup fails or carrier not found carrier-not-found →port-lookup-failure
Port Authorization Code Generation
NumberPortabilityClearinghouse.GeneratePAC for customer.phoneNumber, linked to account.id
CRM.LogActivity on account.id: "Port-out PAC generated for port.receivingCarrier."
→resolution
Port Lookup Failure
CRM.CreateTicket for account.id: "Port-out request — receiving carrier lookup failed. Carrier: port.receivingCarrier. Manual follow-up required."
CRM.LogActivity on account.id: "Carrier lookup failed during port-out request."
- Customer provides callback number callback-provided →port-callback-scheduled
- Customer prefers email email-preferred →port-callback-scheduled
- Customer wants to wait and try again retry →port-out-execution
Port Callback Scheduled
CRM.ScheduleCallback on case.id with customer contact preference
→resolution
Lost or Stolen SIM
SubscriberProvisioning.SuspendSIM for customer.phoneNumber, reason: lost-stolen
CRM.LogActivity on account.id: "SIM suspended — customer reported lost or stolen. Replacement process initiated."
FraudManagement.NotifyLostStolen for account.id
- Customer wants replacement shipped ship-replacement →replacement-sim-dispatch
- Customer will pick up in store store-pickup →store-pickup-guidance
- Customer needs more time to decide undecided →resolution
Replacement SIM Dispatch
SubscriberProvisioning.OrderReplacementSIM for account.id, ship to address on file
CRM.LogActivity on account.id: "Replacement SIM ordered — shipping to address on file."
CarrierMessagingGateway.SendSMS to customer.email: "Your replacement SIM has been ordered and will arrive in 3 to 5 business days. Activation instructions will be included."
→resolution
Store Pickup Guidance
CRM.LogActivity on account.id: "Customer advised to pick up replacement SIM in store."
→resolution
Suspected SIM Hijacking
SubscriberProvisioning.SuspendAccount for customer.phoneNumber, reason: suspected-hijacking
FraudManagement.RaiseSIMHijackingAlert for account.id
CRM.CreateTicket for account.id: "Suspected SIM hijacking — customer did not authorize swap. Immediate fraud team review required."
→escalation-fraud-team
Fraud Hold Escalation
FraudManagement.EscalateAccount for account.id, reason: port-freeze-or-fraud-flag
CRM.LogActivity on account.id: "SIM/port request blocked — active fraud flag or port freeze. Escalated to fraud team."
→escalation-fraud-team
Escalation — Fraud Team
FraudManagement.CreateCase for account.id, priority: high
CRM.NotifyFraudTeam with account.id, customer.phoneNumber, case summary
Escalation — Human Agent
CRM.CreateTicket for account.id: "Customer requires human agent assistance — could not complete SIM swap or port automatically."
Resolution
- Customer has another request new-request →intake
- Customer is done done →close
Close
CRM.CloseInteraction for account.id

Returns / Exchange Request
Intake
- Customer provides order ID and email →order-verification
- Customer says they don't have their order ID no_order_id →order-lookup-fallback
- Customer immediately states item is damaged or wrong damaged_wrong →damaged-wrong-item
Order Lookup Fallback
CRM.LookupOrder by customer.name or customer.email or lookup.method
- Order found →order-verification
- Order not found after lookup CRM.LogAttempt →escalation-human
Order Verification
OrderManagement.GetOrder using order.id and customer.email
kb.return-exchange-policy — confirm return window, final sale rules, and eligible items for order.purchaseDate
- Order verified and item is within return window →reason-and-preference
- Order verified but item is outside return window outside_window →outside-return-window
- Order verified and item is marked final sale final_sale →final-sale-ineligible
- Order cannot be verified after attempts →escalation-human
Reason and Preference
- Customer states reason and wants a refund wants_refund →refund-path
- Customer states reason and wants an exchange wants_exchange →exchange-path
- Customer is unsure — offer both options Say: "I can process either a full refund back to your original payment method or place a new exchange order — whichever works best for you." →reason-and-preference
Refund Path
- Refund is eligible and amount is within auto-approve threshold approved →generate-return-label
- Refund amount exceeds threshold high_value →refund-approval
- Item flagged as ineligible based on stated reason ineligible →policy-exception-check
Generate Return Label
ReturnsManagement.CreateReturnShipment for item.sku linked to order.id
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, return instructions, and expected refund timeline
→resolution
Exchange Path
ReturnsManagement.CheckEligibility for item.sku and order.id
OrderManagement.CheckInventory for the requested replacement item
- Replacement item is in stock →place-exchange-order
- Replacement item is out of stock Say: "Unfortunately the item you requested isn't available right now. I can set up a refund instead, or hold the exchange until it's restocked — which would you prefer?" →reason-and-preference
- Item is ineligible for exchange ineligible →policy-exception-check
Place Exchange Order
OrderManagement.CreateExchangeOrder linked to order.id, capture exchange.orderId
ReturnsManagement.CreateReturnShipment for original item.sku
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, exchange.orderId, and exchange confirmation details
→resolution
Refund Approval
- Approved approved →generate-return-label
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Damaged or Wrong Item
OrderManagement.GetOrder using order.id and customer.email
CRM.LogIssue tagged damaged-or-wrong, linked to order.id
- Low value order — waive return and reship immediately OrderManagement.CreateReplacementOrder EmailNotification.Send →resolution
- Higher value order — request photo evidence then reship evidence_required Say: "Could you reply with a photo of the item? Once I have that I'll get a replacement out to you right away." →damaged-evidence-review
- Ambiguous or high-risk needs_review →escalation-human
Damaged Evidence Review
OrderManagement.CreateReplacementOrder linked to order.id
ReturnsManagement.WaiveReturn for item.sku
EmailNotification.Send to customer.email with replacement order confirmation and apology note
→resolution
Outside Return Window
kb.return-exchange-policy — check goodwill store credit eligibility for borderline cases
- Purchase is borderline outside window (within 7 days past deadline) — offer store credit as goodwill gesture Say: "As a one-time courtesy, I'd be happy to offer you store credit for the value of the item. Would that work for you?" →goodwill-store-credit
- Purchase is well outside window — explain policy firmly outside_window_firm Say: "Unfortunately I'm not able to make exceptions beyond our standard window, but I'd love to help you with anything else." →resolution
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Goodwill Store Credit
ReturnsManagement.IssueStoreCredit for order.total linked to customer.email
EmailNotification.Send to customer.email with store credit amount and redemption instructions
CRM.LogNote tagged goodwill-credit, linked to order.id
→resolution
Final Sale Ineligible
kb.return-exchange-policy — confirm no exceptions apply for final sale items
- Customer accepts the policy →resolution
- Customer reports the item arrived damaged or wrong damaged_wrong →damaged-wrong-item
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Policy Exception Check
- Exception applies — proceed with return or exchange →generate-return-label
- No exception — inform customer and offer alternative support →final-sale-ineligible
- Requires manager judgment needs_review →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged returns-escalation, linked to order.id and customer.email
Slack.Notify to #returns-escalations with case summary, order.id, order.total, and return.reason
Resolution
CRM.UpdateCase status: resolved, linked to order.id

Prior Authorization Status Inquiry
Intake & Caller Identification
- Caller identifies as the patient or member confirmed →member-identity-verification
- Caller identifies as provider staff or office provider →provider-identity-verification
- Caller relationship unclear or caller does not respond unclear →intake-verification
Member Identity Verification
EligibilitySystem.VerifyMember using member.id and member.dob
CRM.PullMemberRecord for member.id
- Identity verified, coverage active verified →auth-lookup
- Identity verified but coverage inactive coverage_inactive →coverage-issue
- Identity cannot be confirmed after two attempts unverified →escalation-human
Provider Identity Verification
ProviderDirectory.VerifyProvider using provider.npi or provider.practiceName
EligibilitySystem.VerifyMember using member.id and member.dob
- Provider and member both verified, coverage active verified →auth-lookup
- Member coverage inactive coverage_inactive →coverage-issue
- Provider NPI not found in directory provider_not_found →escalation-human
- Identity cannot be confirmed unverified →escalation-human
Coverage Issue
CRM.LogCoverageFlag for member.id with status member.coverageStatus
- Caller wants to continue to auth lookup regardless →auth-lookup
- Caller wants to resolve coverage issue first →escalation-human
Authorization Lookup
AuthManagement.LookupAuthorization using auth.referenceNumber or member.id and auth.submittedDate and medication.name or procedure.name
- Authorization record found, status is pending pending →status-pending
- Authorization record found, status is approved approved →status-approved
- Authorization record found, status is denied denied →status-denied
- Authorization record found, clinical info still outstanding info_outstanding →clinical-info-outstanding
- Authorization record cannot be located not_found →auth-not-found
Status — Pending
AuthManagement.CheckReviewDeadline for auth.referenceNumber
- Request is still within the payer's mandated review timeframe →pending-next-steps
- Request has exceeded the mandated review timeframe overdue →escalation-urgent
Pending — Next Steps
CRM.LogInteraction for member.id with status pending and next review date auth.reviewDeadline
- Caller has additional questions →intake-verification
- Caller is satisfied and ends interaction →resolution
Status — Approved
CRM.LogInteraction for member.id with outcome approved
Portal.ConfirmLetterDelivery for auth.referenceNumber
- Caller needs the approval reference number or letter resent →resend-approval
- Caller has no further questions →resolution
Resend Approval Letter
Portal.ResendApprovalLetter for auth.referenceNumber to member.id
CRM.LogInteraction noting resend requested
- Letter resent successfully letter_sent →resolution
- Delivery fails or address needs updating delivery_failed →escalation-human
Status — Denied
kb.appeal-rights-policy — confirm appeal window, peer-to-peer review rights, and deadline rules for auth.denialReason
CRM.LogDenialOutcome for member.id and auth.referenceNumber with reason auth.denialReason
- Denial involves urgent or life-sustaining treatment urgent →escalation-urgent
- Caller confirms intent to appeal appeal_intent →escalation-appeal
- Caller wants to discuss denial reason further →denial-detail
- Caller accepts denial and has no further questions →resolution
Denial Detail
kb.clinical-criteria-policy — look up criteria applied to medication.name or procedure.name
- Caller now wants to initiate appeal appeal_intent →escalation-appeal
- Caller has no further questions →resolution
Clinical Info Outstanding
Portal.SendClinicalInfoRequest to provider.npi with list auth.outstandingDocs
CRM.LogInteraction for member.id noting outstanding documents and notification sent
- Notification sent and caller is satisfied notified →resolution
- Provider disputes what is listed as outstanding disputed →escalation-human
Authorization Not Found
CRM.LogInteraction for member.id noting authorization not found and submission details provided
- Caller wants to escalate to intake team for investigation escalate_intake →escalation-intake
- Caller will resubmit and has no further questions →resolution
Escalation — Urgent or Life-Sustaining Denial
CRM.FlagUrgentCase for member.id and auth.referenceNumber with priority high
AuthManagement.EscalateForExpediteReview for auth.referenceNumber
CRM.LogInteraction noting urgent escalation initiated
Escalation — Formal Appeal
CRM.OpenAppealCase for member.id and auth.referenceNumber with deadline auth.appealDeadline
Portal.SendAppealInstructions to member.id and provider.npi
CRM.LogInteraction noting appeal case opened
Escalation — Intake Investigation
CRM.CreateIntakeInvestigationTicket for member.id with submission details auth.submittedDate and medication.name or procedure.name
CRM.LogInteraction noting intake escalation for missing authorization record
- Caller has additional questions →intake-verification
- Caller is satisfied →resolution
Escalation — Human Agent
CRM.LogInteraction for member.id noting reason for escalation
CRM.RouteToSpecialist priority standard
Resolution
CRM.LogInteraction for member.id with outcome resolved and summary of interaction

Policy Renewal Reminder / Confirmation
Renewal Outreach
Twilio.SendSMS to customer.phone: "Hi customer.name, your policy policy.number is due for renewal on policy.renewal_date. Your updated premium is policy.renewal_premium. Reply CONFIRM to renew, CHANGE to update coverage, or call us to speak with an agent."
Twilio.SendEmail to customer.email with full renewal notice including policy.coverage_summary, policy.renewal_premium, and policy.expiry_deadline.
- Customer responds CONFIRM or calls to confirm renewal confirmed →identity-verification
- Customer responds CHANGE or requests a coverage update change_coverage →identity-verification
- Customer calls or replies to dispute the premium amount dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response within 5 days Twilio.SendSMS follow-up reminder, then →renewal-outreach-followup
Renewal Outreach Follow-up
Twilio.SendSMS to customer.phone: "Reminder: your policy policy.number expires on policy.expiry_deadline. Please confirm your renewal to avoid a lapse in coverage. Reply CONFIRM or call us."
Twilio.SendEmail to customer.email with final renewal warning and policy.expiry_deadline highlighted.
- Customer responds or calls to confirm confirmed →identity-verification
- Customer responds or calls to dispute or change dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response before expiry deadline CRM.LogNoResponse, flag policy for lapse review →escalation-lapse-review
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob and customer.ssn_last4 against policy.number
- Identity verified successfully identity_verified →policy-review
- Identity cannot be verified after two attempts identity_failed →escalation-human
Policy Review
PolicyManagement.GetPolicyDetails for policy.number to load policy.coverage_summary, policy.current_premium, policy.renewal_premium, and policy.renewal_date.
BillingPlatform.GetAccountBalance for policy.number to check billing.outstanding_balance.
- Customer has an outstanding balance and billing.outstanding_balance is greater than zero balance_due →outstanding-balance-resolution
- Customer's intent was to dispute the premium dispute_premium →premium-dispute
- Customer's intent was to change coverage change_coverage →coverage-change-request
- Customer's intent was to cancel cancel_intent →cancellation-intent
- No outstanding balance and customer is ready to confirm renewal confirmed →renewal-confirmation
Outstanding Balance Resolution
BillingPlatform.GetPaymentOptions for policy.number
- Customer agrees to pay balance in full now →payment-processing
- Customer agrees to a payment plan and plan is within policy limits payment_plan_arranged →renewal-confirmation
- Customer refuses to pay or situation is too complex for self-service balance_unresolved →escalation-billing
Premium Dispute
UnderwritingEngine.GetRateChangeFactors for policy.number
kb.rate-change-explanations — retrieve standard explanations for common rate change drivers
- Customer accepts the explanation and is ready to renew accepted →renewal-confirmation
- Customer wants to explore lower-cost coverage tiers explore_options →coverage-change-request
- Customer formally disputes the rate and wants an official review formal_dispute →escalation-underwriting
- Customer still intends to cancel after explanation cancel_intent →cancellation-intent
Coverage Change Request
CRM.LogCoverageChangeRequest for policy.number with customer's requested modifications.
- Requested changes are within auto-approval parameters changes_approved →renewal-confirmation
- Requested changes require underwriter review needs_underwriter →escalation-underwriting
- Customer decides not to change coverage after all and wants to renew as-is confirmed →renewal-confirmation
Cancellation Intent
- Price is the concern price_concern →premium-dispute
- Coverage or service concern coverage_concern →coverage-change-request
- Customer is switching to another insurer switching_insurer →retention-offer
- Customer confirms firm decision to cancel after retention scripting firm_cancel →cancellation-logging
Retention Offer
kb.retention-offers — look up eligible discounts, bundling options, and loyalty incentives for policy.number
CRM.LogRetentionAttempt for policy.number
- Customer accepts a retention offer and agrees to renew retention_accepted →renewal-confirmation
- Customer declines all offers and confirms cancellation intent firm_cancel →cancellation-logging
- Situation is complex or customer is very high value high_value_at_risk →escalation-retention
Cancellation Logging
PolicyManagement.LogNonRenewalIntent for policy.number with cancellation reason.
CRM.UpdateCustomerRecord with non-renewal status and reason code.
DocumentDelivery.SendNonRenewalConfirmation to customer.email.
Renewal Confirmation
- Customer confirms existing payment method use_existing_payment →payment-processing
- Customer wants to update payment method update_payment →payment-method-update
- Customer wants to schedule payment for a later date schedule_payment →payment-scheduling
Payment Method Update
BillingPlatform.UpdatePaymentMethod for policy.number
- Payment method updated successfully payment_updated →payment-processing
- Payment method update fails or customer has trouble payment_update_failed →escalation-billing
Payment Scheduling
BillingPlatform.SchedulePayment for policy.number on customer's chosen date
- Payment successfully scheduled payment_scheduled →renewal-complete
- Requested date is after expiry deadline date_invalid →escalation-billing
Payment Processing
BillingPlatform.ProcessPayment for policy.number using billing.payment_method for policy.renewal_premium.
- Payment processed successfully payment_success →renewal-complete
- Payment declined or failed payment_failed →escalation-billing
Renewal Complete
PolicyManagement.ConfirmRenewal for policy.number and generate renewal.confirmation_number.
DocumentDelivery.SendRenewalConfirmation to customer.email with updated policy documents, policy.renewal_premium, and renewal.confirmation_number.
CRM.UpdateCustomerRecord with renewal status and renewal.confirmation_number.
Escalation — Human Agent
CRM.CreateCase priority: high, reason: identity-verification-failure, linked to policy.number.
Twilio.NotifyAgent on #renewal-support-queue with case summary and policy.number.
Escalation — Underwriting Review
CRM.CreateCase priority: high, reason: underwriting-review-required, linked to policy.number.
UnderwritingEngine.SubmitReviewRequest for policy.number with supporting details and customer's stated concerns.
Twilio.NotifyAgent on #underwriting-queue with case summary.
Escalation — Billing
CRM.CreateCase priority: high, reason: billing-issue, linked to policy.number.
Twilio.NotifyAgent on #billing-support-queue with case summary, billing.outstanding_balance, and policy.renewal_date.
Escalation — Retention Specialist
CRM.CreateCase priority: urgent, reason: high-value-cancellation-risk, linked to policy.number.
CRM.FlagForRetentionSpecialist for policy.number.
Twilio.NotifyAgent on #retention-team with customer summary, policy.renewal_premium, and cancellation reason.
Escalation — Lapse Review
PolicyManagement.FlagPolicyForLapse for policy.number.
CRM.CreateCase priority: high, reason: no-response-lapse-risk, linked to policy.number.
Twilio.SendSMS to customer.phone: "Urgent: your policy policy.number has not been renewed and is at risk of lapsing on policy.expiry_deadline. Please call us immediately to avoid a gap in coverage."

Payment / Billing Issue
Identity Verification
CRM.LookupAccount using customer.email
- Account found, identity confirmed →transaction-lookup
- Account not found or details do not match →identity-retry
- Customer reports suspected fraud or unauthorized access →escalation-fraud
Identity Retry
CRM.LookupAccount using customer.email
- Account found on second attempt →transaction-lookup
- Still unable to locate account →escalation-back-office
Transaction Lookup
OrderManagement.GetOrder using order.id
PaymentProcessor.GetTransaction using transaction.id
- Transaction located and discrepancy confirmed →discrepancy-assessment
- Transaction found but charge appears valid →valid-charge-explanation
- Transaction cannot be found in any system →manual-collection
Discrepancy Assessment
- Duplicate or erroneous charge confirmed, refund not yet issued →refund-initiation
- Charge is valid upon review →valid-charge-explanation
- Refund was already issued, customer has not received it →refund-status-check
- Payment failed due to card or funds issue →failed-payment-recovery
- Refund amount exceeds agent authorization limit high_value →escalation-approval
- Issue cannot be reproduced or confirmed in any system →manual-collection
Refund Initiation
RefundPortal.InitiateRefund for transaction.id, amount refund.amount, linked to customer.accountId
EmailNotifications.Send to customer.email with refund confirmation, refund.id, and refund.timeline
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Valid Charge Explanation
kb.billing-policy — retrieve applicable policy documentation (restocking fees, subscription renewals, promotional terms)
EmailNotifications.Send to customer.email with charge explanation and relevant kb.billing-policy documentation
- Customer accepts the explanation →resolution-confirmed
- Customer disputes the explanation and still believes charge is incorrect →escalation-back-office
- Customer reports the charge was not authorized by them →escalation-fraud
Refund Status Check
PaymentProcessor.GetRefundStatus using refund.id
RefundPortal.CheckRefundHistory for customer.accountId
EmailNotifications.Send to customer.email with refund.id, refund.status, and bank follow-up instructions
- Customer is satisfied with the status and reference number →resolution-confirmed
- Refund is still within processing window, customer accepts →resolution-confirmed
- Refund is overdue and processor shows an error or failed status refund_failed →escalation-back-office
Failed Payment Recovery
- Error message indicates expired card card_expired →update-payment-method
- Error message indicates insufficient funds insufficient_funds →update-payment-method
- Error message is unclear or system shows another reason unknown_error →escalation-back-office
Update Payment Method
kb.billing-policy — retrieve payment update and retry procedures
EmailNotifications.Send to customer.email with payment update link and retry instructions
- Customer confirms they have updated their payment method →payment-retry-confirmed
- Customer is unable to update payment method and needs further help →escalation-back-office
Payment Retry Confirmed
EmailNotifications.Send to customer.email with payment retry confirmation and order.id status
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Manual Collection
CRM.CreateCase for customer.accountId, tagged billing-discrepancy, with transaction.amount, transaction.date, payment.method, and error.message
EmailNotifications.Send to customer.email confirming case has been opened with expected response timeline
- Details collected and case created →escalation-back-office
Escalation — Back-Office Review
CRM.CreateCase priority: high, tagged billing-review, linked to customer.accountId and order.id
CRM.AssignToBackOfficeQueue with all collected transaction details
EmailNotifications.Send to customer.email with case reference, summary of issue, and expected resolution timeline
Escalation — High-Value Refund Approval
- Approved approved →refund-initiation
- Rejected rejected →valid-charge-explanation
- No response within 60 min →escalation-back-office
Escalation — Fraud or Unauthorized Access
CRM.CreateCase priority: urgent, tagged fraud-suspected, linked to customer.accountId
CRM.FlagAccount for customer.accountId with fraud-hold status
PaymentProcessor.NotifyFraudTeam with transaction.id and customer.accountId
EmailNotifications.Send to customer.email with fraud case reference and next steps
Resolution Confirmed
CRM.UpdateCase status: resolved, linked to customer.accountId and order.id
EmailNotifications.Send to customer.email with resolution summary and case closure confirmation

Password / Login Recovery
Intake — Login Issue
- Customer states forgotten password or cannot log in forgotten-password →identity-verification
- Customer states account appears locked or suspended account-locked →account-status-check
- Customer states they did not initiate any lockout or suspects unauthorised access unauthorised-access →escalation-fraud-review
- Issue is unclear or customer is unsure unclear CRM.LogInteraction, ask one clarifying question →identity-verification
Identity Verification
CRM.PullCustomerRecord using customer.registeredEmail or customer.accountNumber
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
- Identity confirmed on first or second attempt identity-confirmed →account-status-check
- Identity fails first attempt identity-failed-once CRM.IncrementAttemptCount, prompt retry →identity-verification-retry
- Account already shows two or more failed attempts max-attempts-reached →escalation-identity-lockout
Identity Verification — Retry
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
CRM.IncrementAttemptCount
- Identity confirmed on retry identity-confirmed →account-status-check
- Identity fails again on retry identity-failed-twice →escalation-identity-lockout
Account Status Check
CoreBanking.GetAccountStatus for customer.accountNumber
FraudMonitoring.CheckFraudFlag for customer.accountNumber
- Account is clear with no flags or locks account-clear →contact-info-check
- Account is locked due to repeated failed login attempts account-locked-cooldown →cooldown-notice
- Account is flagged for suspicious or fraudulent activity fraud-flag-active →escalation-fraud-review
- Account status is suspended or otherwise restricted account-suspended →escalation-account-review
Contact Info Check
CRM.VerifyContactInfo for customer.registeredEmail and customer.registeredPhone
- Registered email or phone confirmed current by customer contact-confirmed →mfa-challenge
- Customer states contact info is outdated or no longer accessible contact-outdated →escalation-manual-id-verification
MFA Challenge
MFAOTP.SendCode to customer.registeredEmail or customer.registeredPhone based on reset.linkDeliveryMethod
- Customer provides correct OTP code otp-valid →password-reset-initiation
- Customer provides incorrect code otp-invalid →escalation-mfa-failure
- Customer states they did not receive the code otp-not-received MFAOTP.ResendCode, confirm delivery method →mfa-challenge
- Customer states the contact they received it on is not theirs otp-wrong-contact →escalation-fraud-review
Password Reset Initiation
CoreBanking.InitiatePasswordReset for customer.accountNumber
EmailSMSDelivery.SendResetLink to customer.registeredEmail or customer.registeredPhone
- Customer confirms new password set and login successful access-restored →resolution-access-confirmed
- Customer states link expired or not received link-expired EmailSMSDelivery.ResendResetLink →password-reset-initiation
- Customer states they are still unable to log in after reset reset-failed →escalation-account-review
Cooldown Notice
CoreBanking.GetCooldownStatus for customer.accountNumber
- Customer acknowledges and agrees to wait customer-accepts-cooldown →resolution-cooldown-advised
- Customer states they did not make those login attempts customer-denies-attempts →escalation-fraud-review
Resolution — Access Confirmed
CRM.LogInteraction tagged password-reset-successful, linked to customer.accountNumber
CoreBanking.ClearLockStatus for customer.accountNumber
Resolution — Cooldown Advised
CRM.LogInteraction tagged cooldown-in-effect, linked to customer.accountNumber
Escalation — Identity Lockout
CoreBanking.LockAccount for customer.accountNumber
CRM.CreateCase priority: high, tagged identity-verification-failed, linked to customer.accountNumber
CRM.LogInteraction tagged max-attempts-reached
Escalation — Fraud Review
CoreBanking.FreezeAccount for customer.accountNumber
FraudMonitoring.EscalateCase for customer.accountNumber, flag: suspicious-activity
CRM.CreateCase priority: high, tagged fraud-review-required, linked to customer.accountNumber
CRM.LogInteraction tagged fraud-flag-escalation
Escalation — Manual ID Verification
CRM.CreateCase priority: medium, tagged outdated-contact-info-manual-review, linked to customer.accountNumber
CRM.LogInteraction tagged contact-info-outdated-escalation
Escalation — MFA Failure
CRM.CreateCase priority: medium, tagged mfa-failure-escalation, linked to customer.accountNumber
CRM.LogInteraction tagged otp-verification-failed
Escalation — Account Review
CRM.CreateCase priority: medium, tagged account-status-restricted, linked to customer.accountNumber
CRM.LogInteraction tagged account-review-escalation

Order Modification / Cancellation
Identity Verification
CRM.LookupCustomer using provided email or phone against customer.email or customer.phone
- Identity verified successfully confirmed →order-status-check
- Customer cannot provide matching credentials unverified →identity-failure
- Customer provides partial info — try one additional prompt partial →identity-retry
Identity Retry
CRM.LookupCustomer with alternate verification field
- Identity confirmed on second attempt confirmed →order-status-check
- Still unable to verify unverified →identity-failure
Identity Failure
EmailNotification.Send to customer.email with self-service portal link and instructions
Order Status Check
OrderManagement.GetOrder using order.id to retrieve order.status, order.items, order.total, order.shippingAddress, order.paymentMethod
kb.order-modification-policy — check modification and cancellation window rules against order.status
- Order is still in a modifiable state (not yet shipped) confirmed →change-intent
- Order has already shipped or is out for delivery shipped →order-already-shipped
- Order is flagged for fraud review fraud_flag →escalation-fraud
Change Intent
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to change item or quantity item_change →item-modification
- Customer wants to update shipping address address_change →address-modification
- Customer is unsure or wants to discuss options unclear →change-intent
Cancellation Confirm
kb.order-cancellation-policy — confirm refund eligibility and timeline for order.paymentMethod
- Customer confirms cancellation confirmed →process-cancellation
- Customer changes their mind or wants partial cancellation instead partial →item-modification
- Customer wants to reconsider — pause and re-engage uncertain →change-intent
Process Cancellation
OrderManagement.CancelOrder for order.id
PaymentProcessor.InitiateRefund for refund.amount to order.paymentMethod
EmailNotification.Send to customer.email with cancellation confirmation and refund.timeline
→resolution-complete
Item Modification
OrderManagement.CheckInventory for the requested replacement or updated quantity against change.requested
- Requested item or quantity is available →apply-item-change
- Requested substitution is out of stock out_of_stock →offer-alternatives
- Customer wants to remove item and remainder falls below free-shipping threshold below_threshold →shipping-cost-warning
Offer Alternatives
OrderManagement.GetSimilarItems for item.substitute recommendations
- Customer selects an available alternative confirmed →apply-item-change
- Customer wants to remove the item instead remove →shipping-cost-warning
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to keep the original order as-is keep →resolution-complete
Shipping Cost Warning
- Customer accepts the added shipping cost and confirms removal confirmed →apply-item-change
- Customer decides to keep the item keep →resolution-complete
- Customer wants to cancel the full order instead cancel →cancellation-confirm
Apply Item Change
OrderManagement.ModifyOrder for order.id with updated order.items and quantities
PaymentProcessor.AdjustCharge if order total has changed, updating refund.amount as applicable
EmailNotification.Send to customer.email with updated order summary
- Customer has another change to make more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Address Modification
OrderManagement.UpdateShippingAddress for order.id with new order.shippingAddress
EmailNotification.Send to customer.email confirming the address update
- Customer has another change more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Order Already Shipped
kb.return-policy — retrieve return window and process details
- Customer wants return instructions sent confirmed EmailNotification.Send to customer.email with return instructions →resolution-complete
- Customer disputes the charge or is not satisfied disputed →escalation-dispute
- Customer accepts the outcome accepted →resolution-complete
Escalation — Fraud Review
CRM.CreateCase priority: high, tagged fraud-review, linked to order.id
Slack.Notify to #fraud-ops with order.id, customer.email, and order summary
Escalation — Dispute or High-Value Refund
CRM.CreateCase priority: high, tagged charge-dispute, linked to order.id and refund.amount
Slack.Notify to #support-escalations with order.id, customer.name, refund.amount, and case summary
Resolution Complete
CRM.UpdateCase status: resolved, linked to order.id

Loyalty / Rewards Inquiry
Intake & Account Lookup
LoyaltyPlatform.LookupAccount by customer.email or customer.phone
- Account found, no fraud flag →identity-verification
- Account found with fraud flag fraud_flag →escalation-human
- Account not found →account-not-found
Identity Verification
IdentityVerification.Verify using customer.fullName and customer.accountId
- Identity confirmed on first or second attempt verified →inquiry-classification
- Identity fails after two attempts unverified →escalation-human
Account Not Found
LoyaltyPlatform.LookupAccount secondary attempt using alternate customer.email or customer.phone
- Account found on secondary lookup →identity-verification
- Account still not found after secondary attempt →escalation-human
Inquiry Classification
- Customer asks about balance or tier status balance_inquiry →balance-and-tier-summary
- Customer wants to redeem rewards redeem →redemption-assistance
- Customer reports missing points after a purchase missing_points →missing-points-investigation
- Customer asks about or disputes expiration expiration_inquiry →expiration-review
- Customer expresses frustration or perceived unfair treatment frustrated →empathy-and-policy-explanation
Balance & Tier Summary
LoyaltyPlatform.GetAccountDetails for customer.accountId
kb.loyalty-rewards-policy — confirm tier benefits and point value rules
- Customer wants to know how to redeem redeem →redemption-assistance
- Customer is satisfied and has no further questions resolved →resolution
- Customer raises a new concern new_concern →inquiry-classification
Redemption Assistance
kb.loyalty-rewards-policy — retrieve current redemption options, minimum threshold, and any active promotions
LoyaltyPlatform.GetRedemptionOptions for customer.accountId
- Customer wants to apply reward to a current or upcoming purchase LoyaltyPlatform.ApplyReward →redemption-confirmed
- Customer wants to know options only, no redemption yet info_only →resolution
- Customer's balance is below the redemption minimum below_minimum →below-minimum-notice
Below Minimum Notice
kb.loyalty-rewards-policy — confirm minimum redemption threshold and earning opportunities
- Customer is satisfied with the explanation resolved →resolution
- Customer is frustrated or disputes the threshold frustrated →empathy-and-policy-explanation
Redemption Confirmed
CRM.LogInteraction tagged reward-redeemed, linked to customer.accountId
- Customer has no further questions resolved →resolution
- Customer has another question new_concern →inquiry-classification
Missing Points Investigation
OrderManagement.LookupTransaction by transaction.receiptNumber and transaction.purchaseDate
- Transaction found and points not yet posted LoyaltyPlatform.CheckPendingPoints →points-adjustment-review
- Transaction found and points already posted →points-already-posted
- Transaction not found in order history →unverified-transaction
Points Already Posted
- Customer confirms the issue is resolved resolved →resolution
- Customer says the balance still looks wrong disputed →escalation-human
Unverified Transaction
OrderManagement.LookupTransaction secondary attempt using transaction.amount and transaction.purchaseDate
- Transaction found on secondary lookup →points-adjustment-review
- Transaction still not found after second attempt →escalation-human
Points Adjustment Review
- Adjustment is within policy limits and clearly supported low_risk_adjustment →adjustment-approval
- Adjustment amount is high, ambiguous, or flags a pattern high_risk_adjustment →escalation-human
Adjustment Approval
- Approved approved LoyaltyPlatform.CreditPoints →adjustment-confirmed
- Rejected rejected →adjustment-declined
- No response in 30 min →escalation-human
Adjustment Confirmed
CRM.LogInteraction tagged points-adjustment-approved, linked to customer.accountId, reference adjustment.requestId
- Customer is satisfied resolved →resolution
- Customer has another question new_concern →inquiry-classification
Adjustment Declined
kb.loyalty-rewards-policy — confirm decline reason to share with customer
- Customer accepts the explanation resolved →resolution
- Customer remains dissatisfied or requests an exception frustrated →escalation-human
Expiration Review
kb.loyalty-rewards-policy — retrieve expiration policy, grace window rules, and reinstatement eligibility criteria
- Points have not yet expired, customer wants prevention tips info_only →resolution
- Points expired recently and fall within the grace window within_grace_window →escalation-human
- Points expired outside the grace window outside_grace_window →expiration-outside-grace
- Customer is upset about the expiration frustrated →empathy-and-policy-explanation
Expiration Outside Grace
kb.loyalty-rewards-policy — confirm grace window boundaries and prevention steps
- Customer accepts the explanation resolved →resolution
- Customer is still dissatisfied and requests a policy exception frustrated →escalation-human
Empathy & Policy Explanation
kb.loyalty-rewards-policy — retrieve relevant policy section to explain to customer
- Customer feels heard and is satisfied satisfied →resolution
- Customer remains dissatisfied and wants to escalate escalate →escalation-human
Escalation to Human Agent
CRM.LogInteraction tagged escalation, linked to customer.accountId, with full interaction summary
Slack.Notify to #loyalty-ops with customer.accountId, customer.fullName, reason for escalation
Resolution
CRM.LogInteraction tagged resolved, linked to customer.accountId

General FAQ Telecom
Intake
- Question is purely general / no account data needed general →general-lookup
- Question requires account-specific details account-specific →identity-verification
- Question reveals a billing dispute or unexpected charge billing-dispute →escalation-billing
- Question reveals a service outage or technical fault technical-issue →escalation-technical
- Customer sounds frustrated or complaint is embedded in the question frustrated →acknowledge-concern
Acknowledge Concern
- Underlying topic is general general →general-lookup
- Underlying topic requires account data account-specific →identity-verification
- Underlying topic is a billing dispute billing-dispute →escalation-billing
- Underlying topic is a technical fault technical-issue →escalation-technical
- Concern is a formal complaint requiring case handling complaint →escalation-complaint
Identity Verification
IdentityVerification.RequestAccountLookup using customer.accountNumber or customer.phone
IdentityVerification.VerifyIdentity using customer.name, customer.pin, customer.ssn4
- Identity verified successfully verified →account-lookup
- Identity verification fails after two attempts unverified →unverified-general-only
Unverified — General Info Only
kb.general-plans-policy — retrieve publicly available plan and policy information relevant to question.topic
- Customer accepts general information and asks a follow-up general →general-lookup
- Customer wants to try a different verification channel retry →escalation-human
- Customer has no further questions →resolution
Account Lookup
CRM.GetAccountProfile using customer.accountNumber
AccountManagement.GetCurrentPlan to retrieve customer.currentPlan and customer.serviceType
→account-specific-answer
Account-Specific Answer
- Answer delivered and customer is satisfied confirmed →resolution
- Answer reveals a billing discrepancy or charge dispute billing-dispute →escalation-billing
- Answer reveals a service or network issue technical-issue →escalation-technical
- Topic is outside knowledge base coverage kb-gap →escalation-human
- Customer wants to make a plan change plan-change →escalation-plan-change
General Lookup
kb.faq-content — retrieve answer matching question.topic
kb.general-plans-policy — supplement with plan or policy details if applicable
- Answer delivered and customer confirms it resolved their question confirmed →resolution
- Customer follow-up question is still general general →general-lookup
- Customer follow-up requires account details account-specific →identity-verification
- Topic falls outside knowledge base coverage kb-gap →kb-gap-acknowledgement
- Customer reveals frustration or complaint frustrated →acknowledge-concern
Knowledge Base Gap
- Customer agrees to be escalated confirmed →escalation-human
- Customer has a different, simpler question general →general-lookup
- Customer wants to try self-service and end the call self-service →resolution
Escalation — Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.accountNumber, notes include question.raw
Escalation — Billing
CRM.CreateCase tagged billing-dispute, priority: high, linked to customer.accountNumber
Escalation — Technical Issue
CRM.CreateCase tagged technical-issue, linked to customer.accountNumber, notes include customer.serviceType
Escalation — Plan Change
→plan-change-telecom
Escalation — Complaint
CRM.CreateCase tagged formal-complaint, priority: high, linked to customer.accountNumber, notes include question.raw
Resolution
- Customer has another question follow-up →intake
- Customer confirms they are done confirmed →close
Close

General FAQ / Product Info
Intake
- Customer asks about a specific product or account type (HYSA, CD, checking, savings, loan) product-inquiry →topic-identification
- Customer asks about rates or current pricing rate-inquiry →topic-identification
- Customer asks about fees or charges fee-inquiry →topic-identification
- Customer asks about a policy or terms policy-inquiry →topic-identification
- Customer references their own account balance, transaction, or personal account detail account-detail-request →identity-verification
- Customer mentions a complaint, dispute, or expresses frustration complaint →escalation-human
- Customer explicitly asks to speak with a human human-request →escalation-human
- Intent unclear or ambiguous unclear →clarify-question
Clarify Question
- Customer clarifies a product, rate, fee, or policy topic product-inquiry →topic-identification
- Customer clarifies they need account-specific information account-detail-request →identity-verification
- Customer still unclear or asks for a human unclear →escalation-human
Topic Identification
- Topic identified and maps to a standard product or policy kb.product-catalog →knowledge-base-lookup
- Topic identified and is rate- or fee-specific RateFeeDatabase.QueryProduct →rate-fee-retrieval
- Topic involves investment products or securities investment-topic →investment-disclaimer-check
- Topic cannot be matched to any known product or policy no-match →knowledge-gap-handling
Knowledge Base Lookup
FAQCMS.LookupTopic for query.topic filtered by customer.state
CRM.GetCustomerProfile for customer.id to confirm customer.status (existing or prospective)
- Clear, current, single result returned result-found →deliver-answer
- Result returned but flagged as recently updated or version-changed stale-or-updated →change-flag-review
- No result or conflicting entries returned no-result →knowledge-gap-handling
Rate / Fee Retrieval
RateFeeDatabase.QueryProduct for product.name filtered by customer.state
FAQCMS.LookupTopic for any associated fee-schedule or policy footnotes
- Current rate or fee confirmed, no promotional flag result-found →deliver-answer
- Promotional rate or limited-time offer applies promo-active →promo-terms-delivery
- Rate or fee recently changed rate-changed →change-flag-review
- Query returns no data or an error no-result →knowledge-gap-handling
Change Flag Review
RateFeeDatabase.QueryProduct to pull the most current record and confirm effective date
FAQCMS.LookupTopic to retrieve any change notice or customer communication linked to query.topic
- Most current version confirmed and retrieved →deliver-answer
- Change is tied to a promotional window promo-active →promo-terms-delivery
- Conflict persists or effective date is ambiguous conflict →knowledge-gap-handling
Promo Terms Delivery
- Customer wants to know how to apply or enroll apply-intent →escalation-human
- Customer has another question more-questions →intake
- Customer is satisfied and has no further questions satisfied →close-interaction
Investment Disclaimer Check
ComplianceDisclaimerLibrary.GetDisclaimer for query.product
- Customer is asking for general product information only (no personalized recommendation) general-info →knowledge-base-lookup
- Customer is asking for a recommendation or advice on what to buy or invest in advice-request →escalation-human
- Regulatory disclaimer required before answering kb.compliance-disclaimer-library →deliver-answer-with-disclaimer
Deliver Answer
- Customer has a follow-up question on the same topic follow-up →deliver-answer
- Customer has a new question on a different topic new-topic →intake
- Customer asks something that now touches on their specific account account-detail-request →identity-verification
- Customer is satisfied satisfied →close-interaction
- Customer expresses frustration or dissatisfaction frustrated →escalation-human
Deliver Answer With Disclaimer
- Customer has another general question more-questions →intake
- Customer asks for a personalized recommendation or advice advice-request →escalation-human
- Customer is satisfied satisfied →close-interaction
Identity Verification
IdentityVerification.InitiateCheck for customer.id via query.channel
- Verification passed identity-verified →account-detail-lookup
- Verification failed or customer unable to complete it identity-failed →escalation-human
- Customer declines verification declined →offer-general-only
Offer General Only
- Customer accepts general answer and asks a product question product-inquiry →intake
- Customer still wants account detail or requests a human human-request →escalation-human
- Customer has no further questions satisfied →close-interaction
Account Detail Lookup
CRM.GetCustomerProfile for customer.id
RateFeeDatabase.QueryProduct for customer.accountType filtered by customer.state
- Customer is asking about their current rate or fee on an existing product rate-fee-detail →deliver-answer
- Customer is asking about a balance or recent transaction transaction-request →escalation-human
- Customer is asking about a policy as it applies to their account policy-detail →deliver-answer
Knowledge Gap Handling
CRM.LogInteraction with query.topic flagged as unresolved, route note to specialist.queue
- Route to specialist queue →escalation-human
Escalation to Human
CRM.LogInteraction with full conversation context, query.topic, customer.id, and escalation reason
CRM.CreateCase tagged faq-escalation, linked to customer.id and query.topic
Close Interaction
CRM.LogInteraction with query.topic marked resolved and customer.status updated

Fraud Alert Follow-up
Alert Notification
FraudDetectionPlatform.FetchFlaggedTransaction to retrieve transaction.id, transaction.amount, transaction.merchant, transaction.datetime, and transaction.riskScore.
- System lookup succeeds and transaction details are retrieved →identity-verification
- System lookup fails or returns no transaction record system_error →system-lookup-failure
Identity Verification
IdentityVerification.VerifyCustomer using customer.name, customer.dob, and customer.pin or customer.securityAnswer.
- Identity verified successfully confirmed →transaction-confirmation
- Identity cannot be verified after two attempts failed →verification-failure
- Customer is uncertain or provides partial information partial →verification-retry
Verification Retry
IdentityVerification.VerifyCustomer retry with alternate credentials.
- Identity verified on retry confirmed →transaction-confirmation
- Identity still cannot be verified failed →verification-failure
Verification Failure
CRM.LogInteraction tagged verification-failure, linked to account.id, noting no transaction details were disclosed.
Transaction Confirmation
- Customer confirms the transaction is theirs confirmed →resolution-clear
- Customer says the transaction is not theirs denied →disputed-transaction
- Customer is unsure or asks for more time uncertain →transaction-detail-review
Transaction Detail Review
kb.fraud-dispute-policy — review dispute eligibility window for transaction.datetime.
- Customer recognizes the transaction after further detail confirmed →resolution-clear
- Customer confirms the transaction is not theirs denied →disputed-transaction
- Customer remains unsure and cannot confirm or deny uncertain CRM.LogInteraction tagged pending-customer-response →escalation-human
Disputed Transaction
CardManagement.BlockCard for card.last4.
CRM.UpdateCase flagged as fraud-reported, linked to account.id and transaction.id.
- Customer confirms only the single flagged transaction is unrecognized single-transaction →open-dispute
- Customer flags additional unrecognized transactions multiple-transactions →expanded-fraud-event
- Customer is distressed, upset, or requests immediate escalation distressed →escalation-human
Expanded Fraud Event
CoreBanking.FreezeAccount for account.id.
FraudDetectionPlatform.FlagAccountCompromised linked to account.id.
CRM.CreateCase priority: critical, tagged expanded-fraud-account-review, linked to account.id.
DisputeManagement.OpenExpandedReview for account.id, noting all flagged transactions.
- Case created and account frozen →escalation-human
Open Dispute
DisputeManagement.OpenDispute for transaction.id, transaction.amount, transaction.merchant, linked to account.id. Capture dispute.caseId.
→replacement-card
Replacement Card
CardManagement.IssueReplacementCard for card.last4, ship to replacement.deliveryAddress.
- Approved approved →dispute-wrap-up
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Dispute Wrap-up
CRM.UpdateCase with dispute.caseId, card block status, and replacement card shipping confirmation.
CoreBanking.ClearFraudAlert on transaction.id.
- Customer has further questions or concerns →escalation-human
- Customer is satisfied and call can close →resolution-clear
System Lookup Failure
CRM.LogInteraction tagged system-error-transaction-lookup, linked to account.id, noting transaction details could not be retrieved.
FraudDetectionPlatform.FlagForManualReview linked to account.id, tagged system-lookup-failure.
Escalation to Human Agent
CRM.CreateCase priority: high, tagged fraud-escalation, linked to account.id and transaction.id.
Slack.Notify to #fraud-ops with case summary including account.id, transaction.id, transaction.amount, card.last4, and reason for escalation.
Resolution — Clear
CoreBanking.ClearFraudAlert on transaction.id.
CRM.LogInteraction tagged alert-cleared-customer-confirmed, linked to account.id.

Device Troubleshooting
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountId
- Account found, identity confirmed verified →device-details
- Account not found or system lookup fails lookup_failed →manual-account-collection
- Customer cannot verify identity after two attempts →escalation-human
Manual Account Collection
CRM.CreateManualRecord with collected details
Ticketing.FlagForDataSyncReview tagged data-sync-error, linked to customer.accountId
- Details collected and record created →device-details
- Customer unable to provide sufficient details →escalation-human
Device Details
DeviceManagement.LookupDevice using device.imei or customer.accountId
- Device record found, pulling device.make, device.model, device.imei →issue-intake
- Device record not found CRM.NoteManualDevice collect device.make, device.model, device.imei manually →issue-intake
Issue Intake
CRM.LogInteraction note issue.description, issue.startDate, issue.stepsTried
Ticketing.CheckPriorContacts for customer.accountId, device.imei
- Same issue reported three or more times repeat_contact →escalation-specialist
- Customer expresses significant frustration or urgency frustrated →escalation-specialist
- Physical damage mentioned (cracked screen, water damage, etc.) physical_damage →physical-damage-assessment
- No prior contacts or fewer than three, standard issue →basic-troubleshooting
Basic Troubleshooting
kb.device-troubleshooting-standard-steps — retrieve model-specific restart and reset instructions for device.make device.model
NetworkDiagnostics.RunCheck on device.imei — scan for signal, data connectivity, and provisioning issues
- Network or provisioning fault detected network_fault NetworkDiagnostics.PushProvisioningFix →post-basic-check
- No network fault, continue with device-side steps →software-update-check
Software Update Check
- Customer confirms update available, guides them to install DeviceManagement.LogUpdateInitiated →post-basic-check
- Device already on latest software, no update available →network-settings-reset
Network Settings Reset
kb.network-reset-instructions — confirm steps for device.make device.model
- Customer completes reset and reconnects →post-basic-check
- Customer declines to proceed or step causes a new error →advanced-troubleshooting
Post-Basic Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present unresolved →advanced-troubleshooting
Advanced Troubleshooting
- Agent determines factory reset is appropriate path factory_reset_candidate →factory-reset-guidance
- Agent determines hardware fault likely hardware_fault →physical-damage-assessment
- Agent determines issue is unresolvable through scripted steps unresolved_scripted →escalation-specialist
Factory Reset Guidance
kb.factory-reset-instructions — retrieve step-by-step for device.make device.model
- Customer confirms backup complete and agrees to proceed DeviceManagement.LogFactoryResetInitiated →post-factory-check
- Customer wants to back up first CRM.NoteBackupPending →callback-scheduling
- Customer declines factory reset →escalation-specialist
Post-Factory Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present after factory reset unresolved →escalation-specialist
Physical Damage Assessment
WarrantyInsurance.CheckEligibility for device.imei, customer.accountId — retrieve device.warrantyStatus, device.insuranceStatus
- Device under active warranty, damage type covered warranty_eligible →warranty-repair-route
- Device covered by insurance insurance_eligible →insurance-claim-route
- No warranty or insurance coverage no_coverage →out-of-warranty-options
Warranty Repair Route
WarrantyInsurance.InitiateWarrantyClaim for device.imei, customer.accountId
Ticketing.CreateTicket tagged warranty-repair, linked to device.imei
CRM.LogInteraction note warranty claim initiated
→resolution-confirmed
Insurance Claim Route
Ticketing.CreateTicket tagged insurance-claim, linked to device.imei
CRM.LogInteraction note insurance claim routed
→insurance-claims-workflow
Out-of-Warranty Options
kb.repair-center-locator — retrieve authorized repair centers near customer
kb.device-upgrade-eligibility — check upgrade options for customer.accountId
- Customer wants paid repair CRM.LogInteraction note repair referral provided, share repair center details →resolution-confirmed
- Customer wants to explore upgrade →escalation-human
- Customer wants to think it over CRM.LogInteraction note options presented →resolution-confirmed
Callback Scheduling
CRM.ScheduleCallback for customer.phone, note issue.description and steps completed
Ticketing.CreateTicket tagged callback-pending, linked to device.imei
→resolution-confirmed
Escalation to Specialist
Ticketing.CreateTicket tagged specialist-escalation, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note escalation reason: issue.description, prior contacts ticket.priorContactCount, steps completed
CRM.NotifySpecialistQueue with ticket summary
- Customer prefers callback →callback-scheduling
- Customer holds for specialist →escalation-human
Escalation to Human Agent
Ticketing.CreateTicket tagged human-handoff, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note full interaction summary
Resolution Confirmed
Ticketing.CreateTicket tagged resolved, linked to device.imei, customer.accountId
CRM.LogInteraction note resolution summary, steps taken, outcome
CRM.CloseInteraction for customer.accountId

Complaint Escalation Stay/Trip Issue
Intake & Verification
CRM.LookupCustomer by customer.phone or customer.email
PropertyManagementSystem.LookupReservation by booking.id
- Reservation found and account matched →complaint-capture
- Reservation not found in system →manual-case-creation
- Customer mentions a prior unresolved case CaseManagement.LookupCase by complaint.priorCaseNumber →complaint-capture
Complaint Capture
LoyaltyPlatform.GetProfile by customer.loyaltyNumber
- Customer describes issue calmly and provides clear details neutral →policy-check
- Customer is highly upset, distressed, or emotional frustrated →empathy-de-escalation
- Customer explicitly mentions legal action, regulatory body, health or safety incident threatened →escalation-human
Empathy & De-escalation
- Customer calms and continues describing the issue neutral →policy-check
- Customer remains highly distressed or repeats legal / safety threat threatened →escalation-human
Policy Check
kb.complaint-resolution-policy — verify complaint window, eligible remedy types, and authorization limits for booking.checkOut and complaint.nature
PropertyManagementSystem.GetReservationDetails for booking.id to confirm rate, room type, and recorded amenities
- Stay is within complaint window and issue is policy-eligible →remedy-assessment
- Stay falls outside complaint window or issue is partially out of scope →out-of-scope-partial-remedy
- Booking channel is a third-party OTA OTAPartnerPortal.CheckBookingOwnership →ota-redirect
Remedy Assessment
- Remedy is within authorization limits and straightforward →remedy-confirmation
- Requested or warranted compensation exceeds authorization limit exceeds_limit →escalation-human
- Complaint involves a safety or health element safety_flag →escalation-human
Remedy Confirmation
- Customer accepts the remedy confirmed →process-remedy
- Customer rejects and requests higher compensation dissatisfied →escalation-review
- Customer requests time to think and asks to be followed up →case-documentation
Process Remedy
RefundBillingSystem.ProcessRefundOrCredit for booking.id with remedy.type and remedy.value
LoyaltyPlatform.ApplyCredit if remedy.type is loyalty credit
CaseManagement.CreateCase tagged complaint-resolved, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with case reference case.id and remedy details
- Customer confirms receipt and has no further issues →resolution-close
- Customer raises an additional complaint →complaint-capture
Escalation Review
- Approved approved →process-remedy
- Rejected rejected →remedy-final-offer
- No response in 60 min →escalation-human
Remedy Final Offer
- Customer accepts confirmed →process-remedy
- Customer declines and wishes to escalate further dissatisfied →escalation-human
OTA Redirect
CaseManagement.CreateCase tagged ota-redirect, linked to booking.id
OTAPartnerPortal.InitiateDisputeReferral for booking.id with complaint.nature and complaint.details
- Customer is satisfied with the redirect guidance →resolution-close
- Customer is unsatisfied and escalates frustration frustrated →escalation-human
Out-of-Scope / Partial Remedy
kb.complaint-resolution-policy — identify any goodwill or partial remedy options available outside the standard window
CaseManagement.CreateCase tagged out-of-scope, linked to booking.id
- Customer accepts the partial or goodwill remedy confirmed →process-remedy
- Customer is dissatisfied and escalates frustrated →escalation-human
Manual Case Creation
CRM.LookupCustomer by customer.email or customer.loyaltyNumber
CaseManagement.CreateCase tagged pending-lookup, with booking.propertyName, booking.checkIn, booking.checkOut, complaint.nature, customer.email, customer.phone
- Customer accepts the follow-up path →resolution-close
- Customer is unwilling to wait and is highly agitated frustrated →escalation-human
Escalation to Human Agent
CaseManagement.CreateCase priority: urgent, tagged escalation, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with escalation flag and complaint.details
Slack.Notify to #hospitality-escalations with case summary, booking.id, complaint.nature, and customer.desiredResolution
Case Documentation & Follow-up
CaseManagement.CreateCase tagged pending-customer-response, linked to booking.id with complaint.details and proposed remedy.type
CRM.UpdateCustomerRecord with case.id and follow-up flag
SendEmail to customer.email with case summary, proposed remedy, and contact instructions
- Customer returns and accepts remedy confirmed →process-remedy
- Customer returns and escalates dissatisfied →escalation-human
Resolution & Close
CaseManagement.CloseCase for case.id with resolution status
CRM.UpdateCustomerRecord with resolved status and remedy applied
LoyaltyPlatform.LogInteraction for customer.loyaltyNumber tagged complaint-resolved

Complaint Escalation
Greeting & Acknowledgement
- Customer provides details calmly or with mild frustration neutral →identity-verification
- Customer is immediately hostile or uses escalation language ("speak to a manager", "unacceptable") escalation_language →pre-escalation-check
- Customer is highly distressed or emotional frustrated →empathy-bridge
Empathy Bridge
- Customer settles and is willing to continue →identity-verification
- Customer continues to demand a manager or escalate escalation_language →pre-escalation-check
Identity Verification
CRM.LookupCustomer using customer.accountId or order.id
ContactHistory.GetLog for customer.accountId to retrieve prior contact history on this issue
- Customer identity and order verified successfully verified →complaint-review
- Identity or order cannot be verified unverified →proof-request
Proof Request
- Alternate proof provided and accepted verified →complaint-review
- Customer cannot provide any proof unverified →policy-exception-flag
- Customer becomes agitated or refuses frustrated →empathy-bridge
Complaint Review
OrderManagement.GetOrderDetails for order.id including order.value, order.date, and item details
ContactHistory.GetLog to confirm complaint.nature and complaint.date and any previous resolution attempts
- Complaint relates to a product defect or damage product_issue →remedy-assessment
- Complaint relates to a missing, late, or incorrect order fulfilment_issue →remedy-assessment
- Complaint relates to a service or staff experience service_issue →remedy-assessment
- Complaint involves a potential safety or legal concern safety_legal →escalation-supervisor
Remedy Assessment
- Remedy identified within policy and agent authority remedy_ready →remedy-offer
- Order value or complexity exceeds agent authority threshold authority_exceeded →escalation-supervisor
- Issue falls outside return or compensation policy out_of_policy →policy-exception-flag
Remedy Offer
- Customer accepts the remedy accepted →resolution-logging
- Customer rejects the remedy and gives a reason rejected →alternative-remedy-offer
- Customer demands a manager explicitly escalation_language →pre-escalation-check
Alternative Remedy Offer
- Customer accepts the alternative remedy accepted →resolution-logging
- Customer rejects the alternative remedy as well rejected →pre-escalation-check
- Customer demands a manager escalation_language →pre-escalation-check
Pre-Escalation Check
- Customer language is abusive or threatening abusive →conduct-warning
- Customer is demanding escalation but not abusive escalation_language →escalation-supervisor
- Two remedy offers have been refused remedies_exhausted →escalation-supervisor
Conduct Warning
- Customer agrees and calms down neutral →remedy-offer
- Customer continues to use abusive language abusive →escalation-conduct
Policy Exception Flag
CRM.UpdateCase with complaint.nature, order.id, and exception request details
RefundCompensationTool.FlagException tagged policy-exception, linked to order.id
- Approved approved →remedy-offer
- Rejected rejected →escalation-supervisor
- No response within 30 min timeout →escalation-supervisor
Escalation to Supervisor
CRM.UpdateCase with full complaint summary, remedy.offered, remedy.alternative, contact.history, and escalation reason
SupervisorQueue.Assign priority: high, tagged complaint-escalation, linked to order.id
Escalation — Conduct Transfer
CRM.UpdateCase with complaint.nature, contact.history, and conduct flag
SupervisorQueue.Assign priority: high, tagged conduct-escalation, linked to customer.accountId
Resolution Logging
RefundCompensationTool.ApplyRemedy for order.id with agreed remedy details
CRM.UpdateCase with complaint.nature, remedy applied, and resolution status: closed
ContactHistory.LogResolution for customer.accountId with outcome summary
- Customer has further queries →greeting-acknowledgement
- Customer is satisfied and done confirmed →resolution-complete
Resolution Complete
CRM.UpdateCase status: resolved, satisfaction: confirmed

Claim Status Inquiry
Intake and Verification
CRM.LookupCustomer using customer.fullName and policy.number
IdentityVerification.Verify using customer.dateOfBirth or customer.ssnLast4 against policy.number
- Identity verified successfully verified →claim-record-lookup
- Identity verification fails or information does not match unverified →identity-failure
- Customer mentions legal action, complaint, or attorney representation escalation-intent →escalation-special-handling
Claim Record Lookup
ClaimsManagementSystem.GetClaim using claim.number or claim.dateOfLoss and policy.number
- Claims system returns record successfully →claim-triage
- Claims system is unavailable or returns an error system-down →system-unavailable
Claim Triage
- claim.litigationFlag or claim.attorneyFlag or claim.specialHandlingFlag is set special_handling →escalation-special-handling
- claim.fatalityFlag or major injury indicator is set major_injury →escalation-special-handling
- Claim status is denied denied →denial-status
- Claim status is approved, paid, under review, received, or closed standard_status →standard-status-delivery
Standard Status Delivery
PolicyAdministrationSystem.GetOutstandingItems for claim.number
- Outstanding action items exist for the customer items_outstanding →outstanding-items-review
- No outstanding items and claim is closed or paid →resolution-and-close
- No outstanding items and claim is still in progress →resolution-and-close
Outstanding Items Review
kb.claims-outstanding-items-guide — reference for explaining document or action requirements to policyholders
CRM.LogInteraction with claim.number, customer.fullName, outstanding items noted, preferred contact customer.preferredContact
- Customer requests follow-up summary TicketingPlatform.SendSummary to customer.preferredContact →resolution-and-close
- Customer has no further requests →resolution-and-close
Denial Status
kb.claims-appeals-process — retrieve current appeals eligibility window, required forms, and submission instructions
CRM.LogInteraction with claim.number, denial reason claim.denialReasonCode, appeals information provided
- Customer wants appeals information explained →appeals-guidance
- Customer expresses intent to file complaint or legal action escalation-intent →escalation-special-handling
- Customer declines appeals information and has no further questions →resolution-and-close
Appeals Guidance
kb.claims-appeals-process — confirm deadlines, required forms, and submission address or portal link
TicketingPlatform.SendAppealInstructions to customer.preferredContact with claim.number
CRM.LogInteraction with claim.number, appeals guidance provided, instructions sent to customer.preferredContact
- Customer has additional questions →resolution-and-close
- Customer has no further questions →resolution-and-close
Identity Failure
IdentityVerification.SendSecureLink to customer.preferredContact
CRM.LogInteraction with policy.number, identity verification failed, secure link sent
System Unavailable
TicketingPlatform.CreateInquiry with customer.fullName, policy.number, claim.number, claim.dateOfLoss, customer.preferredContact — generate ticket.referenceNumber
CRM.LogInteraction with ticket.referenceNumber, system unavailability noted, callback committed
Escalation — Special Handling
TicketingPlatform.CreatePriorityCase with customer.fullName, policy.number, claim.number, claim.specialHandlingFlag, claim.litigationFlag, claim.fatalityFlag, claim.attorneyFlag, escalation reason noted
CRM.LogInteraction with claim.number, escalation to special handling team, reason flagged
- Handoff package complete and specialist team notified escalation_ready →escalation-human
Escalation to Human Specialist
CRM.UpdateCase priority: high, assigned to claims-special-handling-team, ticket.referenceNumber noted
Resolution and Close
CRM.LogInteraction with claim.number, inquiry resolved, status communicated, no further action required
- Customer has additional questions or a new topic →intake-and-verification
- Customer confirms no further questions — interaction complete

Cancellation Request
Intake & Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
PolicyManagement.LookupPolicy using policy.number
- Identity confirmed and policy found confirmed →reason-capture
- Identity cannot be confirmed after two attempts unverified →escalation-identity-failure
- Policy number not found or does not match customer record mismatch →escalation-identity-failure
Reason Capture
CRM.LogInteraction tag: cancellation-request, policy.number
- Customer states price is too high or service dissatisfaction price-or-service →retention-offer
- Customer states they are switching providers switching →active-claim-check
- Customer states coverage no longer needed coverage-not-needed →active-claim-check
- Any other stated reason other-reason →active-claim-check
Retention Offer
kb.retention-offers — check available discounts and coverage adjustment options for policy.type
- Customer is open to hearing options interested →present-retention-options
- Customer declines and confirms they want to cancel declines-retention →active-claim-check
Present Retention Options
- Customer accepts a retention offer and wants to keep the policy retained PolicyManagement.ApplyRetentionChange →retention-confirmed
- Customer hears the options and still wants to cancel still-cancelling →active-claim-check
Retention Confirmed
DocumentDelivery.SendEmail to customer.email with updated policy summary
Active Claim Check
PolicyManagement.CheckActiveClaims for policy.number
- No active claims found no-claims →effective-date-check
- Active claim found on policy active-claim →escalation-active-claim
Effective Date Check
PolicyManagement.ValidateCancellationDate using cancellation.requestedDate and policy.effectiveDate
kb.cancellation-backdating-rules — check whether backdating is permitted for policy.type
- Requested date is today or in the future date-valid →cancellation-terms-review
- Requested date is in the past and backdating is permitted per policy rules backdating-permitted →cancellation-terms-review
- Requested date is in the past and backdating is not permitted backdating-not-permitted →flag-backdating-issue
Flag Backdating Issue
- Customer accepts today's date or a future date accepts-new-date →cancellation-terms-review
- Customer disputes the backdating limitation and refuses disputes-backdating →escalation-fee-or-policy-dispute
Cancellation Terms Review
BillingPayments.GetOutstandingBalance for policy.number
BillingPayments.CalculateRefund for policy.number and cancellation.requestedDate
- Customer confirms and wants to proceed confirmed-terms →authorization-check
- Customer disputes the cancellation fee disputes-fee →escalation-fee-or-policy-dispute
- Customer wants to reconsider reconsider →reason-capture
Authorization Check
kb.cancellation-authorization-rules — check whether policy.type requires a licensed agent or supervisor to authorize
- Standard policy — no additional authorization required standard-auth →process-cancellation
- Policy type requires licensed agent or supervisor authorization requires-supervisor →escalation-supervisor-authorization
Process Cancellation
PolicyManagement.CancelPolicy policy: policy.number, effectiveDate: cancellation.requestedDate
BillingPayments.ProcessRefund amount: policy.refundAmount, to: customer.email
CRM.UpdateRecord tag: policy-cancelled, policy.number, cancellation.reason
DocumentDelivery.SendEmail to customer.email with cancellation confirmation and cancellation.confirmationNumber
→cancellation-complete
Cancellation Complete
CRM.LogInteraction tag: cancellation-complete, policy.number, cancellation.confirmationNumber
Escalation — Active Claim on Policy
CRM.LogInteraction tag: escalation-active-claim, policy.number, claim.id, claim.status
CRM.CreateCase priority: high, tag: cancellation-blocked-active-claim, policy.number
Escalation — Identity Failure
CRM.LogInteraction tag: identity-verification-failed, policy.number
Escalation — Fee or Policy Dispute
CRM.CreateCase priority: high, tag: cancellation-dispute, policy.number, cancellation.reason
CRM.LogInteraction tag: escalation-dispute, policy.number
Escalation — Supervisor Authorization Required
CRM.LogInteraction tag: escalation-supervisor-auth-required, policy.number, policy.type
CRM.CreateCase priority: normal, tag: supervisor-auth-cancellation, policy.number

Booking Modification
Verify Customer
CRM.LookupCustomer using customer.name and booking.reference
- Customer provides valid reference and name, identity confirmed verified →retrieve-booking
- Customer cannot provide reference or name fails to match →identity-not-found
- Customer mentions a group booking or multi-leg itinerary →escalation-complex-booking
Identity Not Found
CRM.LookupByContact using customer.email or customer.phone
- Record found and customer confirmed verified →retrieve-booking
- Still no match after second attempt →escalation-complex-booking
Retrieve Booking
ReservationSystem.GetBooking using booking.reference
LoyaltyDB.GetCustomerTier using customer.name to resolve customer.loyaltyTier
- Customer wants to change dates change-dates →check-date-availability
- Customer wants to change room or cabin type change-room-type →check-room-availability
- Customer wants to update passenger or guest name change-name →process-name-change
- Customer requests multiple changes at once multiple-changes →escalation-complex-booking
- Booking was made through a third party third-party-booking →third-party-advisory
Check Date Availability
AvailabilityEngine.CheckDates using booking.reference and change.newDates
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Requested dates are available and rate is modifiable available →review-fare-difference
- Requested dates are available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Requested dates are unavailable unavailable →suggest-alternative-dates
Suggest Alternative Dates
AvailabilityEngine.GetNearestAvailable using booking.reference to resolve availability.nearestDates
- Customer accepts an alternative date →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over and call back defer →wrap-up-no-change
Check Room Availability
AvailabilityEngine.CheckRoomType using booking.reference and change.newRoomType
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Room type available and rate is modifiable available →review-fare-difference
- Room type available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Room type unavailable unavailable →suggest-alternative-room
Suggest Alternative Room
AvailabilityEngine.GetAlternativeRooms using booking.reference
- Customer selects an alternative →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over defer →wrap-up-no-change
Review Fare Difference
PaymentProcessor.CalculateDifference using booking.reference, change.newDates, change.newRoomType to resolve fare.difference and fee.modification
- Customer accepts the cost and confirms confirmed →apply-modification
- Customer disputes the modification fee disputes-fee →fee-waiver-review
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer declines and wants to keep original booking keep-original →wrap-up-no-change
Fee Waiver Review
LoyaltyDB.GetCustomerTier using customer.name to confirm customer.loyaltyTier
kb.goodwill-waiver-policy — check eligibility based on customer.loyaltyTier and fee.modification
- Agent determines fee is auto-waivable under loyalty or goodwill policy auto-waiver →apply-modification
- Agent determines fee waiver requires supervisor sign-off needs-approval →waiver-approval
- Agent determines fee is not waivable and customer still disputes disputed →escalation-fee-dispute
Waiver Approval
- Approved approved CRM.LogWaiverGranted →apply-modification
- Rejected rejected →fee-waiver-declined
- No response in 20 min →escalation-fee-dispute
Fee Waiver Declined
- Customer agrees to pay the fee confirmed →apply-modification
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer wants to keep original booking keep-original →wrap-up-no-change
- Customer escalates and demands supervisor escalate →escalation-fee-dispute
Process Name Change
kb.name-change-policy — verify permissible name change rules for booking.rateType
- Minor spelling correction permitted under policy minor-correction →apply-modification
- Full name transfer or legal name change required →escalation-complex-booking
Apply Modification
ReservationSystem.UpdateBooking with booking.reference, change.newDates, change.newRoomType, change.newPassengerName, change.requestedDetail
PaymentProcessor.ChargeBalance using booking.paymentMethod for fare.difference and any approved fee.modification
CRM.UpdateRecord for customer.name with new booking details
NotificationService.SendConfirmation to customer.email and customer.phone with updated itinerary
- Customer has additional requests more-changes →retrieve-booking
- Customer is satisfied and done done →wrap-up-confirmed
Non-Modifiable Rate
kb.cancellation-refund-policy — review applicable refund terms for booking.rateType
- Customer wants to explore cancellation and refund cancel-request →cancellation-advisory
- Customer wants to check same-rate rebooking availability rebook →check-date-availability
- Customer wants to keep original booking keep-original →wrap-up-no-change
Cancellation Advisory
kb.cancellation-refund-policy — retrieve applicable terms for booking.rateType and booking.currentDates
- Customer confirms cancellation confirmed →escalation-cancellation-processing
- Customer changes mind and wants to keep booking keep-original →wrap-up-no-change
- Customer disputes refund terms and demands exception dispute →escalation-fee-dispute
Third-Party Advisory
- Customer understands and has no further questions done →wrap-up-no-change
- Customer disagrees and insists we process it anyway disputes →escalation-complex-booking
Wrap-Up — No Change Made
CRM.LogInteraction for customer.name with outcome: no modification made
Wrap-Up — Change Confirmed
CRM.LogInteraction for customer.name with outcome: modification successful
Escalation — Complex Booking
CRM.CreateCase priority: high, tagged complex-modification, linked to booking.reference
Slack.Notify to #reservations-complex with case summary, booking.reference, and customer.name
Escalation — Fee Dispute
CRM.CreateCase priority: high, tagged fee-dispute, linked to booking.reference
Slack.Notify to #reservations-supervisors with customer.name, booking.reference, fee.modification, and dispute summary
Escalation — Cancellation Processing
CRM.CreateCase priority: normal, tagged cancellation-request, linked to booking.reference
ReservationSystem.InitiateCancellation using booking.reference
NotificationService.SendCancellationSummary to customer.email with refund terms and timeline

Billing / Statement Inquiry
Patient Greeting
- Patient provides all required identifiers →identity-verification
- Patient is unable or unwilling to provide identifiers →hipaa-decline
- Patient is clearly distressed or immediately demands a supervisor frustrated →escalation-human
Identity Verification
CRM.LookupPatient using patient.name, patient.dob, and patient.accountId
- All three identifiers match confirmed in system verified →inquiry-intake
- Partial match — one identifier missing or mismatched partial_match →identity-retry
- No matching record found no_match →hipaa-decline
Identity Retry
- Patient provides corrected identifiers CRM.LookupPatient →identity-verification
- Patient still cannot provide matching information →hipaa-decline
HIPAA Decline
CRM.LogInteraction note: identity verification failed, HIPAA protocol applied, no account data disclosed
Inquiry Intake
PatientBillingSystem.PullAccount using patient.accountId
- Patient identifies a specific charge or line item →charge-lookup
- Patient has a general question about their total balance →balance-explanation
- Patient reports they believe there is a billing error →billing-error-flag
- Patient disputes the clinical service itself was rendered or necessary →clinical-dispute
- Patient mentions possible fraud or identity theft suspected_fraud →escalation-human
Charge Lookup
PatientBillingSystem.GetChargeDetail for charge.lineItem on charge.dateOfService
InsuranceEligibilityClaims.GetClaimStatus using insurance.memberId and claim.id
EOBLookup.GetEOB for claim.id
- EOB received and processed, patient responsibility calculated eob_received →charge-explanation
- Claim submitted but EOB not yet issued — claim still pending claim_pending →pending-claim-advisory
- Claim was denied by insurer claim_denied →claim-denial-review
- Charge not found or appears duplicated charge_anomaly →billing-error-flag
Charge Explanation
kb.billing-patient-responsibility — reference plan benefit structure and cost-sharing explanation guidance
- Patient understands and accepts the explanation confirmed →payment-options
- Patient disagrees with the insurance calculation or wants to dispute the claim disputed →claim-denial-review
- Patient still has questions about the charge needs_clarification →charge-explanation-detail
Charge Explanation Detail
- Patient satisfied with detailed explanation confirmed →payment-options
- Patient remains unconvinced and wishes to dispute →claim-denial-review
- Patient becomes distressed frustrated →escalation-human
Balance Explanation
PatientBillingSystem.GetAccountSummary for patient.accountId
kb.billing-patient-responsibility — use for explaining deductible, copay, and coinsurance terms
- Patient understands the balance and wants to pay →payment-options
- Patient questions a specific line item on the account →charge-lookup
- Patient believes the total is incorrect →billing-error-flag
- Patient is unable to pay and asks about financial assistance kb.financial-assistance-programs →payment-options
Pending Claim Advisory
CRM.LogInteraction note: patient inquiry on pending claim claim.id, follow-up requested
CaseManagement.CreateCase type: pending-eob-followup, linked to claim.id, patient.accountId
- Patient is satisfied and wants no further action →resolution-close
- Patient wants to escalate because the claim has been pending an unusually long time frustrated →escalation-human
Claim Denial Review
InsuranceEligibilityClaims.GetDenialReason for claim.id
kb.claim-denial-codes — reference insurer denial code definitions and standard appeal pathways
- Denial is administrative or technical — can be corrected by rebilling admin_denial CaseManagement.CreateCase type: rebilling-request →billing-error-flag
- Denial is a coverage or clinical necessity issue requiring appeal clinical_denial →escalation-human
- Patient wishes to proceed independently and is satisfied with the information confirmed →resolution-close
Billing Error Flag
CaseManagement.CreateCase type: billing-review, priority: standard, linked to patient.accountId, charge.lineItem, charge.dateOfService
CRM.LogInteraction note: potential billing error flagged on charge.lineItem, case opened for specialist review
- Patient is satisfied and the case is documented →resolution-close
- Patient is not satisfied and demands immediate resolution frustrated →escalation-human
Clinical Dispute
CRM.LogInteraction note: patient disputes clinical service on charge.dateOfService, charge.description — routed to clinical review
CaseManagement.CreateCase type: clinical-dispute, priority: high, linked to patient.accountId, charge.dateOfService
- Patient acknowledges and accepts the routing →resolution-close
- Patient is distressed or requests immediate supervisor contact frustrated →escalation-human
Payment Options
kb.financial-assistance-programs — check eligibility criteria for charity care, sliding scale, or hardship plans
- Patient wants to pay now PaymentPortal.ProcessPayment using patient.accountId →payment-confirmation
- Patient wants to set up a payment plan PaymentPortal.CreatePaymentPlan using patient.accountId →payment-plan-setup
- Patient wants to apply for financial assistance CaseManagement.CreateCase type: financial-assistance-referral →resolution-close
- Patient declines to pay at this time and has no further questions →resolution-close
Payment Confirmation
PaymentPortal.ProcessPayment confirm transaction for patient.accountId, charge.amount
CRM.LogInteraction note: payment processed for charge.amount on account patient.accountId
- Patient has additional questions →inquiry-intake
- Patient is done →resolution-close
Payment Plan Setup
PaymentPortal.CreatePaymentPlan for patient.accountId
CRM.LogInteraction note: payment plan established for patient.accountId
- Patient confirms and is satisfied →resolution-close
- Patient has additional questions →inquiry-intake
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered — reason documented, all context preserved for handoff
CaseManagement.CreateCase type: escalation, priority: high, linked to patient.accountId, claim.id
CRM.TransferWithContext to billing-escalation-queue, include patient.accountId, claim.id, charge.lineItem, interaction summary
Resolution / Close
CRM.LogInteraction note: inquiry resolved, case closed
CaseManagement.CloseCase for case.id if open

Appointment Scheduling
Patient Intake
EHR.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found and identity confirmed verified →appointment-intent
- Patient record not found or details do not match →identity-retry
- Patient describes urgent or emergent symptoms at any point →escalation-clinical
Identity Retry
EHR.LookupPatient retry with corrected input
- Record found on second attempt verified →appointment-intent
- Still no match after retry →escalation-human
Appointment Intent
- Patient wants to book a new appointment book →insurance-verification
- Patient wants to reschedule an existing appointment reschedule →reschedule-lookup
- Patient wants to cancel an appointment cancel →cancel-lookup
- Patient describes urgent or emergent symptoms →escalation-clinical
Insurance Verification
InsuranceEligibilityAPI.VerifyEligibility using patient.insurance.provider and patient.insurance.memberId
kb.insurance-eligibility-policy — check referral requirements for appointment.type
- Insurance verified, no referral required eligible →gather-preferences
- Insurance verified, referral required and on file eligible referral_present →gather-preferences
- Insurance verified, referral required but not on file referral_missing →referral-hold
- Insurance verification fails or returns inactive coverage ineligible →insurance-unverified
- Patient has no insurance or declines to provide →self-pay-offer
Self-Pay Offer
kb.selfpay-rates — retrieve selfpay.rate for appointment.type
- Patient agrees to self-pay confirmed →gather-preferences
- Patient wants to contact insurer first callback →intake-close-callback
- Patient is unsure →escalation-human
Insurance Unverified
- Patient wants self-pay rates →self-pay-offer
- Patient wants to wait and call back →intake-close-callback
- Patient wants to escalate or is frustrated →escalation-human
Referral Hold
SchedulingModule.HoldSoftReservation for patient.fullName, appointment.type, appointment.preferredDates
- Patient agrees to soft hold confirmed CRM.CreateTask referral-pending note →intake-close-referral
- Patient does not want a hold →intake-close-callback
- Patient says referral is already submitted →escalation-human
Gather Preferences
EHR.GetProviderList filtered by appointment.preferredLocation and appointment.type
- Preferences collected, preferred provider specified →slot-search-provider
- Preferences collected, no provider preference →slot-search-open
Slot Search — Provider Preference
SchedulingModule.GetAvailableSlots for appointment.preferredProvider, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences for preferred provider →slot-no-match
Slot Search — Open Availability
SchedulingModule.GetAvailableSlots for appointment.preferredLocation, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences →slot-no-match
Slot Selection
PatientPortal.DisplaySlots or read aloud up to three options from appointment.selectedSlot candidates
- Patient selects a slot confirmed →booking-confirmation
- Patient wants to hear more options →slot-search-open
- Patient wants to go on a waitlist instead →waitlist-enrollment
- Patient changes their mind and wants to cancel the process →intake-close-callback
Slot No Match
SchedulingModule.GetNextAvailable for appointment.type, appointment.preferredLocation
- Patient accepts next closest slot confirmed →booking-confirmation
- Patient wants waitlist →waitlist-enrollment
- Patient wants to try different dates or times →gather-preferences
Waitlist Enrollment
SchedulingModule.AddToWaitlist patient.fullName, appointment.type, appointment.preferredProvider, appointment.preferredDates
CRM.UpdateRecord waitlist status for patient.fullName
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Booking Confirmation
SchedulingModule.BookAppointment for patient.fullName, appointment.selectedSlot, appointment.type, appointment.preferredProvider
CRM.UpdateRecord appointment booked, appointment.confirmationNumber
Twilio.SendSMS to patient.phone: "Your appointment is confirmed for appointment.selectedSlot. Confirmation number: appointment.confirmationNumber. Reply CANCEL to cancel or call us to make changes."
Twilio.SendEmail to patient.email with appointment details, preparation instructions, and location or telehealth link
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Reschedule Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
- Appointment found →reschedule-preferences
- Appointment not found →escalation-human
Reschedule Preferences
SchedulingModule.CancelAppointment for appointment.existingId
SchedulingModule.GetAvailableSlots for updated appointment.preferredDates, appointment.preferredTimes, appointment.type, appointment.preferredProvider
- New slots found →slot-selection
- No slots match new preferences →slot-no-match
Cancel Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
kb.cancellation-policy — check short-notice window and applicable cancellation.fee for appointment.selectedSlot
- Appointment found, cancellation outside short-notice window →cancel-confirm
- Appointment found, cancellation within short-notice window short_notice →cancel-fee-notice
- Appointment not found →escalation-human
Cancel Fee Notice
- Patient confirms cancellation despite fee confirmed →cancel-confirm
- Patient wants to reschedule instead →reschedule-preferences
- Patient disputes the fee or wants to escalate →escalation-human
Cancel Confirm
SchedulingModule.CancelAppointment for appointment.existingId
CRM.UpdateRecord cancellation logged for patient.fullName
Twilio.SendSMS to patient.phone: "Your appointment has been cancelled. Confirmation: appointment.confirmationNumber. Contact us to rebook."
Twilio.SendEmail to patient.email with cancellation confirmation
- Patient wants to book a new appointment →appointment-intent
- Patient is done →intake-close-complete
Intake Close — Callback
CRM.UpdateRecord contact reason, outcome pending callback, patient.fullName
Intake Close — Referral Pending
CRM.UpdateRecord soft hold active, referral pending, patient.fullName
Intake Close — Complete
CRM.UpdateRecord interaction complete, outcome successful, patient.fullName
Escalation — Clinical
CRM.CreateCase priority: urgent, tagged clinical-escalation, patient.fullName
Twilio.NotifyOnCall clinical triage staff with patient name and reported symptoms
Escalation — Human Agent
CRM.CreateCase priority: high, tagged scheduling-escalation, patient.fullName, interaction summary
Twilio.TransferCall or route chat to live scheduling specialist queue

Account Closure Request
Intake and Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
IdentityVerification.InitiateCheck for customer.fullName and customer.dateOfBirth
- Verification passes confirmed →account-selection
- Verification fails on first attempt unconfirmed →verification-retry
- Account has an active fraud or legal hold flagged by IdentityVerification.InitiateCheck hold_detected →escalation-human
- Customer is linked to a business or trust account entity_account →escalation-human
Verification Retry
IdentityVerification.SecondaryCheck using additional customer-provided details
- Verification passes on retry confirmed →account-selection
- Verification fails again unconfirmed →escalation-human
Account Selection
CoreBanking.GetAccountList for verified customer record
- Customer provides a valid account number confirmed →compliance-screening
- Customer is unsure which account or requests guidance needs_help →account-selection-assist
- Customer becomes uncooperative or hostile hostile →escalation-human
Account Selection Assist
CoreBanking.GetAccountList — surface account type, last four digits, and current status for each account
- Customer confirms account selection confirmed →compliance-screening
- Customer still cannot identify the account unconfirmed →escalation-human
Compliance and AML Screening
ComplianceAML.ScreenAccount for account.number
CRM.LogInteraction note: closure request initiated for account.number
- Account clears compliance screening confirmed →account-balance-check
- Account flagged for elevated risk or AML concern high_risk →compliance-review
- Account has an existing legal or regulatory hold legal_hold →escalation-human
Compliance Review
- Agent determines low-risk flag, safe to proceed →account-balance-check
- Agent determines elevated risk requiring human review needs_review →escalation-human
Account Balance and Pending Transaction Check
CoreBanking.GetAccountDetail for account.number — retrieve account.balance, account.pendingTransactions, and account.status
- Balance is zero and no pending transactions clear →closure-reason-collection
- Pending transactions exist on the account pending →pending-transactions-hold
- Outstanding balance or linked loan exists on the account balance_owed →outstanding-balance-hold
Pending Transactions Hold
kb.account-closure-policy — confirm settlement window and closure processing rules for account.type
- Customer agrees to automatic post-settlement closure confirmed CoreBanking.QueueClosureRequest for account.number →closure-reason-collection
- Customer prefers to wait and call back declined →closure-pending-confirmation
- Customer escalates or disputes the pending transactions disputed →escalation-human
Closure Pending Confirmation
CRM.LogInteraction note: customer deferred closure for account.number pending transaction settlement
Outstanding Balance Hold
kb.account-closure-policy — confirm balance resolution requirements for account.type
- Customer agrees to resolve balance and requests options confirmed →escalation-human
- Customer requests more time and wants to call back declined →closure-pending-confirmation
- Customer disputes the balance disputed →escalation-human
Closure Reason Collection
- Customer cites fees or dissatisfaction with service frustrated →retention-offer
- Customer cites a neutral or logistical reason neutral →funds-destination-collection
- Customer shows signs of financial distress distressed →financial-distress-flag
Financial Distress Flag
ComplianceAML.FlagForReview note: potential financial distress indicator on account.number
CRM.LogInteraction note: distress signal detected during closure request for customer.fullName
- Customer agrees to speak with a specialist confirmed →escalation-human
- Customer declines and wishes to continue closure declined →funds-destination-collection
Retention Offer
kb.retention-offers-policy — surface eligible retention offers for account.type and customer.fullName profile
- Customer is open to retention options interested →escalation-human
- Customer declines and confirms they want to close confirmed →funds-destination-collection
Funds Destination Collection
ACHTransfer.ValidateDestination for transfer.destinationAccount and transfer.destinationBank
- Destination account validated successfully confirmed →closure-confirmation
- Destination account cannot be verified unconfirmed →funds-destination-hold
- Customer has no external account and requests a check CoreBanking.GetAccountDetail →closure-confirmation
Funds Destination Hold
CRM.LogInteraction note: closure held for account.number — destination account unverifiable
SecureMessaging.SendConfirmation to customer.email note: closure request on hold pending valid transfer details
Closure Confirmation
CoreBanking.SubmitClosureRequest for account.number — generate closure.requestId and closure.timeline
ACHTransfer.InitiateTransfer of account.balance to transfer.destinationAccount
CRM.LogInteraction note: closure submitted for account.number, request ID closure.requestId
SecureMessaging.SendConfirmation to customer.email with closure.requestId and closure.timeline
- Customer has additional questions or requests needs_help →post-closure-support
- Customer is satisfied and ends interaction confirmed →resolution
Post-Closure Support
kb.account-closure-policy — reference post-closure FAQs including statement access, tax documents, and credit impact
- Question answered and customer satisfied confirmed →resolution
- Issue requires specialist involvement or account access complex →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged account-closure-escalation, linked to account.number
CRM.LogInteraction note: escalation triggered — reason logged under agent.caseId
SecureMessaging.SendNotification to assigned specialist with customer profile, account.number, and case summary
Resolution
CRM.LogInteraction note: closure interaction completed for customer.fullName, account account.number

Symptom Triage / Nurse Line Routing
Identity Verification
EHR.LookupPatient by patient.fullName and patient.dateOfBirth
- Identity confirmed, record found CRM.OpenRecord →symptom-intake
- Identity confirmed but DOB mismatch — ask for patient.memberId EHR.LookupPatientById →symptom-intake
- Caller is a caregiver, not the patient — collect patient.caregiverName and relationship, then verify patient identity →symptom-intake
- Identity cannot be verified after two attempts CRM.FlagUnverified →unverified-caller-triage
Symptom Intake
Collect patient.primarySymptom, patient.symptomDuration, and patient.symptomTrend.
Collect patient.currentMedications and patient.knownConditions.
- Caller mentions chest pain, pressure, or tightness →emergency-redirect
- Caller mentions difficulty breathing or shortness of breath at rest →emergency-redirect
- Caller mentions sudden face drooping, arm weakness, or speech difficulty →emergency-redirect
- Caller mentions severe bleeding that won't stop or loss of consciousness →emergency-redirect
- Caller explicitly requests to speak with a nurse →escalation-nurse-callback
- Symptoms collected, no red-flag keywords detected →triage-assessment
Emergency Redirect
CRM.CreateCase priority: critical, tagged emergency-redirect, linked to patient.memberId
NurseQueue.AlertOnCall with patient.primarySymptom and case.id
EHR.AddEncounterNote "Emergency redirect issued. Patient advised to call 911. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
- Caller confirms they are calling 911 or help is on the way →emergency-documentation
- Caller refuses to call 911 — document refusal, stay on the line, re-advise →care-refusal
- No response or line goes silent NurseQueue.AlertOnCall escalate immediately →escalation-nurse-callback
Emergency Documentation
EHR.AddEncounterNote "Patient acknowledged emergency redirect. 911 advised. Case case.id created."
CRM.UpdateCase case.id status: emergency-dispatched
Triage Assessment
- Triage engine returns tier: self-care tier_selfcare →self-care-guidance
- Triage engine returns tier: nurse callback tier_nurse →escalation-nurse-callback
- Triage engine returns tier: urgent care tier_urgent →urgent-care-routing
- Triage engine returns tier: emergency tier_emergency →emergency-redirect
- Triage engine lookup fails or confidence below threshold needs_review →escalation-nurse-callback
Self-Care Guidance
kb.schmitt-thompson-protocols — retrieve home-care instructions matching triage.protocol
EHR.AddEncounterNote "Triage complete. Tier: self-care. Protocol: triage.protocol. Guidance delivered. Symptoms: patient.primarySymptom. Duration: patient.symptomDuration."
CRM.UpdateCase case.id status: self-care-guidance-provided
- Patient accepts guidance and has no further questions →resolution
- Patient is uncertain or wants a nurse to confirm →escalation-nurse-callback
- Patient refuses self-care recommendation →care-refusal
Urgent Care Routing
Scheduling.FindNearestUrgentCare by patient.zip -> facility.nearest
EHR.AddEncounterNote "Triage complete. Tier: urgent care within 4 hours. Facility: facility.nearest. Symptoms: patient.primarySymptom. Protocol: triage.protocol."
CRM.UpdateCase case.id status: urgent-care-routed
SecureMessaging.SendSummary to patient.phone with facility address and care instructions
- Patient confirms they will go →resolution
- Patient requests a different facility Scheduling.FindNearestUrgentCare alternate →urgent-care-routing
- Patient refuses urgent care recommendation →care-refusal
- Patient requests nurse confirmation before going →escalation-nurse-callback
Escalation to Nurse Callback
NurseQueue.AddToCallbackQueue patient.memberId, patient.primarySymptom, patient.symptomDuration, patient.symptomTrend, patient.knownConditions, patient.currentMedications, triage.riskScore
NurseQueue.GetEta -> nurse.callbackEta
CRM.CreateCase priority: high, tagged nurse-callback, linked to patient.memberId
EHR.AddEncounterNote "Escalated to nurse callback queue. ETA: nurse.callbackEta. Symptoms: patient.primarySymptom. Risk score: triage.riskScore. Case: case.id."
SecureMessaging.SendSummary to patient.phone confirming callback and safety instructions
- Nurse callback queued and patient is stable →resolution
- Patient's condition appears to be worsening during call →emergency-redirect
Unverified Caller Triage
Collect patient.primarySymptom, patient.symptomDuration, patient.symptomTrend.
CRM.CreateCase priority: high, tagged unverified-caller, flagged for nurse review
NurseQueue.AddToCallbackQueue unverified, patient.primarySymptom, patient.symptomDuration, patient.phone
EHR.AddEncounterNote "Unverified caller. Symptoms collected for nurse review. Callback number: patient.phone."
- Caller mentions any emergency symptom →emergency-redirect
- Case queued successfully →resolution
- Caller explicitly requests nurse immediately →escalation-nurse-callback
Care Refusal
EHR.AddEncounterNote "Patient declined recommended care tier: triage.tier. Symptoms: patient.primarySymptom. Refusal documented per protocol. Case: case.id."
CRM.UpdateCase case.id status: care-refusal-documented
NurseQueue.AlertOnCall with refusal note and patient.memberId for awareness
- Patient reconsiders and agrees to recommended care tier →triage-assessment
- Patient maintains refusal but accepts lower-acuity guidance →self-care-guidance
- Patient ends call →resolution
Resolution
EHR.AddEncounterNote "Encounter complete. Final routing: triage.tier. Case: case.id. Patient acknowledged next steps."
CRM.UpdateCase case.id status: resolved
SecureMessaging.SendSummary to patient.phone with encounter summary and care instructions

SIM Swap / Number Porting
Intake & Request Classification
- Customer requests SIM swap (upgrade or device change) sim-swap →identity-verification
- Customer requests port-out to another carrier port-out →identity-verification
- Customer reports lost or stolen SIM lost-stolen →identity-verification
- Customer reports a SIM change they did not request unauthorized →suspected-hijacking
Identity Verification
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails on first attempt unverified →verification-retry
- Verification fails a second time or customer cannot provide credentials failed →verification-lockout
Verification Retry
IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber
- Verification passes verified →account-eligibility-check
- Verification fails again failed →verification-lockout
Verification Lockout
CRM.LogFailedVerification for customer.phoneNumber, flag request as locked
CRM.AddNote to account.id: "Identity verification failed — in-store ID required."
Account Eligibility Check
CRM.LookupAccount by customer.phoneNumber, retrieve account.id, account.fraudFlag, account.portFreeze
- Account has an active fraud flag fraud-flag →fraud-hold-escalation
- Account has an active port freeze port-freeze →fraud-hold-escalation
- Account is clear and eligible eligible →request-routing
Request Routing
- Request is a SIM swap sim-swap →sim-swap-execution
- Request is a port-out port-out →port-out-execution
- Request is for a lost or stolen SIM lost-stolen →lost-stolen-sim
SIM Swap Execution
SubscriberProvisioning.ValidateICCID for sim.newICCID
- ICCID is valid and unassigned iccid-valid →sim-swap-confirm
- ICCID is invalid or already in use iccid-invalid →sim-swap-iccid-error
SIM ICCID Error
- Customer provides a new ICCID to try →sim-swap-execution
- Customer cannot provide a valid ICCID →escalation-human-agent
SIM Swap Confirm
- Customer confirms confirmed →sim-swap-provisioning
- Customer cancels or is unsure cancelled →sim-swap-cancelled
SIM Swap Provisioning
SubscriberProvisioning.ExecuteSIMSwap for account.id, new ICCID sim.newICCID, deactivate old SIM
CRM.LogActivity on account.id: "SIM swap completed, new ICCID recorded."
CarrierMessagingGateway.SendSMS to customer.phoneNumber: "Your SIM swap is complete. If your service is not active within 15 minutes, please restart your device."
→resolution
SIM Swap Cancelled
→resolution
Port-Out Execution
NumberPortabilityClearinghouse.LookupCarrier for port.receivingCarrier
- Carrier found and eligible for port carrier-valid →port-auth-code-generation
- Carrier lookup fails or carrier not found carrier-not-found →port-lookup-failure
Port Authorization Code Generation
NumberPortabilityClearinghouse.GeneratePAC for customer.phoneNumber, linked to account.id
CRM.LogActivity on account.id: "Port-out PAC generated for port.receivingCarrier."
→resolution
Port Lookup Failure
CRM.CreateTicket for account.id: "Port-out request — receiving carrier lookup failed. Carrier: port.receivingCarrier. Manual follow-up required."
CRM.LogActivity on account.id: "Carrier lookup failed during port-out request."
- Customer provides callback number callback-provided →port-callback-scheduled
- Customer prefers email email-preferred →port-callback-scheduled
- Customer wants to wait and try again retry →port-out-execution
Port Callback Scheduled
CRM.ScheduleCallback on case.id with customer contact preference
→resolution
Lost or Stolen SIM
SubscriberProvisioning.SuspendSIM for customer.phoneNumber, reason: lost-stolen
CRM.LogActivity on account.id: "SIM suspended — customer reported lost or stolen. Replacement process initiated."
FraudManagement.NotifyLostStolen for account.id
- Customer wants replacement shipped ship-replacement →replacement-sim-dispatch
- Customer will pick up in store store-pickup →store-pickup-guidance
- Customer needs more time to decide undecided →resolution
Replacement SIM Dispatch
SubscriberProvisioning.OrderReplacementSIM for account.id, ship to address on file
CRM.LogActivity on account.id: "Replacement SIM ordered — shipping to address on file."
CarrierMessagingGateway.SendSMS to customer.email: "Your replacement SIM has been ordered and will arrive in 3 to 5 business days. Activation instructions will be included."
→resolution
Store Pickup Guidance
CRM.LogActivity on account.id: "Customer advised to pick up replacement SIM in store."
→resolution
Suspected SIM Hijacking
SubscriberProvisioning.SuspendAccount for customer.phoneNumber, reason: suspected-hijacking
FraudManagement.RaiseSIMHijackingAlert for account.id
CRM.CreateTicket for account.id: "Suspected SIM hijacking — customer did not authorize swap. Immediate fraud team review required."
→escalation-fraud-team
Fraud Hold Escalation
FraudManagement.EscalateAccount for account.id, reason: port-freeze-or-fraud-flag
CRM.LogActivity on account.id: "SIM/port request blocked — active fraud flag or port freeze. Escalated to fraud team."
→escalation-fraud-team
Escalation — Fraud Team
FraudManagement.CreateCase for account.id, priority: high
CRM.NotifyFraudTeam with account.id, customer.phoneNumber, case summary
Escalation — Human Agent
CRM.CreateTicket for account.id: "Customer requires human agent assistance — could not complete SIM swap or port automatically."
Resolution
- Customer has another request new-request →intake
- Customer is done done →close
Close
CRM.CloseInteraction for account.id

Roaming / International Add-on Request
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountNumber
CRM.VerifyPIN against customer.pin
- Identity verified successfully verified →account-review
- PIN incorrect on first attempt — prompt once more →identity-retry
- Account not found or unresolvable →escalation-human
Identity Retry
CRM.VerifyPIN against customer.pin
- Identity verified on second attempt verified →account-review
- Second attempt fails failed →escalation-human
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.outstandingBalance, customer.accountFlags
- Account flagged for fraud or suspension flagged →escalation-human
- Account has a past-due balance outstanding pastdue →past-due-balance
- Account in good standing, no flags clear →trip-details
Past-Due Balance
- Customer agrees to pay →payment-collection
- Customer declines or requests a payment arrangement →escalation-human
Payment Collection
PaymentProcessing.InitiatePayment for customer.outstandingBalance on customer.accountNumber
- Payment successful payment_cleared CRM.UpdateAccountStatus →trip-details
- Payment declined or failed payment_failed →escalation-human
Trip Details
CRM.SetTripContext with trip.destinationCountry, trip.departureDate, trip.returnDate
- Travel dates are upcoming or current and destination captured →device-check
- Customer is already abroad and reports unexpected charges →already-abroad
Device Check
DeviceCompatibilityChecker.Assess using device.imei, device.model, device.simStatus for trip.destinationCountry
CarrierInternationalAPI.CheckPartnerCoverage for trip.destinationCountry
- Device is compatible with international bands and destination network device_ok →addon-selection
- Device is CDMA-only or SIM-locked for destination device_incompatible →device-incompatibility
- Coverage unavailable in destination through partner network no_coverage →escalation-human
Device Incompatibility
- Customer wants international SIM option →sim-rental-offer
- Customer wants rental device option →sim-rental-offer
- Customer declines alternatives and wants to explore further →escalation-human
SIM / Rental Offer
CRM.CreateCase tagged device-compatibility-roaming, linked to customer.accountNumber
→escalation-human
Add-on Selection
AddonCatalog.GetEligibleAddons for customer.currentPlan, trip.destinationCountry, trip.departureDate, trip.returnDate
kb.roaming-addon-policy — review eligible plans, pricing tiers, promotional offers, and usage caps for trip.destinationCountry
- Customer selects a preferred add-on →pricing-confirmation
- Customer disputes the pricing or expected charges →pricing-dispute
- Customer requests a plan not currently eligible for their account →escalation-human
Pricing Confirmation
- Customer confirms selection confirmed →addon-activation
- Customer wants to change selection →addon-selection
- Customer wants to cancel the request →resolution-no-change
Add-on Activation
BillingPlatform.ActivateAddon with addon.name, addon.effectiveDate on customer.accountNumber
CRM.LogInteraction with add-on details, trip.destinationCountry, trip.departureDate, trip.returnDate
BillingPlatform.SendConfirmationEmail to customer.email with addon.name, addon.price, addon.usageCap, addon.effectiveDate
- Customer has additional questions or requests →trip-details
- Customer is satisfied, no further needs →resolution-complete
Already Abroad
BillingPlatform.GetRecentCharges for customer.accountNumber — review charge.amount for pay-per-use international activity
kb.roaming-retroactive-credit-policy — check eligibility window and thresholds for credit.eligibility
- Customer has been incurring pay-per-use charges within the retroactive credit window credit_eligible →retroactive-credit-review
- Charges are outside the policy window or ineligible for credit →addon-selection
- Customer is disputing a large existing international charge →charge-dispute
Retroactive Credit Review
- Credit is within agent approval threshold and eligible credit_approved →apply-retroactive-credit
- Credit amount exceeds agent threshold or policy bars it credit_escalate →escalation-human
Apply Retroactive Credit
BillingPlatform.ApplyCredit of credit.amount to customer.accountNumber tagged retroactive-roaming-adjustment
CRM.LogInteraction with credit amount, reason, and linked charges
→addon-selection
Charge Dispute
BillingPlatform.GetChargeDetail for charge.disputeAmount on customer.accountNumber
kb.roaming-dispute-policy — review dispute thresholds and agent authorization limits
- Dispute amount is within agent adjustment authority within_threshold →pricing-dispute
- Dispute amount exceeds agent authority exceeds_threshold →escalation-human
Pricing Dispute
kb.roaming-addon-policy — check active promotional offers, loyalty discounts, and goodwill adjustment eligibility
- A valid promotion or discount applies and resolves the concern promotion_found BillingPlatform.ApplyPromotion →addon-selection
- No promotion available but a courtesy adjustment is warranted and within threshold courtesy_ok BillingPlatform.ApplyCredit →addon-selection
- No resolution possible within agent authority no_resolution →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged roaming-escalation, linked to customer.accountNumber
CRM.LogInteraction with full context: trip.destinationCountry, customer.currentPlan, charge.disputeAmount, customer.accountFlags
Resolution — Complete
CRM.LogInteraction with resolved add-on, addon.effectiveDate, trip.destinationCountry, trip.returnDate
Resolution — No Change
CRM.LogInteraction tagged no-change-requested, customer.accountNumber

Quote Request Intake
Intake Greeting
- Customer names a specific coverage type confirmed →coverage-type-selected
- Customer is unsure or asks for a recommendation uncertain →coverage-guidance
- Customer wants to speak with a person directly escalation_request →escalation-human
Coverage Guidance
- Agent identifies a suitable coverage type and customer agrees confirmed →coverage-type-selected
- Customer remains undecided or disengages disengaged →partial-intake-save
- Customer requests a human advisor escalation_request →escalation-human
Coverage Type Selected
CRM.LookupCustomer by customer.phone or customer.email to check for an existing record.
- Existing customer record found returning_customer →risk-detail-collection
- No existing record found new_customer →personal-info-collection
Personal Info Collection
CRM.CreateContact with customer.name, customer.email, customer.phone, customer.address
- All required contact details collected info_complete →risk-detail-collection
- Customer provides partial info then stops responding disengaged →partial-intake-save
Risk Detail Collection
- All required risk fields collected fields_complete →underwriting-check
- Critical fields missing after follow-up prompts fields_incomplete →partial-intake-save
- Customer disengages mid-collection disengaged →partial-intake-save
Underwriting Check
UnderwritingRulesAPI.Evaluate with coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits
- Risk profile passes standard guidelines eligible →quote-generation
- Risk profile flagged — outside standard guidelines flagged high_risk →underwriter-review
- API returns an error or timeout error →quoting-system-error
Quote Generation
QuotingEngine.GenerateQuote with customer.name, coverage.type, risk.vehicleInfo, risk.propertyAddress, risk.age, risk.healthStatus, coverage.desiredLimits, coverage.startDate
- Quote successfully generated quote_ready →quote-presentation
- Quoting engine error or timeout on first attempt error →quoting-retry
Quoting Retry
QuotingEngine.GenerateQuote retry with same inputs
- Quote successfully generated on retry quote_ready →quote-presentation
- Second attempt also fails error →quoting-system-error
Quote Presentation
NotificationService.SendEmail to customer.email with quote summary: quote.id, quote.premium, quote.tier, coverage.desiredLimits, coverage.startDate
NotificationService.SendSMS to customer.phone with quote summary link
- Customer wants to bind coverage now bind_now →next-steps-binding
- Customer wants to explore different tiers or limits adjust_quote →risk-detail-collection
- Customer wants to speak with a licensed agent escalation_request →escalation-human
- Customer acknowledges receipt but wants to decide later defer →resolution-follow-up
Next Steps — Binding
PolicyManagement.InitiateBinding with quote.id, customer.name, customer.email, coverage.startDate
CRM.UpdateContact status: quote-accepted, linked to quote.id
- Customer has additional questions →intake-greeting
- Customer is done — no further questions →resolution-complete
Underwriter Review
CRM.UpdateContact status: pending-underwriter-review, flag: underwriting.flagReason
NotificationService.SendEmail to customer.email confirming review is in progress, expected timeline 1 to 2 business days
UnderwritingRulesAPI.CreateReviewCase with customer.name, coverage.type, underwriting.flagReason, all risk fields
- Customer wants an agent callback confirmed →escalation-human
- Customer is satisfied to wait defer →resolution-follow-up
Partial Intake Save
CRM.SavePartialIntake with all collected fields, status: incomplete, customer.phone, customer.email
NotificationService.ScheduleFollowUp outreach in 24 hours to customer.phone and customer.email
CRM.UpdateContact preferred_contact: as stated by customer
- Customer provides a preferred follow-up time or method →resolution-follow-up
- Customer does not respond or disengages →resolution-follow-up
Quoting System Error
CRM.LogQuoteAttempt status: system-error, customer.name, coverage.type, all collected risk fields
NotificationService.AlertLicensedAgent with customer.name, customer.phone, customer.email, coverage.type, collected risk fields
- Handoff to licensed agent →escalation-human
Escalation to Human Agent
CRM.UpdateContact status: escalated-to-agent
CRM.CreateTask priority: high, assigned: licensed_agent_queue, linked to customer.name, coverage.type, quote.id
NotificationService.AlertLicensedAgent with full intake summary: customer.name, customer.email, customer.phone, coverage.type, coverage.desiredLimits, coverage.startDate, all risk fields, quote.id if available
Resolution — Follow-up Scheduled
CRM.UpdateContact status: follow-up-scheduled
Resolution — Complete
CRM.UpdateContact status: quote-delivered

Prior Authorization Status Inquiry
Intake & Caller Identification
- Caller identifies as the patient or member confirmed →member-identity-verification
- Caller identifies as provider staff or office provider →provider-identity-verification
- Caller relationship unclear or caller does not respond unclear →intake-verification
Member Identity Verification
EligibilitySystem.VerifyMember using member.id and member.dob
CRM.PullMemberRecord for member.id
- Identity verified, coverage active verified →auth-lookup
- Identity verified but coverage inactive coverage_inactive →coverage-issue
- Identity cannot be confirmed after two attempts unverified →escalation-human
Provider Identity Verification
ProviderDirectory.VerifyProvider using provider.npi or provider.practiceName
EligibilitySystem.VerifyMember using member.id and member.dob
- Provider and member both verified, coverage active verified →auth-lookup
- Member coverage inactive coverage_inactive →coverage-issue
- Provider NPI not found in directory provider_not_found →escalation-human
- Identity cannot be confirmed unverified →escalation-human
Coverage Issue
CRM.LogCoverageFlag for member.id with status member.coverageStatus
- Caller wants to continue to auth lookup regardless →auth-lookup
- Caller wants to resolve coverage issue first →escalation-human
Authorization Lookup
AuthManagement.LookupAuthorization using auth.referenceNumber or member.id and auth.submittedDate and medication.name or procedure.name
- Authorization record found, status is pending pending →status-pending
- Authorization record found, status is approved approved →status-approved
- Authorization record found, status is denied denied →status-denied
- Authorization record found, clinical info still outstanding info_outstanding →clinical-info-outstanding
- Authorization record cannot be located not_found →auth-not-found
Status — Pending
AuthManagement.CheckReviewDeadline for auth.referenceNumber
- Request is still within the payer's mandated review timeframe →pending-next-steps
- Request has exceeded the mandated review timeframe overdue →escalation-urgent
Pending — Next Steps
CRM.LogInteraction for member.id with status pending and next review date auth.reviewDeadline
- Caller has additional questions →intake-verification
- Caller is satisfied and ends interaction →resolution
Status — Approved
CRM.LogInteraction for member.id with outcome approved
Portal.ConfirmLetterDelivery for auth.referenceNumber
- Caller needs the approval reference number or letter resent →resend-approval
- Caller has no further questions →resolution
Resend Approval Letter
Portal.ResendApprovalLetter for auth.referenceNumber to member.id
CRM.LogInteraction noting resend requested
- Letter resent successfully letter_sent →resolution
- Delivery fails or address needs updating delivery_failed →escalation-human
Status — Denied
kb.appeal-rights-policy — confirm appeal window, peer-to-peer review rights, and deadline rules for auth.denialReason
CRM.LogDenialOutcome for member.id and auth.referenceNumber with reason auth.denialReason
- Denial involves urgent or life-sustaining treatment urgent →escalation-urgent
- Caller confirms intent to appeal appeal_intent →escalation-appeal
- Caller wants to discuss denial reason further →denial-detail
- Caller accepts denial and has no further questions →resolution
Denial Detail
kb.clinical-criteria-policy — look up criteria applied to medication.name or procedure.name
- Caller now wants to initiate appeal appeal_intent →escalation-appeal
- Caller has no further questions →resolution
Clinical Info Outstanding
Portal.SendClinicalInfoRequest to provider.npi with list auth.outstandingDocs
CRM.LogInteraction for member.id noting outstanding documents and notification sent
- Notification sent and caller is satisfied notified →resolution
- Provider disputes what is listed as outstanding disputed →escalation-human
Authorization Not Found
CRM.LogInteraction for member.id noting authorization not found and submission details provided
- Caller wants to escalate to intake team for investigation escalate_intake →escalation-intake
- Caller will resubmit and has no further questions →resolution
Escalation — Urgent or Life-Sustaining Denial
CRM.FlagUrgentCase for member.id and auth.referenceNumber with priority high
AuthManagement.EscalateForExpediteReview for auth.referenceNumber
CRM.LogInteraction noting urgent escalation initiated
Escalation — Formal Appeal
CRM.OpenAppealCase for member.id and auth.referenceNumber with deadline auth.appealDeadline
Portal.SendAppealInstructions to member.id and provider.npi
CRM.LogInteraction noting appeal case opened
Escalation — Intake Investigation
CRM.CreateIntakeInvestigationTicket for member.id with submission details auth.submittedDate and medication.name or procedure.name
CRM.LogInteraction noting intake escalation for missing authorization record
- Caller has additional questions →intake-verification
- Caller is satisfied →resolution
Escalation — Human Agent
CRM.LogInteraction for member.id noting reason for escalation
CRM.RouteToSpecialist priority standard
Resolution
CRM.LogInteraction for member.id with outcome resolved and summary of interaction

Premium Payment / Billing Inquiry
Inbound Greeting
CRM.LookupCustomer on policy.number
- Policy number provided and record found →identity-verification
- Customer cannot locate policy number →identity-verification
- No response or line is silent →escalation-human
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob, customer.ssn_last4, or customer.passphrase
- Identity verified successfully verified →policy-overview
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer hesitant or asks why it is needed frustrated →verification-explain
Verification Explain
- Customer agrees and provides credentials →identity-verification
- Customer refuses to verify and wants to end call →escalation-human
Identity Failure
- Customer wants branch or written request information CRM.LogContactAttempt →escalation-human
- Customer agrees to end call CRM.LogContactAttempt →session-close
Policy Overview
PolicyManagement.GetPolicyDetails on policy.number
BillingLedger.GetCurrentBalance returning policy.premium_amount, policy.due_date, payment.outstanding_balance, payment.last_payment_date, payment.method_on_file
- Policy is active and in good standing active →billing-inquiry-triage
- Policy is in lapsed status lapsed →escalation-lapsed-policy
- Policy is cancellation-pending cancellation_pending →escalation-lapsed-policy
Billing Inquiry Triage
- Customer wants to make a payment now pay_now →process-payment
- Customer questions or disputes the premium amount dispute_amount →premium-explanation
- Customer reports a missed or failed payment missed_payment →missed-payment-review
- Customer asks about an upcoming renewal renewal_question →renewal-review
- Customer asks about an unexpected or unrecognized charge unexpected_charge →premium-explanation
- Customer wants to update payment method update_payment →update-payment-method
- Customer requests supervisor or escalation wants_supervisor →escalation-human
Premium Explanation
BillingLedger.GetChangeHistory on policy.number returning billing.recent_changes, billing.endorsements, billing.rate_adjustment_reason
kb.premium-rate-adjustment-policy — review applicable rate change rules and endorsement billing guidelines
- Change explained by endorsement or coverage adjustment CRM.LogExplanation →explanation-confirmed
- Change explained by annual rate adjustment CRM.LogExplanation →explanation-confirmed
- Change cannot be explained by visible account data unexplained_charge →escalation-human
Explanation Confirmed
- Customer accepts explanation and wants to pay now →process-payment
- Customer accepts explanation but has no payment due →confirmation-send
- Customer still disputes the explanation still_disputing →escalation-human
Missed Payment Review
kb.payment-plan-eligibility-policy — check grace period rules, payment plan thresholds, and eligibility criteria
- Account is within grace period and customer wants to pay now within_grace →process-payment
- Account is eligible for a payment plan payment_plan_eligible →payment-plan-setup
- Grace period has expired and policy is at risk grace_expired →escalation-lapsed-policy
Payment Plan Setup
kb.payment-plan-options — retrieve available installment schedules and terms
- Customer agrees to a plan and first payment is collected BillingLedger.EnrollPaymentPlan →confirmation-send
- Customer declines plan and wants to pay full balance now →process-payment
- Customer declines all options →escalation-human
Renewal Review
kb.renewal-billing-policy — review renewal terms, auto-pay rules, and advance payment options
- Customer wants to make an advance renewal payment →process-payment
- Customer has questions about coverage changes at renewal coverage_question →escalation-human
- Customer wants to update payment method before renewal →update-payment-method
- Customer is satisfied with the renewal information →confirmation-send
Update Payment Method
PaymentGateway.UpdatePaymentMethod with new details provided by customer
BillingLedger.ConfirmMethodUpdate on policy.number
- Payment method updated successfully method_updated →billing-inquiry-triage
- New payment method declined or invalid method_declined →payment-declined
Process Payment
PaymentGateway.ProcessPayment for payment.outstanding_balance on policy.number
- Payment approved and processed successfully payment_success →confirmation-send
- Payment method declined payment_declined →payment-declined
- Payment gateway timeout or system error system_error →escalation-human
Payment Declined
- Customer provides an alternate payment method →update-payment-method
- Customer wants to explore a payment plan →payment-plan-setup
- Customer wants to call back later CRM.LogDeclinedPayment CRM.SetFollowUpFlag →session-close
- Customer requests supervisor →escalation-human
Confirmation Send
Twilio.SendSMS to customer.phone with payment confirmation and payment.confirmation_number
CRM.SendConfirmationEmail to customer.email with policy status, payment amount, and next due date
CRM.LogInteraction with summary of inquiry type, actions taken, and outcome
- Confirmation sent and customer has no further questions →session-close
- Customer has an additional question additional_question →billing-inquiry-triage
Escalation — Lapsed or Cancellation-Pending Policy
CRM.LogEscalation tagged lapse-reinstatement, linked to policy.number
CRM.FlagForReinstatementReview on policy.number
- Transferring to reinstatement workflow →policy-reinstatement-workflow
- Customer disconnects before transfer CRM.LogContactAttempt →session-close
Escalation to Human Agent
CRM.LogEscalation with inquiry summary, policy.number, and reason for escalation
CRM.CreateCase priority: high, tagged billing-escalation, linked to policy.number
Session Close
- Customer has another question another_question →inbound-greeting
- Customer is done — closing interaction CRM.LogInteraction tagged session-complete

Policy Coverage Question
Inbound Coverage Inquiry
- Customer provides name and policy number →identity-verification
- Customer doesn't have policy number handy →collect-account-details
Collect Account Details
PolicyManagement.LookupByContact using customer.email or customer.phone
- Account found →identity-verification
- Account not found CRM.CreatePendingRecord →system-lookup-failure
Identity Verification
PolicyManagement.FetchPolicy using policy.number
CRM.VerifyIdentity confirm customer.name against policy record
- Identity confirmed, policy active confirmed →retrieve-policy-details
- Identity confirmed, policy lapsed or expired confirmed →lapsed-policy
- Identity check fails after two attempts unverified →escalation-human
Retrieve Policy Details
PolicyManagement.GetPolicyDetails for policy.number — retrieve policy.type, policy.effectiveDate, policy.expirationDate, policy.deductible, policy.coverageLimits
CRM.LogInteraction tag: coverage-inquiry, linked to policy.number
- Customer describes a specific situation or event →coverage-assessment
- Customer is distressed or alarmed about a potential denial frustrated →acknowledge-concern
Acknowledge Concern
- Customer calms down and describes the situation neutral →coverage-assessment
- Customer remains very distressed or mentions legal action frustrated →escalation-licensed-agent
Coverage Assessment
- Situation is clearly covered →deliver-covered-answer
- Situation falls in a gray area or under an exclusion →explain-exclusion-or-gray-area
- Situation involves a large, complex, or legally disputed claim complex_claim →escalation-underwriter
Deliver Covered Answer
DocumentRetrieval.GetRelevantSection for policy.type and coverage.situation
- Customer asks about filing a claim →claim-guidance
- Customer confirms they understand and has no further questions →resolution-close
- Customer wants to speak with a licensed agent escalation_requested →escalation-licensed-agent
Explain Exclusion or Gray Area
DocumentRetrieval.GetExclusionClause for policy.type and coverage.situation
kb.coverage-exclusions-guide — retrieve plain-language explanation for the applicable exclusion
- Customer wants underwriter review →escalation-underwriter
- Customer accepts the explanation and understands →resolution-close
- Customer disputes the exclusion or mentions an attorney frustrated →escalation-licensed-agent
Claim Guidance
CRM.CheckExistingClaim for policy.number and coverage.situation
- Existing claim found, linked to claim.existingId →claim-already-filed
- No existing claim found →new-claim-guidance
Claim Already Filed
- Customer has more questions →coverage-assessment
- Customer is satisfied →resolution-close
New Claim Guidance
- Customer wants to file now PolicyManagement.InitiateClaim →resolution-close
- Customer wants to file later →resolution-close
- Customer wants to escalate or speak with someone directly →escalation-licensed-agent
Lapsed Policy
- Customer wants to explore reinstatement or renewal →policy-renewal-reinstatement
- Customer wants to speak with someone directly →escalation-licensed-agent
- Customer acknowledges and wants to end the call →resolution-close
System Lookup Failure
CRM.CreateFollowUpTask assign to policy-support team, SLA: 1 business day, include customer.name, customer.phone, customer.email, coverage.situation
- Customer agrees to follow-up →resolution-close
- Customer wants immediate assistance →escalation-licensed-agent
Escalation to Underwriter
UnderwritingQueue.SubmitReviewRequest with policy.number, coverage.situation, agent's risk assessment, and policy.coverageLimits
CRM.LogInteraction tag: underwriter-referral, linked to policy.number
- Customer has additional questions for the underwriter →escalation-licensed-agent
- Customer is satisfied with the next step →resolution-close
Escalation to Licensed Agent
CRM.CreateCase priority: high, tag: licensed-agent-requested, linked to policy.number
CRM.LogInteraction tag: escalation, include full coverage-question context
Policy Renewal Reinstatement
CRM.LogInteraction tag: renewal-interest, linked to policy.number
→policy-renewal-reinstatement-flow
Resolution Close
CRM.CloseInteraction tag: resolved, linked to policy.number
- Customer has another question →inbound-coverage-inquiry
- Customer is done Say: "Thank you for calling. You're all set, and don't hesitate to reach out if questions come up. Have a great day." →resolution-close

Payment / Billing Issue
Identity Verification
CRM.LookupAccount using customer.email
- Account found, identity confirmed →transaction-lookup
- Account not found or details do not match →identity-retry
- Customer reports suspected fraud or unauthorized access →escalation-fraud
Identity Retry
CRM.LookupAccount using customer.email
- Account found on second attempt →transaction-lookup
- Still unable to locate account →escalation-back-office
Transaction Lookup
OrderManagement.GetOrder using order.id
PaymentProcessor.GetTransaction using transaction.id
- Transaction located and discrepancy confirmed →discrepancy-assessment
- Transaction found but charge appears valid →valid-charge-explanation
- Transaction cannot be found in any system →manual-collection
Discrepancy Assessment
- Duplicate or erroneous charge confirmed, refund not yet issued →refund-initiation
- Charge is valid upon review →valid-charge-explanation
- Refund was already issued, customer has not received it →refund-status-check
- Payment failed due to card or funds issue →failed-payment-recovery
- Refund amount exceeds agent authorization limit high_value →escalation-approval
- Issue cannot be reproduced or confirmed in any system →manual-collection
Refund Initiation
RefundPortal.InitiateRefund for transaction.id, amount refund.amount, linked to customer.accountId
EmailNotifications.Send to customer.email with refund confirmation, refund.id, and refund.timeline
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Valid Charge Explanation
kb.billing-policy — retrieve applicable policy documentation (restocking fees, subscription renewals, promotional terms)
EmailNotifications.Send to customer.email with charge explanation and relevant kb.billing-policy documentation
- Customer accepts the explanation →resolution-confirmed
- Customer disputes the explanation and still believes charge is incorrect →escalation-back-office
- Customer reports the charge was not authorized by them →escalation-fraud
Refund Status Check
PaymentProcessor.GetRefundStatus using refund.id
RefundPortal.CheckRefundHistory for customer.accountId
EmailNotifications.Send to customer.email with refund.id, refund.status, and bank follow-up instructions
- Customer is satisfied with the status and reference number →resolution-confirmed
- Refund is still within processing window, customer accepts →resolution-confirmed
- Refund is overdue and processor shows an error or failed status refund_failed →escalation-back-office
Failed Payment Recovery
- Error message indicates expired card card_expired →update-payment-method
- Error message indicates insufficient funds insufficient_funds →update-payment-method
- Error message is unclear or system shows another reason unknown_error →escalation-back-office
Update Payment Method
kb.billing-policy — retrieve payment update and retry procedures
EmailNotifications.Send to customer.email with payment update link and retry instructions
- Customer confirms they have updated their payment method →payment-retry-confirmed
- Customer is unable to update payment method and needs further help →escalation-back-office
Payment Retry Confirmed
EmailNotifications.Send to customer.email with payment retry confirmation and order.id status
- Customer confirms resolution →resolution-confirmed
- Customer has additional questions →resolution-confirmed
Manual Collection
CRM.CreateCase for customer.accountId, tagged billing-discrepancy, with transaction.amount, transaction.date, payment.method, and error.message
EmailNotifications.Send to customer.email confirming case has been opened with expected response timeline
- Details collected and case created →escalation-back-office
Escalation — Back-Office Review
CRM.CreateCase priority: high, tagged billing-review, linked to customer.accountId and order.id
CRM.AssignToBackOfficeQueue with all collected transaction details
EmailNotifications.Send to customer.email with case reference, summary of issue, and expected resolution timeline
Escalation — High-Value Refund Approval
- Approved approved →refund-initiation
- Rejected rejected →valid-charge-explanation
- No response within 60 min →escalation-back-office
Escalation — Fraud or Unauthorized Access
CRM.CreateCase priority: urgent, tagged fraud-suspected, linked to customer.accountId
CRM.FlagAccount for customer.accountId with fraud-hold status
PaymentProcessor.NotifyFraudTeam with transaction.id and customer.accountId
EmailNotifications.Send to customer.email with fraud case reference and next steps
Resolution Confirmed
CRM.UpdateCase status: resolved, linked to customer.accountId and order.id
EmailNotifications.Send to customer.email with resolution summary and case closure confirmation

Patient Intake Pre-Visit
Pre-Visit Outreach
Twilio.SendSMS to patient.phone: "Hi patient.firstName, your appointment with appointment.provider is scheduled for appointment.date at appointment.time. Please complete your pre-visit intake at intake.linkUrl to help us serve you better. It takes about 5 minutes."
Twilio.SendEmail to patient.email with subject "Complete Your Pre-Visit Intake — appointment.date" and body including intake.linkUrl, appointment.provider, and appointment.time.
- Patient opens intake link and proceeds engaged →identity-verification
- Patient replies with an urgent symptom or distress signal urgent →escalation-human
- No response within 24 hours Twilio.SendSMS reminder to patient.phone →intake-reminder
- Patient replies they cannot access the portal access_issue →assisted-intake
Identity Verification
PatientPortal.VerifyIdentity using patient.firstName, patient.lastName, patient.dateOfBirth, patient.portalId
- Identity confirmed on first or second attempt identity_verified →demographics-and-insurance
- Identity cannot be verified after two attempts identity_failed →escalation-human
Demographics and Insurance
EHR.GetPatientRecord for chart.id — pre-populate name, address, phone, email, emergency contact
InsuranceEligibilityAPI.CheckEligibility using insurance.carrier, insurance.memberId, insurance.groupNumber
- All demographic and insurance fields confirmed, eligibility verified confirmed →health-history
- Insurance ID does not match eligibility records eligibility_mismatch →insurance-verification
- Patient updates contact or emergency contact details updated EHR.UpdatePatientRecord →health-history
Insurance Verification
PatientPortal.RequestInsuranceCardUpload for patient.portalId
- Patient re-enters corrected insurance details InsuranceEligibilityAPI.CheckEligibility →insurance-recheck
- Patient uploads insurance card photo EHR.FlagForManualVerification tagged insurance-review, linked to chart.id →health-history
- Patient is unable to provide insurance information EHR.FlagChart as insurance-unverified →health-history
Insurance Recheck
InsuranceEligibilityAPI.CheckEligibility using updated insurance.carrier, insurance.memberId, insurance.groupNumber
- Eligibility now confirmed eligibility_verified →health-history
- Still not matching after recheck eligibility_failed EHR.FlagForManualVerification tagged insurance-review →health-history
Health History
EHR.GetMedicationList for chart.id — display current medications on file
EHR.GetAllergyList for chart.id — display current allergies on file
- Patient confirms medications and allergies as accurate confirmed →reason-for-visit
- Patient disputes a listed medication medication_dispute EHR.FlagMedication as needs-review linked to medication.flagged →medications-flagged
- Patient disputes a listed allergy allergy_dispute EHR.FlagAllergy as needs-review linked to allergy.flagged →allergies-flagged
- Patient reports a new urgent symptom during review urgent →escalation-human
Medications Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes medication on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Allergies Flagged
EHR.AddClinicalNote to chart.id: "Patient disputes allergy on file. Item flagged as needs-review pending clinician reconciliation."
- Additional items to dispute more_disputes →health-history
- No further disputes confirmed →reason-for-visit
Reason for Visit
- Routine or previously known concern symptom.reported, no urgency flags routine →pharmacy-and-preferences
- Patient describes a new or worsening urgent symptom urgent →urgent-symptom-triage
- Patient indicates a mental health crisis or emergency crisis →escalation-human
Urgent Symptom Triage
kb.triage-guidelines — check symptom against urgency thresholds and same-day care criteria
CRM.CreateUrgentNote linked to chart.id and appointment.id, tagged triage-flagged
Twilio.SendSMS to patient.phone: "We've noted your symptom. Please call our clinic or visit urgent care. For emergencies, call 911."
- Patient acknowledges and will seek immediate care acknowledged AppointmentScheduling.FlagAppointment as triage-pending →intake-incomplete-flag
- Patient insists on continuing intake continues →pharmacy-and-preferences
Pharmacy and Preferences
EHR.GetPreferredPharmacy for chart.id — display pharmacy on file if available
- Patient confirms pharmacy on file confirmed →intake-complete
- Patient provides a new or updated pharmacy EHR.UpdatePreferredPharmacy for chart.id →intake-complete
Intake Complete
EHR.UpdateChartStatus for chart.id as intake-complete
CRM.LogInteraction for patient.portalId tagged pre-visit-intake-completed, linked to appointment.id
Twilio.SendSMS to patient.phone: "Your intake is complete — thank you, patient.firstName! We look forward to seeing you on appointment.date at appointment.time."
Twilio.SendEmail to patient.email with appointment summary and any flagged items note if applicable
AppointmentScheduling.NotifyCareTeam for appointment.id: "Intake complete. Chart chart.id ready for pre-visit review."
Intake Reminder
Twilio.SendSMS to patient.phone: "Hi patient.firstName, a reminder to complete your pre-visit intake before intake.cutoffTime: intake.linkUrl. It only takes a few minutes."
- Patient engages with intake link after reminder engaged →identity-verification
- Patient does not respond by cutoff window no_response EHR.FlagChart as intake-incomplete →intake-incomplete-flag
- Patient replies with an urgent concern urgent →escalation-human
Intake Incomplete Flag
EHR.UpdateChartStatus for chart.id as intake-incomplete
CRM.CreateTask assigned to front-desk, tagged collect-on-arrival, linked to appointment.id and chart.id
Twilio.SendEmail to front-desk team: "Patient patient.firstName patient.lastName (appointment.date, appointment.time) did not complete pre-visit intake. Please collect information on arrival."
Assisted Intake
→identity-verification
Escalation to Care Team
EHR.FlagChart for chart.id as escalation-required, tagged crisis-or-identity-failure
CRM.CreateUrgentCase priority: high, linked to patient.portalId and appointment.id, tagged patient-escalation
AppointmentScheduling.AlertClinicalStaff for appointment.id with escalation reason and chart.id
Twilio.SendSMS to patient.phone: "We want to make sure you get the right support. A member of our care team will reach out to you shortly. If this is an emergency, please call 911 now."

Outage Report & Status Check
Inbound Contact
- Customer provides account number or registered phone number →identity-verification
- Customer cannot or will not provide account details →public-outage-info
- Customer mentions inability to reach emergency services safety_risk →escalation-safety
Identity Verification
IdentityVerification.VerifyCustomer using customer.accountNumber or customer.phone
- Verification passes verified →account-and-symptoms
- Verification fails after two attempts unverified →public-outage-info
Account & Symptoms
CRM.PullAccount using customer.accountNumber to retrieve customer.name, customer.serviceAddress, customer.serviceType
- Customer describes complete loss of service no_service →outage-lookup
- Customer describes degraded signal or slow data degraded_service →outage-lookup
- Customer mentions safety impact such as no 911 access safety_concern safety_risk →escalation-safety
- Customer describes issue on one device only single_device →outage-lookup
Outage Lookup
OutageManagement.CheckActiveIncidents for customer.serviceAddress and customer.serviceType
- Known active outage found matching location and service type outage_found →known-outage-confirmed
- No known outage found for this location no_outage →no-outage-found
- System lookup fails or times out lookup_error →escalation-noc
Known Outage Confirmed
OutageManagement.GetIncidentDetails to retrieve outage.incidentId, outage.affectedArea, outage.estimatedRestoration, outage.duration
- Outage duration is extended and likely qualifies for service credit kb.service-credit-policy CRM.FlagAccountForCreditReview captures credit.flagId →outage-updates-offer
- Outage is recent and within normal resolution window →outage-updates-offer
Outage Updates Offer
- Customer wants SMS updates Twilio.SendSMS to customer.phone with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer wants email updates NotificationPlatform.SendEmail to customer.email with outage.incidentId and outage.estimatedRestoration →resolution-confirmed
- Customer declines updates →resolution-confirmed
No Outage Found
kb.telecom-troubleshooting-guide — retrieve steps appropriate for customer.serviceType and customer.symptoms
- Customer confirms service is restored resolved →resolution-confirmed
- Customer confirms issue persists after troubleshooting unresolved →new-ticket-creation
- Customer reports safety-related impact during troubleshooting safety_concern safety_risk →escalation-safety
New Ticket Creation
Ticketing.CreateTroubleTicket with customer.accountNumber, customer.serviceAddress, customer.serviceType, customer.symptoms, customer.deviceCount to generate ticket.id and ticket.referenceNumber
- Customer requests SMS confirmation Twilio.SendSMS to customer.phone with ticket.referenceNumber →resolution-confirmed
- Customer requests email confirmation NotificationPlatform.SendEmail to customer.email with ticket.referenceNumber →resolution-confirmed
- Customer needs no confirmation →resolution-confirmed
- Customer expresses continued frustration or reports critical business impact escalation_needed →escalation-specialist
Public Outage Info
OutageManagement.GetPublicOutageSummary for any broad regional incidents
- Public outage exists in the reported region public_outage_found →public-outage-details
- No public outage on record →public-no-outage
Public Outage Details
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Public No Outage
- Customer wants to try verification again →identity-verification
- Customer acknowledges and ends contact →resolution-confirmed
Escalation — Network Operations
NOCDashboard.RaiseSystemLookupFailure with customer.accountNumber and customer.serviceAddress
CRM.LogInteraction with lookup failure details and customer.phone for callback scheduling
Twilio.SendSMS to customer.phone confirming a callback will be arranged
Escalation — Specialist
Ticketing.EscalateTicket for ticket.id to senior support queue
CRM.LogInteraction with escalation reason and customer.accountNumber
Escalation — Safety
CRM.LogInteraction flagged safety_risk with customer.accountNumber and customer.symptoms
NOCDashboard.RaiseSafetyFlag with customer.serviceAddress
Resolution Confirmed
- Customer has additional questions or issues →inbound-contact
- Customer confirms they are all set CRM.LogInteraction with resolution summary and outage.incidentId or ticket.referenceNumber →close-interaction
Close Interaction

Order Modification / Cancellation
Identity Verification
CRM.LookupCustomer using provided email or phone against customer.email or customer.phone
- Identity verified successfully confirmed →order-status-check
- Customer cannot provide matching credentials unverified →identity-failure
- Customer provides partial info — try one additional prompt partial →identity-retry
Identity Retry
CRM.LookupCustomer with alternate verification field
- Identity confirmed on second attempt confirmed →order-status-check
- Still unable to verify unverified →identity-failure
Identity Failure
EmailNotification.Send to customer.email with self-service portal link and instructions
Order Status Check
OrderManagement.GetOrder using order.id to retrieve order.status, order.items, order.total, order.shippingAddress, order.paymentMethod
kb.order-modification-policy — check modification and cancellation window rules against order.status
- Order is still in a modifiable state (not yet shipped) confirmed →change-intent
- Order has already shipped or is out for delivery shipped →order-already-shipped
- Order is flagged for fraud review fraud_flag →escalation-fraud
Change Intent
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to change item or quantity item_change →item-modification
- Customer wants to update shipping address address_change →address-modification
- Customer is unsure or wants to discuss options unclear →change-intent
Cancellation Confirm
kb.order-cancellation-policy — confirm refund eligibility and timeline for order.paymentMethod
- Customer confirms cancellation confirmed →process-cancellation
- Customer changes their mind or wants partial cancellation instead partial →item-modification
- Customer wants to reconsider — pause and re-engage uncertain →change-intent
Process Cancellation
OrderManagement.CancelOrder for order.id
PaymentProcessor.InitiateRefund for refund.amount to order.paymentMethod
EmailNotification.Send to customer.email with cancellation confirmation and refund.timeline
→resolution-complete
Item Modification
OrderManagement.CheckInventory for the requested replacement or updated quantity against change.requested
- Requested item or quantity is available →apply-item-change
- Requested substitution is out of stock out_of_stock →offer-alternatives
- Customer wants to remove item and remainder falls below free-shipping threshold below_threshold →shipping-cost-warning
Offer Alternatives
OrderManagement.GetSimilarItems for item.substitute recommendations
- Customer selects an available alternative confirmed →apply-item-change
- Customer wants to remove the item instead remove →shipping-cost-warning
- Customer wants to cancel the full order cancel →cancellation-confirm
- Customer wants to keep the original order as-is keep →resolution-complete
Shipping Cost Warning
- Customer accepts the added shipping cost and confirms removal confirmed →apply-item-change
- Customer decides to keep the item keep →resolution-complete
- Customer wants to cancel the full order instead cancel →cancellation-confirm
Apply Item Change
OrderManagement.ModifyOrder for order.id with updated order.items and quantities
PaymentProcessor.AdjustCharge if order total has changed, updating refund.amount as applicable
EmailNotification.Send to customer.email with updated order summary
- Customer has another change to make more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Address Modification
OrderManagement.UpdateShippingAddress for order.id with new order.shippingAddress
EmailNotification.Send to customer.email confirming the address update
- Customer has another change more_changes →change-intent
- Customer is satisfied confirmed →resolution-complete
Order Already Shipped
kb.return-policy — retrieve return window and process details
- Customer wants return instructions sent confirmed EmailNotification.Send to customer.email with return instructions →resolution-complete
- Customer disputes the charge or is not satisfied disputed →escalation-dispute
- Customer accepts the outcome accepted →resolution-complete
Escalation — Fraud Review
CRM.CreateCase priority: high, tagged fraud-review, linked to order.id
Slack.Notify to #fraud-ops with order.id, customer.email, and order summary
Escalation — Dispute or High-Value Refund
CRM.CreateCase priority: high, tagged charge-dispute, linked to order.id and refund.amount
Slack.Notify to #support-escalations with order.id, customer.name, refund.amount, and case summary
Resolution Complete
CRM.UpdateCase status: resolved, linked to order.id

Loyalty Tier / Points Inquiry
Identity Verification
IdentityVerification.LookupMember using member.id or member.email
- Member record found, proceed to secondary verification →secondary-verification
- Member record not found after two attempts →identity-failure
- Loyalty platform unavailable CaseManagement.LogInquiry →system-outage
Secondary Verification
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified successfully →account-overview
- Identity verification fails once →secondary-verification-retry
- Identity verification fails twice →identity-failure
Secondary Verification Retry
IdentityVerification.VerifySecondaryFactor using member.fullName and member.dateOfBirth or member.phone
- Identity verified on retry →account-overview
- Identity fails again →identity-failure
Account Overview
LoyaltyPlatform.GetMemberProfile for member.id — retrieve member.currentTier, member.pointsBalance, member.pendingPoints, member.expiringPoints, member.expiryDate, member.tierQualifyingNights, member.tierThreshold, member.tierExpiryDate
CRM.UpdateLastContactDate for member.id
- Customer asks about tier status or how to reach the next tier tier-inquiry →tier-status
- Customer asks about a specific points discrepancy or missing points discrepancy →discrepancy-intake
- Customer is concerned about tier or points expiry expiry-concern →expiry-review
- Customer's question is fully answered satisfied →resolution-summary
- Customer asks about points earning or redemption history history-inquiry →points-history
Tier Status
kb.loyalty-tier-thresholds — retrieve qualification criteria, benefits, and upgrade requirements for member.currentTier and the next tier
- Customer wants to know about tier benefits →tier-status-benefits
- Customer is upset that they are close but won't reach next tier frustrated →tier-goodwill-check
- Customer is satisfied with the information satisfied →resolution-summary
Tier Status Benefits
kb.loyalty-tier-benefits — retrieve current and next-tier benefit details
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Tier Goodwill Check
- Goodwill extension is within policy and applied LoyaltyPlatform.ApplyGoodwillExtension →goodwill-confirmation
- Shortfall exceeds policy limit or extension already used this period exceeds-policy →escalation-loyalty-specialist
Goodwill Confirmation
CRM.LogInteraction note: goodwill tier extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Points History
LoyaltyPlatform.GetTransactionHistory for member.id
- Customer provides a specific booking reference specific-booking →discrepancy-intake
- Customer wants a general history summary general-history →points-history-summary
- Customer identifies a missing or incorrect transaction discrepancy →discrepancy-intake
Points History Summary
LoyaltyPlatform.GetTransactionHistory for member.id — last 90 days of earn and redemption activity
- Customer spots a discrepancy discrepancy →discrepancy-intake
- Customer is satisfied with the summary satisfied →resolution-summary
Discrepancy Intake
LoyaltyPlatform.GetTransaction using booking.referenceNumber or transaction.id
PropertyManagementSystem.VerifyStay using booking.referenceNumber and member.id
- Transaction found and points gap confirmed gap-confirmed →discrepancy-assessment
- Transaction not found or stay not verified unverified →discrepancy-unverified
- Transaction involves a very large point volume or suspected fraud high-risk →escalation-loyalty-specialist
Discrepancy Assessment
- Discrepancy is within auto-correction threshold and earn rules confirm the gap →points-correction-approval
- Discrepancy requires manual audit or exceeds auto-correction threshold needs-audit →manual-audit-queue
- Agent detects pattern suggesting account compromise suspected-fraud →escalation-loyalty-specialist
Points Correction Approval
- Approved approved LoyaltyPlatform.AdjustPoints →correction-confirmation
- Rejected rejected →manual-audit-queue
- No response in 60 min →manual-audit-queue
Correction Confirmation
CaseManagement.CreateCase linked to member.id and transaction.id, status: resolved
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has further questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
Manual Audit Queue
CaseManagement.CreateCase priority: standard, tagged points-discrepancy, linked to member.id and transaction.id
CRM.LogInteraction note: points discrepancy flagged for manual audit, case case.id created
- Customer is satisfied with the timeline satisfied →resolution-summary
- Customer escalates or disputes the timeline frustrated →escalation-loyalty-specialist
Discrepancy Unverified
CaseManagement.CreateCase priority: standard, tagged unverified-discrepancy, linked to member.id
CRM.LogInteraction note: transaction unverified, manual investigation case created, case case.id opened
- Customer accepts the outcome and case creation satisfied →resolution-summary
- Customer insists on immediate resolution frustrated →escalation-loyalty-specialist
Expiry Review
kb.loyalty-expiry-policy — retrieve points and tier expiry rules, extension eligibility, and activity requirements
- Customer is calm and accepts the information satisfied →resolution-summary
- Customer is upset about imminent expiry and requests help frustrated →expiry-goodwill-check
- Customer wants to know what activity would prevent expiry activity-inquiry →expiry-activity-options
Expiry Activity Options
kb.loyalty-earn-partners — retrieve list of qualifying partner activities that reset expiry clock
CRM.LogInteraction note: expiry activity options provided to member.id
- Customer requests the list be sent LoyaltyPlatform.SendPartnerListEmail to member.email →resolution-summary
- Customer is satisfied with the verbal summary satisfied →resolution-summary
Expiry Goodwill Check
- Extension is within policy and applied LoyaltyPlatform.ExtendPointsExpiry →expiry-extension-confirmation
- Extension not permitted under policy or limit already used exceeds-policy →escalation-loyalty-specialist
Expiry Extension Confirmation
CRM.LogInteraction note: one-time points expiry extension applied for member.id
LoyaltyPlatform.SendConfirmationEmail to member.email
- Customer has additional questions follow-up →account-overview
- Customer is satisfied satisfied →resolution-summary
System Outage
CaseManagement.CreateCase priority: standard, tagged system-outage-callback, linked to member.email
CRM.LogInteraction note: loyalty platform unavailable, callback committed within 4 business hours
- Customer accepts the callback commitment satisfied →resolution-summary
- Customer requests immediate escalation frustrated →escalation-loyalty-specialist
Identity Failure
CRM.LogInteraction note: identity verification failed, member directed to self-service portal or property front desk
Escalation to Loyalty Specialist
CaseManagement.CreateCase priority: high, tagged loyalty-specialist-escalation, linked to member.id
CRM.LogInteraction note: escalated to loyalty specialist, reason captured in case case.id
Slack.Notify to #loyalty-specialist-queue with member summary, member.id, member.currentTier, member.pointsBalance, and reason for escalation
Resolution Summary
CRM.LogInteraction note: inquiry resolved, summary provided to member.id
- Customer has another question follow-up →account-overview
- Customer is done satisfied →farewell
Farewell
CRM.CloseInteraction for member.id

Insurance Coverage Check
Patient Intake
CRM.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found in CRM →insurance-verification
- No record found, continue to collect details manually →insurance-verification
- Patient is unresponsive or call drops →escalation-human
Insurance Verification
EligibilitySystem.VerifyMember using patient.insuranceCarrier and patient.memberId
- Coverage active and returned successfully confirmed →service-inquiry
- Coverage shows as inactive or lapsed inactive →coverage-lapsed
- System returns no results or an error error →system-error
Service Inquiry
CRM.UpdateRecord with patient.memberId and confirmed coverage.status
- Patient provides service type or CPT code →network-status-check
- Patient is unsure of service details →service-clarification
Service Clarification
- Patient provides enough detail to proceed →network-status-check
- Patient still unable to provide details →escalation-human
Network Status Check
ProviderDirectory.CheckNetworkStatus using provider.name and provider.facility and patient.insuranceCarrier
PayerPortal.LookupBenefit using service.cptCode and patient.memberId and coverage.effectiveDate
- Provider and service confirmed in-network in-network →benefit-details
- Provider confirmed out-of-network out-of-network →out-of-network-options
- Service requires prior authorization prior-auth-required →prior-auth-guidance
- Lookup returns ambiguous or missing data unclear →escalation-human
Benefit Details
kb.benefit-tier-definitions — confirm explanation of coverage.tier, copay, and deductible language
PriorAuthTracker.CheckRequirements using service.cptCode and patient.memberId
- No referral or prior authorization required →confirmation-close
- Referral required referral-flag →referral-guidance
- Prior authorization required prior-auth-flag →prior-auth-guidance
Referral Guidance
kb.referral-process — retrieve steps for obtaining and submitting a referral
- Patient understands and confirms next steps →confirmation-close
- Patient has questions or disputes the referral requirement →escalation-human
Prior Auth Guidance
kb.prior-auth-process — retrieve steps and typical timelines for prior authorization submission
PriorAuthTracker.CreateCase using patient.memberId and service.cptCode and provider.name
- Patient acknowledges and has no further questions →confirmation-close
- Patient wants to dispute that prior auth is required →escalation-human
Out-of-Network Options
kb.out-of-network-benefits — look up whether the plan includes out-of-network benefit coverage and applicable cost-sharing
- Plan includes out-of-network benefits oon-benefits-available →oon-benefit-details
- Plan does not cover out-of-network services oon-no-benefits →suggest-in-network
OON Benefit Details
- Patient wants in-network alternatives instead →suggest-in-network
- Patient is satisfied with out-of-network information →confirmation-close
- Patient references a denial or billing dispute →escalation-human
Suggest In-Network Alternatives
ProviderDirectory.FindInNetworkProviders using service.type and patient.insuranceCarrier
- Patient accepts alternatives and has no further questions →confirmation-close
- Patient insists on the out-of-network provider and references a coverage dispute →escalation-human
Coverage Lapsed
kb.enrollment-support — retrieve guidance on coverage reinstatement and insurer contact process
- Patient wants to escalate or believes coverage should be active →escalation-human
- Patient understands and will contact insurer →confirmation-close
System Error
PayerPortal.ManualEligibilityLookup using patient.memberId and patient.insuranceCarrier
- Payer portal lookup succeeds →network-status-check
- Payer portal also unavailable, offer callback CRM.CreateCallbackTask →escalation-human
Confirmation & Close
CRM.LogInteraction with coverage check summary, patient.memberId, service.cptCode, and outcome
- Patient has no further questions satisfied →session-complete
- Patient has an additional service to check new-inquiry →service-inquiry
- Patient raises a dispute or references a denial dispute →escalation-human
Session Complete
CRM.CloseInteraction with resolved status and patient.memberId
Escalation to Specialist
CRM.CreateCase priority: high, tagged coverage-escalation, linked to patient.memberId and service.cptCode
CRM.LogInteraction with escalation reason and full session context

General FAQ Telecom
Intake
- Question is purely general / no account data needed general →general-lookup
- Question requires account-specific details account-specific →identity-verification
- Question reveals a billing dispute or unexpected charge billing-dispute →escalation-billing
- Question reveals a service outage or technical fault technical-issue →escalation-technical
- Customer sounds frustrated or complaint is embedded in the question frustrated →acknowledge-concern
Acknowledge Concern
- Underlying topic is general general →general-lookup
- Underlying topic requires account data account-specific →identity-verification
- Underlying topic is a billing dispute billing-dispute →escalation-billing
- Underlying topic is a technical fault technical-issue →escalation-technical
- Concern is a formal complaint requiring case handling complaint →escalation-complaint
Identity Verification
IdentityVerification.RequestAccountLookup using customer.accountNumber or customer.phone
IdentityVerification.VerifyIdentity using customer.name, customer.pin, customer.ssn4
- Identity verified successfully verified →account-lookup
- Identity verification fails after two attempts unverified →unverified-general-only
Unverified — General Info Only
kb.general-plans-policy — retrieve publicly available plan and policy information relevant to question.topic
- Customer accepts general information and asks a follow-up general →general-lookup
- Customer wants to try a different verification channel retry →escalation-human
- Customer has no further questions →resolution
Account Lookup
CRM.GetAccountProfile using customer.accountNumber
AccountManagement.GetCurrentPlan to retrieve customer.currentPlan and customer.serviceType
→account-specific-answer
Account-Specific Answer
- Answer delivered and customer is satisfied confirmed →resolution
- Answer reveals a billing discrepancy or charge dispute billing-dispute →escalation-billing
- Answer reveals a service or network issue technical-issue →escalation-technical
- Topic is outside knowledge base coverage kb-gap →escalation-human
- Customer wants to make a plan change plan-change →escalation-plan-change
General Lookup
kb.faq-content — retrieve answer matching question.topic
kb.general-plans-policy — supplement with plan or policy details if applicable
- Answer delivered and customer confirms it resolved their question confirmed →resolution
- Customer follow-up question is still general general →general-lookup
- Customer follow-up requires account details account-specific →identity-verification
- Topic falls outside knowledge base coverage kb-gap →kb-gap-acknowledgement
- Customer reveals frustration or complaint frustrated →acknowledge-concern
Knowledge Base Gap
- Customer agrees to be escalated confirmed →escalation-human
- Customer has a different, simpler question general →general-lookup
- Customer wants to try self-service and end the call self-service →resolution
Escalation — Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.accountNumber, notes include question.raw
Escalation — Billing
CRM.CreateCase tagged billing-dispute, priority: high, linked to customer.accountNumber
Escalation — Technical Issue
CRM.CreateCase tagged technical-issue, linked to customer.accountNumber, notes include customer.serviceType
Escalation — Plan Change
→plan-change-telecom
Escalation — Complaint
CRM.CreateCase tagged formal-complaint, priority: high, linked to customer.accountNumber, notes include question.raw
Resolution
- Customer has another question follow-up →intake
- Customer confirms they are done confirmed →close
Close

General FAQ Insurance
Inbound Greeting
- Customer provides name and policy number →identity-verification
- Customer asks a question before providing identity →identity-first-prompt
- Customer explicitly requests a human agent →escalation-human
Identity First Prompt
- Customer provides name and policy number →identity-verification
- Customer declines or cannot provide policy number →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Identity Verification
IdentityVerification.Verify using customer.name and customer.policyNumber
- Verification passes →policy-lookup
- Verification fails after two attempts →unverified-general-info
- Customer explicitly requests a human agent →escalation-human
Policy Lookup
PolicyAdmin.GetRecord for customer.policyNumber
CRM.GetCustomerProfile for customer.name
- Policy is active →topic-detection
- Policy is lapsed →lapsed-policy-notice
- Policy record not found →escalation-human
Topic Detection
- Question is about coverage or what the plan includes coverage →faq-coverage
- Question is about billing, payment, or due dates billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about an existing claim already in progress claim-status →active-claim-redirect
- Question is about policy documents, ID cards, or proof of insurance documents →faq-documents
- Question is about cancellation or reinstatement policy-changes →faq-policy-changes
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
FAQ — Coverage
kb.coverage-faq — retrieve coverage details relevant to customer.productType
PolicyAdmin.GetCoverageDetails for customer.policyNumber
- Customer wants more detail on a specific benefit →faq-coverage-detail
- Customer's question is resolved confirmed →resolution
- Customer raises a dispute about what should be covered dispute →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — Coverage Detail
kb.coverage-faq — look up specific benefit or exclusion matching question.topic
- Customer confirms the answer resolves their question confirmed →resolution
- Customer disagrees with the coverage detail dispute →escalation-human
- Customer has a follow-up question →topic-detection
FAQ — Billing
PolicyAdmin.GetBillingRecord for customer.policyNumber
kb.billing-faq — retrieve billing process and payment method information
- Customer wants to update payment method or set up autopay →escalation-human
- Customer questions a charge or amount billing-dispute →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Claims Process
kb.claims-process-faq — retrieve step-by-step claims filing guidance for customer.productType
- Customer wants the claims contact or portal link CRM.SendClaimsInfo to customer.email →resolution
- Customer says they already have a claim in progress claim-in-progress →active-claim-redirect
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Documents
kb.documents-faq — retrieve document request process for customer.productType
- Customer confirms email and requests document PolicyAdmin.SendDocuments to customer.email →resolution
- Customer wants a different email address PolicyAdmin.SendDocuments after confirming new address →resolution
- Customer has a follow-up question →topic-detection
FAQ — Policy Changes
kb.policy-changes-faq — retrieve cancellation and reinstatement policy for customer.productType
- Customer asks about cancellation →escalation-human
- Customer asks about reinstatement →faq-reinstatement
- Customer has a general question confirmed →resolution
- Customer has a follow-up question →topic-detection
FAQ — Reinstatement
kb.reinstatement-policy — retrieve reinstatement eligibility and process
- Customer wants to proceed with reinstatement →escalation-human
- Customer confirms the answer resolves their question confirmed →resolution
- Customer has a follow-up question →topic-detection
Active Claim Redirect
CRM.LogInteraction tag: claim-status-inquiry, linked to customer.policyNumber
- Claim ID is available claim.id →claims-status-workflow
- Claim ID is not available →escalation-human
Lapsed Policy Notice
kb.reinstatement-policy — check reinstatement eligibility window using customer.reinstatementDeadline
- Customer wants to proceed with their original question →topic-detection-lapsed
- Customer wants reinstatement information first →faq-reinstatement
- Customer explicitly requests a human agent →escalation-human
Topic Detection — Lapsed Policy
- Question is about coverage coverage →faq-coverage
- Question is about billing billing →faq-billing
- Question is about how to file a claim claims-process →faq-claims-process
- Question is about documents documents →faq-documents
- Question involves legal interpretation, dispute, or complaint legal-dispute →escalation-human
- Question does not match a known topic unknown →clarification-prompt
Unverified — General Info Only
kb.public-faq — retrieve general public-facing insurance information
- Question is about coverage in general coverage →faq-coverage-general
- Question is about billing in general billing →faq-billing-general
- Question is about how to file a claim claims-process →faq-claims-process
- Customer wants account-specific help →escalation-human
- Customer explicitly requests a human agent →escalation-human
FAQ — General Coverage (Unverified)
kb.public-faq — retrieve general coverage overview, not account-specific
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
FAQ — General Billing (Unverified)
kb.public-faq — retrieve general billing and payment information
- Customer confirms this answers their question confirmed →resolution
- Customer has a follow-up question →unverified-general-info
- Customer wants to try verification again →identity-verification
Clarification Prompt
- Customer clarifies a known topic confirmed →topic-detection
- Customer's question still unclear after clarification →escalation-human
- Customer explicitly requests a human agent →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation, reason: question.topic, linked to customer.policyNumber
CRM.CreateCase priority: normal, linked to customer.policyNumber
Resolution
CRM.LogInteraction tag: faq-resolved, topic: question.topic, linked to customer.policyNumber
- Customer has another question →topic-detection
- Customer confirms no further questions confirmed →close-conversation
Close Conversation
CRM.CloseInteraction linked to customer.policyNumber

General FAQ — Travel & Hospitality
Inbound Question
CRM.LookupCustomer by customer.phone or customer.email
- Customer asks about cancellation or change policies cancellation →clarify-reservation-context
- Customer asks about amenities, facilities, or property features amenities →clarify-property
- Customer asks about pet policy pets →clarify-property
- Customer asks about meals, dining, or breakfast inclusion dining →clarify-property
- Customer asks about loyalty program benefits or points loyalty →loyalty-faq
- Customer asks about visa, health, or travel entry requirements travel-requirements →travel-requirements-faq
- Customer message is vague or multi-topic unclear →clarify-question
- Customer expresses frustration or dissatisfaction upfront frustrated →escalation-human
Clarify Question
- Customer provides enough detail to categorise clarified →inbound-question
- Customer remains vague or asks multiple unrelated things still-unclear →retrieve-general-faq
- Customer shows frustration frustrated →escalation-human
Clarify Reservation Context
- Customer references an existing reservation →clarify-property
- Customer is asking prospectively →retrieve-general-faq
Clarify Property
PMS.LookupReservation by reservation.id if provided
- Property identified or reservation found →retrieve-property-faq
- Customer cannot specify a property and question is general →retrieve-general-faq
- Customer is frustrated by the extra question frustrated →escalation-human
Retrieve Property-Specific FAQ
kb.property-policies — look up topic.category policy for property.name
- Answer found and complete →deliver-answer
- Answer found but varies by date or rate type →deliver-answer-with-caveat
- Knowledge base has no coverage for this question no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Retrieve General FAQ
kb.general-faq — look up topic.category
- Answer found and universally applicable →deliver-answer
- Answer varies by property →clarify-property
- Answer varies by loyalty tier LoyaltyPlatform.GetTierBenefits →deliver-answer-with-caveat
- Knowledge base has no coverage no-coverage →knowledge-gap
- Question touches legal, medical, or safety matter sensitive →escalation-human
Loyalty FAQ
kb.loyalty-program — retrieve benefits, earning rules, and redemption policies for customer.loyaltyTier
LoyaltyPlatform.GetTierBenefits for customer.loyaltyTier
- Benefits information retrieved →deliver-answer
- Customer's tier could not be confirmed →deliver-answer-with-caveat
- Customer disputes their tier or points balance dispute →escalation-human
Travel Requirements FAQ
kb.travel-entry-requirements — look up destination property.location for reservation.checkIn dates
- Summary retrieved →deliver-answer-with-caveat
- No information available for this destination no-coverage →knowledge-gap
- Customer raises a medical or legal compliance concern sensitive →escalation-human
Deliver Answer
- Customer is satisfied and has no further questions satisfied →resolution
- Customer has a follow-up question on the same topic follow-up →retrieve-property-faq
- Customer has a completely new question new-topic →inbound-question
- Customer is not satisfied with the answer unsatisfied →escalation-human
Deliver Answer With Caveat
- Customer accepts the answer and caveats satisfied →resolution
- Customer wants clarification on a specific variant follow-up →clarify-property
- Customer is unsatisfied or concerned unsatisfied →escalation-human
Knowledge Gap
CRM.LogInteraction note: unanswered FAQ topic, question.raw, property.name
- Customer agrees to be connected confirmed →escalation-human
- Customer declines transfer and wants to try another question new-topic →inbound-question
- Customer ends the conversation end →resolution
Escalation to Human Specialist
CRM.LogInteraction with question.raw, topic.category, reservation.id, customer.loyaltyTier, escalation reason
Resolution
CRM.LogInteraction note: FAQ resolved, topic.category, property.name, customer.loyaltyTier

Fraud Alert Follow-up
Alert Notification
FraudDetectionPlatform.FetchFlaggedTransaction to retrieve transaction.id, transaction.amount, transaction.merchant, transaction.datetime, and transaction.riskScore.
- System lookup succeeds and transaction details are retrieved →identity-verification
- System lookup fails or returns no transaction record system_error →system-lookup-failure
Identity Verification
IdentityVerification.VerifyCustomer using customer.name, customer.dob, and customer.pin or customer.securityAnswer.
- Identity verified successfully confirmed →transaction-confirmation
- Identity cannot be verified after two attempts failed →verification-failure
- Customer is uncertain or provides partial information partial →verification-retry
Verification Retry
IdentityVerification.VerifyCustomer retry with alternate credentials.
- Identity verified on retry confirmed →transaction-confirmation
- Identity still cannot be verified failed →verification-failure
Verification Failure
CRM.LogInteraction tagged verification-failure, linked to account.id, noting no transaction details were disclosed.
Transaction Confirmation
- Customer confirms the transaction is theirs confirmed →resolution-clear
- Customer says the transaction is not theirs denied →disputed-transaction
- Customer is unsure or asks for more time uncertain →transaction-detail-review
Transaction Detail Review
kb.fraud-dispute-policy — review dispute eligibility window for transaction.datetime.
- Customer recognizes the transaction after further detail confirmed →resolution-clear
- Customer confirms the transaction is not theirs denied →disputed-transaction
- Customer remains unsure and cannot confirm or deny uncertain CRM.LogInteraction tagged pending-customer-response →escalation-human
Disputed Transaction
CardManagement.BlockCard for card.last4.
CRM.UpdateCase flagged as fraud-reported, linked to account.id and transaction.id.
- Customer confirms only the single flagged transaction is unrecognized single-transaction →open-dispute
- Customer flags additional unrecognized transactions multiple-transactions →expanded-fraud-event
- Customer is distressed, upset, or requests immediate escalation distressed →escalation-human
Expanded Fraud Event
CoreBanking.FreezeAccount for account.id.
FraudDetectionPlatform.FlagAccountCompromised linked to account.id.
CRM.CreateCase priority: critical, tagged expanded-fraud-account-review, linked to account.id.
DisputeManagement.OpenExpandedReview for account.id, noting all flagged transactions.
- Case created and account frozen →escalation-human
Open Dispute
DisputeManagement.OpenDispute for transaction.id, transaction.amount, transaction.merchant, linked to account.id. Capture dispute.caseId.
→replacement-card
Replacement Card
CardManagement.IssueReplacementCard for card.last4, ship to replacement.deliveryAddress.
- Approved approved →dispute-wrap-up
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Dispute Wrap-up
CRM.UpdateCase with dispute.caseId, card block status, and replacement card shipping confirmation.
CoreBanking.ClearFraudAlert on transaction.id.
- Customer has further questions or concerns →escalation-human
- Customer is satisfied and call can close →resolution-clear
System Lookup Failure
CRM.LogInteraction tagged system-error-transaction-lookup, linked to account.id, noting transaction details could not be retrieved.
FraudDetectionPlatform.FlagForManualReview linked to account.id, tagged system-lookup-failure.
Escalation to Human Agent
CRM.CreateCase priority: high, tagged fraud-escalation, linked to account.id and transaction.id.
Slack.Notify to #fraud-ops with case summary including account.id, transaction.id, transaction.amount, card.last4, and reason for escalation.
Resolution — Clear
CoreBanking.ClearFraudAlert on transaction.id.
CRM.LogInteraction tagged alert-cleared-customer-confirmed, linked to account.id.

Dispute Escalation to Human Agent
Dispute Intake
- Customer provides name and account number →identity-verification
- Customer mentions an already-open dispute or prior case number →existing-case-lookup
- Customer immediately invokes legal rights (CFPB, arbitration, attorney) or threatens legal action legal_threat →escalation-human
- Customer is highly distressed or agitated distressed →escalation-human
Identity Verification
IdentityVerification.Verify against customer.accountNumber — check security questions, date of birth, and registered contact details.
- Identity verified on first or second attempt verified →account-and-dispute-lookup
- Identity cannot be verified after two attempts unverified →identity-failure
- Customer refuses verification or abandons →escalation-human
Identity Failure
CRM.LogAttempt tag: identity-verification-failed, linked to customer.accountNumber
Account and Dispute Lookup
CoreBanking.GetAccountDetails for customer.accountNumber
CoreBanking.GetTransactionHistory for customer.accountNumber
- Customer provides transaction or decision details →dispute-eligibility-check
- Agent cannot locate the transaction after two attempts →escalation-human
- Customer mentions fraud and amount is above USD 500 high_value_fraud →escalation-human
Dispute Eligibility Check
kb.dispute-eligibility-policy — check whether transaction.date falls within the eligible dispute window and whether dispute.reason qualifies under policy.
- Dispute is within policy window and qualifies eligible →dispute-logging
- Dispute falls outside the eligible window or does not qualify under policy ineligible →dispute-ineligible
- Eligibility is ambiguous and requires human judgment ambiguous →escalation-human
Dispute Ineligible
CRM.LogAttempt tag: dispute-ineligible, linked to customer.accountNumber, note dispute.reason
- Customer accepts the outcome and has no further questions →resolution-closed
- Customer requests secondary review or escalation →escalation-human
Existing Case Lookup
CaseManagement.GetCase by dispute.priorCaseNumber or customer.accountNumber
- Existing open case found case_found →existing-case-update
- No matching case found, treat as new dispute no_case →identity-verification
- Customer escalates frustration about lack of progress frustrated →escalation-human
Existing Case Update
CaseManagement.UpdateCase on case.id with new dispute.reason and today's contact timestamp
CRM.LogInteraction linked to case.id, tag: customer-follow-up
- Customer is satisfied with the update →resolution-closed
- Customer escalates or expresses legal intent legal_threat →escalation-human
- Customer requests to speak with a human specialist →escalation-human
Dispute Logging
- Customer confirms details confirmed →case-creation
- Customer corrects or amends details correction →account-and-dispute-lookup
Case Creation
DisputesManagement.CreateCase for customer.accountNumber with transaction.referenceId, transaction.amount, transaction.date, dispute.reason
CaseManagement.AssignCaseNumber and capture as case.id
CRM.LogInteraction tag: dispute-filed, linked to case.id
→dispute-confirmation
Dispute Confirmation
Twilio.SendSMS to customer.phone: "Your dispute (Case case.id) has been logged. Amount: transaction.amount. We'll follow up within 3–5 business days. Reply STOP to opt out."
Twilio.SendEmail to customer.email with full case summary including case.id, transaction.referenceId, transaction.amount, transaction.date, and next steps.
- Customer has no further questions →resolution-closed
- Customer has additional questions or a separate dispute →dispute-intake
- Customer escalates or requests immediate human follow-up →escalation-human
Escalation to Human Agent
CRM.LogInteraction tag: escalation-triggered, linked to customer.accountNumber, note dispute.reason
CaseManagement.CreateOrUpdateCase priority: high, tag: human-escalation, linked to transaction.referenceId
DisputesManagement.FlagForReview on customer.accountNumber with escalation reason and agent transcript summary
- Specialist accepts and takes over approved →escalation-handoff-complete
- No response within 10 min timeout →escalation-handoff-complete
Escalation Handoff Complete
Twilio.SendSMS to customer.phone: "You've been connected with a disputes specialist. Reference: case.id. Expect contact via customer.preferredContact shortly."
Resolution / Closed
CRM.LogInteraction tag: interaction-complete, linked to case.id

Damaged / Wrong Item Received
Intake & Verify
- Customer provides order ID OMS.LookupOrder by order.id →confirm-order
- Customer provides email or phone instead CRM.LookupByContact by customer.email or customer.phone →confirm-order
- Customer cannot provide any identifying information →identity-unverifiable
Confirm Order
OMS.GetOrderDetails for order.id — retrieve item.description, order.deliveryDate, order.status, order.value
- Order found, delivery confirmed, customer describes damaged item →issue-triage
- Order found, delivery confirmed, customer describes wrong item received →issue-triage
- Order found but not yet marked delivered ShippingCarrier.GetTrackingStatus →delivery-unclear
- Order lookup returns an error or ambiguous result CRM.FlagForManualReview →system-lookup-failed
Issue Triage
kb.returns-replacement-policy — verify order.deliveryDate is within policy.replacementWindowDays and check photo evidence requirements for item.issue
- Within policy window, photo evidence required by policy →request-photo-evidence
- Within policy window, no photo evidence required →resolution-offer
- Outside policy window →outside-return-window
Request Photo Evidence
PhotoUpload.SendUploadLink to customer.email or customer.phone
- Customer submits photo, evidence is clear →resolution-offer
- Customer unable to submit photo, order value is within policy.autoApprovalThreshold Policy.CheckGoodwillEligibility →goodwill-exception-review
- Customer unable to submit photo, order value exceeds policy.autoApprovalThreshold →escalation-human
Goodwill Exception Review
- Goodwill waiver approved within constraints goodwill_approved →resolution-offer
- Goodwill waiver outside constraints or repeat exception needs_review →escalation-human
Resolution Offer
- Customer prefers replacement →initiate-replacement
- Customer prefers refund →initiate-refund
- Customer is unsure, asks for more information →explain-resolution-options
Explain Resolution Options
kb.returns-replacement-policy — confirm refund and replacement timelines for customer.preferredResolution
- Customer selects replacement →initiate-replacement
- Customer selects refund →initiate-refund
- Customer requests something outside standard options →escalation-human
Initiate Replacement
OMS.CreateReplacementOrder for order.id, ship to address on file
ReturnsManager.OpenReturnCase tagged replacement, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and estimated delivery
→close-case
Initiate Refund
ReturnsManager.InitiateRefund for order.id, full amount to original payment method
ReturnsManager.OpenReturnCase tagged refund, linked to order.id, log item.issue
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and refund timeline
→close-case
Outside Return Window
kb.returns-replacement-policy — check partial goodwill resolution eligibility for out-of-window orders
- Approved for partial goodwill resolution approved ReturnsManager.InitiatePartialCredit →partial-resolution-confirmed
- Rejected, no goodwill exception authorised rejected →policy-decline
- No response within 60 min →escalation-human
Partial Resolution Confirmed
Twilio.SendNotification to customer.email or customer.phone with resolution.confirmationNumber and credit details
→close-case
Policy Decline
- Customer accepts the outcome →close-case
- Customer wants to escalate or disputes the outcome →escalation-human
Delivery Unclear
ShippingCarrier.GetTrackingStatus for order.id
- Carrier confirms delivered, discrepancy in OMS OMS.FlagOrderStatusMismatch →system-lookup-failed
- Carrier confirms still in transit →close-case
- Carrier confirms lost or exception raised →escalation-human
System Lookup Failed
CRM.CreateCase priority: medium, tagged order-lookup-error, linked to customer.email
CRM.ScheduleCallback for customer.phone within 24 hours
- Customer confirms callback number CRM.UpdateCaseContactDetails →close-case
- Customer prefers email follow-up Twilio.SendNotification confirmation to customer.email →close-case
Identity Unverifiable
- Customer finds identifying information →intake-and-verify
- Customer still cannot provide verification, low-value context →escalation-human
- Customer becomes frustrated or demands override →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged damaged-wrong-item-escalation, linked to order.id and customer.email
Slack.Notify to #retail-support-escalations with case summary, order.id, order.value, item.issue, and reason for escalation
Close Case
CRM.CloseCase for case.id, log resolution type and resolution.confirmationNumber

Complaint Escalation Stay/Trip Issue
Intake & Verification
CRM.LookupCustomer by customer.phone or customer.email
PropertyManagementSystem.LookupReservation by booking.id
- Reservation found and account matched →complaint-capture
- Reservation not found in system →manual-case-creation
- Customer mentions a prior unresolved case CaseManagement.LookupCase by complaint.priorCaseNumber →complaint-capture
Complaint Capture
LoyaltyPlatform.GetProfile by customer.loyaltyNumber
- Customer describes issue calmly and provides clear details neutral →policy-check
- Customer is highly upset, distressed, or emotional frustrated →empathy-de-escalation
- Customer explicitly mentions legal action, regulatory body, health or safety incident threatened →escalation-human
Empathy & De-escalation
- Customer calms and continues describing the issue neutral →policy-check
- Customer remains highly distressed or repeats legal / safety threat threatened →escalation-human
Policy Check
kb.complaint-resolution-policy — verify complaint window, eligible remedy types, and authorization limits for booking.checkOut and complaint.nature
PropertyManagementSystem.GetReservationDetails for booking.id to confirm rate, room type, and recorded amenities
- Stay is within complaint window and issue is policy-eligible →remedy-assessment
- Stay falls outside complaint window or issue is partially out of scope →out-of-scope-partial-remedy
- Booking channel is a third-party OTA OTAPartnerPortal.CheckBookingOwnership →ota-redirect
Remedy Assessment
- Remedy is within authorization limits and straightforward →remedy-confirmation
- Requested or warranted compensation exceeds authorization limit exceeds_limit →escalation-human
- Complaint involves a safety or health element safety_flag →escalation-human
Remedy Confirmation
- Customer accepts the remedy confirmed →process-remedy
- Customer rejects and requests higher compensation dissatisfied →escalation-review
- Customer requests time to think and asks to be followed up →case-documentation
Process Remedy
RefundBillingSystem.ProcessRefundOrCredit for booking.id with remedy.type and remedy.value
LoyaltyPlatform.ApplyCredit if remedy.type is loyalty credit
CaseManagement.CreateCase tagged complaint-resolved, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with case reference case.id and remedy details
- Customer confirms receipt and has no further issues →resolution-close
- Customer raises an additional complaint →complaint-capture
Escalation Review
- Approved approved →process-remedy
- Rejected rejected →remedy-final-offer
- No response in 60 min →escalation-human
Remedy Final Offer
- Customer accepts confirmed →process-remedy
- Customer declines and wishes to escalate further dissatisfied →escalation-human
OTA Redirect
CaseManagement.CreateCase tagged ota-redirect, linked to booking.id
OTAPartnerPortal.InitiateDisputeReferral for booking.id with complaint.nature and complaint.details
- Customer is satisfied with the redirect guidance →resolution-close
- Customer is unsatisfied and escalates frustration frustrated →escalation-human
Out-of-Scope / Partial Remedy
kb.complaint-resolution-policy — identify any goodwill or partial remedy options available outside the standard window
CaseManagement.CreateCase tagged out-of-scope, linked to booking.id
- Customer accepts the partial or goodwill remedy confirmed →process-remedy
- Customer is dissatisfied and escalates frustrated →escalation-human
Manual Case Creation
CRM.LookupCustomer by customer.email or customer.loyaltyNumber
CaseManagement.CreateCase tagged pending-lookup, with booking.propertyName, booking.checkIn, booking.checkOut, complaint.nature, customer.email, customer.phone
- Customer accepts the follow-up path →resolution-close
- Customer is unwilling to wait and is highly agitated frustrated →escalation-human
Escalation to Human Agent
CaseManagement.CreateCase priority: urgent, tagged escalation, linked to booking.id and customer.loyaltyNumber
CRM.UpdateCustomerRecord with escalation flag and complaint.details
Slack.Notify to #hospitality-escalations with case summary, booking.id, complaint.nature, and customer.desiredResolution
Case Documentation & Follow-up
CaseManagement.CreateCase tagged pending-customer-response, linked to booking.id with complaint.details and proposed remedy.type
CRM.UpdateCustomerRecord with case.id and follow-up flag
SendEmail to customer.email with case summary, proposed remedy, and contact instructions
- Customer returns and accepts remedy confirmed →process-remedy
- Customer returns and escalates dissatisfied →escalation-human
Resolution & Close
CaseManagement.CloseCase for case.id with resolution status
CRM.UpdateCustomerRecord with resolved status and remedy applied
LoyaltyPlatform.LogInteraction for customer.loyaltyNumber tagged complaint-resolved

Complaint Escalation — Insurance
Intake and Greeting
- Customer is calm or moderately frustrated neutral →identity-verification
- Customer is highly distressed, upset, or using strong escalation language distressed →empathy-protocol
- Customer explicitly mentions the ombudsman, legal action, or litigation legal_threat →regulatory-flag
Empathy Protocol
- Customer settles and is willing to continue confirmed →identity-verification
- Customer demands to speak with a manager immediately escalation_request →escalation-human
- Customer remains highly distressed and conversation cannot progress unresolvable →escalation-human
Regulatory Flag
ComplaintsManagementSystem.SetPriorityFlag on case.existingId with tag regulatory-legal-threat
- Continue to identity verification →identity-verification
Identity Verification
IdentityVerification.Verify using policy.number and policy.holderId
- Identity verified successfully verified →complaint-capture
- Identity cannot be verified after two attempts unverified →unverified-complaint-log
- Customer refuses to provide verification details refused →unverified-complaint-log
Complaint Capture
PolicyAdministrationSystem.GetRecord for policy.number
CRM.GetCustomerProfile for policy.holderId
CaseManagement.SearchExistingCases using policy.number and claim.referenceNumber
- Existing open case found matching this complaint duplicate →duplicate-case-update
- No existing case found, proceed to log new complaint no_duplicate →complaint-classification
- Complaint involves a protected or vulnerable customer flag customer.vulnerableFlag →vulnerable-customer-handling
Vulnerable Customer Handling
CRM.SetVulnerableFlag on policy.holderId
ComplaintsManagementSystem.SetPriorityFlag with tag vulnerable-customer
- Customer confirms preferred contact method, continue to classification →complaint-classification
- Customer requests specialist support or senior handler →escalation-human
Complaint Classification
- Classification complete, no escalation triggers identified classified →complaint-logging
- Classification reveals regulatory or legal risk not yet flagged legal_threat →regulatory-flag
- Classification reveals vulnerable customer indicator not yet flagged vulnerable →vulnerable-customer-handling
Duplicate Case Update
CaseManagement.UpdateCase on case.existingId with complaint.description and complaint.date
CRM.AddInteractionNote for policy.holderId with summary of call and updated complaint details
- Update complete, confirm timeframes with customer →regulatory-timeframe-confirmation
Complaint Logging
ComplaintsManagementSystem.CreateComplaint with policy.number, customer.name, complaint.description, complaint.category, complaint.date, claim.referenceNumber
CRM.AddInteractionNote for policy.holderId linking complaint.referenceNumber and complaint.category
- Complaint logged, proceed to confirm response timeframes →regulatory-timeframe-confirmation
Regulatory Timeframe Confirmation
kb.regulatory-response-timeframes — retrieve applicable acknowledgment and resolution deadlines based on complaint.category
- Customer has nothing further to add confirmed →resolution-confirmation
- Customer raises an additional concern or asks a follow-up question further_query →complaint-capture
- Customer requests a callback from a senior handler escalation_request →escalation-human
Unverified Complaint Log
ComplaintsManagementSystem.CreateUnverifiedComplaint with complaint.description, complaint.date, and a note that identity verification is pending
CRM.AddUnverifiedInteractionNote with complaint.description
- Unverified log complete →resolution-confirmation
Escalation to Human Agent
ComplaintsManagementSystem.SetPriorityFlag on complaint.referenceNumber with tag senior-handler-required
CRM.AddInteractionNote for policy.holderId with reason for escalation
CaseManagement.AssignToSeniorHandler and notify agent.seniorHandlerEmail
Resolution Confirmation
CRM.CloseInteraction for policy.holderId with outcome logged and complaint.referenceNumber attached

Complaint / Feedback Intake
Intake Greeting
- Patient provides name and date of birth →identity-verification
- Patient declines to provide identifying information →unverified-caller
- Patient immediately expresses significant distress →distressed-patient
Identity Verification
EHR.LookupPatient using patient.name and patient.dob
- Identity confirmed, patient record located in EHR verified →complaint-type-triage
- Identity cannot be confirmed after two attempts unverified →unverified-caller
- Patient becomes distressed during verification →distressed-patient
Complaint Type Triage
- Patient describes a potential safety event, clinical harm, abuse, or neglect safety-incident →safety-escalation
- Patient explicitly requests a patient advocate or administrator requests-advocate →escalation-human
- Patient describes a complaint about care quality, provider conduct, facility, or billing complaint →complaint-intake
- Patient is sharing positive or general feedback positive-feedback →commendation-intake
- Patient becomes emotionally distressed at any point distressed →distressed-patient
Distressed Patient
- Patient is ready to continue after acknowledgment ready →complaint-type-triage
- Patient remains highly distressed and requests to speak with someone senior requests-advocate →escalation-human
- Patient discloses a safety concern or harm during this exchange safety-incident →safety-escalation
Complaint Intake
EHR.GetPatientContext for patient.id to pre-populate known provider and visit history
- All key details collected — date, provider or department, nature, preferred contact →complaint-logging
- Patient cannot recall specific date or provider →complaint-logging
- Patient discloses details suggesting clinical harm or a safety event during intake safety-incident →safety-escalation
- Patient becomes distressed during intake →distressed-patient
Complaint Logging
GrievanceManagement.CreateCase with patient.id, patient.name, patient.dob, complaint.date, complaint.nature, complaint.provider, complaint.department, patient.preferredContact, case.priority
CRM.UpdatePatientRecord with case reference and feedback.type tagged as complaint
- Patient has no further questions →resolution-acknowledgment
- Patient raises an additional complaint or concern →complaint-intake
- Patient raises a safety concern at this stage safety-incident →safety-escalation
- Patient requests to speak with a patient advocate requests-advocate →escalation-human
Commendation Intake
CRM.LogFeedback with patient.id, patient.name, feedback.type tagged as commendation, and complaint.provider or complaint.department if provided
- Patient has nothing further to add →resolution-acknowledgment
- Patient also has a complaint to raise →complaint-intake
Unverified Caller
kb.patient-complaint-submission-policy — confirm current written complaint and in-person intake options
- Patient accepts alternative options and ends the call →resolution-acknowledgment
- Patient becomes distressed about inability to proceed →distressed-patient
- Patient discloses a safety concern despite being unverified safety-incident →safety-escalation
Safety Escalation
RiskReporting.CreateIncident tagged high-priority with patient.name, patient.dob, patient.id if verified, complaint.nature, complaint.date, complaint.provider, complaint.department
GrievanceManagement.CreateCase with case.priority set to high and flagged for clinical risk management review
SecureMessaging.NotifyClinicalRiskTeam with incident summary and complaint.referenceNumber
Escalation to Human Agent
CRM.UpdatePatientRecord with escalation flag and case summary
SecureMessaging.NotifyPatientAdvocate with patient.name, patient.id if verified, complaint.nature, and preferred contact patient.preferredContact
Resolution Acknowledgment

Claim Status Inquiry
Intake and Verification
CRM.LookupCustomer using customer.fullName and policy.number
IdentityVerification.Verify using customer.dateOfBirth or customer.ssnLast4 against policy.number
- Identity verified successfully verified →claim-record-lookup
- Identity verification fails or information does not match unverified →identity-failure
- Customer mentions legal action, complaint, or attorney representation escalation-intent →escalation-special-handling
Claim Record Lookup
ClaimsManagementSystem.GetClaim using claim.number or claim.dateOfLoss and policy.number
- Claims system returns record successfully →claim-triage
- Claims system is unavailable or returns an error system-down →system-unavailable
Claim Triage
- claim.litigationFlag or claim.attorneyFlag or claim.specialHandlingFlag is set special_handling →escalation-special-handling
- claim.fatalityFlag or major injury indicator is set major_injury →escalation-special-handling
- Claim status is denied denied →denial-status
- Claim status is approved, paid, under review, received, or closed standard_status →standard-status-delivery
Standard Status Delivery
PolicyAdministrationSystem.GetOutstandingItems for claim.number
- Outstanding action items exist for the customer items_outstanding →outstanding-items-review
- No outstanding items and claim is closed or paid →resolution-and-close
- No outstanding items and claim is still in progress →resolution-and-close
Outstanding Items Review
kb.claims-outstanding-items-guide — reference for explaining document or action requirements to policyholders
CRM.LogInteraction with claim.number, customer.fullName, outstanding items noted, preferred contact customer.preferredContact
- Customer requests follow-up summary TicketingPlatform.SendSummary to customer.preferredContact →resolution-and-close
- Customer has no further requests →resolution-and-close
Denial Status
kb.claims-appeals-process — retrieve current appeals eligibility window, required forms, and submission instructions
CRM.LogInteraction with claim.number, denial reason claim.denialReasonCode, appeals information provided
- Customer wants appeals information explained →appeals-guidance
- Customer expresses intent to file complaint or legal action escalation-intent →escalation-special-handling
- Customer declines appeals information and has no further questions →resolution-and-close
Appeals Guidance
kb.claims-appeals-process — confirm deadlines, required forms, and submission address or portal link
TicketingPlatform.SendAppealInstructions to customer.preferredContact with claim.number
CRM.LogInteraction with claim.number, appeals guidance provided, instructions sent to customer.preferredContact
- Customer has additional questions →resolution-and-close
- Customer has no further questions →resolution-and-close
Identity Failure
IdentityVerification.SendSecureLink to customer.preferredContact
CRM.LogInteraction with policy.number, identity verification failed, secure link sent
System Unavailable
TicketingPlatform.CreateInquiry with customer.fullName, policy.number, claim.number, claim.dateOfLoss, customer.preferredContact — generate ticket.referenceNumber
CRM.LogInteraction with ticket.referenceNumber, system unavailability noted, callback committed
Escalation — Special Handling
TicketingPlatform.CreatePriorityCase with customer.fullName, policy.number, claim.number, claim.specialHandlingFlag, claim.litigationFlag, claim.fatalityFlag, claim.attorneyFlag, escalation reason noted
CRM.LogInteraction with claim.number, escalation to special handling team, reason flagged
- Handoff package complete and specialist team notified escalation_ready →escalation-human
Escalation to Human Specialist
CRM.UpdateCase priority: high, assigned to claims-special-handling-team, ticket.referenceNumber noted
Resolution and Close
CRM.LogInteraction with claim.number, inquiry resolved, status communicated, no further action required
- Customer has additional questions or a new topic →intake-and-verification
- Customer confirms no further questions — interaction complete

Card Lost / Stolen Replacement
Intake
- Customer confirms card is lost confirmed →identity-verification
- Customer mentions unauthorized charges or suspected fraud fraud_concern →identity-verification-fraud
- Customer is unresponsive or unclear →identity-verification
Identity Verification
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes on first or second attempt verified →card-block
- Verification fails after multiple attempts failed →verification-failure
Identity Verification — Fraud Path
KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin
- Verification passes verified →card-block-fraud
- Verification fails after multiple attempts failed →verification-failure
Card Block
CardManagement.BlockCard for card.id
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked
Salesforce.CreateCase type: card-lost-stolen, linked to account.id
- Customer provides last seen details →address-confirmation
- Customer cannot recall details →address-confirmation
Card Block — Fraud Path
CardManagement.BlockCard for card.id
FraudDetection.FlagAccount on account.id tagged: unauthorized-transactions
CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked-fraud
Salesforce.CreateCase type: fraud-card-lost-stolen, priority: high, linked to account.id
- Proceed to address confirmation for replacement →address-confirmation-fraud
Address Confirmation
- Customer confirms existing address confirmed →replacement-issuance
- Customer requests a new or different address new_address →address-review
Address Confirmation — Fraud Path
- Customer confirms existing address confirmed →replacement-issuance-fraud
- Customer requests a new or different address new_address →address-review
Address Review
Salesforce.UpdateCase add: unrecognized-replacement-address, replacement.address, flagged-for-review
ShippingFulfillment.HoldOrder pending address verification on account.id
- Address approved approved →replacement-issuance
- Address flagged or rejected rejected →escalation-human
Replacement Issuance
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited
- Customer accepts standard delivery standard →replacement-standard
- Expedited requested but not eligible expedited →replacement-standard
Replacement Issuance — Fraud Path
ShippingFulfillment.CheckExpedited for account.id
- Customer requests expedited and delivery.expedited_eligible is true expedited →replacement-expedited-fraud
- Customer accepts standard delivery standard →replacement-standard-fraud
Replacement — Standard
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines digital card →resolution
Replacement — Expedited
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
- Customer wants digital card →digital-card-offer
- Customer declines →resolution
Replacement — Standard (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: standard
ShippingFulfillment.CreateShipment linked to account.id, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-standard, replacement.tracking_number
→escalation-fraud
Replacement — Expedited (Fraud Path)
CardManagement.IssueReplacementCard for account.id, ship to customer.address, method: expedited
ShippingFulfillment.CreateShipment linked to account.id, method: expedited, capture replacement.tracking_number
Salesforce.UpdateCase add: replacement-issued-expedited, replacement.tracking_number
→escalation-fraud
Digital Card Offer
- Digital card provisioned successfully provisioned →resolution
- Customer not eligible or provisioning fails ineligible →resolution
Verification Failure
Salesforce.CreateCase type: identity-verification-failure, priority: high, linked to account.id
Salesforce.LogNote add: customer-directed-to-branch, verification-failed
- Customer wants branch info →escalation-human
- Customer ends interaction →resolution-no-action
Escalation — Fraud Team
FraudDetection.OpenDisputeCase linked to account.id, flagged: unauthorized-transactions, transaction.unauthorized_flag
Salesforce.UpdateCase priority: high, tagged: fraud-escalation, dispute-opened
Slack.Notify to #fraud-ops with case summary, account.id, card.last4
Escalation — Human Agent
Salesforce.UpdateCase priority: high, tagged: manual-review-required
Slack.Notify to #card-services-review with case summary, account.id, customer.name
Resolution
Salesforce.CloseCase resolution: card-replaced, linked to account.id
Resolution — No Action Taken
Salesforce.CloseCase resolution: blocked-no-replacement-issued, linked to account.id

Cancellation / Retention
Intent Capture
CRM.LookupAccount on customer.accountNumber
- Identity verified successfully verified →account-review
- Identity cannot be confirmed after two attempts →escalation-human
Account Review
CRM.GetAccountDetails to load account.planName, account.contractStatus, account.contractEndDate, account.tenure
BillingSystem.GetBalance to load account.outstandingBalance and account.paymentHistory
ContractManagement.GetETF to load account.etfAmount
- Customer cites cost or billing concern reason-cost →retention-offer
- Customer cites service quality or technical issue reason-service →complaint-resolution
- Customer cites competitor offer or plan comparison reason-competitor →retention-offer
- Customer cites relocation or life change reason-life-change →retention-offer
- Customer gives no specific reason or says "just want to cancel" reason-firm →etf-disclosure-check
Complaint Resolution
CRM.CreateCase tagged service-complaint, linked to customer.accountNumber
- Complaint is resolvable and customer is receptive →retention-offer
- Complaint is complex or customer remains frustrated unresolved_complaint →escalation-human
ETF Disclosure Check
ContractManagement.GetETF to confirm account.etfAmount and account.contractStatus
- Account is within contract and ETF applies etf_applies →etf-disclosure
- Account is out of contract or no ETF no_etf →retention-offer
ETF Disclosure
- Customer acknowledges ETF and still wants to proceed etf-acknowledged →retention-offer
- Customer disputes the ETF amount or asks for a waiver etf-disputed →escalation-human
- Customer is surprised and wants time to think etf-reconsidering →retention-offer
Retention Offer
RetentionOfferEngine.GetEligibleOffers for customer.accountNumber, filtered by cancellation.reason, account.tenure, account.paymentHistory
- Suitable offer identified offer_ready →present-offer
- No eligible offers found no_offer →outstanding-balance-check
Present Offer
- Customer accepts the offer offer-accepted →offer-acceptance
- Customer asks for something better or different offer-counter →secondary-offer
- Customer declines and still wants to cancel offer-declined →outstanding-balance-check
Secondary Offer
RetentionOfferEngine.GetEligibleOffers ranked by value, excluding retention.offerId already presented
- A second distinct offer exists second_offer_available →present-second-offer
- No further offers available no_further_offers →outstanding-balance-check
Present Second Offer
- Customer accepts offer-accepted →offer-acceptance
- Customer declines or remains firm offer-declined →outstanding-balance-check
Offer Acceptance
RetentionOfferEngine.ApplyOffer for customer.accountNumber with retention.offerId
CRM.UpdateAccount with retention outcome and retention.offerId applied
Twilio.SendSMS to customer.phone confirming offer details and retention.offerExpiry
Twilio.SendEmail to customer.email with full offer confirmation and updated plan summary
Outstanding Balance Check
BillingSystem.GetBalance to confirm account.outstandingBalance
- Outstanding balance exists on account balance_owing →balance-disclosure
- No outstanding balance balance_clear →process-cancellation
Balance Disclosure
- Customer wants to discuss payment or sort balance first balance-resolve →escalation-human
- Customer acknowledges and confirms they want to proceed with cancellation balance-acknowledged →process-cancellation
- Customer becomes frustrated or disputes the balance balance-disputed →escalation-human
Process Cancellation
CRM.InitiateCancellation for customer.accountNumber
BillingSystem.CalculateFinalBill to return transaction.finalBillDate and any remaining charges
ContractManagement.ApplyETF if etf_applies is set on this session
CRM.UpdateAccount with cancellation status and reason cancellation.reason
- ETF applies on this account etf_applies →cancellation-confirmation-etf
- No ETF on this account no_etf →cancellation-confirmation-clean
Cancellation Confirmation — ETF
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, account.etfAmount, and balance summary
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Cancellation Confirmation — Clean
Twilio.SendEmail to customer.email with cancellation confirmation, transaction.finalBillDate, and any final balance details
Twilio.SendSMS to customer.phone with cancellation confirmation summary
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to customer.accountNumber
CRM.AddNote with full session summary: cancellation.reason, offers presented, ETF status, balance status
Twilio.SendSMS to customer.phone: "We're connecting you with a specialist who can assist further."

Booking Modification
Verify Customer
CRM.LookupCustomer using customer.name and booking.reference
- Customer provides valid reference and name, identity confirmed verified →retrieve-booking
- Customer cannot provide reference or name fails to match →identity-not-found
- Customer mentions a group booking or multi-leg itinerary →escalation-complex-booking
Identity Not Found
CRM.LookupByContact using customer.email or customer.phone
- Record found and customer confirmed verified →retrieve-booking
- Still no match after second attempt →escalation-complex-booking
Retrieve Booking
ReservationSystem.GetBooking using booking.reference
LoyaltyDB.GetCustomerTier using customer.name to resolve customer.loyaltyTier
- Customer wants to change dates change-dates →check-date-availability
- Customer wants to change room or cabin type change-room-type →check-room-availability
- Customer wants to update passenger or guest name change-name →process-name-change
- Customer requests multiple changes at once multiple-changes →escalation-complex-booking
- Booking was made through a third party third-party-booking →third-party-advisory
Check Date Availability
AvailabilityEngine.CheckDates using booking.reference and change.newDates
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Requested dates are available and rate is modifiable available →review-fare-difference
- Requested dates are available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Requested dates are unavailable unavailable →suggest-alternative-dates
Suggest Alternative Dates
AvailabilityEngine.GetNearestAvailable using booking.reference to resolve availability.nearestDates
- Customer accepts an alternative date →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over and call back defer →wrap-up-no-change
Check Room Availability
AvailabilityEngine.CheckRoomType using booking.reference and change.newRoomType
ReservationSystem.GetRateRules using booking.reference to evaluate booking.rateType
- Room type available and rate is modifiable available →review-fare-difference
- Room type available but rate is non-modifiable non-modifiable →non-modifiable-rate
- Room type unavailable unavailable →suggest-alternative-room
Suggest Alternative Room
AvailabilityEngine.GetAlternativeRooms using booking.reference
- Customer selects an alternative →review-fare-difference
- Customer declines all alternatives and wants to cancel cancel-request →cancellation-advisory
- Customer wants to think it over defer →wrap-up-no-change
Review Fare Difference
PaymentProcessor.CalculateDifference using booking.reference, change.newDates, change.newRoomType to resolve fare.difference and fee.modification
- Customer accepts the cost and confirms confirmed →apply-modification
- Customer disputes the modification fee disputes-fee →fee-waiver-review
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer declines and wants to keep original booking keep-original →wrap-up-no-change
Fee Waiver Review
LoyaltyDB.GetCustomerTier using customer.name to confirm customer.loyaltyTier
kb.goodwill-waiver-policy — check eligibility based on customer.loyaltyTier and fee.modification
- Agent determines fee is auto-waivable under loyalty or goodwill policy auto-waiver →apply-modification
- Agent determines fee waiver requires supervisor sign-off needs-approval →waiver-approval
- Agent determines fee is not waivable and customer still disputes disputed →escalation-fee-dispute
Waiver Approval
- Approved approved CRM.LogWaiverGranted →apply-modification
- Rejected rejected →fee-waiver-declined
- No response in 20 min →escalation-fee-dispute
Fee Waiver Declined
- Customer agrees to pay the fee confirmed →apply-modification
- Customer declines and wants to cancel cancel-request →cancellation-advisory
- Customer wants to keep original booking keep-original →wrap-up-no-change
- Customer escalates and demands supervisor escalate →escalation-fee-dispute
Process Name Change
kb.name-change-policy — verify permissible name change rules for booking.rateType
- Minor spelling correction permitted under policy minor-correction →apply-modification
- Full name transfer or legal name change required →escalation-complex-booking
Apply Modification
ReservationSystem.UpdateBooking with booking.reference, change.newDates, change.newRoomType, change.newPassengerName, change.requestedDetail
PaymentProcessor.ChargeBalance using booking.paymentMethod for fare.difference and any approved fee.modification
CRM.UpdateRecord for customer.name with new booking details
NotificationService.SendConfirmation to customer.email and customer.phone with updated itinerary
- Customer has additional requests more-changes →retrieve-booking
- Customer is satisfied and done done →wrap-up-confirmed
Non-Modifiable Rate
kb.cancellation-refund-policy — review applicable refund terms for booking.rateType
- Customer wants to explore cancellation and refund cancel-request →cancellation-advisory
- Customer wants to check same-rate rebooking availability rebook →check-date-availability
- Customer wants to keep original booking keep-original →wrap-up-no-change
Cancellation Advisory
kb.cancellation-refund-policy — retrieve applicable terms for booking.rateType and booking.currentDates
- Customer confirms cancellation confirmed →escalation-cancellation-processing
- Customer changes mind and wants to keep booking keep-original →wrap-up-no-change
- Customer disputes refund terms and demands exception dispute →escalation-fee-dispute
Third-Party Advisory
- Customer understands and has no further questions done →wrap-up-no-change
- Customer disagrees and insists we process it anyway disputes →escalation-complex-booking
Wrap-Up — No Change Made
CRM.LogInteraction for customer.name with outcome: no modification made
Wrap-Up — Change Confirmed
CRM.LogInteraction for customer.name with outcome: modification successful
Escalation — Complex Booking
CRM.CreateCase priority: high, tagged complex-modification, linked to booking.reference
Slack.Notify to #reservations-complex with case summary, booking.reference, and customer.name
Escalation — Fee Dispute
CRM.CreateCase priority: high, tagged fee-dispute, linked to booking.reference
Slack.Notify to #reservations-supervisors with customer.name, booking.reference, fee.modification, and dispute summary
Escalation — Cancellation Processing
CRM.CreateCase priority: normal, tagged cancellation-request, linked to booking.reference
ReservationSystem.InitiateCancellation using booking.reference
NotificationService.SendCancellationSummary to customer.email with refund terms and timeline

Billing Inquiry / Dispute
Greeting and Identity Verification
IdentityVerification.LookupAccount using customer.accountNumber or customer.phoneNumber
IdentityVerification.Verify using customer.pin, customer.dob, or customer.ssn4
- Identity verified successfully verified →inquiry-intake
- Identity verification fails after two attempts unverified →identity-failure
- Customer is unable to provide any credentials →identity-failure
Identity Failure
CaseManagement.LogContact note: identity verification failed, customer redirected
- Customer agrees to visit store or reset online →resolution-no-account-access
- Customer wants to escalate or is upset frustrated →escalation-human
Resolution — No Account Access
Inquiry Intake
CRM.PullAccount for customer.accountNumber, load customer.name, billing.previousCredits, billing.accountBalance
BillingSystem.FetchBillDetail for billing.cycleAffected
- Customer identifies a specific charge or line item →charge-review
- Customer is generally confused about the total bill amount →full-bill-walkthrough
- Customer mentions they never received a notification about a plan or rate change →plan-change-review
- Customer sounds upset or frustrated before details are gathered frustrated →emotional-acknowledgment
Emotional Acknowledgment
- Customer settles and is ready to continue neutral →inquiry-intake
- Customer remains highly agitated or begins demanding a supervisor escalating →escalation-human
Full Bill Walkthrough
BillingSystem.FetchBillDetail for billing.cycleAffected
kb.telecom-billing-line-item-guide — review standard line items, taxes, and surcharge descriptions
- Customer identifies a specific charge after walkthrough →charge-review
- Customer accepts the explanation confirmed →resolution-explained
- Customer remains confused or disputes a line →charge-review
Plan Change Review
BillingSystem.FetchPlanChangeHistory for customer.accountNumber
kb.telecom-plan-change-notification-policy — verify whether advance notice was required and sent
- Notification was sent and change was valid →charge-review
- No notification found and change was applied without notice notification-missing →error-confirmed
- Customer disputes they authorized the change →charge-review
Charge Review
BillingSystem.FetchChargeDetail for billing.chargeDate, billing.chargeDescription, billing.chargeAmount
kb.telecom-billing-policy — check overage rules, promo expiration terms, and adjustment eligibility
- Charge is valid and explainable →explanation-delivery
- Billing error confirmed error-confirmed →error-confirmed
- Charge is outside the 90-day policy adjustment window →outside-policy-window
- Usage or account pattern suggests possible fraud fraud-suspected →escalation-human
- Billing system is unavailable or returns an error system-down →billing-system-down
Explanation Delivery
kb.telecom-billing-policy — reference relevant policy language for promo expiration, overages, or rate changes
- Customer accepts the explanation confirmed →resolution-explained
- Customer disputes the explanation or asks for a supervisor unsatisfied →escalation-human
- Customer accepts but asks for a goodwill credit →goodwill-credit-evaluation
Error Confirmed
BillingSystem.FetchAccountBalance to confirm current billing.accountBalance and billing.previousCredits
- Error amount is within agent authorization threshold within-auth →credit-issuance
- Error amount exceeds agent.authLimit exceeds-auth →escalation-human
Outside Policy Window
kb.telecom-goodwill-credit-policy — check goodwill credit eligibility and authorized limit
- Customer accepts goodwill credit offer →goodwill-credit-evaluation
- Customer rejects and requests further escalation →escalation-human
Goodwill Credit Evaluation
- Goodwill credit is appropriate and within limits approved →credit-issuance
- Credit was already issued recently or customer is ineligible ineligible →escalation-human
Credit Issuance
CreditAdjustmentModule.IssueCredit for credit.amount, linked to customer.accountNumber and billing.cycleAffected
BillingSystem.FetchAccountBalance to confirm updated billing.accountBalance post-credit
CRM.LogInteraction note: credit of credit.amount issued, reason, billing cycle, and agent ID
- Customer is satisfied and has no further questions confirmed →resolution-credit-issued
- Customer has an additional question or concern →inquiry-intake
Billing System Down
CaseManagement.CreateCase priority: normal, note: billing inquiry pending system restoration, link customer.accountNumber
CaseManagement.GenerateReferenceNumber assign to case.referenceNumber
CRM.LogContact note: billing system unavailable, case created, reference case.referenceNumber
- Customer confirms callback or email preference →resolution-callback-scheduled
- Customer is upset about the delay frustrated →emotional-acknowledgment
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered, reason, dispute amount billing.chargeAmount, account customer.accountNumber
CaseManagement.CreateCase priority: high, linked to customer.accountNumber, billing.chargeDescription, billing.chargeAmount
Resolution — Charge Explained
CRM.LogInteraction note: billing inquiry resolved via explanation, no credit issued
Resolution — Credit Issued
CRM.LogInteraction note: billing dispute resolved, credit issued, customer confirmed satisfied
Resolution — Callback Scheduled
CRM.LogInteraction note: callback or email follow-up scheduled, system outage, reference case.referenceNumber

Beneficiary / Policy Detail Update
Intake and Change Request
CRM.LookupPolicy using customer.fullName and customer.policyNumber
- Policy record found, proceed to verification →identity-verification
- Policy record not found or mismatch →policy-not-found
Policy Not Found
- Customer provides corrected details CRM.LookupPolicy retry →identity-verification
- Customer cannot locate their policy number →escalation-human
Identity Verification
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified on first or second attempt verified →change-type-collection
- First attempt fails, prompt retry retry →identity-retry
- Second attempt fails identity_failed →identity-lockout
Identity Retry
IdentityVerification.Verify using customer.dateOfBirth, customer.ssnLast4, customer.securityPin against customer.policyNumber
- Identity verified verified →change-type-collection
- Second attempt also fails identity_failed →identity-lockout
Identity Lockout
CRM.LogEvent tag: identity-verification-failure, policy: customer.policyNumber
CRM.CreateCase priority: high, tag: id-lockout-policy-change
- Customer requests written instructions CRM.SendEmail template: id-lockout-instructions to customer.email →escalation-human
- Customer declines →escalation-human
Change Type Collection
- Customer wants to update a beneficiary beneficiary-change →beneficiary-detail-collection
- Customer wants to update address, name, or contact info contact-or-name-change →contact-detail-collection
- Customer mentions a death in relation to the beneficiary change death-related →bereavement-sensitive-path
- Request involves a disputed beneficiary or legal document such as a court order legal-dispute →escalation-human
Beneficiary Detail Collection
PolicyAdmin.GetCurrentBeneficiary for customer.policyNumber
- New beneficiary details collected, no death involved →form-requirement-check
- Customer indicates they are removing a beneficiary following a death →bereavement-sensitive-path
Bereavement Sensitive Path
CRM.FlagCase tag: bereavement-sensitivity, policy: customer.policyNumber
- Customer has or will submit death certificate →form-requirement-check
- Customer cannot provide documentation at this time CRM.CreateFollowUpTask deadline: 30-days, policy: customer.policyNumber →pending-form-followup
Contact Detail Collection
PolicyAdmin.GetPolicyDetails for customer.policyNumber
- Customer provides the new detail clearly →direct-update-check
- Customer is changing their legal name, supporting documentation may be required →form-requirement-check
Direct Update Check
- Simple contact update, no form required no_form_needed →apply-direct-update
- Legal name or document-required change form_required →form-requirement-check
Form Requirement Check
kb.policy-change-requirements — check whether a wet signature, e-signature form, or supporting document is legally required for policy.changeType
- E-signature form is sufficient ESignature.SendForm template: change-of-beneficiary to customer.email →esignature-pending
- Wet signature or physical document required →wet-signature-required
- No form required, change can be processed directly →apply-direct-update
E-Signature Pending
ESignature.SendForm to customer.email, linked to customer.policyNumber
CRM.CreateFollowUpTask tag: esignature-pending, deadline: 7-days, policy: customer.policyNumber
- Customer confirms they received and completed the form →apply-direct-update
- Customer cannot complete the form now →pending-form-followup
- No response or form not returned within deadline CRM.EscalateTask →escalation-human
Wet Signature Required
DocumentManagement.GenerateForm template: beneficiary-change-form, policy: customer.policyNumber
CRM.SendEmail template: wet-signature-instructions, attachment: change-form to customer.email
CRM.CreateFollowUpTask tag: wet-signature-pending, deadline: 30-days, policy: customer.policyNumber
- Customer acknowledges and will return the form →pending-form-followup
- Customer cannot return the form within the deadline →pending-form-followup
Pending Form Follow-up
CRM.CreateFollowUpTask tag: pending-change-form, deadline: 30-days, policy: customer.policyNumber
CRM.SendEmail template: pending-change-reminder to customer.email
- Customer has additional questions →escalation-human
- Customer is satisfied →resolution-confirmed
Apply Direct Update
- Customer confirms the details are correct →save-policy-update
- Customer requests a correction →change-type-collection
Save Policy Update
PolicyAdmin.SaveChange policy: customer.policyNumber, change: update.newDetail
CRM.UpdateRecord policy: customer.policyNumber, tag: policy-detail-updated
DocumentManagement.LogChange policy: customer.policyNumber, agent: Insurance Support Agent
- Save successful save_success →confirmation-and-close
- System unavailable or save error system_down →system-unavailable
System Unavailable
CRM.CreateManualLog details: update.newDetail, policy: customer.policyNumber, tag: manual-change-request
CRM.GenerateCaseReference -> case.referenceNumber
CRM.ScheduleCallback within: 1-business-day, contact: customer.phone
→resolution-confirmed
Confirmation and Close
CRM.SendEmail template: policy-change-confirmation, policy: customer.policyNumber to customer.email
- Customer has another request →change-type-collection
- Customer is done →resolution-confirmed
Resolution Confirmed
CRM.CloseCase policy: customer.policyNumber, status: resolved
Escalation to Human Agent
CRM.CreateCase priority: high, tag: policy-change-escalation, policy: customer.policyNumber
CRM.NotifyTeam channel: #policy-ops-escalations, details: customer.policyNumber

Appointment Scheduling
Patient Intake
EHR.LookupPatient using patient.fullName and patient.dateOfBirth
- Patient record found and identity confirmed verified →appointment-intent
- Patient record not found or details do not match →identity-retry
- Patient describes urgent or emergent symptoms at any point →escalation-clinical
Identity Retry
EHR.LookupPatient retry with corrected input
- Record found on second attempt verified →appointment-intent
- Still no match after retry →escalation-human
Appointment Intent
- Patient wants to book a new appointment book →insurance-verification
- Patient wants to reschedule an existing appointment reschedule →reschedule-lookup
- Patient wants to cancel an appointment cancel →cancel-lookup
- Patient describes urgent or emergent symptoms →escalation-clinical
Insurance Verification
InsuranceEligibilityAPI.VerifyEligibility using patient.insurance.provider and patient.insurance.memberId
kb.insurance-eligibility-policy — check referral requirements for appointment.type
- Insurance verified, no referral required eligible →gather-preferences
- Insurance verified, referral required and on file eligible referral_present →gather-preferences
- Insurance verified, referral required but not on file referral_missing →referral-hold
- Insurance verification fails or returns inactive coverage ineligible →insurance-unverified
- Patient has no insurance or declines to provide →self-pay-offer
Self-Pay Offer
kb.selfpay-rates — retrieve selfpay.rate for appointment.type
- Patient agrees to self-pay confirmed →gather-preferences
- Patient wants to contact insurer first callback →intake-close-callback
- Patient is unsure →escalation-human
Insurance Unverified
- Patient wants self-pay rates →self-pay-offer
- Patient wants to wait and call back →intake-close-callback
- Patient wants to escalate or is frustrated →escalation-human
Referral Hold
SchedulingModule.HoldSoftReservation for patient.fullName, appointment.type, appointment.preferredDates
- Patient agrees to soft hold confirmed CRM.CreateTask referral-pending note →intake-close-referral
- Patient does not want a hold →intake-close-callback
- Patient says referral is already submitted →escalation-human
Gather Preferences
EHR.GetProviderList filtered by appointment.preferredLocation and appointment.type
- Preferences collected, preferred provider specified →slot-search-provider
- Preferences collected, no provider preference →slot-search-open
Slot Search — Provider Preference
SchedulingModule.GetAvailableSlots for appointment.preferredProvider, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences for preferred provider →slot-no-match
Slot Search — Open Availability
SchedulingModule.GetAvailableSlots for appointment.preferredLocation, appointment.preferredDates, appointment.preferredTimes, appointment.type
- Matching slots found →slot-selection
- No slots match preferences →slot-no-match
Slot Selection
PatientPortal.DisplaySlots or read aloud up to three options from appointment.selectedSlot candidates
- Patient selects a slot confirmed →booking-confirmation
- Patient wants to hear more options →slot-search-open
- Patient wants to go on a waitlist instead →waitlist-enrollment
- Patient changes their mind and wants to cancel the process →intake-close-callback
Slot No Match
SchedulingModule.GetNextAvailable for appointment.type, appointment.preferredLocation
- Patient accepts next closest slot confirmed →booking-confirmation
- Patient wants waitlist →waitlist-enrollment
- Patient wants to try different dates or times →gather-preferences
Waitlist Enrollment
SchedulingModule.AddToWaitlist patient.fullName, appointment.type, appointment.preferredProvider, appointment.preferredDates
CRM.UpdateRecord waitlist status for patient.fullName
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Booking Confirmation
SchedulingModule.BookAppointment for patient.fullName, appointment.selectedSlot, appointment.type, appointment.preferredProvider
CRM.UpdateRecord appointment booked, appointment.confirmationNumber
Twilio.SendSMS to patient.phone: "Your appointment is confirmed for appointment.selectedSlot. Confirmation number: appointment.confirmationNumber. Reply CANCEL to cancel or call us to make changes."
Twilio.SendEmail to patient.email with appointment details, preparation instructions, and location or telehealth link
- Patient has another request →appointment-intent
- Patient is done →intake-close-complete
Reschedule Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
- Appointment found →reschedule-preferences
- Appointment not found →escalation-human
Reschedule Preferences
SchedulingModule.CancelAppointment for appointment.existingId
SchedulingModule.GetAvailableSlots for updated appointment.preferredDates, appointment.preferredTimes, appointment.type, appointment.preferredProvider
- New slots found →slot-selection
- No slots match new preferences →slot-no-match
Cancel Lookup
SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth
kb.cancellation-policy — check short-notice window and applicable cancellation.fee for appointment.selectedSlot
- Appointment found, cancellation outside short-notice window →cancel-confirm
- Appointment found, cancellation within short-notice window short_notice →cancel-fee-notice
- Appointment not found →escalation-human
Cancel Fee Notice
- Patient confirms cancellation despite fee confirmed →cancel-confirm
- Patient wants to reschedule instead →reschedule-preferences
- Patient disputes the fee or wants to escalate →escalation-human
Cancel Confirm
SchedulingModule.CancelAppointment for appointment.existingId
CRM.UpdateRecord cancellation logged for patient.fullName
Twilio.SendSMS to patient.phone: "Your appointment has been cancelled. Confirmation: appointment.confirmationNumber. Contact us to rebook."
Twilio.SendEmail to patient.email with cancellation confirmation
- Patient wants to book a new appointment →appointment-intent
- Patient is done →intake-close-complete
Intake Close — Callback
CRM.UpdateRecord contact reason, outcome pending callback, patient.fullName
Intake Close — Referral Pending
CRM.UpdateRecord soft hold active, referral pending, patient.fullName
Intake Close — Complete
CRM.UpdateRecord interaction complete, outcome successful, patient.fullName
Escalation — Clinical
CRM.CreateCase priority: urgent, tagged clinical-escalation, patient.fullName
Twilio.NotifyOnCall clinical triage staff with patient name and reported symptoms
Escalation — Human Agent
CRM.CreateCase priority: high, tagged scheduling-escalation, patient.fullName, interaction summary
Twilio.TransferCall or route chat to live scheduling specialist queue

Amenity / Service Request
Greet and Identify
- Guest provides name and room number confirmed →verify-reservation
- Guest expresses urgency or frustration upfront frustrated →priority-flag
- Guest message is unclear or incomplete unclear →greet-and-identify
Verify Reservation
PMS.LookupReservation by guest.roomNumber and guest.name to confirm reservation.status
- Active reservation found, room matches confirmed →capture-request
- Room number not found or name mismatch unverified →secondary-verification
- Reservation is checked out or future-dated inactive →reservation-mismatch
Secondary Verification
PMS.LookupReservation by guest.reservationId as fallback
- Identity confirmed on second attempt confirmed →capture-request
- Identity still cannot be confirmed unverified →escalation-human
Reservation Mismatch
- Guest believes it is an error →escalation-human
- Guest acknowledges wrong room or wrong stay →greet-and-identify
Capture Request
kb.amenity-catalog — check available items, standard fees, and any quantity limits per room type
- Guest states item or service clearly confirmed →check-availability
- Guest is unsure what is available unclear →suggest-options
- Guest raises a safety or accessibility concern safety →escalation-human
Suggest Options
- Guest selects an item or service confirmed →check-availability
- Guest still uncertain, requests human assistance unclear →escalation-human
Check Availability
HousekeepingDispatch.CheckInventory for request.item against current stock and department capacity
- Item is available and no fee applies available →confirm-and-dispatch
- Item is available with an associated fee fee_required →disclose-fee
- Item is unavailable or out of stock unavailable →offer-alternative
- Request is a late checkout or policy-bound service →policy-check
Disclose Fee
- Guest accepts the fee confirmed →confirm-and-dispatch
- Guest declines the fee declined →offer-alternative
- Guest disputes the fee frustrated →escalation-human
Policy Check
kb.hotel-stay-policies — check late checkout availability, occupancy level, and any blackout conditions for reservation.checkoutDate
- Late checkout is available within policy window available →confirm-and-dispatch
- Hotel is at full occupancy or request falls outside policy window unavailable →policy-limitation
Policy Limitation
- Guest accepts the alternative confirmed →confirm-and-dispatch
- Guest requests a manager or fee waiver escalate →escalation-human
- Guest declines and has no further requests declined →resolution-close
Offer Alternative
- Suitable alternative identified and guest accepts confirmed →confirm-and-dispatch
- Guest declines all alternatives declined →escalation-human
Confirm and Dispatch
HousekeepingDispatch.CreateTicket for request.item to room guest.roomNumber, urgency request.urgency, notes request.notes — returns dispatch.ticketId and dispatch.eta
CRM.LogInteraction for guest.reservationId tagged amenity-request, linked to dispatch.ticketId
- Guest confirms and has nothing further confirmed →resolution-close
- Guest has an additional request additional →capture-request
- Guest expresses dissatisfaction with the expected wait time frustrated →priority-flag
Priority Flag
HousekeepingDispatch.EscalateTicket for dispatch.ticketId, set priority: urgent — returns updated dispatch.eta
CRM.LogInteraction for guest.reservationId tagged priority-escalation
- Re-dispatch confirmed and guest is satisfied confirmed →resolution-close
- Guest remains dissatisfied after re-dispatch frustrated →escalation-human
Escalation to Human Agent
CRM.LogInteraction for guest.reservationId tagged escalation, with full request context and dispatch.ticketId
GuestMessaging.NotifyStaff to #guest-services-ops with guest.name, guest.roomNumber, request.item, and reason for escalation
Resolution / Close
CRM.LogInteraction for guest.reservationId tagged resolved, linked to dispatch.ticketId

Size / Fit / Product Recommendation
Opening
CRM.LookupCustomer by customer.id or session identity to pre-load customer.purchaseHistory and any saved preferences.
- Customer wants sizing or fit help for a specific item size-help →collect-item-and-measurements
- Customer is comparing two or more products compare →product-comparison
- Customer is unsure what they need / browsing browsing →discover-needs
- Customer mentions a previous bad fit or return past-issue →review-past-purchase
Collect Item and Measurements
ProductCatalog.GetProduct to load product.category, product.attributes, and product.sizeGuide for the item the customer mentioned.
- Customer provides measurements has-measurements →run-size-lookup
- Customer doesn't know measurements or is unsure no-measurements →guide-self-measure
- Customer mentions they are between sizes between-sizes →between-sizes-advice
Guide Self-Measure
kb.self-measure-guide — retrieve step-by-step measurement instructions relevant to product.category
- Customer provides measurements after guide has-measurements →run-size-lookup
- Customer still can't measure or prefers not to skip-measure →recommend-size-up
- Customer wants to escalate or speaks with frustration frustrated →escalation-specialist
Between Sizes Advice
kb.sizing-policy — check brand fit philosophy (relaxed, true-to-size, runs small/large) for product.id
- Customer prefers snug fit snug →run-size-lookup
- Customer prefers relaxed fit relaxed →run-size-lookup
- Customer is still unsure unsure →recommend-size-up
Recommend Size Up
→run-size-lookup
Run Size Lookup
SizingGuideDB.MatchSize using customer.measurements, customer.preferences.fitStyle, and product.sizeGuide to generate recommendation.primary.
InventoryManagement.CheckStock for recommendation.primary in product.id to confirm product.stockStatus and product.availableSizes.
- Size is in stock in-stock →present-recommendation
- Size is out of stock out-of-stock →out-of-stock-handling
- Lookup error or ambiguous result lookup-error →escalation-specialist
Present Recommendation
- Customer is ready to add to cart ready-to-buy →add-to-cart
- Customer wants to see an alternative or compare wants-options →present-alternate
- Customer has more questions more-questions →answer-questions
- Customer expresses strong uncertainty or frustration frustrated →escalation-specialist
Present Alternate
ProductCatalog.GetAlternates using product.id, customer.preferences.budget, and customer.preferences.fitStyle to generate recommendation.alternate.
InventoryManagement.CheckStock for recommendation.alternate.
- Customer selects primary recommendation chose-primary →add-to-cart
- Customer selects alternate recommendation chose-alternate →add-to-cart
- Customer wants more comparison detail compare-detail →product-comparison
- Customer is stuck or frustrated frustrated →escalation-specialist
Product Comparison
ProductCatalog.GetProduct for each product the customer is comparing, loading product.attributes for both.
kb.product-comparison-guides — retrieve any curated head-to-head notes for these items.
- Customer is ready to choose and buy ready-to-buy →add-to-cart
- Customer wants sizing checked on one of the options size-help →collect-item-and-measurements
- Customer still undecided still-undecided →present-alternate
- Customer frustrated or overwhelmed frustrated →escalation-specialist
Discover Needs
- Customer provides enough detail to proceed sufficient-detail →collect-item-and-measurements
- Customer provides partial detail partial-detail →collect-item-and-measurements
- Customer is very unclear or disengaged disengaged →escalation-specialist
Review Past Purchase
CRM.GetPurchaseHistory for customer.id to retrieve customer.purchaseHistory including prior sizes, items, and any returns or exchanges.
kb.return-reason-codes — look up fit-related return notes linked to customer.id if available.
- Customer is happy with the adjusted recommendation accepts-advice →run-size-lookup
- Customer wants to explore a different product entirely different-product →discover-needs
- Customer is frustrated about the past experience frustrated →escalation-specialist
Out-of-Stock Handling
InventoryManagement.GetAvailableAlternates for product.id filtered by recommendation.primary size and customer.preferences.budget to find nearest in-stock alternative.
InventoryManagement.GetRestockDate for recommendation.primary in product.id if available.
- Customer wants the waitlist option wants-waitlist →join-waitlist
- Customer wants the in-stock alternative wants-alternate →present-alternate
- Customer wants to check other sizes check-other-sizes →run-size-lookup
- Customer frustrated or wants to leave frustrated →escalation-specialist
Join Waitlist
InventoryManagement.AddToWaitlist for customer.email on product.id in size recommendation.primary.
- Customer wants to keep browsing keep-browsing →discover-needs
- Customer is done done →resolution
- Customer wants to add the alternate to cart instead wants-alternate →add-to-cart
Answer Questions
kb.product-faq — retrieve relevant FAQs for product.id covering fabric, care, returns, sizing tolerances, and fit philosophy.
- Customer asks about fabric, care, or material material-question →answer-questions
- Customer asks about returns or exchanges returns-question →answer-questions
- Customer is satisfied and ready to buy ready-to-buy →add-to-cart
- Customer wants a different recommendation different-option →present-alternate
- Customer frustrated or escalating frustrated →escalation-specialist
Add to Cart
EcommerceCart.AddItem with product.id, recommendation.primary, and customer.id to add the confirmed selection.
- Customer wants to keep shopping keep-shopping →discover-needs
- Customer is done and happy done →resolution
- Customer has a cart or checkout issue cart-issue →escalation-specialist
Escalation to Specialist
CRM.CreateCase for customer.id tagged fit-escalation, logging all collected preferences, measurements, and conversation context.
Resolution

Service Activation / New Line Setup
Identity Verification
CRM.LookupAccount using account.holder_name and account.id
CRM.VerifyPIN against account.pin
- Identity verified on first or second attempt confirmed →eligibility-check
- Identity fails first attempt unconfirmed CRM.LogVerificationAttempt →secondary-verification
- Fraud flag raised on account fraud_flag →escalation-fraud
- Identity fails after two attempts verification_failed →escalation-identity
Secondary Verification
CRM.VerifySecondaryIdentity using account.billing_address and account.payment_method
- Secondary verification passes confirmed →eligibility-check
- Secondary verification fails unconfirmed →escalation-identity
Eligibility Check
BillingPlatform.CheckEligibility for account.id
- Account is eligible for a new line eligible →device-and-sim-collection
- Account has outstanding balance or restrictions ineligible →eligibility-resolution
Eligibility Resolution
BillingPlatform.GetAccountStatus for account.id
- Customer agrees to resolve balance now confirmed BillingPlatform.ProcessPayment →device-and-sim-collection
- Customer wants to handle it later or disputes the hold declined →escalation-billing
Device and SIM Collection
SIMIMEIProvisioning.ValidateIMEI using device.imei
SIMIMEIProvisioning.ValidateSIM using sim.number
- IMEI and SIM both valid confirmed →plan-selection
- IMEI is blacklisted or incompatible imei_flagged →device-issue
- SIM number is unrecognized or already active sim_invalid →sim-issue
Device Issue
kb.compatible-device-catalog — retrieve compatible device options and current upgrade promotions for account.id
- Customer wants to use a different device confirmed →device-and-sim-collection
- Customer wants to explore upgrade or purchase options interested →escalation-device-upgrade
- Customer wants to end the interaction declined →resolution-closed
SIM Issue
kb.sim-replacement-policy — check eligibility for a new SIM
- Customer can obtain or activate a replacement SIM confirmed →device-and-sim-collection
- Issue requires physical store visit or mailed SIM store_required →escalation-store-referral
Plan Selection
kb.plan-catalog — retrieve available plans, pricing, and promotional offers for account.id
- Customer selects a plan confirmed →number-selection
- Customer is unsure or wants more information undecided →plan-recommendation
Plan Recommendation
- Customer selects a plan after recommendation confirmed →number-selection
- Customer still undecided or wants to call back deferred →resolution-deferred
- Customer declines all plans declined →resolution-closed
Number Selection
- Customer wants a new number assigned new_number CarrierNetworkAPI.AssignNumber for account.id →payment-processing
- Customer wants to port an existing number port_in →port-in-collection
Port-In Collection
NumberPortabilityDB.ValidatePortRequest using port.number, port.carrier, port.account_number, port.pin
- Port request validated and eligible confirmed →port-in-initiated
- Port request rejected or information mismatch invalid →port-in-issue
Port-In Initiated
NumberPortabilityDB.SubmitPortRequest for port.number linked to account.id
CarrierNetworkAPI.AssignTemporaryNumber for account.id
- Temporary number assigned and port submitted confirmed →payment-processing
- Port submission fails due to carrier-side issue port_error →escalation-porting
Port-In Issue
- Customer provides corrected details confirmed →port-in-collection
- Customer is unable to provide correct details unconfirmed →escalation-porting
- Customer prefers to take a new number instead new_number →payment-processing
Payment Processing
PaymentProcessor.ChargeActivationFee of plan.activation_fee to account.payment_method
- Payment succeeds payment_success →line-provisioning
- Payment declines payment_declined →payment-retry
Payment Retry
kb.installment-eligibility — check if account.id qualifies for installment plan on activation fee
- Customer provides alternate payment method alternate_payment PaymentProcessor.ChargeActivationFee →line-provisioning
- Customer qualifies for and accepts installment option installment_approved BillingPlatform.SetupInstallment →line-provisioning
- Customer declines all payment options declined →resolution-payment-abandoned
Line Provisioning
CarrierNetworkAPI.ProvisionLine for account.id with sim.number, device.imei, plan.selected
CRM.UpdateAccount with line.assigned_number and new line details
BillingPlatform.AddLineToAccount for account.id with plan.selected
- Line provisioned successfully line_active →activation-confirmation
- Provisioning error returned by network provisioning_error →escalation-provisioning
Activation Confirmation
- Customer confirms call or data is working confirmed →resolution-success
- Customer reports no signal or data issues not_working →activation-troubleshooting
Activation Troubleshooting
CarrierNetworkAPI.CheckLineStatus for line.assigned_number
SIMIMEIProvisioning.VerifyProvisioningStatus for sim.number
- Network confirms line is active and issue resolves resolved →resolution-success
- Line status shows error or provisioning incomplete provisioning_error →escalation-provisioning
- Issue persists despite active line status unresolved →escalation-technical
Escalation — Identity Verification Failed
CRM.LogFailedVerification for account.id with verification.attempts
CRM.CreateTicket tagged identity-verification-failed, linked to account.id
Escalation — Fraud Flag
CRM.FlagAccountForReview tagged fraud, for account.id
CRM.CreateTicket priority: high, tagged fraud-flag, linked to account.id
Escalation — Billing or Eligibility
CRM.CreateTicket tagged billing-hold, linked to account.id
Escalation — Device Upgrade
CRM.CreateTicket tagged device-upgrade-referral, linked to account.id
Escalation — Store Referral
CRM.CreateTicket tagged sim-store-referral, linked to account.id
Escalation — Porting Issue
CRM.CreateTicket priority: high, tagged port-in-escalation, linked to account.id, including port.number and port.carrier
Escalation — Provisioning Error
CRM.CreateTicket priority: high, tagged provisioning-error, linked to account.id and line.assigned_number
Escalation — Technical Support
CRM.CreateTicket tagged device-technical-issue, linked to account.id and line.assigned_number
Resolution — Success
CRM.CloseTicket for account.id tagged activation-complete
Resolution — Deferred
CRM.SaveSessionState for account.id with plan.selected and device.imei
Resolution — Payment Abandoned
CRM.SaveSessionState for account.id with plan.selected and line.assigned_number tagged payment-pending
Resolution — Closed
CRM.LogInteraction for account.id tagged activation-not-completed

Returns / Exchange Request
Intake
- Customer provides order ID and email →order-verification
- Customer says they don't have their order ID no_order_id →order-lookup-fallback
- Customer immediately states item is damaged or wrong damaged_wrong →damaged-wrong-item
Order Lookup Fallback
CRM.LookupOrder by customer.name or customer.email or lookup.method
- Order found →order-verification
- Order not found after lookup CRM.LogAttempt →escalation-human
Order Verification
OrderManagement.GetOrder using order.id and customer.email
kb.return-exchange-policy — confirm return window, final sale rules, and eligible items for order.purchaseDate
- Order verified and item is within return window →reason-and-preference
- Order verified but item is outside return window outside_window →outside-return-window
- Order verified and item is marked final sale final_sale →final-sale-ineligible
- Order cannot be verified after attempts →escalation-human
Reason and Preference
- Customer states reason and wants a refund wants_refund →refund-path
- Customer states reason and wants an exchange wants_exchange →exchange-path
- Customer is unsure — offer both options Say: "I can process either a full refund back to your original payment method or place a new exchange order — whichever works best for you." →reason-and-preference
Refund Path
- Refund is eligible and amount is within auto-approve threshold approved →generate-return-label
- Refund amount exceeds threshold high_value →refund-approval
- Item flagged as ineligible based on stated reason ineligible →policy-exception-check
Generate Return Label
ReturnsManagement.CreateReturnShipment for item.sku linked to order.id
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, return instructions, and expected refund timeline
→resolution
Exchange Path
ReturnsManagement.CheckEligibility for item.sku and order.id
OrderManagement.CheckInventory for the requested replacement item
- Replacement item is in stock →place-exchange-order
- Replacement item is out of stock Say: "Unfortunately the item you requested isn't available right now. I can set up a refund instead, or hold the exchange until it's restocked — which would you prefer?" →reason-and-preference
- Item is ineligible for exchange ineligible →policy-exception-check
Place Exchange Order
OrderManagement.CreateExchangeOrder linked to order.id, capture exchange.orderId
ReturnsManagement.CreateReturnShipment for original item.sku
ShippingCarrier.GenerateLabel and capture return.label
EmailNotification.Send to customer.email with return.label, exchange.orderId, and exchange confirmation details
→resolution
Refund Approval
- Approved approved →generate-return-label
- Rejected rejected →escalation-human
- No response within 30 min →escalation-human
Damaged or Wrong Item
OrderManagement.GetOrder using order.id and customer.email
CRM.LogIssue tagged damaged-or-wrong, linked to order.id
- Low value order — waive return and reship immediately OrderManagement.CreateReplacementOrder EmailNotification.Send →resolution
- Higher value order — request photo evidence then reship evidence_required Say: "Could you reply with a photo of the item? Once I have that I'll get a replacement out to you right away." →damaged-evidence-review
- Ambiguous or high-risk needs_review →escalation-human
Damaged Evidence Review
OrderManagement.CreateReplacementOrder linked to order.id
ReturnsManagement.WaiveReturn for item.sku
EmailNotification.Send to customer.email with replacement order confirmation and apology note
→resolution
Outside Return Window
kb.return-exchange-policy — check goodwill store credit eligibility for borderline cases
- Purchase is borderline outside window (within 7 days past deadline) — offer store credit as goodwill gesture Say: "As a one-time courtesy, I'd be happy to offer you store credit for the value of the item. Would that work for you?" →goodwill-store-credit
- Purchase is well outside window — explain policy firmly outside_window_firm Say: "Unfortunately I'm not able to make exceptions beyond our standard window, but I'd love to help you with anything else." →resolution
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Goodwill Store Credit
ReturnsManagement.IssueStoreCredit for order.total linked to customer.email
EmailNotification.Send to customer.email with store credit amount and redemption instructions
CRM.LogNote tagged goodwill-credit, linked to order.id
→resolution
Final Sale Ineligible
kb.return-exchange-policy — confirm no exceptions apply for final sale items
- Customer accepts the policy →resolution
- Customer reports the item arrived damaged or wrong damaged_wrong →damaged-wrong-item
- Customer disputes and is highly dissatisfied highly_dissatisfied →escalation-human
Policy Exception Check
- Exception applies — proceed with return or exchange →generate-return-label
- No exception — inform customer and offer alternative support →final-sale-ineligible
- Requires manager judgment needs_review →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged returns-escalation, linked to order.id and customer.email
Slack.Notify to #returns-escalations with case summary, order.id, order.total, and return.reason
Resolution
CRM.UpdateCase status: resolved, linked to order.id

Product Availability / Stock Inquiry
Gather Product Details
- Customer provides a clear product name or SKU product-identified →gather-variant-details
- Customer gives a vague or partial description product-unclear →clarify-product
- Customer is already frustrated or mentions previous failed lookup frustrated →escalation-human
Clarify Product
- Customer provides enough detail to identify the product product-identified →gather-variant-details
- Customer still cannot identify the product product-unclear ProductCatalog.Search to surface closest matches →suggest-alternatives
- Customer expresses frustration frustrated →escalation-human
Gather Variant Details
- Customer provides variant and prefers in-store pickup in-store →gather-location
- Customer provides variant and prefers online online →check-online-inventory
- Customer has no variant preference and prefers in-store in-store →gather-location
- Customer has no variant preference and prefers online online →check-online-inventory
- Customer is flexible on channel flexible →check-online-inventory
Gather Location
- Customer provides zip code or store name location-provided StoreLocator.FindNearestStores using customer.zipCode →check-store-inventory
- Customer cannot provide location location-unknown →check-online-inventory
- Customer expresses frustration frustrated →escalation-human
Check Online Inventory
InventoryManagement.GetOnlineStock for product.sku, variant product.variant.size, product.variant.color
- Online stock confirmed available in-stock →confirm-online-availability
- Online stock is zero or unavailable out-of-stock →check-store-inventory
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Check Store Inventory
InventoryManagement.GetStoreStock for product.sku at customer.preferredStore, variant product.variant.size, product.variant.color
- Stock confirmed at preferred or nearest store in-stock →confirm-store-availability
- In-stock only at a distant store distant-stock →offer-ship-or-transfer
- Out of stock at all nearby stores and online out-of-stock →check-discontinued
- Lookup returns no data or an error lookup-error →inventory-lookup-failure
Confirm Online Availability
CRM.LogInteraction tagged availability-confirmed-online, linked to product.sku
- Customer wants a link SendEmail or SendSMS with product URL to customer.email or customer.phone →resolution
- Customer is satisfied and needs nothing else confirmed →resolution
- Customer mentions price match, special hold, or bulk quantity special-request →escalation-human
Confirm Store Availability
CRM.LogInteraction tagged availability-confirmed-store, linked to product.sku
- Customer wants to reserve the item wants-reservation InventoryManagement.PlaceHold for product.sku at store.name →reservation-confirmed
- Customer is satisfied and will go to the store confirmed →resolution
- Customer requests price match, special hold, or bulk quantity special-request →escalation-human
- Customer expresses frustration frustrated →escalation-human
Reservation Confirmed
CRM.LogInteraction tagged reservation-placed, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Offer Ship or Transfer
InventoryManagement.CheckShipFromStore for product.sku at store.name
InventoryManagement.CheckTransferEligibility for product.sku
- Ship-from-store is available and customer agrees ship-available InventoryManagement.InitiateShipFromStore →ship-from-store-confirmed
- Transfer to closer store is available and customer prefers pickup transfer-available InventoryManagement.InitiateTransfer →transfer-initiated
- Neither option is available or customer declines both declined →check-discontinued
- Customer requests special handling or bulk quantity special-request →escalation-human
Ship From Store Confirmed
CRM.LogInteraction tagged ship-from-store-initiated, linked to product.sku
- Customer is satisfied confirmed →resolution
- Customer has another question follow-up →gather-product-details
Transfer Initiated
CRM.UpdateContactInfo with customer.email, customer.phone
CRM.LogInteraction tagged transfer-requested, linked to product.sku
- Customer provides contact info contact-provided →resolution
- Customer declines contact info declined →resolution
Check Discontinued
ProductCatalog.CheckDiscontinuedStatus for product.sku
- Product is confirmed discontinued discontinued →product-discontinued
- Product is not discontinued but broadly out of stock out-of-stock →offer-restock-notification
Product Discontinued
ProductCatalog.GetSimilarItems for product.sku
- Customer wants to see alternatives wants-alternatives →suggest-alternatives
- Customer does not want alternatives declined →resolution
- Customer is upset about the discontinuation frustrated →escalation-human
Offer Restock Notification
- Customer agrees to restock alert confirmed RestockNotification.Subscribe with product.sku, customer.email, customer.phone →restock-signup-confirmed
- Customer declines and wants to see similar items wants-alternatives →suggest-alternatives
- Customer declines all options declined →resolution
Restock Signup Confirmed
CRM.LogInteraction tagged restock-alert-registered, linked to product.sku
- Customer has another question follow-up →gather-product-details
- Customer is satisfied confirmed →resolution
Suggest Alternatives
- Suitable alternatives found and customer is interested alternatives-found →present-alternatives
- No suitable alternatives found or customer declines no-match →resolution
- Customer expresses frustration or demands a manager frustrated →escalation-human
Present Alternatives
- Customer selects an alternative and wants to check availability selected →check-online-inventory
- Customer wants to know more about an alternative wants-details ProductCatalog.GetProductDetails →present-alternatives
- Customer declines all alternatives declined →resolution
- Customer expresses frustration frustrated →escalation-human
Inventory Lookup Failure
CRM.LogSystemError with lookup.errorCode, product.sku, tagged inventory-lookup-failure
- Customer is okay with the workaround confirmed →resolution
- Customer is frustrated or wants further help frustrated →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged availability-escalation, linked to product.sku, customer.name
CRM.LogInteraction tagged escalated-to-human
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to product.sku

Prescription Refill Request
Patient Verification
PatientIdentityVerification.LookupPatient using patient.fullName and patient.dateOfBirth
- Identity verified successfully verified →prescription-lookup
- Identity cannot be confirmed after two attempts unverified →escalation-human
- Patient reports urgent clinical concern or adverse reaction urgent →escalation-clinical
Prescription Lookup
Epic.GetPrescriptionRecord using patient.memberId, prescription.name, prescription.dosage
- Prescription found, refills remaining and not expired →pharmacy-confirmation
- Prescription found, no refills remaining no_refills →no-refills-remaining
- Prescription found but expired expired →prescription-expired
- Prescription flagged as controlled substance controlled →escalation-clinical
- Prescription not found in record →escalation-human
Pharmacy Confirmation
- Patient confirms pharmacy on file confirmed →submit-refill-request
- Patient requests a different pharmacy change_pharmacy →update-pharmacy
- Patient is unresponsive or unclear →escalation-human
Update Pharmacy
Epic.UpdatePreferredPharmacy with pharmacy.name and pharmacy.address
CRM.UpdatePatientRecord with updated pharmacy.name
→submit-refill-request
Submit Refill Request
Surescripts.SendRefillRequest for prescription.name prescription.dosage to pharmacy.name on behalf of patient.memberId
CRM.LogInteraction with patient.memberId, prescription.name, pharmacy.name
- Patient has another request another →patient-verification
- Patient confirms they are done done →resolution-confirmed
No Refills Remaining
Epic.SendRefillAuthorizationRequest to prescription.prescriberId for patient.memberId and prescription.name
CRM.LogInteraction with patient.memberId, note: refill authorization requested, no refills remaining
- Patient indicates urgent medical need urgent →escalation-clinical
- Patient acknowledges and is satisfied acknowledged →resolution-pending-authorization
Prescription Expired
CRM.LogInteraction with patient.memberId, note: prescription expired, appointment recommended
- Patient wants to schedule an appointment schedule →appointment-scheduling
- Patient declines and has no urgent need decline →resolution-no-action
- Patient reports an urgent clinical concern urgent →escalation-clinical
Appointment Scheduling
Epic.InitiateAppointmentRequest for patient.memberId with prescription.prescriberId
CRM.LogInteraction with patient.memberId, note: appointment scheduling initiated for expired prescription
- Appointment request successfully initiated scheduled →resolution-appointment-booked
- Scheduling system unavailable unavailable →escalation-human
Escalation to Clinical Staff
Epic.CreateClinicalAlert priority: high, patient.memberId, prescription.name, prescription.isControlled
CRM.CreateCase tagged: clinical-escalation, controlled-substance, linked to patient.memberId
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: refill-escalation, linked to patient.memberId, prescription.name
Resolution — Confirmed
CRM.LogInteraction with patient.memberId, note: refill successfully submitted, case closed
Resolution — Pending Authorization
CRM.LogInteraction with patient.memberId, note: patient informed of pending provider authorization
Resolution — Appointment Booked
CRM.LogInteraction with patient.memberId, note: appointment booked for expired prescription renewal
Resolution — No Action
CRM.LogInteraction with patient.memberId, note: patient declined appointment scheduling, no refill action taken

Policy Renewal Reminder / Confirmation
Renewal Outreach
Twilio.SendSMS to customer.phone: "Hi customer.name, your policy policy.number is due for renewal on policy.renewal_date. Your updated premium is policy.renewal_premium. Reply CONFIRM to renew, CHANGE to update coverage, or call us to speak with an agent."
Twilio.SendEmail to customer.email with full renewal notice including policy.coverage_summary, policy.renewal_premium, and policy.expiry_deadline.
- Customer responds CONFIRM or calls to confirm renewal confirmed →identity-verification
- Customer responds CHANGE or requests a coverage update change_coverage →identity-verification
- Customer calls or replies to dispute the premium amount dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response within 5 days Twilio.SendSMS follow-up reminder, then →renewal-outreach-followup
Renewal Outreach Follow-up
Twilio.SendSMS to customer.phone: "Reminder: your policy policy.number expires on policy.expiry_deadline. Please confirm your renewal to avoid a lapse in coverage. Reply CONFIRM or call us."
Twilio.SendEmail to customer.email with final renewal warning and policy.expiry_deadline highlighted.
- Customer responds or calls to confirm confirmed →identity-verification
- Customer responds or calls to dispute or change dispute_premium →identity-verification
- Customer calls or replies with intent not to renew cancel_intent →identity-verification
- No response before expiry deadline CRM.LogNoResponse, flag policy for lapse review →escalation-lapse-review
Identity Verification
PolicyManagement.VerifyIdentity using customer.dob and customer.ssn_last4 against policy.number
- Identity verified successfully identity_verified →policy-review
- Identity cannot be verified after two attempts identity_failed →escalation-human
Policy Review
PolicyManagement.GetPolicyDetails for policy.number to load policy.coverage_summary, policy.current_premium, policy.renewal_premium, and policy.renewal_date.
BillingPlatform.GetAccountBalance for policy.number to check billing.outstanding_balance.
- Customer has an outstanding balance and billing.outstanding_balance is greater than zero balance_due →outstanding-balance-resolution
- Customer's intent was to dispute the premium dispute_premium →premium-dispute
- Customer's intent was to change coverage change_coverage →coverage-change-request
- Customer's intent was to cancel cancel_intent →cancellation-intent
- No outstanding balance and customer is ready to confirm renewal confirmed →renewal-confirmation
Outstanding Balance Resolution
BillingPlatform.GetPaymentOptions for policy.number
- Customer agrees to pay balance in full now →payment-processing
- Customer agrees to a payment plan and plan is within policy limits payment_plan_arranged →renewal-confirmation
- Customer refuses to pay or situation is too complex for self-service balance_unresolved →escalation-billing
Premium Dispute
UnderwritingEngine.GetRateChangeFactors for policy.number
kb.rate-change-explanations — retrieve standard explanations for common rate change drivers
- Customer accepts the explanation and is ready to renew accepted →renewal-confirmation
- Customer wants to explore lower-cost coverage tiers explore_options →coverage-change-request
- Customer formally disputes the rate and wants an official review formal_dispute →escalation-underwriting
- Customer still intends to cancel after explanation cancel_intent →cancellation-intent
Coverage Change Request
CRM.LogCoverageChangeRequest for policy.number with customer's requested modifications.
- Requested changes are within auto-approval parameters changes_approved →renewal-confirmation
- Requested changes require underwriter review needs_underwriter →escalation-underwriting
- Customer decides not to change coverage after all and wants to renew as-is confirmed →renewal-confirmation
Cancellation Intent
- Price is the concern price_concern →premium-dispute
- Coverage or service concern coverage_concern →coverage-change-request
- Customer is switching to another insurer switching_insurer →retention-offer
- Customer confirms firm decision to cancel after retention scripting firm_cancel →cancellation-logging
Retention Offer
kb.retention-offers — look up eligible discounts, bundling options, and loyalty incentives for policy.number
CRM.LogRetentionAttempt for policy.number
- Customer accepts a retention offer and agrees to renew retention_accepted →renewal-confirmation
- Customer declines all offers and confirms cancellation intent firm_cancel →cancellation-logging
- Situation is complex or customer is very high value high_value_at_risk →escalation-retention
Cancellation Logging
PolicyManagement.LogNonRenewalIntent for policy.number with cancellation reason.
CRM.UpdateCustomerRecord with non-renewal status and reason code.
DocumentDelivery.SendNonRenewalConfirmation to customer.email.
Renewal Confirmation
- Customer confirms existing payment method use_existing_payment →payment-processing
- Customer wants to update payment method update_payment →payment-method-update
- Customer wants to schedule payment for a later date schedule_payment →payment-scheduling
Payment Method Update
BillingPlatform.UpdatePaymentMethod for policy.number
- Payment method updated successfully payment_updated →payment-processing
- Payment method update fails or customer has trouble payment_update_failed →escalation-billing
Payment Scheduling
BillingPlatform.SchedulePayment for policy.number on customer's chosen date
- Payment successfully scheduled payment_scheduled →renewal-complete
- Requested date is after expiry deadline date_invalid →escalation-billing
Payment Processing
BillingPlatform.ProcessPayment for policy.number using billing.payment_method for policy.renewal_premium.
- Payment processed successfully payment_success →renewal-complete
- Payment declined or failed payment_failed →escalation-billing
Renewal Complete
PolicyManagement.ConfirmRenewal for policy.number and generate renewal.confirmation_number.
DocumentDelivery.SendRenewalConfirmation to customer.email with updated policy documents, policy.renewal_premium, and renewal.confirmation_number.
CRM.UpdateCustomerRecord with renewal status and renewal.confirmation_number.
Escalation — Human Agent
CRM.CreateCase priority: high, reason: identity-verification-failure, linked to policy.number.
Twilio.NotifyAgent on #renewal-support-queue with case summary and policy.number.
Escalation — Underwriting Review
CRM.CreateCase priority: high, reason: underwriting-review-required, linked to policy.number.
UnderwritingEngine.SubmitReviewRequest for policy.number with supporting details and customer's stated concerns.
Twilio.NotifyAgent on #underwriting-queue with case summary.
Escalation — Billing
CRM.CreateCase priority: high, reason: billing-issue, linked to policy.number.
Twilio.NotifyAgent on #billing-support-queue with case summary, billing.outstanding_balance, and policy.renewal_date.
Escalation — Retention Specialist
CRM.CreateCase priority: urgent, reason: high-value-cancellation-risk, linked to policy.number.
CRM.FlagForRetentionSpecialist for policy.number.
Twilio.NotifyAgent on #retention-team with customer summary, policy.renewal_premium, and cancellation reason.
Escalation — Lapse Review
PolicyManagement.FlagPolicyForLapse for policy.number.
CRM.CreateCase priority: high, reason: no-response-lapse-risk, linked to policy.number.
Twilio.SendSMS to customer.phone: "Urgent: your policy policy.number has not been renewed and is at risk of lapsing on policy.expiry_deadline. Please call us immediately to avoid a gap in coverage."

Plan Change / Upgrade Request
Identity Verification
CRM.LookupAccount using customer.accountNumber or customer.phone
- Account found and identity confirmed verified →account-review
- Account not found or customer cannot verify identity unverified →escalation-human
- Customer wants to browse plans before verifying intent_browse →plan-discovery
Account Review
CRM.GetAccountDetails for customer.accountNumber — pull customer.currentPlan, customer.contractEndDate, customer.billingCycleDate, customer.deviceModel, customer.location
PlanCatalog.GetEligiblePlans for customer.accountNumber, customer.deviceModel, customer.location
- Plans retrieved successfully →plan-discovery
- No eligible plans returned or catalog error catalog_error →escalation-human
Plan Discovery
kb.plan-catalog — present eligible options with pricing, data allowances, speeds, and feature highlights relevant to customer.currentPlan
- Customer selects a specific plan plan_selected →plan-confirmation
- Customer asks about a promotion or discount promo_inquiry →promotion-check
- Customer's preferred plan is incompatible with device or location incompatible →compatibility-resolution
- Customer is unsure and wants time to decide undecided →follow-up-scheduling
- Customer mentions wanting to cancel instead cancel_intent →escalation-human
Promotion Check
PlanCatalog.GetPromotions for customer.accountNumber
kb.promotions-policy — verify eligibility criteria for active promotions against customer.currentPlan and customer.contractEndDate
- Valid promotion found and auto-applicable promo_valid CRM.ApplyPromotion with promotion.code →plan-confirmation
- Promotion exists but requires manager approval promo_needs_approval →promotion-approval
- No eligible promotion found →plan-confirmation
Promotion Approval
- Approved approved CRM.ApplyPromotion with promotion.code →plan-confirmation
- Rejected rejected Say: "I wasn't able to apply that specific promotion, but I can still offer you our best available rate." →plan-confirmation
- No response in 20 min →escalation-human
Compatibility Resolution
PlanCatalog.GetCompatibleAlternatives for customer.deviceModel, customer.location
kb.device-compatibility-policy — review alternatives against customer.currentPlan to identify closest feature and pricing match
- Compatible alternative found and customer accepts alt_accepted →plan-confirmation
- Customer rejects all alternatives and escalates frustration frustrated →escalation-human
- Customer wants to upgrade device to access desired plan device_upgrade_intent →escalation-human
Plan Confirmation
PlanCatalog.CalculateProration for customer.accountNumber, plan.selected, customer.billingCycleDate — return plan.proratedAmount, plan.effectiveDate, plan.monthlyCost
ContractDB.CheckContractTerms for customer.accountNumber, customer.contractEndDate — check for early change fee fee.earlyChange
- No contract fee applies and customer confirms confirmed →apply-plan-change
- Contract change fee applies →contract-fee-review
- Customer wants to reconsider or go back reconsider →plan-discovery
- Customer declines and threatens cancellation cancel_intent →escalation-human
Contract Fee Review
kb.contract-terms-policy — confirm fee calculation and waiver eligibility for customer.accountNumber
- Customer accepts fee and wants to proceed today fee_accepted →apply-plan-change
- Customer prefers a future effective date future_date →schedule-future-change
- Customer disputes the fee or feels it should be waived fee_dispute →escalation-human
- Customer wants to cancel instead of paying the fee cancel_intent →escalation-human
Schedule Future Change
BillingPlatform.SchedulePlanChange for customer.accountNumber, plan.selected, effective: customer.contractEndDate
CRM.UpdateAccountNotes with scheduled change details, case.id
- Change scheduled successfully →confirmation-notification
- Scheduling fails system_error →billing-system-error
Apply Plan Change
BillingPlatform.ApplyPlanChange for customer.accountNumber, plan.selected, effective: plan.effectiveDate, proration: plan.proratedAmount
- Plan change applied successfully →confirmation-notification
- System returns error on first attempt system_error BillingPlatform.RetryPlanChange →apply-plan-change-retry
- Customer threatens cancellation during wait cancel_intent →escalation-human
Apply Plan Change Retry
BillingPlatform.RetryPlanChange for customer.accountNumber, plan.selected
- Retry successful →confirmation-notification
- Retry also fails system_error_final →billing-system-error
Billing System Error
CRM.CreateCase priority: high, tagged: plan-change-system-error, linked to customer.accountNumber
CRM.UpdateAccountNotes with plan.selected, plan.monthlyCost, plan.effectiveDate, error details
NotificationService.SendEmail to customer.email confirming the logged request and manual resolution timeline
- Case logged and customer is satisfied satisfied →resolution
- Customer is frustrated and demands immediate resolution or escalation frustrated →escalation-human
Confirmation Notification
NotificationService.SendSMS to customer.phone with plan change summary, plan.selected, plan.effectiveDate, plan.monthlyCost
NotificationService.SendEmail to customer.email with full confirmation details and updated plan terms
CRM.UpdateAccountNotes with completed plan change, plan.selected, plan.effectiveDate
→resolution
Follow-up Scheduling
CRM.CreateFollowUpTask for customer.accountNumber, note: plans discussed, follow-up within 48 hours
CRM.UpdateAccountNotes with plan.selected, customer preference notes
- Follow-up scheduled successfully →resolution
- Customer decides to proceed after all plan_selected →plan-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged: plan-change-escalation, linked to customer.accountNumber
Slack.Notify to #plan-change-escalations with customer.accountNumber, customer.currentPlan, plan.selected, escalation reason
Resolution

Payment / Billing Inquiry
Intake & Verification
- Customer provides booking confirmation and identity details CRS.LookupReservation →charge-identification
- Customer cannot provide confirmation number but provides name and email CRS.LookupByGuestEmail →charge-identification
- Customer cannot provide any identifying information →identity-verification-required
Identity Verification Required
- Customer supplies one or more valid identifiers CRS.LookupReservation →charge-identification
- Customer is still unable to verify identity →escalation-human
Charge Identification
PMS.GetPaymentHistory for booking.confirmationNumber
kb.billing-charge-definitions — review resort fees, late checkout policies, cancellation penalty rules, and incidental hold release timelines
- Charge found and matches a known fee type →charge-explanation
- Charge appears duplicated or does not match any reservation line item possible_error →billing-error-review
- Customer references a charge not visible in payment history PaymentGateway.LookupTransaction →charge-identification-extended
- Customer explicitly states the charge is unauthorized or fraudulent fraud_flag →escalation-fraud
Charge Identification — Extended Lookup
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
kb.billing-charge-definitions — verify against settlement timing and pending-to-posted conversion windows
- Transaction located and matched to reservation →charge-explanation
- Transaction located but cannot be matched to any booking possible_error →billing-error-review
- Transaction not found in gateway records →escalation-human
Charge Explanation
- Customer accepts the explanation and is satisfied →resolution-confirmed
- Customer accepts the explanation but requests an itemized receipt PMS.SendReceipt to customer.email →resolution-confirmed
- Customer disputes the charge as unfair but it is policy-valid →goodwill-options
- Customer believes the charge is a billing error possible_error →billing-error-review
Goodwill Options
kb.goodwill-adjustment-policy — check eligible goodwill gestures (loyalty points, partial waiver, future discount) and current authorization limits for agent.adjustmentLimit
- Goodwill offer made and customer accepts RefundAdjustmentTool.ApplyPartialWaiver, PMS.SendReceipt to customer.email →resolution-confirmed
- Goodwill offer made and customer accepts loyalty points LoyaltyPlatform.AwardPoints to loyalty.accountNumber →resolution-confirmed
- Customer declines goodwill options and insists on full refund of a valid non-refundable charge →escalation-human
- Adjustment amount required exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
Billing Error Review
PMS.GetPaymentHistory for booking.confirmationNumber
PaymentGateway.LookupTransaction using payment.last4, charge.amount, charge.date
- Error confirmed and within adjustment authorization RefundAdjustmentTool.InitiateCorrection, Salesforce.CreateCase →correction-initiated
- Error confirmed but correction amount exceeds agent.adjustmentLimit exceeds_limit →escalation-billing-specialist
- No error found — charge is valid →charge-explanation
Correction Initiated
Salesforce.CreateCase tagged billing-correction, linked to booking.confirmationNumber
PMS.SendReceipt to customer.email with updated billing summary
- Customer asks about a refund they already expected to have received →refund-status-check
- Customer is satisfied with the resolution →resolution-confirmed
Refund Status Check
PaymentGateway.LookupTransaction using payment.last4, refund.amount, refund.date
kb.refund-processing-timelines — check standard bank processing windows by payment type
- Customer confirms they will wait and is satisfied →resolution-confirmed
- Refund date was over 10 business days ago and still not received PaymentGateway.InitiateRefundTrace →escalation-human
- Customer disputes the refund amount as incorrect possible_error →billing-error-review
Escalation to Billing Specialist
Salesforce.CreateCase priority: high, tagged billing-specialist-review, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-specialist-team with case summary, charge.amount, charge.description, customer.email
Escalation to Human Agent
Salesforce.CreateCase priority: high, tagged billing-escalation, linked to booking.confirmationNumber
Salesforce.NotifyQueue billing-support-team with full case context, charge.amount, charge.date, customer.email
Escalation — Fraud
Salesforce.CreateCase priority: urgent, tagged unauthorized-charge-fraud, linked to booking.confirmationNumber
PaymentGateway.FlagTransaction for charge.amount on payment.last4
Salesforce.NotifyQueue fraud-and-security-team with transaction details, customer.email, booking.confirmationNumber
Resolution Confirmed
Salesforce.UpdateCase status: resolved, linked to booking.confirmationNumber

Password / Login Recovery
Intake — Login Issue
- Customer states forgotten password or cannot log in forgotten-password →identity-verification
- Customer states account appears locked or suspended account-locked →account-status-check
- Customer states they did not initiate any lockout or suspects unauthorised access unauthorised-access →escalation-fraud-review
- Issue is unclear or customer is unsure unclear CRM.LogInteraction, ask one clarifying question →identity-verification
Identity Verification
CRM.PullCustomerRecord using customer.registeredEmail or customer.accountNumber
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
- Identity confirmed on first or second attempt identity-confirmed →account-status-check
- Identity fails first attempt identity-failed-once CRM.IncrementAttemptCount, prompt retry →identity-verification-retry
- Account already shows two or more failed attempts max-attempts-reached →escalation-identity-lockout
Identity Verification — Retry
IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN
CRM.IncrementAttemptCount
- Identity confirmed on retry identity-confirmed →account-status-check
- Identity fails again on retry identity-failed-twice →escalation-identity-lockout
Account Status Check
CoreBanking.GetAccountStatus for customer.accountNumber
FraudMonitoring.CheckFraudFlag for customer.accountNumber
- Account is clear with no flags or locks account-clear →contact-info-check
- Account is locked due to repeated failed login attempts account-locked-cooldown →cooldown-notice
- Account is flagged for suspicious or fraudulent activity fraud-flag-active →escalation-fraud-review
- Account status is suspended or otherwise restricted account-suspended →escalation-account-review
Contact Info Check
CRM.VerifyContactInfo for customer.registeredEmail and customer.registeredPhone
- Registered email or phone confirmed current by customer contact-confirmed →mfa-challenge
- Customer states contact info is outdated or no longer accessible contact-outdated →escalation-manual-id-verification
MFA Challenge
MFAOTP.SendCode to customer.registeredEmail or customer.registeredPhone based on reset.linkDeliveryMethod
- Customer provides correct OTP code otp-valid →password-reset-initiation
- Customer provides incorrect code otp-invalid →escalation-mfa-failure
- Customer states they did not receive the code otp-not-received MFAOTP.ResendCode, confirm delivery method →mfa-challenge
- Customer states the contact they received it on is not theirs otp-wrong-contact →escalation-fraud-review
Password Reset Initiation
CoreBanking.InitiatePasswordReset for customer.accountNumber
EmailSMSDelivery.SendResetLink to customer.registeredEmail or customer.registeredPhone
- Customer confirms new password set and login successful access-restored →resolution-access-confirmed
- Customer states link expired or not received link-expired EmailSMSDelivery.ResendResetLink →password-reset-initiation
- Customer states they are still unable to log in after reset reset-failed →escalation-account-review
Cooldown Notice
CoreBanking.GetCooldownStatus for customer.accountNumber
- Customer acknowledges and agrees to wait customer-accepts-cooldown →resolution-cooldown-advised
- Customer states they did not make those login attempts customer-denies-attempts →escalation-fraud-review
Resolution — Access Confirmed
CRM.LogInteraction tagged password-reset-successful, linked to customer.accountNumber
CoreBanking.ClearLockStatus for customer.accountNumber
Resolution — Cooldown Advised
CRM.LogInteraction tagged cooldown-in-effect, linked to customer.accountNumber
Escalation — Identity Lockout
CoreBanking.LockAccount for customer.accountNumber
CRM.CreateCase priority: high, tagged identity-verification-failed, linked to customer.accountNumber
CRM.LogInteraction tagged max-attempts-reached
Escalation — Fraud Review
CoreBanking.FreezeAccount for customer.accountNumber
FraudMonitoring.EscalateCase for customer.accountNumber, flag: suspicious-activity
CRM.CreateCase priority: high, tagged fraud-review-required, linked to customer.accountNumber
CRM.LogInteraction tagged fraud-flag-escalation
Escalation — Manual ID Verification
CRM.CreateCase priority: medium, tagged outdated-contact-info-manual-review, linked to customer.accountNumber
CRM.LogInteraction tagged contact-info-outdated-escalation
Escalation — MFA Failure
CRM.CreateCase priority: medium, tagged mfa-failure-escalation, linked to customer.accountNumber
CRM.LogInteraction tagged otp-verification-failed
Escalation — Account Review
CRM.CreateCase priority: medium, tagged account-status-restricted, linked to customer.accountNumber
CRM.LogInteraction tagged account-review-escalation

Order Status Inquiry
Greeting & Identity Verification
IdentityVerification.VerifyCustomer using customer.accountEmail and customer.name
- Identity verified, order number provided verified →order-lookup
- Customer cannot provide order number no_order_number →lookup-by-email
- Identity cannot be verified after two attempts →escalation-human
Order Lookup by Email or Name
OMS.LookupOrderByEmail using customer.accountEmail or customer.name
- Order found OMS.LookupOrderByEmail order_found →order-lookup
- Order still not found after email and name search not_found →order-not-found
Order Not Found
- Customer provides order number from confirmation email →order-lookup
- Customer has no confirmation email and order remains unresolved →escalation-human
Order Lookup & Status Check
OMS.GetOrderDetails using order.id and customer.accountEmail
- Order is still processing, has not shipped yet processing →order-still-processing
- Order has shipped, tracking number available shipped →retrieve-tracking
- Order shows as delivered in OMS delivered →delivered-not-received-check
Order Still Processing
- Customer is satisfied and has no further questions confirmed →resolution
- Customer wants to know if the ship date can be expedited expedite_request →escalation-human
- Customer wants to cancel the unshipped order cancel_request →escalation-human
Retrieve Tracking Data
CarrierAPI.GetTrackingStatus using carrier.trackingNumber
- Live tracking data returned, last scan within 48 hours tracking_current →communicate-status
- Tracking has not updated in more than 72 hours tracking_stale →stale-tracking
Communicate Status
- Customer is satisfied confirmed →resolution
- Customer has a concern about the delivery address or timing address_concern →escalation-human
Stale Tracking
kb.shipping-delay-policy — review thresholds for carrier claim eligibility and customer communication guidelines
- Within acceptable delay window, advise customer to wait within_window →stale-tracking-advisory
- Delay exceeds policy threshold, carrier claim warranted claim_warranted →escalation-human
Stale Tracking Advisory
- Customer is willing to wait confirmed →resolution
- Customer wants to escalate now escalate_now →escalation-human
Delivered But Not Received Check
- Customer confirms receipt confirmed →resolution
- Customer says package was not received not_received →lost-package-review
- Customer is unsure — may have been left with a neighbor or in a safe spot unsure →delivery-location-check
Delivery Location Check
- Customer finds the package confirmed →resolution
- Customer confirms the package is truly not there not_received →lost-package-review
Lost Package Review
OMS.FlagOrderLostPackage on order.id
CRM.CreateCase tagged lost-package, linked to order.id and carrier.trackingNumber
kb.lost-package-policy — review carrier liability window, replacement vs. refund eligibility, and documentation requirements
- Package confirmed lost or stolen, or customer is requesting refund or replacement →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged order-escalation, linked to order.id
CRM.LogInteractionSummary with customer.email, order.id, and current status context
Resolution
- Customer has another question another_question →greeting-and-identity
- Customer is done confirmed CRM.LogInteractionSummary with customer.email and order.id

New Account Onboarding
Intent Capture
- Customer requests a personal account type (checking, savings, investment) personal-account →info-collection
- Customer requests a business or trust account business-or-trust-account →specialist-routing
- Customer is unsure or needs guidance unsure →account-type-guidance
Account Type Guidance
kb.account-types-overview — retrieve product descriptions, minimum balance requirements, and eligibility criteria
- Customer selects a personal account type personal-account →info-collection
- Customer still wants a business or trust account business-or-trust-account →specialist-routing
- Customer wants to end the conversation end-session →session-close
Info Collection
CRM.CreateDraftRecord to initialize a draft customer profile
kb.minimum-deposit-requirements — validate customer.initialDepositAmount and customer.fundingSource eligibility
- All required fields collected and deposit method is supported fields-complete →identity-verification
- Funding method is unsupported or deposit is below the minimum funding-issue →funding-issue-resolution
- Customer is unwilling to provide required information declined-to-provide →escalation-human
Funding Issue Resolution
kb.funding-methods-policy — retrieve supported funding sources and minimum initial deposit thresholds
- Customer selects a supported alternative funding method alternative-accepted →identity-verification
- Customer cannot or will not meet deposit requirements cannot-meet-requirements →session-close
Identity Verification
KYCService.SubmitVerification with customer.fullLegalName, customer.dateOfBirth, customer.govIdNumber, customer.taxId, customer.address
- Verification passes on first or second attempt kyc-pass →compliance-screening
- Verification fails — first attempt kyc-fail-first →kyc-retry
- Verification fails — second attempt or kyc.attemptCount exceeds 2 kyc-fail-final →escalation-human
KYC Retry
DocUploadPortal.RequestDocument to customer.email for alternative ID submission
- Customer submits alternative document and resubmission passes kyc-pass →compliance-screening
- Customer submits alternative document and resubmission fails kyc-fail-final →escalation-human
- Customer cannot provide alternative documentation cannot-verify →escalation-human
Compliance Screening
ComplianceScreening.RunCheck with customer.fullLegalName, customer.taxId, customer.dateOfBirth, customer.address
- Screening passes with no flags compliance-clear →account-creation
- Any KYC or AML flag is raised compliance-flagged →escalation-compliance
- Customer is identified as a Politically Exposed Person (PEP) compliance.isPEP pep-flag →escalation-compliance
Account Creation
CoreBanking.CreateAccount with customer.fullLegalName, customer.taxId, customer.address, customer.fundingSource, customer.initialDepositAmount, customer.accountType
CRM.UpdateRecord with account.id, mark status: account-created
Twilio.SendSMS to customer.phone: "Your new account has been created. Your account ID is account.id. Your login credentials will arrive by email shortly."
CoreBanking.IssueCredentials to customer.email with account.credentials and welcome packet link
- Account created and credentials delivered successfully account-ready →customer-orientation
- Account creation fails due to a system error system-error →escalation-human
Customer Orientation
kb.new-account-faq — retrieve top questions about first login, mobile app access, and deposit timelines
- Customer has additional questions more-questions →customer-orientation
- Customer is satisfied and ready to end satisfied →session-close
- Customer wants to add a beneficiary or linked account additional-setup →escalation-human
Specialist Routing
CRM.CreateLeadRecord with customer.phone, customer.email, customer.accountType, note: specialist-referral
- Details captured and specialist notified →escalation-human
Escalation to Compliance Officer
ComplianceScreening.FlagRecord with customer.fullLegalName, customer.taxId, compliance.flagCode, compliance.isPEP
CRM.EscalateRecord priority: critical, tag: compliance-review
Escalation to Human Agent
CRM.EscalateRecord priority: high, tag: agent-review
Twilio.SendSMS to customer.phone: "Your account application requires attention from one of our specialists. A team member will reach out to you shortly."
Session Close
CRM.CloseSession with session outcome logged

Loyalty / Rewards Inquiry
Intake & Account Lookup
LoyaltyPlatform.LookupAccount by customer.email or customer.phone
- Account found, no fraud flag →identity-verification
- Account found with fraud flag fraud_flag →escalation-human
- Account not found →account-not-found
Identity Verification
IdentityVerification.Verify using customer.fullName and customer.accountId
- Identity confirmed on first or second attempt verified →inquiry-classification
- Identity fails after two attempts unverified →escalation-human
Account Not Found
LoyaltyPlatform.LookupAccount secondary attempt using alternate customer.email or customer.phone
- Account found on secondary lookup →identity-verification
- Account still not found after secondary attempt →escalation-human
Inquiry Classification
- Customer asks about balance or tier status balance_inquiry →balance-and-tier-summary
- Customer wants to redeem rewards redeem →redemption-assistance
- Customer reports missing points after a purchase missing_points →missing-points-investigation
- Customer asks about or disputes expiration expiration_inquiry →expiration-review
- Customer expresses frustration or perceived unfair treatment frustrated →empathy-and-policy-explanation
Balance & Tier Summary
LoyaltyPlatform.GetAccountDetails for customer.accountId
kb.loyalty-rewards-policy — confirm tier benefits and point value rules
- Customer wants to know how to redeem redeem →redemption-assistance
- Customer is satisfied and has no further questions resolved →resolution
- Customer raises a new concern new_concern →inquiry-classification
Redemption Assistance
kb.loyalty-rewards-policy — retrieve current redemption options, minimum threshold, and any active promotions
LoyaltyPlatform.GetRedemptionOptions for customer.accountId
- Customer wants to apply reward to a current or upcoming purchase LoyaltyPlatform.ApplyReward →redemption-confirmed
- Customer wants to know options only, no redemption yet info_only →resolution
- Customer's balance is below the redemption minimum below_minimum →below-minimum-notice
Below Minimum Notice
kb.loyalty-rewards-policy — confirm minimum redemption threshold and earning opportunities
- Customer is satisfied with the explanation resolved →resolution
- Customer is frustrated or disputes the threshold frustrated →empathy-and-policy-explanation
Redemption Confirmed
CRM.LogInteraction tagged reward-redeemed, linked to customer.accountId
- Customer has no further questions resolved →resolution
- Customer has another question new_concern →inquiry-classification
Missing Points Investigation
OrderManagement.LookupTransaction by transaction.receiptNumber and transaction.purchaseDate
- Transaction found and points not yet posted LoyaltyPlatform.CheckPendingPoints →points-adjustment-review
- Transaction found and points already posted →points-already-posted
- Transaction not found in order history →unverified-transaction
Points Already Posted
- Customer confirms the issue is resolved resolved →resolution
- Customer says the balance still looks wrong disputed →escalation-human
Unverified Transaction
OrderManagement.LookupTransaction secondary attempt using transaction.amount and transaction.purchaseDate
- Transaction found on secondary lookup →points-adjustment-review
- Transaction still not found after second attempt →escalation-human
Points Adjustment Review
- Adjustment is within policy limits and clearly supported low_risk_adjustment →adjustment-approval
- Adjustment amount is high, ambiguous, or flags a pattern high_risk_adjustment →escalation-human
Adjustment Approval
- Approved approved LoyaltyPlatform.CreditPoints →adjustment-confirmed
- Rejected rejected →adjustment-declined
- No response in 30 min →escalation-human
Adjustment Confirmed
CRM.LogInteraction tagged points-adjustment-approved, linked to customer.accountId, reference adjustment.requestId
- Customer is satisfied resolved →resolution
- Customer has another question new_concern →inquiry-classification
Adjustment Declined
kb.loyalty-rewards-policy — confirm decline reason to share with customer
- Customer accepts the explanation resolved →resolution
- Customer remains dissatisfied or requests an exception frustrated →escalation-human
Expiration Review
kb.loyalty-rewards-policy — retrieve expiration policy, grace window rules, and reinstatement eligibility criteria
- Points have not yet expired, customer wants prevention tips info_only →resolution
- Points expired recently and fall within the grace window within_grace_window →escalation-human
- Points expired outside the grace window outside_grace_window →expiration-outside-grace
- Customer is upset about the expiration frustrated →empathy-and-policy-explanation
Expiration Outside Grace
kb.loyalty-rewards-policy — confirm grace window boundaries and prevention steps
- Customer accepts the explanation resolved →resolution
- Customer is still dissatisfied and requests a policy exception frustrated →escalation-human
Empathy & Policy Explanation
kb.loyalty-rewards-policy — retrieve relevant policy section to explain to customer
- Customer feels heard and is satisfied satisfied →resolution
- Customer remains dissatisfied and wants to escalate escalate →escalation-human
Escalation to Human Agent
CRM.LogInteraction tagged escalation, linked to customer.accountId, with full interaction summary
Slack.Notify to #loyalty-ops with customer.accountId, customer.fullName, reason for escalation
Resolution
CRM.LogInteraction tagged resolved, linked to customer.accountId

Group / Event Booking Inquiry
Inquiry Intake
- Customer describes a specific event type event-described →gather-event-details
- Customer is vague or asking general questions exploring →scope-clarification
- Customer states group size is 50 or more rooms / full venue buyout / custom SLA high-complexity →escalation-event-sales-manager
Scope Clarification
- Customer clarifies event scope event-described →gather-event-details
- Customer remains unclear or needs guidance still-vague →gather-event-details
- Customer mentions scale that triggers complexity threshold high-complexity →escalation-event-sales-manager
Gather Event Details
Salesforce.CreateLead with customer.name, customer.email, customer.phone, source: group-inquiry
- Customer provides all key details (dates, guest count, destination, budget) details-complete →validate-group-size
- Customer provides partial details details-partial →clarify-missing-details
- Customer declines to share budget or contact info details-minimal →clarify-missing-details
Clarify Missing Details
Salesforce.UpdateLead with any partial data already collected
- Customer supplies remaining details details-complete →validate-group-size
- Customer still cannot confirm details still-incomplete →capture-lead-for-follow-up
Capture Lead for Follow-up
Salesforce.UpdateLead with customer.name, customer.email, status: nurture
email-automation.EnrollSequence campaign: group-inquiry-nurture, contact: customer.email
- Lead captured successfully →resolution-lead-captured
- Customer disengages with no contact info provided →resolution-no-contact
Validate Group Size
- Group size is 10–20 rooms and standard event type →check-availability
- Group size is 21–49 rooms or complexity is moderate →route-to-group-sales-specialist
- Group size is 50 or more rooms, full buyout, or custom SLA →escalation-event-sales-manager
Check Availability
group-inventory-calendar.CheckAvailability for event.property, event.dates, event.roomCount, event.type
property-management-system.GetGroupRates for event.property, event.dates, event.roomCount
- Dates and room count are available available →present-options
- Requested dates are unavailable but alternatives exist partial-availability →offer-alternatives
- No availability at requested property or destination unavailable →offer-alternatives
Present Options
quoting-tool.GenerateProposal for event.type, event.dates, event.roomCount, event.budget, event.specialRequirements
Salesforce.UpdateLead status: proposal-sent, quote.id
email-automation.SendEmail template: group-proposal, to: customer.email, attach: quote.id
- Customer reviews and selects a preferred option option-selected →confirm-provisional-hold
- Customer has questions or wants adjustments needs-adjustment →handle-quote-adjustment
- Customer indicates budget does not align with presented options budget-misaligned →offer-value-alternatives
- Customer goes silent after proposal is sent →quote-follow-up-sequence
Offer Alternatives
group-inventory-calendar.GetAlternativeDates for event.property, event.roomCount
property-management-system.GetNearbyProperties for event.destination, event.dates, event.roomCount
- Customer accepts an alternative date or property alternative-accepted →check-availability
- Customer wants to explore further still-exploring →route-to-group-sales-specialist
- Customer declines all alternatives and disengages declined →resolution-no-booking
Handle Quote Adjustment
quoting-tool.ReviseProposal for quote.id, updated event.roomCount, event.dates, event.specialRequirements
email-automation.SendEmail template: group-proposal-revised, to: customer.email, attach: quote.id
- Customer accepts revised proposal option-selected →confirm-provisional-hold
- Customer still has concerns needs-further-adjustment →handle-quote-adjustment
- Customer budget remains misaligned budget-misaligned →offer-value-alternatives
Offer Value Alternatives
quoting-tool.GetTieredOptions for event.type, event.dates, event.roomCount, event.budget
kb.group-value-add-packages
- Customer selects a tiered option option-selected →confirm-provisional-hold
- Customer wants specialist help with budget negotiation →route-to-group-sales-specialist
- Customer declines all options declined →resolution-no-booking
Confirm Provisional Hold
property-management-system.PlaceProvisionalHold for event.property, event.dates, event.roomCount, quote.id
Salesforce.UpdateLead status: hold-placed, hold.confirmationNumber
contract-management.GenerateContract for quote.id, customer.name, customer.email, event.type, event.dates
email-automation.SendEmail template: contract-and-deposit, to: customer.email, attach: contract.link
- Customer confirms they received the contract and will proceed proceeding →resolution-booking-confirmed
- Customer has contract or deposit questions has-questions →handle-contract-questions
- Customer has not responded by hold expiry date →hold-expiry-follow-up
Handle Contract Questions
kb.group-contract-terms
kb.deposit-and-cancellation-policy
- Questions answered and customer is ready to proceed proceeding →resolution-booking-confirmed
- Contract terms require negotiation or custom clauses requires-negotiation →escalation-event-sales-manager
- Customer declines after reviewing terms declined →resolution-no-booking
Quote Follow-up Sequence
email-automation.EnrollSequence campaign: group-quote-follow-up, contact: customer.email, reference: quote.id
Salesforce.UpdateLead status: follow-up-in-progress
- Customer responds and re-engages re-engaged →present-options
- Customer responds and selects an option option-selected →confirm-provisional-hold
- Customer remains unresponsive after full follow-up sequence no-response →route-to-group-sales-specialist
Hold Expiry Follow-up
email-automation.SendEmail template: hold-expiry-reminder, to: customer.email, reference: hold.confirmationNumber
Salesforce.UpdateLead status: hold-expiring-soon
- Customer responds and confirms they will proceed proceeding →resolution-booking-confirmed
- Customer requests an extension needs-extension →escalation-event-sales-manager
- Hold expires with no response expired →resolution-hold-expired
Route to Group Sales Specialist
Salesforce.UpdateLead status: routed-to-specialist, owner: group-sales-team
Salesforce.CreateTask assign-to: group-sales-team, subject: group-inquiry-handoff, reference: customer.email, event.type, event.dates, event.roomCount
email-automation.SendEmail template: specialist-intro, to: customer.email, cc: salesSpecialist.email
- Handoff confirmed and customer satisfied →resolution-specialist-assigned
- Customer requests immediate escalation to senior manager →escalation-event-sales-manager
Escalation to Event Sales Manager
Salesforce.UpdateLead status: escalated, priority: high, tagged: high-value-event
Salesforce.CreateTask assign-to: event-sales-manager, subject: high-complexity-group-escalation, reference: customer.email, event.type, event.dates, event.roomCount, event.budget
email-automation.SendEmail template: escalation-acknowledgement, to: customer.email
Resolution — Booking Confirmed
Salesforce.UpdateLead status: closed-won
property-management-system.ConfirmBooking for hold.confirmationNumber
Resolution — Specialist Assigned
Salesforce.UpdateLead status: specialist-assigned
Resolution — Lead Captured
Resolution — Hold Expired
Salesforce.UpdateLead status: hold-expired
property-management-system.ReleaseHold for hold.confirmationNumber
Resolution — No Booking
Salesforce.UpdateLead status: closed-lost
Resolution — No Contact
Salesforce.UpdateLead status: no-contact

General FAQ Retail
Intake
- Customer asks about store hours or location store-info →store-info
- Customer asks about return or exchange policy return-policy →return-policy
- Customer asks about payment methods or financing payment-options →payment-options
- Customer asks about product availability or details product-inquiry →product-inquiry
- Customer references a specific order or account account-specific →identity-verification
- Customer asks something outside standard categories out-of-scope →edge-case-handler
Store Info
kb.store-locator-policy — retrieve hours and location details relevant to customer.location
StoreLocator.GetStoreDetails for customer.location
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes the information frustrated →policy-pushback
Return Policy
kb.return-exchange-policy — retrieve current return window, conditions, and exclusions based on policy.version
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up or edge-case question follow-up →edge-case-handler
- Customer is frustrated with the policy frustrated →policy-pushback
- Customer references a specific order account-specific →identity-verification
Payment Options
kb.payment-options-policy — retrieve accepted payment methods, financing partners, and any current promotions
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has a follow-up question follow-up →intake
- Customer is dissatisfied or disputes policy frustrated →policy-pushback
Product Inquiry
kb.product-catalog — look up details for product.name or product.sku
ProductCatalog.GetProductDetails for product.sku
InventoryLookup.CheckAvailability for product.sku at customer.location
- Customer confirms the answer resolves their need confirmed →resolution
- Customer wants more product detail follow-up →product-inquiry-detail
- Customer asks about ordering or account account-specific →identity-verification
- Customer is dissatisfied with availability or details frustrated →policy-pushback
Product Inquiry Detail
kb.product-catalog — retrieve extended specifications, compatibility notes, and related items for product.sku
- Customer confirms the answer resolves their need confirmed →resolution
- Customer has additional questions follow-up →intake
- Customer needs account-level help account-specific →identity-verification
- Customer is dissatisfied frustrated →policy-pushback
Identity Verification
- Customer provides verifiable details confirmed CRM.LookupCustomer →account-inquiry
- Customer is unable or unwilling to provide details unverified →escalation-human
- Customer clarifies they do not actually need account-level help no-account-needed →intake
Account Inquiry
CRM.LookupCustomer for order.id
- Question can be answered with available account data confirmed →resolution
- Issue involves a dispute, complaint, or action beyond FAQ scope complaint →escalation-human
- Customer confirms answer resolves their need resolved →resolution
Edge Case Handler
kb.general-faq — attempt to locate a match for customer.question across all FAQ categories
- A confident, accurate answer is found in FAQ content faq-match →faq-answer
- FAQ content is ambiguous, outdated, or contradicts another source uncertain →uncertainty-acknowledgment
- No relevant FAQ content exists no-match →escalation-human
FAQ Answer
- Customer confirms answer resolves their need confirmed →resolution
- Customer has a follow-up follow-up →intake
- Customer is dissatisfied or pushes back frustrated →policy-pushback
Uncertainty Acknowledgment
→escalation-human
Policy Pushback
- Customer agrees to speak with a team member confirmed →escalation-human
- Customer accepts the explanation and no longer needs help resolved →resolution
- Customer has a new or different question follow-up →intake
Escalation to Human Agent
CRM.CreateCase tagged faq-escalation, linked to customer.name and customer.question
Resolution

General FAQ / Product Info
Intake
- Customer asks about a specific product or account type (HYSA, CD, checking, savings, loan) product-inquiry →topic-identification
- Customer asks about rates or current pricing rate-inquiry →topic-identification
- Customer asks about fees or charges fee-inquiry →topic-identification
- Customer asks about a policy or terms policy-inquiry →topic-identification
- Customer references their own account balance, transaction, or personal account detail account-detail-request →identity-verification
- Customer mentions a complaint, dispute, or expresses frustration complaint →escalation-human
- Customer explicitly asks to speak with a human human-request →escalation-human
- Intent unclear or ambiguous unclear →clarify-question
Clarify Question
- Customer clarifies a product, rate, fee, or policy topic product-inquiry →topic-identification
- Customer clarifies they need account-specific information account-detail-request →identity-verification
- Customer still unclear or asks for a human unclear →escalation-human
Topic Identification
- Topic identified and maps to a standard product or policy kb.product-catalog →knowledge-base-lookup
- Topic identified and is rate- or fee-specific RateFeeDatabase.QueryProduct →rate-fee-retrieval
- Topic involves investment products or securities investment-topic →investment-disclaimer-check
- Topic cannot be matched to any known product or policy no-match →knowledge-gap-handling
Knowledge Base Lookup
FAQCMS.LookupTopic for query.topic filtered by customer.state
CRM.GetCustomerProfile for customer.id to confirm customer.status (existing or prospective)
- Clear, current, single result returned result-found →deliver-answer
- Result returned but flagged as recently updated or version-changed stale-or-updated →change-flag-review
- No result or conflicting entries returned no-result →knowledge-gap-handling
Rate / Fee Retrieval
RateFeeDatabase.QueryProduct for product.name filtered by customer.state
FAQCMS.LookupTopic for any associated fee-schedule or policy footnotes
- Current rate or fee confirmed, no promotional flag result-found →deliver-answer
- Promotional rate or limited-time offer applies promo-active →promo-terms-delivery
- Rate or fee recently changed rate-changed →change-flag-review
- Query returns no data or an error no-result →knowledge-gap-handling
Change Flag Review
RateFeeDatabase.QueryProduct to pull the most current record and confirm effective date
FAQCMS.LookupTopic to retrieve any change notice or customer communication linked to query.topic
- Most current version confirmed and retrieved →deliver-answer
- Change is tied to a promotional window promo-active →promo-terms-delivery
- Conflict persists or effective date is ambiguous conflict →knowledge-gap-handling
Promo Terms Delivery
- Customer wants to know how to apply or enroll apply-intent →escalation-human
- Customer has another question more-questions →intake
- Customer is satisfied and has no further questions satisfied →close-interaction
Investment Disclaimer Check
ComplianceDisclaimerLibrary.GetDisclaimer for query.product
- Customer is asking for general product information only (no personalized recommendation) general-info →knowledge-base-lookup
- Customer is asking for a recommendation or advice on what to buy or invest in advice-request →escalation-human
- Regulatory disclaimer required before answering kb.compliance-disclaimer-library →deliver-answer-with-disclaimer
Deliver Answer
- Customer has a follow-up question on the same topic follow-up →deliver-answer
- Customer has a new question on a different topic new-topic →intake
- Customer asks something that now touches on their specific account account-detail-request →identity-verification
- Customer is satisfied satisfied →close-interaction
- Customer expresses frustration or dissatisfaction frustrated →escalation-human
Deliver Answer With Disclaimer
- Customer has another general question more-questions →intake
- Customer asks for a personalized recommendation or advice advice-request →escalation-human
- Customer is satisfied satisfied →close-interaction
Identity Verification
IdentityVerification.InitiateCheck for customer.id via query.channel
- Verification passed identity-verified →account-detail-lookup
- Verification failed or customer unable to complete it identity-failed →escalation-human
- Customer declines verification declined →offer-general-only
Offer General Only
- Customer accepts general answer and asks a product question product-inquiry →intake
- Customer still wants account detail or requests a human human-request →escalation-human
- Customer has no further questions satisfied →close-interaction
Account Detail Lookup
CRM.GetCustomerProfile for customer.id
RateFeeDatabase.QueryProduct for customer.accountType filtered by customer.state
- Customer is asking about their current rate or fee on an existing product rate-fee-detail →deliver-answer
- Customer is asking about a balance or recent transaction transaction-request →escalation-human
- Customer is asking about a policy as it applies to their account policy-detail →deliver-answer
Knowledge Gap Handling
CRM.LogInteraction with query.topic flagged as unresolved, route note to specialist.queue
- Route to specialist queue →escalation-human
Escalation to Human
CRM.LogInteraction with full conversation context, query.topic, customer.id, and escalation reason
CRM.CreateCase tagged faq-escalation, linked to customer.id and query.topic
Close Interaction
CRM.LogInteraction with query.topic marked resolved and customer.status updated

General FAQ — Healthcare
Intake
- Patient asks about billing or payments billing →category-billing
- Patient asks about scheduling or appointments scheduling →category-scheduling
- Patient asks about insurance or coverage insurance →category-insurance
- Patient asks about services, procedures, or treatments services →category-services
- Patient asks about location, hours, or directions location →category-location
- Patient asks about prescriptions or medications prescriptions →category-prescriptions
- Patient mentions a symptom, pain, or medical concern clinical →clinical-deflection
- Patient expresses distress, fear, or emotional upset distressed →escalation-human
- Patient asks about their personal health record or account-specific details personal-record →identity-verification
- Patient requests a specific staff member or provider by name staff-request →escalation-human
- Question does not fit any known category unclear →clarify-question
Clarify Question
- Category becomes clear on follow-up billing →category-billing
- Category becomes clear on follow-up scheduling →category-scheduling
- Category becomes clear on follow-up insurance →category-insurance
- Category becomes clear on follow-up services →category-services
- Category becomes clear on follow-up location →category-location
- Category becomes clear on follow-up prescriptions →category-prescriptions
- Patient mentions a symptom or medical concern clinical →clinical-deflection
- Patient expresses distress distressed →escalation-human
- Still unclear after follow-up still_unclear →knowledge-base-fallback
Category — Billing
kb.billing-faq — retrieve billing policies, payment options, balance inquiry process, financial assistance programs
- Patient has a question about a specific charge or balance on their account account_specific →identity-verification
- Patient asks a general question about payment options or financial assistance general →deliver-billing-answer
- Patient asks about payment plans payment_plan →deliver-billing-answer
- Patient is confused or frustrated about a charge frustrated →escalation-human
Deliver Billing Answer
kb.billing-faq — confirm answer to patient's specific billing question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is still confused or wants to speak with someone needs_agent →escalation-human
Category — Scheduling
kb.scheduling-faq — retrieve scheduling policies, new patient process, cancellation policy, telehealth availability
- Patient wants to book, reschedule, or cancel book_appt →scheduling-action
- Patient asks a general scheduling question general →deliver-scheduling-answer
- Patient mentions a specific provider staff-request →escalation-human
Deliver Scheduling Answer
kb.scheduling-faq — confirm answer to scheduling question
- Patient wants to schedule directly book_appt →scheduling-action
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
Scheduling Action
- Existing patient confirmed patient.status EHR.LookupPatient →confirm-patient-identity-scheduling
- New patient new_patient →new-patient-intake
- Patient declines to provide info and wants to self-schedule self_serve →resolution
Confirm Patient Identity — Scheduling
- Identity confirmed EHR.LookupPatient verified →escalation-human
- Patient cannot verify identity unverified →identity-fail
New Patient Intake
kb.new-patient-faq — retrieve new patient registration process, required documents, insurance accepted
- Patient wants portal link CRM.SendPortalLink →resolution
- Patient wants to speak with front desk speak_to_staff →escalation-human
- Patient confirms they have what they need confirmed →resolution
Category — Insurance
kb.insurance-faq — retrieve accepted insurance carriers, coverage verification process, referral and prior authorization info
- Patient asks which insurance plans are accepted plans_accepted →deliver-insurance-answer
- Patient wants to verify their specific coverage verify_coverage →identity-verification
- Patient asks about referrals or prior authorization auth_referral →deliver-insurance-answer
- Patient asks a general insurance question general →deliver-insurance-answer
Deliver Insurance Answer
kb.insurance-faq — confirm answer relevant to patient's insurance question
- Patient confirms they have what they need confirmed →resolution
- Patient wants insurance team to verify their benefits verify_coverage →identity-verification
- Patient has a follow-up question follow_up →intake
- Patient is frustrated about coverage or a denial frustrated →escalation-human
Category — Services
kb.services-faq — retrieve information on available specialties, procedures, telehealth, and referral requirements
- Patient asks about a specific procedure or treatment procedure →deliver-services-answer
- Patient asks about a specialty specialty →deliver-services-answer
- Patient asks about telehealth telehealth →deliver-services-answer
- Patient's question touches on clinical advice or personal symptoms clinical →clinical-deflection
Deliver Services Answer
kb.services-faq — confirm answer relevant to patient's services question
- Patient confirms they have what they need confirmed →resolution
- Patient wants to schedule related to this service book_appt →category-scheduling
- Patient has a follow-up question follow_up →intake
- Patient's follow-up veers into clinical advice territory clinical →clinical-deflection
Category — Location & Hours
kb.facility-directory — retrieve facility addresses, hours of operation, parking, and contact numbers
- Patient names a specific facility or location facility.name →deliver-location-answer
- Patient wants a list of all locations all_locations →deliver-location-answer
- Patient asks about after-hours or urgent care availability after_hours →deliver-location-answer
Deliver Location Answer
kb.facility-directory — confirm address, hours, and contact details for facility.name
- Patient confirms they have what they need confirmed →resolution
- Patient has another question follow_up →intake
- Patient cannot find the location or needs further help needs_agent →escalation-human
Category — Prescriptions
kb.prescriptions-faq — retrieve prescription refill process, pharmacy partnerships, prior authorization for medications
- Patient asks about refills refill →deliver-prescriptions-answer
- Patient asks about pharmacy partners pharmacy →deliver-prescriptions-answer
- Patient asks about prior authorization for a specific medication prior_auth →deliver-prescriptions-answer
- Patient asks about dosage, interactions, or clinical guidance clinical →clinical-deflection
Deliver Prescriptions Answer
kb.prescriptions-faq — confirm answer relevant to prescription question
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient's question requires clinical judgment clinical →clinical-deflection
- Patient wants to speak with their care team needs_agent →escalation-human
Identity Verification
CRM.VerifyPatientIdentity using patient.name, patient.dob, patient.phone or patient.email
- Identity verified successfully verified →post-verification-routing
- Identity cannot be verified unverified →identity-fail
Post-Verification Routing
- Original question was about billing billing EHR.LookupPatientAccount →deliver-billing-answer
- Original question was about insurance or coverage insurance InsuranceEligibility.VerifyCoverage →deliver-insurance-answer
- Original question was about scheduling scheduling EHR.LookupPatient →confirm-patient-identity-scheduling
- Original question required record access record EHR.LookupPatientAccount →escalation-human
Identity Fail
- Patient wants to try a general question general →intake
- Patient wants to call or visit in person confirmed →resolution
- Patient is frustrated or upset frustrated →escalation-human
Knowledge Base Fallback
- Answer found with high confidence answer_found →deliver-fallback-answer
- No reliable answer found in knowledge base no_answer →acknowledge-uncertainty
Deliver Fallback Answer
- Patient confirms they have what they need confirmed →resolution
- Patient has a follow-up question follow_up →intake
- Patient is unsatisfied or needs more detail needs_agent →escalation-human
Acknowledge Uncertainty
- Patient wants to be connected to a staff member needs_agent →escalation-human
- Patient wants the patient portal link CRM.SendPortalLink →resolution
- Patient is okay waiting or will follow up themselves confirmed →resolution
Clinical Deflection
- Patient wants to schedule an appointment book_appt →category-scheduling
- Patient wants a facility location location →category-location
- Patient indicates this may be an emergency emergency →escalation-emergency
- Patient confirms they understand and has no further needs confirmed →resolution
- Patient is distressed or escalating distressed →escalation-human
Escalation — Emergency
Escalation to Human Agent
CRM.CreateCaseNote with question.category, conversation summary, and patient.name if provided
CRM.RouteToAgent with priority: standard, tagged with question.category
Resolution
CRM.LogInteraction with question.category and resolution status

Flight/Trip Disruption Support
Intake & Verification
PNR.LookupBooking using booking.confirmationNumber and booking.passengerName
- Booking found and passenger name matches →identity-check
- Booking not found or name mismatch confused PNR.LookupBooking retry with loyalty number booking.loyaltyNumber →identity-check
- No booking reference available at all →escalation-human
Identity Check
IdentityVerification.Challenge using booking.passengerName and traveler.email
- Identity verified identity_verified →disruption-assessment
- Identity check fails after two attempts identity_failed →escalation-secure-verification
- Customer declines verification declined →escalation-secure-verification
Disruption Assessment
PNR.GetAffectedSegment for booking.confirmationNumber to pre-populate trip.affectedSegment
- Flight cancellation confirmed cancellation →rebooking-options
- Significant delay (2+ hours) delay →rebooking-options
- Missed connection missed-connection →rebooking-options
- Hotel or accommodation failure hotel-issue →hotel-resolution
- Customer already self-rebooked self-rebooked →self-rebook-review
- Medical or safety emergency emergency →escalation-human
Rebooking Options
kb.rebooking-policy — check eligibility rules, same-carrier preference, fare class protection, and partner airline agreements for booking.fareClass
GDS.SearchAvailability for trip.destination from traveler.currentLocation on trip.travelDate and next 24 hours
- Suitable same-carrier option found →rebook-confirmation
- Only partner carrier options available →partner-carrier-offer
- No viable rebooking option exists no_options →refund-assessment
- Minor traveling alone flag raised minor_alone →escalation-human
Rebook Confirmation
- Customer confirms new flight confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Customer wants to see other options wants-alternatives →rebooking-options
- Customer declines all options and wants a refund refund-requested →refund-assessment
Partner Carrier Offer
kb.partner-airline-policy — confirm interline agreement, baggage transfer rules, and any fare difference liability
- Customer accepts confirmed GDS.ReissueTicket PNR.UpdateBooking →confirmation-and-vouchers
- Fare difference exceeds authorization limit fare_over_limit →escalation-human
- Customer declines and requests refund refund-requested →refund-assessment
Self-Rebook Review
PNR.GetAffectedSegment to compare original booking.itinerary against new booking
GDS.CheckFareDifference for rebooking.fareDifference
- Self-rebook is clean, no fare difference owed no_difference →confirmation-and-vouchers
- Fare difference owed to customer fare_refund_due →refund-assessment
- Duplicate charge detected duplicate_charge →refund-assessment
- Self-rebook is invalid or ticketing error ticketing_error →rebooking-options
Hotel Resolution
kb.hotel-disruption-policy — review duty-of-care obligations, walk procedures, and compensation entitlements
- Hotel overbooked, walk required hotel-walk HotelAPI.FindAlternativeProperty →hotel-rebook-confirmation
- Room condition complaint (safety, cleanliness) room-condition HotelAPI.EscalateProperty →hotel-rebook-confirmation
- Issue requires compensation above agent limit hotel_over_limit →escalation-human
Hotel Rebook Confirmation
- Customer confirms confirmed HotelAPI.TransferReservation CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer prefers to resolve independently self-resolve →confirmation-and-vouchers
- Compensation amount exceeds authorization hotel_over_limit →escalation-human
Refund Assessment
kb.refund-policy — verify refundability for booking.fareClass, disruption cause trip.disruption.cause, and weather exception rules
- Full refund eligible full_refund PNR.InitiateRefund →confirmation-and-vouchers
- Travel credit or voucher eligible voucher_eligible CompensationTool.IssueVoucher →confirmation-and-vouchers
- Weather-related, limited compensation weather_limited →weather-exception-handling
- Refund amount exceeds agent authorization refund_over_limit →escalation-human
- No refund eligibility confirmed no_refund →compensation-conversation
Weather Exception Handling
kb.weather-disruption-policy — confirm exact entitlements and any duty-of-care exceptions
- Customer accepts limited offer accepted CompensationTool.IssueVoucher →confirmation-and-vouchers
- Customer disputes and requests escalation escalate →escalation-human
- Customer requests full refund citing extraordinary circumstances extraordinary →escalation-human
Compensation Conversation
CompensationTool.CalculateEntitlement for booking.fareClass and booking.loyaltyNumber
- Goodwill voucher available CompensationTool.IssueVoucher →confirmation-and-vouchers
- Nothing available within agent limits no_compensation_available →escalation-human
Confirmation & Vouchers
PNR.SendConfirmationEmail to traveler.email with updated booking.itinerary
CompensationTool.DeliverVoucher to traveler.email if applicable
Salesforce.UpdateCase with resolution summary, disruption type trip.disruption.type, and compensation issued
- Customer has additional questions or issues more-help →disruption-assessment
- Customer is satisfied and conversation is complete resolved →resolution-close
Resolution Close
Salesforce.CloseCase with outcome logged and customer satisfaction noted
Escalation — Secure Verification
Salesforce.CreateCase priority: high, tagged identity-verification-required
IdentityVerification.RouteToSecureChannel for traveler.phone or traveler.email
Escalation — Human Agent
Salesforce.CreateCase priority: high, tagged disruption-escalation with full case summary, booking.confirmationNumber, trip.affectedSegment, and trip.disruption.cause
PNR.FlagForSeniorAgent on booking.confirmationNumber
Salesforce.NotifyAgent via #disruption-escalations with case link and urgency flag

Device Troubleshooting
Identity Verification
CRM.LookupAccount using customer.phone or customer.accountId
- Account found, identity confirmed verified →device-details
- Account not found or system lookup fails lookup_failed →manual-account-collection
- Customer cannot verify identity after two attempts →escalation-human
Manual Account Collection
CRM.CreateManualRecord with collected details
Ticketing.FlagForDataSyncReview tagged data-sync-error, linked to customer.accountId
- Details collected and record created →device-details
- Customer unable to provide sufficient details →escalation-human
Device Details
DeviceManagement.LookupDevice using device.imei or customer.accountId
- Device record found, pulling device.make, device.model, device.imei →issue-intake
- Device record not found CRM.NoteManualDevice collect device.make, device.model, device.imei manually →issue-intake
Issue Intake
CRM.LogInteraction note issue.description, issue.startDate, issue.stepsTried
Ticketing.CheckPriorContacts for customer.accountId, device.imei
- Same issue reported three or more times repeat_contact →escalation-specialist
- Customer expresses significant frustration or urgency frustrated →escalation-specialist
- Physical damage mentioned (cracked screen, water damage, etc.) physical_damage →physical-damage-assessment
- No prior contacts or fewer than three, standard issue →basic-troubleshooting
Basic Troubleshooting
kb.device-troubleshooting-standard-steps — retrieve model-specific restart and reset instructions for device.make device.model
NetworkDiagnostics.RunCheck on device.imei — scan for signal, data connectivity, and provisioning issues
- Network or provisioning fault detected network_fault NetworkDiagnostics.PushProvisioningFix →post-basic-check
- No network fault, continue with device-side steps →software-update-check
Software Update Check
- Customer confirms update available, guides them to install DeviceManagement.LogUpdateInitiated →post-basic-check
- Device already on latest software, no update available →network-settings-reset
Network Settings Reset
kb.network-reset-instructions — confirm steps for device.make device.model
- Customer completes reset and reconnects →post-basic-check
- Customer declines to proceed or step causes a new error →advanced-troubleshooting
Post-Basic Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present unresolved →advanced-troubleshooting
Advanced Troubleshooting
- Agent determines factory reset is appropriate path factory_reset_candidate →factory-reset-guidance
- Agent determines hardware fault likely hardware_fault →physical-damage-assessment
- Agent determines issue is unresolvable through scripted steps unresolved_scripted →escalation-specialist
Factory Reset Guidance
kb.factory-reset-instructions — retrieve step-by-step for device.make device.model
- Customer confirms backup complete and agrees to proceed DeviceManagement.LogFactoryResetInitiated →post-factory-check
- Customer wants to back up first CRM.NoteBackupPending →callback-scheduling
- Customer declines factory reset →escalation-specialist
Post-Factory Check
- Issue resolved confirmed →resolution-confirmed
- Issue still present after factory reset unresolved →escalation-specialist
Physical Damage Assessment
WarrantyInsurance.CheckEligibility for device.imei, customer.accountId — retrieve device.warrantyStatus, device.insuranceStatus
- Device under active warranty, damage type covered warranty_eligible →warranty-repair-route
- Device covered by insurance insurance_eligible →insurance-claim-route
- No warranty or insurance coverage no_coverage →out-of-warranty-options
Warranty Repair Route
WarrantyInsurance.InitiateWarrantyClaim for device.imei, customer.accountId
Ticketing.CreateTicket tagged warranty-repair, linked to device.imei
CRM.LogInteraction note warranty claim initiated
→resolution-confirmed
Insurance Claim Route
Ticketing.CreateTicket tagged insurance-claim, linked to device.imei
CRM.LogInteraction note insurance claim routed
→insurance-claims-workflow
Out-of-Warranty Options
kb.repair-center-locator — retrieve authorized repair centers near customer
kb.device-upgrade-eligibility — check upgrade options for customer.accountId
- Customer wants paid repair CRM.LogInteraction note repair referral provided, share repair center details →resolution-confirmed
- Customer wants to explore upgrade →escalation-human
- Customer wants to think it over CRM.LogInteraction note options presented →resolution-confirmed
Callback Scheduling
CRM.ScheduleCallback for customer.phone, note issue.description and steps completed
Ticketing.CreateTicket tagged callback-pending, linked to device.imei
→resolution-confirmed
Escalation to Specialist
Ticketing.CreateTicket tagged specialist-escalation, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note escalation reason: issue.description, prior contacts ticket.priorContactCount, steps completed
CRM.NotifySpecialistQueue with ticket summary
- Customer prefers callback →callback-scheduling
- Customer holds for specialist →escalation-human
Escalation to Human Agent
Ticketing.CreateTicket tagged human-handoff, priority: high, linked to device.imei, customer.accountId
CRM.LogInteraction note full interaction summary
Resolution Confirmed
Ticketing.CreateTicket tagged resolved, linked to device.imei, customer.accountId
CRM.LogInteraction note resolution summary, steps taken, outcome
CRM.CloseInteraction for customer.accountId

Complaint Intake & Routing
Intake & Greeting
- Customer provides name and account number →identity-verification
- Customer refuses to provide details or cannot locate account number →anonymous-record
- Customer immediately mentions a lawyer, regulator, or media escalation-signal →escalation-legal-regulatory
Identity Verification
IdentityVerification.VerifyCustomer using customer.fullName and customer.accountNumber
- Identity confirmed verified →complaint-details-collection
- Identity cannot be confirmed after two attempts unverified →anonymous-record
- System error or timeout system_error CRM.LogAttempt →escalation-human-agent
Complaint Details Collection
CRM.UpdateRecord with customer.accountNumber to flag active complaint intake
- Customer provides complaint details →prior-contact-check
- Customer becomes highly distressed or threatening legal action distressed →escalation-legal-regulatory
- Customer is unclear or needs prompting →complaint-clarification
Complaint Clarification
kb.complaint-intake-guidelines — review required fields for a complete complaint record
- Details now sufficient to proceed →prior-contact-check
- Customer remains unable to provide details CRM.LogPartialComplaint →complaint-details-collection
- Customer escalates tone or mentions legal action distressed →escalation-legal-regulatory
Prior Contact Check
ComplaintManagement.SearchExistingCases using customer.accountNumber and complaint.nature
- Duplicate case found duplicate_detected →duplicate-complaint-handling
- No prior case found, complaint is new no_duplicate →regulatory-category-check
- Customer provides prior reference number complaint.priorReference ComplaintManagement.LinkCase →regulatory-category-check
Duplicate Complaint Handling
ComplaintManagement.RetrieveCase to get case.existingId and current status
CRM.AddInteractionNote linked to case.existingId with today's contact details and any new information provided
- Customer confirms preferred contact and accepts outcome Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer disputes that the duplicate is the same issue →complaint-details-collection
- Customer is dissatisfied with existing case handling frustrated →escalation-human-agent
Regulatory Category Check
ComplianceFlagging.ClassifyComplaint using complaint.nature and complaint.product
kb.regulatory-complaint-categories — check whether complaint falls under fraud, discrimination, CFPB-reportable, FCA-reportable, or other regulated classification
- Complaint classified as regulated category (fraud, discrimination, CFPB, FCA) regulated_category →compliance-routing
- Complaint classified as standard (service, billing, product experience) standard_category →complaint-registration
- Classification inconclusive inconclusive CRM.LogForManualReview →escalation-compliance-team
Compliance Routing
ComplianceFlagging.FlagCase with complaint.category, customer.accountNumber, and complaint.nature
CaseRouting.AssignToComplianceQueue with priority: high
CRM.CreateComplaintRecord tagged regulatory, linked to customer.accountNumber
- Customer would like written confirmation now Twilio.SendSMS to customer.preferredContact →resolution-acknowledgment
- Customer has further information to add →complaint-clarification
- Customer escalates or mentions external bodies escalation-signal →escalation-legal-regulatory
Complaint Registration
ComplaintManagement.CreateCase with customer.fullName, customer.accountNumber, complaint.nature, complaint.date, complaint.product, complaint.priorReference
CaseRouting.AssignToStandardQueue
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer confirms preferred contact method →preferred-contact-capture
- Customer wants to add anything further →complaint-clarification
- Customer is highly dissatisfied with the process frustrated →escalation-human-agent
Preferred Contact Capture
CRM.UpdatePreferredContact for customer.accountNumber with customer.preferredContact
- Customer confirms email Twilio.SendEmail to customer.email with acknowledgment letter and complaint.referenceNumber →resolution-acknowledgment
- Customer confirms phone or SMS Twilio.SendSMS to customer.phone with acknowledgment summary and complaint.referenceNumber →resolution-acknowledgment
- Customer has no preference, use address on file CRM.RetrieveContactDetails Twilio.SendEmail to customer.email →resolution-acknowledgment
Resolution & Acknowledgment
CRM.CloseInteraction with outcome: complaint-logged, reference: complaint.referenceNumber
- Customer has no further questions — flow ends here
- Customer raises an additional issue →intake-greeting
- Customer requests to speak with someone now wants_agent →escalation-human-agent
Anonymous Record
ComplaintManagement.CreateAnonymousRecord with complaint.nature and any details provided
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
- Customer provides a contact method CRM.LogAnonymousContactPreference →resolution-acknowledgment
- Customer declines and ends the interaction — flow ends here
- Customer becomes agitated or references legal action distressed →escalation-legal-regulatory
Escalation — Legal or Regulatory Signal
ComplianceFlagging.FlagCase with priority: urgent, reason: legal-regulatory-signal
CaseRouting.AssignToSeniorComplaintsHandler
CRM.CreateComplaintRecord tagged escalated, legal-signal, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber
Twilio.SendSMS to customer.preferredContact confirming escalation and complaint.referenceNumber
Escalation — Human Agent
CaseRouting.TransferToLiveAgent with context: complaint.referenceNumber, customer.accountNumber, complaint.nature
CRM.LogHandoffNote with reason: customer-requested or verification-failure or system-error
Escalation — Compliance Team
ComplianceFlagging.FlagCase with priority: high, reason: inconclusive-classification
CaseRouting.AssignToComplianceReviewTeam
CRM.CreateComplaintRecord tagged compliance-review-required, linked to customer.accountNumber
ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber

Complaint Escalation — Telecom
Intake and Verification
CRM.LookupAccount using customer.accountNumber or customer.name
- Identity verified successfully CRM.PullComplaintHistory →complaint-history-review
- Identity cannot be verified after two attempts →identity-escalation
- Customer is immediately hostile or threatening frustrated →de-escalation
Complaint History Review
CRM.GetAccountSummary to load customer.accountNumber, complaint.history, and complaint.compensationOffered
CaseManagement.SearchByAccount to find any existing ticket linked to complaint.priorTicketId
- Prior ticket found CaseManagement.OpenCase with complaint.priorTicketId →complaint-confirmation
- No prior ticket found →new-case-creation
- Customer references regulatory body or legal action legal_threat →regulatory-legal-routing
New Case Creation
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, complaint.compensationOffered
- Case created successfully →complaint-confirmation
- System unavailable system_down →system-unavailable-fallback
Complaint Confirmation
- Customer confirms details are correct confirmed →escalation-routing
- Customer adds new information or corrects details update_needed CaseManagement.UpdateCase with revised notes →escalation-routing
- Customer becomes highly distressed or makes a regulatory reference legal_threat →regulatory-legal-routing
- Customer demands supervisor immediately supervisor_demand →escalation-routing
Escalation Routing
EscalationRouting.IdentifyTeam using complaint.servicesAffected, complaint.nature, and customer.accountNumber to assign case.escalationTeam and case.responseTimeline
CaseManagement.UpdateCase with case.escalationTeam, case.responseTimeline, full interaction notes, and complaint.compensationOffered
CommsLog.RecordInteraction with customer.accountNumber, case.id, and channel details
- Standard priority confirmed →escalation-acknowledgement
- Upgrade to high priority warranted high_priority EscalationRouting.UpgradePriority →escalation-acknowledgement
- Business or critical infrastructure account identified critical_account EscalationRouting.UpgradePriority →escalation-acknowledgement
Escalation Acknowledgement
- Approved and owner assigned approved CaseManagement.UpdateCase →customer-close-out
- Rejected or reassignment needed rejected EscalationRouting.IdentifyTeam →escalation-routing
- No response within 20 minutes →escalation-human
Customer Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id, case.escalationTeam, and case.responseTimeline
BillingPlatform.NoteAccount with escalation flag and case.id
- Customer is satisfied and has no further questions confirmed →resolution-close
- Customer requests additional credit or compensation →compensation-review
- Customer remains unsatisfied and escalates further frustrated →escalation-human
Compensation Review
kb.compensation-credit-policy — check eligibility based on complaint.servicesAffected, outage duration, and complaint.compensationOffered
- Credit within policy limits approved approved BillingPlatform.ApplyCredit →customer-close-out
- Credit exceeds policy limit needs_approval →escalation-human
- Prior credit already granted, none applicable ineligible →customer-close-out
De-escalation
kb.de-escalation-guidelines — apply language and pacing guidance for hostile or distressed callers
- Customer settles enough to continue confirmed →intake-and-verification
- Customer remains hostile or uses threatening language hostile CommsLog.FlagInteraction for supervisor review →escalation-human
- Customer mentions regulatory body or legal action legal_threat →regulatory-legal-routing
Regulatory and Legal Routing
CaseManagement.CreateEscalationCase with customer.accountNumber, complaint.nature, complaint.servicesAffected, and legal or regulatory flag
CommsLog.FlagInteraction with legal_regulatory tag and case.id
EscalationRouting.RouteToCompliance with case.id and full case context
- Compliance or legal team notified compliance_routed →regulatory-close-out
- Routing system unavailable system_down →system-unavailable-fallback
Regulatory Close-Out
CommsLog.SendConfirmation to customer.preferredContact with case.id and compliance escalation notice
System Unavailable Fallback
CommsLog.ManualNoteEntry with customer.name, customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, and timestamp
- Manual log completed, systems expected to restore shortly →resolution-close
- Systems remain down and customer needs immediate escalation →escalation-human
Escalation to Human Agent
EscalationRouting.PageSupervisor with case.id, customer.accountNumber, complaint.nature, and urgency flag
CommsLog.FlagInteraction with supervisor_required tag
Slack.Notify to #escalations-live with case summary, customer.accountNumber, and case.id
Identity Escalation
CRM.SendVerificationLink to contact details on file
- Customer verifies via link and calls back →intake-and-verification
- Customer unable or unwilling to verify →escalation-human
Resolution Close
CaseManagement.UpdateCase with resolved_handoff status and final interaction notes
CommsLog.CloseInteraction with customer.accountNumber and case.id

Complaint Escalation
Greeting & Acknowledgement
- Customer provides details calmly or with mild frustration neutral →identity-verification
- Customer is immediately hostile or uses escalation language ("speak to a manager", "unacceptable") escalation_language →pre-escalation-check
- Customer is highly distressed or emotional frustrated →empathy-bridge
Empathy Bridge
- Customer settles and is willing to continue →identity-verification
- Customer continues to demand a manager or escalate escalation_language →pre-escalation-check
Identity Verification
CRM.LookupCustomer using customer.accountId or order.id
ContactHistory.GetLog for customer.accountId to retrieve prior contact history on this issue
- Customer identity and order verified successfully verified →complaint-review
- Identity or order cannot be verified unverified →proof-request
Proof Request
- Alternate proof provided and accepted verified →complaint-review
- Customer cannot provide any proof unverified →policy-exception-flag
- Customer becomes agitated or refuses frustrated →empathy-bridge
Complaint Review
OrderManagement.GetOrderDetails for order.id including order.value, order.date, and item details
ContactHistory.GetLog to confirm complaint.nature and complaint.date and any previous resolution attempts
- Complaint relates to a product defect or damage product_issue →remedy-assessment
- Complaint relates to a missing, late, or incorrect order fulfilment_issue →remedy-assessment
- Complaint relates to a service or staff experience service_issue →remedy-assessment
- Complaint involves a potential safety or legal concern safety_legal →escalation-supervisor
Remedy Assessment
- Remedy identified within policy and agent authority remedy_ready →remedy-offer
- Order value or complexity exceeds agent authority threshold authority_exceeded →escalation-supervisor
- Issue falls outside return or compensation policy out_of_policy →policy-exception-flag
Remedy Offer
- Customer accepts the remedy accepted →resolution-logging
- Customer rejects the remedy and gives a reason rejected →alternative-remedy-offer
- Customer demands a manager explicitly escalation_language →pre-escalation-check
Alternative Remedy Offer
- Customer accepts the alternative remedy accepted →resolution-logging
- Customer rejects the alternative remedy as well rejected →pre-escalation-check
- Customer demands a manager escalation_language →pre-escalation-check
Pre-Escalation Check
- Customer language is abusive or threatening abusive →conduct-warning
- Customer is demanding escalation but not abusive escalation_language →escalation-supervisor
- Two remedy offers have been refused remedies_exhausted →escalation-supervisor
Conduct Warning
- Customer agrees and calms down neutral →remedy-offer
- Customer continues to use abusive language abusive →escalation-conduct
Policy Exception Flag
CRM.UpdateCase with complaint.nature, order.id, and exception request details
RefundCompensationTool.FlagException tagged policy-exception, linked to order.id
- Approved approved →remedy-offer
- Rejected rejected →escalation-supervisor
- No response within 30 min timeout →escalation-supervisor
Escalation to Supervisor
CRM.UpdateCase with full complaint summary, remedy.offered, remedy.alternative, contact.history, and escalation reason
SupervisorQueue.Assign priority: high, tagged complaint-escalation, linked to order.id
Escalation — Conduct Transfer
CRM.UpdateCase with complaint.nature, contact.history, and conduct flag
SupervisorQueue.Assign priority: high, tagged conduct-escalation, linked to customer.accountId
Resolution Logging
RefundCompensationTool.ApplyRemedy for order.id with agreed remedy details
CRM.UpdateCase with complaint.nature, remedy applied, and resolution status: closed
ContactHistory.LogResolution for customer.accountId with outcome summary
- Customer has further queries →greeting-acknowledgement
- Customer is satisfied and done confirmed →resolution-complete
Resolution Complete
CRM.UpdateCase status: resolved, satisfaction: confirmed

Claims Intake
Welcome & Policy Lookup
PolicyManagement.LookupPolicy using policy.number or customer.name
- Policy record found, status active →identity-verification
- Policy record found, status lapsed or expired →lapsed-policy
- Policy record not found after two attempts →escalation-human
- System unavailable CRM.LogInteraction with caller details →system-unavailable
Identity Verification
IdentityVerification.Verify using policy.number and provided identifiers
- Identity verified on first or second attempt →loss-details-collection
- Identity not verified on primary identifiers →secondary-identity-check
Secondary Identity Check
IdentityVerification.VerifySecondary using policy.number
- Identity verified with secondary identifiers →loss-details-collection
- Identity still unverified identity_failed →escalation-human
Loss Details Collection
- Customer provides loss date, location, and description →damages-and-injuries-check
- Customer is distressed or mentions injuries or fatalities →escalation-complex-loss
Damages & Injuries Check
- Customer reports injuries, fatality, or catastrophic loss high_severity →escalation-complex-loss
- Customer mentions intent to involve legal counsel legal_intent →escalation-complex-loss
- No injuries, damages appear routine →coverage-check
Coverage Check
kb.coverage-rules — verify loss.type falls within policy.coverageType scope and that loss.date is within the active policy period
- Coverage confirmed active and loss type within scope coverage_confirmed →claim-record-creation
- Loss type appears potentially excluded or ambiguous coverage_ambiguous →flagged-adjuster-review
- Policy was not active on loss.date coverage_inactive →lapsed-policy
Claim Record Creation
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type
CRM.UpdateContact with customer.preferredContact and claim reference
ClaimsManagement.GetClaimID -> claim.id
- Claim record created successfully claim_created →claim-confirmation
- System error during claim creation system_error →system-unavailable
Claim Confirmation
CRM.SendConfirmation to customer.email or customer.phone with claim.id and next-steps summary
- Customer has additional questions →claim-next-steps
- Customer is satisfied, no further questions →resolution
Claim Next Steps
kb.claims-process-guide — retrieve adjuster contact timeline, documentation requirements, and repair/replacement process for policy.coverageType
- Customer satisfied →resolution
- Customer wants to add more details to the claim ClaimsManagement.UpdateClaim →claim-confirmation
- Customer requests escalation →escalation-human
Flagged for Adjuster Review
ClaimsManagement.CreateClaim with policy.number, customer.name, loss.date, loss.location, loss.description, loss.damages, loss.type, flag: coverage_review_required
ClaimsManagement.GetClaimID -> claim.id
CRM.UpdateContact with customer.preferredContact and claim reference
CRM.SendConfirmation to customer.email or customer.phone with claim.id and review-pending notice
→resolution
Lapsed Policy
kb.reinstatement-options — retrieve available reinstatement paths for policy.coverageType
- Customer wants reinstatement information CRM.LogInteraction tag: reinstatement-interest →escalation-human
- Customer acknowledges and ends interaction →resolution
System Unavailable
CRM.LogManualClaimDetails with customer.name, customer.phone, customer.email, loss.date, loss.location, loss.description, loss.damages, loss.type, policy.number, flag: manual_follow_up_required
- Customer accepts and ends interaction →resolution
- Customer is dissatisfied and requests immediate escalation →escalation-human
Escalation — Complex or High-Severity Loss
CRM.LogInteraction with full loss details, flag: high_severity
ClaimsManagement.CreatePriorityAlert with loss.description, loss.injuries, policy.number
Escalation to Human Agent
CRM.LogInteraction with full context, flag: human_review_required
Resolution

Check-in / Check-out Assistance
Contact & Intent Capture
- Guest says checking in intent-checkin →reservation-lookup-checkin
- Guest says checking out intent-checkout →reservation-lookup-checkout
- Guest mentions a problem or issue intent-issue →reservation-lookup-checkin
- Intent is unclear unclear →clarify-intent
Clarify Intent
- Guest clarifies check-in intent-checkin →reservation-lookup-checkin
- Guest clarifies check-out intent-checkout →reservation-lookup-checkout
- Still unclear after two attempts still-unclear →escalation-human
Reservation Lookup — Check-in
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, arrival date matches reservation.arrivalDate →identity-verification
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Lookup — Check-out
PMS.LookupReservation using reservation.confirmationNumber and guest.fullName
- Reservation found, departure date matches reservation.departureDate →folio-review
- Reservation not found by confirmation number →reservation-not-found
- System lookup error system-error →escalation-human
Reservation Not Found
PMS.SearchByNameAndDate using guest.fullName and reservation.arrivalDate
CRM.LookupGuestProfile using guest.email or guest.loyaltyId
- Reservation found by name and date search →identity-verification
- Reservation appears to be a third-party booking third-party-booking PMS.RequestThirdPartyImport for booking.thirdPartySource →third-party-import-pending
- No reservation found after all searches →escalation-human
Third-Party Import Pending
- Guest agrees to wait, import completes successfully →identity-verification
- Guest prefers callback or notification CRM.CreateCallback for guest.phone or guest.email →resolution-pending-notification
- Import fails after retry import-failed →escalation-human
Identity Verification
IDVerification.VerifyGuest using guest.fullName, guest.loyaltyId, and reservation.confirmationNumber
- Identity verified successfully identity-verified →room-readiness-check
- Identity cannot be verified after two attempts identity-failed →escalation-human
Room Readiness Check
PMS.CheckRoomStatus for reservation.roomType and reservation.specialRequests
- Room is ready and assigned room.number is available room-ready →room-assignment-confirm
- Room is not yet ready room-not-ready →room-not-ready-options
- No room available due to overbooking overbooked →escalation-human
Room Assignment Confirmation
DigitalKeySystem.IssueKey for room.number linked to guest.email or guest.phone
CRM.UpdateGuestProfile with check-in timestamp and room.number
PMS.RecordCheckIn for reservation.confirmationNumber
- Guest has additional requests additional-requests →special-requests-handling
- Guest is satisfied and done satisfied →resolution-checkin-complete
Room Not Ready — Options
- Guest requests luggage storage PMS.ArrangeLuggageStorage for guest.fullName →ready-room-alert-setup
- Guest requests lounge access PMS.GrantLoungeAccess for guest.loyaltyId →ready-room-alert-setup
- Guest wants notification only →ready-room-alert-setup
- Guest is frustrated or insists on immediate room frustrated →escalation-human
Ready-Room Alert Setup
PMS.SetReadyRoomAlert for reservation.confirmationNumber, notify via guest.phone or guest.email
- Guest has further needs additional-requests →special-requests-handling
- Guest is happy to wait satisfied →resolution-pending-notification
Special Requests Handling
PMS.UpdateSpecialRequests for reservation.confirmationNumber with reservation.specialRequests
CRM.LogGuestPreference for guest.loyaltyId
- Request logged successfully, guest is satisfied →resolution-checkin-complete
- Request cannot be fulfilled, requires manager input →escalation-human
Folio Review
BillingSystem.GenerateFolio for reservation.confirmationNumber
BillingSystem.SendItemizedFolio to guest.email with folio.itemizedUrl
- Guest confirms all charges are correct confirmed →checkout-processing
- Guest has a question about a charge question →folio-explanation
- Guest disputes a charge dispute →charge-dispute
Folio Explanation
kb.billing-policy — review applicable rate, tax, and incidental policies
- Guest accepts the explanation confirmed →checkout-processing
- Guest still disputes after explanation still-disputes →charge-dispute
Charge Dispute
- Dispute is valid and within adjustment authority adjustment-approved BillingSystem.ApplyAdjustment for dispute.amount →checkout-processing
- Dispute is valid but exceeds adjustment authority exceeds-authority →escalation-human
- Dispute is not supported by policy dispute-denied →dispute-denial-explanation
Dispute Denial Explanation
- Guest accepts and wants to proceed accepted →checkout-processing
- Guest wants escalation wants-escalation →escalation-human
Check-out Processing
BillingSystem.SettleFolio for reservation.confirmationNumber
PMS.RecordCheckOut for reservation.confirmationNumber
DigitalKeySystem.DeactivateKey for room.number
CRM.UpdateGuestProfile with check-out timestamp and stay summary
- Guest has feedback or further questions feedback →post-stay-feedback
- Guest is satisfied and done satisfied →resolution-checkout-complete
Post-Stay Feedback
CRM.LogFeedback for guest.loyaltyId and reservation.confirmationNumber
- Feedback logged, guest is done →resolution-checkout-complete
- Guest raises a serious concern or complaint serious-complaint →escalation-human
Outside Hours — Self-Service or On-Call
PMS.CheckSelfServiceKioskAvailability
- Self-service kiosk is available and guest agrees kiosk-ready DigitalKeySystem.IssueKioskKey for reservation.confirmationNumber →room-assignment-confirm
- Guest prefers on-call staff or kiosk is unavailable →escalation-human
Escalation to Human Agent
CRM.CreateUrgentCase for guest.fullName, reservation.confirmationNumber, and reason for escalation
PMS.FlagReservation with escalation status
Resolution — Check-in Complete
Resolution — Check-out Complete
Resolution — Pending Notification

Cancellation Request
Intake & Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
PolicyManagement.LookupPolicy using policy.number
- Identity confirmed and policy found confirmed →reason-capture
- Identity cannot be confirmed after two attempts unverified →escalation-identity-failure
- Policy number not found or does not match customer record mismatch →escalation-identity-failure
Reason Capture
CRM.LogInteraction tag: cancellation-request, policy.number
- Customer states price is too high or service dissatisfaction price-or-service →retention-offer
- Customer states they are switching providers switching →active-claim-check
- Customer states coverage no longer needed coverage-not-needed →active-claim-check
- Any other stated reason other-reason →active-claim-check
Retention Offer
kb.retention-offers — check available discounts and coverage adjustment options for policy.type
- Customer is open to hearing options interested →present-retention-options
- Customer declines and confirms they want to cancel declines-retention →active-claim-check
Present Retention Options
- Customer accepts a retention offer and wants to keep the policy retained PolicyManagement.ApplyRetentionChange →retention-confirmed
- Customer hears the options and still wants to cancel still-cancelling →active-claim-check
Retention Confirmed
DocumentDelivery.SendEmail to customer.email with updated policy summary
Active Claim Check
PolicyManagement.CheckActiveClaims for policy.number
- No active claims found no-claims →effective-date-check
- Active claim found on policy active-claim →escalation-active-claim
Effective Date Check
PolicyManagement.ValidateCancellationDate using cancellation.requestedDate and policy.effectiveDate
kb.cancellation-backdating-rules — check whether backdating is permitted for policy.type
- Requested date is today or in the future date-valid →cancellation-terms-review
- Requested date is in the past and backdating is permitted per policy rules backdating-permitted →cancellation-terms-review
- Requested date is in the past and backdating is not permitted backdating-not-permitted →flag-backdating-issue
Flag Backdating Issue
- Customer accepts today's date or a future date accepts-new-date →cancellation-terms-review
- Customer disputes the backdating limitation and refuses disputes-backdating →escalation-fee-or-policy-dispute
Cancellation Terms Review
BillingPayments.GetOutstandingBalance for policy.number
BillingPayments.CalculateRefund for policy.number and cancellation.requestedDate
- Customer confirms and wants to proceed confirmed-terms →authorization-check
- Customer disputes the cancellation fee disputes-fee →escalation-fee-or-policy-dispute
- Customer wants to reconsider reconsider →reason-capture
Authorization Check
kb.cancellation-authorization-rules — check whether policy.type requires a licensed agent or supervisor to authorize
- Standard policy — no additional authorization required standard-auth →process-cancellation
- Policy type requires licensed agent or supervisor authorization requires-supervisor →escalation-supervisor-authorization
Process Cancellation
PolicyManagement.CancelPolicy policy: policy.number, effectiveDate: cancellation.requestedDate
BillingPayments.ProcessRefund amount: policy.refundAmount, to: customer.email
CRM.UpdateRecord tag: policy-cancelled, policy.number, cancellation.reason
DocumentDelivery.SendEmail to customer.email with cancellation confirmation and cancellation.confirmationNumber
→cancellation-complete
Cancellation Complete
CRM.LogInteraction tag: cancellation-complete, policy.number, cancellation.confirmationNumber
Escalation — Active Claim on Policy
CRM.LogInteraction tag: escalation-active-claim, policy.number, claim.id, claim.status
CRM.CreateCase priority: high, tag: cancellation-blocked-active-claim, policy.number
Escalation — Identity Failure
CRM.LogInteraction tag: identity-verification-failed, policy.number
Escalation — Fee or Policy Dispute
CRM.CreateCase priority: high, tag: cancellation-dispute, policy.number, cancellation.reason
CRM.LogInteraction tag: escalation-dispute, policy.number
Escalation — Supervisor Authorization Required
CRM.LogInteraction tag: escalation-supervisor-auth-required, policy.number, policy.type
CRM.CreateCase priority: normal, tag: supervisor-auth-cancellation, policy.number

Branch / ATM Locator & Appointment Booking
Greeting & Intent Capture
- Customer wants to find a branch or ATM find-location →location-capture
- Customer wants to book an appointment book-appointment →account-verification
- Customer mentions a complaint or requests a manager complaint →escalation-human
- Intent is unclear or mixed unclear →clarify-intent
Clarify Intent
- Customer clarifies location lookup find-location →location-capture
- Customer clarifies appointment booking book-appointment →account-verification
- Customer remains unclear or frustrated frustrated →escalation-human
Location Capture
MapsGeolocation.DetectLocation from session context if available
- Location detected automatically from session location-detected →location-results
- Customer provides ZIP code or city manually location-provided →location-results
- Customer cannot or will not provide location no-location →location-fallback
Location Fallback
- Customer provides a ZIP or city after all location-provided →location-results
- Customer is satisfied and done done →resolution
- Customer wants to book an appointment instead book-appointment →account-verification
Location Results
BranchATMLocator.Search using customer.zip or customer.city, return top 3 branches and nearest ATMs
BranchATMLocator.SurfaceResults including branch.name, branch.address, branch.hours, branch.distance, branch.status, and atm.address, atm.distance
- One or more branches show as temporarily closed branch-closed →closed-branch-handling
- Customer selects a branch and wants to book an appointment book-appointment →account-verification
- Customer is satisfied with location info only info-only →resolution
- Customer asks about accessibility or language services accessibility →accessibility-check
Closed Branch Handling
BranchATMLocator.GetUpdatedHours for branch.name, surface branch.hours and branch.status
BranchATMLocator.Search for next nearest open branch, surface branch.address and branch.distance
- Customer wants to book at the open alternative book-appointment →account-verification
- Customer satisfied with updated info info-only →resolution
- Customer frustrated or escalates frustrated →escalation-human
Accessibility Check
BranchATMLocator.FilterByAccessibility using customer.accessibilityNeeds and customer.languagePreference
- Accessible branch found and customer wants to book book-appointment →account-verification
- Accessible branch found and customer wants info only info-only →resolution
- No fully accessible branch available nearby no-accessible-branch →escalation-human
Account Verification
CRM.LookupCustomer using customer.phone or customer.email
- Existing customer confirmed account-verified →appointment-type-capture
- Customer is not an existing account holder no-account →non-account-holder-handling
- Unable to verify account status verification-failed →manual-account-check
Manual Account Check
CRM.LookupCustomer using customer.phone or customer.email
- Account found account-verified →appointment-type-capture
- Still unable to verify verification-failed →non-account-holder-handling
Non-Account Holder Handling
- Customer wants branch or ATM info only find-location →location-capture
- Customer interested in opening an account new-account →escalation-specialist
- Customer wants to book a general appointment anyway book-appointment →appointment-type-capture
Appointment Type Capture
- Customer requests a standard appointment type standard-appointment →datetime-capture
- Customer requests a specialized appointment such as mortgage, business banking, or wealth management specialist-appointment →escalation-specialist
- Customer describes a complaint or sensitive issue complaint →escalation-human
Date & Time Capture
AppointmentScheduler.CheckAvailability for appointment.type at branch.name on appointment.preferredDate at appointment.preferredTime
- Slot is available slot-available →appointment-confirmation
- Requested slot is unavailable slot-unavailable →offer-alternative-slot
- Branch has no availability on preferred date no-availability →offer-alternative-branch
Offer Alternative Slot
AppointmentScheduler.GetNextAvailable for appointment.type at branch.name
- Customer accepts the next available slot accepts-slot →appointment-confirmation
- Customer wants a different date or time different-datetime →datetime-capture
- Customer wants to try a different branch different-branch →offer-alternative-branch
Offer Alternative Branch
BranchATMLocator.Search for next nearest branch with availability for appointment.type on appointment.preferredDate
AppointmentScheduler.CheckAvailability at alternative branch
- Customer accepts alternative branch and slot accepts-slot →appointment-confirmation
- Customer wants to try yet another date or branch different-datetime →datetime-capture
- Customer frustrated or wants to escalate frustrated →escalation-human
Appointment Confirmation
AppointmentScheduler.BookAppointment for customer.email, appointment.type, appointment.preferredDate, appointment.preferredTime at branch.name
Twilio.SendSMS to customer.phone with confirmation details: appointment.confirmationNumber, branch.name, branch.address, appointment.preferredDate, appointment.preferredTime
Twilio.SendEmail to customer.email with the same confirmation details and a calendar invite attachment
- Customer has accessibility or special requirements accessibility →accessibility-check
- Customer is done done →resolution
- Customer wants to modify or cancel the appointment modify-appointment →appointment-modification
Appointment Modification
AppointmentScheduler.LookupAppointment using appointment.confirmationNumber
- Customer wants to reschedule reschedule →datetime-capture
- Customer wants to cancel cancel AppointmentScheduler.CancelAppointment for appointment.confirmationNumber →cancellation-confirmation
- Customer is unsure or has another question other →greeting-intent-capture
Cancellation Confirmation
Twilio.SendSMS to customer.phone confirming cancellation of appointment.confirmationNumber
Twilio.SendEmail to customer.email confirming cancellation
- Customer wants to rebook book-appointment →appointment-type-capture
- Customer is done done →resolution
Escalation to Specialist
CRM.CreateCase tagged specialist-appointment, linked to customer.email and appointment.type
AppointmentScheduler.RouteToAdvisor for appointment.type, surface available advisor and earliest slot
Twilio.SendEmail to customer.email with advisor contact information and next steps
- Customer has additional questions other →greeting-intent-capture
- Customer is satisfied done →resolution
Escalation to Human Agent
CRM.CreateCase priority: high, tagged branch-escalation, linked to customer.phone and customer.email
Resolution

Booking Cancellation / Refund Request
Identity Verification
CRM.LookupCustomer using customer.fullName and customer.email or customer.phone
- Customer record found and details match confirmed →booking-lookup
- Details provided do not match any record unrecognized →reverify-identity
- Customer is unable or unwilling to provide verification details refused →escalation-human
Re-verify Identity
CRM.LookupCustomer retry with alternate details
- Match found on second attempt confirmed →booking-lookup
- Still no match after second attempt unrecognized →escalation-human
Booking Lookup
ReservationManagement.GetBooking using booking.id
- Booking found and active confirmed →cancellation-policy-check
- Booking not found or ID invalid not_found →escalation-human
- Booking already cancelled already_cancelled →refund-status-check
Cancellation Policy Check
PolicyRulesEngine.GetCancellationPolicy for booking.id and booking.rateClass
- Booking is within the free-cancellation window free_cancel →confirm-cancellation-intent
- Booking is outside the free-cancellation window and fees apply fees_apply →outside-window-advisory
- Booking was made through a third-party OTA ota_booking →ota-redirect
Confirm Cancellation Intent
- Customer provides cancellation reason and confirms they want to proceed confirmed →process-cancellation
- Customer wants to change dates instead of cancelling date_change →escalation-human
- Customer is unsure and wants time to decide undecided →send-policy-summary
Send Policy Summary
NotificationService.SendEmail to customer.email with cancellation policy summary and free-cancellation deadline for booking.id
- Customer returns and confirms cancellation confirmed →process-cancellation
- Customer does not respond within 24 hours →escalation-human
Outside Window Advisory
kb.cancellation-policy — check fee waiver eligibility and alternative options for booking.rateClass
- Customer accepts the fee and wants to cancel accepted_fee →process-cancellation
- Customer wants to apply for a travel credit instead credit_preferred →process-travel-credit
- Customer cites extenuating circumstances such as medical or bereavement extenuating →extenuating-circumstances-review
- Customer disputes the fee and demands a waiver beyond advisory authority disputes_fee →escalation-human
Extenuating Circumstances Review
CRM.CreateCase tagged exception-review, linked to booking.id, reason: cancellation.reason
- Customer agrees to submit documentation doc_provided →flag-for-exception-review
- Customer cannot or will not provide documentation no_doc →escalation-human
Flag for Exception Review
CRM.UpdateCase with exception.documentType and submitted evidence
NotificationService.SendEmail to customer.email confirming exception review has been opened with case reference
- Exception review is opened and customer is notified →resolution-confirmation
Process Cancellation
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.InitiateRefund for refund.amount to booking.paymentMethod
CRM.UpdateRecord with cancellation details for customer.fullName
- Cancellation and refund initiated successfully success →send-confirmation
- System error prevents processing system_error →escalation-human
Process Travel Credit
ReservationManagement.CancelBooking for booking.id
PaymentProcessor.IssueTravelCredit for refund.creditValue linked to customer.email
CRM.UpdateRecord with credit issuance details
- Credit issued successfully success →send-confirmation
- System error during credit issuance system_error →escalation-human
Send Confirmation
NotificationService.SendEmail to customer.email with cancellation confirmation, refund.amount or refund.creditValue, and refund.timeline
- Confirmation sent successfully →resolution-confirmation
Refund Status Check
PaymentProcessor.GetRefundStatus for refund.transactionId
- Refund has been issued and should have been received issued →refund-already-issued
- Refund is still processing processing →advise-refund-in-progress
- No refund record found not_found →escalation-human
Refund Already Issued
- Customer confirms refund has now been received confirmed →resolution-confirmation
- Customer still has not received the refund after the expected window not_received →escalation-finance
Advise Refund In Progress
NotificationService.SendEmail to customer.email with refund status and refund.transactionId
- Customer is satisfied and no further action needed →resolution-confirmation
- Customer requests further escalation escalation_requested →escalation-finance
OTA Redirect
kb.ota-partner-contacts — retrieve contact instructions and cancellation process for booking.otaSource
NotificationService.SendEmail to customer.email with OTA redirect instructions and booking reference details
- Customer acknowledges and will contact OTA directly →resolution-confirmation
- Customer is frustrated and requests direct escalation escalation_requested →escalation-human
Escalation to Finance Team
CRM.CreateCase priority: high, tagged refund-not-received, linked to refund.transactionId
NotificationService.NotifyTeam to #finance-escalations with customer.fullName, booking.id, refund.amount, and refund.transactionId
→resolution-confirmation
Escalation to Human Agent
CRM.CreateCase priority: high, tagged cancellation-escalation, linked to booking.id
NotificationService.NotifyTeam to #reservations-support with customer.fullName, booking.id, and case summary
Resolution Confirmation

Billing / Statement Inquiry
Patient Greeting
- Patient provides all required identifiers →identity-verification
- Patient is unable or unwilling to provide identifiers →hipaa-decline
- Patient is clearly distressed or immediately demands a supervisor frustrated →escalation-human
Identity Verification
CRM.LookupPatient using patient.name, patient.dob, and patient.accountId
- All three identifiers match confirmed in system verified →inquiry-intake
- Partial match — one identifier missing or mismatched partial_match →identity-retry
- No matching record found no_match →hipaa-decline
Identity Retry
- Patient provides corrected identifiers CRM.LookupPatient →identity-verification
- Patient still cannot provide matching information →hipaa-decline
HIPAA Decline
CRM.LogInteraction note: identity verification failed, HIPAA protocol applied, no account data disclosed
Inquiry Intake
PatientBillingSystem.PullAccount using patient.accountId
- Patient identifies a specific charge or line item →charge-lookup
- Patient has a general question about their total balance →balance-explanation
- Patient reports they believe there is a billing error →billing-error-flag
- Patient disputes the clinical service itself was rendered or necessary →clinical-dispute
- Patient mentions possible fraud or identity theft suspected_fraud →escalation-human
Charge Lookup
PatientBillingSystem.GetChargeDetail for charge.lineItem on charge.dateOfService
InsuranceEligibilityClaims.GetClaimStatus using insurance.memberId and claim.id
EOBLookup.GetEOB for claim.id
- EOB received and processed, patient responsibility calculated eob_received →charge-explanation
- Claim submitted but EOB not yet issued — claim still pending claim_pending →pending-claim-advisory
- Claim was denied by insurer claim_denied →claim-denial-review
- Charge not found or appears duplicated charge_anomaly →billing-error-flag
Charge Explanation
kb.billing-patient-responsibility — reference plan benefit structure and cost-sharing explanation guidance
- Patient understands and accepts the explanation confirmed →payment-options
- Patient disagrees with the insurance calculation or wants to dispute the claim disputed →claim-denial-review
- Patient still has questions about the charge needs_clarification →charge-explanation-detail
Charge Explanation Detail
- Patient satisfied with detailed explanation confirmed →payment-options
- Patient remains unconvinced and wishes to dispute →claim-denial-review
- Patient becomes distressed frustrated →escalation-human
Balance Explanation
PatientBillingSystem.GetAccountSummary for patient.accountId
kb.billing-patient-responsibility — use for explaining deductible, copay, and coinsurance terms
- Patient understands the balance and wants to pay →payment-options
- Patient questions a specific line item on the account →charge-lookup
- Patient believes the total is incorrect →billing-error-flag
- Patient is unable to pay and asks about financial assistance kb.financial-assistance-programs →payment-options
Pending Claim Advisory
CRM.LogInteraction note: patient inquiry on pending claim claim.id, follow-up requested
CaseManagement.CreateCase type: pending-eob-followup, linked to claim.id, patient.accountId
- Patient is satisfied and wants no further action →resolution-close
- Patient wants to escalate because the claim has been pending an unusually long time frustrated →escalation-human
Claim Denial Review
InsuranceEligibilityClaims.GetDenialReason for claim.id
kb.claim-denial-codes — reference insurer denial code definitions and standard appeal pathways
- Denial is administrative or technical — can be corrected by rebilling admin_denial CaseManagement.CreateCase type: rebilling-request →billing-error-flag
- Denial is a coverage or clinical necessity issue requiring appeal clinical_denial →escalation-human
- Patient wishes to proceed independently and is satisfied with the information confirmed →resolution-close
Billing Error Flag
CaseManagement.CreateCase type: billing-review, priority: standard, linked to patient.accountId, charge.lineItem, charge.dateOfService
CRM.LogInteraction note: potential billing error flagged on charge.lineItem, case opened for specialist review
- Patient is satisfied and the case is documented →resolution-close
- Patient is not satisfied and demands immediate resolution frustrated →escalation-human
Clinical Dispute
CRM.LogInteraction note: patient disputes clinical service on charge.dateOfService, charge.description — routed to clinical review
CaseManagement.CreateCase type: clinical-dispute, priority: high, linked to patient.accountId, charge.dateOfService
- Patient acknowledges and accepts the routing →resolution-close
- Patient is distressed or requests immediate supervisor contact frustrated →escalation-human
Payment Options
kb.financial-assistance-programs — check eligibility criteria for charity care, sliding scale, or hardship plans
- Patient wants to pay now PaymentPortal.ProcessPayment using patient.accountId →payment-confirmation
- Patient wants to set up a payment plan PaymentPortal.CreatePaymentPlan using patient.accountId →payment-plan-setup
- Patient wants to apply for financial assistance CaseManagement.CreateCase type: financial-assistance-referral →resolution-close
- Patient declines to pay at this time and has no further questions →resolution-close
Payment Confirmation
PaymentPortal.ProcessPayment confirm transaction for patient.accountId, charge.amount
CRM.LogInteraction note: payment processed for charge.amount on account patient.accountId
- Patient has additional questions →inquiry-intake
- Patient is done →resolution-close
Payment Plan Setup
PaymentPortal.CreatePaymentPlan for patient.accountId
CRM.LogInteraction note: payment plan established for patient.accountId
- Patient confirms and is satisfied →resolution-close
- Patient has additional questions →inquiry-intake
Escalation to Human Agent
CRM.LogInteraction note: escalation triggered — reason documented, all context preserved for handoff
CaseManagement.CreateCase type: escalation, priority: high, linked to patient.accountId, claim.id
CRM.TransferWithContext to billing-escalation-queue, include patient.accountId, claim.id, charge.lineItem, interaction summary
Resolution / Close
CRM.LogInteraction note: inquiry resolved, case closed
CaseManagement.CloseCase for case.id if open

Balance / Transaction Inquiry
Intake
- Customer asks about current balance balance-inquiry →identity-verification
- Customer asks about a specific transaction or unrecognized charge transaction-inquiry →identity-verification
- Customer immediately alleges fraud or unauthorized access fraud-allegation →escalation-fraud
- Intent unclear — ask a clarifying question, then →identity-verification
Identity Verification
OTPAuth.SendOTP to customer.phone
- Customer provides correct OTP verified IdentityVerification.Confirm →account-lookup
- Customer cannot receive OTP, offer security question fallback otp-failed →security-question-fallback
- Customer has already failed one attempt — verification.attemptCount equals 1 →second-attempt-warning
Second Attempt Warning
- Customer provides correct OTP on second try verified IdentityVerification.Confirm →account-lookup
- Customer fails again unverified →escalation-identity-failure
Security Question Fallback
IdentityVerification.FetchSecurityQuestion for customer.accountNumber
- Customer answers correctly verified IdentityVerification.Confirm →account-lookup
- Customer answers incorrectly unverified →escalation-identity-failure
Account Lookup
CoreBanking.GetAccountSummary for customer.accountNumber including account.status, account.balance, account.availableBalance, and customer.accountType
- Account returned successfully and status is active account-found →inquiry-routing
- Account has a hold, freeze, or legal flag on it account-flagged →escalation-account-flag
- System returns an error or times out lookup-error →system-error
Inquiry Routing
- Customer needs current balance confirmed balance-inquiry →balance-delivery
- Customer needs a specific transaction explained transaction-inquiry →transaction-lookup
- Customer now mentions an unexpected fee fee-concern →fee-review
Balance Delivery
CoreBanking.GetAccountSummary to retrieve account.balance and account.availableBalance for customer.accountType
- Customer is satisfied and has no further questions satisfied →resolution
- Customer wants to see recent transactions as well wants-transactions →transaction-lookup
- Customer disputes a charge or says a transaction looks wrong transaction-dispute →transaction-lookup
- Customer raises concern about an unexpected fee fee-concern →fee-review
Transaction Lookup
CoreBanking.GetTransactionHistory for customer.accountNumber over inquiry.dateRange
- Transactions returned successfully transactions-found →transaction-detail
- No transactions found in the requested range no-results →no-transaction-found
- System returns an error lookup-error →system-error
Transaction Detail
CRM.LogInteraction tagged balance-transaction-inquiry, linked to customer.accountNumber and transaction.id
- Customer recognizes the transaction and is satisfied satisfied →resolution
- Customer does not recognize the transaction and believes it is fraudulent fraud-allegation →escalation-fraud
- Customer recognizes the merchant but wants to dispute the amount amount-dispute →escalation-fraud
- Customer has a question about a fee within the transaction fee-concern →fee-review
No Transaction Found
- Customer provides more details — retry lookup →transaction-lookup
- Customer still cannot locate the transaction and suspects fraud fraud-allegation →escalation-fraud
- Customer is satisfied and wants to close satisfied →resolution
Fee Review
CoreBanking.GetFeeDetail for fee.type and fee.amount on customer.accountNumber
kb.fee-waiver-policy — check one-time waiver eligibility criteria for customer.accountType and account standing
- Customer is eligible and agent applies waiver waiver-applied CoreBanking.ApplyFeeWaiver →fee-waiver-confirmation
- Customer is not eligible for a waiver waiver-ineligible →fee-waiver-declined
- Customer is upset and escalation is warranted needs-escalation →escalation-human
Fee Waiver Confirmation
CRM.LogInteraction tagged fee-waiver-applied, linked to customer.accountNumber and fee.type
- Customer is satisfied satisfied →resolution
- Customer has an additional question →inquiry-routing
Fee Waiver Declined
- Customer accepts the outcome satisfied →resolution
- Customer wants to speak to a specialist or is upset escalation-requested →escalation-human
System Error
CRM.LogIncident tagged system-error, linked to customer.accountNumber and customer.phone
CRM.ScheduleCallback for customer.phone at next available slot
- Customer agrees to callback and conversation ends satisfied →resolution
- Customer wants to try again immediately →account-lookup
- Customer is very frustrated and demands to speak with someone now escalation-requested →escalation-human
Escalation — Fraud or Dispute
FraudDetection.FlagAccount for customer.accountNumber tagged suspected-fraud, linked to transaction.id
CRM.CreateCase priority: high, tagged fraud-dispute, linked to customer.accountNumber and transaction.id
→fraud-alert-follow-up
Escalation — Identity Verification Failed
CRM.LogIncident tagged verification-failure, linked to customer.phone
CRM.CreateCase priority: high, tagged identity-lockout
Escalation — Account Flag
CRM.CreateCase priority: high, tagged account-flag-review, linked to customer.accountNumber
CRM.LogInteraction tagged account-flag-escalation
→escalation-human
Escalation — Human Specialist
CRM.CreateCase priority: high, tagged specialist-handoff, linked to customer.accountNumber
CRM.LogInteraction tagged escalation-human, with case summary
Resolution
CRM.LogInteraction tagged inquiry-resolved, linked to customer.accountNumber

Appointment Reschedule / Cancellation
Intake and Identity Verification
EHR.LookupPatient using patient.fullName and patient.dateOfBirth to retrieve the patient record and patient.id.
EHR.VerifyIdentity against patient.id and patient.accountNumber.
- Identity verified successfully verified →confirm-appointment-details
- Identity cannot be verified after two attempts unverified →identity-failure
- Patient reports an urgent symptom or medical concern during intake urgent_concern →clinical-triage-escalation
Identity Verification Failure
CRM.LogInteraction tagged identity-verification-failure, linked to patient.id
- Patient accepts and ends the call accepted →resolution-no-change
- Patient escalates or disputes the inability to verify frustrated →escalation-human
Confirm Appointment Details
EHR.GetAppointment for patient.id to retrieve appointment.date, appointment.provider, and appointment.id.
- Patient wants to reschedule reschedule →reschedule-reason
- Patient wants to cancel cancel →cancellation-reason
- Patient is vague or unsure unclear →clarify-intent
- Patient mentions a new or worsening symptom as the reason urgent_concern →clinical-triage-escalation
Clarify Intent
- Patient confirms reschedule reschedule →reschedule-reason
- Patient confirms cancellation cancel →cancellation-reason
- Patient mentions a symptom or health concern urgent_concern →clinical-triage-escalation
Reschedule — Reason Capture
CRM.LogInteraction tagged reschedule-request, linked to appointment.id
- Patient provides a reason and preferred window has_preference →check-slot-availability
- Patient has no preference and any slot works no_preference →check-slot-availability
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Check Slot Availability
SchedulingPortal.GetAvailableSlots for appointment.provider within the patient's preferred window.
- Slots available with the same provider within the acceptable window slots_found →offer-new-slot
- No slots available with the same provider within the acceptable window no_slots →no-availability-options
- New slot requires eligibility check due to insurance or date change eligibility_check_needed →insurance-eligibility-check
Offer New Slot
SchedulingPortal.PresentSlots to surface top three available options.
- Patient selects a slot slot_selected SchedulingPortal.BookAppointment →confirm-reschedule
- Patient wants to see more options more_options SchedulingPortal.GetAvailableSlots extended range →offer-new-slot
- Patient changes mind and wants to cancel instead cancel →cancellation-reason
- Patient cannot find a suitable time no_match →no-availability-options
No Availability Options
- Patient accepts the next available slot with the same provider same_provider SchedulingPortal.BookAppointment →confirm-reschedule
- Patient accepts a different provider different_provider SchedulingPortal.GetAvailableSlots alternative providers →offer-new-slot
- Patient wants to join the waitlist waitlist SchedulingPortal.AddToWaitlist for patient.id and appointment.provider →waitlist-confirmed
- Patient is dissatisfied or requests provider callback frustrated →escalation-human
Insurance Eligibility Check
EligibilityVerification.CheckCoverage using patient.id and insurance.status for newAppointment.date.
- Coverage confirmed for the new date eligible →offer-new-slot
- Coverage issue detected — patient may owe out of pocket ineligible →insurance-issue-flag
- Eligibility check inconclusive inconclusive →escalation-human
Insurance Issue Flag
- Patient wants to proceed anyway proceed →offer-new-slot
- Patient wants to speak with billing billing →escalation-human
- Patient decides to cancel instead cancel →cancellation-reason
Cancellation — Reason Capture
EHR.CheckCancellationWindow for appointment.id to retrieve appointment.cancellationWindow.
CRM.LogInteraction tagged cancellation-request, linked to appointment.id
- Within the cancellation window, no fee applicable no_fee →process-cancellation
- Inside the late-cancellation or no-show fee window fee_applicable →late-cancellation-notice
- Patient mentions a symptom or clinical concern as the reason urgent_concern →clinical-triage-escalation
Late Cancellation Notice
kb.cancellation-fee-policy — reference the applicable fee schedule and patient notification requirements.
- Patient acknowledges and confirms cancellation confirmed →process-cancellation
- Patient disputes the fee or requests a waiver disputes_fee →escalation-human
- Patient decides to keep the appointment instead keep_appointment →resolution-no-change
Process Cancellation
EHR.CancelAppointment for appointment.id, recording reason.change.
SchedulingPortal.ReleaseSlot for appointment.id.
CRM.UpdateRecord tagged cancelled, linked to patient.id and appointment.id.
Twilio.SendNotification to patient.preferredContact with cancellation confirmation referencing appointment.date and appointment.provider.
- Confirmation sent and patient has no further questions →resolution-complete
- Patient wants to reschedule after all reschedule →reschedule-reason
Confirm Reschedule
EHR.UpdateAppointment replacing appointment.id with new slot details: newAppointment.date, newAppointment.time, newAppointment.provider.
CRM.UpdateRecord tagged rescheduled, linked to patient.id.
Twilio.SendNotification to patient.preferredContact with reschedule confirmation including newAppointment.date, newAppointment.time, and newAppointment.provider.
- Patient confirms receipt and has no further questions →resolution-complete
- Patient has an additional question or concern follow_up →resolution-complete
Waitlist Confirmed
CRM.UpdateRecord tagged waitlisted, linked to patient.id and appointment.provider.
- Patient has no further needs →resolution-complete
- Patient wants to also reschedule with a different provider in the meantime reschedule →no-availability-options
Clinical Triage Escalation
CRM.LogInteraction tagged clinical-concern, priority: high, linked to patient.id and appointment.id.
EHR.FlagForTriage for patient.id with note: patient reported symptom concern during scheduling interaction.
- Triage nurse or clinical staff available to take the transfer →escalation-human
- After-hours: no clinical staff available Twilio.SendNotification urgent triage message to on-call line →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, linked to patient.id and appointment.id, tagged for appropriate queue based on reason.
CRM.LogInteraction with full context: appointment.date, appointment.provider, reason.change, escalation trigger.
Resolution — No Change Made
CRM.LogInteraction tagged no-change, linked to patient.id.
Resolution — Complete
CRM.LogInteraction tagged resolved, linked to patient.id.
- Patient has no further needs no_further_needs →session-closed
- Patient has another request another_request →intake-and-verification
Session Closed
CRM.CloseCase linked to patient.id.

Account Closure Request
Intake and Identity Verification
CRM.LookupCustomer using customer.fullName and customer.dateOfBirth
IdentityVerification.InitiateCheck for customer.fullName and customer.dateOfBirth
- Verification passes confirmed →account-selection
- Verification fails on first attempt unconfirmed →verification-retry
- Account has an active fraud or legal hold flagged by IdentityVerification.InitiateCheck hold_detected →escalation-human
- Customer is linked to a business or trust account entity_account →escalation-human
Verification Retry
IdentityVerification.SecondaryCheck using additional customer-provided details
- Verification passes on retry confirmed →account-selection
- Verification fails again unconfirmed →escalation-human
Account Selection
CoreBanking.GetAccountList for verified customer record
- Customer provides a valid account number confirmed →compliance-screening
- Customer is unsure which account or requests guidance needs_help →account-selection-assist
- Customer becomes uncooperative or hostile hostile →escalation-human
Account Selection Assist
CoreBanking.GetAccountList — surface account type, last four digits, and current status for each account
- Customer confirms account selection confirmed →compliance-screening
- Customer still cannot identify the account unconfirmed →escalation-human
Compliance and AML Screening
ComplianceAML.ScreenAccount for account.number
CRM.LogInteraction note: closure request initiated for account.number
- Account clears compliance screening confirmed →account-balance-check
- Account flagged for elevated risk or AML concern high_risk →compliance-review
- Account has an existing legal or regulatory hold legal_hold →escalation-human
Compliance Review
- Agent determines low-risk flag, safe to proceed →account-balance-check
- Agent determines elevated risk requiring human review needs_review →escalation-human
Account Balance and Pending Transaction Check
CoreBanking.GetAccountDetail for account.number — retrieve account.balance, account.pendingTransactions, and account.status
- Balance is zero and no pending transactions clear →closure-reason-collection
- Pending transactions exist on the account pending →pending-transactions-hold
- Outstanding balance or linked loan exists on the account balance_owed →outstanding-balance-hold
Pending Transactions Hold
kb.account-closure-policy — confirm settlement window and closure processing rules for account.type
- Customer agrees to automatic post-settlement closure confirmed CoreBanking.QueueClosureRequest for account.number →closure-reason-collection
- Customer prefers to wait and call back declined →closure-pending-confirmation
- Customer escalates or disputes the pending transactions disputed →escalation-human
Closure Pending Confirmation
CRM.LogInteraction note: customer deferred closure for account.number pending transaction settlement
Outstanding Balance Hold
kb.account-closure-policy — confirm balance resolution requirements for account.type
- Customer agrees to resolve balance and requests options confirmed →escalation-human
- Customer requests more time and wants to call back declined →closure-pending-confirmation
- Customer disputes the balance disputed →escalation-human
Closure Reason Collection
- Customer cites fees or dissatisfaction with service frustrated →retention-offer
- Customer cites a neutral or logistical reason neutral →funds-destination-collection
- Customer shows signs of financial distress distressed →financial-distress-flag
Financial Distress Flag
ComplianceAML.FlagForReview note: potential financial distress indicator on account.number
CRM.LogInteraction note: distress signal detected during closure request for customer.fullName
- Customer agrees to speak with a specialist confirmed →escalation-human
- Customer declines and wishes to continue closure declined →funds-destination-collection
Retention Offer
kb.retention-offers-policy — surface eligible retention offers for account.type and customer.fullName profile
- Customer is open to retention options interested →escalation-human
- Customer declines and confirms they want to close confirmed →funds-destination-collection
Funds Destination Collection
ACHTransfer.ValidateDestination for transfer.destinationAccount and transfer.destinationBank
- Destination account validated successfully confirmed →closure-confirmation
- Destination account cannot be verified unconfirmed →funds-destination-hold
- Customer has no external account and requests a check CoreBanking.GetAccountDetail →closure-confirmation
Funds Destination Hold
CRM.LogInteraction note: closure held for account.number — destination account unverifiable
SecureMessaging.SendConfirmation to customer.email note: closure request on hold pending valid transfer details
Closure Confirmation
CoreBanking.SubmitClosureRequest for account.number — generate closure.requestId and closure.timeline
ACHTransfer.InitiateTransfer of account.balance to transfer.destinationAccount
CRM.LogInteraction note: closure submitted for account.number, request ID closure.requestId
SecureMessaging.SendConfirmation to customer.email with closure.requestId and closure.timeline
- Customer has additional questions or requests needs_help →post-closure-support
- Customer is satisfied and ends interaction confirmed →resolution
Post-Closure Support
kb.account-closure-policy — reference post-closure FAQs including statement access, tax documents, and credit impact
- Question answered and customer satisfied confirmed →resolution
- Issue requires specialist involvement or account access complex →escalation-human
Escalation to Human Agent
CRM.CreateCase priority: high, tagged account-closure-escalation, linked to account.number
CRM.LogInteraction note: escalation triggered — reason logged under agent.caseId
SecureMessaging.SendNotification to assigned specialist with customer profile, account.number, and case summary
Resolution
CRM.LogInteraction note: closure interaction completed for customer.fullName, account account.number





