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.

Healthcare Support Agent▣ voice▣ text

Symptom Triage / Nurse Line Routing

HealthcareTriageNursingPatient Support

Identity Verification

Say"Thank you for calling. I'm your Healthcare Support Agent. To get started, can I get your full name and date of birth?"

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

Say"I'm going to ask you a few questions about your symptoms so I can make sure you get the right care as quickly as possible. Please describe what you're experiencing today."

Collect patient.primarySymptom, patient.symptomDuration, and patient.symptomTrend.

Say"Are you currently taking any medications, or do you have any conditions I should know about — such as diabetes, heart disease, or a compromised immune system?"

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

Say"What you're describing could be a medical emergency. Please call 911 right now or have someone nearby call for you. Do not drive yourself. I will stay on the line with you while you do this."

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

Say"Help is on the way. Stay as calm as you can, stay on the line if you're able, and unlock your door if someone can do that safely. We are documenting this call and your care team will be notified."

EHR.AddEncounterNote "Patient acknowledged emergency redirect. 911 advised. Case case.id created."

CRM.UpdateCase case.id status: emergency-dispatched

Triage Assessment

Agent
evaluate patient.primarySymptom, patient.symptomDuration, patient.symptomTrend, patient.currentMedications, and patient.knownConditions against triage protocols.
Goal:determine the appropriate care tier — self-care, nurse callback, urgent care within 4 hours, or emergency services — using validated clinical decision support.
Constraints:never downgrade a symptom set that includes high-risk modifiers (immunocompromised, anticoagulant use, age over 65 with fever, pediatric under 3 months with fever); always escalate to nurse if the protocol confidence score is below threshold; never advise the patient that symptoms are "nothing to worry about" without a completed protocol match.
Tools available:TriageEngine.EvaluateSymptoms, TriageEngine.GetProtocol, kb.schmitt-thompson-protocols, EHR.GetPatientRiskFlags
  • 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

Say"Based on what you've described, this sounds like something you can manage safely at home. Here's what I'd recommend: triage.protocol. Please monitor your symptoms over the next 24 hours."
Say"If your symptoms worsen — especially if you develop a fever above 103°F, difficulty breathing, or you feel significantly worse — please call us back right away or go to your nearest urgent care."

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

Say"Based on your symptoms, I recommend you visit an urgent care center within the next 4 hours. The nearest in-network location to you is facility.nearest. Do you need directions or help finding another location?"
Say"Please do not delay — if at any point your symptoms feel significantly worse before you arrive, call 911 immediately."

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

Say"I'm connecting you with one of our registered nurses who will call you back at patient.phone. Your estimated wait time is nurse.callbackEta. Please stay near your phone and call 911 immediately if your symptoms get significantly worse before then."

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

Say"I wasn't able to verify your identity in our system, but your health and safety are the priority. I'm going to collect your symptoms now and make sure a nurse follows up with you."

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

Say"I've flagged your case for a nurse to review and call you back. Can I confirm the best number to reach you?"

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

Say"I understand, and I respect your decision. I do want to make sure you have all the information — based on your symptoms, our recommendation is triage.tier level care. Delaying care in some situations can lead to symptoms becoming more serious."
Say"If you change your mind, please don't hesitate to call us back at any time, day or night. I'm going to note your preference in your record."

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

Say"Is there anything else I can help you with today? Please remember — if your symptoms change or worsen at any point, call us back right away or call 911 if it feels like an emergency. Take care."

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

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Service Activation / New Line Setup

TelecomActivationNew LineSales

Identity Verification

Say"Welcome! I can help you get a new line activated today. First, I need to verify your account. Can I have your account holder name, account number, and PIN?"

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

Say"I wasn't able to verify with that PIN. Let me try a secondary check — can you confirm the billing address on the account and the last four digits of the payment method on file?"

CRM.VerifySecondaryIdentity using account.billing_address and account.payment_method

  • Secondary verification passes confirmed →eligibility-check
  • Secondary verification fails unconfirmed →escalation-identity

Eligibility Check

Say"Great, I've verified your identity. Let me check if your account is eligible to add a new line."

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

Say"I can see there's a hold or outstanding balance on your account that needs to be resolved before we can add a new line. Let me pull up the details."

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

Say"Perfect. Now I'll need a few details about the device and SIM. Could you provide the IMEI number of the device and the SIM card number you'll be using?"

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

Say"I'm sorry — the IMEI you've provided is either flagged as blacklisted or isn't compatible with our network. I can't activate service on that device."

kb.compatible-device-catalog — retrieve compatible device options and current upgrade promotions for account.id

Say"Here are some compatible options available to you, including any current upgrade or trade-in offers. Would you like to explore one of those, or do you have another device you'd like to try?"
  • 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

Say"The SIM number provided doesn't appear to be recognized in our system, or it may already be linked to another line. Let's sort that out."

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

Say"Your device and SIM look good. Now let's choose the right plan. What kind of plan or package are you looking for? I can walk you through current options, or if you already have one in mind, just let me know."

kb.plan-catalog — retrieve available plans, pricing, and promotional offers for account.id

Say"Based on your account, here are the plans available to you. Can you confirm which one you'd like to go with?"
  • Customer selects a plan confirmed →number-selection
  • Customer is unsure or wants more information undecided →plan-recommendation

Plan Recommendation

Agent
recommend the best-fit plan for the customer based on account usage history, plan.selected interest signals, and kb.plan-catalog.
Goal:identify and present up to three plan options that match the customer's stated needs (data, budget, family vs. individual) and close on a selection.
Constraints:never recommend a plan above the customer's stated budget ceiling; always disclose activation fees and contract terms upfront; do not offer promotions not currently active in kb.plan-catalog.
Tools available:CRM.GetUsageHistory, kb.plan-catalog, kb.current-promotions
  • 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

Say"Now let's set up your phone number. Would you like us to assign you a new number, or would you like to port an existing number from another carrier?"
  • 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

Say"No problem — we can port your number over. I'll need a few details from your current carrier: the phone number you want to port, the account number with your current carrier, the PIN or password on that account, and the billing address they have on file."

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

Say"Your port request has been submitted. The number transfer can take up to 24 hours depending on your current carrier. In the meantime, we'll assign a temporary number so your line is active right away. You'll receive a notification once your original number has fully transferred."

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

Say"I wasn't able to validate the port request with the details provided. This can happen if the account number or PIN with your current carrier doesn't match their records. Could you double-check those details and try again?"
  • 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

Say"Almost there. There is an activation fee of plan.activation_fee for this line. I'll apply that to the payment method on file. Shall I go ahead?"

PaymentProcessor.ChargeActivationFee of plan.activation_fee to account.payment_method

  • Payment succeeds payment_success →line-provisioning
  • Payment declines payment_declined →payment-retry

Payment Retry

Say"It looks like the payment didn't go through on the card on file. You can try a different payment method, or I can check if you're eligible for an installment option to spread out the activation cost."

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

Say"Payment confirmed — I'm now provisioning your new line. This will just take a moment."

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

Say"Your new line is live! Your number is line.assigned_number. To confirm everything is working, try making a quick call or loading a webpage — let me know what you see."
Detect
customer confirms service is working
  • Customer confirms call or data is working confirmed →resolution-success
  • Customer reports no signal or data issues not_working →activation-troubleshooting

Activation Troubleshooting

Say"Let's do a quick check. First, try restarting the device and make sure it isn't in airplane mode. Also confirm the SIM is seated properly."

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

Say"I'm sorry — I wasn't able to verify your identity after two attempts. For your account's security, I'm unable to proceed with the activation. You're welcome to visit one of our stores with a valid photo ID to complete this in person."

CRM.LogFailedVerification for account.id with verification.attempts

CRM.CreateTicket tagged identity-verification-failed, linked to account.id

Escalation — Fraud Flag

Say"I'm not able to process this request at the moment. A specialist will reach out to you to assist further. Please don't worry — no changes have been made to your account."

CRM.FlagAccountForReview tagged fraud, for account.id

CRM.CreateTicket priority: high, tagged fraud-flag, linked to account.id

Escalation — Billing or Eligibility

Say"Let me connect you with our billing team who can look into your account balance and eligibility in more detail and get this sorted for you."

CRM.CreateTicket tagged billing-hold, linked to account.id

Escalation — Device Upgrade

Say"I'm transferring you to our device sales team. They'll walk you through compatible devices, upgrade programs, and any current trade-in offers."

CRM.CreateTicket tagged device-upgrade-referral, linked to account.id

Escalation — Store Referral

Say"For the SIM issue, the easiest path is to visit one of our stores where they can issue a new SIM and activate it on the spot. I'll note your account so they have the full context when you arrive."

CRM.CreateTicket tagged sim-store-referral, linked to account.id

Escalation — Porting Issue

Say"I wasn't able to complete the port request from our side — this sometimes requires direct coordination with your current carrier. I'm escalating this to our porting specialist team, who will contact you within one business day."

CRM.CreateTicket priority: high, tagged port-in-escalation, linked to account.id, including port.number and port.carrier

Escalation — Provisioning Error

Say"It looks like there was a technical issue provisioning your line on our network. I'm escalating this to our technical team right now — they'll have this resolved and will reach out to confirm once your line is fully active."

CRM.CreateTicket priority: high, tagged provisioning-error, linked to account.id and line.assigned_number

Escalation — Technical Support

Say"Since the line shows as active on our end but you're still having trouble, I'm escalating to our technical support team who can run a deeper diagnostic. They'll follow up with you shortly."

CRM.CreateTicket tagged device-technical-issue, linked to account.id and line.assigned_number

Resolution — Success

Say"Fantastic — everything is up and running. Your new line is active, your number is line.assigned_number, and your plan is set. Is there anything else I can help you with today?"

CRM.CloseTicket for account.id tagged activation-complete

Resolution — Deferred

Say"No problem at all — take your time. When you're ready to move forward, just reach back out and we'll have everything ready to pick up right where we left off. Have a great day!"

CRM.SaveSessionState for account.id with plan.selected and device.imei

Resolution — Payment Abandoned

Say"Understood — we'll hold the order details for now. When you're ready to complete the activation, just contact us again and we'll resume from here. Thanks for your time."

CRM.SaveSessionState for account.id with plan.selected and line.assigned_number tagged payment-pending

Resolution — Closed

Say"Of course — no problem. If you change your mind or need anything else, we're always here to help. Have a great day!"

CRM.LogInteraction for account.id tagged activation-not-completed

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ chat▣ voice▣ sms

Quote Request Intake

InsuranceSalesQuotes

Intake Greeting

Say"Hi there! I'm your insurance support agent. I'd be happy to help you get a quote today. To get started, could you tell me what type of coverage you're looking for — for example, auto, home, life, renters, or something else?"
Detect
intent on customer reply
  • 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

Say"No problem at all — let me ask a few quick questions so I can point you in the right direction."
Agent
recommend the most appropriate coverage product based on the customer's situation.
Goal:identify the best-fit coverage type (auto, home, life, renters, umbrella, etc.) by asking clarifying questions about assets, dependents, and existing coverage.
Constraints:never recommend a specific policy dollar amount without running the quoting engine; only recommend product categories; ask no more than three clarifying questions before making a recommendation.
Tools available:kb.coverage-product-guide, kb.underwriting-eligibility-overview
  • 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

Say"Great choice. I'll now collect a few details so we can generate your quote. This should only take a couple of minutes."

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

Say"First, could I get your full name, email address, phone number, and mailing address?"

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

Say"Thanks, customer.name. Now I'll need a few details specific to the coverage you're looking for. I'll guide you through them one at a time."
Agent
collect all risk-relevant details required for the selected coverage.type.
Goal:gather complete risk inputs — vehicle make/model/year and VIN for auto (risk.vehicleInfo), property address and year built for home (risk.propertyAddress), age and health status for life (risk.age, risk.healthStatus) — plus coverage.desiredLimits, coverage.startDate, and coverage.currentProvider.
Constraints:never ask for Social Security Number or financial account numbers; if a customer declines to answer a required field, note it as missing and continue; do not proceed to quoting with fewer than 80% of required fields complete.
Tools available:CRM.UpdateContact, kb.risk-field-requirements, kb.coverage-product-guide
  • 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

Detect
underwriting eligibility result
  • 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

Detect
quoting engine response
  • Quote successfully generated quote_ready →quote-presentation
  • Quoting engine error or timeout on first attempt error →quoting-retry

Quoting Retry

Say"I'm sorry — our quoting system took a moment. Let me try one more time."

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

Say"Great news, customer.name! I have your quote ready. Your estimated premium for coverage.type coverage is quote.premium per month, at the quote.tier coverage tier, with your requested limits. Your quote ID is quote.id."

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

Say"I've sent a copy to your email and a summary link to your phone. Would you like to move forward and bind this coverage, get a different tier, or have a licensed agent walk you through your options?"
Detect
customer response intent
  • 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

Say"Wonderful! I'll connect you with our policy team to complete the binding process. Your quote ID quote.id and all your details are ready for them."

PolicyManagement.InitiateBinding with quote.id, customer.name, customer.email, coverage.startDate

CRM.UpdateContact status: quote-accepted, linked to quote.id

Say"You're all set. Someone from our team will reach out within one business day to finalize your policy documents and payment details. Is there anything else I can help you with today?"
  • Customer has additional questions →intake-greeting
  • Customer is done — no further questions →resolution-complete

Underwriter Review

Say"Thank you for sharing those details, customer.name. Your risk profile requires a brief review by one of our underwriting specialists before we can finalize a quote. This is a standard step for certain coverage requests."

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

Say"We'll reach out to you at customer.email within 1 to 2 business days with your quote or any follow-up questions. Would you like me to also arrange a call with a licensed agent in the meantime?"
  • 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

Say"No problem at all — I've saved everything you've shared so far. One of our team members will follow up with you within 24 hours to help complete your quote at a time that's convenient for you. Is there a preferred time or contact method we should use?"

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

Say"I apologize — our quoting system is not available right now, and I want to make sure you get an accurate quote as quickly as possible. I'm going to connect you with a licensed agent who can complete this for you directly."

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

Say"I'm transferring you now to a licensed agent who has all the details you've shared with me. You won't need to repeat anything. Thank you for your patience, customer.name."

Resolution — Follow-up Scheduled

Say"You're all set, customer.name. We'll be in touch soon to continue where we left off. Don't hesitate to reach back out if you have any questions in the meantime."

CRM.UpdateContact status: follow-up-scheduled

Resolution — Complete

Say"Thank you for choosing us, customer.name. Your quote is confirmed and our team will be in touch shortly. Have a great day!"

CRM.UpdateContact status: quote-delivered

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms

Prescription Refill Request

HealthcarePharmacyRefill

Patient Verification

Say"Thank you for calling. I'm here to help with your prescription refill. To get started, can I have your full name and date of birth?"

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

Say"Thank you, patient.fullName. Which prescription would you like to refill today — including the medication name and dosage?"

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

Say"I can see your prescription for prescription.name prescription.dosage, last filled on prescription.lastFillDate, with prescription.refillsRemaining refill(s) remaining. Your pharmacy on file is pharmacy.onFile. Would you like to send it there, or use a different pharmacy?"
  • 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

Say"No problem. Please provide the name and address of your preferred pharmacy and I'll update that for you now."

Epic.UpdatePreferredPharmacy with pharmacy.name and pharmacy.address

CRM.UpdatePatientRecord with updated pharmacy.name

Say"Your preferred pharmacy has been updated to pharmacy.name. I'll send your refill request there."

→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

Say"Your refill request for prescription.name has been sent to pharmacy.name. It should be ready by refill.estimatedReadyTime. Is there anything else I can help you with?"
  • Patient has another request another →patient-verification
  • Patient confirms they are done done →resolution-confirmed

No Refills Remaining

Say"It looks like there are no refills remaining on your prescription.name prescription. I'll send a refill authorization request to your prescribing provider, provider.name, on your behalf. They'll review it and respond typically within one to two business days."

Epic.SendRefillAuthorizationRequest to prescription.prescriberId for patient.memberId and prescription.name

CRM.LogInteraction with patient.memberId, note: refill authorization requested, no refills remaining

Say"The request has been sent. You'll be notified once your provider responds. If you have an urgent need, please let me know and I can escalate this."
  • Patient indicates urgent medical need urgent →escalation-clinical
  • Patient acknowledges and is satisfied acknowledged →resolution-pending-authorization

Prescription Expired

Say"I can see that your prescription for prescription.name expired on prescription.expiryDate. A new prescription requires your provider to issue a fresh script, which typically means scheduling an appointment. I can help you get that set up."

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

Say"I'll connect you to scheduling now so you can book a time with provider.name to get a new prescription issued."

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

Say"I want to make sure you get the right support. I'm transferring you to a clinical staff member now who can assist with your request directly."

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

Say"Let me connect you with a member of our support team who can look into this further and make sure everything is taken care of."

CRM.CreateCase priority: high, tagged: refill-escalation, linked to patient.memberId, prescription.name

Resolution — Confirmed

Say"Wonderful — your refill for prescription.name is on its way to pharmacy.name and should be ready by refill.estimatedReadyTime. Take care and don't hesitate to reach out if you need anything."

CRM.LogInteraction with patient.memberId, note: refill successfully submitted, case closed

Resolution — Pending Authorization

Say"We've sent your refill authorization request to provider.name. Once they respond, your pharmacy will be notified. If you haven't heard back in two business days, please don't hesitate to call us again."

CRM.LogInteraction with patient.memberId, note: patient informed of pending provider authorization

Resolution — Appointment Booked

Say"Your appointment request has been submitted with provider.name. You'll receive a confirmation shortly. Once you're seen, your provider can issue a new prescription for prescription.name."

CRM.LogInteraction with patient.memberId, note: appointment booked for expired prescription renewal

Resolution — No Action

Say"Understood — no action taken today. If you change your mind or your situation becomes more urgent, please don't hesitate to call us back. Take care."

CRM.LogInteraction with patient.memberId, note: patient declined appointment scheduling, no refill action taken

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ sms

Policy Coverage Question

InsuranceCoverageSupport

Inbound Coverage Inquiry

Say"Thank you for reaching out. I'm here to help you understand your coverage. Could I please have your full name and policy number to get started?"
  • Customer provides name and policy number →identity-verification
  • Customer doesn't have policy number handy →collect-account-details

Collect Account Details

Say"No problem at all. I can look you up another way. Could you please provide the email address or phone number associated with your account?"

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

Say"Just to protect your account, I'll need to verify a couple of details. Can you confirm your date of birth and the zip code on file?"
Detect
verification outcome
  • 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

Say"Great, I've pulled up your policy.type policy, which is active from policy.effectiveDate through policy.expirationDate. Now, could you describe the situation you'd like me to check coverage for?"
  • Customer describes a specific situation or event →coverage-assessment
  • Customer is distressed or alarmed about a potential denial frustrated →acknowledge-concern

Acknowledge Concern

Say"I completely understand — it can be really stressful not knowing whether something is covered, and I want to make sure you get an accurate answer. I'm not going to make any promises I can't back up, but let's walk through this together. Can you tell me what happened?"
Detect
sentiment on follow-up response
  • Customer calms down and describes the situation neutral →coverage-assessment
  • Customer remains very distressed or mentions legal action frustrated →escalation-licensed-agent

Coverage Assessment

Agent
evaluate whether coverage.situation is covered under policy.type using the coverage rules engine and policy knowledge base.
Goal:produce a clear coverage determination — covered, excluded, or gray-area — along with applicable deductible and limit details from policy.deductible and policy.coverageLimits.
Constraints:never make a binding coverage promise on ambiguous or high-value situations; do not interpret legal or disputed policy language; flag any situation involving a loss above USD 10000 for underwriter review regardless of apparent outcome.
Tools available:CoverageRulesEngine.Evaluate, DocumentRetrieval.GetPolicyWording, kb.coverage-exclusions-guide, kb.policy-terms-glossary
  • 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

Say"Good news — based on your policy, this situation is covered. Your applicable deductible is policy.deductible, and the coverage limit for this type of loss is policy.coverageLimits. I'd recommend reviewing the relevant section of your policy document, which I can send to customer.email if you'd like."
  • 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

Say"I want to be transparent with you — based on what you've described, this situation may fall under an exclusion in your policy. Let me explain what that means and why, and then we can talk about your options."
Say"Your policy does have a section that addresses this. I can walk you through it now, or I can connect you with an underwriting specialist who can do a formal review — especially if the circumstances are complex or there are details that might change the picture."
  • 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

Say"I can see there's already a claim on file related to this — claim reference claim.existingId. Your claims team will be in touch, or you can contact them directly to get a status update. Is there anything else about your coverage I can clarify today?"
  • Customer has more questions →coverage-assessment
  • Customer is satisfied →resolution-close

New Claim Guidance

Say"If you'd like to move forward, I can help you start a claim. You'll need to have the date and description of the incident, any photos or documentation you have, and receipts or estimates if applicable. Would you like me to open a claim now, or do you need more time to gather information?"
  • 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

Say"I can see that your policy with us is currently inactive — it appears coverage lapsed on policy.expirationDate. I'm sorry to be the bearer of that news. Unfortunately, I'm not able to confirm coverage for a situation that occurred after that date, but I can connect you with our renewals team to talk about reinstating or updating your 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

Say"I'm running into a technical issue retrieving your policy details right now, and I don't want to give you inaccurate information. I'd like to collect a few notes manually and have a specialist follow up with you within one business day. Would that work for you?"

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

Say"I've flagged your situation for a formal review by one of our underwriting specialists. They'll be able to give you a definitive answer and will reach out to you at customer.email or customer.phone within two business days. I'll make sure all the context I have is passed along so you don't have to repeat yourself."
  • 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

Say"I'm going to connect you with a licensed agent who has the authority to give you a definitive answer and discuss your options in full. Please hold just a moment while I bring them in — and I'll pass along everything we've discussed so you won't need to start over."

Policy Renewal Reinstatement

CRM.LogInteraction tag: renewal-interest, linked to policy.number

Say"Let me pass you to our renewals team who can walk you through your reinstatement options and any updated terms. They'll be able to tell you exactly what it would take to get coverage active again."

→policy-renewal-reinstatement-flow

Resolution Close

CRM.CloseInteraction tag: resolved, linked to policy.number

Say"Is there anything else I can help you with today regarding your coverage or your policy?"
  • 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
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ email

Payment / Billing Inquiry

TravelHospitalityBillingPaymentsDisputes

Intake & Verification

Say"Thank you for contacting us. I'd be happy to help you with your billing inquiry. Could you please share your booking confirmation number and the name and email address on the reservation?"
  • 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

Say"For the security of your account, I'm unable to access reservation or payment details without verifying your identity first. I'll need at least your booking confirmation number, the email address used at the time of booking, or the last four digits of the payment card used."
  • Customer supplies one or more valid identifiers CRS.LookupReservation →charge-identification
  • Customer is still unable to verify identity →escalation-human

Charge Identification

Say"I can see your reservation for booking.property covering booking.stayDates. Which charge would you like to discuss — could you tell me the amount and approximate date you saw it?"

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

Agent
review the matched charge against reservation details, policy documents, and payment history to produce a clear plain-language explanation for the customer.
Goal:explain exactly what the charge is, why it was applied, and cite the relevant policy or agreement accepted at booking.
Constraints:do not speculate about charges that cannot be confirmed in the reservation record; do not offer adjustments at this step — route to goodwill-options or billing-error-review if a correction may be warranted.
Tools available:PMS.GetReservationDetails, PMS.GetPaymentHistory, kb.billing-charge-definitions, kb.cancellation-policy, kb.resort-fee-policy
Say"Let me explain what that charge is for. charge.description was applied on charge.date in the amount of charge.amount. This is a standard fee outlined in your booking terms."
  • 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

Say"I completely understand your frustration. While this fee is outlined in the booking terms, I'd like to see what options I can offer you as a gesture of goodwill."
Agent
determine the best available goodwill offer within authorization limits based on customer history, loyalty tier, and policy.
Goal:offer a meaningful resolution that retains customer satisfaction without exceeding the authorized adjustment threshold.
Constraints:never waive fees that exceed agent.adjustmentLimit without escalation approval; never promise a refund without confirming eligibility first; check loyalty tier before offering points compensation.
Tools available:LoyaltyPlatform.GetAccountStatus, LoyaltyPlatform.AwardPoints, RefundAdjustmentTool.ApplyPartialWaiver, kb.goodwill-adjustment-policy
  • 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

Agent
assess whether the charge is a genuine billing error (duplicate, misapplied fee, incorrect amount, or post-checkout incidental not released).
Goal:confirm or rule out a billing error using reservation data, gateway records, and policy, then determine correct remediation action.
Constraints:do not initiate a reversal for amounts above agent.adjustmentLimit without escalation; always generate a case reference before communicating a timeline to the customer; never confirm a refund amount until the correction is validated in the system.
Tools available:PMS.GetPaymentHistory, PaymentGateway.LookupTransaction, RefundAdjustmentTool.InitiateCorrection, Salesforce.CreateCase, kb.billing-charge-definitions
  • 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

Say"I've confirmed the billing error and submitted a correction request. Your case reference number is case.referenceNumber. The adjustment will be reflected within 5 to 10 business days depending on your bank. You'll receive an updated receipt at customer.email shortly."
  • 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

Say"I can see that a refund of refund.amount was processed on refund.date. Depending on your bank or card issuer, this can take 5 to 10 business days to appear on your statement. If you don't see it after that window, please contact us and we'll investigate further with the payment processor."
  • 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

Say"This adjustment requires review by our billing specialist team, as it falls outside what I can authorize directly. I've opened a case with reference number case.referenceNumber and our team will contact you at customer.email within 2 business days with a resolution."

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

Say"I want to make sure this gets the attention it deserves. I'm escalating your case to a member of our billing team who has the tools to resolve this for you. Your case reference is case.referenceNumber and you can expect to hear from us at customer.email within 1 business day."

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

Say"I take this very seriously. I've flagged the transaction and escalated this to our fraud and security team as a priority. Your case reference is case.referenceNumber. A specialist will contact you at customer.email within 24 hours. In the meantime, you may also want to contact your card issuer directly to report the charge."

Resolution Confirmed

Say"I'm glad we were able to sort that out for you. Is there anything else I can help you with regarding your reservation or account?"

Salesforce.UpdateCase status: resolved, linked to booking.confirmationNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Outage Report & Status Check

TelecomSupportOutageNetwork

Inbound Contact

Say"Thank you for reaching out to support. I'm here to help with any service issues you're experiencing. To get started, can I have your account number or the phone number registered to your account?"
  • 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

Say"Thanks, customer.name. I can see your account. Can you briefly describe what you're experiencing — for example, no signal, slow data, or a complete outage? And is this affecting one device or multiple?"
Detect
customer intent and severity of issue
  • 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

Say"I can confirm there is a known outage affecting your area. Our network team is actively working on it. The estimated restoration time is outage.estimatedRestoration. Your incident reference number is outage.incidentId."
  • 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

Say"Would you like me to send you automatic updates on this outage via SMS or email as soon as the service is restored?"
  • 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

Say"I don't see any active outages on record for your area at the moment. Let's try a few quick troubleshooting steps to see if we can restore your service."

kb.telecom-troubleshooting-guide — retrieve steps appropriate for customer.serviceType and customer.symptoms

Say"Can you try restarting your device and checking whether your SIM or cable connections are secure? Let me know once you've tried that and whether service has returned."
Detect
outcome of troubleshooting attempt
  • 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

Say"I've created a trouble ticket for your account. Your reference number is ticket.referenceNumber. A technician will follow up with you. Would you prefer contact via SMS or email?"
  • 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

Say"I'm not able to access account details without verifying your identity, but I can share general outage information. You can check our public outage map at our website or call back with your account details and we can look into your specific situation."

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

Say"There is a known service disruption in some areas that our team is actively working to resolve. For a personalized update and a reference number tied to your account, please call back or verify your identity when you're ready."
  • Customer wants to try verification again →identity-verification
  • Customer acknowledges and ends contact →resolution-confirmed

Public No Outage

Say"We don't currently show any widespread outages in our system. For account-specific diagnostics, please contact us with your account number or registered phone number so we can investigate further."
  • 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

Say"I'm sorry — our outage system isn't responding right now. I've flagged this with our network operations team and arranged for a callback to your registered number as soon as possible. I apologize for the inconvenience."

Escalation — Specialist

Ticketing.EscalateTicket for ticket.id to senior support queue

CRM.LogInteraction with escalation reason and customer.accountNumber

Say"I understand this has been frustrating and I want to make sure you get the right help. I'm escalating your case to a senior specialist who will be in touch with you shortly. Your reference number remains ticket.referenceNumber."

Escalation — Safety

CRM.LogInteraction flagged safety_risk with customer.accountNumber and customer.symptoms

NOCDashboard.RaiseSafetyFlag with customer.serviceAddress

Say"Your safety is our top priority. If you need to reach emergency services right now, please try an alternative phone or ask a neighbor. I am escalating your case immediately as a priority incident and our team will contact you as soon as possible."

Resolution Confirmed

Say"Is there anything else I can help you with today?"
  • 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

Say"Thank you for your patience, customer.name. We appreciate you being a valued customer. Don't hesitate to reach out if you experience any further issues. Have a great day."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ chat▣ voice▣ sms

New Account Onboarding

Financial ServicesOnboardingKYCCompliance

Intent Capture

Say"Welcome! I'm here to help you open a new account today. Before we get started, could you tell me what type of account you're looking to open — for example, a personal checking, savings, or investment account?"
Detect
customer account type intent
  • 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

Say"No problem at all. Let me walk you through the most common options. A checking account is great for everyday spending, a savings account helps you earn interest on funds you set aside, and an investment account is for growing wealth over time. Which of those sounds closest to what you need?"

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

Say"Great choice! To open your account, I'll need to collect some information. This typically takes just a few minutes and everything is encrypted and secure. Let's start with your full legal name and date of birth."

CRM.CreateDraftRecord to initialize a draft customer profile

Say"Next, I'll need your government-issued ID number — such as a passport or driver's license number — along with your Social Security Number or Tax ID."
Say"Finally, I'll need your current address, employment status, approximate annual income, and the funding method you plan to use for your initial deposit."

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

Say"It looks like the funding method or deposit amount you've selected may not meet our current requirements. Let me explain what we can accept."

kb.funding-methods-policy — retrieve supported funding sources and minimum initial deposit thresholds

Say"We accept bank transfers, debit card funding, and wire transfers for initial deposits. The minimum opening deposit for this account type is noted in our policy. Would you like to use an alternative funding method, or would you prefer I walk you through the options?"
  • 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

Say"I'm now going to submit your information for identity verification. This is a standard step required to open any account and usually takes just a moment."

KYCService.SubmitVerification with customer.fullLegalName, customer.dateOfBirth, customer.govIdNumber, customer.taxId, customer.address

Detect
KYC verification result
  • 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

Say"I wasn't able to verify your identity with the information provided. This can sometimes happen due to a name mismatch or a data entry issue. Could you double-check your details, or provide an alternative government-issued ID document?"

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

Say"Thank you — your identity has been verified. I'm now running a brief compliance check, which is required by law for all new accounts. This will only take a moment."

ComplianceScreening.RunCheck with customer.fullLegalName, customer.taxId, customer.dateOfBirth, customer.address

Detect
compliance screening result
  • 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

Say"Everything has cleared. I'm now creating your account — this will just take a moment."

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

Say"Your account is all set! Here's what you need to know to get started."
Say"You'll receive a welcome email shortly with your login credentials, a link to download our mobile app, and instructions for setting up two-factor authentication. Your initial deposit will be reflected within one to two business days depending on your funding method."

kb.new-account-faq — retrieve top questions about first login, mobile app access, and deposit timelines

Say"Is there anything else you'd like to know about accessing your account, setting up transfers, or any of our other services?"
  • 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

Say"I'd be happy to help you get to the right place. Business and trust accounts require a specialist who can walk you through the additional documentation and requirements for those account types."

CRM.CreateLeadRecord with customer.phone, customer.email, customer.accountType, note: specialist-referral

Say"I'm transferring your details to a specialist now. You can expect a call or message within one business day. Is there a preferred contact time or number I should pass along?"
  • 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

Say"I'm sorry, but I'm not able to proceed with your account opening at this time. For regulatory reasons, your application requires a review by our compliance team. You will be contacted directly within two business days with next steps. We appreciate your patience."

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."

Say"I'm going to connect you with one of our specialists who will be able to assist you further. Thank you for your patience — you're in good hands."

Session Close

Say"Thank you for reaching out to us today. If you have any questions in the future or would like to revisit opening an account, we're always here to help. Have a great day!"

CRM.CloseSession with session outcome logged

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat

Insurance Coverage Check

HealthcareInsuranceCoverage

Patient Intake

Say"Thank you for calling. I'm here to help you check your insurance coverage. To get started, may I have your full name and date of birth?"

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

Say"Thank you, patient.fullName. Can you please provide your insurance carrier name and your member ID? You can find those on the front of your insurance card."

EligibilitySystem.VerifyMember using patient.insuranceCarrier and patient.memberId

Detect
eligibility system response
  • 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

Say"Great, I can see your coverage is active as of coverage.effectiveDate. Now, what service, procedure, or specialist visit would you like me to check? If you have a CPT code from your provider, that will help me look this up quickly."

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

Say"No problem. Can you tell me the name of the provider or facility you are planning to visit, and describe the type of care — for example, a specialist consultation, imaging, lab work, or a surgical procedure?"
  • 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

Detect
network and benefit lookup result
  • 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

Say"Good news — provider.name is in-network under your patient.insuranceCarrier plan. Here are your cost-sharing details for this service."

kb.benefit-tier-definitions — confirm explanation of coverage.tier, copay, and deductible language

Say"Your plan tier for this service is coverage.tier. Your copay is coverage.copay per visit. Your annual deductible is coverage.deductible, and based on your current usage, coverage.deductibleMet has been applied so far."

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

Say"One thing to keep in mind — this service does require a referral from your primary care provider before your visit. Without a referral on file, the claim may not be covered."

kb.referral-process — retrieve steps for obtaining and submitting a referral

Say"To get a referral, please contact your primary care provider's office and ask them to submit a referral for service.type to provider.name. Once the referral is on file with your insurer, you will be all set to schedule your visit."
  • Patient understands and confirms next steps →confirmation-close
  • Patient has questions or disputes the referral requirement →escalation-human

Prior Auth Guidance

Say"I do want to let you know that service.type requires prior authorization from patient.insuranceCarrier before the service can be covered."

kb.prior-auth-process — retrieve steps and typical timelines for prior authorization submission

Say"Prior authorization must be submitted by your ordering provider or facility — not by you directly. They will need to send clinical documentation to patient.insuranceCarrier. The review typically takes 3 to 15 business days. I can log this so your provider's office receives a notification."

PriorAuthTracker.CreateCase using patient.memberId and service.cptCode and provider.name

Say"I've created a prior authorization tracking case, reference number auth.caseId, and your provider can use that to follow up with the insurer."
  • Patient acknowledges and has no further questions →confirmation-close
  • Patient wants to dispute that prior auth is required →escalation-human

Out-of-Network Options

Say"I checked the provider directory and provider.name is currently out-of-network for your patient.insuranceCarrier plan. Let me explain your options."

kb.out-of-network-benefits — look up whether the plan includes out-of-network benefit coverage and applicable cost-sharing

Detect
out-of-network benefit availability
  • 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

Say"Your plan does have out-of-network benefits, though your cost-sharing will be higher than in-network. Typically, out-of-network services are subject to a separate deductible and a higher coinsurance percentage. I recommend contacting patient.insuranceCarrier directly to get the exact figures before your appointment."
  • 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

Say"I can help you find an in-network provider for service.type. Let me search the provider directory."

ProviderDirectory.FindInNetworkProviders using service.type and patient.insuranceCarrier

Say"Based on your plan and location, here are some in-network providers who offer the same type of care. I can share their names and contact information so you can schedule directly."
  • 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

Say"I checked your insurance information and unfortunately your coverage with patient.insuranceCarrier does not appear to be active at this time. This could be due to a lapse in premium payment, an open enrollment issue, or an employer benefits change."

kb.enrollment-support — retrieve guidance on coverage reinstatement and insurer contact process

Say"I would recommend contacting patient.insuranceCarrier directly using the member services number on your insurance card to resolve the enrollment status. Once your coverage is reinstated, we would be happy to complete this coverage check for you."
  • Patient wants to escalate or believes coverage should be active →escalation-human
  • Patient understands and will contact insurer →confirmation-close

System Error

Say"I apologize — I'm running into a technical issue retrieving your eligibility information from our system right now. This can happen occasionally when there is a delay syncing with the insurer's records."
Say"I have a couple of options for you: I can try reaching the payer portal directly, or I can arrange a callback once our team resolves the issue. Which would you prefer?"

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

Say"To summarize what we covered today: your patient.insuranceCarrier coverage is active as of coverage.effectiveDate, service.type with provider.name is confirmed coverage.tier, and your cost-sharing is coverage.copay copay with coverage.deductible deductible, of which coverage.deductibleMet has been met."
Say"Is there anything else you would like me to check, or do you have any other questions about your benefits?"

CRM.LogInteraction with coverage check summary, patient.memberId, service.cptCode, and outcome

Detect
patient response
  • 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

Say"You're all set. If you have any other questions about your coverage before your appointment, don't hesitate to reach out. Take care, patient.fullName."

CRM.CloseInteraction with resolved status and patient.memberId

Escalation to Specialist

Say"I want to make sure you get the most accurate help possible. I'm going to connect you with one of our coverage specialists who can review this in more detail and, if needed, coordinate directly with patient.insuranceCarrier on your behalf."

CRM.CreateCase priority: high, tagged coverage-escalation, linked to patient.memberId and service.cptCode

CRM.LogInteraction with escalation reason and full session context

Say"I've created a case for you and a specialist will be with you shortly. Your reference number is auth.caseId. Thank you for your patience."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ sms▣ text▣ email

General FAQ Retail

RetailFAQSupport

Intake

Say"Hi there! I'm here to help. What question can I answer for you today?"
Detect
intent category of customer question
  • 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

Say"Here are the details for your nearest store: store.address. Store hours are store.hours. Is there anything else I can help you with?"
Detect
sentiment on customer reply
  • 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

Say"Happy to help with returns and exchanges. Here's our current policy: items in original condition can be returned within 30 days of purchase with a receipt. Some exclusions apply for final-sale and perishable items. Would you like more detail on any part of this?"
Detect
sentiment and intent on customer reply
  • 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

Say"We accept all major credit and debit cards, PayPal, Apple Pay, and Google Pay. We also offer financing through our retail credit partner — you can apply at checkout. Is there a specific payment method you'd like to know more about?"
Detect
sentiment and intent on customer reply
  • 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

Say"Here's what I found for product.name: product.availability. Would you like details on pricing, specifications, or nearby store availability?"
Detect
intent on customer reply
  • 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

Say"Here are the full details I have on product.name. If you need information I haven't covered or want to check stock at a specific location, I can look into that as well."
Detect
intent on customer reply
  • 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

Say"To help with anything related to your order or account, I'll need to verify your identity first. Could you please provide your order number or the email address associated with your account?"
Detect
customer response
  • 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

Say"I've pulled up your account. What would you like help with regarding your order or account details?"
Detect
intent on customer reply
  • 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

Detect
whether FAQ content confidently covers the question
  • 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

Say"Based on our current information, here's the answer to your question: I'll do my best to keep this accurate and up to date. If anything has changed recently, our team can confirm the latest details."
Detect
sentiment on customer reply
  • 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

Say"That's a great question, and I want to make sure I give you accurate information rather than guess. I don't have a definitive answer on hand for this one. Let me connect you with a team member who can confirm the details."

→escalation-human

Policy Pushback

Say"I completely understand your frustration, and I appreciate you sharing that. Our policies are set by the team, and I want to make sure your feedback reaches the right people. Would you like me to connect you with a team member who can discuss this further or explore options with you?"
Detect
customer response
  • 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

Say"I'm going to connect you with one of our team members who will be able to help you directly. Thank you for your patience — someone will be with you shortly."

Resolution

Say"Glad I could help! If you ever have more questions about our store, products, or policies, don't hesitate to reach out. Have a great day!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ — Travel & Hospitality

TravelHospitalityFAQSupport

Inbound Question

Say"Hi there, thanks for reaching out to us! I'm here to help. What question can I answer for you today?"

CRM.LookupCustomer by customer.phone or customer.email

Detect
intent on customer's opening message
  • 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

Say"I want to make sure I give you the most accurate answer. Could you tell me a bit more about what you're looking for? For example, is this about a reservation you already have, or are you planning a future trip?"
Detect
sentiment and intent on customer reply
  • 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

Say"I can pull up our cancellation policy for you. Are you asking about an existing reservation, or planning ahead for a new booking?"
  • Customer references an existing reservation →clarify-property
  • Customer is asking prospectively →retrieve-general-faq

Clarify Property

Say"Policies and features can vary by property. Could you let me know which hotel or location you're asking about, or share your reservation details if you have them handy?"

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

Agent
retrieve and synthesise the relevant policy or amenity detail for property.name based on the customer's question and customer.loyaltyTier.
Goal:deliver a single, clear, accurate answer tailored to the identified property and the customer's membership tier where benefits differ.
Constraints:never invent or extrapolate policy details not present in kb.property-policies; always note if a policy differs for loyalty tiers above or below customer.loyaltyTier; flag date-sensitive policies that apply specifically within reservation.checkIn to reservation.checkOut window.
Tools available:kb.property-policies, PMS.GetPropertyDetails, LoyaltyPlatform.GetTierBenefits
  • 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

Agent
retrieve and synthesise the best available general answer from the knowledge base for the customer's question.
Goal:give the customer a clear, concise answer based on standard brand-wide policy when a specific property is not yet identified.
Constraints:never present a general policy as property-specific; if the answer is known to vary by location, always flag that and offer to look up the specific property; do not fabricate information absent from kb.general-faq.
Tools available:kb.general-faq, kb.property-policies, CRM.GetCustomerProfile
  • 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

Say"Let me check your loyalty tier details right away."

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

Say"Travel requirements such as visa rules and health documentation can change quickly. Let me share what we have on file, though I'll also point you to the official sources for the most current information."
Agent
retrieve known entry, visa, and health requirements for property.location valid around reservation.checkIn.
Goal:give the customer a useful starting summary while making clear these details are time-sensitive and subject to change.
Constraints:always append a disclaimer that official government and airline sources must be consulted for final confirmation; never confirm whether a customer personally meets a visa or health requirement; do not provide medical advice.
Tools available:kb.travel-entry-requirements, kb.general-faq
  • 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

Say"Great news — here's what I found for you: question.raw"
Say"Is there anything else about your trip or reservation I can help with?"
Detect
sentiment and follow-up intent on customer reply
  • 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

Say"Here's the information I have, though please note this may vary depending on specific dates, rate types, or your membership level — I'll flag those nuances for you."
Say"For travel regulations or health requirements, I strongly recommend also checking the official government or airline websites to confirm the latest rules before you travel."
Detect
sentiment and follow-up intent on customer reply
  • 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

Say"I want to be upfront with you — I don't have enough detail on hand to give you a fully accurate answer on that specific point, and I'd rather connect you with someone who does than risk giving you incomplete information."
Say"I can transfer you to one of our specialists who will be able to help. Would that work for you?"

CRM.LogInteraction note: unanswered FAQ topic, question.raw, property.name

Detect
customer preference on transfer
  • 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

Say"I'm going to connect you with one of our specialists right now — they'll have full context on your question so you won't need to repeat yourself."
Say"Thank you for your patience, customer.name. A specialist will be with you shortly."

Resolution

Say"Wonderful — I'm glad I could help! If you ever have more questions before or during your trip, don't hesitate to reach out. Have a great journey!"

CRM.LogInteraction note: FAQ resolved, topic.category, property.name, customer.loyaltyTier

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ sms

Flight/Trip Disruption Support

TravelHospitalityDisruptionRebooking

Intake & Verification

Say"Thank you for contacting Travel Support. I'm here to help you through this disruption as quickly as possible. Can I please have your booking confirmation number and the name on the reservation?"

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

Say"For your security I need to verify your identity before making any changes. I'll ask you a couple of quick questions."

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

Say"I can see your booking, booking.passengerName. Can you tell me what's happening right now — is your flight cancelled, delayed, or are you dealing with something else like a hotel or connection issue?"

PNR.GetAffectedSegment for booking.confirmationNumber to pre-populate trip.affectedSegment

Detect
nature of disruption reported by customer
  • 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

Say"I'm sorry about the disruption to your journey. Let me pull up the best available options to get you to trip.destination as quickly as possible."

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

Agent
evaluate available rebooking alternatives against booking.itinerary and customer preference.
Goal:identify the best one or two options that minimize total travel time and respect fare class entitlements, including partner carriers if same-carrier options are inadequate.
Constraints:never rebook onto a flight that creates a connection under 45 minutes at an international hub; do not offer partner carrier options that exceed the authorized fare difference threshold per kb.rebooking-policy without escalation; always check if minor.travelingAlone is true before proceeding.
Tools available:GDS.SearchAvailability, GDS.CheckSeatMap, kb.rebooking-policy, PNR.GetAffectedSegment
  • 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

Say"I've found a flight that works — here are the details: rebooking.option. Does this work for you?"
  • 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

Say"There are no remaining seats available on our carrier for this route today, but I can get you on a partner airline. The next available option is rebooking.option. Shall I go ahead and book that for you?"

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

Say"No problem — let me pull up what you've booked and make sure everything looks right, including any fare differences or duplicate charges you may have incurred."

PNR.GetAffectedSegment to compare original booking.itinerary against new booking

GDS.CheckFareDifference for rebooking.fareDifference

Detect
outcome of fare and duplicate charge review
  • 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

Say"I'm sorry to hear about the accommodation issue. Can you tell me more — is the hotel overbooked, is there a room condition problem, or something else?"

kb.hotel-disruption-policy — review duty-of-care obligations, walk procedures, and compensation entitlements

Detect
hotel disruption type
  • 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

Say"I've located an alternative property that meets your needs. I'll go ahead and transfer your reservation now and make sure tonight's cost is covered. Does that work for you?"
  • 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

Say"Let me check your refund eligibility based on the type of disruption and your fare rules."

kb.refund-policy — verify refundability for booking.fareClass, disruption cause trip.disruption.cause, and weather exception rules

Agent
determine the correct refund path and compensation entitlement for this disruption.
Goal:establish whether the customer qualifies for a full refund, partial refund, travel credit, or no refund, and calculate any applicable compensation per policy.
Constraints:never promise a cash refund for non-refundable fares outside of carrier-caused cancellations; always flag weather-caused disruptions as limited-compensation per kb.refund-policy before setting expectations; do not issue compensation exceeding USD 300 without escalation approval.
Tools available:PNR.InitiateRefund, CompensationTool.CalculateEntitlement, kb.refund-policy
  • 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

Say"I want to be upfront with you — because this disruption is weather-related, our policy limits what compensation we're able to offer. I know that's frustrating. Here's what I can do for you right now: compensation.voucherAmount in travel credit, and I can waive the rebooking change fee."

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

Say"Based on your fare type and the circumstances, a refund isn't applicable here. However, I do want to make sure you're taken care of. Let me see what goodwill compensation I'm able to offer."

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

Say"You're all set. I'm sending your updated itinerary and any applicable vouchers to traveler.email right now. Is there anything else I can help you with before we wrap up?"

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

Say"I'm glad we could get that sorted for you. Safe travels, booking.passengerName — and don't hesitate to reach out if you need anything else on your journey."

Salesforce.CloseCase with outcome logged and customer satisfaction noted

Escalation — Secure Verification

Say"For your protection, I'm unable to make changes to this booking without completing identity verification. I'm going to connect you with our secure verification team who can assist you through a different channel."

Salesforce.CreateCase priority: high, tagged identity-verification-required

IdentityVerification.RouteToSecureChannel for traveler.phone or traveler.email

Escalation — Human Agent

Say"This situation needs the attention of one of our senior travel specialists who has the authority to handle this for you. I'm transferring you now and sharing all the details so you won't need to repeat yourself."

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

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ email▣ voice

Damaged / Wrong Item Received

RetailSupportReturnsRefunds

Intake & Verify

Say"Hi, I'm sorry to hear about this — let's get it sorted for you right away. Can I start with your order number? If you don't have it handy, your account email or phone number works too."
  • 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

Say"I've pulled up your order. Can you tell me what happened — was the item damaged when it arrived, or did you receive the wrong item?"
  • 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

Say"Thank you — I've noted the issue with your item.description. To make sure we handle this correctly, I'd like to check your eligibility under our returns and replacements policy."

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

Say"Our policy asks for a photo of the damaged or incorrect item to process this quickly. Could you upload or send a photo? You can reply directly in this chat, email it back, or I can send you a secure upload link."

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

Agent
assess whether a goodwill exception is appropriate given order.value, customer.email history, and kb.returns-replacement-policy goodwill tier rules.
Goal:decide whether to waive the photo requirement and proceed with a replacement or refund without evidence, or escalate for human approval.
Constraints:never approve a goodwill waiver if order.value exceeds policy.autoApprovalThreshold; never grant more than one goodwill exception per customer account within 90 days; always log the exception reason in case.id.
Tools available:CRM.GetCustomerHistory, Policy.CheckGoodwillEligibility, kb.returns-replacement-policy
  • Goodwill waiver approved within constraints goodwill_approved →resolution-offer
  • Goodwill waiver outside constraints or repeat exception needs_review →escalation-human

Resolution Offer

Say"Great news — you're eligible for a resolution. Would you prefer a full replacement sent to your address on file, or a refund back to your original payment method? Either option works for us."
  • Customer prefers replacement →initiate-replacement
  • Customer prefers refund →initiate-refund
  • Customer is unsure, asks for more information →explain-resolution-options

Explain Resolution Options

Say"A replacement means we'll ship out a new item.description — delivery typically takes 3 to 5 business days. A refund returns the full amount to your original payment method within 5 to 7 business days. Which would you like to go with?"

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

Say"Done — your replacement item.description is on its way. You'll receive a confirmation with tracking shortly. Your confirmation number is resolution.confirmationNumber. Is there anything else I can help with?"

→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

Say"Your refund has been initiated and should appear within 5 to 7 business days. Your confirmation number is resolution.confirmationNumber. I'm sorry again for the trouble — is there anything else I can help with?"

→close-case

Outside Return Window

Say"I can see your order is outside our standard policy.replacementWindowDays-day return window, which means I'm not able to process a standard replacement or refund automatically. I want to make sure you're looked after, so let me check what options are available."

kb.returns-replacement-policy — check partial goodwill resolution eligibility for out-of-window orders

Approval
Slack.RequestApproval to #retail-support-escalations, approver: support_team_lead
Context sent:order.id, order.value, order.deliveryDate, item.issue, customer.email, policy window exceeded
  • 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

Say"I've been able to arrange a goodwill credit for your order — you'll receive a confirmation shortly with the details and your reference number resolution.confirmationNumber. I'm sorry we couldn't do a full replacement or refund on this occasion. Is there anything else I can help with?"

→close-case

Policy Decline

Say"I'm sorry — I've looked into every option available to me and your order falls outside the window where I'm able to process a replacement, refund, or goodwill credit. I completely understand that's disappointing, and I'm sorry I can't do more today. If you believe there's been an error, I can connect you with a specialist who may be able to help further."
  • Customer accepts the outcome →close-case
  • Customer wants to escalate or disputes the outcome →escalation-human

Delivery Unclear

ShippingCarrier.GetTrackingStatus for order.id

Say"It looks like your order may still be in transit or the delivery status hasn't updated yet. Let me check the latest tracking details for you."
  • 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

Say"I'm running into a system issue that's preventing me from pulling up your order details right now. I've flagged this for our team and you'll receive a callback within 24 hours to get this sorted. I'm really sorry for the inconvenience — can I confirm the best number to reach you?"
  • Customer confirms callback number CRM.UpdateCaseContactDetails →close-case
  • Customer prefers email follow-up Twilio.SendNotification confirmation to customer.email →close-case

Identity Unverifiable

Say"I want to help, but I'm not able to locate an order without at least an order number, email address, or phone number linked to the account. Could you check your confirmation email or the app for any of those details?"
  • 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

Say"I'm going to connect you with one of our senior support specialists who has the tools to handle this for you directly. I've shared all the details we've discussed so you won't need to repeat yourself. Thank you for your patience — someone will be with you shortly."

Close Case

CRM.CloseCase for case.id, log resolution type and resolution.confirmationNumber

Say"Thanks for reaching out, and I'm sorry again for the experience with your order. If you ever need anything else, we're here. Take care!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat

Complaint Escalation — Telecom

TelecomComplaintsEscalationSupport

Intake and Verification

Say"Thank you for reaching out. I understand you have a complaint you'd like escalated — I want to make sure this gets the attention it deserves. To get started, may I have your account number or the name on the account so I can pull up your details?"

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

Say"I can see your account, customer.name. Let me check whether there's an existing complaint on file for you."
  • 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

Say"It looks like this hasn't been formally logged yet — I'm going to create a new escalation case right now so nothing falls through the cracks."

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

Say"I want to make sure I have everything right before I escalate this. You've reported an issue with complaint.servicesAffected, and the nature of the complaint is complaint.nature. Is that accurate, and is there anything else you'd like added to the record?"
Detect
sentiment and completeness of customer response
  • 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

Agent
review the account history and escalation assignment to determine if case priority needs to be upgraded.
Goal:confirm whether the complaint warrants expedited handling based on account type, outage scope, prior compensation history, or repeat contact.
Constraints:never promise a resolution timeline shorter than the one returned by EscalationRouting.IdentifyTeam without senior approval; always flag business or critical infrastructure accounts for immediate upgrade.
Tools available:CRM.GetAccountSummary, CaseManagement.GetCaseDetails, EscalationRouting.IdentifyTeam, kb.escalation-priority-policy
  • 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

Approval
Slack.RequestApproval to #escalations-queue, approver: escalation_team_lead
Context sent:case.id, customer.accountNumber, complaint.nature, complaint.servicesAffected, case.escalationTeam, case.responseTimeline, complaint.compensationOffered
  • 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

Say"Your case has been escalated and assigned. Your case reference number is case.id. The case.escalationTeam team will be in touch within case.responseTimeline via customer.preferredContact. If you need to reference this, please quote case.id."

CommsLog.SendConfirmation to customer.preferredContact with case.id, case.escalationTeam, and case.responseTimeline

BillingPlatform.NoteAccount with escalation flag and case.id

Say"Is there anything else I can clarify before we wrap up? I want to make sure you feel confident that this is in hand."
  • 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

Agent
assess whether a goodwill credit or service adjustment is appropriate given the complaint history.
Goal:determine credit amount or gesture within policy limits and apply if approved.
Constraints:never offer a credit exceeding USD 150 without manager approval; never apply a second credit if complaint.compensationOffered already shows one was granted within the last 90 days; always document the decision in the case notes.
Tools available:BillingPlatform.ApplyCredit, CRM.GetAccountSummary, CaseManagement.GetCaseDetails, kb.compensation-credit-policy
  • 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

Say"I completely hear you, and I want you to know I take this seriously. My goal right now is to make sure your complaint gets to the right person with the full context — can I ask a couple of quick questions so I can do that properly?"

kb.de-escalation-guidelines — apply language and pacing guidance for hostile or distressed callers

Detect
sentiment shift after de-escalation attempt
  • 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
Say"I understand — given what you've mentioned, I'm going to make sure this is reviewed by the right team immediately. I'm flagging your case right now and you will be contacted directly."

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

Say"Your case, reference case.id, has been escalated directly to our compliance team. Someone will be in touch within one business day via customer.preferredContact. Please reference case.id in any further correspondence."

CommsLog.SendConfirmation to customer.preferredContact with case.id and compliance escalation notice

System Unavailable Fallback

Say"I'm sorry — our systems are temporarily unavailable, but I don't want that to delay your complaint. I'm taking full notes manually right now and will ensure this is entered and actioned as soon as systems are restored."

CommsLog.ManualNoteEntry with customer.name, customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, and timestamp

Say"Your verbal reference number for this interaction is case.id — please keep that handy. You can expect to hear from us within case.responseTimeline once our systems are back up. I sincerely apologise for the inconvenience."
  • 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

Say"I'm transferring you to a senior member of our team right now. They have full visibility of your case — you won't need to repeat anything. Thank you for your patience, customer.name."

Identity Escalation

Say"I want to help, but I need to protect your account by verifying your identity first. Unfortunately I wasn't able to confirm your details this time. I can send a verification link to the contact details on your account — would that work for you?"

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

Say"Thank you for your patience throughout this, customer.name. Your escalation is logged under case.id, and the right team will be in touch within case.responseTimeline. We appreciate you giving us the chance to put this right."

CaseManagement.UpdateCase with resolved_handoff status and final interaction notes

CommsLog.CloseInteraction with customer.accountNumber and case.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ email

Complaint / Feedback Intake

HealthcarePatient RelationsComplaintsGrievanceFeedback

Intake Greeting

Say"Thank you for reaching out to our Patient Relations team. My name is your Healthcare Support Agent, and I'm here to make sure your concern is heard and handled with care. May I have your full name and date of birth so I can pull up your record?"
  • 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

Say"Thank you. I'm also going to ask for your patient ID or member number if you have it handy — that just helps me make sure I have the right record."
  • 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

Say"I appreciate your patience. I want to make sure I understand what you'd like to share with us today. Could you briefly describe the nature of your concern or feedback — for example, whether it relates to your care experience, a specific provider, billing, or something else?"
Detect
intent and nature of patient submission
  • 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

Say"I want you to know that what you're sharing matters, and I'm not going to rush you. Take all the time you need — I'm here and I'm listening."
Detect
sentiment and readiness to continue
  • 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

Say"Thank you for sharing that with me. I want to make sure I capture every detail accurately. Can you tell me the approximate date this occurred, and the name of the provider or department involved if you know it?"

EHR.GetPatientContext for patient.id to pre-populate known provider and visit history

Say"I also want to make sure we can follow up with you in the way that works best for you. Would you prefer a phone call, a message through the patient portal, or an email?"
  • 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

Say"I've logged your concern in our system. Your reference number is complaint.referenceNumber — please keep that handy in case you need to follow up with us. You can expect to hear from our Patient Relations team within five business days, and sooner if your concern is urgent."
Say"Is there anything else you'd like me to note, or any other questions I can answer for you today?"
  • 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

Say"That's wonderful to hear — thank you so much for taking the time to share that. Positive feedback means a great deal to our teams, and I'll make sure it gets to the right people."

CRM.LogFeedback with patient.id, patient.name, feedback.type tagged as commendation, and complaint.provider or complaint.department if provided

Say"I've passed along your kind words. Is there anything else I can help you with today?"
  • Patient has nothing further to add →resolution-acknowledgment
  • Patient also has a complaint to raise →complaint-intake

Unverified Caller

Say"I'm sorry — because I'm not able to confirm your identity in our system, I'm not able to access or create a record on your behalf. I want to make sure your concern is still heard, and there are a couple of ways we can do that."
Say"You're welcome to submit a written complaint through our website, or you can visit any of our facilities in person and our Patient Relations staff will be glad to assist you. If you do have your patient ID or member number available at a later time, you're also welcome to call back and we can complete the intake then."

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

Say"Thank you for telling me this. What you've described is something we take very seriously, and I'm going to make sure it reaches the right team immediately. You will be contacted directly as a priority."

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

Say"Your concern has been escalated to our clinical risk management team. Someone will be reaching out to you directly, and your reference number is 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

Say"Absolutely — I'm going to connect you with a Patient Advocate or Administrator right now who is best positioned to help you. Please hold for just a moment while I bring them in."

Resolution Acknowledgment

Say"Thank you again for reaching out to us. Your experience matters, and we appreciate you giving us the opportunity to address your concern. If you need anything else or have follow-up questions, please don't hesitate to contact us — your reference number is complaint.referenceNumber."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ sms▣ text

Check-in / Check-out Assistance

TravelHospitalityFront DeskCheck-inCheck-out

Contact & Intent Capture

Say"Welcome! I'm here to help you with your hotel check-in or check-out. Are you checking in, checking out, or do you need help with a reservation issue?"
  • 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

Say"No problem — could you tell me a little more about what you need today? For example, are you arriving and need your room, or are you departing and have a question about your bill?"
  • 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

Say"Great, let's get you checked in. Could you please share your reservation confirmation number and the name on the booking?"

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

Say"Of course — let's pull up your stay. Could you share your confirmation number or the name on the reservation?"

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

Say"I wasn't able to find a reservation with that confirmation number. Let me try a few other ways to locate your booking."

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

Say"It looks like your booking was made through a third-party site. I've initiated a request to import those details, which can take a few minutes. Could I place you on a brief hold, or would you prefer I send you an update as soon as it's ready?"
  • 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

Say"To protect your security, I need to verify your identity. Could you please confirm your date of birth, loyalty account number, or the last four digits of the card used to hold the reservation?"

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

Say"Great news — your room room.number is ready and waiting for you. Let me issue your digital key now."

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

Say"Your digital key has been sent to guest.email. Your room is room.number. Is there anything else I can help you with — extra pillows, dining reservations, or local recommendations?"
  • Guest has additional requests additional-requests →special-requests-handling
  • Guest is satisfied and done satisfied →resolution-checkin-complete

Room Not Ready — Options

Say"Your room isn't quite ready yet, but I have a few options to make your wait comfortable. I can arrange luggage storage, provide access to our lounge, or send you a notification the moment your room is ready. Which would you prefer?"
  • 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

Say"Perfect — I've set that up for you. You'll receive a message at guest.phone as soon as your room is ready. In the meantime, is there anything else I can arrange?"
  • Guest has further needs additional-requests →special-requests-handling
  • Guest is happy to wait satisfied →resolution-pending-notification

Special Requests Handling

Say"Of course — happy to note that. What can I arrange for you?"

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

Say"I've pulled up your folio — the total comes to folio.total. I've sent an itemized breakdown to guest.email. Would you like me to walk you through the charges, or does everything look correct?"
  • 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

Say"Of course — let me explain that line item. The charge for dispute.lineItem reflects the rate agreed at booking, plus applicable taxes and any incidentals. Does that make sense?"

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

Agent
review dispute.lineItem and dispute.amount against kb.billing-policy and reservation details to determine if a correction is warranted.
Goal:resolve the disputed charge fairly — apply a correction if within agent adjustment authority, or route to a supervisor if it exceeds policy limits.
Constraints:never approve adjustments above USD 150 without supervisor approval; always log every adjustment in the billing system; never remove taxes or mandatory fees unilaterally.
Tools available:BillingSystem.GetLineItemDetail, BillingSystem.ApplyAdjustment, kb.billing-policy, CRM.LogDispute
  • 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

Say"I've reviewed that charge carefully, and based on our policy it reflects a valid and agreed-upon amount. I'm sorry I'm not able to remove it, but I want to make sure you feel heard. Would you like me to escalate this for a second review, or are you comfortable proceeding with check-out?"
  • 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

Say"You're all checked out — your final receipt has been sent to guest.email. It was a pleasure having you with us. Safe travels, guest.fullName!"
  • Guest has feedback or further questions feedback →post-stay-feedback
  • Guest is satisfied and done satisfied →resolution-checkout-complete

Post-Stay Feedback

Say"I'd love to hear your thoughts — your feedback helps us improve. What stood out during your stay, and is there anything we could have done better?"

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

Say"It looks like our front desk is currently unstaffed. I have two options for you: I can activate self-service key retrieval at the kiosk, or I can page our on-call team member to assist you right away. Which would you prefer?"

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

Say"I want to make sure you're taken care of properly. I'm connecting you now with a team member who has the authority to resolve this right away. Thank you for your patience, guest.fullName."

Resolution — Check-in Complete

Say"You're all set and checked in! Enjoy your stay, guest.fullName. Don't hesitate to reach out if you need anything at all."

Resolution — Check-out Complete

Say"Everything is wrapped up. Thank you for staying with us, guest.fullName — we hope to welcome you back soon!"

Resolution — Pending Notification

Say"You're all set for now. We'll be in touch at guest.phone or guest.email as soon as your room is ready. Thanks for your patience!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ text

Cancellation / Retention

TelecomRetentionCancellationSupport

Intent Capture

Say"Thank you for contacting us. I understand you may be thinking about making a change to your account — I'm here to help. Can I start by pulling up your account? Please share your account number or the phone number on file."

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

Say"Thanks, customer.name. I can see your account. Before we go any further, could you help me understand what's prompting you to think about leaving today?"
Detect
cancellation reason category from customer reply
  • 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

Say"I really appreciate you sharing that with me. It sounds like the experience you've had isn't what we want for you, and I'd like to make sure that's addressed properly before we talk about anything else."

CRM.CreateCase tagged service-complaint, linked to customer.accountNumber

Agent
review account.paymentHistory and case history to determine if the service complaint is resolvable before a retention offer is appropriate.
Goal:assess whether the underlying complaint (technical, billing error, service gap) can be resolved or credibly committed to, so a retention pitch lands on solid ground rather than dismissing the concern.
Constraints:do not make commitments outside documented resolutions; do not skip complaint acknowledgement and route directly to a retention offer; if the complaint involves a billing dispute, confirm with BillingSystem before stating any credit amount.
Tools available:CRM.GetCaseHistory, BillingSystem.GetBillingDetails, kb.complaint-resolution-policy
  • 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

Say"Before we go further, I want to make sure you have the full picture. Because your contract runs until account.contractEndDate, an early termination fee of account.etfAmount would apply if you cancel today. I want to be upfront about that. Would you like me to walk through your options, or do you have questions about that fee?"
Detect
customer response to 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

Agent
select the single best retention offer to present to customer.name based on their stated cancellation reason, account profile, and available offers.
Goal:identify the offer most likely to address the customer's specific concern — prioritise bill-credit or discount offers for cost complaints, speed/reliability upgrades for service complaints, and plan-match or loyalty perks for competitor comparisons.
Constraints:present only one offer at a time; do not invent offers not returned by RetentionOfferEngine.GetEligibleOffers; do not offer a discount that exceeds the retention discount authority tier; if account.outstandingBalance is greater than zero, do not bundle a credit into the offer until balance is acknowledged.
Tools available:RetentionOfferEngine.GetEligibleOffers, CRM.GetAccountDetails, kb.retention-offer-policy
  • Suitable offer identified offer_ready →present-offer
  • No eligible offers found no_offer →outstanding-balance-check

Present Offer

Say"Based on everything on your account and what you've shared, I think I can help. Here's what I can do for you: retention.offerDescription. This offer is available until retention.offerExpiry. Would you like to take advantage of that?"
Detect
customer response to retention 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

Say"I understand — let me see if there's anything else I can do. Give me just a moment."

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

Say"Here's another option I can offer you: retention.offerDescription. This is the best I'm able to do from my end. Would this work for you?"
Detect
customer response to second retention 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

Say"Wonderful — I've applied that to your account right now and you'll receive a confirmation by email and text shortly. We're really glad you're staying, customer.name. Is there anything else I can help you with today?"

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

Say"Before we proceed, I do need to let you know that there is an outstanding balance of account.outstandingBalance on your account. Cancelling your service does not waive this balance — it will remain due and may be referred to our collections team if unpaid. Would you like to discuss payment options, or would you like to continue with the cancellation?"
Detect
customer response to 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

Say"I've processed your cancellation request. Your service will remain active until transaction.finalBillDate, which is also when your final bill will be generated. You'll receive a written confirmation by email shortly."
  • 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

Say"A confirmation email is on its way with all the details, including the early termination fee of account.etfAmount. If you have any questions about your final bill, our billing team is available to help. We're sorry to see you go, customer.name, and we hope to be of service again in the future."

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

Say"You're all set. A confirmation email is heading to you now with all the details. We're sorry to see you go, customer.name, and we wish you all the best."

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."

Say"I want to make sure you get the right support here. I'm going to connect you with a specialist who has the authority and expertise to work through this with you properly. Thank you for your patience, customer.name."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ email▣ sms

Booking Cancellation / Refund Request

TravelHospitalityCancellationRefund

Identity Verification

Say"Thank you for reaching out. I can help you with a cancellation or refund request. To get started, could you please provide your full name and the email address or phone number on the booking?"

CRM.LookupCustomer using customer.fullName and customer.email or customer.phone

Detect
outcome of identity lookup
  • 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

Say"I wasn't able to match those details to a booking. Could you double-check the name or email used at the time of booking? Sometimes a nickname or alternate address was used."

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

Say"Thank you, customer.fullName. Could you please share your booking or confirmation ID, along with your travel dates and destination?"

ReservationManagement.GetBooking using booking.id

Detect
booking record outcome
  • 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

Say"I've pulled up your reservation for booking.destination on booking.travelDates. Let me check the cancellation policy tied to your rate."

PolicyRulesEngine.GetCancellationPolicy for booking.id and booking.rateClass

Detect
cancellation window and fee applicability
  • 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

Say"Great news — your booking is within the free-cancellation window. You are eligible for a full refund of refund.amount to your original payment method. Before I proceed, could you share the reason for your cancellation? This helps us improve."
  • 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

Say"No problem at all. I'll send a summary of your cancellation policy and options to customer.email so you can review at your own pace. Feel free to reach back out when you're ready."

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

Say"I can see that your booking falls outside the free-cancellation window, which means a cancellation fee of cancellation.feeAmount would apply. I want to make sure you have all your options before we proceed. You may be eligible for a travel credit of refund.creditValue, or we could look into changing your travel dates at no extra charge."

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

Say"I'm very sorry to hear about your situation. We do have a process to review waiver requests for extenuating circumstances such as medical emergencies or bereavement. I'll need to collect a brief note on the nature of the situation and, if available, any supporting documentation such as a medical certificate or official notice."

CRM.CreateCase tagged exception-review, linked to booking.id, reason: cancellation.reason

Detect
customer willingness to provide documentation
  • 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

Say"Thank you for sharing that. I've flagged your case for our exception review team. They will assess your request and reach out to you at customer.email within two business days with a decision. In the meantime, I'm not processing the cancellation so your booking remains active."

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

Say"I'll go ahead and cancel your booking now. This will just take a moment."

ReservationManagement.CancelBooking for booking.id

PaymentProcessor.InitiateRefund for refund.amount to booking.paymentMethod

CRM.UpdateRecord with cancellation details for customer.fullName

Detect
cancellation processing outcome
  • Cancellation and refund initiated successfully success →send-confirmation
  • System error prevents processing system_error →escalation-human

Process Travel Credit

Say"I'll cancel your booking and apply a travel credit of refund.creditValue to your account. This credit can be used toward any future booking with us."

ReservationManagement.CancelBooking for booking.id

PaymentProcessor.IssueTravelCredit for refund.creditValue linked to customer.email

CRM.UpdateRecord with credit issuance details

Detect
credit issuance outcome
  • Credit issued successfully success →send-confirmation
  • System error during credit issuance system_error →escalation-human

Send Confirmation

Say"Your booking has been successfully cancelled. You'll receive a written confirmation at customer.email within a few minutes, including your refund or credit details and the expected timeline of refund.timeline."

NotificationService.SendEmail to customer.email with cancellation confirmation, refund.amount or refund.creditValue, and refund.timeline

  • Confirmation sent successfully →resolution-confirmation

Refund Status Check

Say"It looks like this booking was already cancelled. Let me check the status of any refund associated with it."

PaymentProcessor.GetRefundStatus for refund.transactionId

Detect
refund status
  • 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

Say"Our records show that a refund of refund.amount was issued on the original transaction. It can sometimes take 5 to 10 business days to appear depending on your bank. Could you confirm that you haven't seen it in your statement?"
  • 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

Say"Your refund of refund.amount is currently being processed and should appear within refund.timeline. I'll send a confirmation to customer.email with the transaction reference so you have it on record."

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

Say"I can see that your booking was made through a third-party platform — booking.otaSource. Unfortunately, our system is unable to process cancellations or refunds for reservations made via that channel. You'll need to contact booking.otaSource directly to request a cancellation."

kb.ota-partner-contacts — retrieve contact instructions and cancellation process for booking.otaSource

Say"I can share the reference details for your booking so you have everything ready when you contact them: your booking ID is booking.id, the travel dates are booking.travelDates, and the destination is booking.destination."

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

Say"I've escalated this to our finance team with all the transaction details. A specialist will reach out to you at customer.email within one to two business days to resolve this."

→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

Say"I want to make sure this is handled correctly for you. I'm escalating your case to a senior support specialist who will be able to assist further. You'll be contacted at customer.email or customer.phone shortly."

Resolution Confirmation

Say"Is there anything else I can help you with today? We appreciate your patience and hope to welcome you on a future trip."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ email

Beneficiary / Policy Detail Update

InsurancePolicy ManagementBeneficiaryCompliance

Intake and Change Request

Say"Thank you for contacting us. I'm here to help you update your policy details. Can I start with your full name and policy number?"

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

Say"I wasn't able to locate a policy with that name and number combination. Could you double-check the policy number on your documents?"
  • Customer provides corrected details CRM.LookupPolicy retry →identity-verification
  • Customer cannot locate their policy number →escalation-human

Identity Verification

Say"To protect your account, I'll need to verify your identity. Could you please provide your date of birth, the last four digits of your Social Security Number, and your security PIN?"

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

Say"That information didn't match what we have on file. Please try once more — make sure your date of birth, last four of your SSN, and security PIN are correct."

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

Say"I'm sorry, but I wasn't able to verify your identity after two attempts. For the security of your account, I'm unable to proceed with any changes at this time."

CRM.LogEvent tag: identity-verification-failure, policy: customer.policyNumber

CRM.CreateCase priority: high, tag: id-lockout-policy-change

Say"You're welcome to visit your nearest branch with a government-issued photo ID, or submit notarized documentation by mail to request this change. Would you like me to send you written instructions at the email address on file?"
  • Customer requests written instructions CRM.SendEmail template: id-lockout-instructions to customer.email →escalation-human
  • Customer declines →escalation-human

Change Type Collection

Say"Great, I've verified your identity. What change would you like to make today — is this a beneficiary update, or are you updating other policy details such as your address, name, or contact information?"
Detect
intent on customer's stated change request
  • 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

Say"I can see the beneficiary currently on file is policy.currentBeneficiary. I'll now collect the updated information."
Say"Please provide the full legal name of the new beneficiary and their relationship to you — for example, spouse, child, or domestic partner."
  • 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

Say"I'm so sorry for your loss. Please take your time — I'll do my best to make this process as straightforward as possible for you."

CRM.FlagCase tag: bereavement-sensitivity, policy: customer.policyNumber

Say"In situations involving the passing of a beneficiary, we typically require a certified copy of the death certificate to process the removal. Do you have that documentation available, or would you like guidance on how to submit it?"
  • 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

Say"I can see the details currently on file. What specifically would you like to update — your address, phone number, email address, or legal name?"
  • 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

Agent
assess whether the requested contact or name detail change can be applied immediately without a signed form or supporting documentation.
Goal:determine if the update is a simple contact detail (address, phone, email) that can be saved directly, or if it requires a signed change request or supporting document before processing.
Constraints:never update a legal name without a signed form or supporting legal document; always confirm the new detail verbally with the customer before saving; never modify policy ownership or coverage as part of a contact detail update.
Tools available:PolicyAdmin.GetPolicyDetails, kb.policy-change-requirements
  • 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

Say"I've sent a secure e-signature form to customer.email. Once you complete and submit it, your change will be processed within one business day. Please check your inbox — it should arrive within a few minutes."

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

Say"This type of change requires a signed paper form. I'll send you the form by email along with instructions for returning it. Once we receive the completed form, your update will be processed within three to five business days."

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

Say"No problem — I've saved a pending task on your account and flagged the deadline. We'll send you a reminder before it expires. If you need assistance completing the form, don't hesitate to reach back out."

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

Say"Before I save this, let me confirm the change: I'll be updating your record to reflect update.newDetail — or for a beneficiary change, update.newBeneficiaryName as update.newBeneficiaryRelationship. Is that correct?"
  • 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

Say"I'm sorry — our system is temporarily unavailable and I'm unable to save your changes right now. I want to make sure your request isn't lost."

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

Say"I've logged your request manually and your case reference number is case.referenceNumber. A member of our team will call you back at customer.phone within one business day to confirm your changes have been saved. Please keep that reference number handy."

→resolution-confirmed

Confirmation and Close

Say"Your policy has been updated successfully. A confirmation has been sent to customer.email. Is there anything else I can help you with today?"

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

Say"Thank you for reaching out and taking the time to keep your policy up to date. Take care, and don't hesitate to contact us if you need anything in the future."

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

Say"I'm going to connect you with a specialist who can assist you further with this request. Please hold for just a moment — thank you for your patience."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ text

Appointment Reschedule / Cancellation

HealthcareSchedulingPatient Support

Intake and Identity Verification

Say"Thank you for reaching out. I can help you reschedule or cancel your appointment. To get started, may I have your full name and date of birth?"

EHR.LookupPatient using patient.fullName and patient.dateOfBirth to retrieve the patient record and patient.id.

Say"Thank you. Can you also confirm your patient ID or account number so I can pull up your appointment details?"

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

Say"I'm sorry — I wasn't able to verify your identity with the information provided. For your security, we're unable to make changes to your appointment until your identity is confirmed in person at one of our locations or through the patient portal with a verified login."

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.

Say"I can see you have an appointment on appointment.date with appointment.provider. Are you looking to reschedule or cancel this appointment?"
Detect
patient intent on the request
  • 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

Say"No problem — I just want to make sure I help you in the right way. Are you looking to move your appointment to a different time, or would you like to cancel it entirely?"
  • 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

Say"Understood. Could you briefly share the reason you need to reschedule? And do you have a preferred date or time range for the new appointment?"

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

Say"I have a few openings with appointment.provider. Let me share those with you — which works best?"

SchedulingPortal.PresentSlots to surface top three available options.

Say"Once you confirm a time, I'll book that right away and send you a confirmation."
  • 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

Say"I'm sorry — appointment.provider doesn't have availability within that window. I have a few options for you: I can offer you the next available slot with appointment.provider, or I can check for an earlier opening with another provider on the same care team, or I can add you to the waitlist so we can contact you if something opens up."
Detect
patient preference on alternatives
  • 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

Say"Before I confirm the new slot, I need to quickly verify your insurance coverage for that date. This will only take a moment."

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

Say"I was able to check your coverage, and there may be a gap in your insurance eligibility for the new appointment date. I want to make you aware before confirming so there are no billing surprises. Would you like to proceed, or would you prefer to speak with our billing team first?"
  • 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

Say"I can process that cancellation for you. Could you share the reason, even briefly? It helps us improve our scheduling."

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

Say"I want to let you know that this appointment falls within our late-cancellation window per clinic policy, which means a cancellation fee may apply. I want to make sure you're aware before I proceed. Would you still like to cancel?"

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.

Say"Your appointment on appointment.date with appointment.provider has been cancelled. You'll receive a confirmation shortly."

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.

Say"You're all set. Your appointment has been moved to newAppointment.date at newAppointment.time with newAppointment.provider. A confirmation will be sent to your preferred contact on file."

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

Say"You've been added to the waitlist for appointment.provider. If a slot becomes available that matches your preferences, we'll reach out right away via your preferred contact method. Is there anything else I can help you with?"

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

Say"I want to make sure you get the right support. Before we make any changes to your appointment, I'd like to connect you with a clinical team member who can better assess what you're experiencing."

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

Say"I'm going to connect you with a member of our team who can assist you further. Please hold for just a moment."

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

Say"No changes have been made to your appointment on appointment.date with appointment.provider. If you need anything else, don't hesitate to reach out."

CRM.LogInteraction tagged no-change, linked to patient.id.

Resolution — Complete

Say"Is there anything else I can help you with today?"

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

Say"Thank you for reaching out. Take care, and we look forward to seeing you. Goodbye!"

CRM.CloseCase linked to patient.id.

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ sms▣ text

Size / Fit / Product Recommendation

RetailProductSizingRecommendations

Opening

CRM.LookupCustomer by customer.id or session identity to pre-load customer.purchaseHistory and any saved preferences.

Say"Hi customer.name! I'm here to help you find exactly the right size or product. Are you looking for sizing help on something specific, trying to choose between a couple of options, or not sure where to start?"
Detect
customer intent from opening message
  • 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.

Say"Great choice! To make sure I get the fit right for you, could you share a couple of quick details? For product.name I'll need your product.sizeGuide measurements — things like height, weight, chest, waist, or inseam depending on the item. Do you have those handy?"
Detect
customer response about measurements
  • 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

Say"No worries at all — it only takes about two minutes! Here's how to measure yourself at home for product.category:"
Say"For the most accurate fit, use a soft measuring tape. Measure your chest at the fullest point, your natural waist about an inch above your navel, and your hips at the widest point. If you're measuring inseam, stand straight and measure from your crotch to the floor. Once you have those, I can match you to the perfect size."
  • 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

Say"Being between sizes is really common! For product.name, I'd generally recommend going product.sizeGuide based on your larger measurement to ensure comfort — especially for customer.preferences.fitStyle fit. That said, it also depends on how you prefer things to feel. Do you usually prefer a snugger or a more relaxed fit?"
  • 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

Say"When in doubt, I always recommend going one size up — it's much easier to tailor down slightly than to deal with something that's too tight. I'll use that as the basis for your recommendation."

→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

Say"Based on your measurements and your preference for a customer.preferences.fitStyle fit, I'd recommend a recommendation.primary in product.name. Here's why it works for you:"
Say"It should sit comfortably across your customer.measurements, with the right amount of room for customer.preferences.intendedUse. The product.attributes also align well with your preference for customer.preferences.material."
Say"Would you like me to add the recommendation.primary in product.name to your cart, or do you have any questions before you decide?"
  • 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.

Say"Of course! Here's another option worth considering: recommendation.alternate. Compared to recommendation.primary, this one product.attributes — so it's a great pick if you prioritize customer.preferences.material or are working within a tighter budget of around customer.preferences.budget."
Say"Both are solid choices — would you like to go with recommendation.primary, recommendation.alternate, or would it help to talk through the differences a bit more?"
  • 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.

Say"Happy to help you compare! Let me pull up the details on both."
Say"Here's the honest breakdown: recommendation.primary is the better fit if product.attributes — especially for customer.preferences.intendedUse. recommendation.alternate makes more sense if you want product.attributes or your budget is closer to customer.preferences.budget. For most people with your profile, I'd lean toward recommendation.primary, but either will serve you well."
Say"Does that help you land on one, or would you like me to check sizing or stock on both before you decide?"
  • 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

Say"No problem — let's figure it out together! A few quick questions: What's the item or category you're shopping for? What will you mainly be using it for? And do you have a sense of the fit or style you prefer — relaxed, athletic, slim — or a budget range?"
Detect
customer response completeness
  • 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.

Say"Thanks for mentioning that — let me take a look at what you've ordered before so we can avoid repeating the same issue."
Say"I can see you previously purchased customer.purchaseHistory. It looks like the fit concern was around customer.preferences.fitStyle. Based on that, I'd suggest we adjust by going recommendation.primary this time — that should address the issue directly."
  • 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.

Say"Unfortunately, recommendation.primary in product.name isn't available right now. Here's what I can do for you:"
Say"Option 1 — I can put you on the waitlist and notify you the moment it's back in stock. Option 2 — there's a very similar alternative, recommendation.alternate, that's available now and fits your profile just as well. Option 3 — if you'd like, I can check other size variants that might still work."
  • 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.

Say"Done! I've added you to the waitlist for recommendation.primary in product.name. We'll email you at customer.email the moment it's back — usually within a week or two. Is there anything else I can help you with in the meantime, like finding something to hold you over?"
  • 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.

Say"Of course — happy to answer any questions before you commit. What would you like to know about product.name?"
  • 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.

Say"Perfect! I've added recommendation.primary in product.name to your cart. Here's your cart link: order.cartUrl"
Say"You're all set to check out whenever you're ready. Is there anything else I can help you find today — maybe something to complete the look or a coordinating item?"
  • 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.

Say"I completely understand — I want to make sure you get the right answer here, and this one deserves a closer look from one of our specialist team members. I'm flagging this for them now with all the details you've shared so you won't need to repeat yourself."
Say"A specialist will be with you shortly. If you're on chat they'll join this thread; if you prefer, we can also arrange a callback at customer.email. Thank you for your patience!"

Resolution

Say"Wonderful — I'm really glad we could find the right fit for you today! If your order arrives and anything feels off, our exchanges are easy and hassle-free. Don't hesitate to reach out anytime. Enjoy your new product.name!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Roaming / International Add-on Request

TelecomRoamingInternationalAdd-onsTravel

Identity Verification

Say"Thanks for reaching out! I'd be happy to help you with international coverage. To get started, can I have your account number or the phone number on the account, followed by your account PIN or passcode?"

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

Say"I wasn't able to match that PIN. Let's try one more time — please re-enter your account PIN or passcode."

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

Detect
account status flags on 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

Say"I can see there's an outstanding balance of customer.outstandingBalance on your account. Add-on activations are on hold until the balance is cleared. Would you like to make a payment now so we can get your roaming plan set up right away?"
  • 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

Say"I'll bring up the payment flow now. Once that goes through, we'll be all set to activate your international add-on."
  • Payment successful payment_cleared CRM.UpdateAccountStatus →trip-details
  • Payment declined or failed payment_failed →escalation-human

Trip Details

Say"Great! Let's find the best plan for your trip. Which country or countries will you be visiting, and what are your travel dates?"

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

Say"I've checked your device and unfortunately it isn't compatible with the networks in trip.destinationCountry — it may be CDMA-only or SIM-locked for that region. I can offer you a couple of alternatives: an international SIM card or a temporary rental device that's fully unlocked and compatible. Would either of those work for you?"
  • 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

Say"Perfect. I'll connect you with our device services team who can get that arranged before your trip. They'll confirm availability, pricing, and delivery or in-store pickup options."

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

Say"Great news — your device is compatible. Here are the international add-on options available for your plan and destination. I'll walk you through the options, including pricing and any usage caps."

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

Say"Just to confirm — you'd like to add addon.name for addon.price, which covers you in trip.destinationCountry. Your usage cap is addon.usageCap. This will activate on addon.effectiveDate. Does that all look correct?"
  • 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

Say"You're all set! Your addon.name has been activated and takes effect on addon.effectiveDate. You'll receive a confirmation to customer.email shortly. Remember, your usage cap is addon.usageCap — you'll get an alert if you're approaching the limit. Is there anything else I can help you with?"
  • Customer has additional questions or requests →trip-details
  • Customer is satisfied, no further needs →resolution-complete

Already Abroad

Say"I'm sorry to hear your service isn't working as expected. Let me pull up your account and check what's been happening since your arrival."

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

Agent
assess retroactive credit eligibility for charge.amount against kb.roaming-retroactive-credit-policy.
Goal:determine whether a courtesy credit for pay-per-use roaming charges can be applied and activate the appropriate add-on going forward.
Constraints:never approve a retroactive credit above USD 75 without supervisor approval; always activate the going-forward add-on before issuing any credit; confirm credit eligibility against policy window before proceeding.
Tools available:BillingPlatform.GetRecentCharges, BillingPlatform.ApplyCredit, kb.roaming-retroactive-credit-policy, AddonCatalog.GetEligibleAddons
  • 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

Say"I've applied a credit of credit.amount to your account for the roaming charges you incurred. It will appear on your next billing cycle. Now let's get a proper international add-on activated so you're covered for the rest of your trip."

→addon-selection

Charge Dispute

Say"I understand — let's take a close look at those charges. Can you confirm the total amount you're disputing?"

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

Say"I hear you — let me review any current promotions or adjustments that might apply to your account."

kb.roaming-addon-policy — check active promotional offers, loyalty discounts, and goodwill adjustment eligibility

Detect
outcome of promotion or adjustment review
  • 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

Say"I want to make sure this gets fully resolved for you. I'm escalating your case to a specialist who has the tools and authority to handle this. They'll have all the details so you won't need to repeat yourself."

Resolution — Complete

Say"Wonderful — you're all set for your trip to trip.destinationCountry. Safe travels, and don't hesitate to reach out if you need anything while you're away!"

CRM.LogInteraction with resolved add-on, addon.effectiveDate, trip.destinationCountry, trip.returnDate

Resolution — No Change

Say"No problem at all — no changes have been made to your account. If you'd like to revisit your options before your trip, we're here anytime. Have a great day!"

CRM.LogInteraction tagged no-change-requested, customer.accountNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ voice▣ text▣ chat▣ sms

Product Availability / Stock Inquiry

RetailInventorySupport

Gather Product Details

Say"Hi there! I'd be happy to help you check on product availability. Could you share the product name, SKU, or a quick description of what you're looking for?"
Detect
intent on customer message
  • 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

Say"No problem — let me help narrow that down. Do you have a SKU from a receipt or the website, or can you describe the item a bit more — for example, the category, brand, or color?"
  • 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

Say"Got it — do you have a preferred size, color, or any other variant you need? And are you looking to pick it up at a store near you, or would online ordering work for you?"
  • 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

Say"What's your zip code or the store location you'd like to check?"
  • 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

Say"Great news — product.name is available online right now. You can add it to your cart and check out at your convenience. Would you like me to send you a direct link, or is there anything else I can help you with?"

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

Say"Good news — product.name is in stock at store.name. You can head in to grab it, or in some cases we can reserve it for you. Would you like to reserve it, or do you have any other questions?"

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

Say"Perfect — I've placed a hold on product.name at store.name for you. You'll typically have 24 to 48 hours to pick it up. Is there anything else I can help you with?"

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

Say"I can see product.name is available, but the nearest store with stock is store.name, which is about store.distance away. We may be able to ship it directly to you from that store, or arrange a transfer to a closer location — would either of those work for you?"

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

Say"I've arranged for product.name to be shipped to you from store.name. You'll receive a confirmation and tracking info at customer.email once it ships. Is there anything else I can help with?"

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

Say"I've submitted a transfer request to bring product.name to your preferred store. Once it arrives — usually within a few business days — we'll reach out to let you know it's ready. Can I grab your contact info to make sure you get that notification?"

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

Say"I'm sorry to share that product.name has been discontinued and is no longer available through us. I know that's not the news you were hoping for. I can suggest a few comparable items that might work for you — would that be helpful?"

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

Say"Unfortunately product.name is out of stock right now — both online and at nearby stores. I can sign you up for a restock alert so you'll be notified as soon as it's available again. Would you like me to do that?"
  • 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

Say"You're all set — we'll send a notification to customer.email or customer.phone as soon as product.name is back in stock. Is there anything else I can help you with today?"

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

Agent
review the product catalog and customer context to recommend up to three comparable alternatives for product.name.
Goal:identify alternatives that match the customer's likely intent — same category, similar price point, available in the preferred channel (online or in-store).
Constraints:only recommend items confirmed in stock; never suggest items with an active recall or items flagged as discontinued; limit suggestions to three.
Tools available:ProductCatalog.GetSimilarItems, InventoryManagement.GetOnlineStock, InventoryManagement.GetStoreStock, kb.product-substitution-guidelines
  • 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

Say"Here are a few options I think you'd like as alternatives to product.name: alternative.name (SKU alternative.sku) is currently available and very similar in features and price. Would any of these work for you, or would you like more details on one of them?"
  • 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

Say"I'm sorry — I ran into a technical issue pulling up the inventory details right now. I'd recommend checking the website directly for the most up-to-date stock information, or you can call store.name at store.phone and they can look it up in-store. I'm logging this on our end so we can look into it."

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

Say"I completely understand — let me connect you with a team member who can take care of this for you right away."

CRM.CreateCase priority: high, tagged availability-escalation, linked to product.sku, customer.name

CRM.LogInteraction tagged escalated-to-human

Resolution

Say"Thanks for reaching out — happy to help anytime. Have a great day!"

CRM.LogInteraction tagged inquiry-resolved, linked to product.sku

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat

Premium Payment / Billing Inquiry

InsuranceBillingPayments

Inbound Greeting

Say"Thank you for contacting insurance support. My name is your virtual support agent. I can help you with billing questions, premium payments, and policy account inquiries. May I have your policy number to get started?"

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

Say"To protect your account, I need to verify your identity before I can share any account details. Could you please confirm your date of birth, the last four digits of your Social Security Number, or your account security passphrase?"

PolicyManagement.VerifyIdentity using customer.dob, customer.ssn_last4, or customer.passphrase

Detect
verification outcome
  • 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

Say"Completely understandable — your security is our top priority. We require identity verification before sharing any account details to protect you from unauthorized access. I can verify using your date of birth, the last four digits of your Social Security Number, or your security passphrase — whichever you prefer."
  • Customer agrees and provides credentials →identity-verification
  • Customer refuses to verify and wants to end call →escalation-human

Identity Failure

Say"I'm sorry — I wasn't able to verify your identity with the information provided. For the security of your account, I'm unable to share policy or billing details over this channel."
Say"You're welcome to visit one of our branch locations with a valid photo ID, or submit a written inquiry through our secure customer portal. I can also transfer you to a specialist who can walk you through those options."
  • 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

Detect
policy lapse or cancellation-pending status against policy.lapse_status
  • 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

Say"I've pulled up your account. Your current premium is policy.premium_amount, due on policy.due_date. Your outstanding balance is payment.outstanding_balance, and your payment method on file is payment.method_on_file. How can I help you today?"
Detect
customer's primary billing intent
  • 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

Say"I understand — let me review any recent changes to your policy that may have affected your premium."

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

Say"The change to your premium is due to billing.rate_adjustment_reason. This is consistent with the terms of your policy. I'm happy to email or text you a summary of this breakdown for your records."
  • 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

Say"I can see your last payment was on payment.last_payment_date and there is an outstanding balance of payment.outstanding_balance. Let me check whether your account is eligible for a payment plan or grace period extension."

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

Say"Good news — your account qualifies for a payment plan. I can break your outstanding balance of payment.outstanding_balance into installments. Would you like me to walk you through the available options?"

kb.payment-plan-options — retrieve available installment schedules and terms

Agent
present payment plan options based on payment.outstanding_balance and kb.payment-plan-options.
Goal:identify the most suitable installment schedule for the customer and confirm their agreement before enrolling.
Constraints:never enroll a customer in a payment plan that extends beyond the policy renewal date without supervisor approval; never waive fees without approved authorization; always confirm the first installment amount and date before proceeding.
Tools available:BillingLedger.GetPaymentPlanOptions, BillingLedger.EnrollPaymentPlan, kb.payment-plan-options
  • 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

Say"Your policy is scheduled for renewal on policy.due_date. Your renewal premium will be policy.premium_amount. I can walk you through what's included, any coverage changes, or help you make a payment in advance if you'd like."

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

Say"No problem — I can update your payment method right now. For security, the new payment details you provide will be verified before being saved to your account. Please go ahead and share the new payment method you'd like to use."

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

Say"I'll process a payment of payment.outstanding_balance using your payment.method_on_file. Shall I go ahead?"

PaymentGateway.ProcessPayment for payment.outstanding_balance on policy.number

Detect
payment processing outcome
  • 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

Say"I'm sorry — the payment method on file was unable to be processed. This can happen due to insufficient funds, an expired card, or a bank hold. Would you like to try a different payment method, or would you prefer to set up a payment plan?"
  • 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

Say"Your account is in good standing. I'll send a confirmation of today's activity to customer.email and customer.phone right now."

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

Say"I can see your policy is currently in a lapsed or cancellation-pending status. I'm not able to process a standard payment for a policy in this state — I'll need to connect you with a specialist who handles reinstatement."

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

Say"I'm going to connect you with a specialist who can assist you further. Please hold for just a moment — I'm passing along your account details so you won't need to repeat yourself."

CRM.LogEscalation with inquiry summary, policy.number, and reason for escalation

CRM.CreateCase priority: high, tagged billing-escalation, linked to policy.number

Session Close

Say"Thank you for contacting insurance support. Is there anything else I can help you with today?"
  • Customer has another question another_question →inbound-greeting
  • Customer is done — closing interaction CRM.LogInteraction tagged session-complete
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ text

Plan Change / Upgrade Request

TelecomPlan ChangeUpgradeBilling

Identity Verification

Say"Thanks for reaching out! I'm happy to help you with a plan change or upgrade. To get started, can I have your account number or the phone number associated with your account?"

CRM.LookupAccount using customer.accountNumber or customer.phone

Detect
identity verification outcome
  • 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

Say"I can see your account, customer.name. You're currently on the customer.currentPlan. Your next billing date is customer.billingCycleDate. Let me pull up the plans available to you."

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

Say"Here are the plans available for your account. I can walk you through the differences in data, speed, features, and pricing — just let me know what matters most to you."

kb.plan-catalog — present eligible options with pricing, data allowances, speeds, and feature highlights relevant to customer.currentPlan

Detect
customer intent after plan review
  • 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

Say"Let me check whether there are any current promotions or offers that apply to your account."

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

Say"That promotional rate needs a quick verification on my end before I can apply it. Let me get that sorted for you now."
Approval
Slack.RequestApproval to #plan-change-approvals, approver: billing_supervisor
Context sent:customer.accountNumber, customer.currentPlan, promotion.code, promotion.description, plan.selected
  • 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

Say"It looks like that specific plan isn't available for your device or location. Let me find you the closest alternative that would work best for you."

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

Say"Here's a summary before we make any changes: you'd be moving to plan.selected at plan.monthlyCost per month. The change would take effect on plan.effectiveDate, and your prorated charge for this billing cycle would be plan.proratedAmount. Shall I go ahead and apply that?"

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

Say"I want to make sure you have the full picture — because you're currently in a contract running until customer.contractEndDate, applying this change now would include an early change fee of fee.earlyChange. You have a couple of options: we can apply the change today with that fee, or we can schedule it to take effect at the end of your contract period at no extra cost."

kb.contract-terms-policy — confirm fee calculation and waiver eligibility for customer.accountNumber

Detect
customer decision on contract fee
  • 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

Say"No problem at all. I'll schedule your plan change to plan.selected to take effect on customer.contractEndDate, so there'll be no early change fee. You'll stay on your current plan until then, and we'll send you a reminder as that date approaches."

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

Say"I'm sorry — I'm running into a technical issue completing this change right now. I've logged your request and our team will manually apply the update within one business day. You won't lose your selected plan or pricing."

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

Say"You're all set! Your plan has been updated to plan.selected. The change is effective plan.effectiveDate, and your new monthly rate will be plan.monthlyCost. You'll get a confirmation sent to you shortly."

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

Say"That's completely fine — take your time. Can I get a good number or email to reach you on? I can also note the plans we discussed so you don't have to start over when you're ready."

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

Say"I want to make sure you get the right help here. I'm connecting you with a senior specialist now who can resolve this for you directly. Your account details and everything we've discussed will be passed along so you won't need to repeat yourself."

Resolution

Say"Is there anything else I can help you with today? We appreciate you being a customer and hope you enjoy your new plan."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ sms▣ email▣ chat

Patient Intake Pre-Visit

HealthcarePatient IntakePre-VisitScheduling

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.

Detect
patient response and intake link engagement
  • 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

Say"Before we begin, we need to confirm your identity. Please enter your full legal name and date of birth as they appear on your records."

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

Say"Great, patient.firstName! Let's confirm your contact and insurance information. Please review what we have on file and update anything that has changed."

EHR.GetPatientRecord for chart.id — pre-populate name, address, phone, email, emergency contact

Say"Please confirm or update: your preferred phone number, email address, and emergency contact name and phone number."

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

Say"We weren't able to verify your insurance with the information on file. Please double-check your member ID and group number, or you can upload a photo of your insurance card for our team to review."

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

Say"Now let's review your health history. Please confirm your current medications and any known allergies. If anything has changed or looks incorrect, let us know."

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

Say"Understood — we've marked that medication as needing review rather than removing it from your record. A clinician will confirm the correct information with you at your visit. Are there any other medications or allergies to flag?"

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

Say"Thank you for letting us know — we've flagged that allergy entry as needing review. A clinician will reconcile it with you at your visit. Are there any other items to flag?"

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

Say"Almost done! Please briefly describe the primary reason for your visit and your main concern or symptom. This helps your care team prepare."
Detect
urgency and content of reported symptom or chief complaint
  • 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

Say"Thank you for sharing that. Based on what you've described, we want to make sure you get the right level of care promptly."

kb.triage-guidelines — check symptom against urgency thresholds and same-day care criteria

Say"Rather than waiting for your scheduled appointment, we recommend you call our clinic directly at the number on file or visit an urgent care center as soon as possible. If this is a life-threatening emergency, please call 911 immediately."

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

Say"What is your preferred pharmacy for prescriptions? Please provide the pharmacy name and location, or confirm the one we have on file."

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

Say"You're all set! Your care team has been notified that your intake is ready for review. See you at your appointment."

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."

Detect
patient response after reminder
  • 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."

Say"No problem — our front desk team will help you complete the remaining information when you arrive. See you on appointment.date!"

Assisted Intake

Say"No problem, patient.firstName. I can help you complete your intake right here via this conversation. Let's go through it together, starting with confirming your identity."

→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."

Say"I'm connecting you with a member of our care team right away. If you are experiencing a medical emergency, please call 911 immediately or go to your nearest emergency room."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Order Status Inquiry

RetailSupportShippingOrders

Greeting & Identity Verification

Say"Hi there! I'm here to help you track your order. Can I start with your order number and the email address on your account?"

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

Say"No problem — let me try to find your order using your name or email address."

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

Say"I wasn't able to locate an order under that information. Please check your confirmation email for your order number — it would have been sent to the address you used at checkout. Once you have it, feel free to reach back out and I'll get that sorted for you right away."
  • 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

Say"Your order is currently being processed in our warehouse and hasn't shipped yet. Based on current timelines, it's expected to ship by order.expectedShipDate. Once it ships, you'll receive a confirmation email with your tracking number."
  • 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

Say"Great news — your order is on its way! Here's the latest update: your package was last scanned at carrier.lastScanLocation on carrier.lastScanDate. Your estimated delivery window is carrier.estimatedDelivery. You can also track it directly using tracking number carrier.trackingNumber."
  • Customer is satisfied confirmed →resolution
  • Customer has a concern about the delivery address or timing address_concern →escalation-human

Stale Tracking

Say"I can see your order shipped, but the tracking hasn't updated since carrier.lastScanDate. This can sometimes happen due to carrier delays between scan points. I'm flagging this for you now."

kb.shipping-delay-policy — review thresholds for carrier claim eligibility and customer communication guidelines

Agent
assess the stale tracking situation using carrier.lastScanDate, carrier.estimatedDelivery, and kb.shipping-delay-policy.
Goal:determine whether the package is within an acceptable delay window or if a carrier claim should be initiated.
Constraints:do not promise a replacement or refund without escalation approval; never file a carrier claim if fewer than 5 business days have elapsed since last scan; always advise the customer of next steps before closing.
Tools available:CarrierAPI.GetTrackingStatus, OMS.GetOrderDetails, kb.shipping-delay-policy
  • 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

Say"Based on the current information, your package is within the window where carrier delays can occur without updates. I'd recommend checking back in 24 to 48 hours. If it still hasn't moved by then, please contact us and we'll file a carrier claim on your behalf right away."
  • Customer is willing to wait confirmed →resolution
  • Customer wants to escalate now escalate_now →escalation-human

Delivered But Not Received Check

Say"Our system shows your order was marked as delivered on carrier.deliveredDate. Did you receive it at customer.shippingAddress?"
Detect
customer response on whether package was received
  • 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

Say"Sometimes carriers leave packages with a neighbor, in a mailroom, or in a designated safe spot. Could you check around your building entrance, with your building manager, or with neighbors before we proceed? I'll wait for you."
  • Customer finds the package confirmed →resolution
  • Customer confirms the package is truly not there not_received →lost-package-review

Lost Package Review

Say"I'm sorry to hear that — let me open a lost package review for you right now."

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

Say"I've flagged your order and created a case for our team. Depending on the carrier's investigation timeline — typically 5 to 7 business days — you may be eligible for a replacement or refund. I'll now connect you with a specialist who can confirm next steps and options for you."
  • 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

Say"I'm going to connect you with one of our senior support specialists right now who can take care of this for you. I've already shared all your order details with them so you won't have to repeat yourself."

Resolution

Say"Is there anything else I can help you with today?"
  • Customer has another question another_question →greeting-and-identity
  • Customer is done confirmed CRM.LogInteractionSummary with customer.email and order.id
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ sms▣ email

Loyalty Tier / Points Inquiry

TravelHospitalityLoyaltyPointsTier

Identity Verification

Say"Welcome to loyalty support. I can help you with your points balance, tier status, or a points question. Could I please have your membership ID or the email address on your account?"

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

Say"Thank you. For security, could you please confirm your full name and either your date of birth or the phone number on your account?"

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

Say"I wasn't able to match that detail. Let's try one more time — could you confirm your date of birth or the phone number registered to your account?"

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

Say"I've pulled up your account, member.fullName. You're currently a member.currentTier member with member.pointsBalance points available. You have member.pendingPoints points pending and member.expiringPoints points expiring on member.expiryDate."
Detect
intent of customer's follow-up question
  • 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

Say"As a member.currentTier member, you've qualified with member.tierQualifyingNights nights this year. To reach the next tier you'll need member.tierThreshold qualifying nights. Your current tier status is valid through member.tierExpiryDate."
  • 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

Say"Your member.currentTier status includes benefits such as complimentary room upgrades when available, bonus points on stays, and dedicated check-in. Upgrading to the next tier would add additional perks including higher bonus earn rates and lounge access."
  • Customer has further questions follow-up →account-overview
  • Customer is satisfied satisfied →resolution-summary

Tier Goodwill Check

Agent
assess whether a goodwill tier extension or status match is permitted for member.id.
Goal:determine if the shortfall in qualifying nights falls within the policy threshold for a complimentary extension or one-time status courtesy, and apply it if so.
Constraints:never extend tier status if shortfall exceeds the policy ceiling in kb.loyalty-goodwill-policy; never apply more than one goodwill extension per rolling 24-month period per member; always confirm current extension history before acting.
Tools available:LoyaltyPlatform.GetExtensionHistory, LoyaltyPlatform.ApplyGoodwillExtension, kb.loyalty-goodwill-policy
  • 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

Say"As a valued member.currentTier member, I've applied a one-time courtesy extension to your tier status. Your member.currentTier status has been extended through your next qualification anniversary. You'll receive a confirmation to member.email shortly."

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

Say"I can pull up your recent points activity. Do you have a specific stay or booking reference you'd like me to look into, or would you like a general summary of recent transactions?"

LoyaltyPlatform.GetTransactionHistory for member.id

Detect
customer's response
  • 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

Say"Over the past 90 days your account shows earn activity from stays and partner transactions, and any redemptions you've made. I can walk through specific entries if anything looks unfamiliar."
  • Customer spots a discrepancy discrepancy →discrepancy-intake
  • Customer is satisfied with the summary satisfied →resolution-summary

Discrepancy Intake

Say"I'm sorry to hear about that. To look into this properly, could you share the booking or stay reference number and the approximate date of the stay or transaction in question?"

LoyaltyPlatform.GetTransaction using booking.referenceNumber or transaction.id

PropertyManagementSystem.VerifyStay using booking.referenceNumber and member.id

Detect
outcome of transaction lookup
  • 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

Agent
review transaction details against kb.loyalty-earn-rules to determine whether the points shortfall is an eligible auto-correction or requires a manual audit.
Goal:decide if the discrepancy can be corrected immediately using standard earn rules, or must be escalated to a manual audit queue with a follow-up commitment.
Constraints:never apply a points correction above 10,000 points without supervisor approval; always cross-reference the property's posted earn rate before correcting; log every correction attempt in the case management system.
Tools available:LoyaltyPlatform.GetTransactionHistory, LoyaltyPlatform.CalculateExpectedPoints, CaseManagement.CreateCase, kb.loyalty-earn-rules
  • 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

Approval
Slack.RequestApproval to #loyalty-ops-approvals, approver: loyalty_ops_lead
Context sent:member.id, member.fullName, transaction.id, transaction.date, transaction.property, transaction.points, agent's earn-rule assessment
  • 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

Say"Great news — the points adjustment has been approved. Your account will reflect the corrected balance within 24 hours. You'll also receive a confirmation email at member.email."

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

Say"I've flagged this transaction for a manual review by our loyalty team. You'll receive an update at member.email within 5 to 7 business days. Your case reference is case.id — please keep this handy if you follow up."
  • Customer is satisfied with the timeline satisfied →resolution-summary
  • Customer escalates or disputes the timeline frustrated →escalation-loyalty-specialist

Discrepancy Unverified

Say"I wasn't able to locate a matching stay or transaction with the details provided. This sometimes happens with partner properties or if the booking was made under a different profile. I'll open a case so our team can investigate further."

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

Say"Your member.expiringPoints points are set to expire on member.expiryDate, and your member.currentTier tier status is valid through member.tierExpiryDate. Points expiry can often be reset by completing a qualifying stay or partner activity before that date."
Detect
customer's reaction
  • 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

Say"To keep your points active you would need to complete a qualifying earn activity before member.expiryDate. This includes any eligible hotel stay, car rental with a partner, or a purchase through a loyalty-linked partner. Would you like me to send you the full list of qualifying partners?"

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

Agent
assess whether a goodwill points expiry extension is permitted for member.id under current policy.
Goal:determine if the member's expiry situation qualifies for a one-time extension of points or tier, and apply it if within policy authority.
Constraints:never extend points expiry if the member has already received a goodwill extension within the past 12 months; never extend a balance exceeding the ceiling defined in kb.loyalty-goodwill-policy without escalating; always verify activity history before acting.
Tools available:LoyaltyPlatform.GetExtensionHistory, LoyaltyPlatform.ExtendPointsExpiry, kb.loyalty-goodwill-policy, kb.loyalty-expiry-policy
  • 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

Say"I've applied a one-time courtesy extension to your points. Your member.expiringPoints points have been extended and will no longer expire on member.expiryDate. A confirmation will be sent to member.email."

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

Say"I apologize — our loyalty system is currently unavailable and I'm unable to access your account right now. I'll log your inquiry and have a specialist contact you within 4 business hours."

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

Say"I'm sorry, I wasn't able to verify your identity with the details provided. For the security of your account I'm unable to share account information at this time. You can reset your credentials through our member portal or visit a property front desk with a valid photo ID for in-person verification."

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

Say"I want to make sure this is handled properly for you. I'm escalating your case to one of our loyalty specialists who has the authority to resolve this. Your case reference is case.id and you'll hear from the team at member.email within 2 business hours."

Resolution Summary

Say"To recap: your account shows member.pointsBalance available points, member.pendingPoints pending, and your current status is member.currentTier valid through member.tierExpiryDate. Is there anything else I can help you with today?"

CRM.LogInteraction note: inquiry resolved, summary provided to member.id

  • Customer has another question follow-up →account-overview
  • Customer is done satisfied →farewell

Farewell

Say"Thank you for being a valued member.currentTier member. We appreciate your loyalty and look forward to welcoming you on your next stay. Have a wonderful day."

CRM.CloseInteraction for member.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ text▣ email▣ chat

Group / Event Booking Inquiry

TravelHospitalityGroup BookingsEventsSales

Inquiry Intake

Say"Welcome! I'd love to help you plan your group or event. To get started, could you tell me a little about what you're looking to book — for example, is this a wedding, corporate retreat, conference, or another type of event?"
Detect
intent from customer opening message
  • 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

Say"No problem — let me ask a few quick questions to point you in the right direction. Are you looking for guest room blocks, a venue or meeting space, or a full package that includes both?"
Detect
intent on scope of booking need
  • 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

Say"Great! To find the best options for you, I'll need a few details. What are your preferred dates or a date range? Roughly how many guests or rooms are you expecting? Do you have a specific property or destination in mind? And do you have a budget range or any special requirements such as catering, AV equipment, transportation, or room blocks?"

Salesforce.CreateLead with customer.name, customer.email, customer.phone, source: group-inquiry

Detect
completeness of details provided
  • 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

Say"Thanks for sharing what you have so far. Just to make sure I can find the right fit — could you also confirm your estimated guest or room count, your preferred dates, and a rough budget range? Even a ballpark helps me tailor the options."

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

Say"That's perfectly fine — let me save your details and have someone follow up with you once you have a clearer picture. Could I get your best contact email and a name to reference?"

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

Agent
evaluate event.guestCount and event.roomCount against group booking thresholds.
Goal:determine whether the inquiry can be handled by this agent or must be routed to a group sales specialist or event sales manager.
Constraints:route to group-sales-specialist if room count exceeds 20 and is under 50; route to escalation-event-sales-manager if room count is 50 or more, if the event involves a full venue buyout, or if custom SLA or contract terms are mentioned; never attempt to quote contracts above these thresholds without specialist involvement.
Tools available:kb.group-booking-thresholds, Salesforce.GetLeadRecord
  • 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

Detect
availability result from inventory check
  • 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

Say"Good news — I've found availability that fits your event. Let me walk you through the options, including room rates, venue inclusions, and any packages that may suit your needs."

quoting-tool.GenerateProposal for event.type, event.dates, event.roomCount, event.budget, event.specialRequirements

Say"I'm putting together a formal proposal for you now. You'll receive it at customer.email shortly. It will include rates, inclusions, and a provisional hold on your preferred option. The quote reference is quote.id and it's valid until quote.expiryDate."

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

Say"I'm sorry — we don't have availability for those exact dates or at that property. Let me suggest a couple of alternatives that may work just as well for your group."

group-inventory-calendar.GetAlternativeDates for event.property, event.roomCount

property-management-system.GetNearbyProperties for event.destination, event.dates, event.roomCount

Say"Here are some options: alternativeDates at your preferred property, or alternativeProperties nearby with similar capacity and amenities. Would any of these work for your group?"
  • 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

Say"Absolutely — let me update the proposal to reflect your preferences. What would you like to adjust? For example, room count, dates, inclusions, or special requirements?"

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

Say"I've sent the revised proposal to customer.email. The updated quote is still referenced as quote.id. Do you have any other questions, or would you like to move forward?"
  • 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

Say"I understand — let me see what we can do to work within your budget. There may be tiered packages, off-peak pricing, or value-adds like complimentary meeting space or breakfast that could make a difference."

quoting-tool.GetTieredOptions for event.type, event.dates, event.roomCount, event.budget

kb.group-value-add-packages

Say"Here are a few alternatives at different price points, along with some inclusions that could offset costs. I can also flag this for our group sales team if you'd like a more tailored solution."
  • 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

Say"Wonderful choice! I'll place a provisional hold on that option for you right now while we finalize the details."

property-management-system.PlaceProvisionalHold for event.property, event.dates, event.roomCount, quote.id

Salesforce.UpdateLead status: hold-placed, hold.confirmationNumber

Say"Your provisional hold is confirmed. Your reference number is hold.confirmationNumber and it's held until hold.expiryDate. I'll send the contract and deposit instructions to customer.email shortly."

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

Say"Please review and sign the contract by hold.expiryDate and submit the deposit of deposit.amount by deposit.dueDate to secure your booking. Is there anything else I can help you with?"
  • 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

Say"Happy to help clarify. What questions do you have about the contract or deposit process?"

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

Say"I'll send you a quick reminder as your quote approaches its expiry. Please don't hesitate to reach out if you have any questions in the meantime."
  • 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

Say"Just a reminder — your provisional hold hold.confirmationNumber is set to expire on hold.expiryDate. To secure your booking, please sign the contract and submit your deposit of deposit.amount by deposit.dueDate."
  • 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

Say"Given the size and nature of your event, I'd like to connect you with one of our group sales specialists who can provide a fully tailored proposal and dedicated support throughout the planning process."

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

Say"You'll hear from salesSpecialist.name at salesSpecialist.email within one business day. I've shared all your event details so you won't need to repeat anything."
  • 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

Say"Your event requires the attention of our dedicated event sales manager, who handles large-scale and high-value bookings personally. I've escalated your inquiry and flagged all your details. You can expect a direct call or email within two business hours."

Resolution — Booking Confirmed

Say"Fantastic — your group booking is confirmed! You'll receive your signed contract and booking summary at customer.email. We're looking forward to hosting your event and will be in touch as your date approaches. Is there anything else I can help you with today?"

Salesforce.UpdateLead status: closed-won

property-management-system.ConfirmBooking for hold.confirmationNumber

Resolution — Specialist Assigned

Say"All set — your details are with our group sales team and you'll be hearing from a specialist shortly. Thank you for considering us for your event, and please don't hesitate to reach back out if anything comes up in the meantime."

Salesforce.UpdateLead status: specialist-assigned

Resolution — Lead Captured

Say"Perfect — I've saved your information and you'll hear from us as your plans take shape. Thank you for reaching out, and we look forward to helping you create a memorable event."

Resolution — Hold Expired

Say"It looks like the provisional hold on your event dates has expired. If you're still interested, I'd be happy to check current availability and set up a new hold. Just let us know."

Salesforce.UpdateLead status: hold-expired

property-management-system.ReleaseHold for hold.confirmationNumber

Resolution — No Booking

Say"I'm sorry we weren't able to find the right fit this time. If your plans change or you'd like to explore other options down the road, we'd love to hear from you. I'll keep your details on file."

Salesforce.UpdateLead status: closed-lost

Resolution — No Contact

Say"We weren't able to connect fully this time, but if you'd like to revisit your group or event needs in the future, please don't hesitate to reach out. We're here to help."

Salesforce.UpdateLead status: no-contact

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ Insurance

InsuranceFAQSupportBillingClaims

Inbound Greeting

Say"Thank you for reaching out to insurance support. I'm here to help you with any questions about your policy, coverage, billing, or claims. May I start with your name and policy number?"
  • 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

Say"I'd be happy to help with that. To make sure I give you the most accurate information for your specific policy, could you please share your name and policy number first?"
  • 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

Detect
customer.policyStatus from policy record
  • Policy is active →topic-detection
  • Policy is lapsed →lapsed-policy-notice
  • Policy record not found →escalation-human

Topic Detection

Say"Thanks, customer.name — I've pulled up your customer.productType policy. What can I help you with today?"
Detect
intent on customer's question
  • 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

Say"Your customer.productType policy covers the benefits outlined when you enrolled. I'll walk you through the key points now."

PolicyAdmin.GetCoverageDetails for customer.policyNumber

Say"Here's what your current plan includes: the specifics depend on your selected tier, deductibles, and any riders attached to your policy. I can see the details on your account and share them with you now. Is there a particular benefit or service you'd like me to focus on?"
  • 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

Say"Based on your policy, here is what applies to your question about question.topic. Please keep in mind that individual circumstances may affect how a benefit is applied — your policy documents are always the authoritative reference."
  • 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

Say"Your next payment is due on customer.paymentDueDate. You can pay online through the member portal, by phone, or by mailing a check. Would you like details on how to update your payment method or set up autopay?"
  • 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

Say"To file a claim on your customer.productType policy, here are the steps: First, gather documentation related to your loss or event. Second, visit the claims portal or call our claims line directly. Third, submit your completed claim form along with any supporting documents. You'll receive a confirmation number and a timeline for review. Would you like me to send you the direct link or phone number for the claims team?"
  • 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

Say"I can help with that. Policy documents, ID cards, and proof of insurance can be accessed through your online member portal. I can also send a copy directly to your email on file. Would you like me to send those to customer.email now?"
  • 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

Say"I can walk you through your options regarding your policy. Changes like cancellation or reinstatement may have timing requirements and potential impacts on your coverage. What specifically would you like to know — are you looking to cancel, reinstate, or make a change to your current policy?"
  • 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

Say"Reinstatement may be available depending on how long your policy has been lapsed and your payment history. I can share the general requirements with you, and if you'd like to move forward, a specialist can initiate the process. Would that be helpful?"
  • 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

Say"It looks like you have a question about a claim that may already be in progress. Let me connect you to the right workflow so you get the most up-to-date status on that."

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

Say"I can see that your policy is currently lapsed. I'm happy to answer your question, but please be aware that coverage may not be active. I'll also share some reinstatement options with you at the end if you'd like."

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

Detect
intent on customer's question
  • 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

Say"I wasn't able to verify your identity, so I'm only able to share general information and won't be able to access any account-specific details. I'm still happy to help with general questions about how our policies work."

kb.public-faq — retrieve general public-facing insurance information

Detect
intent on customer's question
  • 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

Say"In general, our insurance policies cover the benefits selected at enrollment, subject to your plan's deductibles, limits, and exclusions. For the specifics of any individual policy, the policyholder would need to log in to the member portal or call us with their policy number handy."
  • 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

Say"Payments can generally be made through our online member portal, by phone, or by mail. Payment due dates are set at enrollment and shown on your billing statement. For your specific due date or payment history, you would need to log in or call with your policy number."
  • 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

Say"I want to make sure I point you to the right information. Could you tell me a little more about what you're looking for? For example, are you asking about what your plan covers, your payment, how to file a claim, or something else?"
Detect
intent on customer's clarified response
  • 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

Say"I'm going to connect you with one of our specialists who will be able to help you further with this. Please hold for just a moment — they'll have the context of our conversation so you won't need to repeat yourself."

Resolution

Say"I'm glad I could help with that. Is there anything else I can assist you with today?"

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

Say"Thank you for contacting insurance support, customer.name. Have a great day, and don't hesitate to reach out if you need anything else."

CRM.CloseInteraction linked to customer.policyNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms▣ text

General FAQ — Healthcare

HealthcareFAQPatient Support

Intake

Say"Hello, thanks for reaching out to us today. I'm here to help answer your questions about our services, hours, billing, insurance, and more. Could you tell me briefly what you're looking for help with?"
Detect
intent on patient opening message
  • 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

Say"Thanks for reaching out. I want to make sure I point you in the right direction — could you share a bit more detail about your question? For example, is this about a bill, an upcoming appointment, our services, or something else?"
Detect
intent on follow-up message
  • 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

Say"I can help with billing questions. Our billing team handles payments, payment plans, and statements. patient.name, are you asking about a specific bill or charge, or do you have a more general question about payment options?"
  • 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

Say"Based on our billing policy: [answer from kb.billing-faq]. Does that answer your question, or is there anything else I can clarify for you?"
  • 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

Say"I can help with scheduling. Are you looking to book a new appointment, reschedule or cancel an existing one, or do you have a question about our scheduling process?"
  • 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

Say"Here's what I can tell you about our scheduling: [answer from kb.scheduling-faq]. Would you like me to help you get connected to schedule directly, or is there anything else?"
  • 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

Say"To get you scheduled, I'll connect you with our scheduling team or patient portal. Do you have a preferred provider or location, and are you an existing patient with us?"
  • 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

Say"I just need to verify a couple of details so I can pull up your record. Could you please confirm your date of birth and the phone number or email we have on file?"
  • 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

Say"Welcome — we're glad you're considering us for your care. As a new patient, you'll want to complete our registration process. Here's how that works: [answer from kb.new-patient-faq]. Would you like me to share the link to our patient portal to get started, or connect you with our front desk?"
  • 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

Say"I can help with insurance questions. Are you asking about which insurance plans we accept, how to verify your coverage, or something about a referral or authorization?"
  • 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

Say"Here's what I can share: [answer from kb.insurance-faq]. For the most accurate coverage details tied to your specific plan, our insurance team can verify your benefits directly. Would that be helpful?"
  • 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

Say"I can tell you about the services and specialties we offer. What would you like to know — are you asking about a specific procedure, a specialty area, or whether we offer telehealth visits?"
  • 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

Say"Here's what I can share about our services: [answer from kb.services-faq]. Keep in mind, for questions about whether a specific treatment is right for you personally, our clinical team would be the best resource. Is there anything else I can help you with?"
  • 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

Say"I can help with location and hours. Do you have a specific facility or clinic in mind, or would you like general information about our locations?"
  • 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

Say"Here are the details for facility.name: [address, hours from kb.facility-directory]. Is there anything else you need, such as directions or a phone number?"
  • 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

Say"I can help with general questions about prescriptions. Are you asking about refilling a prescription, our pharmacy partners, or something about prior authorization for a medication?"
  • 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

Say"Here's what I can share: [answer from kb.prescriptions-faq]. For anything specific to your prescription or medical history, your care team or pharmacist will have the most accurate guidance. Is there anything else I can help with?"
  • 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

Say"To access any account-specific information, I'll need to verify your identity first. Could you please provide your full name, date of birth, and the phone number or email address associated with your account?"

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

Say"Thank you — I've verified your identity. Let me pull up the information you need."
  • 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

Say"I wasn't able to verify your identity with the information provided. For security purposes, I'm not able to share account-specific details without verification. You're welcome to contact us directly by phone or visit one of our locations with a valid photo ID. Is there anything general I can help you with in the meantime?"
  • 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

Agent
search available knowledge sources to find the best available answer to the patient's question.
Goal:retrieve an accurate, policy-aligned answer from kb.general-faq, kb.billing-faq, kb.services-faq, or kb.facility-directory without guessing or fabricating information.
Constraints:never provide clinical advice, diagnoses, or medication guidance; if no confident answer is found, acknowledge uncertainty explicitly and do not speculate; never access patient records without verified identity.
Tools available:kb.general-faq, kb.billing-faq, kb.services-faq, kb.scheduling-faq, kb.insurance-faq, kb.facility-directory, kb.prescriptions-faq
  • Answer found with high confidence answer_found →deliver-fallback-answer
  • No reliable answer found in knowledge base no_answer →acknowledge-uncertainty

Deliver Fallback Answer

Say"Based on our available information, here's what I can share: [answer retrieved]. Is that helpful, or do you have any follow-up questions?"
  • 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

Say"I want to make sure you get accurate information, and I don't have a confident answer to that specific question in our resources right now. Rather than guess, I'd recommend speaking directly with our team who can give you a verified answer. Would you like me to connect you with someone, or point you to our patient portal for more information?"
  • 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

Say"I appreciate you sharing that with me. I'm not able to provide clinical advice, diagnoses, or guidance on symptoms — that's something a licensed provider needs to assess for your safety. If you have a medical concern, I'd encourage you to contact your care team directly, schedule an appointment, or if it's urgent, please call 911 or go to your nearest emergency room. Would you like help scheduling an appointment or finding a location?"
  • 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

Say"If you or someone else is experiencing a medical emergency, please call 911 or go to your nearest emergency room immediately. Do not wait for a callback. Is there anything else I can do to help right now?"

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

Say"I'm going to connect you with a member of our team who can help you further. Please hold for just a moment — or if you'd prefer, I can arrange for a callback. Thank you for your patience."

Resolution

Say"I'm glad I could help. If you have any other questions in the future, don't hesitate to reach out. Take care, and have a great day!"

CRM.LogInteraction with question.category and resolution status

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Dispute Escalation to Human Agent

Financial ServicesDisputesEscalationSupport

Dispute Intake

Say"Thank you for reaching out. I'm here to help you with your dispute. Could you please share your full name and account number so I can pull up your account?"
  • 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

Say"For your security, I need to verify your identity before we proceed. I'll ask you a few quick questions."

IdentityVerification.Verify against customer.accountNumber — check security questions, date of birth, and registered contact details.

Detect
identity verification outcome
  • 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

Say"I'm sorry — I wasn't able to verify your identity through this channel. For your security, I'm unable to proceed with the dispute without verification."
Say"You can resolve this by logging into your secure online account, visiting your nearest branch with a government-issued ID, or calling back with your security details ready."

CRM.LogAttempt tag: identity-verification-failed, linked to customer.accountNumber

Account and Dispute Lookup

CoreBanking.GetAccountDetails for customer.accountNumber

CoreBanking.GetTransactionHistory for customer.accountNumber

Say"Thank you, customer.fullName. I can see your account. Can you tell me the date, amount, and any reference ID or merchant name for the charge or decision you'd like to dispute, and the reason for the dispute?"
  • 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.

Agent
assess dispute eligibility using transaction.date, transaction.amount, dispute.reason, and kb.dispute-eligibility-policy.
Goal:determine whether the dispute is within the allowable window and falls under a qualifying dispute category before logging a formal case.
Constraints:never log a formal dispute for transactions outside the eligible window without supervisor approval; never waive policy without flagging for human review; always document ineligible attempts in the CRM.
Tools available:CoreBanking.GetTransactionHistory, kb.dispute-eligibility-policy, CRM.LogAttempt
  • 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

Say"I've reviewed your account and I want to be transparent with you — based on our policy, this dispute falls outside the eligible timeframe of dispute.windowDays days, or doesn't meet the qualifying criteria for a formal dispute."
Say"I've documented your concern and today's contact in your account record. If you believe there are exceptional circumstances, I can escalate this to a specialist for a secondary review."

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

Say"It sounds like you may already have an open dispute with us. Let me pull that up — could you share your prior case or reference number?"

CaseManagement.GetCase by dispute.priorCaseNumber or customer.accountNumber

Detect
case lookup outcome
  • 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

Say"I found your existing case — case number case.id, currently with a status of case.status. Let me update it with the new information you've shared today."

CaseManagement.UpdateCase on case.id with new dispute.reason and today's contact timestamp

CRM.LogInteraction linked to case.id, tag: customer-follow-up

Say"I've added your update to the case. A specialist will review the new information and you'll receive a follow-up via customer.preferredContact within the timeframe we originally communicated."
  • 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

Say"Everything looks good. I'm going to formally log your dispute now. This covers the charge of transaction.amount on transaction.date at transaction.merchant, reference ID transaction.referenceId, with reason: dispute.reason. Does that sound correct?"
  • 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

Say"Your dispute has been formally logged and assigned case number case.id. Here's what happens next — our disputes team will review the details within 3 to 5 business days and you'll receive a status update via customer.preferredContact."

→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.

Say"I've sent a confirmation with your case number and next steps to your email and phone on file. Is there anything else I can help you with today?"
  • 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

Say"I completely understand, and I want to make sure you get the right support. I'm escalating this to a specialist right now who can handle this directly."

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

Approval
Slack.RequestApproval to #disputes-escalation-queue, approver: disputes_team_lead
Context sent:customer.fullName, customer.accountNumber, case.id, transaction.amount, transaction.referenceId, dispute.reason, escalation trigger summary
  • Specialist accepts and takes over approved →escalation-handoff-complete
  • No response within 10 min timeout →escalation-handoff-complete

Escalation Handoff Complete

Say"A disputes specialist has been notified and will be in touch with you via customer.preferredContact shortly. Your case reference is case.id — please keep that handy. We're sorry for the difficulty and we'll make sure this is resolved for you."

Twilio.SendSMS to customer.phone: "You've been connected with a disputes specialist. Reference: case.id. Expect contact via customer.preferredContact shortly."

Resolution / Closed

Say"I'm glad we could assist you today. Your case reference is case.id — don't hesitate to reach out if you have any further questions. Take care."

CRM.LogInteraction tag: interaction-complete, linked to case.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ email

Complaint Intake & Routing

Financial ServicesComplaintsComplianceSupport

Intake & Greeting

Say"Thank you for contacting us. I understand you'd like to raise a concern or formally lodge a complaint — I'm here to help you through that process and make sure your matter is fully recorded."
Say"To get started, may I have your full name and the account number related to your complaint?"
  • 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

Detect
outcome of identity verification check
  • 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

Say"Thank you, customer.fullName — your identity has been verified. I'll now collect the details of your complaint so we can log it accurately."
Say"Could you please tell me: what is the nature of your complaint, which product or service is involved, and approximately when did the issue occur?"

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

Say"I want to make sure I capture everything correctly. Let me ask a few specific questions to help document your complaint fully."
Say"Which product or service does this relate to — for example, a credit card, mortgage, current account, or a specific interaction with our team?"
Say"And can you recall the approximate date when this issue first occurred?"

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

Say"Have you contacted us previously about this issue? If so, do you have a reference number from that interaction?"

ComplaintManagement.SearchExistingCases using customer.accountNumber and complaint.nature

Detect
whether a duplicate or related case exists
  • 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

Say"I can see that a complaint related to this matter is already on record with us, reference number case.existingId. I'll make sure your latest contact is noted against that case."

CRM.AddInteractionNote linked to case.existingId with today's contact details and any new information provided

Say"Your existing complaint is being reviewed and you'll receive a response within regulatory.responseWindow days. Would you like us to send you a status update to your preferred contact?"
  • 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

Detect
complaint category classification result
  • 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

Say"Based on the details you've shared, your complaint involves a matter that requires review by our specialist compliance team. I want to assure you this will be prioritised appropriately."

ComplianceFlagging.FlagCase with complaint.category, customer.accountNumber, and complaint.nature

CaseRouting.AssignToComplianceQueue with priority: high

CRM.CreateComplaintRecord tagged regulatory, linked to customer.accountNumber

Say"Your complaint has been assigned reference number complaint.referenceNumber and routed to our compliance team. You can expect a formal written response within regulatory.responseWindow days — this is a regulatory commitment we are required to meet."
  • 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

Say"I've now formally logged your complaint. Your reference number is complaint.referenceNumber — please keep this for your records."
Say"Under our obligations, we aim to provide a full written response within regulatory.responseWindow days. You'll receive a written acknowledgment shortly at your preferred contact."
  • 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

Say"How would you prefer us to contact you with updates and our formal response — by email, phone, or secure message?"

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

Say"Your complaint has been recorded and an acknowledgment has been sent to your preferred contact. Your reference number is complaint.referenceNumber."
Say"A member of our team will review your complaint and aim to provide a full written response within regulatory.responseWindow days. If you need to contact us in the meantime, please quote your reference number."
Say"Is there anything else I can help you with today?"

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

Say"I understand — I'm not able to access your account without verified details, but I can still log an anonymous record of your concern so it is on record."

ComplaintManagement.CreateAnonymousRecord with complaint.nature and any details provided

ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber

Say"I've created an anonymous reference — your number is complaint.referenceNumber. To allow us to fully investigate and respond to you, we would need you to contact us again with your account credentials or visit a branch with valid identification."
Say"Would you like me to note a preferred contact method in case you are able to verify your identity with us in future?"
  • 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
Say"I understand this is a serious matter and I want to make sure it's handled with the urgency it deserves. I'm escalating your complaint immediately to a senior complaints handler who has the authority to address concerns of this nature."

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

Say"Your reference number is complaint.referenceNumber. A senior handler will be in contact with you within one business day. You do not need to contact us again — we will reach out to you."

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

Say"I'm transferring you now to one of our team members who will be able to assist you directly. Your reference number is complaint.referenceNumber — they'll have full context of our conversation."

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

Say"Your complaint has been flagged for review by our compliance team to ensure it is handled through the correct process. Your reference number is complaint.referenceNumber and you will receive written confirmation of next steps within two business days."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ email

Complaint Escalation — Insurance

InsuranceComplaintsEscalationRegulatory

Intake and Greeting

Say"Thank you for contacting us. I understand you'd like to raise a concern today — I'm here to help and I want to make sure we handle this properly for you. May I start with your full name and policy number?"
Detect
sentiment and distress level on customer's opening statement
  • 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

Say"I can hear how frustrated you are, and I want you to know your complaint is being taken very seriously. I'd like to take the time to properly understand everything that's happened. You have my full attention."
  • 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

Say"I want to make sure we treat this with the urgency it deserves. I'm flagging this right now as a priority complaint. A senior handler will be involved in the resolution of this case."
  • Continue to identity verification →identity-verification

Identity Verification

Say"Before I log your complaint and access your policy details, I need to verify your identity. Could you please confirm your date of birth and the postcode associated with your policy?"

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

Say"Thank you for confirming your details. I'd now like to understand your complaint fully. Please take as much time as you need — could you walk me through what happened, including when it occurred and any reference numbers you may have for an existing claim or case?"

PolicyAdministrationSystem.GetRecord for policy.number

CRM.GetCustomerProfile for policy.holderId

CaseManagement.SearchExistingCases using policy.number and claim.referenceNumber

Detect
whether an existing open case matches the incoming complaint
  • 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

Say"I can see from your record that you may benefit from some additional support. I want to make sure we handle your complaint in the way that works best for you. Would you prefer we follow up by phone, email, or letter — and is there anything I can do right now to make this process easier for you?"

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

Agent
classify the complaint using complaint.description and complaint.category against kb.complaint-category-taxonomy.
Goal:determine the correct complaint category (claim handling, policy administration, customer service, billing, regulatory) and assess whether a priority or legal flag should be applied.
Constraints:never dismiss or downgrade a complaint that contains keywords indicating legal threat, vulnerability, or regulatory referral; always apply the most protective classification when ambiguous.
Tools available:ComplaintsManagementSystem.GetCategoryList, kb.complaint-category-taxonomy, kb.regulatory-response-timeframes
  • 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

Say"I can see we already have an open case reference case.existingId related to this matter. Rather than creating a new complaint, I'll update that existing record with everything you've told me today so nothing is lost."

CaseManagement.UpdateCase on case.existingId with complaint.description and complaint.date

CRM.AddInteractionNote for policy.holderId with summary of call and updated complaint details

Say"I've updated your existing case case.existingId with today's information. You'll receive a follow-up via your preferred contact method, and you can reference that case number at any time."
  • 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

Say"I've formally logged your complaint and your reference number is complaint.referenceNumber. Please keep this safe — you can use it to check on the status of your complaint at any time."

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

Say"Under our regulatory obligations, you'll receive a written acknowledgment within 5 business days. We aim to resolve your complaint fully within 8 weeks. If we're unable to do so, we'll write to you explaining why and advising you of your right to refer your complaint to the Financial Ombudsman Service."
Say"We'll be in touch via customer.preferredContact. Is there anything else you'd like to add before we close today's call?"
  • 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

Say"I completely understand — I want to make sure your complaint is still recorded even if we're unable to verify your identity right now. I'll log this as an unverified complaint. Once we're able to verify your identity at a later stage, we can link it to your policy record."

ComplaintsManagementSystem.CreateUnverifiedComplaint with complaint.description, complaint.date, and a note that identity verification is pending

CRM.AddUnverifiedInteractionNote with complaint.description

Say"Your complaint has been logged with reference number complaint.referenceNumber. To progress this further and link it to your policy, please contact us again with your policy number and identity documents. We're sorry we couldn't do more today."
  • 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

Say"I'm escalating your complaint to a senior handler right now. They will be in contact with you via customer.preferredContact within 24 hours. Your reference number is complaint.referenceNumber — please keep this to hand."

Resolution Confirmation

Say"Thank you for bringing this to our attention — your feedback is important to us and we take all complaints seriously. Your reference number is complaint.referenceNumber. We'll be in touch as discussed. Is there anything else I can help you with today?"

CRM.CloseInteraction for policy.holderId with outcome logged and complaint.referenceNumber attached

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ text

Claims Intake

InsuranceClaimsIntake

Welcome & Policy Lookup

Say"Thank you for contacting us. I'm here to help you report a new claim. To get started, could you please provide your policy number or the name on the account?"

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

Say"I found an account. For your security, I need to verify your identity before we proceed. Could you please confirm your date of birth and the ZIP code on the policy?"

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

Say"I wasn't able to verify your identity with those details. Let me try a couple of alternative questions. Could you confirm the last four digits of the SSN on the account, or the email address we have on file?"

IdentityVerification.VerifySecondary using policy.number

  • Identity verified with secondary identifiers →loss-details-collection
  • Identity still unverified identity_failed →escalation-human

Loss Details Collection

Say"Thank you — your identity is confirmed. I'm sorry to hear you've experienced a loss. I'd like to gather a few details about what happened so we can open your claim. Please take your time."
Say"First, can you tell me the date the loss occurred, the location, and a brief description of what happened?"
  • 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

Say"Thank you. Are there any injuries involved, and can you give me a rough sense of the damages — for example, is a vehicle undriveable, or is a property uninhabitable?"
Detect
severity indicators in customer response — injuries, fatalities, large-scale damage, legal intent
  • 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

Agent
assess whether the reported loss type and circumstances fall within the active policy's coverage scope.
Goal:determine if the claim can proceed as standard intake, needs adjuster-review flagging, or falls into a clear exclusion category.
Constraints:never outright deny a claim to the customer — if exclusion is possible, flag for adjuster review rather than refusing; never proceed to claim creation if policy status is not confirmed active at time of loss.
Tools available:PolicyManagement.GetCoverageDetails, kb.coverage-rules
  • 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

Say"Everything looks good — I'm creating your claim record now. Just one moment."

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

Say"Your claim has been successfully submitted. Your claim number is claim.id — please keep this for your records. A claims adjuster will be in touch within claim.adjusterContactWindow business days via your preferred contact method."
Say"In the meantime, please preserve any evidence, avoid disposing of damaged property, and document everything with photos if possible. Is there anything else you'd like to know before we wrap up?"

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

Say"Happy to walk you through what happens next. Once our adjuster reaches out, they'll schedule an inspection or request documentation depending on your coverage type. You can also track your claim status online using your claim number claim.id."
Say"Do you have any other questions, or is there anything else I can help you with today?"
  • 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

Say"Thank you for those details. Based on what you've described, I want to make sure your claim receives the right level of review. I'm going to open a claim record and flag it for a specialist who can assess the coverage details carefully."

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

Say"Your claim number is claim.id. A claims specialist will review your policy terms and contact you within claim.adjusterContactWindow business days. We won't make any coverage determination until that review is complete."

CRM.SendConfirmation to customer.email or customer.phone with claim.id and review-pending notice

→resolution

Lapsed Policy

Say"I can see your policy — however, it appears that the coverage was not active on the date of the loss. Unfortunately, we're unable to open a claim for a period when the policy was lapsed or expired."

kb.reinstatement-options — retrieve available reinstatement paths for policy.coverageType

Say"I understand this is difficult news. I can share some options around reinstating your policy for future coverage. Would you like me to walk you through those options, or would you prefer to speak with a specialist?"
  • Customer wants reinstatement information CRM.LogInteraction tag: reinstatement-interest →escalation-human
  • Customer acknowledges and ends interaction →resolution

System Unavailable

Say"I apologize — our claims system is experiencing a temporary issue and I'm unable to create your claim record electronically right now. I want to make sure your report is captured so nothing is lost."

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

Say"I've logged all of your details securely. You will receive a confirmation and a claim number via your preferred contact method within one business day once our systems are restored. I'm sorry for the inconvenience."
  • 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

Say"Based on what you've described, I want to make sure you're connected immediately with a senior claims specialist who handles complex situations like this. I'm escalating your case right now — please stay on the line."

Escalation to Human Agent

CRM.LogInteraction with full context, flag: human_review_required

Say"I'm going to connect you with one of our team members who can assist you further. Please hold for just a moment — thank you for your patience."

Resolution

Say"Thank you for reaching out, and I'm sorry again about your loss. We'll be in touch soon, and please don't hesitate to contact us if you need anything in the meantime. Take care."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Card Lost / Stolen Replacement

Financial ServicesCard ServicesLoss Prevention

Intake

Say"Thank you for reaching out. I understand you'd like to report a lost or stolen card — I'll help you get this resolved right away. First, I need to verify your identity to protect your account."
  • 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

Say"I'll need to verify a few details. Can you please provide your full name, date of birth, and either the last four digits of your Social Security Number or your card PIN?"

KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin

Detect
identity verification outcome
  • Verification passes on first or second attempt verified →card-block
  • Verification fails after multiple attempts failed →verification-failure

Identity Verification — Fraud Path

Say"I'm sorry to hear that. Before we proceed, I need to verify your identity to protect your account. Can you please provide your full name, date of birth, and either the last four digits of your Social Security Number or your card PIN?"

KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin

Detect
identity verification outcome
  • Verification passes verified →card-block-fraud
  • Verification fails after multiple attempts failed →verification-failure

Card Block

Say"Thank you — I've verified your identity. I'm blocking your card ending in card.last4 right now to prevent any unauthorized use."

CardManagement.BlockCard for card.id

CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked

Salesforce.CreateCase type: card-lost-stolen, linked to account.id

Say"Your card has been blocked. Can you tell me approximately when and where you last used or had your card? This helps us note the details on your case."
  • Customer provides last seen details →address-confirmation
  • Customer cannot recall details →address-confirmation

Card Block — Fraud Path

Say"Thank you. I'm blocking your card ending in card.last4 immediately."

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

Say"Your card has been blocked. Because you've mentioned unauthorized transactions, I'll also need to connect you with our fraud team to open a dispute. Before I do, let me confirm your replacement card details."
  • Proceed to address confirmation for replacement →address-confirmation-fraud

Address Confirmation

Say"To send your replacement card, I have your address on file as customer.address. Would you like us to ship to this address, or would you prefer a different one?"
Detect
customer address preference
  • Customer confirms existing address confirmed →replacement-issuance
  • Customer requests a new or different address new_address →address-review

Address Confirmation — Fraud Path

Say"I have your address on file as customer.address. Should we send the replacement card here, or would you prefer a different address?"
Detect
customer address preference
  • Customer confirms existing address confirmed →replacement-issuance-fraud
  • Customer requests a new or different address new_address →address-review

Address Review

Say"I've noted the new address you'd like us to use. Because this address is different from what we have on file, our team will need to verify it before we can ship your replacement — this usually takes one business day."

Salesforce.UpdateCase add: unrecognized-replacement-address, replacement.address, flagged-for-review

ShippingFulfillment.HoldOrder pending address verification on account.id

Approval
Slack.RequestApproval to #card-services-review, approver: card_ops_supervisor
Context sent:account.id, customer.name, replacement.address, case reference
  • Address approved approved →replacement-issuance
  • Address flagged or rejected rejected →escalation-human

Replacement Issuance

Say"Great — I'll get your replacement card ordered now. Would you like standard delivery, or do you need your card sooner? I can check if expedited or same-day delivery is available for you."

ShippingFulfillment.CheckExpedited for account.id

Detect
customer delivery preference
  • 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

Say"I'll get your replacement card ordered now. Standard delivery typically takes five to seven business days. Would you also like to check expedited options?"

ShippingFulfillment.CheckExpedited for account.id

Detect
customer delivery preference
  • 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

Say"Your replacement card has been ordered and will arrive in five to seven business days. You'll receive a tracking number at customer.email once it ships. In the meantime, would you like me to activate a temporary digital card for mobile or online use?"
  • 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

Say"I've arranged expedited delivery — your replacement card should arrive within one to two business days. Tracking details will be sent to customer.email. Can I also set up a temporary digital card for you in the meantime?"
  • 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

Say"Your replacement card is on its way — expected in five to seven business days. A tracking number will be sent to customer.email. I'm now going to transfer you to our fraud team so they can review the unauthorized charges and open a dispute on your behalf."

→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

Say"Expedited delivery is confirmed — your card should arrive in one to two business days. Tracking details will go to customer.email. Let me now connect you with our fraud team to handle the unauthorized transactions."

→escalation-fraud

Digital Card Offer

Agent
determine whether the customer's account and device are eligible for a temporary digital card provisioned via the card management system.
Goal:activate a digital card for the customer if eligible, so they have immediate card access while awaiting physical delivery.
Constraints:only provision digital card if account is in good standing beyond the lost card event; never provision if fraud flag is active on the account; do not override card management eligibility checks.
Tools available:CardManagement.CheckDigitalEligibility, CardManagement.ProvisionDigitalCard, CoreBanking.GetAccountStatus
  • Digital card provisioned successfully provisioned →resolution
  • Customer not eligible or provisioning fails ineligible →resolution

Verification Failure

Say"I'm sorry — I wasn't able to verify your identity with the information provided, and for your security I'm unable to make changes to the account without successful verification. To protect your account, I'd recommend visiting a branch with a government-issued photo ID, where our team can assist you in person."

Salesforce.CreateCase type: identity-verification-failure, priority: high, linked to account.id

Salesforce.LogNote add: customer-directed-to-branch, verification-failed

Say"Is there anything else I can help you with today, or would you like us to note your nearest branch location?"
  • 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

Say"I'm transferring you now to a fraud specialist who will review the disputed transactions and guide you through the dispute process. Your case reference has been shared with them. Thank you for your patience."

Escalation — Human Agent

Salesforce.UpdateCase priority: high, tagged: manual-review-required

Slack.Notify to #card-services-review with case summary, account.id, customer.name

Say"I'm connecting you with a senior member of our team who can assist you further. I've shared your case details with them so you won't need to repeat yourself. Thank you for your patience."

Resolution

Say"To recap: your card ending in card.last4 has been blocked, a replacement is on its way, and your tracking details will be sent to customer.email. Your account is secure. Is there anything else I can help you with today?"

Salesforce.CloseCase resolution: card-replaced, linked to account.id

Resolution — No Action Taken

Say"Understood. Your card has been blocked as a precaution to protect your account. When you're ready to request a replacement or visit a branch, don't hesitate to reach out. Take care."

Salesforce.CloseCase resolution: blocked-no-replacement-issued, linked to account.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Branch / ATM Locator & Appointment Booking

Financial ServicesBranchATMAppointmentsLocator

Greeting & Intent Capture

Say"Hello! I'm here to help you find a branch or ATM, or schedule an in-person appointment. Are you looking to find a location near you, or would you like to book an appointment at a branch?"
  • 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

Say"No problem — I can help with either! Just to make sure I point you in the right direction: are you primarily trying to find a nearby branch or ATM, or are you looking to schedule a visit with someone at a branch?"
  • 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

Say"Great! To find the nearest branches and ATMs, could you share your current ZIP code or city?"

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

Say"No problem. You can also find branches and ATMs using our branch locator at bankname.com/locations, or call us at any time and we can search by city or state. Is there anything else I can help you with?"
  • 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

Say"Here are the closest options I found for you:"

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

Say"I see that one or more of those branches is currently closed or has limited hours. Let me pull up the most current hours and the next nearest alternative for you."

BranchATMLocator.GetUpdatedHours for branch.name, surface branch.hours and branch.status

BranchATMLocator.Search for next nearest open branch, surface branch.address and branch.distance

Say"The updated hours for branch.name are branch.hours. The nearest open alternative is branch.address, approximately branch.distance away. Would you like to book an appointment at the open branch, or is this information enough for now?"
  • 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

Say"Of course. Could you let me know what you need — for example, wheelchair-accessible facilities, language interpretation services, or anything else? I want to make sure the branch I recommend can fully support you."

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

Say"To book an appointment, I just need to confirm a couple of details. Are you an existing account holder with us?"

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

Say"I wasn't able to automatically pull up your account. Could you provide the phone number or email address associated with your account so I can look you up?"

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

Say"No problem — you're welcome to visit any branch or use our ATMs without an account. I should let you know that certain appointment types, such as account openings or loan consultations, do require an existing account or a new-customer intake process. Would you like help finding a branch, or are you interested in learning about opening an account?"
  • 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

Say"What type of appointment are you looking to schedule? For example: general banking, account services, safe deposit box access, notary services, or a financial review. You can also just describe what you need."
  • 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

Say"Great. What date and time works best for you? I'll check availability at your preferred branch."

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

Say"It looks like appointment.preferredTime on appointment.preferredDate isn't available at branch.name. The next available slot is branch.nextAvailableSlot. Would that work for you, or would you prefer a different date?"

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

Say"I understand — let me check a nearby branch that may have better availability for you."

BranchATMLocator.Search for next nearest branch with availability for appointment.type on appointment.preferredDate

AppointmentScheduler.CheckAvailability at alternative branch

Say"The next closest branch with availability is branch.name at branch.address, with an opening on branch.nextAvailableSlot. Would you like to book there?"
  • 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

Say"You're all set! Your appointment.type appointment is confirmed at branch.name, branch.address on appointment.preferredDate at appointment.preferredTime. Your confirmation number is appointment.confirmationNumber."

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

Say"I've sent a confirmation to your phone and email. Is there anything else I can help you with — for example, accessibility needs at the branch, or directions?"
  • 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

Say"Of course. I can help you reschedule or cancel your appointment with confirmation number appointment.confirmationNumber. Would you like to reschedule to a new date and time, or cancel the appointment altogether?"

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

Say"Your appointment has been cancelled and you'll receive a confirmation shortly. If you'd like to rebook in the future, I'm happy to help. Is there anything else I can assist you with?"
  • 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

Say"For a appointment.type appointment, I'll connect you with a dedicated advisor who can make sure you get the right level of service. Let me get that arranged for you."

Twilio.SendEmail to customer.email with advisor contact information and next steps

Say"A specialist will be in touch shortly to confirm your appointment details. Is there anything else I can help you with in the meantime?"
  • 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

Say"I want to make sure you get the right help. Let me connect you with one of our team members who can assist you directly."

Resolution

Say"You're all set! Don't hesitate to reach out if you need to find a location, book an appointment, or have any other questions. Have a great day!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Billing Inquiry / Dispute

TelecomBillingDisputeSupport

Greeting and Identity Verification

Say"Thank you for contacting us today. I'm here to help with your billing question. Can I start with your account number or the phone number on the account?"

IdentityVerification.LookupAccount using customer.accountNumber or customer.phoneNumber

Say"To protect your account, I'll need to verify your identity. Could you please provide your account PIN, date of birth, or the last four digits of your Social Security Number?"

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

Say"I'm sorry, I'm not able to pull up the account details without completing verification — this is to keep your account secure."
Say"You're welcome to visit any of our retail locations with a valid photo ID, or you can reset your PIN online using the email address on file. Would either of those work for you?"

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

Say"I've noted this contact on your account so that when you do verify, our team will have the full context. Is there anything else I can help you with that doesn't require account access?"

Inquiry Intake

CRM.PullAccount for customer.accountNumber, load customer.name, billing.previousCredits, billing.accountBalance

Say"Thanks for verifying, customer.name. I've got your account pulled up. Can you tell me which charge you're seeing a question about — do you have the amount or the description from your bill?"

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

Say"I completely understand — seeing an unexpected charge on your bill is frustrating, and I want to make sure we get to the bottom of this together. Let's take this one step at a time."
Detect
sentiment on customer response
  • 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

Say"Let me walk you through the main sections of your bill for this cycle. Your base plan charge is listed first, followed by any add-ons, taxes, and fees. I'll highlight anything that looks different from last month."

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

Say"I can see any plan or rate changes that were applied to your account. Let me pull that history up now."

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

Say"I'm looking at that charge now — billing.chargeDescription for billing.chargeAmount on your billing.cycleAffected bill. Give me just a moment to review the detail."

kb.telecom-billing-policy — check overage rules, promo expiration terms, and adjustment eligibility

Agent
analyze the charge detail against account plan, usage records, and billing policy.
Goal:determine whether the charge is valid, the result of a billing error, a promo expiration, an overage, or an unauthorized change.
Constraints:do not promise a credit before confirming eligibility; never access or modify financial records without completed identity verification; flag any pattern suggesting account fraud before proceeding.
Tools available:BillingSystem.FetchChargeDetail, BillingSystem.FetchUsageRecords, BillingSystem.FetchPlanChangeHistory, kb.telecom-billing-policy
  • 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

Say"Here's what I'm seeing: billing.chargeDescription was applied because billing.chargeAmount reflects the details I've reviewed. Let me walk you through exactly why this appeared."

kb.telecom-billing-policy — reference relevant policy language for promo expiration, overages, or rate changes

Say"Does that explanation make sense, or do you have any follow-up questions about this charge?"
Detect
customer acceptance or continued dispute
  • 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

Say"You're right — I can see this charge was applied in error, and I sincerely apologize for that. I'm going to take care of this for you right now."

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

Say"I can see this charge is from more than billing.policyWindowDays days ago. Our standard adjustment policy covers charges within that window, so I'm not able to issue a full reversal for charges older than that."

kb.telecom-goodwill-credit-policy — check goodwill credit eligibility and authorized limit

Say"What I can do is apply a goodwill credit within the amount I'm authorized to offer. Would that be helpful while we resolve this?"
  • Customer accepts goodwill credit offer →goodwill-credit-evaluation
  • Customer rejects and requests further escalation →escalation-human

Goodwill Credit Evaluation

Agent
determine the appropriate goodwill credit amount given account history, charge context, and policy limits.
Goal:offer the highest reasonable goodwill credit within authorized limits to retain the customer and resolve the inquiry.
Constraints:never exceed the goodwill credit cap defined in kb.telecom-goodwill-credit-policy; do not apply a second goodwill credit if one was issued within the last 90 days per billing.previousCredits.
Tools available:CRM.FetchAccountHistory, BillingSystem.FetchPreviousCredits, kb.telecom-goodwill-credit-policy
  • 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

Say"I've applied a credit of credit.amount to your account. Your updated balance is billing.accountBalance. You should see this reflected on your next statement, and you may also receive a confirmation by email at customer.email."
Say"Is there anything else I can help you with today?"
  • Customer is satisfied and has no further questions confirmed →resolution-credit-issued
  • Customer has an additional question or concern →inquiry-intake

Billing System Down

Say"I'm sorry — I'm running into a system issue on my end that's preventing me from pulling up your full billing detail right now. I don't want to give you incomplete information."

CaseManagement.CreateCase priority: normal, note: billing inquiry pending system restoration, link customer.accountNumber

CaseManagement.GenerateReferenceNumber assign to case.referenceNumber

Say"I've logged your inquiry and assigned it reference number case.referenceNumber. Our team will reach out within one business day once the system is restored — would you prefer a callback or an email to customer.email?"

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

Say"I want to make sure you get the best possible resolution on this. I'm going to connect you with a senior billing specialist who has the authority to review this further. I'll make sure they have the full context so you won't need to repeat yourself."

Resolution — Charge Explained

Say"I'm glad I could help clarify that. If you ever have questions about a future bill, don't hesitate to reach out. Is there anything else I can help you with today?"

CRM.LogInteraction note: billing inquiry resolved via explanation, no credit issued

Resolution — Credit Issued

Say"Your account has been updated and the credit is confirmed. Thank you for bringing this to our attention, customer.name — we appreciate your patience. Take care!"

CRM.LogInteraction note: billing dispute resolved, credit issued, customer confirmed satisfied

Resolution — Callback Scheduled

Say"You're all set. Reference number case.referenceNumber is yours to keep, and we'll be in touch within one business day. Thank you for your patience, and I'm sorry for the inconvenience."

CRM.LogInteraction note: callback or email follow-up scheduled, system outage, reference case.referenceNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Balance / Transaction Inquiry

Financial ServicesSupportBalanceTransactions

Intake

Say"Thank you for reaching out to Financial Services support. I can help you with your account balance or a transaction question. Could you please share your full name and either your account number or the last four digits of your card?"
Detect
customer intent from opening message
  • 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

Say"To protect your account, I need to verify your identity. I'll send a one-time passcode to your phone number on file. Please share the code when you receive it."

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

Say"That code didn't match. You have one attempt remaining before I'll need to pause access for your security. Please double-check the code and try again."
  • Customer provides correct OTP on second try verified IdentityVerification.Confirm →account-lookup
  • Customer fails again unverified →escalation-identity-failure

Security Question Fallback

Say"No problem — let me try another way. I'll ask you a security question linked to your account. Please answer as accurately as you can."

IdentityVerification.FetchSecurityQuestion for customer.accountNumber

Say"Here is your security question: please go ahead and answer when ready."
  • 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

Detect
what the customer needs based on original request and account data
  • 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

Say"Here is your current account summary for your customer.accountType account. Your current balance is account.balance and your available balance is account.availableBalance. Is there anything specific about those figures you would like me to explain?"
  • 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

Say"I'll pull up the transactions for you now. Could you let me know the approximate date range or the amount you are looking into? That will help me find the right record quickly."

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

Say"I found the transaction. Here are the details: the charge of transaction.amount was made on transaction.date at transaction.merchant, categorized as transaction.category. Does that help explain what you were looking at?"

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

Say"I wasn't able to find a transaction matching that description in the date range you gave me. It's possible it may appear under a different date or may still be pending. Would you like me to widen the search, or can you share any additional details?"
  • 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

Say"I can see you have a concern about a fee on your account. Let me take a look at the details and check whether any options are available to you."

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

Agent
evaluate waiver eligibility for fee.type of fee.amount on customer.accountNumber using account history and kb.fee-waiver-policy.
Goal:determine whether the customer qualifies for a one-time courtesy fee waiver and, if so, apply it; if not, explain why clearly and empathetically.
Constraints:never apply more than one waiver per calendar year per account; never waive fees on accounts with an active hold or delinquency flag; do not promise a waiver before eligibility is confirmed.
Tools available:CoreBanking.GetFeeDetail, CoreBanking.ApplyFeeWaiver, CoreBanking.GetAccountStanding, kb.fee-waiver-policy
  • 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

Say"Good news — you qualify for a one-time courtesy waiver on that fee. I have applied it to your account and it should be reflected within one business day. Is there anything else I can help you with today?"

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

Say"I reviewed your account and unfortunately I am not able to apply a waiver at this time. I want to be transparent — your account has already received a waiver this year, so another one isn't available under our current policy. I'm sorry I can't do more here. Would you like me to connect you with a specialist who may have additional options?"
  • Customer accepts the outcome satisfied →resolution
  • Customer wants to speak to a specialist or is upset escalation-requested →escalation-human

System Error

Say"I apologize — I'm having trouble retrieving your account information right now. This is a system issue on our end, not with your account. I'll log this so our team can look into it, and I can arrange for a callback at your convenience."

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

Say"I take this very seriously. Let me flag this right away and connect you with our fraud team who can open a formal investigation and protect your account immediately."

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

Say"For your protection, I'm not able to continue with the inquiry after multiple unsuccessful verification attempts. I'd encourage you to visit your nearest branch with a government-issued ID, or use our secure identity reset flow through the mobile app."

CRM.LogIncident tagged verification-failure, linked to customer.phone

CRM.CreateCase priority: high, tagged identity-lockout

Escalation — Account Flag

Say"I can see there is a restriction on your account that prevents me from sharing details through this channel. I'll need to connect you with a specialist who can review what's happening and assist you directly."

CRM.CreateCase priority: high, tagged account-flag-review, linked to customer.accountNumber

CRM.LogInteraction tagged account-flag-escalation

→escalation-human

Escalation — Human Specialist

Say"I'm going to transfer you to one of our account specialists right now. They'll have the full context of our conversation so you won't need to repeat anything."

CRM.CreateCase priority: high, tagged specialist-handoff, linked to customer.accountNumber

CRM.LogInteraction tagged escalation-human, with case summary

Resolution

Say"I'm glad I could help. To summarize what we covered today: your account information has been confirmed and any actions taken are noted on your account. If you ever have another question, don't hesitate to reach out. Have a great day!"

CRM.LogInteraction tagged inquiry-resolved, linked to customer.accountNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ chat▣ voice▣ sms

Amenity / Service Request

TravelHospitalityIn-StayGuest Serviceszinglekipsu

Greet and Identify

Say"Welcome! I'm happy to help with anything you need during your stay. Could I start with your name and room number?"
Detect
sentiment and intent on guest opening message
  • 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

Say"I want to make sure I have the right room. Could you share your reservation confirmation number or the email address used at check-in?"

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

Say"I'm showing your reservation as either not yet checked in or already checked out. If you believe this is an error, I'd love to connect you with a team member who can look into it directly."
  • Guest believes it is an error →escalation-human
  • Guest acknowledges wrong room or wrong stay →greet-and-identify

Capture Request

Say"Great, thanks guest.name! You're all set in room guest.roomNumber. What can we bring or arrange for you today?"

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

Say"Of course — here is a quick overview of what we can arrange: extra linens and towels, rollaway beds, cribs, toiletry top-ups, late checkout requests, luggage storage, and more. What sounds helpful for your stay?"
  • 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

Say"Just so you know, request.item carries a fee of item.fee which will be applied to your room account. Shall I go ahead and arrange it for you?"
  • 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

Say"I'm sorry — late checkout isn't available today due to high occupancy. What I can offer instead is complimentary luggage storage so you can enjoy the property until your departure. Would that work for you?"
  • 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

Agent
identify the closest available substitute for request.item using current inventory and kb.amenity-catalog.
Goal:propose one or two concrete alternatives that meet the guest's underlying need without over-promising on availability.
Constraints:only suggest items confirmed as in-stock by HousekeepingDispatch.CheckInventory; never promise a specific item that has not been verified available; do not offer complimentary upgrades without manager approval.
Tools available:HousekeepingDispatch.CheckInventory, kb.amenity-catalog
  • 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

Say"Perfect — I've sent that request through. You can expect request.item to arrive by dispatch.eta. Is there anything else I can help with during your stay?"
  • 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

Say"I completely understand, and I apologize for the inconvenience. I'm marking this as a priority and re-dispatching now with a shortened delivery window."

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

Say"I want to make sure this is handled just right. I'm connecting you with a member of our team now who can assist you personally. Thank you for your patience, guest.name."

Resolution / Close

Say"You're all set, guest.name! Your request is confirmed and on its way. Don't hesitate to reach out if there is anything else we can do to make your stay more comfortable."

CRM.LogInteraction for guest.reservationId tagged resolved, linked to dispatch.ticketId

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat

SIM Swap / Number Porting

TelecomSIMPortingSecurity

Intake & Request Classification

Say"Thank you for contacting us. I can help you with a SIM swap or number transfer today. Could you tell me what you need — are you moving your number to a new SIM card, switching to a different carrier, or reporting a lost or stolen SIM?"
Detect
intent on customer reply
  • 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

Say"Before I can make any changes to your account, I need to verify your identity. Could you please provide your full name, date of birth, and your account PIN or security passphrase?"

IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber

Detect
verification outcome
  • 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

Say"I wasn't able to verify your identity with those details. Let's try once more — please double-check your date of birth and the PIN or passphrase on your account."

IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber

Detect
verification outcome on retry
  • Verification passes verified →account-eligibility-check
  • Verification fails again failed →verification-lockout

Verification Lockout

Say"I'm sorry, I wasn't able to verify your identity after multiple attempts. For your security, I'm unable to proceed with this request over the phone or chat."

CRM.LogFailedVerification for customer.phoneNumber, flag request as locked

CRM.AddNote to account.id: "Identity verification failed — in-store ID required."

Say"Please visit any of our retail stores with a government-issued photo ID, and our team will be able to assist you there. Is there anything else I can help you with today?"

Account Eligibility Check

CRM.LookupAccount by customer.phoneNumber, retrieve account.id, account.fraudFlag, account.portFreeze

Detect
account status
  • 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

Detect
request type from request.type captured at intake
  • 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

Say"Great — I've verified your identity and your account is in good standing. To complete the SIM swap, I'll need the ICCID number printed on your new SIM card. You can usually find it on the SIM card itself or its packaging."

SubscriberProvisioning.ValidateICCID for sim.newICCID

Detect
ICCID validation result
  • 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

Say"I wasn't able to validate that SIM card number. It may be invalid or already assigned to another account. Could you double-check the ICCID, or let me know if you have a different SIM card available?"
  • Customer provides a new ICCID to try →sim-swap-execution
  • Customer cannot provide a valid ICCID →escalation-human-agent

SIM Swap Confirm

Say"I'm about to move your number customer.phoneNumber to the new SIM card ending in the last four digits of your ICCID. This will deactivate your current SIM immediately. Can you confirm you'd like to proceed?"
Detect
customer confirmation
  • 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."

Say"Your SIM swap is done. Your number is now active on the new SIM card. Please restart your device if service doesn't appear within a few minutes."

→resolution

SIM Swap Cancelled

Say"No problem — I've left your account unchanged. Please don't hesitate to reach out when you're ready to proceed. Is there anything else I can help you with?"

→resolution

Port-Out Execution

Say"To transfer your number to a new carrier, I'll generate a port authorization code — sometimes called a PAC or transfer PIN — that your new carrier will need to initiate the transfer. Before I do, could you confirm the name of the carrier you're moving to?"

NumberPortabilityClearinghouse.LookupCarrier for port.receivingCarrier

Detect
carrier lookup result
  • 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."

Say"Your port authorization code is: port.authCode. Please provide this code to port.receivingCarrier when you activate your new service. The transfer typically completes within one business day, though it may take up to three days in some cases."
Say"Once the port completes, your current service on this account will end automatically. Is there anything else you'd like to know before you go?"

→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."

Say"I'm sorry — I wasn't able to reach the number portability system for your carrier right now. I've logged your request and a member of our team will follow up with your port authorization code within two business hours. Would you like us to reach you at customer.phoneNumber or a different number?"
Detect
callback preference
  • 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

Say"You're all set — we'll be in touch shortly. I apologize for the inconvenience. Is there anything else I can help you with today?"

→resolution

Lost or Stolen SIM

Say"I'm sorry to hear that. To protect your account right away, I'm going to suspend your current SIM immediately. Once that's done, I can issue a replacement SIM or walk you through your options."

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

Say"Your current SIM has been suspended. Would you like me to arrange a replacement SIM now? You can have one shipped to your address on file or pick one up at a store."
Detect
customer preference for replacement
  • 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."

Say"Your replacement SIM has been ordered and will arrive within 3 to 5 business days. Once you receive it, you can activate it through our app, website, or by calling us back. Is there anything else I can help you with?"

→resolution

Store Pickup Guidance

Say"No problem — you can visit any of our retail locations to pick up a replacement SIM. Please bring your government-issued photo ID. Our team there can activate the new SIM for you on the spot. Would you like me to look up the nearest store to you?"

CRM.LogActivity on account.id: "Customer advised to pick up replacement SIM in store."

→resolution

Suspected SIM Hijacking

Say"I understand — thank you for letting us know immediately. This is being treated as a priority security concern. I'm suspending your account right now to prevent any unauthorized use."

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."

Say"Your account has been suspended. Our fraud team has been alerted and will investigate this immediately. You'll receive a follow-up within one hour. Do not attempt to log into any accounts that use this phone number for two-factor authentication until you've heard from us."

→escalation-fraud-team

Fraud Hold Escalation

Say"I can see there is a security hold on your account that needs to be reviewed before any changes can be made. I'm going to connect you with our fraud team right away — they're the only team authorized to make changes while this hold is active."

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

Say"I'm transferring you to our fraud and security specialists now. They have full visibility into your account and the authority to resolve this. Please stay on the line — I'll make sure they have all the context from our conversation."

Escalation — Human Agent

CRM.CreateTicket for account.id: "Customer requires human agent assistance — could not complete SIM swap or port automatically."

Say"I'm going to connect you with one of our senior support agents who can assist you further. Thank you for your patience — please stay on the line."

Resolution

Say"Is there anything else I can help you with today?"
Detect
customer response
  • Customer has another request new-request →intake
  • Customer is done done →close

Close

Say"Thank you for choosing us. Have a great day — goodbye!"

CRM.CloseInteraction for account.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ email▣ voice

Returns / Exchange Request

RetailReturnsExchangeSupport

Intake

Say"Hi there! I'm here to help with your return or exchange. To get started, could you please share your order ID or receipt number along with the email address on your account?"
  • 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

Say"No problem — I can try to locate your order another way. Could you share your full name, email address, or the last four digits of the payment method used?"

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

Say"Great, I've pulled up your order. Could you let me know the reason for the return and whether you'd prefer a refund to your original payment method or an exchange for a different size, color, or item?"
  • 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

Agent
evaluate the refund request against policy and order data.
Goal:confirm eligibility, calculate refund amount for order.total, and determine whether to auto-process or route for approval based on refund value.
Constraints:never auto-approve refunds above USD 300 without escalation; always verify item condition stated by customer matches return.reason before proceeding.
Tools available:OrderManagement.GetOrder, ReturnsManagement.CheckEligibility, kb.return-exchange-policy
  • 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

Say"You're all set! I've emailed your prepaid return shipping label to customer.email. Once we receive the item, your refund will be processed within 5 to 7 business days. Is there anything else I can help you with?"

→resolution

Exchange Path

Say"Happy to set up an exchange for you. What size, color, or item would you like instead? Please also confirm the item you're returning and the reason for the exchange."

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

Say"Your exchange is confirmed! I've emailed you a prepaid return label for the original item and a confirmation for your new order exchange.orderId. The replacement will ship once we receive the return. Anything else I can help with?"

→resolution

Refund Approval

Approval
Slack.RequestApproval to #returns-approvals, approver: returns_ops_lead
Context sent:order.id, order.total, customer.email, return.reason, agent risk assessment
  • Approved approved →generate-return-label
  • Rejected rejected →escalation-human
  • No response within 30 min →escalation-human

Damaged or Wrong Item

Say"I'm really sorry about that — receiving a damaged or incorrect item is never acceptable. I want to get this resolved quickly for you. Could you share your order ID and email so I can pull up the details?"

OrderManagement.GetOrder using order.id and customer.email

CRM.LogIssue tagged damaged-or-wrong, linked to order.id

Agent
assess whether to reship immediately without requiring a return or to request photo evidence before reshipping.
Goal:resolve the customer's issue as fast as possible while following fraud-prevention guidelines for order.total.
Constraints:never skip return requirement for orders above USD 150 without manager approval; always log the issue in CRM before taking action.
Tools available:OrderManagement.GetOrder, OrderManagement.CreateReplacementOrder, ReturnsManagement.WaiveReturn, kb.damaged-item-policy
  • 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

Say"Thanks for sending that over — I've reviewed the details and will get a replacement on its way to you now."

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

Say"I completely understand your frustration. Looking at your order, the purchase date of order.purchaseDate falls outside our policy.returnWindowDays-day return window, so I'm unable to process a standard return."

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

Say"I've applied a store credit equal to the item value to your account — you'll receive an email with details shortly. We appreciate your understanding and hope to see you shop with us again."

→resolution

Final Sale Ineligible

Say"I can see this item was purchased as a final sale item, which means it isn't eligible for returns or exchanges under our policy. I'm sorry for the inconvenience."

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

Agent
review the specific reason the item was flagged ineligible and determine whether any documented policy exception applies.
Goal:find a fair resolution that aligns with policy while preserving customer satisfaction where possible.
Constraints:never override a final sale classification without manager-level approval; never issue a refund outside policy without an escalation record in CRM.
Tools available:ReturnsManagement.CheckEligibility, CRM.LogNote, kb.return-exchange-policy
  • 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

Say"I want to make sure this gets the attention it deserves. I'm escalating your case to a senior member of our team who will be in touch shortly with a resolution. I'm sorry for the inconvenience and appreciate your patience."

Resolution

Say"Is there anything else I can help you with today? If you have any questions about your return or exchange, don't hesitate to reach out — we're always happy to help."

CRM.UpdateCase status: resolved, linked to order.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat

Prior Authorization Status Inquiry

HealthcarePrior AuthorizationMember ServicesProvider Services

Intake & Caller Identification

Say"Thank you for contacting member services. I'm here to help with a prior authorization inquiry. May I ask — are you calling as the member, or as a provider or practice staff member?"
Detect
caller relationship to member
  • 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

Say"I'll need to verify your identity before I can share any authorization details. Could you please provide me with your Member ID and date of birth?"

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

Say"Thank you for calling on behalf of your practice. Could you please provide the member's Member ID or date of birth, your practice NPI, and the authorization reference number if you have it?"

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

Say"Before we discuss the authorization, I want to let you know that the member's coverage appears to be inactive as of today. I'll flag this on the record. Depending on the coverage dates, this may affect the authorization request."

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

Say"Thank you. I'm pulling up the authorization request now. Could you confirm the medication or procedure being authorized and the date the request was submitted?"

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

Say"I can see that the authorization request for medication.name or procedure.name is currently pending review. It was submitted on auth.submittedDate and is within the standard review window."

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

Say"The expected decision date is auth.reviewDeadline. You don't need to take any action right now. If you haven't received a decision by that date, please contact us and we'll escalate on your behalf. Is there anything else I can help you with?"

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

Say"Great news — the authorization for medication.name or procedure.name has been approved. The approval is effective auth.effectiveDates. An approval letter has been or will be sent to both the member and the ordering provider."

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

Say"I'll arrange for the approval letter to be resent right away. Can you confirm the best delivery method — secure portal message or mailing address on file?"

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

Say"I'm sorry to share that the authorization request for medication.name or procedure.name has been denied. The reason on file is: auth.denialReason. I want to make sure you understand your options from here."

kb.appeal-rights-policy — confirm appeal window, peer-to-peer review rights, and deadline rules for auth.denialReason

Say"You have the right to appeal this decision. The appeal must be submitted by auth.appealDeadline. If the treating provider would like to speak directly with the medical reviewer, a peer-to-peer review can also be requested within that same window. Would you like me to note a formal appeal intent on this record?"

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

Say"The denial reason provided is: auth.denialReason. This determination was based on the clinical criteria applied to the submitted documentation. If additional clinical evidence is available, that can be included as part of a formal appeal."

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

Say"The authorization is currently on hold because additional clinical information is needed before a determination can be made. The outstanding documentation is: auth.outstandingDocs."
Say"The ordering provider's office will need to submit this information directly to the payer's clinical review team. Once received, the review will resume. Would you like me to send a notification to the provider's portal?"

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

Say"I wasn't able to locate an authorization request matching the details you provided. Let me confirm what we have: Member ID member.id, submitted date auth.submittedDate, for medication.name or procedure.name."
Say"If those details are correct, it's possible the request did not process successfully. I'd recommend the submitting provider resubmit the request through the portal or by fax, and retain the submission confirmation number. I can also escalate this to our intake team to investigate."

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

Say"Given the urgent nature of this request, I'm flagging this case for immediate escalation to our clinical review team and escalating for an expedited review. A specialist will be in contact within 24 hours. You'll receive a reference number for this escalation shortly."

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

Say"I've noted your intent to appeal and opened an appeal case on your account. You'll receive written instructions outlining the appeal process and submission requirements. The deadline to submit is auth.appealDeadline. A dedicated appeals coordinator will follow up with you."

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

Say"I've created a ticket for our intake team to investigate. They will review submission records and follow up within two business days. Your ticket reference has been added to your account. Is there anything else I can help with?"
  • 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

Say"I want to make sure you get the right help here. I'm transferring you to a member services specialist who can assist further. Please hold for just a moment, and thank you for your patience."

Resolution

Say"Thank you for contacting us today. To recap: I've provided you with the current status of your authorization request and any next steps. If you have further questions or need follow-up, don't hesitate to call back or send a message through the member portal. Take care."

CRM.LogInteraction for member.id with outcome resolved and summary of interaction

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ sms▣ email▣ chat

Policy Renewal Reminder / Confirmation

InsuranceRenewalRetentionBilling

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.

Detect
customer intent from inbound reply or inbound call
  • 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.

Detect
customer intent from inbound reply or call
  • 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

Say"Thank you for reaching out about your policy renewal. For security purposes, I'll need to verify your identity before we proceed. Could you please provide your date of birth and the last four digits of your Social Security Number?"

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.

Say"I've pulled up your policy policy.number. Your current premium is policy.current_premium and your renewal premium is policy.renewal_premium. Your renewal date is policy.renewal_date."
  • 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

Say"I can see there is an outstanding balance of billing.outstanding_balance on your account. Unfortunately, we'll need to resolve this before we can process your renewal to avoid a lapse in coverage. I can help you pay the balance now, or we can explore a payment plan."

BillingPlatform.GetPaymentOptions for policy.number

Agent
assess the customer's situation and determine the best path to resolve billing.outstanding_balance.
Goal:resolve the outstanding balance so renewal can proceed, either by collecting full payment now or arranging an approved payment plan.
Constraints:never proceed with renewal while a balance remains unresolved; payment plans must comply with kb.billing-payment-plan-policy; never waive balances without supervisor approval.
Tools available:BillingPlatform.ProcessPayment, BillingPlatform.CreatePaymentPlan, kb.billing-payment-plan-policy, CRM.LogInteraction
  • 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

Say"I completely understand — a premium change can be surprising. Let me walk you through the factors that contributed to the updated rate."

UnderwritingEngine.GetRateChangeFactors for policy.number

Say"The adjustment to policy.renewal_premium reflects changes in policy.coverage_summary, along with updated risk factors and market conditions. I'm happy to explain any of these in more detail."

kb.rate-change-explanations — retrieve standard explanations for common rate change drivers

Detect
customer reaction to the explanation
  • 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

Say"No problem — I can log your requested coverage changes. These will need to be reviewed before we finalize your renewal. Please go ahead and describe the changes you'd like to make."

CRM.LogCoverageChangeRequest for policy.number with customer's requested modifications.

Agent
review the requested coverage changes against underwriting eligibility rules.
Goal:determine whether the requested changes can be approved automatically or require underwriter review before renewal is finalized.
Constraints:never finalize renewal with unapproved coverage changes; changes outside standard guidelines must be escalated; do not quote a revised premium without system confirmation.
Tools available:UnderwritingEngine.CheckEligibility, PolicyManagement.GetCoverageOptions, kb.underwriting-guidelines, CRM.LogInteraction
  • 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

Say"I'm sorry to hear you're considering not renewing. Before I process anything, I'd love to understand what's driving that decision — is it the premium, coverage, or something else?"
Detect
primary reason for 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

Say"I appreciate your loyalty and I'd like to see if we can find a better fit for you before you go. Based on your policy, here are some options that might help."

CRM.LogRetentionAttempt for policy.number

Agent
select and present the most relevant retention offers from kb.retention-offers based on the customer's stated reason for leaving.
Goal:retain the customer by presenting a genuinely compelling option — a discount, loyalty reward, or alternative coverage tier — that addresses their concern.
Constraints:never promise a discount that hasn't been confirmed as available via kb.retention-offers; do not exceed authorized discount thresholds without supervisor approval.
Tools available:kb.retention-offers, PolicyManagement.GetCoverageOptions, BillingPlatform.GetDiscountEligibility, CRM.LogInteraction
  • 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

Say"I understand, and I respect your decision. I've noted your intent not to renew policy policy.number. Your coverage will remain active until policy.expiry_deadline. You'll receive written confirmation of non-renewal shortly."

PolicyManagement.LogNonRenewalIntent for policy.number with cancellation reason.

CRM.UpdateCustomerRecord with non-renewal status and reason code.

DocumentDelivery.SendNonRenewalConfirmation to customer.email.

Renewal Confirmation

Say"Great — let's confirm your renewal. Your policy policy.number will be renewed at a premium of policy.renewal_premium. Your current payment method on file is billing.payment_method ending in billing.payment_method_last4. Would you like to use this method, or update it?"
Detect
customer payment method preference
  • 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

Say"Of course — please provide your new payment details and I'll update them securely on your account."

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

Say"I can schedule your renewal payment. Please note the payment must be received by policy.expiry_deadline to avoid any lapse in coverage. What date works for you?"

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.

Say"Your policy policy.number has been successfully renewed. Your confirmation number is renewal.confirmation_number and a full copy of your updated policy documents has been sent to customer.email. Is there anything else I can help you with today?"

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.

Say"I want to make sure you're taken care of, so I'm going to connect you with a specialist who can assist you further. Please hold for just a moment."

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.

Say"I've submitted your policy for underwriting review. A specialist will be in touch within two business days to discuss your options. You'll receive an email at customer.email confirming the review has been opened."

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.

Say"I'm going to connect you with our billing team who has the tools to resolve this quickly and ensure your coverage doesn't lapse. Thank you for your patience."

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.

Say"I want to make sure we do everything we can to find the right solution for you. I'm transferring you to one of our senior retention specialists right now who can work with you directly."

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."

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Payment / Billing Issue

RetailBillingPaymentsRefunds

Identity Verification

Say"Thank you for reaching out. I'm happy to help you sort out this billing concern. To get started, could you please confirm your full name and the email address on your account?"

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

Say"I wasn't able to locate an account with those details. Could you double-check the email address, or try an alternate one you may have used when placing your order?"

CRM.LookupAccount using customer.email

  • Account found on second attempt →transaction-lookup
  • Still unable to locate account →escalation-back-office

Transaction Lookup

Say"Thanks, customer.name — I've pulled up your account. Can you share the order ID or transaction ID and the charge amount and date you're seeing?"

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

Agent
assess the billing discrepancy using transaction.id, transaction.amount, transaction.date, payment.method, and kb.billing-policy.
Goal:determine whether the discrepancy is a duplicate charge, an erroneous fee, a missing refund that was already issued, or a failed payment requiring retry.
Constraints:never initiate a refund above USD 150 without escalating for approval; always verify refund has not already been processed before initiating a new one; never modify account payment details without customer consent.
Tools available:PaymentProcessor.GetTransaction, PaymentProcessor.GetRefundStatus, OrderManagement.GetOrder, RefundPortal.CheckRefundHistory, kb.billing-policy
  • 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

Say"I can confirm that charge should not have been applied. I'm going to process a refund of refund.amount to your payment.method right now."

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

Say"Your refund of refund.amount has been submitted. You should see it back on your payment.method within refund.timeline. I've also sent a confirmation to customer.email. Is there anything else I can help with?"
  • Customer confirms resolution →resolution-confirmed
  • Customer has additional questions →resolution-confirmed

Valid Charge Explanation

Say"I've reviewed the charge and I can see it was applied for a specific reason. Let me walk you through what happened."

kb.billing-policy — retrieve applicable policy documentation (restocking fees, subscription renewals, promotional terms)

Say"This charge of transaction.amount on transaction.date relates to your order order.id. Based on our billing policy, this was applied as — [restocking fee / subscription renewal / promotional adjustment]. I can send you the full policy documentation for your records."

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

Say"Our records show a refund of refund.amount was issued on transaction.date with reference number refund.id. Refunds to payment.method typically take refund.timeline to appear, depending on your bank's processing times."
Say"If it has been longer than that window, I'd recommend contacting your bank or card issuer with this reference number: refund.id — they can trace it on their end."

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

Say"It looks like this payment didn't go through. The most common reasons are an expired card or insufficient funds. Let me help you get this sorted."
  • 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

Say"I can guide you through updating your payment information so we can retry the charge. For security, you'll need to do this directly in your account settings — I can walk you through it step by step."

kb.billing-policy — retrieve payment update and retry procedures

Say"Once you've updated your card details, the system will automatically retry the payment within 24 hours, or you can place the order again. Would you like me to send you a direct link to update your payment method?"

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

Say"Great — your updated payment details are in place. The retry will process within 24 hours and you'll receive a confirmation email once it goes through. I'll send a summary to customer.email now."

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

Say"I wasn't able to locate that transaction in our systems right now, but I don't want to leave this unresolved. Let me collect the details so our back-office team can investigate."
Say"Could you please confirm the order ID or transaction ID, the exact charge amount, the date it appeared, the payment method used, and any error messages you received?"

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

Say"I've escalated this to our billing specialist team who have the tools to investigate further. You'll receive a follow-up at customer.email within one to two business days. Your case reference is available in your account."

EmailNotifications.Send to customer.email with case reference, summary of issue, and expected resolution timeline

Escalation — High-Value Refund Approval

Approval
Slack.RequestApproval to #billing-approvals, approver: billing_manager
Context sent:customer.accountId, transaction.id, transaction.amount, transaction.date, agent's discrepancy assessment, payment.method
  • Approved approved →refund-initiation
  • Rejected rejected →valid-charge-explanation
  • No response within 60 min →escalation-back-office

Escalation — Fraud or Unauthorized Access

Say"I take this very seriously. I'm flagging your account immediately and connecting you with our fraud and security team who are equipped to handle this."

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

Say"Your account has been secured and our fraud team will be in touch at customer.email within 24 hours. Please do not attempt to use your payment method until you hear from them."

EmailNotifications.Send to customer.email with fraud case reference and next steps

Resolution Confirmed

Say"I'm glad we were able to get that sorted for you. Is there anything else I can help you with today?"

CRM.UpdateCase status: resolved, linked to customer.accountId and order.id

EmailNotifications.Send to customer.email with resolution summary and case closure confirmation

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Password / Login Recovery

Financial ServicesAccount AccessSecuritySupport

Intake — Login Issue

Say"Thank you for reaching out. I'm here to help you regain access to your account. Can you briefly describe what's happening when you try to log in?"
Detect
nature of login issue reported by customer
  • 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

Say"Before I can make any changes to your account, I need to verify your identity. I'll ask you a few quick questions — please have your account details handy."

CRM.PullCustomerRecord using customer.registeredEmail or customer.accountNumber

IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN

Say"Can you please confirm your full name, date of birth, and either your account number or the email address registered on the account?"
Detect
identity verification outcome from verification.attemptCount and submitted details
  • 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

Say"I wasn't able to match those details. You have one more attempt before the account must be secured for your protection. Please double-check and try again — confirm your full name, date of birth, and the last four digits of your Social Security Number."

IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN

CRM.IncrementAttemptCount

Detect
identity verification outcome on retry
  • 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

Detect
account status returned by core banking and fraud monitoring systems
  • 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

Say"Great — your identity is confirmed and your account looks clear. I'll send a password reset link now. Just to confirm: should I send it to the email address or phone number we have on file?"

CRM.VerifyContactInfo for customer.registeredEmail and customer.registeredPhone

Detect
whether registered contact information is current and reachable
  • 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

Say"I've just sent a one-time verification code to your registered contact. Please share that code with me once you receive it so we can proceed."
Detect
MFA code submission and validation outcome
  • 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

Say"A secure password reset link has been sent to you now. The link is valid for 15 minutes. Once you've reset your password, please try logging in and let me know if access is restored."
Detect
customer confirmation of access outcome
  • 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

Say"Your account was temporarily secured after several unsuccessful login attempts, which is a standard security measure. A mandatory waiting period is currently in effect before a reset can be issued."
Say"Once the cooling-off period has passed, you're welcome to contact us again and we can proceed with the reset right away. If you believe you did not make those login attempts yourself, please let me know now."
Detect
customer response to cooldown notice
  • 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

Say"Wonderful — I'm glad we got that sorted. Your access has been restored. For your security, I'd recommend choosing a strong, unique password and enabling two-factor authentication if you haven't already."

CRM.LogInteraction tagged password-reset-successful, linked to customer.accountNumber

CoreBanking.ClearLockStatus for customer.accountNumber

Resolution — Cooldown Advised

Say"Thank you for your patience. Your account remains protected in the meantime. Please reach back out once the waiting period has passed and we'll get the reset sent to you right away."

CRM.LogInteraction tagged cooldown-in-effect, linked to customer.accountNumber

Escalation — Identity Lockout

Say"I'm sorry — I wasn't able to verify your identity through this channel after the maximum number of attempts. For your protection, your account has been secured and the reset cannot proceed remotely."
Say"To restore access, you'll need to visit a branch in person with a valid government-issued photo ID, or complete our document verification process. I'll create a case for you now so the team is ready when you arrive."

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

Say"I want to make sure your account is fully protected. There's an indicator on your account that requires our fraud team to review it before any changes can be made. I'm going to escalate this to them now and a specialist will follow up with you shortly."

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

Say"Because the contact information we have on file may not be current, I'm not able to send the reset link through our standard process. I'll need to pass this to our verification team who can walk you through an alternative identity confirmation method."

CRM.CreateCase priority: medium, tagged outdated-contact-info-manual-review, linked to customer.accountNumber

CRM.LogInteraction tagged contact-info-outdated-escalation

Escalation — MFA Failure

Say"The one-time code didn't match what we sent. For your account's security, I'm unable to proceed with the reset at this time. I'll refer this to our account security team who will reach out to you directly to complete the verification safely."

CRM.CreateCase priority: medium, tagged mfa-failure-escalation, linked to customer.accountNumber

CRM.LogInteraction tagged otp-verification-failed

Escalation — Account Review

Say"It looks like there may be an additional restriction on your account that I'm not able to resolve through this channel. I'm escalating this to our account management team who can investigate and get back to you promptly."

CRM.CreateCase priority: medium, tagged account-status-restricted, linked to customer.accountNumber

CRM.LogInteraction tagged account-review-escalation

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Order Modification / Cancellation

RetailOrdersCancellationModification

Identity Verification

Say"Hi, thanks for reaching out! I'd be happy to help with your order. To get started, can you please share your order number and the email address or phone number on your account?"

CRM.LookupCustomer using provided email or phone against customer.email or customer.phone

Detect
whether identity can be confirmed from customer's reply
  • 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

Say"No problem — let me try one more way to verify. Can you confirm the billing address or the last four digits of the payment method used for this order?"

CRM.LookupCustomer with alternate verification field

Detect
outcome of second verification attempt
  • Identity confirmed on second attempt confirmed →order-status-check
  • Still unable to verify unverified →identity-failure

Identity Failure

Say"I'm sorry — I wasn't able to verify your identity with the information provided. For your account security, I'm unable to make changes without verification. You're welcome to log in to your account directly and make modifications through self-service, or contact us again once you have your order confirmation email handy."

EmailNotification.Send to customer.email with self-service portal link and instructions

Order Status Check

Say"Got it — let me pull up order order.id for you right now."

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

Say"Great news — your order is still within our modification window. What change would you like to make? For example, I can update items or quantities, change your shipping address, or cancel the order entirely."
Detect
type of modification customer is requesting
  • 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

Say"I can cancel order order.id for you. Just to confirm, you'd like to cancel all items in this order and receive a refund of order.total to your order.paymentMethod. Is that correct?"

kb.order-cancellation-policy — confirm refund eligibility and timeline for order.paymentMethod

Detect
customer confirmation of full cancellation
  • 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

Say"Your order has been successfully cancelled. A refund of refund.amount will be returned to your order.paymentMethod — typically within refund.timeline. You'll receive a confirmation email shortly."

→resolution-complete

Item Modification

Say"Sure, I can help adjust the items on your order. Which item would you like to change, and what would you prefer instead — a different size, colour, quantity, or would you like to remove it entirely?"

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

Say"Unfortunately, the item you've requested isn't currently available. I have a few similar options I can suggest — would you like me to check what's in stock, or would you prefer to remove that item from your order or cancel entirely?"

OrderManagement.GetSimilarItems for item.substitute recommendations

Detect
customer response to alternative options
  • 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

Say"Just a heads-up — removing that item would bring your order total below our free-shipping threshold of order.freeShippingThreshold, which means a shipping fee of order.shippingCost would apply. Would you still like to proceed with the removal, or would you prefer to keep the item or choose an alternative?"
Detect
customer decision after being informed of shipping cost impact
  • 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

Say"Done — I've updated your order. You'll receive a confirmation email with the revised details shortly. Is there anything else you'd like to adjust?"
Detect
whether customer has additional requests
  • Customer has another change to make more_changes →change-intent
  • Customer is satisfied confirmed →resolution-complete

Address Modification

Say"Of course — what is the new shipping address you'd like to use for this order?"

OrderManagement.UpdateShippingAddress for order.id with new order.shippingAddress

EmailNotification.Send to customer.email confirming the address update

Say"Your shipping address has been updated successfully. You'll receive a confirmation email with the new details. Is there anything else I can help you with?"
Detect
whether customer has additional requests
  • Customer has another change more_changes →change-intent
  • Customer is satisfied confirmed →resolution-complete

Order Already Shipped

Say"I'm sorry — it looks like your order has already shipped, so we're unable to make changes or cancel it at this stage. Once your package arrives, you're welcome to initiate a return and we'll process a refund from there. Would you like me to send you the return instructions?"

kb.return-policy — retrieve return window and process details

Detect
customer response
  • 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

Say"I can see your order is currently under a brief security review. I'm going to connect you with a specialist who can look into this further and assist you directly."

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

Say"I want to make sure this is handled properly for you. I'm escalating this to a senior specialist who has the authorization to review and resolve this fully. You'll hear from them very shortly."

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

Say"You're all set! Is there anything else I can help you with today?"

CRM.UpdateCase status: resolved, linked to order.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Loyalty / Rewards Inquiry

RetailLoyaltyRewardsSupport

Intake & Account Lookup

Say"Welcome! I'd be happy to help with your rewards account. Could you share the email address or phone number linked to your loyalty account?"

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

Say"Just to protect your account, can you confirm your full name and the last four digits of the phone number on file?"
  • Identity confirmed on first or second attempt verified →inquiry-classification
  • Identity fails after two attempts unverified →escalation-human

Account Not Found

Say"I wasn't able to find an account with that information. Let's try a different detail — do you have an alternate email address or phone number you may have used when signing up?"

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

Say"Great, I've pulled up your account, customer.fullName. Your current balance is loyalty.pointsBalance points and your tier is loyalty.tier. What can I help you with today — checking your balance, redeeming rewards, reporting missing points, or something about expiration?"
Detect
customer intent from reply
  • 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

Say"You currently have loyalty.pointsBalance points in your account. You're at the loyalty.tier tier, and your points are set to expire on loyalty.expirationDate. Would you like to know how to use your points, or is there anything else I can help with?"

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

Say"You can redeem your points in a few ways: as a discount at checkout online or in-store, for gift cards, or toward eligible products. Your current balance of loyalty.pointsBalance points is worth — shall I walk you through how to apply them right now?"

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

Say"It looks like your current balance of loyalty.pointsBalance points is just below the minimum needed to redeem. I can let you know exactly how many more points you'd need, and share some ways to earn them faster if that's helpful."

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

Say"Your reward has been applied successfully. You'll see the discount reflected at checkout. Is there anything else I can help you with?"

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

Say"I'm sorry to hear your points didn't post — let's look into that. Can you share the receipt number or order number and the approximate date of the purchase?"

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

Say"Good news — it looks like those points actually did post to your account, though they may take up to 48 hours to appear in your balance display. Your current total is loyalty.pointsBalance points. Does that match what you're seeing?"
  • Customer confirms the issue is resolved resolved →resolution
  • Customer says the balance still looks wrong disputed →escalation-human

Unverified Transaction

Say"I wasn't able to locate that transaction in our system with those details. Could you double-check the receipt number or share any other details — like the store location or the total amount? That will help me dig further."

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

Agent
evaluate whether a manual points adjustment is warranted based on transaction details and loyalty account history.
Goal:determine if the missing points qualify for a manual credit under policy, and calculate the correct points amount to award.
Constraints:never issue a points adjustment above the policy maximum without manager approval; cross-reference kb.loyalty-rewards-policy for eligible purchase categories before approving any credit.
Tools available:LoyaltyPlatform.GetAccountDetails, OrderManagement.LookupTransaction, kb.loyalty-rewards-policy
  • 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

Approval
Slack.RequestApproval to #loyalty-ops-approvals, approver: loyalty_ops_manager
Context sent:customer.accountId, customer.fullName, transaction.receiptNumber, transaction.purchaseDate, transaction.amount, agent's assessment of missing points
  • Approved approved LoyaltyPlatform.CreditPoints →adjustment-confirmed
  • Rejected rejected →adjustment-declined
  • No response in 30 min →escalation-human

Adjustment Confirmed

Say"Great news — the missing points have been added to your account. Your updated balance is loyalty.pointsBalance points. You should see this reflected immediately. Is there anything else I can help you with?"

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

Say"I reviewed the details with our team, and unfortunately we weren't able to apply a points credit for this transaction based on our current policy. I know that's not the answer you were hoping for. I can share exactly why if that would be helpful, or connect you with a specialist who can look at this further."

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

Say"Your points are currently set to expire on loyalty.expirationDate. Our policy allows points to remain active as long as there's account activity within a set window. Would you like me to walk you through the details or check if any of your points are at risk?"
  • 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

Say"I understand how frustrating that is, especially when you've worked hard to earn those points. Unfortunately, the expiration date of loyalty.expirationDate falls outside the window where we're able to reinstate points under our current policy. I want to make sure I'm giving you the full picture — would you like me to explain how to keep future points active?"

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

Say"I completely understand your frustration, and I want you to know your loyalty to us genuinely matters. Let me make sure I explain our policy as clearly as possible so this makes sense."

kb.loyalty-rewards-policy — retrieve relevant policy section to explain to customer

Detect
customer sentiment after explanation
  • 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

Say"I want to make sure you get the best possible resolution on this. I'm connecting you with a member of our loyalty specialist team right now who has the authority to look into this further. Please hold just a moment."

Resolution

Say"I'm glad I could help sort that out for you today! Is there anything else you need before we wrap up?"

CRM.LogInteraction tagged resolved, linked to customer.accountId

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ Telecom

TelecomFAQSupport

Intake

Say"Hi, thanks for reaching out to support! I'm here to help. What's your question today?"
Detect
intent category on question.raw
  • 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

Say"I hear you — that sounds frustrating, and I want to make sure we get this sorted for you properly. Let me help you with that now."
Detect
whether the underlying topic is account-specific or general
  • 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

Say"To pull up your account details, I'll need to verify your identity first. Could you please provide your account number or the phone number registered to your account?"

IdentityVerification.RequestAccountLookup using customer.accountNumber or customer.phone

Say"Thanks — and can you confirm your name and either your account PIN or the last 4 digits of your SSN?"

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

Say"I wasn't able to verify your identity, so I'm not able to access your specific account details right now. I can still share general information about our plans and policies, which may help. For anything account-specific, you're welcome to log in through the app or visit a store with a valid ID."

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

Say"Got it — I can see your account. Let me look into that for you now."

→account-specific-answer

Account-Specific Answer

Agent
answer question.raw using customer.currentPlan, customer.serviceType, and account profile from CRM alongside kb.faq-content.
Goal:deliver a precise, complete answer to the customer's question based on their actual account data and relevant policy, minimising back-and-forth.
Constraints:never disclose account credentials or full SSN; never make plan changes or billing adjustments without transferring to the appropriate change playbook; do not promise credits or refunds — route those to the billing escalation path.
Tools available:CRM.GetAccountProfile, AccountManagement.GetCurrentPlan, AccountManagement.GetBillingHistory, kb.faq-content, kb.general-plans-policy
  • 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

Say"Great question — let me find that for you."
Agent
compose a clear, plain-language answer to question.raw using kb.faq-content and kb.general-plans-policy.
Goal:give the customer a complete, accurate answer that does not require a follow-up, using only publicly available information.
Constraints:do not reference or imply any account-specific data; do not promise promotional offers not listed in kb.general-plans-policy; do not make commitments about network coverage beyond published service maps.
Tools available:kb.faq-content, kb.general-plans-policy
  • 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

Say"That's a great question, and I want to make sure you get an accurate answer — this one falls outside what I can confirm directly. I'd rather connect you with someone who has the full picture than give you incomplete information."
  • 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

Say"I'm going to connect you with a specialist who can give you a definitive answer on this. One moment please."

Escalation — Billing

CRM.CreateCase tagged billing-dispute, priority: high, linked to customer.accountNumber

Say"It sounds like there may be a billing issue here — let me get you over to our billing team who can review the details and take action on your account."

Escalation — Technical Issue

CRM.CreateCase tagged technical-issue, linked to customer.accountNumber, notes include customer.serviceType

Say"This sounds like it needs a technical look — I'm routing you to our technical support team now so they can diagnose and fix this properly."

Escalation — Plan Change

Say"I can absolutely help you explore a plan change. Let me transfer you to the right flow to walk through your options and make that update."

→plan-change-telecom

Escalation — Complaint

CRM.CreateCase tagged formal-complaint, priority: high, linked to customer.accountNumber, notes include question.raw

Say"I want to make sure your concern is properly recorded and handled. I'm escalating this to our customer relations team who will follow up with you directly."

Resolution

Say"Is there anything else I can help you with today?"
Detect
whether the customer has a follow-up question
  • Customer has another question follow-up →intake
  • Customer confirms they are done confirmed →close

Close

Say"Wonderful — glad I could help. Thanks for reaching out, and don't hesitate to contact us if anything else comes up. Have a great day!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ / Product Info

Financial ServicesFAQProduct InfoSupport

Intake

Say"Thanks for reaching out. I'm here to help with any questions about our products, accounts, rates, fees, or policies. What would you like to know today?"
Detect
customer intent on opening message
  • 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

Say"Happy to help — could you give me a bit more detail? For example, are you asking about a specific product like a high-yield savings account or CD, or about a fee or policy on an existing account?"
Detect
clarified intent on follow-up reply
  • 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

Agent
identify the precise product, fee, rate, or policy topic from query.topic and query.product, then determine the right knowledge base source to query.
Goal:pinpoint exactly what information the customer needs — product mechanics, current rate, fee schedule, or policy rule — so the correct, up-to-date record is retrieved.
Constraints:never guess at rates, fees, or policy details; never surface a rate or fee that has not been confirmed as current from the rate-fee-database or faq-cms; always note if customer.state may affect product availability or terms.
Tools available:FAQCMS.LookupTopic, RateFeeDatabase.QueryProduct, CRM.GetCustomerProfile, kb.product-catalog
  • 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)

Detect
lookup result quality
  • 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

Detect
promotional or time-sensitive context
  • 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

Say"Just so you know, there was a recent update to this information — I want to make sure I give you the latest. One moment."
  • 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

Say"Great news — there's a current promotional offer that applies here. Let me share the details, including when it expires."
Say"The current promotional rate or terms are: promo.terms. This offer is available until promo.expiry. Standard terms apply after that period."
Say"Would you like me to walk you through how to take advantage of this, or do you have any other questions?"
Detect
customer follow-up intent
  • 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

Detect
nature of investment question
  • 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

Agent
compose a clear, plain-language response to the customer's question using retrieved content from product.rateInfo, product.feeInfo, or product.policyInfo.
Goal:give the customer an accurate, complete, and easy-to-understand answer that directly addresses query.topic without jargon; tailor any state-specific nuances if customer.state affects the answer.
Constraints:never paraphrase or interpolate policy or rate data beyond what was retrieved; do not omit material terms or conditions; do not present promotional terms as permanent; always surface any applicable footnotes or conditions attached to the retrieved record.
Tools available:FAQCMS.LookupTopic, RateFeeDatabase.QueryProduct, kb.product-catalog, kb.fee-schedule
Say"Here's what you need to know about product.name: product.policyInfo"
Say"Is there anything about that I can clarify, or do you have another question?"
Detect
customer follow-up intent
  • 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

Agent
compose a plain-language answer to the customer's general investment product question using retrieved content, then append the required regulatory disclaimer from disclaimer.text.
Goal:answer the general informational question accurately while ensuring the required compliance language is delivered before closing the topic.
Constraints:the disclaimer from ComplianceDisclaimerLibrary.GetDisclaimer must be appended verbatim and in full — it may not be shortened, paraphrased, or omitted; if the customer asks for a personalized recommendation, stop and route to escalation immediately.
Tools available:FAQCMS.LookupTopic, ComplianceDisclaimerLibrary.GetDisclaimer, kb.product-catalog, kb.compliance-disclaimer-library
Say"Here's a general overview of product.name: product.policyInfo"
Say"disclaimer.text"
Say"Do you have any other questions I can help with?"
Detect
customer follow-up intent
  • 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

Say"To access any details specific to your account, I'll need to verify your identity first. This should only take a moment."

IdentityVerification.InitiateCheck for customer.id via query.channel

Detect
verification outcome
  • 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

Say"No problem — I'm not able to pull up account-specific information without verification, but I'm happy to answer any general questions about our products, rates, or policies."
Detect
customer response
  • 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

Say"Thanks for verifying. I can now look into the details for your account."
Detect
nature of account detail requested
  • 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

Say"I want to make sure I give you accurate information, and I don't have a confident answer to that specific question right now. Rather than guess, I'd like to connect you with someone who can give you a definitive answer."

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

Say"I'm going to connect you with one of our specialists who will be able to help you fully with this. You won't need to repeat yourself — I'm passing along everything we've covered."

Close Interaction

Say"You're all set. If you ever have more questions about our products or accounts, don't hesitate to reach out. Have a great day!"

CRM.LogInteraction with query.topic marked resolved and customer.status updated

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ sms▣ chat

Fraud Alert Follow-up

Financial ServicesFraudSupport

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

Say"Hello, this is your Financial Services support agent reaching out about a recent alert on your account ending in card.last4. For your security, I need to verify your identity before we continue."
Say"Can you please confirm your full name, date of birth, and either your PIN or the answer to your security question on file?"

IdentityVerification.VerifyCustomer using customer.name, customer.dob, and customer.pin or customer.securityAnswer.

Detect
verification outcome from IdentityVerification.VerifyCustomer result
  • 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

Say"No problem — let's try a different credential. Could you confirm your date of birth and the answer to your security question instead?"

IdentityVerification.VerifyCustomer retry with alternate credentials.

Detect
verification outcome on retry
  • Identity verified on retry confirmed →transaction-confirmation
  • Identity still cannot be verified failed →verification-failure

Verification Failure

Say"I'm sorry, but I'm unable to verify your identity at this time, so I'm not able to share any account details for your security. Please visit your nearest branch with a valid photo ID, or call us back once you have your credentials available."

CRM.LogInteraction tagged verification-failure, linked to account.id, noting no transaction details were disclosed.

Transaction Confirmation

Say"Thank you, customer.name — your identity is confirmed. We flagged a transaction on your account ending in card.last4: a charge of transaction.amount at transaction.merchant on transaction.datetime. Do you recognize this transaction?"
  • 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

Say"Completely understandable — let me give you a moment. The charge was transaction.amount at transaction.merchant, dated transaction.datetime. Does that help you recall whether this was you?"

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

Say"I'm sorry to hear that. I'm going to take immediate steps to secure your account. First, let me block your current card ending in card.last4 to prevent any further unauthorized use."

CardManagement.BlockCard for card.last4.

CRM.UpdateCase flagged as fraud-reported, linked to account.id and transaction.id.

Say"Your card has been blocked. Before I open a formal dispute, I also want to check — are there any other recent transactions on your account that you don't recognize?"
Detect
customer response regarding additional unrecognized transactions
  • 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

Say"Thank you for letting me know — this is very important. I'm escalating your case immediately for a full account review. A specialist will contact you shortly, and your account will be secured while the review is underway."

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.

Say"I've opened a dispute for the charge of transaction.amount at transaction.merchant. Your dispute reference number is dispute.caseId. Our team will investigate and you'll receive an update within 5 to 7 business days."

→replacement-card

Replacement Card

Say"I'll now arrange a replacement card for you. Can you confirm your current mailing address so we can get that sent out?"

CardManagement.IssueReplacementCard for card.last4, ship to replacement.deliveryAddress.

Approval
Slack.RequestApproval to #fraud-ops-approvals, approver: fraud_ops_lead
Context sent:account.id, transaction.id, transaction.amount, dispute.caseId, card block confirmed, replacement card address
  • 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.

Say"Your replacement card will arrive within 5 to 7 business days. Your dispute is filed under reference dispute.caseId, and your account is now secured. Is there anything else I can help you with today?"
  • 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.

Say"I apologize — I'm experiencing a technical issue and I'm unable to retrieve the transaction details at this moment. I've flagged this for our team to review manually. Please call us back in a short while or visit your nearest branch, and we'll have this sorted for you as quickly as possible."

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.

Say"I'm connecting you now with a fraud specialist who has full visibility into your account and can take immediate action. Please hold for just a moment — you're in good hands."

Resolution — Clear

CoreBanking.ClearFraudAlert on transaction.id.

CRM.LogInteraction tagged alert-cleared-customer-confirmed, linked to account.id.

Say"Great — I've cleared the alert on that transaction and your account remains fully active with no further action needed. Thank you for confirming, customer.name. If you ever spot anything unfamiliar, don't hesitate to reach out. Have a great day."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ text

Device Troubleshooting

TelecomSupportDeviceTroubleshooting

Identity Verification

Say"Thanks for reaching out to support. I'm here to help get your device working again. Can I start by pulling up your account? Please share your name and the phone number or account number associated with your account."

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

Say"No problem — I can look into this manually. Could you give me your full name, the device's phone number, and if you have it handy, the IMEI number printed on your device or in Settings?"

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

Say"Great, I've got your account. Now let's look at the device. Can you confirm the make and model of the device you're having trouble with, and roughly when the issue started?"

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

Say"Thanks. Tell me what's been happening with your device.make device.model — what does the problem look like, and have you already tried anything to fix it?"

CRM.LogInteraction note issue.description, issue.startDate, issue.stepsTried

Ticketing.CheckPriorContacts for customer.accountId, device.imei

Detect
prior contact history and issue severity
  • 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

Say"Let's start with the most common fixes — these resolve the majority of issues. I'll walk you through each one and we can check as we go."

kb.device-troubleshooting-standard-steps — retrieve model-specific restart and reset instructions for device.make device.model

Say"First, let's do a full restart. Hold down the power button and select Restart — let me know once it's back up."

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

Say"Good. Now let's make sure your software is up to date. Go to Settings, then General or About, then Software Update. Do you see an update available?"
  • 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

Say"The next step is resetting your network settings — this won't delete your apps or photos, but it will clear saved Wi-Fi passwords. Go to Settings, then General, then Transfer or Reset, then Reset Network Settings."

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

Say"Let's see where we are — is the issue resolved now, or are you still seeing the same problem?"
Detect
customer confirmation of issue status
  • Issue resolved confirmed →resolution-confirmed
  • Issue still present unresolved →advanced-troubleshooting

Advanced Troubleshooting

Agent
diagnose the remaining fault using device.imei diagnostics, issue.description, issue.stepsTried, and kb.advanced-device-troubleshooting.
Goal:identify whether the fault is software-recoverable (factory reset candidate), network/provisioning-related, or hardware in nature, and recommend the correct next step.
Constraints:never recommend a factory reset without explicitly warning the customer that all data will be erased and confirming backup; never promise a replacement device without first confirming warranty or insurance eligibility.
Tools available:NetworkDiagnostics.DeepScan, DeviceManagement.GetDiagnosticsReport, kb.advanced-device-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

Say"Based on the diagnostics, a factory reset is the most likely fix. This will erase everything on the device and restore it to out-of-box settings. Before we go further — do you have your data backed up, or would you like help with that first?"

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

Say"Give the device a moment to come back up — this can take a few minutes. Once you're back to the setup screen, let me know and we'll confirm everything is working."
Detect
customer confirmation of issue status after factory reset
  • Issue resolved confirmed →resolution-confirmed
  • Issue still present after factory reset unresolved →escalation-specialist

Physical Damage Assessment

Say"I'm sorry to hear the device has physical damage. Let me check what coverage options are available on your account."

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

Say"Good news — your device is covered under warranty. I'll get a repair or replacement order started for you now."

WarrantyInsurance.InitiateWarrantyClaim for device.imei, customer.accountId

Ticketing.CreateTicket tagged warranty-repair, linked to device.imei

CRM.LogInteraction note warranty claim initiated

Say"I've opened a warranty claim. You'll receive a confirmation at customer.email with next steps — typically within one business day. Is there anything else I can help with today?"

→resolution-confirmed

Insurance Claim Route

Say"Your device is covered under your insurance plan. I'll transfer you to the claims workflow now, where a specialist will walk you through filing your claim and arranging a replacement or repair."

Ticketing.CreateTicket tagged insurance-claim, linked to device.imei

CRM.LogInteraction note insurance claim routed

→insurance-claims-workflow

Out-of-Warranty Options

Say"Unfortunately the device isn't covered under warranty or insurance for this type of damage. I can walk you through a couple of options — a paid repair through an authorized service center, or an upgrade to a new device on your account."

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

Say"No problem at all — let's get a time scheduled for a senior tech specialist to call you back, so you have the time you need to get your backup sorted first."

CRM.ScheduleCallback for customer.phone, note issue.description and steps completed

Ticketing.CreateTicket tagged callback-pending, linked to device.imei

Say"You're all set — you'll receive a confirmation at customer.phone. The specialist will have the full notes from today so you won't have to repeat yourself."

→resolution-confirmed

Escalation to Specialist

Say"I want to make sure you get the best help here. I'm escalating this to one of our senior tech specialists who has the tools to dig deeper into this. I'll make sure they have all the notes from today."

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

Say"A specialist will be with you shortly — or if you prefer a callback, just let me know and I can schedule that instead."
  • 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

Say"I'm connecting you with a team member right now who can take it from here. I've passed along everything from our conversation so you're all set."

Resolution Confirmed

Say"Glad we could sort that out! Just to confirm — is everything working as expected now, or is there anything else I can help you with today?"

Ticketing.CreateTicket tagged resolved, linked to device.imei, customer.accountId

CRM.LogInteraction note resolution summary, steps taken, outcome

CRM.CloseInteraction for customer.accountId

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ email▣ sms

Complaint Escalation Stay/Trip Issue

TravelHospitalityComplaintsEscalation

Intake & Verification

Say"Thank you for reaching out. I'm sorry to hear you experienced an issue — I want to make sure we get this resolved for you. Could you please share your booking or reservation ID along with the property name and dates of your stay?"

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

Say"Thank you, customer.name — I can see your stay at booking.propertyName from booking.checkIn to booking.checkOut. I'm sorry things didn't go as expected. Could you walk me through what happened so I can fully understand the situation?"

LoyaltyPlatform.GetProfile by customer.loyaltyNumber

Detect
sentiment and escalation signals in customer description
  • 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

Say"I completely understand how frustrating this must have been, and I sincerely apologize for the experience you had. Your feedback matters enormously to us, and I am personally going to make sure this is handled properly. Please take your time."
Detect
whether customer de-escalates after empathy response
  • 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

Agent
evaluate the appropriate remedy for complaint.nature and complaint.details against booking.id history and kb.complaint-resolution-policy.
Goal:determine whether to offer a full refund, partial refund, loyalty credit, apology voucher, or formal complaint documentation, and at what value.
Constraints:never authorize a refund or credit above USD 500 without human approval; never promise compensation before verifying the stay record; always document every remedy offer in the case management system regardless of outcome.
Tools available:PropertyManagementSystem.GetReservationDetails, LoyaltyPlatform.GetProfile, RefundBillingSystem.CheckEligibility, kb.complaint-resolution-policy
  • 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

Say"Based on what you've described and your reservation details, I'd like to offer you remedy.type valued at remedy.value as a remedy for your experience. Does that sound acceptable to you?"
Detect
customer response to proposed remedy
  • 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

Say"I've processed your remedy.type — you should see it reflected within 3 to 5 business days. I've also created case case.id as a record of this interaction. Is there anything else I can help you with today?"
  • Customer confirms receipt and has no further issues →resolution-close
  • Customer raises an additional complaint →complaint-capture

Escalation Review

Approval
Slack.RequestApproval to #hospitality-resolutions, approver: resolutions_manager
Context sent:booking.id, booking.propertyName, booking.checkIn, booking.checkOut, complaint.nature, complaint.details, customer.desiredResolution, remedy.type, remedy.value, customer.loyaltyNumber
  • Approved approved →process-remedy
  • Rejected rejected →remedy-final-offer
  • No response in 60 min →escalation-human

Remedy Final Offer

Say"I've reviewed your case with our resolutions team. While we aren't able to meet the full amount requested, we'd like to offer remedy.type at remedy.value as our best available resolution. I understand this may not be everything you hoped for, and I want to sincerely apologize again for the inconvenience."
Detect
customer response to final offer
  • Customer accepts confirmed →process-remedy
  • Customer declines and wishes to escalate further dissatisfied →escalation-human

OTA Redirect

Say"I can see that your booking was made through a third-party platform, which means the payment and refund for your reservation are managed on their end. Unfortunately I'm not able to process a direct refund from our side, but I want to make sure you're not left without support."

CaseManagement.CreateCase tagged ota-redirect, linked to booking.id

OTAPartnerPortal.InitiateDisputeReferral for booking.id with complaint.nature and complaint.details

Say"I've created an internal record of your complaint as case case.id, and I've flagged the issue with the booking platform on your behalf. I'd recommend also contacting them directly to request the refund. Can I help you with anything else, or provide any documentation to support your claim?"
  • Customer is satisfied with the redirect guidance →resolution-close
  • Customer is unsatisfied and escalates frustration frustrated →escalation-human

Out-of-Scope / Partial Remedy

Say"I've reviewed your reservation details and I want to be transparent with you — based on our policy, this type of complaint typically needs to be raised within a specific window after checkout, and we're slightly outside that timeframe. I'm sorry for any confusion around that."

kb.complaint-resolution-policy — identify any goodwill or partial remedy options available outside the standard window

Say"While I'm not able to process a full remedy in this case, I do want to acknowledge the experience you had. I can offer remedy.type as a goodwill gesture, and I'll make sure your feedback is formally documented."

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

Say"I wasn't able to locate a reservation with those details in our system right now — that can sometimes happen if the booking is very recent or was made under a different contact. No worries; let me gather your information manually so we can investigate and follow up with you."

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

Say"I've created a pending case reference for you — case.id. Our team will investigate and reach out to you at customer.email within 2 business days. I'm sorry we couldn't resolve this immediately."
  • 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

Say"I completely understand, and I want to make sure you're speaking with someone who has the full authority to address this. I'm escalating your case to our senior resolutions team right now — you'll be connected with a specialist shortly. Your case reference is case.id."

Case Documentation & Follow-up

Say"Of course — I'll document everything we've discussed and make sure your case is ready whenever you'd like to proceed. Your case reference is case.id, and you can reach us at any time to continue."

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

Say"I'm glad we were able to work through this together. Your experience has been documented as case case.id, and we truly value your feedback — it helps us improve. We hope to welcome you back and provide the experience you deserve. Is there anything else I can help you with today?"

CaseManagement.CloseCase for case.id with resolution status

CRM.UpdateCustomerRecord with resolved status and remedy applied

LoyaltyPlatform.LogInteraction for customer.loyaltyNumber tagged complaint-resolved

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ voice▣ chat▣ email

Complaint Escalation

RetailComplaintsEscalationSupport

Greeting & Acknowledgement

Say"Thank you for reaching out. I'm sorry to hear you've had a difficult experience — I'm here to help get this sorted for you. Could I start with your name and order or account number?"
Detect
sentiment on customer opening message or tone
  • 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

Say"I can hear how frustrating this has been, and I want you to know I take this seriously. Let me pull up your details right now so we can focus on finding a resolution for you."
  • 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

Say"I want to make sure I'm looking at the right account. Could you provide an alternative proof of purchase — such as a receipt, confirmation email, or the card used for payment?"
  • 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

Say"Thank you — I can see your order from order.date. Just to make sure I have everything right, can you walk me through what happened and what you were hoping we could do for you?"
Detect
nature of complaint submitted by customer
  • 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

Agent
evaluate the appropriate remedy for complaint.nature based on order.value, contact.history, and kb.returns-compensation-policy.
Goal:identify the most suitable remedy — refund, replacement, discount, or formal apology — that falls within agent compensation authority and policy limits.
Constraints:never approve a refund or compensation exceeding the agent authority threshold for order.value without supervisor approval; never offer a remedy that contradicts kb.returns-compensation-policy; always check contact.history for prior remedy offers before making a new one.
Tools available:OrderManagement.GetOrderDetails, ContactHistory.GetLog, RefundCompensationTool.CheckEligibility, kb.returns-compensation-policy
  • 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

Say"Based on what you've described, here's what I'd like to offer you: remedy.offered. Does that work for you?"
  • 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

Agent
construct one alternative remedy within policy limits, accounting for the customer's stated reason for rejecting remedy.offered.
Goal:offer a single alternative that meaningfully addresses the customer's concern without exceeding compensation authority or policy.
Constraints:only one alternative offer is permitted before mandatory escalation; cannot exceed agent compensation authority; must not duplicate remedy.offered.
Tools available:RefundCompensationTool.CheckEligibility, ContactHistory.GetLog, kb.returns-compensation-policy
Say"I completely understand — let me see what else I can do. remedy.alternative — would that be acceptable?"
  • 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

Detect
whether situation involves abusive language or conduct
  • 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

Say"I want to help you resolve this, and I'll do everything I can — but I do need to ask that we keep the conversation respectful so I'm able to assist you. Can we continue on that basis?"
  • Customer agrees and calms down neutral →remedy-offer
  • Customer continues to use abusive language abusive →escalation-conduct

Policy Exception Flag

Say"I want to be upfront with you — based on our current policy, this situation falls outside what I'm able to action directly. I'm going to document your case and flag it for a supervisor review so it receives the right attention."

CRM.UpdateCase with complaint.nature, order.id, and exception request details

RefundCompensationTool.FlagException tagged policy-exception, linked to order.id

Approval
SupervisorQueue.RequestReview to #complaints-supervisor, approver: complaints_supervisor
Context sent:customer.accountId, order.id, order.value, complaint.nature, complaint.date, contact.history, reason for policy exception
  • 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

Say"I want to make sure you get the best possible help here. I'm transferring you to a senior member of our team right now who has full authority to resolve this for you. I've passed them everything we've discussed so you won't need to repeat yourself."

Escalation — Conduct Transfer

CRM.UpdateCase with complaint.nature, contact.history, and conduct flag

SupervisorQueue.Assign priority: high, tagged conduct-escalation, linked to customer.accountId

Say"I'm going to transfer you to a senior agent who may be better placed to assist you. Thank you for your patience."

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

Say"Brilliant — I've gone ahead and processed that for you. You should receive a confirmation shortly. I'm really sorry again for the experience, and thank you for giving us the chance to put it right. Is there anything else I can help you with today?"
  • Customer has further queries →greeting-acknowledgement
  • Customer is satisfied and done confirmed →resolution-complete

Resolution Complete

Say"Wonderful. Thank you for your patience, customer.name — take care and have a great day."

CRM.UpdateCase status: resolved, satisfaction: confirmed

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ text

Claim Status Inquiry

InsuranceClaimsSupport

Intake and Verification

Say"Thank you for contacting us. I'm here to help with your claim. Can I please have your full name, policy number, and either your claim number or date of loss?"

CRM.LookupCustomer using customer.fullName and policy.number

Say"To protect your account, I'll need to verify your identity. Could you please provide your date of birth or the last four digits of your Social Security 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

Detect
special handling flags on claim record — litigation, attorney-represented, fatality, major injury, or special handling
  • 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

Say"I've pulled up your claim. Here's the current status: claim.status."

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

Say"There are a few things we still need from you to move your claim forward. Let me go through those now."

kb.claims-outstanding-items-guide — reference for explaining document or action requirements to policyholders

Say"The outstanding items on your claim are: claim.outstandingItems. Once we receive those, our team will continue processing your claim. Would you like me to send a summary of these items to your preferred contact on file?"

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

Say"I can see that a decision was made on your claim. I'm sorry to share that it was denied. The reason noted on file is: claim.denialReasonCode."

kb.claims-appeals-process — retrieve current appeals eligibility window, required forms, and submission instructions

Say"You do have the right to appeal this decision. I can walk you through the appeals process, including the timeframe and what documentation you'll need to submit. Would you like me to do that?"

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

Say"To file an appeal, you'll need to submit a written request along with any supporting documentation within the timeframe specified in your policy. I can send the appeal form and instructions directly to your preferred contact. Is there anything else you'd like me to clarify about the process?"

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

Say"I'm sorry — I wasn't able to verify your identity with the information provided, which means I'm unable to share claim details at this time. This is to protect the security of your account."

IdentityVerification.SendSecureLink to customer.preferredContact

Say"I've sent a secure verification link to the contact information we have on file. Once you complete that step, you'll be able to access your claim details through the portal, or you're welcome to call back and we can try again. Is there anything else I can help you with today?"

CRM.LogInteraction with policy.number, identity verification failed, secure link sent

System Unavailable

Say"I apologize — our claims system appears to be temporarily unavailable, and I'm not able to pull up your record right now. I don't want to leave you without an answer."

TicketingPlatform.CreateInquiry with customer.fullName, policy.number, claim.number, claim.dateOfLoss, customer.preferredContact — generate ticket.referenceNumber

Say"I've logged your inquiry and assigned it a reference number: ticket.referenceNumber. A member of our claims team will follow up with you within one business day using your preferred contact method. Is there anything else I can note on your behalf?"

CRM.LogInteraction with ticket.referenceNumber, system unavailability noted, callback committed

Escalation — Special Handling

Agent
assess the case context to prepare a complete handoff package for the claims legal or special handling team.
Goal:compile all available claim identifiers, flags, and customer-stated concerns so the receiving team can act immediately without re-contacting the customer for basic information.
Constraints:do not comment on claim merits, liability, settlement posture, or legal strategy; do not confirm or deny specific claim details beyond what has already been shared prior to flag detection; always notify the customer that a specialist is taking over before transferring.
Tools available:CRM.LogInteraction, TicketingPlatform.CreatePriorityCase, kb.special-handling-routing-guide
Say"I want to make sure your situation receives the right level of attention. I'm going to transfer you to our specialized claims team who handles cases like yours directly. They'll have your information and will be able to assist you fully."

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

Say"I'm now connecting you with a claims specialist. Please hold for just a moment — they have your information and will pick up right where we left off. Thank you for your patience."

CRM.UpdateCase priority: high, assigned to claims-special-handling-team, ticket.referenceNumber noted

Resolution and Close

Say"Just to recap: your claim claim.number is currently showing as claim.status. If anything changes or you have additional questions, don't hesitate to reach back out — we're happy to help."

CRM.LogInteraction with claim.number, inquiry resolved, status communicated, no further action required

Say"Is there anything else I can help you with today?"
  • Customer has additional questions or a new topic →intake-and-verification
  • Customer confirms no further questions — interaction complete
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ email

Cancellation Request

InsuranceCancellationRetention

Intake & Identity Verification

Say"Thank you for contacting us. I can help you with a cancellation request today. To get started, I'll need to verify your identity. Could you please provide your full name, date of birth, and policy number?"

CRM.LookupCustomer using customer.fullName and customer.dateOfBirth

PolicyManagement.LookupPolicy using policy.number

Detect
identity verification outcome
  • 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

Say"Thank you, I've verified your account. Before I process your cancellation request, could you tell me the reason you'd like to cancel, and what effective date you have in mind for the cancellation?"

CRM.LogInteraction tag: cancellation-request, policy.number

Detect
cancellation reason category
  • 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

Say"I'm sorry to hear that. Before we proceed with the cancellation, I'd like to see if there's something we can do to address your concerns. We may be able to offer a premium discount, adjust your coverage levels, or explore a payment plan that better fits your budget."

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

Agent
present the best-fit retention option to the customer based on cancellation.reason, policy.type, and kb.retention-offers.
Goal:identify and offer one or two targeted retention alternatives — discount, coverage adjustment, or payment plan — that directly address the customer's stated reason for cancelling.
Constraints:never promise a discount not listed in kb.retention-offers; never modify the policy without explicit customer confirmation; always confirm the customer understands the new terms before applying any change.
Tools available:PolicyManagement.GetPolicyDetails, BillingPayments.GetPaymentHistory, kb.retention-offers
  • 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

Say"Wonderful — I've applied the change to your policy. You'll receive a confirmation email shortly outlining the updated terms. Is there anything else I can help you with today?"

DocumentDelivery.SendEmail to customer.email with updated policy summary

Active Claim Check

PolicyManagement.CheckActiveClaims for policy.number

Detect
active claim status on policy
  • 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

Detect
requested effective date validity
  • 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

Say"I see you've requested a cancellation date that falls in the past. Unfortunately, our policy guidelines don't allow us to backdate cancellations to that date. The earliest effective date we can process is today. Would you like to proceed with today's date, or would you prefer a future date?"
Detect
customer response to backdating limitation
  • 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

Say"Before I finalize the cancellation, let me go over the terms with you. Your policy will be cancelled effective cancellation.requestedDate. Any outstanding balance of policy.cancellationFee will need to be settled, and your estimated refund is policy.refundAmount. Do you have any questions about these terms before we proceed?"
Detect
customer response to cancellation terms
  • 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

Detect
authorization requirement for policy type
  • 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

Say"Your policy has been successfully cancelled effective cancellation.requestedDate. You'll receive a confirmation email at customer.email shortly, which includes your confirmation number and refund details. Is there anything else I can help you with today?"

→cancellation-complete

Cancellation Complete

Say"Thank you for being a customer with us. If you ever need coverage again in the future, we'd be happy to help. Take care."

CRM.LogInteraction tag: cancellation-complete, policy.number, cancellation.confirmationNumber

Escalation — Active Claim on Policy

Say"I've found that there is currently an active claim on your policy. We're unable to process a cancellation while a claim is open, as this could affect your coverage for that claim. I'm going to connect you with a specialist who can walk you through your options and the implications in detail."

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

Say"I'm sorry, but I'm unable to verify your identity with the information provided, which means I can't process this request over the phone. For your security, cancellation requests can be submitted in writing by visiting a branch or mailing a signed request to the address on your policy documents. We can also send a secure email link if you have your email on file with us."

CRM.LogInteraction tag: identity-verification-failed, policy.number

Escalation — Fee or Policy Dispute

Say"I understand your concern, and I want to make sure this is handled fairly. I'm going to escalate this to a senior member of our team who has the authority to review and address your dispute directly."

CRM.CreateCase priority: high, tag: cancellation-dispute, policy.number, cancellation.reason

CRM.LogInteraction tag: escalation-dispute, policy.number

Escalation — Supervisor Authorization Required

Say"Your policy type requires authorization from a licensed agent or supervisor before the cancellation can be finalized. I'm going to transfer you now — everything we've discussed is noted on your account so you won't need to repeat it."

CRM.LogInteraction tag: escalation-supervisor-auth-required, policy.number, policy.type

CRM.CreateCase priority: normal, tag: supervisor-auth-cancellation, policy.number

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ chat▣ voice▣ email

Booking Modification

TravelHospitalityBookingsSupport

Verify Customer

Say"Thank you for reaching out. I'd be happy to help you modify your reservation. Could you please provide your booking reference or confirmation number and the name on the reservation?"

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

Say"I wasn't able to locate a reservation with those details. Let's try a different approach — could you provide the email address used at the time of booking, or a phone number?"

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

Say"I can see your reservation. Here are the current details: booking reference booking.reference, dates booking.currentDates, room or travel type booking.roomType, and guest name booking.passengerName. What change would you like to make today?"
Detect
intent on customer's requested modification
  • 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

Say"Let me check availability for your requested new dates."

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

Say"Unfortunately, your requested dates aren't available. The nearest available options are availability.nearestDates. Would any of these work for you?"
  • 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

Say"Let me check whether your preferred room or cabin type is available."

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

Say"That room type isn't available for your dates. Here are comparable alternatives that are open. Would any of these suit you?"
  • 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

Say"Here's a summary of the change: the fare difference is fare.difference and the modification fee is fee.modification. The total additional charge to your payment method on file would be reflected accordingly. Would you like to proceed?"
  • 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
determine whether the modification fee qualifies for a waiver based on loyalty status and goodwill policy.
Goal:decide if the fee can be waived automatically or requires supervisor approval.
Constraints:never waive fees above USD 150 without supervisor approval; always document the waiver reason in the CRM; do not offer goodwill waivers more than once per customer per calendar year.
Tools available:LoyaltyDB.GetCustomerTier, CRM.GetWaiverHistory, kb.goodwill-waiver-policy
  • 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

Approval
Slack.RequestApproval to #reservations-supervisors, approver: reservations_supervisor
Context sent:booking.reference, customer.name, customer.loyaltyTier, fee.modification, agent's waiver rationale
  • Approved approved CRM.LogWaiverGranted →apply-modification
  • Rejected rejected →fee-waiver-declined
  • No response in 20 min →escalation-fee-dispute

Fee Waiver Declined

Say"I wasn't able to get the fee waived on this occasion. The modification fee of fee.modification would still apply. Would you like to proceed with the change, or would you prefer to keep your current booking as is?"
  • 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

Say"I can help with a name correction. Could you confirm the correct full name as it should appear on the reservation, and let me know whether this is a minor correction or a full name transfer?"

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

Say"Your booking has been updated successfully. I've sent a confirmation with your revised itinerary to customer.email. Is there anything else I can help you with?"
  • Customer has additional requests more-changes →retrieve-booking
  • Customer is satisfied and done done →wrap-up-confirmed

Non-Modifiable Rate

Say"I can see that the rate on your current booking is non-modifiable, which means changes to the reservation aren't permitted under the original fare rules. I have a couple of options for you: I can look into cancelling the booking subject to the applicable refund policy, or I can check whether a same-rate rebooking is available for your new dates."

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

Say"Based on your fare type, here are the cancellation terms that would apply: the refund or credit eligibility depends on your booking's rate rules. Would you like me to go ahead and initiate the cancellation, or would you prefer to keep the booking?"
  • 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

Say"I can see that your reservation was originally made through a third-party provider — such as an online travel agency or travel management company. Unfortunately, modifications to third-party bookings must be processed directly through the channel where you booked, as we're unable to alter those reservations on their behalf. I'd recommend contacting them directly and referencing booking reference booking.reference. Is there anything else I can assist you with?"
  • 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

Say"No problem at all — your original booking remains exactly as it was. If you change your mind or need anything else, don't hesitate to reach out. Have a great trip!"

CRM.LogInteraction for customer.name with outcome: no modification made

Wrap-Up — Change Confirmed

Say"Wonderful — everything is confirmed. Your updated booking details have been sent to customer.email. We look forward to welcoming you. Have a great trip!"

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

Say"Your request involves details that I'd like to have our specialist team handle to make sure everything is done perfectly. I'm transferring you now — they'll have full context and can take it from here."

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

Say"I completely understand your concern. Let me escalate this to a supervisor who has the authority to review your case in full. You'll be connected shortly, and they'll have all the details."

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

Say"I've initiated the cancellation for booking booking.reference and sent a summary to customer.email, including the applicable refund terms and expected timeline. A specialist will follow up if any further action is needed."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms

Billing / Statement Inquiry

HealthcareBillingPatient Support

Patient Greeting

Say"Thank you for contacting our billing support team. My name is your Healthcare Support Agent. To protect your privacy and access your account, I'll need to verify your identity first. May I have your full name, date of birth, and your account or guarantor ID?"
  • 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

Detect
identity verification outcome
  • 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

Say"I want to make sure I'm protecting your information. I was unable to fully confirm your identity with what you provided. Could you double-check your account or guarantor ID — you can find it in the top right corner of your paper statement or in the patient portal?"
  • Patient provides corrected identifiers CRM.LookupPatient →identity-verification
  • Patient still cannot provide matching information →hipaa-decline

HIPAA Decline

Say"I'm sorry, but under federal HIPAA privacy regulations I'm unable to access or share any account or billing details without confirming your identity. I'd encourage you to log into the patient portal at your convenience, or visit our billing office in person with a valid photo ID. Is there anything general I can help you with today?"

CRM.LogInteraction note: identity verification failed, HIPAA protocol applied, no account data disclosed

Inquiry Intake

Say"Thank you, patient.name — I've verified your account. I can see your billing record. Could you tell me which charge or balance you have a question about? If you have your statement handy, the date of service or the specific line item description would be very helpful."

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

Detect
claim and EOB status
  • 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

Say"I've pulled up that charge. The service on charge.dateOfService for charge.description was billed at charge.amount. Your insurer insurance.planName processed the claim and applied your benefits — your portion after insurance is eob.patientResponsibility. This reflects your current deductible, copay, or coinsurance as outlined in your plan."

kb.billing-patient-responsibility — reference plan benefit structure and cost-sharing explanation guidance

Say"Does that explanation make sense, or would you like me to walk through how your benefits were applied in more detail?"
  • 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

Agent
provide a detailed line-by-line walkthrough of how insurance.planName applied benefits to charge.lineItem, referencing the EOB and plan cost-sharing rules.
Goal:ensure the patient fully understands what each component of their bill represents and why eob.patientResponsibility is the amount owed.
Constraints:never speculate about future insurance decisions or promise adjustments not yet authorized; only describe what is documented in the EOB and billing system.
Tools available:PatientBillingSystem.GetChargeDetail, EOBLookup.GetEOB, kb.billing-patient-responsibility
  • 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

Say"I can see your current account balance. Let me walk you through the outstanding charges, how insurance has been applied to each, and what remains as your patient responsibility."

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

Say"It looks like your insurance claim for the service on charge.dateOfService is still being processed by insurance.planName. We haven't yet received the Explanation of Benefits that tells us your exact patient responsibility. I'd recommend waiting until that EOB is issued — typically within 30 days of the claim submission date — before making any payment on this charge."
Say"I'm going to make a note on your account so our team is aware you called, and I'll flag this for a follow-up outreach once the EOB is received. Is there a preferred contact method — phone or email — for that follow-up?"

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

Agent
assess the denial reason for claim.id and determine whether the denial is due to a technical/administrative issue correctable by rebilling, a coverage exclusion, or a clinical necessity decision requiring formal appeal.
Goal:advise the patient on the correct next step — administrative correction, insurance appeal, or billing specialist referral.
Constraints:never promise that an appeal will succeed or that a charge will be waived; do not initiate a claim adjustment without billing specialist authorization; always document the denial reason before routing.
Tools available:InsuranceEligibilityClaims.GetDenialReason, InsuranceEligibilityClaims.GetClaimStatus, kb.claim-denial-codes, CaseManagement.CreateCase
  • 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

Say"Thank you for bringing this to our attention. Based on what you've described, this may need to be reviewed by our billing specialists. I'm going to document this now and open a case so a specialist can investigate and correct the record if needed."

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

Say"A billing specialist will review this within 3 to 5 business days and will reach out to you at patient.phone or patient.email. You will not need to make any payment on a disputed charge while it is under active review. Is there anything else I can help you with today?"
  • Patient is satisfied and the case is documented →resolution-close
  • Patient is not satisfied and demands immediate resolution frustrated →escalation-human

Clinical Dispute

Say"I understand — disputes about whether a service was rendered or was medically appropriate are taken very seriously. Our billing team is not able to make clinical determinations, so I'll need to document your concern and route it to the appropriate clinical or patient relations department."

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

Say"A member of our patient relations team will contact you within 2 business days to discuss your concern. You should not receive any collections activity on this charge while it is under review."
  • Patient acknowledges and accepts the routing →resolution-close
  • Patient is distressed or requests immediate supervisor contact frustrated →escalation-human

Payment Options

Say"I can help you take care of this balance now or set up an arrangement that works for you. You have a few options: you can pay online through the patient portal, pay by phone with a credit or debit card right now, or set up an interest-free monthly payment plan if your balance qualifies."

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

Say"Your payment has been processed and a confirmation will be sent to patient.email. Your updated account balance will reflect this payment within one to two business days. Is there anything else I can help you with?"
  • Patient has additional questions →inquiry-intake
  • Patient is done →resolution-close

Payment Plan Setup

PaymentPortal.CreatePaymentPlan for patient.accountId

Say"I've set up a payment plan on your account. You'll receive a confirmation at patient.email with the payment schedule and amounts. Each installment will be automatically applied to your balance. If your financial situation changes, please contact us and we can review the plan."

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

Say"I completely understand, and I want to make sure you get the help you need. I'm going to connect you with a senior billing specialist or supervisor who can take this further. Please hold for just a moment — I'll make sure they have all the details from our conversation so you don't have to repeat yourself."

CRM.TransferWithContext to billing-escalation-queue, include patient.accountId, claim.id, charge.lineItem, interaction summary

Resolution / Close

Say"I'm glad we could assist you today. To summarize: we reviewed the charge for charge.description from charge.dateOfService, and your next steps are clear. If you have any further questions about your bill, don't hesitate to contact us — you can also view your account and statements at any time through the patient portal."

CRM.LogInteraction note: inquiry resolved, case closed

CaseManagement.CloseCase for case.id if open

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms

Appointment Scheduling

HealthcareSchedulingPatient Support

Patient Intake

Say"Thank you for reaching out. I'm here to help you schedule, reschedule, or cancel an appointment. Can I start with your full name and date of birth?"

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

Say"I wasn't able to match those details in our system. Let's try once more — could you double-check the name and date of birth on file with us?"

EHR.LookupPatient retry with corrected input

  • Record found on second attempt verified →appointment-intent
  • Still no match after retry →escalation-human

Appointment Intent

Say"Got it, patient.fullName — I've confirmed your record. Are you looking to book a new appointment, reschedule an existing one, or cancel?"
  • 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

Say"Before I check availability, I'll need your insurance information. What is your insurance provider and member ID?"

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

Say"No problem. Our self-pay rate for this type of visit is selfpay.rate. Would you like to proceed on a self-pay basis, or would you prefer to contact your insurer first and call us back?"
  • 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

Say"I wasn't able to verify active coverage with patient.insurance.provider at this time. This could be a data mismatch or a lapse in coverage. I'd recommend contacting your insurer directly to confirm. In the meantime, would you like to hear our self-pay rates or hold off until coverage is confirmed?"
  • 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

Say"It looks like a referral is required for this appointment type, and we don't currently have one on file for you. I can place a soft reservation to hold a slot while you obtain the referral from your primary care provider. Would you like me to do that?"

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

Say"Great. What is the reason for your visit, and do you have a preferred provider or location? Also, what dates and times work best for you?"

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

Say"I have a few openings that match what you're looking for. Let me share those with you now."

PatientPortal.DisplaySlots or read aloud up to three options from appointment.selectedSlot candidates

Say"Which of these works best for you?"
  • 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

Say"I wasn't able to find an opening that matches all of your preferences right now. I can offer you the next closest available slot, or I can add you to our waitlist so you're notified as soon as something opens up. Which would you prefer?"

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

Say"I'll add you to the waitlist for appointment.type. You'll be contacted at patient.phone or patient.email as soon as a matching slot opens up."

SchedulingModule.AddToWaitlist patient.fullName, appointment.type, appointment.preferredProvider, appointment.preferredDates

CRM.UpdateRecord waitlist status for patient.fullName

Say"You're all set on the waitlist. Is there anything else I can help you with today?"
  • 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

Say"You're all booked. Your confirmation number is appointment.confirmationNumber and I've sent the details to your phone and email. Is there anything else I can help you with?"
  • Patient has another request →appointment-intent
  • Patient is done →intake-close-complete

Reschedule Lookup

Say"I can help you reschedule. Let me pull up your existing appointment — can you confirm the date and type of visit, or your confirmation number?"

SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth

  • Appointment found →reschedule-preferences
  • Appointment not found →escalation-human

Reschedule Preferences

Say"I found your appointment. What new dates or times work better for you, and would you like to keep the same provider and location?"

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

Say"I can help with that. Can you confirm the appointment date and type, or share your confirmation number?"

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

Say"I can cancel this appointment. Please be aware that because this is within our short-notice window, a cancellation fee of cancellation.fee may apply per our policy. Would you still like to proceed?"
  • 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

Say"Your appointment has been cancelled and you'll receive a confirmation shortly. Is there anything else I can help you with?"
  • Patient wants to book a new appointment →appointment-intent
  • Patient is done →intake-close-complete

Intake Close — Callback

Say"Understood — no problem at all. When you're ready to move forward, you can reach us by phone, through the patient portal, or by replying to this message. We're happy to help whenever you're set."

CRM.UpdateRecord contact reason, outcome pending callback, patient.fullName

Intake Close — Referral Pending

Say"We've placed a soft hold for you while you get the referral sorted. Once it's submitted by your referring provider, give us a call or message us and we'll confirm that slot right away. Take care!"

CRM.UpdateRecord soft hold active, referral pending, patient.fullName

Intake Close — Complete

Say"You're all set, patient.fullName. Thank you for reaching out, and we look forward to seeing you. Have a great day!"

CRM.UpdateRecord interaction complete, outcome successful, patient.fullName

Escalation — Clinical

Say"What you're describing sounds like it may need immediate attention. Please call 911 or go to your nearest emergency room if you're experiencing a medical emergency. I'm also connecting you with a clinical team member right now who can assist further."

CRM.CreateCase priority: urgent, tagged clinical-escalation, patient.fullName

Twilio.NotifyOnCall clinical triage staff with patient name and reported symptoms

Escalation — Human Agent

Say"I want to make sure you get the right help here. Let me connect you with one of our scheduling specialists who can take it from here."

CRM.CreateCase priority: high, tagged scheduling-escalation, patient.fullName, interaction summary

Twilio.TransferCall or route chat to live scheduling specialist queue

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Account Closure Request

Financial ServicesAccount ManagementComplianceRetention

Intake and Identity Verification

Say"Thank you for contacting us. I understand you'd like to close an account today. Before we proceed, I'll need to verify your identity. Can I have your full name and date of birth?"

CRM.LookupCustomer using customer.fullName and customer.dateOfBirth

IdentityVerification.InitiateCheck for customer.fullName and customer.dateOfBirth

Detect
identity verification outcome
  • 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

Say"I wasn't able to verify your identity with those details. Let me try one more method — can you confirm the last four digits of your Social Security Number and the phone number on file?"

IdentityVerification.SecondaryCheck using additional customer-provided details

Detect
secondary verification outcome
  • Verification passes on retry confirmed →account-selection
  • Verification fails again unconfirmed →escalation-human

Account Selection

Say"Thank you, customer.fullName — your identity is verified. Which account or accounts would you like to close today? Please provide the account number or I can list the accounts currently on file."

CoreBanking.GetAccountList for verified customer record

Say"I can see the following accounts associated with your profile. Please confirm the account number or numbers you'd like to close."
Detect
customer intent on account selection
  • 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

Say"No problem — let me walk you through the accounts on your profile so we can identify the right one."

CoreBanking.GetAccountList — surface account type, last four digits, and current status for each account

Say"Can you confirm which of these is the account you'd like to close? I want to make sure we process the correct one."
  • 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

Detect
compliance screening outcome
  • 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
assess the flagged account against compliance.riskScore, account.status, and kb.aml-compliance-policy.
Goal:determine whether the closure request can proceed, must be held pending review, or must be escalated to the compliance team.
Constraints:never approve closure of a flagged account without documented risk assessment; never communicate hold details that would tip off a potentially fraudulent actor; always log the screening outcome to agent.caseId.
Tools available:ComplianceAML.ScreenAccount, ComplianceAML.GetRiskDetail, CRM.LogInteraction, kb.aml-compliance-policy
  • 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

Detect
account financial state
  • 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

Say"I can see there are pending transactions on this account that haven't settled yet. Account closure will be processed automatically once all pending transactions have cleared — typically within three to five business days."

kb.account-closure-policy — confirm settlement window and closure processing rules for account.type

Say"Would you like us to proceed with the closure request now so it triggers automatically after settlement, or would you prefer to call back once the transactions have cleared?"
Detect
customer preference
  • 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

Say"Understood — no problem. Your closure request has not been submitted. Please contact us again once your pending transactions have settled and we'll process the closure at that time. Is there anything else I can help you with today?"

CRM.LogInteraction note: customer deferred closure for account.number pending transaction settlement

Outstanding Balance Hold

Say"I'm showing an outstanding balance or a linked loan associated with this account. Before we can process the closure, the balance will need to be resolved — either paid in full or transferred to another eligible account."

kb.account-closure-policy — confirm balance resolution requirements for account.type

Say"Would you like me to walk you through your options for resolving the balance, or would you prefer to speak with a specialist?"
Detect
customer response
  • 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

Say"Before we finalize the closure, I'd like to note the reason for your request — this helps us improve our services. Common reasons include switching to another institution, account no longer needed, fee concerns, or a change in financial goals. What's the primary reason for closing your account today?"
Detect
closure reason and customer sentiment
  • 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

Say"I want to make sure we're exploring every option available to you before we proceed. We have resources that may help — would it be okay if I connected you with a financial wellness specialist?"
Detect
customer response
  • Customer agrees to speak with a specialist confirmed →escalation-human
  • Customer declines and wishes to continue closure declined →funds-destination-collection

Retention Offer

Say"I hear you, and I'm sorry to hear you've had that experience. Before we proceed, I'd like to see if there's anything we can do — such as a fee waiver, a rate adjustment, or a product that better fits your needs. Would you be open to hearing your options?"

kb.retention-offers-policy — surface eligible retention offers for account.type and customer.fullName profile

Detect
customer response to retention offer
  • Customer is open to retention options interested →escalation-human
  • Customer declines and confirms they want to close confirmed →funds-destination-collection

Funds Destination Collection

Say"To transfer your remaining balance, I'll need the destination account details — the bank name, routing number, and account number you'd like the funds sent to."

ACHTransfer.ValidateDestination for transfer.destinationAccount and transfer.destinationBank

Detect
destination verification outcome
  • 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

Say"I wasn't able to verify the destination account details you provided. To protect your funds, we'll need to place the closure on hold until we can confirm a valid transfer destination."
Say"You can provide updated banking details by calling us back, visiting a branch, or sending a secure message through your online banking portal. Once we have verified details on file, we'll process your closure and fund transfer right away."

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

Say"Your closure request has been submitted. Your confirmation number is closure.requestId. Any remaining balance will be transferred to your destination account within closure.timeline business days. You'll receive a written confirmation at the email address on file."
Say"Is there anything else I can help you with today?"
Detect
customer response
  • Customer has additional questions or requests needs_help →post-closure-support
  • Customer is satisfied and ends interaction confirmed →resolution

Post-Closure Support

Say"Of course — I'm happy to help. What else can I assist you with?"

kb.account-closure-policy — reference post-closure FAQs including statement access, tax documents, and credit impact

Detect
nature of follow-up question
  • 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

Say"I'm going to connect you with a specialist who has the tools and authority to assist you further. They'll have full context on your request so you won't need to repeat yourself. Please hold for just a moment."

Resolution

Say"Thank you for contacting us today, customer.fullName. Your request has been handled and you'll receive written confirmation shortly. We appreciate your time and wish you all the best. Have a great day."

CRM.LogInteraction note: closure interaction completed for customer.fullName, account account.number

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ text

Symptom Triage / Nurse Line Routing

HealthcareTriageNursingPatient Support

Identity Verification

Say"Thank you for calling. I'm your Healthcare Support Agent. To get started, can I get your full name and date of birth?"

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

Say"I'm going to ask you a few questions about your symptoms so I can make sure you get the right care as quickly as possible. Please describe what you're experiencing today."

Collect patient.primarySymptom, patient.symptomDuration, and patient.symptomTrend.

Say"Are you currently taking any medications, or do you have any conditions I should know about — such as diabetes, heart disease, or a compromised immune system?"

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

Say"What you're describing could be a medical emergency. Please call 911 right now or have someone nearby call for you. Do not drive yourself. I will stay on the line with you while you do this."

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

Say"Help is on the way. Stay as calm as you can, stay on the line if you're able, and unlock your door if someone can do that safely. We are documenting this call and your care team will be notified."

EHR.AddEncounterNote "Patient acknowledged emergency redirect. 911 advised. Case case.id created."

CRM.UpdateCase case.id status: emergency-dispatched

Triage Assessment

Agent
evaluate patient.primarySymptom, patient.symptomDuration, patient.symptomTrend, patient.currentMedications, and patient.knownConditions against triage protocols.
Goal:determine the appropriate care tier — self-care, nurse callback, urgent care within 4 hours, or emergency services — using validated clinical decision support.
Constraints:never downgrade a symptom set that includes high-risk modifiers (immunocompromised, anticoagulant use, age over 65 with fever, pediatric under 3 months with fever); always escalate to nurse if the protocol confidence score is below threshold; never advise the patient that symptoms are "nothing to worry about" without a completed protocol match.
Tools available:TriageEngine.EvaluateSymptoms, TriageEngine.GetProtocol, kb.schmitt-thompson-protocols, EHR.GetPatientRiskFlags
  • 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

Say"Based on what you've described, this sounds like something you can manage safely at home. Here's what I'd recommend: triage.protocol. Please monitor your symptoms over the next 24 hours."
Say"If your symptoms worsen — especially if you develop a fever above 103°F, difficulty breathing, or you feel significantly worse — please call us back right away or go to your nearest urgent care."

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

Say"Based on your symptoms, I recommend you visit an urgent care center within the next 4 hours. The nearest in-network location to you is facility.nearest. Do you need directions or help finding another location?"
Say"Please do not delay — if at any point your symptoms feel significantly worse before you arrive, call 911 immediately."

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

Say"I'm connecting you with one of our registered nurses who will call you back at patient.phone. Your estimated wait time is nurse.callbackEta. Please stay near your phone and call 911 immediately if your symptoms get significantly worse before then."

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

Say"I wasn't able to verify your identity in our system, but your health and safety are the priority. I'm going to collect your symptoms now and make sure a nurse follows up with you."

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

Say"I've flagged your case for a nurse to review and call you back. Can I confirm the best number to reach you?"

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

Say"I understand, and I respect your decision. I do want to make sure you have all the information — based on your symptoms, our recommendation is triage.tier level care. Delaying care in some situations can lead to symptoms becoming more serious."
Say"If you change your mind, please don't hesitate to call us back at any time, day or night. I'm going to note your preference in your record."

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

Say"Is there anything else I can help you with today? Please remember — if your symptoms change or worsen at any point, call us back right away or call 911 if it feels like an emergency. Take care."

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

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat

SIM Swap / Number Porting

TelecomSIMPortingSecurity

Intake & Request Classification

Say"Thank you for contacting us. I can help you with a SIM swap or number transfer today. Could you tell me what you need — are you moving your number to a new SIM card, switching to a different carrier, or reporting a lost or stolen SIM?"
Detect
intent on customer reply
  • 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

Say"Before I can make any changes to your account, I need to verify your identity. Could you please provide your full name, date of birth, and your account PIN or security passphrase?"

IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber

Detect
verification outcome
  • 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

Say"I wasn't able to verify your identity with those details. Let's try once more — please double-check your date of birth and the PIN or passphrase on your account."

IdentityVerification.CheckCustomer using customer.fullName, customer.dateOfBirth, customer.accountPIN against customer.phoneNumber

Detect
verification outcome on retry
  • Verification passes verified →account-eligibility-check
  • Verification fails again failed →verification-lockout

Verification Lockout

Say"I'm sorry, I wasn't able to verify your identity after multiple attempts. For your security, I'm unable to proceed with this request over the phone or chat."

CRM.LogFailedVerification for customer.phoneNumber, flag request as locked

CRM.AddNote to account.id: "Identity verification failed — in-store ID required."

Say"Please visit any of our retail stores with a government-issued photo ID, and our team will be able to assist you there. Is there anything else I can help you with today?"

Account Eligibility Check

CRM.LookupAccount by customer.phoneNumber, retrieve account.id, account.fraudFlag, account.portFreeze

Detect
account status
  • 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

Detect
request type from request.type captured at intake
  • 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

Say"Great — I've verified your identity and your account is in good standing. To complete the SIM swap, I'll need the ICCID number printed on your new SIM card. You can usually find it on the SIM card itself or its packaging."

SubscriberProvisioning.ValidateICCID for sim.newICCID

Detect
ICCID validation result
  • 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

Say"I wasn't able to validate that SIM card number. It may be invalid or already assigned to another account. Could you double-check the ICCID, or let me know if you have a different SIM card available?"
  • Customer provides a new ICCID to try →sim-swap-execution
  • Customer cannot provide a valid ICCID →escalation-human-agent

SIM Swap Confirm

Say"I'm about to move your number customer.phoneNumber to the new SIM card ending in the last four digits of your ICCID. This will deactivate your current SIM immediately. Can you confirm you'd like to proceed?"
Detect
customer confirmation
  • 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."

Say"Your SIM swap is done. Your number is now active on the new SIM card. Please restart your device if service doesn't appear within a few minutes."

→resolution

SIM Swap Cancelled

Say"No problem — I've left your account unchanged. Please don't hesitate to reach out when you're ready to proceed. Is there anything else I can help you with?"

→resolution

Port-Out Execution

Say"To transfer your number to a new carrier, I'll generate a port authorization code — sometimes called a PAC or transfer PIN — that your new carrier will need to initiate the transfer. Before I do, could you confirm the name of the carrier you're moving to?"

NumberPortabilityClearinghouse.LookupCarrier for port.receivingCarrier

Detect
carrier lookup result
  • 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."

Say"Your port authorization code is: port.authCode. Please provide this code to port.receivingCarrier when you activate your new service. The transfer typically completes within one business day, though it may take up to three days in some cases."
Say"Once the port completes, your current service on this account will end automatically. Is there anything else you'd like to know before you go?"

→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."

Say"I'm sorry — I wasn't able to reach the number portability system for your carrier right now. I've logged your request and a member of our team will follow up with your port authorization code within two business hours. Would you like us to reach you at customer.phoneNumber or a different number?"
Detect
callback preference
  • 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

Say"You're all set — we'll be in touch shortly. I apologize for the inconvenience. Is there anything else I can help you with today?"

→resolution

Lost or Stolen SIM

Say"I'm sorry to hear that. To protect your account right away, I'm going to suspend your current SIM immediately. Once that's done, I can issue a replacement SIM or walk you through your options."

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

Say"Your current SIM has been suspended. Would you like me to arrange a replacement SIM now? You can have one shipped to your address on file or pick one up at a store."
Detect
customer preference for replacement
  • 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."

Say"Your replacement SIM has been ordered and will arrive within 3 to 5 business days. Once you receive it, you can activate it through our app, website, or by calling us back. Is there anything else I can help you with?"

→resolution

Store Pickup Guidance

Say"No problem — you can visit any of our retail locations to pick up a replacement SIM. Please bring your government-issued photo ID. Our team there can activate the new SIM for you on the spot. Would you like me to look up the nearest store to you?"

CRM.LogActivity on account.id: "Customer advised to pick up replacement SIM in store."

→resolution

Suspected SIM Hijacking

Say"I understand — thank you for letting us know immediately. This is being treated as a priority security concern. I'm suspending your account right now to prevent any unauthorized use."

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."

Say"Your account has been suspended. Our fraud team has been alerted and will investigate this immediately. You'll receive a follow-up within one hour. Do not attempt to log into any accounts that use this phone number for two-factor authentication until you've heard from us."

→escalation-fraud-team

Fraud Hold Escalation

Say"I can see there is a security hold on your account that needs to be reviewed before any changes can be made. I'm going to connect you with our fraud team right away — they're the only team authorized to make changes while this hold is active."

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

Say"I'm transferring you to our fraud and security specialists now. They have full visibility into your account and the authority to resolve this. Please stay on the line — I'll make sure they have all the context from our conversation."

Escalation — Human Agent

CRM.CreateTicket for account.id: "Customer requires human agent assistance — could not complete SIM swap or port automatically."

Say"I'm going to connect you with one of our senior support agents who can assist you further. Thank you for your patience — please stay on the line."

Resolution

Say"Is there anything else I can help you with today?"
Detect
customer response
  • Customer has another request new-request →intake
  • Customer is done done →close

Close

Say"Thank you for choosing us. Have a great day — goodbye!"

CRM.CloseInteraction for account.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Roaming / International Add-on Request

TelecomRoamingInternationalAdd-onsTravel

Identity Verification

Say"Thanks for reaching out! I'd be happy to help you with international coverage. To get started, can I have your account number or the phone number on the account, followed by your account PIN or passcode?"

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

Say"I wasn't able to match that PIN. Let's try one more time — please re-enter your account PIN or passcode."

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

Detect
account status flags on 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

Say"I can see there's an outstanding balance of customer.outstandingBalance on your account. Add-on activations are on hold until the balance is cleared. Would you like to make a payment now so we can get your roaming plan set up right away?"
  • 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

Say"I'll bring up the payment flow now. Once that goes through, we'll be all set to activate your international add-on."
  • Payment successful payment_cleared CRM.UpdateAccountStatus →trip-details
  • Payment declined or failed payment_failed →escalation-human

Trip Details

Say"Great! Let's find the best plan for your trip. Which country or countries will you be visiting, and what are your travel dates?"

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

Say"I've checked your device and unfortunately it isn't compatible with the networks in trip.destinationCountry — it may be CDMA-only or SIM-locked for that region. I can offer you a couple of alternatives: an international SIM card or a temporary rental device that's fully unlocked and compatible. Would either of those work for you?"
  • 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

Say"Perfect. I'll connect you with our device services team who can get that arranged before your trip. They'll confirm availability, pricing, and delivery or in-store pickup options."

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

Say"Great news — your device is compatible. Here are the international add-on options available for your plan and destination. I'll walk you through the options, including pricing and any usage caps."

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

Say"Just to confirm — you'd like to add addon.name for addon.price, which covers you in trip.destinationCountry. Your usage cap is addon.usageCap. This will activate on addon.effectiveDate. Does that all look correct?"
  • 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

Say"You're all set! Your addon.name has been activated and takes effect on addon.effectiveDate. You'll receive a confirmation to customer.email shortly. Remember, your usage cap is addon.usageCap — you'll get an alert if you're approaching the limit. Is there anything else I can help you with?"
  • Customer has additional questions or requests →trip-details
  • Customer is satisfied, no further needs →resolution-complete

Already Abroad

Say"I'm sorry to hear your service isn't working as expected. Let me pull up your account and check what's been happening since your arrival."

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

Agent
assess retroactive credit eligibility for charge.amount against kb.roaming-retroactive-credit-policy.
Goal:determine whether a courtesy credit for pay-per-use roaming charges can be applied and activate the appropriate add-on going forward.
Constraints:never approve a retroactive credit above USD 75 without supervisor approval; always activate the going-forward add-on before issuing any credit; confirm credit eligibility against policy window before proceeding.
Tools available:BillingPlatform.GetRecentCharges, BillingPlatform.ApplyCredit, kb.roaming-retroactive-credit-policy, AddonCatalog.GetEligibleAddons
  • 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

Say"I've applied a credit of credit.amount to your account for the roaming charges you incurred. It will appear on your next billing cycle. Now let's get a proper international add-on activated so you're covered for the rest of your trip."

→addon-selection

Charge Dispute

Say"I understand — let's take a close look at those charges. Can you confirm the total amount you're disputing?"

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

Say"I hear you — let me review any current promotions or adjustments that might apply to your account."

kb.roaming-addon-policy — check active promotional offers, loyalty discounts, and goodwill adjustment eligibility

Detect
outcome of promotion or adjustment review
  • 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

Say"I want to make sure this gets fully resolved for you. I'm escalating your case to a specialist who has the tools and authority to handle this. They'll have all the details so you won't need to repeat yourself."

Resolution — Complete

Say"Wonderful — you're all set for your trip to trip.destinationCountry. Safe travels, and don't hesitate to reach out if you need anything while you're away!"

CRM.LogInteraction with resolved add-on, addon.effectiveDate, trip.destinationCountry, trip.returnDate

Resolution — No Change

Say"No problem at all — no changes have been made to your account. If you'd like to revisit your options before your trip, we're here anytime. Have a great day!"

CRM.LogInteraction tagged no-change-requested, customer.accountNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ chat▣ voice▣ sms

Quote Request Intake

InsuranceSalesQuotes

Intake Greeting

Say"Hi there! I'm your insurance support agent. I'd be happy to help you get a quote today. To get started, could you tell me what type of coverage you're looking for — for example, auto, home, life, renters, or something else?"
Detect
intent on customer reply
  • 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

Say"No problem at all — let me ask a few quick questions so I can point you in the right direction."
Agent
recommend the most appropriate coverage product based on the customer's situation.
Goal:identify the best-fit coverage type (auto, home, life, renters, umbrella, etc.) by asking clarifying questions about assets, dependents, and existing coverage.
Constraints:never recommend a specific policy dollar amount without running the quoting engine; only recommend product categories; ask no more than three clarifying questions before making a recommendation.
Tools available:kb.coverage-product-guide, kb.underwriting-eligibility-overview
  • 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

Say"Great choice. I'll now collect a few details so we can generate your quote. This should only take a couple of minutes."

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

Say"First, could I get your full name, email address, phone number, and mailing address?"

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

Say"Thanks, customer.name. Now I'll need a few details specific to the coverage you're looking for. I'll guide you through them one at a time."
Agent
collect all risk-relevant details required for the selected coverage.type.
Goal:gather complete risk inputs — vehicle make/model/year and VIN for auto (risk.vehicleInfo), property address and year built for home (risk.propertyAddress), age and health status for life (risk.age, risk.healthStatus) — plus coverage.desiredLimits, coverage.startDate, and coverage.currentProvider.
Constraints:never ask for Social Security Number or financial account numbers; if a customer declines to answer a required field, note it as missing and continue; do not proceed to quoting with fewer than 80% of required fields complete.
Tools available:CRM.UpdateContact, kb.risk-field-requirements, kb.coverage-product-guide
  • 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

Detect
underwriting eligibility result
  • 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

Detect
quoting engine response
  • Quote successfully generated quote_ready →quote-presentation
  • Quoting engine error or timeout on first attempt error →quoting-retry

Quoting Retry

Say"I'm sorry — our quoting system took a moment. Let me try one more time."

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

Say"Great news, customer.name! I have your quote ready. Your estimated premium for coverage.type coverage is quote.premium per month, at the quote.tier coverage tier, with your requested limits. Your quote ID is quote.id."

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

Say"I've sent a copy to your email and a summary link to your phone. Would you like to move forward and bind this coverage, get a different tier, or have a licensed agent walk you through your options?"
Detect
customer response intent
  • 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

Say"Wonderful! I'll connect you with our policy team to complete the binding process. Your quote ID quote.id and all your details are ready for them."

PolicyManagement.InitiateBinding with quote.id, customer.name, customer.email, coverage.startDate

CRM.UpdateContact status: quote-accepted, linked to quote.id

Say"You're all set. Someone from our team will reach out within one business day to finalize your policy documents and payment details. Is there anything else I can help you with today?"
  • Customer has additional questions →intake-greeting
  • Customer is done — no further questions →resolution-complete

Underwriter Review

Say"Thank you for sharing those details, customer.name. Your risk profile requires a brief review by one of our underwriting specialists before we can finalize a quote. This is a standard step for certain coverage requests."

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

Say"We'll reach out to you at customer.email within 1 to 2 business days with your quote or any follow-up questions. Would you like me to also arrange a call with a licensed agent in the meantime?"
  • 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

Say"No problem at all — I've saved everything you've shared so far. One of our team members will follow up with you within 24 hours to help complete your quote at a time that's convenient for you. Is there a preferred time or contact method we should use?"

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

Say"I apologize — our quoting system is not available right now, and I want to make sure you get an accurate quote as quickly as possible. I'm going to connect you with a licensed agent who can complete this for you directly."

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

Say"I'm transferring you now to a licensed agent who has all the details you've shared with me. You won't need to repeat anything. Thank you for your patience, customer.name."

Resolution — Follow-up Scheduled

Say"You're all set, customer.name. We'll be in touch soon to continue where we left off. Don't hesitate to reach back out if you have any questions in the meantime."

CRM.UpdateContact status: follow-up-scheduled

Resolution — Complete

Say"Thank you for choosing us, customer.name. Your quote is confirmed and our team will be in touch shortly. Have a great day!"

CRM.UpdateContact status: quote-delivered

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat

Prior Authorization Status Inquiry

HealthcarePrior AuthorizationMember ServicesProvider Services

Intake & Caller Identification

Say"Thank you for contacting member services. I'm here to help with a prior authorization inquiry. May I ask — are you calling as the member, or as a provider or practice staff member?"
Detect
caller relationship to member
  • 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

Say"I'll need to verify your identity before I can share any authorization details. Could you please provide me with your Member ID and date of birth?"

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

Say"Thank you for calling on behalf of your practice. Could you please provide the member's Member ID or date of birth, your practice NPI, and the authorization reference number if you have it?"

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

Say"Before we discuss the authorization, I want to let you know that the member's coverage appears to be inactive as of today. I'll flag this on the record. Depending on the coverage dates, this may affect the authorization request."

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

Say"Thank you. I'm pulling up the authorization request now. Could you confirm the medication or procedure being authorized and the date the request was submitted?"

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

Say"I can see that the authorization request for medication.name or procedure.name is currently pending review. It was submitted on auth.submittedDate and is within the standard review window."

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

Say"The expected decision date is auth.reviewDeadline. You don't need to take any action right now. If you haven't received a decision by that date, please contact us and we'll escalate on your behalf. Is there anything else I can help you with?"

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

Say"Great news — the authorization for medication.name or procedure.name has been approved. The approval is effective auth.effectiveDates. An approval letter has been or will be sent to both the member and the ordering provider."

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

Say"I'll arrange for the approval letter to be resent right away. Can you confirm the best delivery method — secure portal message or mailing address on file?"

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

Say"I'm sorry to share that the authorization request for medication.name or procedure.name has been denied. The reason on file is: auth.denialReason. I want to make sure you understand your options from here."

kb.appeal-rights-policy — confirm appeal window, peer-to-peer review rights, and deadline rules for auth.denialReason

Say"You have the right to appeal this decision. The appeal must be submitted by auth.appealDeadline. If the treating provider would like to speak directly with the medical reviewer, a peer-to-peer review can also be requested within that same window. Would you like me to note a formal appeal intent on this record?"

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

Say"The denial reason provided is: auth.denialReason. This determination was based on the clinical criteria applied to the submitted documentation. If additional clinical evidence is available, that can be included as part of a formal appeal."

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

Say"The authorization is currently on hold because additional clinical information is needed before a determination can be made. The outstanding documentation is: auth.outstandingDocs."
Say"The ordering provider's office will need to submit this information directly to the payer's clinical review team. Once received, the review will resume. Would you like me to send a notification to the provider's portal?"

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

Say"I wasn't able to locate an authorization request matching the details you provided. Let me confirm what we have: Member ID member.id, submitted date auth.submittedDate, for medication.name or procedure.name."
Say"If those details are correct, it's possible the request did not process successfully. I'd recommend the submitting provider resubmit the request through the portal or by fax, and retain the submission confirmation number. I can also escalate this to our intake team to investigate."

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

Say"Given the urgent nature of this request, I'm flagging this case for immediate escalation to our clinical review team and escalating for an expedited review. A specialist will be in contact within 24 hours. You'll receive a reference number for this escalation shortly."

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

Say"I've noted your intent to appeal and opened an appeal case on your account. You'll receive written instructions outlining the appeal process and submission requirements. The deadline to submit is auth.appealDeadline. A dedicated appeals coordinator will follow up with you."

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

Say"I've created a ticket for our intake team to investigate. They will review submission records and follow up within two business days. Your ticket reference has been added to your account. Is there anything else I can help with?"
  • 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

Say"I want to make sure you get the right help here. I'm transferring you to a member services specialist who can assist further. Please hold for just a moment, and thank you for your patience."

Resolution

Say"Thank you for contacting us today. To recap: I've provided you with the current status of your authorization request and any next steps. If you have further questions or need follow-up, don't hesitate to call back or send a message through the member portal. Take care."

CRM.LogInteraction for member.id with outcome resolved and summary of interaction

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat

Premium Payment / Billing Inquiry

InsuranceBillingPayments

Inbound Greeting

Say"Thank you for contacting insurance support. My name is your virtual support agent. I can help you with billing questions, premium payments, and policy account inquiries. May I have your policy number to get started?"

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

Say"To protect your account, I need to verify your identity before I can share any account details. Could you please confirm your date of birth, the last four digits of your Social Security Number, or your account security passphrase?"

PolicyManagement.VerifyIdentity using customer.dob, customer.ssn_last4, or customer.passphrase

Detect
verification outcome
  • 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

Say"Completely understandable — your security is our top priority. We require identity verification before sharing any account details to protect you from unauthorized access. I can verify using your date of birth, the last four digits of your Social Security Number, or your security passphrase — whichever you prefer."
  • Customer agrees and provides credentials →identity-verification
  • Customer refuses to verify and wants to end call →escalation-human

Identity Failure

Say"I'm sorry — I wasn't able to verify your identity with the information provided. For the security of your account, I'm unable to share policy or billing details over this channel."
Say"You're welcome to visit one of our branch locations with a valid photo ID, or submit a written inquiry through our secure customer portal. I can also transfer you to a specialist who can walk you through those options."
  • 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

Detect
policy lapse or cancellation-pending status against policy.lapse_status
  • 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

Say"I've pulled up your account. Your current premium is policy.premium_amount, due on policy.due_date. Your outstanding balance is payment.outstanding_balance, and your payment method on file is payment.method_on_file. How can I help you today?"
Detect
customer's primary billing intent
  • 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

Say"I understand — let me review any recent changes to your policy that may have affected your premium."

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

Say"The change to your premium is due to billing.rate_adjustment_reason. This is consistent with the terms of your policy. I'm happy to email or text you a summary of this breakdown for your records."
  • 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

Say"I can see your last payment was on payment.last_payment_date and there is an outstanding balance of payment.outstanding_balance. Let me check whether your account is eligible for a payment plan or grace period extension."

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

Say"Good news — your account qualifies for a payment plan. I can break your outstanding balance of payment.outstanding_balance into installments. Would you like me to walk you through the available options?"

kb.payment-plan-options — retrieve available installment schedules and terms

Agent
present payment plan options based on payment.outstanding_balance and kb.payment-plan-options.
Goal:identify the most suitable installment schedule for the customer and confirm their agreement before enrolling.
Constraints:never enroll a customer in a payment plan that extends beyond the policy renewal date without supervisor approval; never waive fees without approved authorization; always confirm the first installment amount and date before proceeding.
Tools available:BillingLedger.GetPaymentPlanOptions, BillingLedger.EnrollPaymentPlan, kb.payment-plan-options
  • 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

Say"Your policy is scheduled for renewal on policy.due_date. Your renewal premium will be policy.premium_amount. I can walk you through what's included, any coverage changes, or help you make a payment in advance if you'd like."

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

Say"No problem — I can update your payment method right now. For security, the new payment details you provide will be verified before being saved to your account. Please go ahead and share the new payment method you'd like to use."

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

Say"I'll process a payment of payment.outstanding_balance using your payment.method_on_file. Shall I go ahead?"

PaymentGateway.ProcessPayment for payment.outstanding_balance on policy.number

Detect
payment processing outcome
  • 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

Say"I'm sorry — the payment method on file was unable to be processed. This can happen due to insufficient funds, an expired card, or a bank hold. Would you like to try a different payment method, or would you prefer to set up a payment plan?"
  • 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

Say"Your account is in good standing. I'll send a confirmation of today's activity to customer.email and customer.phone right now."

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

Say"I can see your policy is currently in a lapsed or cancellation-pending status. I'm not able to process a standard payment for a policy in this state — I'll need to connect you with a specialist who handles reinstatement."

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

Say"I'm going to connect you with a specialist who can assist you further. Please hold for just a moment — I'm passing along your account details so you won't need to repeat yourself."

CRM.LogEscalation with inquiry summary, policy.number, and reason for escalation

CRM.CreateCase priority: high, tagged billing-escalation, linked to policy.number

Session Close

Say"Thank you for contacting insurance support. Is there anything else I can help you with today?"
  • Customer has another question another_question →inbound-greeting
  • Customer is done — closing interaction CRM.LogInteraction tagged session-complete
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ sms

Policy Coverage Question

InsuranceCoverageSupport

Inbound Coverage Inquiry

Say"Thank you for reaching out. I'm here to help you understand your coverage. Could I please have your full name and policy number to get started?"
  • Customer provides name and policy number →identity-verification
  • Customer doesn't have policy number handy →collect-account-details

Collect Account Details

Say"No problem at all. I can look you up another way. Could you please provide the email address or phone number associated with your account?"

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

Say"Just to protect your account, I'll need to verify a couple of details. Can you confirm your date of birth and the zip code on file?"
Detect
verification outcome
  • 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

Say"Great, I've pulled up your policy.type policy, which is active from policy.effectiveDate through policy.expirationDate. Now, could you describe the situation you'd like me to check coverage for?"
  • Customer describes a specific situation or event →coverage-assessment
  • Customer is distressed or alarmed about a potential denial frustrated →acknowledge-concern

Acknowledge Concern

Say"I completely understand — it can be really stressful not knowing whether something is covered, and I want to make sure you get an accurate answer. I'm not going to make any promises I can't back up, but let's walk through this together. Can you tell me what happened?"
Detect
sentiment on follow-up response
  • Customer calms down and describes the situation neutral →coverage-assessment
  • Customer remains very distressed or mentions legal action frustrated →escalation-licensed-agent

Coverage Assessment

Agent
evaluate whether coverage.situation is covered under policy.type using the coverage rules engine and policy knowledge base.
Goal:produce a clear coverage determination — covered, excluded, or gray-area — along with applicable deductible and limit details from policy.deductible and policy.coverageLimits.
Constraints:never make a binding coverage promise on ambiguous or high-value situations; do not interpret legal or disputed policy language; flag any situation involving a loss above USD 10000 for underwriter review regardless of apparent outcome.
Tools available:CoverageRulesEngine.Evaluate, DocumentRetrieval.GetPolicyWording, kb.coverage-exclusions-guide, kb.policy-terms-glossary
  • 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

Say"Good news — based on your policy, this situation is covered. Your applicable deductible is policy.deductible, and the coverage limit for this type of loss is policy.coverageLimits. I'd recommend reviewing the relevant section of your policy document, which I can send to customer.email if you'd like."
  • 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

Say"I want to be transparent with you — based on what you've described, this situation may fall under an exclusion in your policy. Let me explain what that means and why, and then we can talk about your options."
Say"Your policy does have a section that addresses this. I can walk you through it now, or I can connect you with an underwriting specialist who can do a formal review — especially if the circumstances are complex or there are details that might change the picture."
  • 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

Say"I can see there's already a claim on file related to this — claim reference claim.existingId. Your claims team will be in touch, or you can contact them directly to get a status update. Is there anything else about your coverage I can clarify today?"
  • Customer has more questions →coverage-assessment
  • Customer is satisfied →resolution-close

New Claim Guidance

Say"If you'd like to move forward, I can help you start a claim. You'll need to have the date and description of the incident, any photos or documentation you have, and receipts or estimates if applicable. Would you like me to open a claim now, or do you need more time to gather information?"
  • 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

Say"I can see that your policy with us is currently inactive — it appears coverage lapsed on policy.expirationDate. I'm sorry to be the bearer of that news. Unfortunately, I'm not able to confirm coverage for a situation that occurred after that date, but I can connect you with our renewals team to talk about reinstating or updating your 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

Say"I'm running into a technical issue retrieving your policy details right now, and I don't want to give you inaccurate information. I'd like to collect a few notes manually and have a specialist follow up with you within one business day. Would that work for you?"

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

Say"I've flagged your situation for a formal review by one of our underwriting specialists. They'll be able to give you a definitive answer and will reach out to you at customer.email or customer.phone within two business days. I'll make sure all the context I have is passed along so you don't have to repeat yourself."
  • 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

Say"I'm going to connect you with a licensed agent who has the authority to give you a definitive answer and discuss your options in full. Please hold just a moment while I bring them in — and I'll pass along everything we've discussed so you won't need to start over."

Policy Renewal Reinstatement

CRM.LogInteraction tag: renewal-interest, linked to policy.number

Say"Let me pass you to our renewals team who can walk you through your reinstatement options and any updated terms. They'll be able to tell you exactly what it would take to get coverage active again."

→policy-renewal-reinstatement-flow

Resolution Close

CRM.CloseInteraction tag: resolved, linked to policy.number

Say"Is there anything else I can help you with today regarding your coverage or your policy?"
  • 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
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Payment / Billing Issue

RetailBillingPaymentsRefunds

Identity Verification

Say"Thank you for reaching out. I'm happy to help you sort out this billing concern. To get started, could you please confirm your full name and the email address on your account?"

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

Say"I wasn't able to locate an account with those details. Could you double-check the email address, or try an alternate one you may have used when placing your order?"

CRM.LookupAccount using customer.email

  • Account found on second attempt →transaction-lookup
  • Still unable to locate account →escalation-back-office

Transaction Lookup

Say"Thanks, customer.name — I've pulled up your account. Can you share the order ID or transaction ID and the charge amount and date you're seeing?"

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

Agent
assess the billing discrepancy using transaction.id, transaction.amount, transaction.date, payment.method, and kb.billing-policy.
Goal:determine whether the discrepancy is a duplicate charge, an erroneous fee, a missing refund that was already issued, or a failed payment requiring retry.
Constraints:never initiate a refund above USD 150 without escalating for approval; always verify refund has not already been processed before initiating a new one; never modify account payment details without customer consent.
Tools available:PaymentProcessor.GetTransaction, PaymentProcessor.GetRefundStatus, OrderManagement.GetOrder, RefundPortal.CheckRefundHistory, kb.billing-policy
  • 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

Say"I can confirm that charge should not have been applied. I'm going to process a refund of refund.amount to your payment.method right now."

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

Say"Your refund of refund.amount has been submitted. You should see it back on your payment.method within refund.timeline. I've also sent a confirmation to customer.email. Is there anything else I can help with?"
  • Customer confirms resolution →resolution-confirmed
  • Customer has additional questions →resolution-confirmed

Valid Charge Explanation

Say"I've reviewed the charge and I can see it was applied for a specific reason. Let me walk you through what happened."

kb.billing-policy — retrieve applicable policy documentation (restocking fees, subscription renewals, promotional terms)

Say"This charge of transaction.amount on transaction.date relates to your order order.id. Based on our billing policy, this was applied as — [restocking fee / subscription renewal / promotional adjustment]. I can send you the full policy documentation for your records."

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

Say"Our records show a refund of refund.amount was issued on transaction.date with reference number refund.id. Refunds to payment.method typically take refund.timeline to appear, depending on your bank's processing times."
Say"If it has been longer than that window, I'd recommend contacting your bank or card issuer with this reference number: refund.id — they can trace it on their end."

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

Say"It looks like this payment didn't go through. The most common reasons are an expired card or insufficient funds. Let me help you get this sorted."
  • 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

Say"I can guide you through updating your payment information so we can retry the charge. For security, you'll need to do this directly in your account settings — I can walk you through it step by step."

kb.billing-policy — retrieve payment update and retry procedures

Say"Once you've updated your card details, the system will automatically retry the payment within 24 hours, or you can place the order again. Would you like me to send you a direct link to update your payment method?"

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

Say"Great — your updated payment details are in place. The retry will process within 24 hours and you'll receive a confirmation email once it goes through. I'll send a summary to customer.email now."

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

Say"I wasn't able to locate that transaction in our systems right now, but I don't want to leave this unresolved. Let me collect the details so our back-office team can investigate."
Say"Could you please confirm the order ID or transaction ID, the exact charge amount, the date it appeared, the payment method used, and any error messages you received?"

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

Say"I've escalated this to our billing specialist team who have the tools to investigate further. You'll receive a follow-up at customer.email within one to two business days. Your case reference is available in your account."

EmailNotifications.Send to customer.email with case reference, summary of issue, and expected resolution timeline

Escalation — High-Value Refund Approval

Approval
Slack.RequestApproval to #billing-approvals, approver: billing_manager
Context sent:customer.accountId, transaction.id, transaction.amount, transaction.date, agent's discrepancy assessment, payment.method
  • Approved approved →refund-initiation
  • Rejected rejected →valid-charge-explanation
  • No response within 60 min →escalation-back-office

Escalation — Fraud or Unauthorized Access

Say"I take this very seriously. I'm flagging your account immediately and connecting you with our fraud and security team who are equipped to handle this."

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

Say"Your account has been secured and our fraud team will be in touch at customer.email within 24 hours. Please do not attempt to use your payment method until you hear from them."

EmailNotifications.Send to customer.email with fraud case reference and next steps

Resolution Confirmed

Say"I'm glad we were able to get that sorted for you. Is there anything else I can help you with today?"

CRM.UpdateCase status: resolved, linked to customer.accountId and order.id

EmailNotifications.Send to customer.email with resolution summary and case closure confirmation

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ sms▣ email▣ chat

Patient Intake Pre-Visit

HealthcarePatient IntakePre-VisitScheduling

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.

Detect
patient response and intake link engagement
  • 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

Say"Before we begin, we need to confirm your identity. Please enter your full legal name and date of birth as they appear on your records."

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

Say"Great, patient.firstName! Let's confirm your contact and insurance information. Please review what we have on file and update anything that has changed."

EHR.GetPatientRecord for chart.id — pre-populate name, address, phone, email, emergency contact

Say"Please confirm or update: your preferred phone number, email address, and emergency contact name and phone number."

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

Say"We weren't able to verify your insurance with the information on file. Please double-check your member ID and group number, or you can upload a photo of your insurance card for our team to review."

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

Say"Now let's review your health history. Please confirm your current medications and any known allergies. If anything has changed or looks incorrect, let us know."

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

Say"Understood — we've marked that medication as needing review rather than removing it from your record. A clinician will confirm the correct information with you at your visit. Are there any other medications or allergies to flag?"

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

Say"Thank you for letting us know — we've flagged that allergy entry as needing review. A clinician will reconcile it with you at your visit. Are there any other items to flag?"

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

Say"Almost done! Please briefly describe the primary reason for your visit and your main concern or symptom. This helps your care team prepare."
Detect
urgency and content of reported symptom or chief complaint
  • 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

Say"Thank you for sharing that. Based on what you've described, we want to make sure you get the right level of care promptly."

kb.triage-guidelines — check symptom against urgency thresholds and same-day care criteria

Say"Rather than waiting for your scheduled appointment, we recommend you call our clinic directly at the number on file or visit an urgent care center as soon as possible. If this is a life-threatening emergency, please call 911 immediately."

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

Say"What is your preferred pharmacy for prescriptions? Please provide the pharmacy name and location, or confirm the one we have on file."

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

Say"You're all set! Your care team has been notified that your intake is ready for review. See you at your appointment."

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."

Detect
patient response after reminder
  • 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."

Say"No problem — our front desk team will help you complete the remaining information when you arrive. See you on appointment.date!"

Assisted Intake

Say"No problem, patient.firstName. I can help you complete your intake right here via this conversation. Let's go through it together, starting with confirming your identity."

→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."

Say"I'm connecting you with a member of our care team right away. If you are experiencing a medical emergency, please call 911 immediately or go to your nearest emergency room."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Outage Report & Status Check

TelecomSupportOutageNetwork

Inbound Contact

Say"Thank you for reaching out to support. I'm here to help with any service issues you're experiencing. To get started, can I have your account number or the phone number registered to your account?"
  • 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

Say"Thanks, customer.name. I can see your account. Can you briefly describe what you're experiencing — for example, no signal, slow data, or a complete outage? And is this affecting one device or multiple?"
Detect
customer intent and severity of issue
  • 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

Say"I can confirm there is a known outage affecting your area. Our network team is actively working on it. The estimated restoration time is outage.estimatedRestoration. Your incident reference number is outage.incidentId."
  • 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

Say"Would you like me to send you automatic updates on this outage via SMS or email as soon as the service is restored?"
  • 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

Say"I don't see any active outages on record for your area at the moment. Let's try a few quick troubleshooting steps to see if we can restore your service."

kb.telecom-troubleshooting-guide — retrieve steps appropriate for customer.serviceType and customer.symptoms

Say"Can you try restarting your device and checking whether your SIM or cable connections are secure? Let me know once you've tried that and whether service has returned."
Detect
outcome of troubleshooting attempt
  • 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

Say"I've created a trouble ticket for your account. Your reference number is ticket.referenceNumber. A technician will follow up with you. Would you prefer contact via SMS or email?"
  • 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

Say"I'm not able to access account details without verifying your identity, but I can share general outage information. You can check our public outage map at our website or call back with your account details and we can look into your specific situation."

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

Say"There is a known service disruption in some areas that our team is actively working to resolve. For a personalized update and a reference number tied to your account, please call back or verify your identity when you're ready."
  • Customer wants to try verification again →identity-verification
  • Customer acknowledges and ends contact →resolution-confirmed

Public No Outage

Say"We don't currently show any widespread outages in our system. For account-specific diagnostics, please contact us with your account number or registered phone number so we can investigate further."
  • 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

Say"I'm sorry — our outage system isn't responding right now. I've flagged this with our network operations team and arranged for a callback to your registered number as soon as possible. I apologize for the inconvenience."

Escalation — Specialist

Ticketing.EscalateTicket for ticket.id to senior support queue

CRM.LogInteraction with escalation reason and customer.accountNumber

Say"I understand this has been frustrating and I want to make sure you get the right help. I'm escalating your case to a senior specialist who will be in touch with you shortly. Your reference number remains ticket.referenceNumber."

Escalation — Safety

CRM.LogInteraction flagged safety_risk with customer.accountNumber and customer.symptoms

NOCDashboard.RaiseSafetyFlag with customer.serviceAddress

Say"Your safety is our top priority. If you need to reach emergency services right now, please try an alternative phone or ask a neighbor. I am escalating your case immediately as a priority incident and our team will contact you as soon as possible."

Resolution Confirmed

Say"Is there anything else I can help you with today?"
  • 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

Say"Thank you for your patience, customer.name. We appreciate you being a valued customer. Don't hesitate to reach out if you experience any further issues. Have a great day."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Order Modification / Cancellation

RetailOrdersCancellationModification

Identity Verification

Say"Hi, thanks for reaching out! I'd be happy to help with your order. To get started, can you please share your order number and the email address or phone number on your account?"

CRM.LookupCustomer using provided email or phone against customer.email or customer.phone

Detect
whether identity can be confirmed from customer's reply
  • 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

Say"No problem — let me try one more way to verify. Can you confirm the billing address or the last four digits of the payment method used for this order?"

CRM.LookupCustomer with alternate verification field

Detect
outcome of second verification attempt
  • Identity confirmed on second attempt confirmed →order-status-check
  • Still unable to verify unverified →identity-failure

Identity Failure

Say"I'm sorry — I wasn't able to verify your identity with the information provided. For your account security, I'm unable to make changes without verification. You're welcome to log in to your account directly and make modifications through self-service, or contact us again once you have your order confirmation email handy."

EmailNotification.Send to customer.email with self-service portal link and instructions

Order Status Check

Say"Got it — let me pull up order order.id for you right now."

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

Say"Great news — your order is still within our modification window. What change would you like to make? For example, I can update items or quantities, change your shipping address, or cancel the order entirely."
Detect
type of modification customer is requesting
  • 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

Say"I can cancel order order.id for you. Just to confirm, you'd like to cancel all items in this order and receive a refund of order.total to your order.paymentMethod. Is that correct?"

kb.order-cancellation-policy — confirm refund eligibility and timeline for order.paymentMethod

Detect
customer confirmation of full cancellation
  • 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

Say"Your order has been successfully cancelled. A refund of refund.amount will be returned to your order.paymentMethod — typically within refund.timeline. You'll receive a confirmation email shortly."

→resolution-complete

Item Modification

Say"Sure, I can help adjust the items on your order. Which item would you like to change, and what would you prefer instead — a different size, colour, quantity, or would you like to remove it entirely?"

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

Say"Unfortunately, the item you've requested isn't currently available. I have a few similar options I can suggest — would you like me to check what's in stock, or would you prefer to remove that item from your order or cancel entirely?"

OrderManagement.GetSimilarItems for item.substitute recommendations

Detect
customer response to alternative options
  • 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

Say"Just a heads-up — removing that item would bring your order total below our free-shipping threshold of order.freeShippingThreshold, which means a shipping fee of order.shippingCost would apply. Would you still like to proceed with the removal, or would you prefer to keep the item or choose an alternative?"
Detect
customer decision after being informed of shipping cost impact
  • 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

Say"Done — I've updated your order. You'll receive a confirmation email with the revised details shortly. Is there anything else you'd like to adjust?"
Detect
whether customer has additional requests
  • Customer has another change to make more_changes →change-intent
  • Customer is satisfied confirmed →resolution-complete

Address Modification

Say"Of course — what is the new shipping address you'd like to use for this order?"

OrderManagement.UpdateShippingAddress for order.id with new order.shippingAddress

EmailNotification.Send to customer.email confirming the address update

Say"Your shipping address has been updated successfully. You'll receive a confirmation email with the new details. Is there anything else I can help you with?"
Detect
whether customer has additional requests
  • Customer has another change more_changes →change-intent
  • Customer is satisfied confirmed →resolution-complete

Order Already Shipped

Say"I'm sorry — it looks like your order has already shipped, so we're unable to make changes or cancel it at this stage. Once your package arrives, you're welcome to initiate a return and we'll process a refund from there. Would you like me to send you the return instructions?"

kb.return-policy — retrieve return window and process details

Detect
customer response
  • 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

Say"I can see your order is currently under a brief security review. I'm going to connect you with a specialist who can look into this further and assist you directly."

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

Say"I want to make sure this is handled properly for you. I'm escalating this to a senior specialist who has the authorization to review and resolve this fully. You'll hear from them very shortly."

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

Say"You're all set! Is there anything else I can help you with today?"

CRM.UpdateCase status: resolved, linked to order.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ sms▣ email

Loyalty Tier / Points Inquiry

TravelHospitalityLoyaltyPointsTier

Identity Verification

Say"Welcome to loyalty support. I can help you with your points balance, tier status, or a points question. Could I please have your membership ID or the email address on your account?"

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

Say"Thank you. For security, could you please confirm your full name and either your date of birth or the phone number on your account?"

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

Say"I wasn't able to match that detail. Let's try one more time — could you confirm your date of birth or the phone number registered to your account?"

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

Say"I've pulled up your account, member.fullName. You're currently a member.currentTier member with member.pointsBalance points available. You have member.pendingPoints points pending and member.expiringPoints points expiring on member.expiryDate."
Detect
intent of customer's follow-up question
  • 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

Say"As a member.currentTier member, you've qualified with member.tierQualifyingNights nights this year. To reach the next tier you'll need member.tierThreshold qualifying nights. Your current tier status is valid through member.tierExpiryDate."
  • 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

Say"Your member.currentTier status includes benefits such as complimentary room upgrades when available, bonus points on stays, and dedicated check-in. Upgrading to the next tier would add additional perks including higher bonus earn rates and lounge access."
  • Customer has further questions follow-up →account-overview
  • Customer is satisfied satisfied →resolution-summary

Tier Goodwill Check

Agent
assess whether a goodwill tier extension or status match is permitted for member.id.
Goal:determine if the shortfall in qualifying nights falls within the policy threshold for a complimentary extension or one-time status courtesy, and apply it if so.
Constraints:never extend tier status if shortfall exceeds the policy ceiling in kb.loyalty-goodwill-policy; never apply more than one goodwill extension per rolling 24-month period per member; always confirm current extension history before acting.
Tools available:LoyaltyPlatform.GetExtensionHistory, LoyaltyPlatform.ApplyGoodwillExtension, kb.loyalty-goodwill-policy
  • 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

Say"As a valued member.currentTier member, I've applied a one-time courtesy extension to your tier status. Your member.currentTier status has been extended through your next qualification anniversary. You'll receive a confirmation to member.email shortly."

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

Say"I can pull up your recent points activity. Do you have a specific stay or booking reference you'd like me to look into, or would you like a general summary of recent transactions?"

LoyaltyPlatform.GetTransactionHistory for member.id

Detect
customer's response
  • 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

Say"Over the past 90 days your account shows earn activity from stays and partner transactions, and any redemptions you've made. I can walk through specific entries if anything looks unfamiliar."
  • Customer spots a discrepancy discrepancy →discrepancy-intake
  • Customer is satisfied with the summary satisfied →resolution-summary

Discrepancy Intake

Say"I'm sorry to hear about that. To look into this properly, could you share the booking or stay reference number and the approximate date of the stay or transaction in question?"

LoyaltyPlatform.GetTransaction using booking.referenceNumber or transaction.id

PropertyManagementSystem.VerifyStay using booking.referenceNumber and member.id

Detect
outcome of transaction lookup
  • 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

Agent
review transaction details against kb.loyalty-earn-rules to determine whether the points shortfall is an eligible auto-correction or requires a manual audit.
Goal:decide if the discrepancy can be corrected immediately using standard earn rules, or must be escalated to a manual audit queue with a follow-up commitment.
Constraints:never apply a points correction above 10,000 points without supervisor approval; always cross-reference the property's posted earn rate before correcting; log every correction attempt in the case management system.
Tools available:LoyaltyPlatform.GetTransactionHistory, LoyaltyPlatform.CalculateExpectedPoints, CaseManagement.CreateCase, kb.loyalty-earn-rules
  • 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

Approval
Slack.RequestApproval to #loyalty-ops-approvals, approver: loyalty_ops_lead
Context sent:member.id, member.fullName, transaction.id, transaction.date, transaction.property, transaction.points, agent's earn-rule assessment
  • 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

Say"Great news — the points adjustment has been approved. Your account will reflect the corrected balance within 24 hours. You'll also receive a confirmation email at member.email."

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

Say"I've flagged this transaction for a manual review by our loyalty team. You'll receive an update at member.email within 5 to 7 business days. Your case reference is case.id — please keep this handy if you follow up."
  • Customer is satisfied with the timeline satisfied →resolution-summary
  • Customer escalates or disputes the timeline frustrated →escalation-loyalty-specialist

Discrepancy Unverified

Say"I wasn't able to locate a matching stay or transaction with the details provided. This sometimes happens with partner properties or if the booking was made under a different profile. I'll open a case so our team can investigate further."

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

Say"Your member.expiringPoints points are set to expire on member.expiryDate, and your member.currentTier tier status is valid through member.tierExpiryDate. Points expiry can often be reset by completing a qualifying stay or partner activity before that date."
Detect
customer's reaction
  • 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

Say"To keep your points active you would need to complete a qualifying earn activity before member.expiryDate. This includes any eligible hotel stay, car rental with a partner, or a purchase through a loyalty-linked partner. Would you like me to send you the full list of qualifying partners?"

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

Agent
assess whether a goodwill points expiry extension is permitted for member.id under current policy.
Goal:determine if the member's expiry situation qualifies for a one-time extension of points or tier, and apply it if within policy authority.
Constraints:never extend points expiry if the member has already received a goodwill extension within the past 12 months; never extend a balance exceeding the ceiling defined in kb.loyalty-goodwill-policy without escalating; always verify activity history before acting.
Tools available:LoyaltyPlatform.GetExtensionHistory, LoyaltyPlatform.ExtendPointsExpiry, kb.loyalty-goodwill-policy, kb.loyalty-expiry-policy
  • 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

Say"I've applied a one-time courtesy extension to your points. Your member.expiringPoints points have been extended and will no longer expire on member.expiryDate. A confirmation will be sent to member.email."

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

Say"I apologize — our loyalty system is currently unavailable and I'm unable to access your account right now. I'll log your inquiry and have a specialist contact you within 4 business hours."

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

Say"I'm sorry, I wasn't able to verify your identity with the details provided. For the security of your account I'm unable to share account information at this time. You can reset your credentials through our member portal or visit a property front desk with a valid photo ID for in-person verification."

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

Say"I want to make sure this is handled properly for you. I'm escalating your case to one of our loyalty specialists who has the authority to resolve this. Your case reference is case.id and you'll hear from the team at member.email within 2 business hours."

Resolution Summary

Say"To recap: your account shows member.pointsBalance available points, member.pendingPoints pending, and your current status is member.currentTier valid through member.tierExpiryDate. Is there anything else I can help you with today?"

CRM.LogInteraction note: inquiry resolved, summary provided to member.id

  • Customer has another question follow-up →account-overview
  • Customer is done satisfied →farewell

Farewell

Say"Thank you for being a valued member.currentTier member. We appreciate your loyalty and look forward to welcoming you on your next stay. Have a wonderful day."

CRM.CloseInteraction for member.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat

Insurance Coverage Check

HealthcareInsuranceCoverage

Patient Intake

Say"Thank you for calling. I'm here to help you check your insurance coverage. To get started, may I have your full name and date of birth?"

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

Say"Thank you, patient.fullName. Can you please provide your insurance carrier name and your member ID? You can find those on the front of your insurance card."

EligibilitySystem.VerifyMember using patient.insuranceCarrier and patient.memberId

Detect
eligibility system response
  • 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

Say"Great, I can see your coverage is active as of coverage.effectiveDate. Now, what service, procedure, or specialist visit would you like me to check? If you have a CPT code from your provider, that will help me look this up quickly."

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

Say"No problem. Can you tell me the name of the provider or facility you are planning to visit, and describe the type of care — for example, a specialist consultation, imaging, lab work, or a surgical procedure?"
  • 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

Detect
network and benefit lookup result
  • 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

Say"Good news — provider.name is in-network under your patient.insuranceCarrier plan. Here are your cost-sharing details for this service."

kb.benefit-tier-definitions — confirm explanation of coverage.tier, copay, and deductible language

Say"Your plan tier for this service is coverage.tier. Your copay is coverage.copay per visit. Your annual deductible is coverage.deductible, and based on your current usage, coverage.deductibleMet has been applied so far."

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

Say"One thing to keep in mind — this service does require a referral from your primary care provider before your visit. Without a referral on file, the claim may not be covered."

kb.referral-process — retrieve steps for obtaining and submitting a referral

Say"To get a referral, please contact your primary care provider's office and ask them to submit a referral for service.type to provider.name. Once the referral is on file with your insurer, you will be all set to schedule your visit."
  • Patient understands and confirms next steps →confirmation-close
  • Patient has questions or disputes the referral requirement →escalation-human

Prior Auth Guidance

Say"I do want to let you know that service.type requires prior authorization from patient.insuranceCarrier before the service can be covered."

kb.prior-auth-process — retrieve steps and typical timelines for prior authorization submission

Say"Prior authorization must be submitted by your ordering provider or facility — not by you directly. They will need to send clinical documentation to patient.insuranceCarrier. The review typically takes 3 to 15 business days. I can log this so your provider's office receives a notification."

PriorAuthTracker.CreateCase using patient.memberId and service.cptCode and provider.name

Say"I've created a prior authorization tracking case, reference number auth.caseId, and your provider can use that to follow up with the insurer."
  • Patient acknowledges and has no further questions →confirmation-close
  • Patient wants to dispute that prior auth is required →escalation-human

Out-of-Network Options

Say"I checked the provider directory and provider.name is currently out-of-network for your patient.insuranceCarrier plan. Let me explain your options."

kb.out-of-network-benefits — look up whether the plan includes out-of-network benefit coverage and applicable cost-sharing

Detect
out-of-network benefit availability
  • 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

Say"Your plan does have out-of-network benefits, though your cost-sharing will be higher than in-network. Typically, out-of-network services are subject to a separate deductible and a higher coinsurance percentage. I recommend contacting patient.insuranceCarrier directly to get the exact figures before your appointment."
  • 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

Say"I can help you find an in-network provider for service.type. Let me search the provider directory."

ProviderDirectory.FindInNetworkProviders using service.type and patient.insuranceCarrier

Say"Based on your plan and location, here are some in-network providers who offer the same type of care. I can share their names and contact information so you can schedule directly."
  • 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

Say"I checked your insurance information and unfortunately your coverage with patient.insuranceCarrier does not appear to be active at this time. This could be due to a lapse in premium payment, an open enrollment issue, or an employer benefits change."

kb.enrollment-support — retrieve guidance on coverage reinstatement and insurer contact process

Say"I would recommend contacting patient.insuranceCarrier directly using the member services number on your insurance card to resolve the enrollment status. Once your coverage is reinstated, we would be happy to complete this coverage check for you."
  • Patient wants to escalate or believes coverage should be active →escalation-human
  • Patient understands and will contact insurer →confirmation-close

System Error

Say"I apologize — I'm running into a technical issue retrieving your eligibility information from our system right now. This can happen occasionally when there is a delay syncing with the insurer's records."
Say"I have a couple of options for you: I can try reaching the payer portal directly, or I can arrange a callback once our team resolves the issue. Which would you prefer?"

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

Say"To summarize what we covered today: your patient.insuranceCarrier coverage is active as of coverage.effectiveDate, service.type with provider.name is confirmed coverage.tier, and your cost-sharing is coverage.copay copay with coverage.deductible deductible, of which coverage.deductibleMet has been met."
Say"Is there anything else you would like me to check, or do you have any other questions about your benefits?"

CRM.LogInteraction with coverage check summary, patient.memberId, service.cptCode, and outcome

Detect
patient response
  • 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

Say"You're all set. If you have any other questions about your coverage before your appointment, don't hesitate to reach out. Take care, patient.fullName."

CRM.CloseInteraction with resolved status and patient.memberId

Escalation to Specialist

Say"I want to make sure you get the most accurate help possible. I'm going to connect you with one of our coverage specialists who can review this in more detail and, if needed, coordinate directly with patient.insuranceCarrier on your behalf."

CRM.CreateCase priority: high, tagged coverage-escalation, linked to patient.memberId and service.cptCode

CRM.LogInteraction with escalation reason and full session context

Say"I've created a case for you and a specialist will be with you shortly. Your reference number is auth.caseId. Thank you for your patience."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ Telecom

TelecomFAQSupport

Intake

Say"Hi, thanks for reaching out to support! I'm here to help. What's your question today?"
Detect
intent category on question.raw
  • 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

Say"I hear you — that sounds frustrating, and I want to make sure we get this sorted for you properly. Let me help you with that now."
Detect
whether the underlying topic is account-specific or general
  • 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

Say"To pull up your account details, I'll need to verify your identity first. Could you please provide your account number or the phone number registered to your account?"

IdentityVerification.RequestAccountLookup using customer.accountNumber or customer.phone

Say"Thanks — and can you confirm your name and either your account PIN or the last 4 digits of your SSN?"

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

Say"I wasn't able to verify your identity, so I'm not able to access your specific account details right now. I can still share general information about our plans and policies, which may help. For anything account-specific, you're welcome to log in through the app or visit a store with a valid ID."

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

Say"Got it — I can see your account. Let me look into that for you now."

→account-specific-answer

Account-Specific Answer

Agent
answer question.raw using customer.currentPlan, customer.serviceType, and account profile from CRM alongside kb.faq-content.
Goal:deliver a precise, complete answer to the customer's question based on their actual account data and relevant policy, minimising back-and-forth.
Constraints:never disclose account credentials or full SSN; never make plan changes or billing adjustments without transferring to the appropriate change playbook; do not promise credits or refunds — route those to the billing escalation path.
Tools available:CRM.GetAccountProfile, AccountManagement.GetCurrentPlan, AccountManagement.GetBillingHistory, kb.faq-content, kb.general-plans-policy
  • 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

Say"Great question — let me find that for you."
Agent
compose a clear, plain-language answer to question.raw using kb.faq-content and kb.general-plans-policy.
Goal:give the customer a complete, accurate answer that does not require a follow-up, using only publicly available information.
Constraints:do not reference or imply any account-specific data; do not promise promotional offers not listed in kb.general-plans-policy; do not make commitments about network coverage beyond published service maps.
Tools available:kb.faq-content, kb.general-plans-policy
  • 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

Say"That's a great question, and I want to make sure you get an accurate answer — this one falls outside what I can confirm directly. I'd rather connect you with someone who has the full picture than give you incomplete information."
  • 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

Say"I'm going to connect you with a specialist who can give you a definitive answer on this. One moment please."

Escalation — Billing

CRM.CreateCase tagged billing-dispute, priority: high, linked to customer.accountNumber

Say"It sounds like there may be a billing issue here — let me get you over to our billing team who can review the details and take action on your account."

Escalation — Technical Issue

CRM.CreateCase tagged technical-issue, linked to customer.accountNumber, notes include customer.serviceType

Say"This sounds like it needs a technical look — I'm routing you to our technical support team now so they can diagnose and fix this properly."

Escalation — Plan Change

Say"I can absolutely help you explore a plan change. Let me transfer you to the right flow to walk through your options and make that update."

→plan-change-telecom

Escalation — Complaint

CRM.CreateCase tagged formal-complaint, priority: high, linked to customer.accountNumber, notes include question.raw

Say"I want to make sure your concern is properly recorded and handled. I'm escalating this to our customer relations team who will follow up with you directly."

Resolution

Say"Is there anything else I can help you with today?"
Detect
whether the customer has a follow-up question
  • Customer has another question follow-up →intake
  • Customer confirms they are done confirmed →close

Close

Say"Wonderful — glad I could help. Thanks for reaching out, and don't hesitate to contact us if anything else comes up. Have a great day!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ Insurance

InsuranceFAQSupportBillingClaims

Inbound Greeting

Say"Thank you for reaching out to insurance support. I'm here to help you with any questions about your policy, coverage, billing, or claims. May I start with your name and policy number?"
  • 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

Say"I'd be happy to help with that. To make sure I give you the most accurate information for your specific policy, could you please share your name and policy number first?"
  • 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

Detect
customer.policyStatus from policy record
  • Policy is active →topic-detection
  • Policy is lapsed →lapsed-policy-notice
  • Policy record not found →escalation-human

Topic Detection

Say"Thanks, customer.name — I've pulled up your customer.productType policy. What can I help you with today?"
Detect
intent on customer's question
  • 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

Say"Your customer.productType policy covers the benefits outlined when you enrolled. I'll walk you through the key points now."

PolicyAdmin.GetCoverageDetails for customer.policyNumber

Say"Here's what your current plan includes: the specifics depend on your selected tier, deductibles, and any riders attached to your policy. I can see the details on your account and share them with you now. Is there a particular benefit or service you'd like me to focus on?"
  • 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

Say"Based on your policy, here is what applies to your question about question.topic. Please keep in mind that individual circumstances may affect how a benefit is applied — your policy documents are always the authoritative reference."
  • 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

Say"Your next payment is due on customer.paymentDueDate. You can pay online through the member portal, by phone, or by mailing a check. Would you like details on how to update your payment method or set up autopay?"
  • 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

Say"To file a claim on your customer.productType policy, here are the steps: First, gather documentation related to your loss or event. Second, visit the claims portal or call our claims line directly. Third, submit your completed claim form along with any supporting documents. You'll receive a confirmation number and a timeline for review. Would you like me to send you the direct link or phone number for the claims team?"
  • 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

Say"I can help with that. Policy documents, ID cards, and proof of insurance can be accessed through your online member portal. I can also send a copy directly to your email on file. Would you like me to send those to customer.email now?"
  • 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

Say"I can walk you through your options regarding your policy. Changes like cancellation or reinstatement may have timing requirements and potential impacts on your coverage. What specifically would you like to know — are you looking to cancel, reinstate, or make a change to your current policy?"
  • 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

Say"Reinstatement may be available depending on how long your policy has been lapsed and your payment history. I can share the general requirements with you, and if you'd like to move forward, a specialist can initiate the process. Would that be helpful?"
  • 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

Say"It looks like you have a question about a claim that may already be in progress. Let me connect you to the right workflow so you get the most up-to-date status on that."

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

Say"I can see that your policy is currently lapsed. I'm happy to answer your question, but please be aware that coverage may not be active. I'll also share some reinstatement options with you at the end if you'd like."

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

Detect
intent on customer's question
  • 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

Say"I wasn't able to verify your identity, so I'm only able to share general information and won't be able to access any account-specific details. I'm still happy to help with general questions about how our policies work."

kb.public-faq — retrieve general public-facing insurance information

Detect
intent on customer's question
  • 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

Say"In general, our insurance policies cover the benefits selected at enrollment, subject to your plan's deductibles, limits, and exclusions. For the specifics of any individual policy, the policyholder would need to log in to the member portal or call us with their policy number handy."
  • 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

Say"Payments can generally be made through our online member portal, by phone, or by mail. Payment due dates are set at enrollment and shown on your billing statement. For your specific due date or payment history, you would need to log in or call with your policy number."
  • 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

Say"I want to make sure I point you to the right information. Could you tell me a little more about what you're looking for? For example, are you asking about what your plan covers, your payment, how to file a claim, or something else?"
Detect
intent on customer's clarified response
  • 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

Say"I'm going to connect you with one of our specialists who will be able to help you further with this. Please hold for just a moment — they'll have the context of our conversation so you won't need to repeat yourself."

Resolution

Say"I'm glad I could help with that. Is there anything else I can assist you with today?"

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

Say"Thank you for contacting insurance support, customer.name. Have a great day, and don't hesitate to reach out if you need anything else."

CRM.CloseInteraction linked to customer.policyNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ — Travel & Hospitality

TravelHospitalityFAQSupport

Inbound Question

Say"Hi there, thanks for reaching out to us! I'm here to help. What question can I answer for you today?"

CRM.LookupCustomer by customer.phone or customer.email

Detect
intent on customer's opening message
  • 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

Say"I want to make sure I give you the most accurate answer. Could you tell me a bit more about what you're looking for? For example, is this about a reservation you already have, or are you planning a future trip?"
Detect
sentiment and intent on customer reply
  • 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

Say"I can pull up our cancellation policy for you. Are you asking about an existing reservation, or planning ahead for a new booking?"
  • Customer references an existing reservation →clarify-property
  • Customer is asking prospectively →retrieve-general-faq

Clarify Property

Say"Policies and features can vary by property. Could you let me know which hotel or location you're asking about, or share your reservation details if you have them handy?"

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

Agent
retrieve and synthesise the relevant policy or amenity detail for property.name based on the customer's question and customer.loyaltyTier.
Goal:deliver a single, clear, accurate answer tailored to the identified property and the customer's membership tier where benefits differ.
Constraints:never invent or extrapolate policy details not present in kb.property-policies; always note if a policy differs for loyalty tiers above or below customer.loyaltyTier; flag date-sensitive policies that apply specifically within reservation.checkIn to reservation.checkOut window.
Tools available:kb.property-policies, PMS.GetPropertyDetails, LoyaltyPlatform.GetTierBenefits
  • 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

Agent
retrieve and synthesise the best available general answer from the knowledge base for the customer's question.
Goal:give the customer a clear, concise answer based on standard brand-wide policy when a specific property is not yet identified.
Constraints:never present a general policy as property-specific; if the answer is known to vary by location, always flag that and offer to look up the specific property; do not fabricate information absent from kb.general-faq.
Tools available:kb.general-faq, kb.property-policies, CRM.GetCustomerProfile
  • 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

Say"Let me check your loyalty tier details right away."

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

Say"Travel requirements such as visa rules and health documentation can change quickly. Let me share what we have on file, though I'll also point you to the official sources for the most current information."
Agent
retrieve known entry, visa, and health requirements for property.location valid around reservation.checkIn.
Goal:give the customer a useful starting summary while making clear these details are time-sensitive and subject to change.
Constraints:always append a disclaimer that official government and airline sources must be consulted for final confirmation; never confirm whether a customer personally meets a visa or health requirement; do not provide medical advice.
Tools available:kb.travel-entry-requirements, kb.general-faq
  • 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

Say"Great news — here's what I found for you: question.raw"
Say"Is there anything else about your trip or reservation I can help with?"
Detect
sentiment and follow-up intent on customer reply
  • 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

Say"Here's the information I have, though please note this may vary depending on specific dates, rate types, or your membership level — I'll flag those nuances for you."
Say"For travel regulations or health requirements, I strongly recommend also checking the official government or airline websites to confirm the latest rules before you travel."
Detect
sentiment and follow-up intent on customer reply
  • 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

Say"I want to be upfront with you — I don't have enough detail on hand to give you a fully accurate answer on that specific point, and I'd rather connect you with someone who does than risk giving you incomplete information."
Say"I can transfer you to one of our specialists who will be able to help. Would that work for you?"

CRM.LogInteraction note: unanswered FAQ topic, question.raw, property.name

Detect
customer preference on transfer
  • 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

Say"I'm going to connect you with one of our specialists right now — they'll have full context on your question so you won't need to repeat yourself."
Say"Thank you for your patience, customer.name. A specialist will be with you shortly."

Resolution

Say"Wonderful — I'm glad I could help! If you ever have more questions before or during your trip, don't hesitate to reach out. Have a great journey!"

CRM.LogInteraction note: FAQ resolved, topic.category, property.name, customer.loyaltyTier

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ sms▣ chat

Fraud Alert Follow-up

Financial ServicesFraudSupport

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

Say"Hello, this is your Financial Services support agent reaching out about a recent alert on your account ending in card.last4. For your security, I need to verify your identity before we continue."
Say"Can you please confirm your full name, date of birth, and either your PIN or the answer to your security question on file?"

IdentityVerification.VerifyCustomer using customer.name, customer.dob, and customer.pin or customer.securityAnswer.

Detect
verification outcome from IdentityVerification.VerifyCustomer result
  • 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

Say"No problem — let's try a different credential. Could you confirm your date of birth and the answer to your security question instead?"

IdentityVerification.VerifyCustomer retry with alternate credentials.

Detect
verification outcome on retry
  • Identity verified on retry confirmed →transaction-confirmation
  • Identity still cannot be verified failed →verification-failure

Verification Failure

Say"I'm sorry, but I'm unable to verify your identity at this time, so I'm not able to share any account details for your security. Please visit your nearest branch with a valid photo ID, or call us back once you have your credentials available."

CRM.LogInteraction tagged verification-failure, linked to account.id, noting no transaction details were disclosed.

Transaction Confirmation

Say"Thank you, customer.name — your identity is confirmed. We flagged a transaction on your account ending in card.last4: a charge of transaction.amount at transaction.merchant on transaction.datetime. Do you recognize this transaction?"
  • 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

Say"Completely understandable — let me give you a moment. The charge was transaction.amount at transaction.merchant, dated transaction.datetime. Does that help you recall whether this was you?"

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

Say"I'm sorry to hear that. I'm going to take immediate steps to secure your account. First, let me block your current card ending in card.last4 to prevent any further unauthorized use."

CardManagement.BlockCard for card.last4.

CRM.UpdateCase flagged as fraud-reported, linked to account.id and transaction.id.

Say"Your card has been blocked. Before I open a formal dispute, I also want to check — are there any other recent transactions on your account that you don't recognize?"
Detect
customer response regarding additional unrecognized transactions
  • 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

Say"Thank you for letting me know — this is very important. I'm escalating your case immediately for a full account review. A specialist will contact you shortly, and your account will be secured while the review is underway."

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.

Say"I've opened a dispute for the charge of transaction.amount at transaction.merchant. Your dispute reference number is dispute.caseId. Our team will investigate and you'll receive an update within 5 to 7 business days."

→replacement-card

Replacement Card

Say"I'll now arrange a replacement card for you. Can you confirm your current mailing address so we can get that sent out?"

CardManagement.IssueReplacementCard for card.last4, ship to replacement.deliveryAddress.

Approval
Slack.RequestApproval to #fraud-ops-approvals, approver: fraud_ops_lead
Context sent:account.id, transaction.id, transaction.amount, dispute.caseId, card block confirmed, replacement card address
  • 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.

Say"Your replacement card will arrive within 5 to 7 business days. Your dispute is filed under reference dispute.caseId, and your account is now secured. Is there anything else I can help you with today?"
  • 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.

Say"I apologize — I'm experiencing a technical issue and I'm unable to retrieve the transaction details at this moment. I've flagged this for our team to review manually. Please call us back in a short while or visit your nearest branch, and we'll have this sorted for you as quickly as possible."

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.

Say"I'm connecting you now with a fraud specialist who has full visibility into your account and can take immediate action. Please hold for just a moment — you're in good hands."

Resolution — Clear

CoreBanking.ClearFraudAlert on transaction.id.

CRM.LogInteraction tagged alert-cleared-customer-confirmed, linked to account.id.

Say"Great — I've cleared the alert on that transaction and your account remains fully active with no further action needed. Thank you for confirming, customer.name. If you ever spot anything unfamiliar, don't hesitate to reach out. Have a great day."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Dispute Escalation to Human Agent

Financial ServicesDisputesEscalationSupport

Dispute Intake

Say"Thank you for reaching out. I'm here to help you with your dispute. Could you please share your full name and account number so I can pull up your account?"
  • 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

Say"For your security, I need to verify your identity before we proceed. I'll ask you a few quick questions."

IdentityVerification.Verify against customer.accountNumber — check security questions, date of birth, and registered contact details.

Detect
identity verification outcome
  • 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

Say"I'm sorry — I wasn't able to verify your identity through this channel. For your security, I'm unable to proceed with the dispute without verification."
Say"You can resolve this by logging into your secure online account, visiting your nearest branch with a government-issued ID, or calling back with your security details ready."

CRM.LogAttempt tag: identity-verification-failed, linked to customer.accountNumber

Account and Dispute Lookup

CoreBanking.GetAccountDetails for customer.accountNumber

CoreBanking.GetTransactionHistory for customer.accountNumber

Say"Thank you, customer.fullName. I can see your account. Can you tell me the date, amount, and any reference ID or merchant name for the charge or decision you'd like to dispute, and the reason for the dispute?"
  • 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.

Agent
assess dispute eligibility using transaction.date, transaction.amount, dispute.reason, and kb.dispute-eligibility-policy.
Goal:determine whether the dispute is within the allowable window and falls under a qualifying dispute category before logging a formal case.
Constraints:never log a formal dispute for transactions outside the eligible window without supervisor approval; never waive policy without flagging for human review; always document ineligible attempts in the CRM.
Tools available:CoreBanking.GetTransactionHistory, kb.dispute-eligibility-policy, CRM.LogAttempt
  • 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

Say"I've reviewed your account and I want to be transparent with you — based on our policy, this dispute falls outside the eligible timeframe of dispute.windowDays days, or doesn't meet the qualifying criteria for a formal dispute."
Say"I've documented your concern and today's contact in your account record. If you believe there are exceptional circumstances, I can escalate this to a specialist for a secondary review."

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

Say"It sounds like you may already have an open dispute with us. Let me pull that up — could you share your prior case or reference number?"

CaseManagement.GetCase by dispute.priorCaseNumber or customer.accountNumber

Detect
case lookup outcome
  • 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

Say"I found your existing case — case number case.id, currently with a status of case.status. Let me update it with the new information you've shared today."

CaseManagement.UpdateCase on case.id with new dispute.reason and today's contact timestamp

CRM.LogInteraction linked to case.id, tag: customer-follow-up

Say"I've added your update to the case. A specialist will review the new information and you'll receive a follow-up via customer.preferredContact within the timeframe we originally communicated."
  • 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

Say"Everything looks good. I'm going to formally log your dispute now. This covers the charge of transaction.amount on transaction.date at transaction.merchant, reference ID transaction.referenceId, with reason: dispute.reason. Does that sound correct?"
  • 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

Say"Your dispute has been formally logged and assigned case number case.id. Here's what happens next — our disputes team will review the details within 3 to 5 business days and you'll receive a status update via customer.preferredContact."

→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.

Say"I've sent a confirmation with your case number and next steps to your email and phone on file. Is there anything else I can help you with today?"
  • 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

Say"I completely understand, and I want to make sure you get the right support. I'm escalating this to a specialist right now who can handle this directly."

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

Approval
Slack.RequestApproval to #disputes-escalation-queue, approver: disputes_team_lead
Context sent:customer.fullName, customer.accountNumber, case.id, transaction.amount, transaction.referenceId, dispute.reason, escalation trigger summary
  • Specialist accepts and takes over approved →escalation-handoff-complete
  • No response within 10 min timeout →escalation-handoff-complete

Escalation Handoff Complete

Say"A disputes specialist has been notified and will be in touch with you via customer.preferredContact shortly. Your case reference is case.id — please keep that handy. We're sorry for the difficulty and we'll make sure this is resolved for you."

Twilio.SendSMS to customer.phone: "You've been connected with a disputes specialist. Reference: case.id. Expect contact via customer.preferredContact shortly."

Resolution / Closed

Say"I'm glad we could assist you today. Your case reference is case.id — don't hesitate to reach out if you have any further questions. Take care."

CRM.LogInteraction tag: interaction-complete, linked to case.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ email▣ voice

Damaged / Wrong Item Received

RetailSupportReturnsRefunds

Intake & Verify

Say"Hi, I'm sorry to hear about this — let's get it sorted for you right away. Can I start with your order number? If you don't have it handy, your account email or phone number works too."
  • 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

Say"I've pulled up your order. Can you tell me what happened — was the item damaged when it arrived, or did you receive the wrong item?"
  • 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

Say"Thank you — I've noted the issue with your item.description. To make sure we handle this correctly, I'd like to check your eligibility under our returns and replacements policy."

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

Say"Our policy asks for a photo of the damaged or incorrect item to process this quickly. Could you upload or send a photo? You can reply directly in this chat, email it back, or I can send you a secure upload link."

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

Agent
assess whether a goodwill exception is appropriate given order.value, customer.email history, and kb.returns-replacement-policy goodwill tier rules.
Goal:decide whether to waive the photo requirement and proceed with a replacement or refund without evidence, or escalate for human approval.
Constraints:never approve a goodwill waiver if order.value exceeds policy.autoApprovalThreshold; never grant more than one goodwill exception per customer account within 90 days; always log the exception reason in case.id.
Tools available:CRM.GetCustomerHistory, Policy.CheckGoodwillEligibility, kb.returns-replacement-policy
  • Goodwill waiver approved within constraints goodwill_approved →resolution-offer
  • Goodwill waiver outside constraints or repeat exception needs_review →escalation-human

Resolution Offer

Say"Great news — you're eligible for a resolution. Would you prefer a full replacement sent to your address on file, or a refund back to your original payment method? Either option works for us."
  • Customer prefers replacement →initiate-replacement
  • Customer prefers refund →initiate-refund
  • Customer is unsure, asks for more information →explain-resolution-options

Explain Resolution Options

Say"A replacement means we'll ship out a new item.description — delivery typically takes 3 to 5 business days. A refund returns the full amount to your original payment method within 5 to 7 business days. Which would you like to go with?"

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

Say"Done — your replacement item.description is on its way. You'll receive a confirmation with tracking shortly. Your confirmation number is resolution.confirmationNumber. Is there anything else I can help with?"

→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

Say"Your refund has been initiated and should appear within 5 to 7 business days. Your confirmation number is resolution.confirmationNumber. I'm sorry again for the trouble — is there anything else I can help with?"

→close-case

Outside Return Window

Say"I can see your order is outside our standard policy.replacementWindowDays-day return window, which means I'm not able to process a standard replacement or refund automatically. I want to make sure you're looked after, so let me check what options are available."

kb.returns-replacement-policy — check partial goodwill resolution eligibility for out-of-window orders

Approval
Slack.RequestApproval to #retail-support-escalations, approver: support_team_lead
Context sent:order.id, order.value, order.deliveryDate, item.issue, customer.email, policy window exceeded
  • 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

Say"I've been able to arrange a goodwill credit for your order — you'll receive a confirmation shortly with the details and your reference number resolution.confirmationNumber. I'm sorry we couldn't do a full replacement or refund on this occasion. Is there anything else I can help with?"

→close-case

Policy Decline

Say"I'm sorry — I've looked into every option available to me and your order falls outside the window where I'm able to process a replacement, refund, or goodwill credit. I completely understand that's disappointing, and I'm sorry I can't do more today. If you believe there's been an error, I can connect you with a specialist who may be able to help further."
  • Customer accepts the outcome →close-case
  • Customer wants to escalate or disputes the outcome →escalation-human

Delivery Unclear

ShippingCarrier.GetTrackingStatus for order.id

Say"It looks like your order may still be in transit or the delivery status hasn't updated yet. Let me check the latest tracking details for you."
  • 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

Say"I'm running into a system issue that's preventing me from pulling up your order details right now. I've flagged this for our team and you'll receive a callback within 24 hours to get this sorted. I'm really sorry for the inconvenience — can I confirm the best number to reach you?"
  • Customer confirms callback number CRM.UpdateCaseContactDetails →close-case
  • Customer prefers email follow-up Twilio.SendNotification confirmation to customer.email →close-case

Identity Unverifiable

Say"I want to help, but I'm not able to locate an order without at least an order number, email address, or phone number linked to the account. Could you check your confirmation email or the app for any of those details?"
  • 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

Say"I'm going to connect you with one of our senior support specialists who has the tools to handle this for you directly. I've shared all the details we've discussed so you won't need to repeat yourself. Thank you for your patience — someone will be with you shortly."

Close Case

CRM.CloseCase for case.id, log resolution type and resolution.confirmationNumber

Say"Thanks for reaching out, and I'm sorry again for the experience with your order. If you ever need anything else, we're here. Take care!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ email▣ sms

Complaint Escalation Stay/Trip Issue

TravelHospitalityComplaintsEscalation

Intake & Verification

Say"Thank you for reaching out. I'm sorry to hear you experienced an issue — I want to make sure we get this resolved for you. Could you please share your booking or reservation ID along with the property name and dates of your stay?"

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

Say"Thank you, customer.name — I can see your stay at booking.propertyName from booking.checkIn to booking.checkOut. I'm sorry things didn't go as expected. Could you walk me through what happened so I can fully understand the situation?"

LoyaltyPlatform.GetProfile by customer.loyaltyNumber

Detect
sentiment and escalation signals in customer description
  • 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

Say"I completely understand how frustrating this must have been, and I sincerely apologize for the experience you had. Your feedback matters enormously to us, and I am personally going to make sure this is handled properly. Please take your time."
Detect
whether customer de-escalates after empathy response
  • 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

Agent
evaluate the appropriate remedy for complaint.nature and complaint.details against booking.id history and kb.complaint-resolution-policy.
Goal:determine whether to offer a full refund, partial refund, loyalty credit, apology voucher, or formal complaint documentation, and at what value.
Constraints:never authorize a refund or credit above USD 500 without human approval; never promise compensation before verifying the stay record; always document every remedy offer in the case management system regardless of outcome.
Tools available:PropertyManagementSystem.GetReservationDetails, LoyaltyPlatform.GetProfile, RefundBillingSystem.CheckEligibility, kb.complaint-resolution-policy
  • 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

Say"Based on what you've described and your reservation details, I'd like to offer you remedy.type valued at remedy.value as a remedy for your experience. Does that sound acceptable to you?"
Detect
customer response to proposed remedy
  • 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

Say"I've processed your remedy.type — you should see it reflected within 3 to 5 business days. I've also created case case.id as a record of this interaction. Is there anything else I can help you with today?"
  • Customer confirms receipt and has no further issues →resolution-close
  • Customer raises an additional complaint →complaint-capture

Escalation Review

Approval
Slack.RequestApproval to #hospitality-resolutions, approver: resolutions_manager
Context sent:booking.id, booking.propertyName, booking.checkIn, booking.checkOut, complaint.nature, complaint.details, customer.desiredResolution, remedy.type, remedy.value, customer.loyaltyNumber
  • Approved approved →process-remedy
  • Rejected rejected →remedy-final-offer
  • No response in 60 min →escalation-human

Remedy Final Offer

Say"I've reviewed your case with our resolutions team. While we aren't able to meet the full amount requested, we'd like to offer remedy.type at remedy.value as our best available resolution. I understand this may not be everything you hoped for, and I want to sincerely apologize again for the inconvenience."
Detect
customer response to final offer
  • Customer accepts confirmed →process-remedy
  • Customer declines and wishes to escalate further dissatisfied →escalation-human

OTA Redirect

Say"I can see that your booking was made through a third-party platform, which means the payment and refund for your reservation are managed on their end. Unfortunately I'm not able to process a direct refund from our side, but I want to make sure you're not left without support."

CaseManagement.CreateCase tagged ota-redirect, linked to booking.id

OTAPartnerPortal.InitiateDisputeReferral for booking.id with complaint.nature and complaint.details

Say"I've created an internal record of your complaint as case case.id, and I've flagged the issue with the booking platform on your behalf. I'd recommend also contacting them directly to request the refund. Can I help you with anything else, or provide any documentation to support your claim?"
  • Customer is satisfied with the redirect guidance →resolution-close
  • Customer is unsatisfied and escalates frustration frustrated →escalation-human

Out-of-Scope / Partial Remedy

Say"I've reviewed your reservation details and I want to be transparent with you — based on our policy, this type of complaint typically needs to be raised within a specific window after checkout, and we're slightly outside that timeframe. I'm sorry for any confusion around that."

kb.complaint-resolution-policy — identify any goodwill or partial remedy options available outside the standard window

Say"While I'm not able to process a full remedy in this case, I do want to acknowledge the experience you had. I can offer remedy.type as a goodwill gesture, and I'll make sure your feedback is formally documented."

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

Say"I wasn't able to locate a reservation with those details in our system right now — that can sometimes happen if the booking is very recent or was made under a different contact. No worries; let me gather your information manually so we can investigate and follow up with you."

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

Say"I've created a pending case reference for you — case.id. Our team will investigate and reach out to you at customer.email within 2 business days. I'm sorry we couldn't resolve this immediately."
  • 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

Say"I completely understand, and I want to make sure you're speaking with someone who has the full authority to address this. I'm escalating your case to our senior resolutions team right now — you'll be connected with a specialist shortly. Your case reference is case.id."

Case Documentation & Follow-up

Say"Of course — I'll document everything we've discussed and make sure your case is ready whenever you'd like to proceed. Your case reference is case.id, and you can reach us at any time to continue."

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

Say"I'm glad we were able to work through this together. Your experience has been documented as case case.id, and we truly value your feedback — it helps us improve. We hope to welcome you back and provide the experience you deserve. Is there anything else I can help you with today?"

CaseManagement.CloseCase for case.id with resolution status

CRM.UpdateCustomerRecord with resolved status and remedy applied

LoyaltyPlatform.LogInteraction for customer.loyaltyNumber tagged complaint-resolved

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ email

Complaint Escalation — Insurance

InsuranceComplaintsEscalationRegulatory

Intake and Greeting

Say"Thank you for contacting us. I understand you'd like to raise a concern today — I'm here to help and I want to make sure we handle this properly for you. May I start with your full name and policy number?"
Detect
sentiment and distress level on customer's opening statement
  • 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

Say"I can hear how frustrated you are, and I want you to know your complaint is being taken very seriously. I'd like to take the time to properly understand everything that's happened. You have my full attention."
  • 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

Say"I want to make sure we treat this with the urgency it deserves. I'm flagging this right now as a priority complaint. A senior handler will be involved in the resolution of this case."
  • Continue to identity verification →identity-verification

Identity Verification

Say"Before I log your complaint and access your policy details, I need to verify your identity. Could you please confirm your date of birth and the postcode associated with your policy?"

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

Say"Thank you for confirming your details. I'd now like to understand your complaint fully. Please take as much time as you need — could you walk me through what happened, including when it occurred and any reference numbers you may have for an existing claim or case?"

PolicyAdministrationSystem.GetRecord for policy.number

CRM.GetCustomerProfile for policy.holderId

CaseManagement.SearchExistingCases using policy.number and claim.referenceNumber

Detect
whether an existing open case matches the incoming complaint
  • 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

Say"I can see from your record that you may benefit from some additional support. I want to make sure we handle your complaint in the way that works best for you. Would you prefer we follow up by phone, email, or letter — and is there anything I can do right now to make this process easier for you?"

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

Agent
classify the complaint using complaint.description and complaint.category against kb.complaint-category-taxonomy.
Goal:determine the correct complaint category (claim handling, policy administration, customer service, billing, regulatory) and assess whether a priority or legal flag should be applied.
Constraints:never dismiss or downgrade a complaint that contains keywords indicating legal threat, vulnerability, or regulatory referral; always apply the most protective classification when ambiguous.
Tools available:ComplaintsManagementSystem.GetCategoryList, kb.complaint-category-taxonomy, kb.regulatory-response-timeframes
  • 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

Say"I can see we already have an open case reference case.existingId related to this matter. Rather than creating a new complaint, I'll update that existing record with everything you've told me today so nothing is lost."

CaseManagement.UpdateCase on case.existingId with complaint.description and complaint.date

CRM.AddInteractionNote for policy.holderId with summary of call and updated complaint details

Say"I've updated your existing case case.existingId with today's information. You'll receive a follow-up via your preferred contact method, and you can reference that case number at any time."
  • 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

Say"I've formally logged your complaint and your reference number is complaint.referenceNumber. Please keep this safe — you can use it to check on the status of your complaint at any time."

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

Say"Under our regulatory obligations, you'll receive a written acknowledgment within 5 business days. We aim to resolve your complaint fully within 8 weeks. If we're unable to do so, we'll write to you explaining why and advising you of your right to refer your complaint to the Financial Ombudsman Service."
Say"We'll be in touch via customer.preferredContact. Is there anything else you'd like to add before we close today's call?"
  • 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

Say"I completely understand — I want to make sure your complaint is still recorded even if we're unable to verify your identity right now. I'll log this as an unverified complaint. Once we're able to verify your identity at a later stage, we can link it to your policy record."

ComplaintsManagementSystem.CreateUnverifiedComplaint with complaint.description, complaint.date, and a note that identity verification is pending

CRM.AddUnverifiedInteractionNote with complaint.description

Say"Your complaint has been logged with reference number complaint.referenceNumber. To progress this further and link it to your policy, please contact us again with your policy number and identity documents. We're sorry we couldn't do more today."
  • 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

Say"I'm escalating your complaint to a senior handler right now. They will be in contact with you via customer.preferredContact within 24 hours. Your reference number is complaint.referenceNumber — please keep this to hand."

Resolution Confirmation

Say"Thank you for bringing this to our attention — your feedback is important to us and we take all complaints seriously. Your reference number is complaint.referenceNumber. We'll be in touch as discussed. Is there anything else I can help you with today?"

CRM.CloseInteraction for policy.holderId with outcome logged and complaint.referenceNumber attached

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ email

Complaint / Feedback Intake

HealthcarePatient RelationsComplaintsGrievanceFeedback

Intake Greeting

Say"Thank you for reaching out to our Patient Relations team. My name is your Healthcare Support Agent, and I'm here to make sure your concern is heard and handled with care. May I have your full name and date of birth so I can pull up your record?"
  • 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

Say"Thank you. I'm also going to ask for your patient ID or member number if you have it handy — that just helps me make sure I have the right record."
  • 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

Say"I appreciate your patience. I want to make sure I understand what you'd like to share with us today. Could you briefly describe the nature of your concern or feedback — for example, whether it relates to your care experience, a specific provider, billing, or something else?"
Detect
intent and nature of patient submission
  • 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

Say"I want you to know that what you're sharing matters, and I'm not going to rush you. Take all the time you need — I'm here and I'm listening."
Detect
sentiment and readiness to continue
  • 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

Say"Thank you for sharing that with me. I want to make sure I capture every detail accurately. Can you tell me the approximate date this occurred, and the name of the provider or department involved if you know it?"

EHR.GetPatientContext for patient.id to pre-populate known provider and visit history

Say"I also want to make sure we can follow up with you in the way that works best for you. Would you prefer a phone call, a message through the patient portal, or an email?"
  • 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

Say"I've logged your concern in our system. Your reference number is complaint.referenceNumber — please keep that handy in case you need to follow up with us. You can expect to hear from our Patient Relations team within five business days, and sooner if your concern is urgent."
Say"Is there anything else you'd like me to note, or any other questions I can answer for you today?"
  • 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

Say"That's wonderful to hear — thank you so much for taking the time to share that. Positive feedback means a great deal to our teams, and I'll make sure it gets to the right people."

CRM.LogFeedback with patient.id, patient.name, feedback.type tagged as commendation, and complaint.provider or complaint.department if provided

Say"I've passed along your kind words. Is there anything else I can help you with today?"
  • Patient has nothing further to add →resolution-acknowledgment
  • Patient also has a complaint to raise →complaint-intake

Unverified Caller

Say"I'm sorry — because I'm not able to confirm your identity in our system, I'm not able to access or create a record on your behalf. I want to make sure your concern is still heard, and there are a couple of ways we can do that."
Say"You're welcome to submit a written complaint through our website, or you can visit any of our facilities in person and our Patient Relations staff will be glad to assist you. If you do have your patient ID or member number available at a later time, you're also welcome to call back and we can complete the intake then."

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

Say"Thank you for telling me this. What you've described is something we take very seriously, and I'm going to make sure it reaches the right team immediately. You will be contacted directly as a priority."

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

Say"Your concern has been escalated to our clinical risk management team. Someone will be reaching out to you directly, and your reference number is 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

Say"Absolutely — I'm going to connect you with a Patient Advocate or Administrator right now who is best positioned to help you. Please hold for just a moment while I bring them in."

Resolution Acknowledgment

Say"Thank you again for reaching out to us. Your experience matters, and we appreciate you giving us the opportunity to address your concern. If you need anything else or have follow-up questions, please don't hesitate to contact us — your reference number is complaint.referenceNumber."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ text

Claim Status Inquiry

InsuranceClaimsSupport

Intake and Verification

Say"Thank you for contacting us. I'm here to help with your claim. Can I please have your full name, policy number, and either your claim number or date of loss?"

CRM.LookupCustomer using customer.fullName and policy.number

Say"To protect your account, I'll need to verify your identity. Could you please provide your date of birth or the last four digits of your Social Security 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

Detect
special handling flags on claim record — litigation, attorney-represented, fatality, major injury, or special handling
  • 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

Say"I've pulled up your claim. Here's the current status: claim.status."

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

Say"There are a few things we still need from you to move your claim forward. Let me go through those now."

kb.claims-outstanding-items-guide — reference for explaining document or action requirements to policyholders

Say"The outstanding items on your claim are: claim.outstandingItems. Once we receive those, our team will continue processing your claim. Would you like me to send a summary of these items to your preferred contact on file?"

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

Say"I can see that a decision was made on your claim. I'm sorry to share that it was denied. The reason noted on file is: claim.denialReasonCode."

kb.claims-appeals-process — retrieve current appeals eligibility window, required forms, and submission instructions

Say"You do have the right to appeal this decision. I can walk you through the appeals process, including the timeframe and what documentation you'll need to submit. Would you like me to do that?"

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

Say"To file an appeal, you'll need to submit a written request along with any supporting documentation within the timeframe specified in your policy. I can send the appeal form and instructions directly to your preferred contact. Is there anything else you'd like me to clarify about the process?"

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

Say"I'm sorry — I wasn't able to verify your identity with the information provided, which means I'm unable to share claim details at this time. This is to protect the security of your account."

IdentityVerification.SendSecureLink to customer.preferredContact

Say"I've sent a secure verification link to the contact information we have on file. Once you complete that step, you'll be able to access your claim details through the portal, or you're welcome to call back and we can try again. Is there anything else I can help you with today?"

CRM.LogInteraction with policy.number, identity verification failed, secure link sent

System Unavailable

Say"I apologize — our claims system appears to be temporarily unavailable, and I'm not able to pull up your record right now. I don't want to leave you without an answer."

TicketingPlatform.CreateInquiry with customer.fullName, policy.number, claim.number, claim.dateOfLoss, customer.preferredContact — generate ticket.referenceNumber

Say"I've logged your inquiry and assigned it a reference number: ticket.referenceNumber. A member of our claims team will follow up with you within one business day using your preferred contact method. Is there anything else I can note on your behalf?"

CRM.LogInteraction with ticket.referenceNumber, system unavailability noted, callback committed

Escalation — Special Handling

Agent
assess the case context to prepare a complete handoff package for the claims legal or special handling team.
Goal:compile all available claim identifiers, flags, and customer-stated concerns so the receiving team can act immediately without re-contacting the customer for basic information.
Constraints:do not comment on claim merits, liability, settlement posture, or legal strategy; do not confirm or deny specific claim details beyond what has already been shared prior to flag detection; always notify the customer that a specialist is taking over before transferring.
Tools available:CRM.LogInteraction, TicketingPlatform.CreatePriorityCase, kb.special-handling-routing-guide
Say"I want to make sure your situation receives the right level of attention. I'm going to transfer you to our specialized claims team who handles cases like yours directly. They'll have your information and will be able to assist you fully."

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

Say"I'm now connecting you with a claims specialist. Please hold for just a moment — they have your information and will pick up right where we left off. Thank you for your patience."

CRM.UpdateCase priority: high, assigned to claims-special-handling-team, ticket.referenceNumber noted

Resolution and Close

Say"Just to recap: your claim claim.number is currently showing as claim.status. If anything changes or you have additional questions, don't hesitate to reach back out — we're happy to help."

CRM.LogInteraction with claim.number, inquiry resolved, status communicated, no further action required

Say"Is there anything else I can help you with today?"
  • Customer has additional questions or a new topic →intake-and-verification
  • Customer confirms no further questions — interaction complete
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Card Lost / Stolen Replacement

Financial ServicesCard ServicesLoss Prevention

Intake

Say"Thank you for reaching out. I understand you'd like to report a lost or stolen card — I'll help you get this resolved right away. First, I need to verify your identity to protect your account."
  • 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

Say"I'll need to verify a few details. Can you please provide your full name, date of birth, and either the last four digits of your Social Security Number or your card PIN?"

KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin

Detect
identity verification outcome
  • Verification passes on first or second attempt verified →card-block
  • Verification fails after multiple attempts failed →verification-failure

Identity Verification — Fraud Path

Say"I'm sorry to hear that. Before we proceed, I need to verify your identity to protect your account. Can you please provide your full name, date of birth, and either the last four digits of your Social Security Number or your card PIN?"

KYCVerification.VerifyIdentity with customer.name, customer.dob, customer.ssn_last4, customer.pin

Detect
identity verification outcome
  • Verification passes verified →card-block-fraud
  • Verification fails after multiple attempts failed →verification-failure

Card Block

Say"Thank you — I've verified your identity. I'm blocking your card ending in card.last4 right now to prevent any unauthorized use."

CardManagement.BlockCard for card.id

CoreBanking.UpdateAccountStatus on account.id flagged: card-blocked

Salesforce.CreateCase type: card-lost-stolen, linked to account.id

Say"Your card has been blocked. Can you tell me approximately when and where you last used or had your card? This helps us note the details on your case."
  • Customer provides last seen details →address-confirmation
  • Customer cannot recall details →address-confirmation

Card Block — Fraud Path

Say"Thank you. I'm blocking your card ending in card.last4 immediately."

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

Say"Your card has been blocked. Because you've mentioned unauthorized transactions, I'll also need to connect you with our fraud team to open a dispute. Before I do, let me confirm your replacement card details."
  • Proceed to address confirmation for replacement →address-confirmation-fraud

Address Confirmation

Say"To send your replacement card, I have your address on file as customer.address. Would you like us to ship to this address, or would you prefer a different one?"
Detect
customer address preference
  • Customer confirms existing address confirmed →replacement-issuance
  • Customer requests a new or different address new_address →address-review

Address Confirmation — Fraud Path

Say"I have your address on file as customer.address. Should we send the replacement card here, or would you prefer a different address?"
Detect
customer address preference
  • Customer confirms existing address confirmed →replacement-issuance-fraud
  • Customer requests a new or different address new_address →address-review

Address Review

Say"I've noted the new address you'd like us to use. Because this address is different from what we have on file, our team will need to verify it before we can ship your replacement — this usually takes one business day."

Salesforce.UpdateCase add: unrecognized-replacement-address, replacement.address, flagged-for-review

ShippingFulfillment.HoldOrder pending address verification on account.id

Approval
Slack.RequestApproval to #card-services-review, approver: card_ops_supervisor
Context sent:account.id, customer.name, replacement.address, case reference
  • Address approved approved →replacement-issuance
  • Address flagged or rejected rejected →escalation-human

Replacement Issuance

Say"Great — I'll get your replacement card ordered now. Would you like standard delivery, or do you need your card sooner? I can check if expedited or same-day delivery is available for you."

ShippingFulfillment.CheckExpedited for account.id

Detect
customer delivery preference
  • 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

Say"I'll get your replacement card ordered now. Standard delivery typically takes five to seven business days. Would you also like to check expedited options?"

ShippingFulfillment.CheckExpedited for account.id

Detect
customer delivery preference
  • 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

Say"Your replacement card has been ordered and will arrive in five to seven business days. You'll receive a tracking number at customer.email once it ships. In the meantime, would you like me to activate a temporary digital card for mobile or online use?"
  • 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

Say"I've arranged expedited delivery — your replacement card should arrive within one to two business days. Tracking details will be sent to customer.email. Can I also set up a temporary digital card for you in the meantime?"
  • 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

Say"Your replacement card is on its way — expected in five to seven business days. A tracking number will be sent to customer.email. I'm now going to transfer you to our fraud team so they can review the unauthorized charges and open a dispute on your behalf."

→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

Say"Expedited delivery is confirmed — your card should arrive in one to two business days. Tracking details will go to customer.email. Let me now connect you with our fraud team to handle the unauthorized transactions."

→escalation-fraud

Digital Card Offer

Agent
determine whether the customer's account and device are eligible for a temporary digital card provisioned via the card management system.
Goal:activate a digital card for the customer if eligible, so they have immediate card access while awaiting physical delivery.
Constraints:only provision digital card if account is in good standing beyond the lost card event; never provision if fraud flag is active on the account; do not override card management eligibility checks.
Tools available:CardManagement.CheckDigitalEligibility, CardManagement.ProvisionDigitalCard, CoreBanking.GetAccountStatus
  • Digital card provisioned successfully provisioned →resolution
  • Customer not eligible or provisioning fails ineligible →resolution

Verification Failure

Say"I'm sorry — I wasn't able to verify your identity with the information provided, and for your security I'm unable to make changes to the account without successful verification. To protect your account, I'd recommend visiting a branch with a government-issued photo ID, where our team can assist you in person."

Salesforce.CreateCase type: identity-verification-failure, priority: high, linked to account.id

Salesforce.LogNote add: customer-directed-to-branch, verification-failed

Say"Is there anything else I can help you with today, or would you like us to note your nearest branch location?"
  • 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

Say"I'm transferring you now to a fraud specialist who will review the disputed transactions and guide you through the dispute process. Your case reference has been shared with them. Thank you for your patience."

Escalation — Human Agent

Salesforce.UpdateCase priority: high, tagged: manual-review-required

Slack.Notify to #card-services-review with case summary, account.id, customer.name

Say"I'm connecting you with a senior member of our team who can assist you further. I've shared your case details with them so you won't need to repeat yourself. Thank you for your patience."

Resolution

Say"To recap: your card ending in card.last4 has been blocked, a replacement is on its way, and your tracking details will be sent to customer.email. Your account is secure. Is there anything else I can help you with today?"

Salesforce.CloseCase resolution: card-replaced, linked to account.id

Resolution — No Action Taken

Say"Understood. Your card has been blocked as a precaution to protect your account. When you're ready to request a replacement or visit a branch, don't hesitate to reach out. Take care."

Salesforce.CloseCase resolution: blocked-no-replacement-issued, linked to account.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ text

Cancellation / Retention

TelecomRetentionCancellationSupport

Intent Capture

Say"Thank you for contacting us. I understand you may be thinking about making a change to your account — I'm here to help. Can I start by pulling up your account? Please share your account number or the phone number on file."

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

Say"Thanks, customer.name. I can see your account. Before we go any further, could you help me understand what's prompting you to think about leaving today?"
Detect
cancellation reason category from customer reply
  • 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

Say"I really appreciate you sharing that with me. It sounds like the experience you've had isn't what we want for you, and I'd like to make sure that's addressed properly before we talk about anything else."

CRM.CreateCase tagged service-complaint, linked to customer.accountNumber

Agent
review account.paymentHistory and case history to determine if the service complaint is resolvable before a retention offer is appropriate.
Goal:assess whether the underlying complaint (technical, billing error, service gap) can be resolved or credibly committed to, so a retention pitch lands on solid ground rather than dismissing the concern.
Constraints:do not make commitments outside documented resolutions; do not skip complaint acknowledgement and route directly to a retention offer; if the complaint involves a billing dispute, confirm with BillingSystem before stating any credit amount.
Tools available:CRM.GetCaseHistory, BillingSystem.GetBillingDetails, kb.complaint-resolution-policy
  • 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

Say"Before we go further, I want to make sure you have the full picture. Because your contract runs until account.contractEndDate, an early termination fee of account.etfAmount would apply if you cancel today. I want to be upfront about that. Would you like me to walk through your options, or do you have questions about that fee?"
Detect
customer response to 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

Agent
select the single best retention offer to present to customer.name based on their stated cancellation reason, account profile, and available offers.
Goal:identify the offer most likely to address the customer's specific concern — prioritise bill-credit or discount offers for cost complaints, speed/reliability upgrades for service complaints, and plan-match or loyalty perks for competitor comparisons.
Constraints:present only one offer at a time; do not invent offers not returned by RetentionOfferEngine.GetEligibleOffers; do not offer a discount that exceeds the retention discount authority tier; if account.outstandingBalance is greater than zero, do not bundle a credit into the offer until balance is acknowledged.
Tools available:RetentionOfferEngine.GetEligibleOffers, CRM.GetAccountDetails, kb.retention-offer-policy
  • Suitable offer identified offer_ready →present-offer
  • No eligible offers found no_offer →outstanding-balance-check

Present Offer

Say"Based on everything on your account and what you've shared, I think I can help. Here's what I can do for you: retention.offerDescription. This offer is available until retention.offerExpiry. Would you like to take advantage of that?"
Detect
customer response to retention 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

Say"I understand — let me see if there's anything else I can do. Give me just a moment."

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

Say"Here's another option I can offer you: retention.offerDescription. This is the best I'm able to do from my end. Would this work for you?"
Detect
customer response to second retention 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

Say"Wonderful — I've applied that to your account right now and you'll receive a confirmation by email and text shortly. We're really glad you're staying, customer.name. Is there anything else I can help you with today?"

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

Say"Before we proceed, I do need to let you know that there is an outstanding balance of account.outstandingBalance on your account. Cancelling your service does not waive this balance — it will remain due and may be referred to our collections team if unpaid. Would you like to discuss payment options, or would you like to continue with the cancellation?"
Detect
customer response to 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

Say"I've processed your cancellation request. Your service will remain active until transaction.finalBillDate, which is also when your final bill will be generated. You'll receive a written confirmation by email shortly."
  • 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

Say"A confirmation email is on its way with all the details, including the early termination fee of account.etfAmount. If you have any questions about your final bill, our billing team is available to help. We're sorry to see you go, customer.name, and we hope to be of service again in the future."

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

Say"You're all set. A confirmation email is heading to you now with all the details. We're sorry to see you go, customer.name, and we wish you all the best."

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."

Say"I want to make sure you get the right support here. I'm going to connect you with a specialist who has the authority and expertise to work through this with you properly. Thank you for your patience, customer.name."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ chat▣ voice▣ email

Booking Modification

TravelHospitalityBookingsSupport

Verify Customer

Say"Thank you for reaching out. I'd be happy to help you modify your reservation. Could you please provide your booking reference or confirmation number and the name on the reservation?"

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

Say"I wasn't able to locate a reservation with those details. Let's try a different approach — could you provide the email address used at the time of booking, or a phone number?"

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

Say"I can see your reservation. Here are the current details: booking reference booking.reference, dates booking.currentDates, room or travel type booking.roomType, and guest name booking.passengerName. What change would you like to make today?"
Detect
intent on customer's requested modification
  • 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

Say"Let me check availability for your requested new dates."

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

Say"Unfortunately, your requested dates aren't available. The nearest available options are availability.nearestDates. Would any of these work for you?"
  • 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

Say"Let me check whether your preferred room or cabin type is available."

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

Say"That room type isn't available for your dates. Here are comparable alternatives that are open. Would any of these suit you?"
  • 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

Say"Here's a summary of the change: the fare difference is fare.difference and the modification fee is fee.modification. The total additional charge to your payment method on file would be reflected accordingly. Would you like to proceed?"
  • 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
determine whether the modification fee qualifies for a waiver based on loyalty status and goodwill policy.
Goal:decide if the fee can be waived automatically or requires supervisor approval.
Constraints:never waive fees above USD 150 without supervisor approval; always document the waiver reason in the CRM; do not offer goodwill waivers more than once per customer per calendar year.
Tools available:LoyaltyDB.GetCustomerTier, CRM.GetWaiverHistory, kb.goodwill-waiver-policy
  • 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

Approval
Slack.RequestApproval to #reservations-supervisors, approver: reservations_supervisor
Context sent:booking.reference, customer.name, customer.loyaltyTier, fee.modification, agent's waiver rationale
  • Approved approved CRM.LogWaiverGranted →apply-modification
  • Rejected rejected →fee-waiver-declined
  • No response in 20 min →escalation-fee-dispute

Fee Waiver Declined

Say"I wasn't able to get the fee waived on this occasion. The modification fee of fee.modification would still apply. Would you like to proceed with the change, or would you prefer to keep your current booking as is?"
  • 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

Say"I can help with a name correction. Could you confirm the correct full name as it should appear on the reservation, and let me know whether this is a minor correction or a full name transfer?"

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

Say"Your booking has been updated successfully. I've sent a confirmation with your revised itinerary to customer.email. Is there anything else I can help you with?"
  • Customer has additional requests more-changes →retrieve-booking
  • Customer is satisfied and done done →wrap-up-confirmed

Non-Modifiable Rate

Say"I can see that the rate on your current booking is non-modifiable, which means changes to the reservation aren't permitted under the original fare rules. I have a couple of options for you: I can look into cancelling the booking subject to the applicable refund policy, or I can check whether a same-rate rebooking is available for your new dates."

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

Say"Based on your fare type, here are the cancellation terms that would apply: the refund or credit eligibility depends on your booking's rate rules. Would you like me to go ahead and initiate the cancellation, or would you prefer to keep the booking?"
  • 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

Say"I can see that your reservation was originally made through a third-party provider — such as an online travel agency or travel management company. Unfortunately, modifications to third-party bookings must be processed directly through the channel where you booked, as we're unable to alter those reservations on their behalf. I'd recommend contacting them directly and referencing booking reference booking.reference. Is there anything else I can assist you with?"
  • 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

Say"No problem at all — your original booking remains exactly as it was. If you change your mind or need anything else, don't hesitate to reach out. Have a great trip!"

CRM.LogInteraction for customer.name with outcome: no modification made

Wrap-Up — Change Confirmed

Say"Wonderful — everything is confirmed. Your updated booking details have been sent to customer.email. We look forward to welcoming you. Have a great trip!"

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

Say"Your request involves details that I'd like to have our specialist team handle to make sure everything is done perfectly. I'm transferring you now — they'll have full context and can take it from here."

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

Say"I completely understand your concern. Let me escalate this to a supervisor who has the authority to review your case in full. You'll be connected shortly, and they'll have all the details."

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

Say"I've initiated the cancellation for booking booking.reference and sent a summary to customer.email, including the applicable refund terms and expected timeline. A specialist will follow up if any further action is needed."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Billing Inquiry / Dispute

TelecomBillingDisputeSupport

Greeting and Identity Verification

Say"Thank you for contacting us today. I'm here to help with your billing question. Can I start with your account number or the phone number on the account?"

IdentityVerification.LookupAccount using customer.accountNumber or customer.phoneNumber

Say"To protect your account, I'll need to verify your identity. Could you please provide your account PIN, date of birth, or the last four digits of your Social Security Number?"

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

Say"I'm sorry, I'm not able to pull up the account details without completing verification — this is to keep your account secure."
Say"You're welcome to visit any of our retail locations with a valid photo ID, or you can reset your PIN online using the email address on file. Would either of those work for you?"

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

Say"I've noted this contact on your account so that when you do verify, our team will have the full context. Is there anything else I can help you with that doesn't require account access?"

Inquiry Intake

CRM.PullAccount for customer.accountNumber, load customer.name, billing.previousCredits, billing.accountBalance

Say"Thanks for verifying, customer.name. I've got your account pulled up. Can you tell me which charge you're seeing a question about — do you have the amount or the description from your bill?"

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

Say"I completely understand — seeing an unexpected charge on your bill is frustrating, and I want to make sure we get to the bottom of this together. Let's take this one step at a time."
Detect
sentiment on customer response
  • 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

Say"Let me walk you through the main sections of your bill for this cycle. Your base plan charge is listed first, followed by any add-ons, taxes, and fees. I'll highlight anything that looks different from last month."

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

Say"I can see any plan or rate changes that were applied to your account. Let me pull that history up now."

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

Say"I'm looking at that charge now — billing.chargeDescription for billing.chargeAmount on your billing.cycleAffected bill. Give me just a moment to review the detail."

kb.telecom-billing-policy — check overage rules, promo expiration terms, and adjustment eligibility

Agent
analyze the charge detail against account plan, usage records, and billing policy.
Goal:determine whether the charge is valid, the result of a billing error, a promo expiration, an overage, or an unauthorized change.
Constraints:do not promise a credit before confirming eligibility; never access or modify financial records without completed identity verification; flag any pattern suggesting account fraud before proceeding.
Tools available:BillingSystem.FetchChargeDetail, BillingSystem.FetchUsageRecords, BillingSystem.FetchPlanChangeHistory, kb.telecom-billing-policy
  • 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

Say"Here's what I'm seeing: billing.chargeDescription was applied because billing.chargeAmount reflects the details I've reviewed. Let me walk you through exactly why this appeared."

kb.telecom-billing-policy — reference relevant policy language for promo expiration, overages, or rate changes

Say"Does that explanation make sense, or do you have any follow-up questions about this charge?"
Detect
customer acceptance or continued dispute
  • 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

Say"You're right — I can see this charge was applied in error, and I sincerely apologize for that. I'm going to take care of this for you right now."

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

Say"I can see this charge is from more than billing.policyWindowDays days ago. Our standard adjustment policy covers charges within that window, so I'm not able to issue a full reversal for charges older than that."

kb.telecom-goodwill-credit-policy — check goodwill credit eligibility and authorized limit

Say"What I can do is apply a goodwill credit within the amount I'm authorized to offer. Would that be helpful while we resolve this?"
  • Customer accepts goodwill credit offer →goodwill-credit-evaluation
  • Customer rejects and requests further escalation →escalation-human

Goodwill Credit Evaluation

Agent
determine the appropriate goodwill credit amount given account history, charge context, and policy limits.
Goal:offer the highest reasonable goodwill credit within authorized limits to retain the customer and resolve the inquiry.
Constraints:never exceed the goodwill credit cap defined in kb.telecom-goodwill-credit-policy; do not apply a second goodwill credit if one was issued within the last 90 days per billing.previousCredits.
Tools available:CRM.FetchAccountHistory, BillingSystem.FetchPreviousCredits, kb.telecom-goodwill-credit-policy
  • 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

Say"I've applied a credit of credit.amount to your account. Your updated balance is billing.accountBalance. You should see this reflected on your next statement, and you may also receive a confirmation by email at customer.email."
Say"Is there anything else I can help you with today?"
  • Customer is satisfied and has no further questions confirmed →resolution-credit-issued
  • Customer has an additional question or concern →inquiry-intake

Billing System Down

Say"I'm sorry — I'm running into a system issue on my end that's preventing me from pulling up your full billing detail right now. I don't want to give you incomplete information."

CaseManagement.CreateCase priority: normal, note: billing inquiry pending system restoration, link customer.accountNumber

CaseManagement.GenerateReferenceNumber assign to case.referenceNumber

Say"I've logged your inquiry and assigned it reference number case.referenceNumber. Our team will reach out within one business day once the system is restored — would you prefer a callback or an email to customer.email?"

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

Say"I want to make sure you get the best possible resolution on this. I'm going to connect you with a senior billing specialist who has the authority to review this further. I'll make sure they have the full context so you won't need to repeat yourself."

Resolution — Charge Explained

Say"I'm glad I could help clarify that. If you ever have questions about a future bill, don't hesitate to reach out. Is there anything else I can help you with today?"

CRM.LogInteraction note: billing inquiry resolved via explanation, no credit issued

Resolution — Credit Issued

Say"Your account has been updated and the credit is confirmed. Thank you for bringing this to our attention, customer.name — we appreciate your patience. Take care!"

CRM.LogInteraction note: billing dispute resolved, credit issued, customer confirmed satisfied

Resolution — Callback Scheduled

Say"You're all set. Reference number case.referenceNumber is yours to keep, and we'll be in touch within one business day. Thank you for your patience, and I'm sorry for the inconvenience."

CRM.LogInteraction note: callback or email follow-up scheduled, system outage, reference case.referenceNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ email

Beneficiary / Policy Detail Update

InsurancePolicy ManagementBeneficiaryCompliance

Intake and Change Request

Say"Thank you for contacting us. I'm here to help you update your policy details. Can I start with your full name and policy number?"

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

Say"I wasn't able to locate a policy with that name and number combination. Could you double-check the policy number on your documents?"
  • Customer provides corrected details CRM.LookupPolicy retry →identity-verification
  • Customer cannot locate their policy number →escalation-human

Identity Verification

Say"To protect your account, I'll need to verify your identity. Could you please provide your date of birth, the last four digits of your Social Security Number, and your security PIN?"

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

Say"That information didn't match what we have on file. Please try once more — make sure your date of birth, last four of your SSN, and security PIN are correct."

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

Say"I'm sorry, but I wasn't able to verify your identity after two attempts. For the security of your account, I'm unable to proceed with any changes at this time."

CRM.LogEvent tag: identity-verification-failure, policy: customer.policyNumber

CRM.CreateCase priority: high, tag: id-lockout-policy-change

Say"You're welcome to visit your nearest branch with a government-issued photo ID, or submit notarized documentation by mail to request this change. Would you like me to send you written instructions at the email address on file?"
  • Customer requests written instructions CRM.SendEmail template: id-lockout-instructions to customer.email →escalation-human
  • Customer declines →escalation-human

Change Type Collection

Say"Great, I've verified your identity. What change would you like to make today — is this a beneficiary update, or are you updating other policy details such as your address, name, or contact information?"
Detect
intent on customer's stated change request
  • 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

Say"I can see the beneficiary currently on file is policy.currentBeneficiary. I'll now collect the updated information."
Say"Please provide the full legal name of the new beneficiary and their relationship to you — for example, spouse, child, or domestic partner."
  • 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

Say"I'm so sorry for your loss. Please take your time — I'll do my best to make this process as straightforward as possible for you."

CRM.FlagCase tag: bereavement-sensitivity, policy: customer.policyNumber

Say"In situations involving the passing of a beneficiary, we typically require a certified copy of the death certificate to process the removal. Do you have that documentation available, or would you like guidance on how to submit it?"
  • 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

Say"I can see the details currently on file. What specifically would you like to update — your address, phone number, email address, or legal name?"
  • 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

Agent
assess whether the requested contact or name detail change can be applied immediately without a signed form or supporting documentation.
Goal:determine if the update is a simple contact detail (address, phone, email) that can be saved directly, or if it requires a signed change request or supporting document before processing.
Constraints:never update a legal name without a signed form or supporting legal document; always confirm the new detail verbally with the customer before saving; never modify policy ownership or coverage as part of a contact detail update.
Tools available:PolicyAdmin.GetPolicyDetails, kb.policy-change-requirements
  • 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

Say"I've sent a secure e-signature form to customer.email. Once you complete and submit it, your change will be processed within one business day. Please check your inbox — it should arrive within a few minutes."

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

Say"This type of change requires a signed paper form. I'll send you the form by email along with instructions for returning it. Once we receive the completed form, your update will be processed within three to five business days."

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

Say"No problem — I've saved a pending task on your account and flagged the deadline. We'll send you a reminder before it expires. If you need assistance completing the form, don't hesitate to reach back out."

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

Say"Before I save this, let me confirm the change: I'll be updating your record to reflect update.newDetail — or for a beneficiary change, update.newBeneficiaryName as update.newBeneficiaryRelationship. Is that correct?"
  • 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

Say"I'm sorry — our system is temporarily unavailable and I'm unable to save your changes right now. I want to make sure your request isn't lost."

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

Say"I've logged your request manually and your case reference number is case.referenceNumber. A member of our team will call you back at customer.phone within one business day to confirm your changes have been saved. Please keep that reference number handy."

→resolution-confirmed

Confirmation and Close

Say"Your policy has been updated successfully. A confirmation has been sent to customer.email. Is there anything else I can help you with today?"

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

Say"Thank you for reaching out and taking the time to keep your policy up to date. Take care, and don't hesitate to contact us if you need anything in the future."

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

Say"I'm going to connect you with a specialist who can assist you further with this request. Please hold for just a moment — thank you for your patience."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms

Appointment Scheduling

HealthcareSchedulingPatient Support

Patient Intake

Say"Thank you for reaching out. I'm here to help you schedule, reschedule, or cancel an appointment. Can I start with your full name and date of birth?"

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

Say"I wasn't able to match those details in our system. Let's try once more — could you double-check the name and date of birth on file with us?"

EHR.LookupPatient retry with corrected input

  • Record found on second attempt verified →appointment-intent
  • Still no match after retry →escalation-human

Appointment Intent

Say"Got it, patient.fullName — I've confirmed your record. Are you looking to book a new appointment, reschedule an existing one, or cancel?"
  • 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

Say"Before I check availability, I'll need your insurance information. What is your insurance provider and member ID?"

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

Say"No problem. Our self-pay rate for this type of visit is selfpay.rate. Would you like to proceed on a self-pay basis, or would you prefer to contact your insurer first and call us back?"
  • 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

Say"I wasn't able to verify active coverage with patient.insurance.provider at this time. This could be a data mismatch or a lapse in coverage. I'd recommend contacting your insurer directly to confirm. In the meantime, would you like to hear our self-pay rates or hold off until coverage is confirmed?"
  • 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

Say"It looks like a referral is required for this appointment type, and we don't currently have one on file for you. I can place a soft reservation to hold a slot while you obtain the referral from your primary care provider. Would you like me to do that?"

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

Say"Great. What is the reason for your visit, and do you have a preferred provider or location? Also, what dates and times work best for you?"

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

Say"I have a few openings that match what you're looking for. Let me share those with you now."

PatientPortal.DisplaySlots or read aloud up to three options from appointment.selectedSlot candidates

Say"Which of these works best for you?"
  • 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

Say"I wasn't able to find an opening that matches all of your preferences right now. I can offer you the next closest available slot, or I can add you to our waitlist so you're notified as soon as something opens up. Which would you prefer?"

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

Say"I'll add you to the waitlist for appointment.type. You'll be contacted at patient.phone or patient.email as soon as a matching slot opens up."

SchedulingModule.AddToWaitlist patient.fullName, appointment.type, appointment.preferredProvider, appointment.preferredDates

CRM.UpdateRecord waitlist status for patient.fullName

Say"You're all set on the waitlist. Is there anything else I can help you with today?"
  • 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

Say"You're all booked. Your confirmation number is appointment.confirmationNumber and I've sent the details to your phone and email. Is there anything else I can help you with?"
  • Patient has another request →appointment-intent
  • Patient is done →intake-close-complete

Reschedule Lookup

Say"I can help you reschedule. Let me pull up your existing appointment — can you confirm the date and type of visit, or your confirmation number?"

SchedulingModule.GetAppointment using appointment.existingId or patient.fullName and patient.dateOfBirth

  • Appointment found →reschedule-preferences
  • Appointment not found →escalation-human

Reschedule Preferences

Say"I found your appointment. What new dates or times work better for you, and would you like to keep the same provider and location?"

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

Say"I can help with that. Can you confirm the appointment date and type, or share your confirmation number?"

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

Say"I can cancel this appointment. Please be aware that because this is within our short-notice window, a cancellation fee of cancellation.fee may apply per our policy. Would you still like to proceed?"
  • 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

Say"Your appointment has been cancelled and you'll receive a confirmation shortly. Is there anything else I can help you with?"
  • Patient wants to book a new appointment →appointment-intent
  • Patient is done →intake-close-complete

Intake Close — Callback

Say"Understood — no problem at all. When you're ready to move forward, you can reach us by phone, through the patient portal, or by replying to this message. We're happy to help whenever you're set."

CRM.UpdateRecord contact reason, outcome pending callback, patient.fullName

Intake Close — Referral Pending

Say"We've placed a soft hold for you while you get the referral sorted. Once it's submitted by your referring provider, give us a call or message us and we'll confirm that slot right away. Take care!"

CRM.UpdateRecord soft hold active, referral pending, patient.fullName

Intake Close — Complete

Say"You're all set, patient.fullName. Thank you for reaching out, and we look forward to seeing you. Have a great day!"

CRM.UpdateRecord interaction complete, outcome successful, patient.fullName

Escalation — Clinical

Say"What you're describing sounds like it may need immediate attention. Please call 911 or go to your nearest emergency room if you're experiencing a medical emergency. I'm also connecting you with a clinical team member right now who can assist further."

CRM.CreateCase priority: urgent, tagged clinical-escalation, patient.fullName

Twilio.NotifyOnCall clinical triage staff with patient name and reported symptoms

Escalation — Human Agent

Say"I want to make sure you get the right help here. Let me connect you with one of our scheduling specialists who can take it from here."

CRM.CreateCase priority: high, tagged scheduling-escalation, patient.fullName, interaction summary

Twilio.TransferCall or route chat to live scheduling specialist queue

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ chat▣ voice▣ sms

Amenity / Service Request

TravelHospitalityIn-StayGuest Serviceszinglekipsu

Greet and Identify

Say"Welcome! I'm happy to help with anything you need during your stay. Could I start with your name and room number?"
Detect
sentiment and intent on guest opening message
  • 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

Say"I want to make sure I have the right room. Could you share your reservation confirmation number or the email address used at check-in?"

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

Say"I'm showing your reservation as either not yet checked in or already checked out. If you believe this is an error, I'd love to connect you with a team member who can look into it directly."
  • Guest believes it is an error →escalation-human
  • Guest acknowledges wrong room or wrong stay →greet-and-identify

Capture Request

Say"Great, thanks guest.name! You're all set in room guest.roomNumber. What can we bring or arrange for you today?"

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

Say"Of course — here is a quick overview of what we can arrange: extra linens and towels, rollaway beds, cribs, toiletry top-ups, late checkout requests, luggage storage, and more. What sounds helpful for your stay?"
  • 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

Say"Just so you know, request.item carries a fee of item.fee which will be applied to your room account. Shall I go ahead and arrange it for you?"
  • 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

Say"I'm sorry — late checkout isn't available today due to high occupancy. What I can offer instead is complimentary luggage storage so you can enjoy the property until your departure. Would that work for you?"
  • 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

Agent
identify the closest available substitute for request.item using current inventory and kb.amenity-catalog.
Goal:propose one or two concrete alternatives that meet the guest's underlying need without over-promising on availability.
Constraints:only suggest items confirmed as in-stock by HousekeepingDispatch.CheckInventory; never promise a specific item that has not been verified available; do not offer complimentary upgrades without manager approval.
Tools available:HousekeepingDispatch.CheckInventory, kb.amenity-catalog
  • 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

Say"Perfect — I've sent that request through. You can expect request.item to arrive by dispatch.eta. Is there anything else I can help with during your stay?"
  • 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

Say"I completely understand, and I apologize for the inconvenience. I'm marking this as a priority and re-dispatching now with a shortened delivery window."

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

Say"I want to make sure this is handled just right. I'm connecting you with a member of our team now who can assist you personally. Thank you for your patience, guest.name."

Resolution / Close

Say"You're all set, guest.name! Your request is confirmed and on its way. Don't hesitate to reach out if there is anything else we can do to make your stay more comfortable."

CRM.LogInteraction for guest.reservationId tagged resolved, linked to dispatch.ticketId

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ sms▣ text

Size / Fit / Product Recommendation

RetailProductSizingRecommendations

Opening

CRM.LookupCustomer by customer.id or session identity to pre-load customer.purchaseHistory and any saved preferences.

Say"Hi customer.name! I'm here to help you find exactly the right size or product. Are you looking for sizing help on something specific, trying to choose between a couple of options, or not sure where to start?"
Detect
customer intent from opening message
  • 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.

Say"Great choice! To make sure I get the fit right for you, could you share a couple of quick details? For product.name I'll need your product.sizeGuide measurements — things like height, weight, chest, waist, or inseam depending on the item. Do you have those handy?"
Detect
customer response about measurements
  • 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

Say"No worries at all — it only takes about two minutes! Here's how to measure yourself at home for product.category:"
Say"For the most accurate fit, use a soft measuring tape. Measure your chest at the fullest point, your natural waist about an inch above your navel, and your hips at the widest point. If you're measuring inseam, stand straight and measure from your crotch to the floor. Once you have those, I can match you to the perfect size."
  • 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

Say"Being between sizes is really common! For product.name, I'd generally recommend going product.sizeGuide based on your larger measurement to ensure comfort — especially for customer.preferences.fitStyle fit. That said, it also depends on how you prefer things to feel. Do you usually prefer a snugger or a more relaxed fit?"
  • 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

Say"When in doubt, I always recommend going one size up — it's much easier to tailor down slightly than to deal with something that's too tight. I'll use that as the basis for your recommendation."

→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

Say"Based on your measurements and your preference for a customer.preferences.fitStyle fit, I'd recommend a recommendation.primary in product.name. Here's why it works for you:"
Say"It should sit comfortably across your customer.measurements, with the right amount of room for customer.preferences.intendedUse. The product.attributes also align well with your preference for customer.preferences.material."
Say"Would you like me to add the recommendation.primary in product.name to your cart, or do you have any questions before you decide?"
  • 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.

Say"Of course! Here's another option worth considering: recommendation.alternate. Compared to recommendation.primary, this one product.attributes — so it's a great pick if you prioritize customer.preferences.material or are working within a tighter budget of around customer.preferences.budget."
Say"Both are solid choices — would you like to go with recommendation.primary, recommendation.alternate, or would it help to talk through the differences a bit more?"
  • 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.

Say"Happy to help you compare! Let me pull up the details on both."
Say"Here's the honest breakdown: recommendation.primary is the better fit if product.attributes — especially for customer.preferences.intendedUse. recommendation.alternate makes more sense if you want product.attributes or your budget is closer to customer.preferences.budget. For most people with your profile, I'd lean toward recommendation.primary, but either will serve you well."
Say"Does that help you land on one, or would you like me to check sizing or stock on both before you decide?"
  • 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

Say"No problem — let's figure it out together! A few quick questions: What's the item or category you're shopping for? What will you mainly be using it for? And do you have a sense of the fit or style you prefer — relaxed, athletic, slim — or a budget range?"
Detect
customer response completeness
  • 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.

Say"Thanks for mentioning that — let me take a look at what you've ordered before so we can avoid repeating the same issue."
Say"I can see you previously purchased customer.purchaseHistory. It looks like the fit concern was around customer.preferences.fitStyle. Based on that, I'd suggest we adjust by going recommendation.primary this time — that should address the issue directly."
  • 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.

Say"Unfortunately, recommendation.primary in product.name isn't available right now. Here's what I can do for you:"
Say"Option 1 — I can put you on the waitlist and notify you the moment it's back in stock. Option 2 — there's a very similar alternative, recommendation.alternate, that's available now and fits your profile just as well. Option 3 — if you'd like, I can check other size variants that might still work."
  • 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.

Say"Done! I've added you to the waitlist for recommendation.primary in product.name. We'll email you at customer.email the moment it's back — usually within a week or two. Is there anything else I can help you with in the meantime, like finding something to hold you over?"
  • 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.

Say"Of course — happy to answer any questions before you commit. What would you like to know about product.name?"
  • 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.

Say"Perfect! I've added recommendation.primary in product.name to your cart. Here's your cart link: order.cartUrl"
Say"You're all set to check out whenever you're ready. Is there anything else I can help you find today — maybe something to complete the look or a coordinating item?"
  • 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.

Say"I completely understand — I want to make sure you get the right answer here, and this one deserves a closer look from one of our specialist team members. I'm flagging this for them now with all the details you've shared so you won't need to repeat yourself."
Say"A specialist will be with you shortly. If you're on chat they'll join this thread; if you prefer, we can also arrange a callback at customer.email. Thank you for your patience!"

Resolution

Say"Wonderful — I'm really glad we could find the right fit for you today! If your order arrives and anything feels off, our exchanges are easy and hassle-free. Don't hesitate to reach out anytime. Enjoy your new product.name!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ sms

Service Activation / New Line Setup

TelecomActivationNew LineSales

Identity Verification

Say"Welcome! I can help you get a new line activated today. First, I need to verify your account. Can I have your account holder name, account number, and PIN?"

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

Say"I wasn't able to verify with that PIN. Let me try a secondary check — can you confirm the billing address on the account and the last four digits of the payment method on file?"

CRM.VerifySecondaryIdentity using account.billing_address and account.payment_method

  • Secondary verification passes confirmed →eligibility-check
  • Secondary verification fails unconfirmed →escalation-identity

Eligibility Check

Say"Great, I've verified your identity. Let me check if your account is eligible to add a new line."

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

Say"I can see there's a hold or outstanding balance on your account that needs to be resolved before we can add a new line. Let me pull up the details."

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

Say"Perfect. Now I'll need a few details about the device and SIM. Could you provide the IMEI number of the device and the SIM card number you'll be using?"

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

Say"I'm sorry — the IMEI you've provided is either flagged as blacklisted or isn't compatible with our network. I can't activate service on that device."

kb.compatible-device-catalog — retrieve compatible device options and current upgrade promotions for account.id

Say"Here are some compatible options available to you, including any current upgrade or trade-in offers. Would you like to explore one of those, or do you have another device you'd like to try?"
  • 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

Say"The SIM number provided doesn't appear to be recognized in our system, or it may already be linked to another line. Let's sort that out."

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

Say"Your device and SIM look good. Now let's choose the right plan. What kind of plan or package are you looking for? I can walk you through current options, or if you already have one in mind, just let me know."

kb.plan-catalog — retrieve available plans, pricing, and promotional offers for account.id

Say"Based on your account, here are the plans available to you. Can you confirm which one you'd like to go with?"
  • Customer selects a plan confirmed →number-selection
  • Customer is unsure or wants more information undecided →plan-recommendation

Plan Recommendation

Agent
recommend the best-fit plan for the customer based on account usage history, plan.selected interest signals, and kb.plan-catalog.
Goal:identify and present up to three plan options that match the customer's stated needs (data, budget, family vs. individual) and close on a selection.
Constraints:never recommend a plan above the customer's stated budget ceiling; always disclose activation fees and contract terms upfront; do not offer promotions not currently active in kb.plan-catalog.
Tools available:CRM.GetUsageHistory, kb.plan-catalog, kb.current-promotions
  • 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

Say"Now let's set up your phone number. Would you like us to assign you a new number, or would you like to port an existing number from another carrier?"
  • 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

Say"No problem — we can port your number over. I'll need a few details from your current carrier: the phone number you want to port, the account number with your current carrier, the PIN or password on that account, and the billing address they have on file."

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

Say"Your port request has been submitted. The number transfer can take up to 24 hours depending on your current carrier. In the meantime, we'll assign a temporary number so your line is active right away. You'll receive a notification once your original number has fully transferred."

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

Say"I wasn't able to validate the port request with the details provided. This can happen if the account number or PIN with your current carrier doesn't match their records. Could you double-check those details and try again?"
  • 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

Say"Almost there. There is an activation fee of plan.activation_fee for this line. I'll apply that to the payment method on file. Shall I go ahead?"

PaymentProcessor.ChargeActivationFee of plan.activation_fee to account.payment_method

  • Payment succeeds payment_success →line-provisioning
  • Payment declines payment_declined →payment-retry

Payment Retry

Say"It looks like the payment didn't go through on the card on file. You can try a different payment method, or I can check if you're eligible for an installment option to spread out the activation cost."

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

Say"Payment confirmed — I'm now provisioning your new line. This will just take a moment."

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

Say"Your new line is live! Your number is line.assigned_number. To confirm everything is working, try making a quick call or loading a webpage — let me know what you see."
Detect
customer confirms service is working
  • Customer confirms call or data is working confirmed →resolution-success
  • Customer reports no signal or data issues not_working →activation-troubleshooting

Activation Troubleshooting

Say"Let's do a quick check. First, try restarting the device and make sure it isn't in airplane mode. Also confirm the SIM is seated properly."

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

Say"I'm sorry — I wasn't able to verify your identity after two attempts. For your account's security, I'm unable to proceed with the activation. You're welcome to visit one of our stores with a valid photo ID to complete this in person."

CRM.LogFailedVerification for account.id with verification.attempts

CRM.CreateTicket tagged identity-verification-failed, linked to account.id

Escalation — Fraud Flag

Say"I'm not able to process this request at the moment. A specialist will reach out to you to assist further. Please don't worry — no changes have been made to your account."

CRM.FlagAccountForReview tagged fraud, for account.id

CRM.CreateTicket priority: high, tagged fraud-flag, linked to account.id

Escalation — Billing or Eligibility

Say"Let me connect you with our billing team who can look into your account balance and eligibility in more detail and get this sorted for you."

CRM.CreateTicket tagged billing-hold, linked to account.id

Escalation — Device Upgrade

Say"I'm transferring you to our device sales team. They'll walk you through compatible devices, upgrade programs, and any current trade-in offers."

CRM.CreateTicket tagged device-upgrade-referral, linked to account.id

Escalation — Store Referral

Say"For the SIM issue, the easiest path is to visit one of our stores where they can issue a new SIM and activate it on the spot. I'll note your account so they have the full context when you arrive."

CRM.CreateTicket tagged sim-store-referral, linked to account.id

Escalation — Porting Issue

Say"I wasn't able to complete the port request from our side — this sometimes requires direct coordination with your current carrier. I'm escalating this to our porting specialist team, who will contact you within one business day."

CRM.CreateTicket priority: high, tagged port-in-escalation, linked to account.id, including port.number and port.carrier

Escalation — Provisioning Error

Say"It looks like there was a technical issue provisioning your line on our network. I'm escalating this to our technical team right now — they'll have this resolved and will reach out to confirm once your line is fully active."

CRM.CreateTicket priority: high, tagged provisioning-error, linked to account.id and line.assigned_number

Escalation — Technical Support

Say"Since the line shows as active on our end but you're still having trouble, I'm escalating to our technical support team who can run a deeper diagnostic. They'll follow up with you shortly."

CRM.CreateTicket tagged device-technical-issue, linked to account.id and line.assigned_number

Resolution — Success

Say"Fantastic — everything is up and running. Your new line is active, your number is line.assigned_number, and your plan is set. Is there anything else I can help you with today?"

CRM.CloseTicket for account.id tagged activation-complete

Resolution — Deferred

Say"No problem at all — take your time. When you're ready to move forward, just reach back out and we'll have everything ready to pick up right where we left off. Have a great day!"

CRM.SaveSessionState for account.id with plan.selected and device.imei

Resolution — Payment Abandoned

Say"Understood — we'll hold the order details for now. When you're ready to complete the activation, just contact us again and we'll resume from here. Thanks for your time."

CRM.SaveSessionState for account.id with plan.selected and line.assigned_number tagged payment-pending

Resolution — Closed

Say"Of course — no problem. If you change your mind or need anything else, we're always here to help. Have a great day!"

CRM.LogInteraction for account.id tagged activation-not-completed

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ email▣ voice

Returns / Exchange Request

RetailReturnsExchangeSupport

Intake

Say"Hi there! I'm here to help with your return or exchange. To get started, could you please share your order ID or receipt number along with the email address on your account?"
  • 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

Say"No problem — I can try to locate your order another way. Could you share your full name, email address, or the last four digits of the payment method used?"

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

Say"Great, I've pulled up your order. Could you let me know the reason for the return and whether you'd prefer a refund to your original payment method or an exchange for a different size, color, or item?"
  • 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

Agent
evaluate the refund request against policy and order data.
Goal:confirm eligibility, calculate refund amount for order.total, and determine whether to auto-process or route for approval based on refund value.
Constraints:never auto-approve refunds above USD 300 without escalation; always verify item condition stated by customer matches return.reason before proceeding.
Tools available:OrderManagement.GetOrder, ReturnsManagement.CheckEligibility, kb.return-exchange-policy
  • 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

Say"You're all set! I've emailed your prepaid return shipping label to customer.email. Once we receive the item, your refund will be processed within 5 to 7 business days. Is there anything else I can help you with?"

→resolution

Exchange Path

Say"Happy to set up an exchange for you. What size, color, or item would you like instead? Please also confirm the item you're returning and the reason for the exchange."

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

Say"Your exchange is confirmed! I've emailed you a prepaid return label for the original item and a confirmation for your new order exchange.orderId. The replacement will ship once we receive the return. Anything else I can help with?"

→resolution

Refund Approval

Approval
Slack.RequestApproval to #returns-approvals, approver: returns_ops_lead
Context sent:order.id, order.total, customer.email, return.reason, agent risk assessment
  • Approved approved →generate-return-label
  • Rejected rejected →escalation-human
  • No response within 30 min →escalation-human

Damaged or Wrong Item

Say"I'm really sorry about that — receiving a damaged or incorrect item is never acceptable. I want to get this resolved quickly for you. Could you share your order ID and email so I can pull up the details?"

OrderManagement.GetOrder using order.id and customer.email

CRM.LogIssue tagged damaged-or-wrong, linked to order.id

Agent
assess whether to reship immediately without requiring a return or to request photo evidence before reshipping.
Goal:resolve the customer's issue as fast as possible while following fraud-prevention guidelines for order.total.
Constraints:never skip return requirement for orders above USD 150 without manager approval; always log the issue in CRM before taking action.
Tools available:OrderManagement.GetOrder, OrderManagement.CreateReplacementOrder, ReturnsManagement.WaiveReturn, kb.damaged-item-policy
  • 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

Say"Thanks for sending that over — I've reviewed the details and will get a replacement on its way to you now."

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

Say"I completely understand your frustration. Looking at your order, the purchase date of order.purchaseDate falls outside our policy.returnWindowDays-day return window, so I'm unable to process a standard return."

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

Say"I've applied a store credit equal to the item value to your account — you'll receive an email with details shortly. We appreciate your understanding and hope to see you shop with us again."

→resolution

Final Sale Ineligible

Say"I can see this item was purchased as a final sale item, which means it isn't eligible for returns or exchanges under our policy. I'm sorry for the inconvenience."

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

Agent
review the specific reason the item was flagged ineligible and determine whether any documented policy exception applies.
Goal:find a fair resolution that aligns with policy while preserving customer satisfaction where possible.
Constraints:never override a final sale classification without manager-level approval; never issue a refund outside policy without an escalation record in CRM.
Tools available:ReturnsManagement.CheckEligibility, CRM.LogNote, kb.return-exchange-policy
  • 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

Say"I want to make sure this gets the attention it deserves. I'm escalating your case to a senior member of our team who will be in touch shortly with a resolution. I'm sorry for the inconvenience and appreciate your patience."

Resolution

Say"Is there anything else I can help you with today? If you have any questions about your return or exchange, don't hesitate to reach out — we're always happy to help."

CRM.UpdateCase status: resolved, linked to order.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ voice▣ text▣ chat▣ sms

Product Availability / Stock Inquiry

RetailInventorySupport

Gather Product Details

Say"Hi there! I'd be happy to help you check on product availability. Could you share the product name, SKU, or a quick description of what you're looking for?"
Detect
intent on customer message
  • 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

Say"No problem — let me help narrow that down. Do you have a SKU from a receipt or the website, or can you describe the item a bit more — for example, the category, brand, or color?"
  • 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

Say"Got it — do you have a preferred size, color, or any other variant you need? And are you looking to pick it up at a store near you, or would online ordering work for you?"
  • 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

Say"What's your zip code or the store location you'd like to check?"
  • 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

Say"Great news — product.name is available online right now. You can add it to your cart and check out at your convenience. Would you like me to send you a direct link, or is there anything else I can help you with?"

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

Say"Good news — product.name is in stock at store.name. You can head in to grab it, or in some cases we can reserve it for you. Would you like to reserve it, or do you have any other questions?"

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

Say"Perfect — I've placed a hold on product.name at store.name for you. You'll typically have 24 to 48 hours to pick it up. Is there anything else I can help you with?"

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

Say"I can see product.name is available, but the nearest store with stock is store.name, which is about store.distance away. We may be able to ship it directly to you from that store, or arrange a transfer to a closer location — would either of those work for you?"

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

Say"I've arranged for product.name to be shipped to you from store.name. You'll receive a confirmation and tracking info at customer.email once it ships. Is there anything else I can help with?"

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

Say"I've submitted a transfer request to bring product.name to your preferred store. Once it arrives — usually within a few business days — we'll reach out to let you know it's ready. Can I grab your contact info to make sure you get that notification?"

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

Say"I'm sorry to share that product.name has been discontinued and is no longer available through us. I know that's not the news you were hoping for. I can suggest a few comparable items that might work for you — would that be helpful?"

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

Say"Unfortunately product.name is out of stock right now — both online and at nearby stores. I can sign you up for a restock alert so you'll be notified as soon as it's available again. Would you like me to do that?"
  • 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

Say"You're all set — we'll send a notification to customer.email or customer.phone as soon as product.name is back in stock. Is there anything else I can help you with today?"

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

Agent
review the product catalog and customer context to recommend up to three comparable alternatives for product.name.
Goal:identify alternatives that match the customer's likely intent — same category, similar price point, available in the preferred channel (online or in-store).
Constraints:only recommend items confirmed in stock; never suggest items with an active recall or items flagged as discontinued; limit suggestions to three.
Tools available:ProductCatalog.GetSimilarItems, InventoryManagement.GetOnlineStock, InventoryManagement.GetStoreStock, kb.product-substitution-guidelines
  • 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

Say"Here are a few options I think you'd like as alternatives to product.name: alternative.name (SKU alternative.sku) is currently available and very similar in features and price. Would any of these work for you, or would you like more details on one of them?"
  • 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

Say"I'm sorry — I ran into a technical issue pulling up the inventory details right now. I'd recommend checking the website directly for the most up-to-date stock information, or you can call store.name at store.phone and they can look it up in-store. I'm logging this on our end so we can look into it."

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

Say"I completely understand — let me connect you with a team member who can take care of this for you right away."

CRM.CreateCase priority: high, tagged availability-escalation, linked to product.sku, customer.name

CRM.LogInteraction tagged escalated-to-human

Resolution

Say"Thanks for reaching out — happy to help anytime. Have a great day!"

CRM.LogInteraction tagged inquiry-resolved, linked to product.sku

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms

Prescription Refill Request

HealthcarePharmacyRefill

Patient Verification

Say"Thank you for calling. I'm here to help with your prescription refill. To get started, can I have your full name and date of birth?"

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

Say"Thank you, patient.fullName. Which prescription would you like to refill today — including the medication name and dosage?"

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

Say"I can see your prescription for prescription.name prescription.dosage, last filled on prescription.lastFillDate, with prescription.refillsRemaining refill(s) remaining. Your pharmacy on file is pharmacy.onFile. Would you like to send it there, or use a different pharmacy?"
  • 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

Say"No problem. Please provide the name and address of your preferred pharmacy and I'll update that for you now."

Epic.UpdatePreferredPharmacy with pharmacy.name and pharmacy.address

CRM.UpdatePatientRecord with updated pharmacy.name

Say"Your preferred pharmacy has been updated to pharmacy.name. I'll send your refill request there."

→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

Say"Your refill request for prescription.name has been sent to pharmacy.name. It should be ready by refill.estimatedReadyTime. Is there anything else I can help you with?"
  • Patient has another request another →patient-verification
  • Patient confirms they are done done →resolution-confirmed

No Refills Remaining

Say"It looks like there are no refills remaining on your prescription.name prescription. I'll send a refill authorization request to your prescribing provider, provider.name, on your behalf. They'll review it and respond typically within one to two business days."

Epic.SendRefillAuthorizationRequest to prescription.prescriberId for patient.memberId and prescription.name

CRM.LogInteraction with patient.memberId, note: refill authorization requested, no refills remaining

Say"The request has been sent. You'll be notified once your provider responds. If you have an urgent need, please let me know and I can escalate this."
  • Patient indicates urgent medical need urgent →escalation-clinical
  • Patient acknowledges and is satisfied acknowledged →resolution-pending-authorization

Prescription Expired

Say"I can see that your prescription for prescription.name expired on prescription.expiryDate. A new prescription requires your provider to issue a fresh script, which typically means scheduling an appointment. I can help you get that set up."

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

Say"I'll connect you to scheduling now so you can book a time with provider.name to get a new prescription issued."

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

Say"I want to make sure you get the right support. I'm transferring you to a clinical staff member now who can assist with your request directly."

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

Say"Let me connect you with a member of our support team who can look into this further and make sure everything is taken care of."

CRM.CreateCase priority: high, tagged: refill-escalation, linked to patient.memberId, prescription.name

Resolution — Confirmed

Say"Wonderful — your refill for prescription.name is on its way to pharmacy.name and should be ready by refill.estimatedReadyTime. Take care and don't hesitate to reach out if you need anything."

CRM.LogInteraction with patient.memberId, note: refill successfully submitted, case closed

Resolution — Pending Authorization

Say"We've sent your refill authorization request to provider.name. Once they respond, your pharmacy will be notified. If you haven't heard back in two business days, please don't hesitate to call us again."

CRM.LogInteraction with patient.memberId, note: patient informed of pending provider authorization

Resolution — Appointment Booked

Say"Your appointment request has been submitted with provider.name. You'll receive a confirmation shortly. Once you're seen, your provider can issue a new prescription for prescription.name."

CRM.LogInteraction with patient.memberId, note: appointment booked for expired prescription renewal

Resolution — No Action

Say"Understood — no action taken today. If you change your mind or your situation becomes more urgent, please don't hesitate to call us back. Take care."

CRM.LogInteraction with patient.memberId, note: patient declined appointment scheduling, no refill action taken

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ sms▣ email▣ chat

Policy Renewal Reminder / Confirmation

InsuranceRenewalRetentionBilling

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.

Detect
customer intent from inbound reply or inbound call
  • 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.

Detect
customer intent from inbound reply or call
  • 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

Say"Thank you for reaching out about your policy renewal. For security purposes, I'll need to verify your identity before we proceed. Could you please provide your date of birth and the last four digits of your Social Security Number?"

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.

Say"I've pulled up your policy policy.number. Your current premium is policy.current_premium and your renewal premium is policy.renewal_premium. Your renewal date is policy.renewal_date."
  • 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

Say"I can see there is an outstanding balance of billing.outstanding_balance on your account. Unfortunately, we'll need to resolve this before we can process your renewal to avoid a lapse in coverage. I can help you pay the balance now, or we can explore a payment plan."

BillingPlatform.GetPaymentOptions for policy.number

Agent
assess the customer's situation and determine the best path to resolve billing.outstanding_balance.
Goal:resolve the outstanding balance so renewal can proceed, either by collecting full payment now or arranging an approved payment plan.
Constraints:never proceed with renewal while a balance remains unresolved; payment plans must comply with kb.billing-payment-plan-policy; never waive balances without supervisor approval.
Tools available:BillingPlatform.ProcessPayment, BillingPlatform.CreatePaymentPlan, kb.billing-payment-plan-policy, CRM.LogInteraction
  • 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

Say"I completely understand — a premium change can be surprising. Let me walk you through the factors that contributed to the updated rate."

UnderwritingEngine.GetRateChangeFactors for policy.number

Say"The adjustment to policy.renewal_premium reflects changes in policy.coverage_summary, along with updated risk factors and market conditions. I'm happy to explain any of these in more detail."

kb.rate-change-explanations — retrieve standard explanations for common rate change drivers

Detect
customer reaction to the explanation
  • 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

Say"No problem — I can log your requested coverage changes. These will need to be reviewed before we finalize your renewal. Please go ahead and describe the changes you'd like to make."

CRM.LogCoverageChangeRequest for policy.number with customer's requested modifications.

Agent
review the requested coverage changes against underwriting eligibility rules.
Goal:determine whether the requested changes can be approved automatically or require underwriter review before renewal is finalized.
Constraints:never finalize renewal with unapproved coverage changes; changes outside standard guidelines must be escalated; do not quote a revised premium without system confirmation.
Tools available:UnderwritingEngine.CheckEligibility, PolicyManagement.GetCoverageOptions, kb.underwriting-guidelines, CRM.LogInteraction
  • 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

Say"I'm sorry to hear you're considering not renewing. Before I process anything, I'd love to understand what's driving that decision — is it the premium, coverage, or something else?"
Detect
primary reason for 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

Say"I appreciate your loyalty and I'd like to see if we can find a better fit for you before you go. Based on your policy, here are some options that might help."

CRM.LogRetentionAttempt for policy.number

Agent
select and present the most relevant retention offers from kb.retention-offers based on the customer's stated reason for leaving.
Goal:retain the customer by presenting a genuinely compelling option — a discount, loyalty reward, or alternative coverage tier — that addresses their concern.
Constraints:never promise a discount that hasn't been confirmed as available via kb.retention-offers; do not exceed authorized discount thresholds without supervisor approval.
Tools available:kb.retention-offers, PolicyManagement.GetCoverageOptions, BillingPlatform.GetDiscountEligibility, CRM.LogInteraction
  • 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

Say"I understand, and I respect your decision. I've noted your intent not to renew policy policy.number. Your coverage will remain active until policy.expiry_deadline. You'll receive written confirmation of non-renewal shortly."

PolicyManagement.LogNonRenewalIntent for policy.number with cancellation reason.

CRM.UpdateCustomerRecord with non-renewal status and reason code.

DocumentDelivery.SendNonRenewalConfirmation to customer.email.

Renewal Confirmation

Say"Great — let's confirm your renewal. Your policy policy.number will be renewed at a premium of policy.renewal_premium. Your current payment method on file is billing.payment_method ending in billing.payment_method_last4. Would you like to use this method, or update it?"
Detect
customer payment method preference
  • 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

Say"Of course — please provide your new payment details and I'll update them securely on your account."

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

Say"I can schedule your renewal payment. Please note the payment must be received by policy.expiry_deadline to avoid any lapse in coverage. What date works for you?"

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.

Say"Your policy policy.number has been successfully renewed. Your confirmation number is renewal.confirmation_number and a full copy of your updated policy documents has been sent to customer.email. Is there anything else I can help you with today?"

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.

Say"I want to make sure you're taken care of, so I'm going to connect you with a specialist who can assist you further. Please hold for just a moment."

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.

Say"I've submitted your policy for underwriting review. A specialist will be in touch within two business days to discuss your options. You'll receive an email at customer.email confirming the review has been opened."

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.

Say"I'm going to connect you with our billing team who has the tools to resolve this quickly and ensure your coverage doesn't lapse. Thank you for your patience."

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.

Say"I want to make sure we do everything we can to find the right solution for you. I'm transferring you to one of our senior retention specialists right now who can work with you directly."

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."

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ text

Plan Change / Upgrade Request

TelecomPlan ChangeUpgradeBilling

Identity Verification

Say"Thanks for reaching out! I'm happy to help you with a plan change or upgrade. To get started, can I have your account number or the phone number associated with your account?"

CRM.LookupAccount using customer.accountNumber or customer.phone

Detect
identity verification outcome
  • 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

Say"I can see your account, customer.name. You're currently on the customer.currentPlan. Your next billing date is customer.billingCycleDate. Let me pull up the plans available to you."

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

Say"Here are the plans available for your account. I can walk you through the differences in data, speed, features, and pricing — just let me know what matters most to you."

kb.plan-catalog — present eligible options with pricing, data allowances, speeds, and feature highlights relevant to customer.currentPlan

Detect
customer intent after plan review
  • 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

Say"Let me check whether there are any current promotions or offers that apply to your account."

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

Say"That promotional rate needs a quick verification on my end before I can apply it. Let me get that sorted for you now."
Approval
Slack.RequestApproval to #plan-change-approvals, approver: billing_supervisor
Context sent:customer.accountNumber, customer.currentPlan, promotion.code, promotion.description, plan.selected
  • 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

Say"It looks like that specific plan isn't available for your device or location. Let me find you the closest alternative that would work best for you."

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

Say"Here's a summary before we make any changes: you'd be moving to plan.selected at plan.monthlyCost per month. The change would take effect on plan.effectiveDate, and your prorated charge for this billing cycle would be plan.proratedAmount. Shall I go ahead and apply that?"

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

Say"I want to make sure you have the full picture — because you're currently in a contract running until customer.contractEndDate, applying this change now would include an early change fee of fee.earlyChange. You have a couple of options: we can apply the change today with that fee, or we can schedule it to take effect at the end of your contract period at no extra cost."

kb.contract-terms-policy — confirm fee calculation and waiver eligibility for customer.accountNumber

Detect
customer decision on contract fee
  • 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

Say"No problem at all. I'll schedule your plan change to plan.selected to take effect on customer.contractEndDate, so there'll be no early change fee. You'll stay on your current plan until then, and we'll send you a reminder as that date approaches."

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

Say"I'm sorry — I'm running into a technical issue completing this change right now. I've logged your request and our team will manually apply the update within one business day. You won't lose your selected plan or pricing."

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

Say"You're all set! Your plan has been updated to plan.selected. The change is effective plan.effectiveDate, and your new monthly rate will be plan.monthlyCost. You'll get a confirmation sent to you shortly."

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

Say"That's completely fine — take your time. Can I get a good number or email to reach you on? I can also note the plans we discussed so you don't have to start over when you're ready."

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

Say"I want to make sure you get the right help here. I'm connecting you with a senior specialist now who can resolve this for you directly. Your account details and everything we've discussed will be passed along so you won't need to repeat yourself."

Resolution

Say"Is there anything else I can help you with today? We appreciate you being a customer and hope you enjoy your new plan."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ email

Payment / Billing Inquiry

TravelHospitalityBillingPaymentsDisputes

Intake & Verification

Say"Thank you for contacting us. I'd be happy to help you with your billing inquiry. Could you please share your booking confirmation number and the name and email address on the reservation?"
  • 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

Say"For the security of your account, I'm unable to access reservation or payment details without verifying your identity first. I'll need at least your booking confirmation number, the email address used at the time of booking, or the last four digits of the payment card used."
  • Customer supplies one or more valid identifiers CRS.LookupReservation →charge-identification
  • Customer is still unable to verify identity →escalation-human

Charge Identification

Say"I can see your reservation for booking.property covering booking.stayDates. Which charge would you like to discuss — could you tell me the amount and approximate date you saw it?"

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

Agent
review the matched charge against reservation details, policy documents, and payment history to produce a clear plain-language explanation for the customer.
Goal:explain exactly what the charge is, why it was applied, and cite the relevant policy or agreement accepted at booking.
Constraints:do not speculate about charges that cannot be confirmed in the reservation record; do not offer adjustments at this step — route to goodwill-options or billing-error-review if a correction may be warranted.
Tools available:PMS.GetReservationDetails, PMS.GetPaymentHistory, kb.billing-charge-definitions, kb.cancellation-policy, kb.resort-fee-policy
Say"Let me explain what that charge is for. charge.description was applied on charge.date in the amount of charge.amount. This is a standard fee outlined in your booking terms."
  • 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

Say"I completely understand your frustration. While this fee is outlined in the booking terms, I'd like to see what options I can offer you as a gesture of goodwill."
Agent
determine the best available goodwill offer within authorization limits based on customer history, loyalty tier, and policy.
Goal:offer a meaningful resolution that retains customer satisfaction without exceeding the authorized adjustment threshold.
Constraints:never waive fees that exceed agent.adjustmentLimit without escalation approval; never promise a refund without confirming eligibility first; check loyalty tier before offering points compensation.
Tools available:LoyaltyPlatform.GetAccountStatus, LoyaltyPlatform.AwardPoints, RefundAdjustmentTool.ApplyPartialWaiver, kb.goodwill-adjustment-policy
  • 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

Agent
assess whether the charge is a genuine billing error (duplicate, misapplied fee, incorrect amount, or post-checkout incidental not released).
Goal:confirm or rule out a billing error using reservation data, gateway records, and policy, then determine correct remediation action.
Constraints:do not initiate a reversal for amounts above agent.adjustmentLimit without escalation; always generate a case reference before communicating a timeline to the customer; never confirm a refund amount until the correction is validated in the system.
Tools available:PMS.GetPaymentHistory, PaymentGateway.LookupTransaction, RefundAdjustmentTool.InitiateCorrection, Salesforce.CreateCase, kb.billing-charge-definitions
  • 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

Say"I've confirmed the billing error and submitted a correction request. Your case reference number is case.referenceNumber. The adjustment will be reflected within 5 to 10 business days depending on your bank. You'll receive an updated receipt at customer.email shortly."
  • 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

Say"I can see that a refund of refund.amount was processed on refund.date. Depending on your bank or card issuer, this can take 5 to 10 business days to appear on your statement. If you don't see it after that window, please contact us and we'll investigate further with the payment processor."
  • 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

Say"This adjustment requires review by our billing specialist team, as it falls outside what I can authorize directly. I've opened a case with reference number case.referenceNumber and our team will contact you at customer.email within 2 business days with a resolution."

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

Say"I want to make sure this gets the attention it deserves. I'm escalating your case to a member of our billing team who has the tools to resolve this for you. Your case reference is case.referenceNumber and you can expect to hear from us at customer.email within 1 business day."

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

Say"I take this very seriously. I've flagged the transaction and escalated this to our fraud and security team as a priority. Your case reference is case.referenceNumber. A specialist will contact you at customer.email within 24 hours. In the meantime, you may also want to contact your card issuer directly to report the charge."

Resolution Confirmed

Say"I'm glad we were able to sort that out for you. Is there anything else I can help you with regarding your reservation or account?"

Salesforce.UpdateCase status: resolved, linked to booking.confirmationNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Password / Login Recovery

Financial ServicesAccount AccessSecuritySupport

Intake — Login Issue

Say"Thank you for reaching out. I'm here to help you regain access to your account. Can you briefly describe what's happening when you try to log in?"
Detect
nature of login issue reported by customer
  • 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

Say"Before I can make any changes to your account, I need to verify your identity. I'll ask you a few quick questions — please have your account details handy."

CRM.PullCustomerRecord using customer.registeredEmail or customer.accountNumber

IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN

Say"Can you please confirm your full name, date of birth, and either your account number or the email address registered on the account?"
Detect
identity verification outcome from verification.attemptCount and submitted details
  • 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

Say"I wasn't able to match those details. You have one more attempt before the account must be secured for your protection. Please double-check and try again — confirm your full name, date of birth, and the last four digits of your Social Security Number."

IdentityVerification.InitiateCheck for customer.fullName, customer.dateOfBirth, customer.lastFourSSN

CRM.IncrementAttemptCount

Detect
identity verification outcome on retry
  • 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

Detect
account status returned by core banking and fraud monitoring systems
  • 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

Say"Great — your identity is confirmed and your account looks clear. I'll send a password reset link now. Just to confirm: should I send it to the email address or phone number we have on file?"

CRM.VerifyContactInfo for customer.registeredEmail and customer.registeredPhone

Detect
whether registered contact information is current and reachable
  • 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

Say"I've just sent a one-time verification code to your registered contact. Please share that code with me once you receive it so we can proceed."
Detect
MFA code submission and validation outcome
  • 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

Say"A secure password reset link has been sent to you now. The link is valid for 15 minutes. Once you've reset your password, please try logging in and let me know if access is restored."
Detect
customer confirmation of access outcome
  • 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

Say"Your account was temporarily secured after several unsuccessful login attempts, which is a standard security measure. A mandatory waiting period is currently in effect before a reset can be issued."
Say"Once the cooling-off period has passed, you're welcome to contact us again and we can proceed with the reset right away. If you believe you did not make those login attempts yourself, please let me know now."
Detect
customer response to cooldown notice
  • 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

Say"Wonderful — I'm glad we got that sorted. Your access has been restored. For your security, I'd recommend choosing a strong, unique password and enabling two-factor authentication if you haven't already."

CRM.LogInteraction tagged password-reset-successful, linked to customer.accountNumber

CoreBanking.ClearLockStatus for customer.accountNumber

Resolution — Cooldown Advised

Say"Thank you for your patience. Your account remains protected in the meantime. Please reach back out once the waiting period has passed and we'll get the reset sent to you right away."

CRM.LogInteraction tagged cooldown-in-effect, linked to customer.accountNumber

Escalation — Identity Lockout

Say"I'm sorry — I wasn't able to verify your identity through this channel after the maximum number of attempts. For your protection, your account has been secured and the reset cannot proceed remotely."
Say"To restore access, you'll need to visit a branch in person with a valid government-issued photo ID, or complete our document verification process. I'll create a case for you now so the team is ready when you arrive."

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

Say"I want to make sure your account is fully protected. There's an indicator on your account that requires our fraud team to review it before any changes can be made. I'm going to escalate this to them now and a specialist will follow up with you shortly."

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

Say"Because the contact information we have on file may not be current, I'm not able to send the reset link through our standard process. I'll need to pass this to our verification team who can walk you through an alternative identity confirmation method."

CRM.CreateCase priority: medium, tagged outdated-contact-info-manual-review, linked to customer.accountNumber

CRM.LogInteraction tagged contact-info-outdated-escalation

Escalation — MFA Failure

Say"The one-time code didn't match what we sent. For your account's security, I'm unable to proceed with the reset at this time. I'll refer this to our account security team who will reach out to you directly to complete the verification safely."

CRM.CreateCase priority: medium, tagged mfa-failure-escalation, linked to customer.accountNumber

CRM.LogInteraction tagged otp-verification-failed

Escalation — Account Review

Say"It looks like there may be an additional restriction on your account that I'm not able to resolve through this channel. I'm escalating this to our account management team who can investigate and get back to you promptly."

CRM.CreateCase priority: medium, tagged account-status-restricted, linked to customer.accountNumber

CRM.LogInteraction tagged account-review-escalation

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Order Status Inquiry

RetailSupportShippingOrders

Greeting & Identity Verification

Say"Hi there! I'm here to help you track your order. Can I start with your order number and the email address on your account?"

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

Say"No problem — let me try to find your order using your name or email address."

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

Say"I wasn't able to locate an order under that information. Please check your confirmation email for your order number — it would have been sent to the address you used at checkout. Once you have it, feel free to reach back out and I'll get that sorted for you right away."
  • 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

Say"Your order is currently being processed in our warehouse and hasn't shipped yet. Based on current timelines, it's expected to ship by order.expectedShipDate. Once it ships, you'll receive a confirmation email with your tracking number."
  • 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

Say"Great news — your order is on its way! Here's the latest update: your package was last scanned at carrier.lastScanLocation on carrier.lastScanDate. Your estimated delivery window is carrier.estimatedDelivery. You can also track it directly using tracking number carrier.trackingNumber."
  • Customer is satisfied confirmed →resolution
  • Customer has a concern about the delivery address or timing address_concern →escalation-human

Stale Tracking

Say"I can see your order shipped, but the tracking hasn't updated since carrier.lastScanDate. This can sometimes happen due to carrier delays between scan points. I'm flagging this for you now."

kb.shipping-delay-policy — review thresholds for carrier claim eligibility and customer communication guidelines

Agent
assess the stale tracking situation using carrier.lastScanDate, carrier.estimatedDelivery, and kb.shipping-delay-policy.
Goal:determine whether the package is within an acceptable delay window or if a carrier claim should be initiated.
Constraints:do not promise a replacement or refund without escalation approval; never file a carrier claim if fewer than 5 business days have elapsed since last scan; always advise the customer of next steps before closing.
Tools available:CarrierAPI.GetTrackingStatus, OMS.GetOrderDetails, kb.shipping-delay-policy
  • 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

Say"Based on the current information, your package is within the window where carrier delays can occur without updates. I'd recommend checking back in 24 to 48 hours. If it still hasn't moved by then, please contact us and we'll file a carrier claim on your behalf right away."
  • Customer is willing to wait confirmed →resolution
  • Customer wants to escalate now escalate_now →escalation-human

Delivered But Not Received Check

Say"Our system shows your order was marked as delivered on carrier.deliveredDate. Did you receive it at customer.shippingAddress?"
Detect
customer response on whether package was received
  • 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

Say"Sometimes carriers leave packages with a neighbor, in a mailroom, or in a designated safe spot. Could you check around your building entrance, with your building manager, or with neighbors before we proceed? I'll wait for you."
  • Customer finds the package confirmed →resolution
  • Customer confirms the package is truly not there not_received →lost-package-review

Lost Package Review

Say"I'm sorry to hear that — let me open a lost package review for you right now."

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

Say"I've flagged your order and created a case for our team. Depending on the carrier's investigation timeline — typically 5 to 7 business days — you may be eligible for a replacement or refund. I'll now connect you with a specialist who can confirm next steps and options for you."
  • 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

Say"I'm going to connect you with one of our senior support specialists right now who can take care of this for you. I've already shared all your order details with them so you won't have to repeat yourself."

Resolution

Say"Is there anything else I can help you with today?"
  • Customer has another question another_question →greeting-and-identity
  • Customer is done confirmed CRM.LogInteractionSummary with customer.email and order.id
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ chat▣ voice▣ sms

New Account Onboarding

Financial ServicesOnboardingKYCCompliance

Intent Capture

Say"Welcome! I'm here to help you open a new account today. Before we get started, could you tell me what type of account you're looking to open — for example, a personal checking, savings, or investment account?"
Detect
customer account type intent
  • 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

Say"No problem at all. Let me walk you through the most common options. A checking account is great for everyday spending, a savings account helps you earn interest on funds you set aside, and an investment account is for growing wealth over time. Which of those sounds closest to what you need?"

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

Say"Great choice! To open your account, I'll need to collect some information. This typically takes just a few minutes and everything is encrypted and secure. Let's start with your full legal name and date of birth."

CRM.CreateDraftRecord to initialize a draft customer profile

Say"Next, I'll need your government-issued ID number — such as a passport or driver's license number — along with your Social Security Number or Tax ID."
Say"Finally, I'll need your current address, employment status, approximate annual income, and the funding method you plan to use for your initial deposit."

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

Say"It looks like the funding method or deposit amount you've selected may not meet our current requirements. Let me explain what we can accept."

kb.funding-methods-policy — retrieve supported funding sources and minimum initial deposit thresholds

Say"We accept bank transfers, debit card funding, and wire transfers for initial deposits. The minimum opening deposit for this account type is noted in our policy. Would you like to use an alternative funding method, or would you prefer I walk you through the options?"
  • 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

Say"I'm now going to submit your information for identity verification. This is a standard step required to open any account and usually takes just a moment."

KYCService.SubmitVerification with customer.fullLegalName, customer.dateOfBirth, customer.govIdNumber, customer.taxId, customer.address

Detect
KYC verification result
  • 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

Say"I wasn't able to verify your identity with the information provided. This can sometimes happen due to a name mismatch or a data entry issue. Could you double-check your details, or provide an alternative government-issued ID document?"

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

Say"Thank you — your identity has been verified. I'm now running a brief compliance check, which is required by law for all new accounts. This will only take a moment."

ComplianceScreening.RunCheck with customer.fullLegalName, customer.taxId, customer.dateOfBirth, customer.address

Detect
compliance screening result
  • 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

Say"Everything has cleared. I'm now creating your account — this will just take a moment."

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

Say"Your account is all set! Here's what you need to know to get started."
Say"You'll receive a welcome email shortly with your login credentials, a link to download our mobile app, and instructions for setting up two-factor authentication. Your initial deposit will be reflected within one to two business days depending on your funding method."

kb.new-account-faq — retrieve top questions about first login, mobile app access, and deposit timelines

Say"Is there anything else you'd like to know about accessing your account, setting up transfers, or any of our other services?"
  • 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

Say"I'd be happy to help you get to the right place. Business and trust accounts require a specialist who can walk you through the additional documentation and requirements for those account types."

CRM.CreateLeadRecord with customer.phone, customer.email, customer.accountType, note: specialist-referral

Say"I'm transferring your details to a specialist now. You can expect a call or message within one business day. Is there a preferred contact time or number I should pass along?"
  • 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

Say"I'm sorry, but I'm not able to proceed with your account opening at this time. For regulatory reasons, your application requires a review by our compliance team. You will be contacted directly within two business days with next steps. We appreciate your patience."

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."

Say"I'm going to connect you with one of our specialists who will be able to assist you further. Thank you for your patience — you're in good hands."

Session Close

Say"Thank you for reaching out to us today. If you have any questions in the future or would like to revisit opening an account, we're always here to help. Have a great day!"

CRM.CloseSession with session outcome logged

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ voice▣ email

Loyalty / Rewards Inquiry

RetailLoyaltyRewardsSupport

Intake & Account Lookup

Say"Welcome! I'd be happy to help with your rewards account. Could you share the email address or phone number linked to your loyalty account?"

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

Say"Just to protect your account, can you confirm your full name and the last four digits of the phone number on file?"
  • Identity confirmed on first or second attempt verified →inquiry-classification
  • Identity fails after two attempts unverified →escalation-human

Account Not Found

Say"I wasn't able to find an account with that information. Let's try a different detail — do you have an alternate email address or phone number you may have used when signing up?"

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

Say"Great, I've pulled up your account, customer.fullName. Your current balance is loyalty.pointsBalance points and your tier is loyalty.tier. What can I help you with today — checking your balance, redeeming rewards, reporting missing points, or something about expiration?"
Detect
customer intent from reply
  • 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

Say"You currently have loyalty.pointsBalance points in your account. You're at the loyalty.tier tier, and your points are set to expire on loyalty.expirationDate. Would you like to know how to use your points, or is there anything else I can help with?"

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

Say"You can redeem your points in a few ways: as a discount at checkout online or in-store, for gift cards, or toward eligible products. Your current balance of loyalty.pointsBalance points is worth — shall I walk you through how to apply them right now?"

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

Say"It looks like your current balance of loyalty.pointsBalance points is just below the minimum needed to redeem. I can let you know exactly how many more points you'd need, and share some ways to earn them faster if that's helpful."

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

Say"Your reward has been applied successfully. You'll see the discount reflected at checkout. Is there anything else I can help you with?"

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

Say"I'm sorry to hear your points didn't post — let's look into that. Can you share the receipt number or order number and the approximate date of the purchase?"

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

Say"Good news — it looks like those points actually did post to your account, though they may take up to 48 hours to appear in your balance display. Your current total is loyalty.pointsBalance points. Does that match what you're seeing?"
  • Customer confirms the issue is resolved resolved →resolution
  • Customer says the balance still looks wrong disputed →escalation-human

Unverified Transaction

Say"I wasn't able to locate that transaction in our system with those details. Could you double-check the receipt number or share any other details — like the store location or the total amount? That will help me dig further."

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

Agent
evaluate whether a manual points adjustment is warranted based on transaction details and loyalty account history.
Goal:determine if the missing points qualify for a manual credit under policy, and calculate the correct points amount to award.
Constraints:never issue a points adjustment above the policy maximum without manager approval; cross-reference kb.loyalty-rewards-policy for eligible purchase categories before approving any credit.
Tools available:LoyaltyPlatform.GetAccountDetails, OrderManagement.LookupTransaction, kb.loyalty-rewards-policy
  • 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

Approval
Slack.RequestApproval to #loyalty-ops-approvals, approver: loyalty_ops_manager
Context sent:customer.accountId, customer.fullName, transaction.receiptNumber, transaction.purchaseDate, transaction.amount, agent's assessment of missing points
  • Approved approved LoyaltyPlatform.CreditPoints →adjustment-confirmed
  • Rejected rejected →adjustment-declined
  • No response in 30 min →escalation-human

Adjustment Confirmed

Say"Great news — the missing points have been added to your account. Your updated balance is loyalty.pointsBalance points. You should see this reflected immediately. Is there anything else I can help you with?"

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

Say"I reviewed the details with our team, and unfortunately we weren't able to apply a points credit for this transaction based on our current policy. I know that's not the answer you were hoping for. I can share exactly why if that would be helpful, or connect you with a specialist who can look at this further."

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

Say"Your points are currently set to expire on loyalty.expirationDate. Our policy allows points to remain active as long as there's account activity within a set window. Would you like me to walk you through the details or check if any of your points are at risk?"
  • 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

Say"I understand how frustrating that is, especially when you've worked hard to earn those points. Unfortunately, the expiration date of loyalty.expirationDate falls outside the window where we're able to reinstate points under our current policy. I want to make sure I'm giving you the full picture — would you like me to explain how to keep future points active?"

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

Say"I completely understand your frustration, and I want you to know your loyalty to us genuinely matters. Let me make sure I explain our policy as clearly as possible so this makes sense."

kb.loyalty-rewards-policy — retrieve relevant policy section to explain to customer

Detect
customer sentiment after explanation
  • 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

Say"I want to make sure you get the best possible resolution on this. I'm connecting you with a member of our loyalty specialist team right now who has the authority to look into this further. Please hold just a moment."

Resolution

Say"I'm glad I could help sort that out for you today! Is there anything else you need before we wrap up?"

CRM.LogInteraction tagged resolved, linked to customer.accountId

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ text▣ email▣ chat

Group / Event Booking Inquiry

TravelHospitalityGroup BookingsEventsSales

Inquiry Intake

Say"Welcome! I'd love to help you plan your group or event. To get started, could you tell me a little about what you're looking to book — for example, is this a wedding, corporate retreat, conference, or another type of event?"
Detect
intent from customer opening message
  • 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

Say"No problem — let me ask a few quick questions to point you in the right direction. Are you looking for guest room blocks, a venue or meeting space, or a full package that includes both?"
Detect
intent on scope of booking need
  • 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

Say"Great! To find the best options for you, I'll need a few details. What are your preferred dates or a date range? Roughly how many guests or rooms are you expecting? Do you have a specific property or destination in mind? And do you have a budget range or any special requirements such as catering, AV equipment, transportation, or room blocks?"

Salesforce.CreateLead with customer.name, customer.email, customer.phone, source: group-inquiry

Detect
completeness of details provided
  • 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

Say"Thanks for sharing what you have so far. Just to make sure I can find the right fit — could you also confirm your estimated guest or room count, your preferred dates, and a rough budget range? Even a ballpark helps me tailor the options."

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

Say"That's perfectly fine — let me save your details and have someone follow up with you once you have a clearer picture. Could I get your best contact email and a name to reference?"

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

Agent
evaluate event.guestCount and event.roomCount against group booking thresholds.
Goal:determine whether the inquiry can be handled by this agent or must be routed to a group sales specialist or event sales manager.
Constraints:route to group-sales-specialist if room count exceeds 20 and is under 50; route to escalation-event-sales-manager if room count is 50 or more, if the event involves a full venue buyout, or if custom SLA or contract terms are mentioned; never attempt to quote contracts above these thresholds without specialist involvement.
Tools available:kb.group-booking-thresholds, Salesforce.GetLeadRecord
  • 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

Detect
availability result from inventory check
  • 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

Say"Good news — I've found availability that fits your event. Let me walk you through the options, including room rates, venue inclusions, and any packages that may suit your needs."

quoting-tool.GenerateProposal for event.type, event.dates, event.roomCount, event.budget, event.specialRequirements

Say"I'm putting together a formal proposal for you now. You'll receive it at customer.email shortly. It will include rates, inclusions, and a provisional hold on your preferred option. The quote reference is quote.id and it's valid until quote.expiryDate."

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

Say"I'm sorry — we don't have availability for those exact dates or at that property. Let me suggest a couple of alternatives that may work just as well for your group."

group-inventory-calendar.GetAlternativeDates for event.property, event.roomCount

property-management-system.GetNearbyProperties for event.destination, event.dates, event.roomCount

Say"Here are some options: alternativeDates at your preferred property, or alternativeProperties nearby with similar capacity and amenities. Would any of these work for your group?"
  • 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

Say"Absolutely — let me update the proposal to reflect your preferences. What would you like to adjust? For example, room count, dates, inclusions, or special requirements?"

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

Say"I've sent the revised proposal to customer.email. The updated quote is still referenced as quote.id. Do you have any other questions, or would you like to move forward?"
  • 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

Say"I understand — let me see what we can do to work within your budget. There may be tiered packages, off-peak pricing, or value-adds like complimentary meeting space or breakfast that could make a difference."

quoting-tool.GetTieredOptions for event.type, event.dates, event.roomCount, event.budget

kb.group-value-add-packages

Say"Here are a few alternatives at different price points, along with some inclusions that could offset costs. I can also flag this for our group sales team if you'd like a more tailored solution."
  • 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

Say"Wonderful choice! I'll place a provisional hold on that option for you right now while we finalize the details."

property-management-system.PlaceProvisionalHold for event.property, event.dates, event.roomCount, quote.id

Salesforce.UpdateLead status: hold-placed, hold.confirmationNumber

Say"Your provisional hold is confirmed. Your reference number is hold.confirmationNumber and it's held until hold.expiryDate. I'll send the contract and deposit instructions to customer.email shortly."

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

Say"Please review and sign the contract by hold.expiryDate and submit the deposit of deposit.amount by deposit.dueDate to secure your booking. Is there anything else I can help you with?"
  • 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

Say"Happy to help clarify. What questions do you have about the contract or deposit process?"

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

Say"I'll send you a quick reminder as your quote approaches its expiry. Please don't hesitate to reach out if you have any questions in the meantime."
  • 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

Say"Just a reminder — your provisional hold hold.confirmationNumber is set to expire on hold.expiryDate. To secure your booking, please sign the contract and submit your deposit of deposit.amount by deposit.dueDate."
  • 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

Say"Given the size and nature of your event, I'd like to connect you with one of our group sales specialists who can provide a fully tailored proposal and dedicated support throughout the planning process."

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

Say"You'll hear from salesSpecialist.name at salesSpecialist.email within one business day. I've shared all your event details so you won't need to repeat anything."
  • 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

Say"Your event requires the attention of our dedicated event sales manager, who handles large-scale and high-value bookings personally. I've escalated your inquiry and flagged all your details. You can expect a direct call or email within two business hours."

Resolution — Booking Confirmed

Say"Fantastic — your group booking is confirmed! You'll receive your signed contract and booking summary at customer.email. We're looking forward to hosting your event and will be in touch as your date approaches. Is there anything else I can help you with today?"

Salesforce.UpdateLead status: closed-won

property-management-system.ConfirmBooking for hold.confirmationNumber

Resolution — Specialist Assigned

Say"All set — your details are with our group sales team and you'll be hearing from a specialist shortly. Thank you for considering us for your event, and please don't hesitate to reach back out if anything comes up in the meantime."

Salesforce.UpdateLead status: specialist-assigned

Resolution — Lead Captured

Say"Perfect — I've saved your information and you'll hear from us as your plans take shape. Thank you for reaching out, and we look forward to helping you create a memorable event."

Resolution — Hold Expired

Say"It looks like the provisional hold on your event dates has expired. If you're still interested, I'd be happy to check current availability and set up a new hold. Just let us know."

Salesforce.UpdateLead status: hold-expired

property-management-system.ReleaseHold for hold.confirmationNumber

Resolution — No Booking

Say"I'm sorry we weren't able to find the right fit this time. If your plans change or you'd like to explore other options down the road, we'd love to hear from you. I'll keep your details on file."

Salesforce.UpdateLead status: closed-lost

Resolution — No Contact

Say"We weren't able to connect fully this time, but if you'd like to revisit your group or event needs in the future, please don't hesitate to reach out. We're here to help."

Salesforce.UpdateLead status: no-contact

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ chat▣ sms▣ text▣ email

General FAQ Retail

RetailFAQSupport

Intake

Say"Hi there! I'm here to help. What question can I answer for you today?"
Detect
intent category of customer question
  • 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

Say"Here are the details for your nearest store: store.address. Store hours are store.hours. Is there anything else I can help you with?"
Detect
sentiment on customer reply
  • 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

Say"Happy to help with returns and exchanges. Here's our current policy: items in original condition can be returned within 30 days of purchase with a receipt. Some exclusions apply for final-sale and perishable items. Would you like more detail on any part of this?"
Detect
sentiment and intent on customer reply
  • 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

Say"We accept all major credit and debit cards, PayPal, Apple Pay, and Google Pay. We also offer financing through our retail credit partner — you can apply at checkout. Is there a specific payment method you'd like to know more about?"
Detect
sentiment and intent on customer reply
  • 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

Say"Here's what I found for product.name: product.availability. Would you like details on pricing, specifications, or nearby store availability?"
Detect
intent on customer reply
  • 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

Say"Here are the full details I have on product.name. If you need information I haven't covered or want to check stock at a specific location, I can look into that as well."
Detect
intent on customer reply
  • 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

Say"To help with anything related to your order or account, I'll need to verify your identity first. Could you please provide your order number or the email address associated with your account?"
Detect
customer response
  • 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

Say"I've pulled up your account. What would you like help with regarding your order or account details?"
Detect
intent on customer reply
  • 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

Detect
whether FAQ content confidently covers the question
  • 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

Say"Based on our current information, here's the answer to your question: I'll do my best to keep this accurate and up to date. If anything has changed recently, our team can confirm the latest details."
Detect
sentiment on customer reply
  • 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

Say"That's a great question, and I want to make sure I give you accurate information rather than guess. I don't have a definitive answer on hand for this one. Let me connect you with a team member who can confirm the details."

→escalation-human

Policy Pushback

Say"I completely understand your frustration, and I appreciate you sharing that. Our policies are set by the team, and I want to make sure your feedback reaches the right people. Would you like me to connect you with a team member who can discuss this further or explore options with you?"
Detect
customer response
  • 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

Say"I'm going to connect you with one of our team members who will be able to help you directly. Thank you for your patience — someone will be with you shortly."

Resolution

Say"Glad I could help! If you ever have more questions about our store, products, or policies, don't hesitate to reach out. Have a great day!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ text▣ chat▣ sms

General FAQ / Product Info

Financial ServicesFAQProduct InfoSupport

Intake

Say"Thanks for reaching out. I'm here to help with any questions about our products, accounts, rates, fees, or policies. What would you like to know today?"
Detect
customer intent on opening message
  • 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

Say"Happy to help — could you give me a bit more detail? For example, are you asking about a specific product like a high-yield savings account or CD, or about a fee or policy on an existing account?"
Detect
clarified intent on follow-up reply
  • 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

Agent
identify the precise product, fee, rate, or policy topic from query.topic and query.product, then determine the right knowledge base source to query.
Goal:pinpoint exactly what information the customer needs — product mechanics, current rate, fee schedule, or policy rule — so the correct, up-to-date record is retrieved.
Constraints:never guess at rates, fees, or policy details; never surface a rate or fee that has not been confirmed as current from the rate-fee-database or faq-cms; always note if customer.state may affect product availability or terms.
Tools available:FAQCMS.LookupTopic, RateFeeDatabase.QueryProduct, CRM.GetCustomerProfile, kb.product-catalog
  • 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)

Detect
lookup result quality
  • 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

Detect
promotional or time-sensitive context
  • 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

Say"Just so you know, there was a recent update to this information — I want to make sure I give you the latest. One moment."
  • 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

Say"Great news — there's a current promotional offer that applies here. Let me share the details, including when it expires."
Say"The current promotional rate or terms are: promo.terms. This offer is available until promo.expiry. Standard terms apply after that period."
Say"Would you like me to walk you through how to take advantage of this, or do you have any other questions?"
Detect
customer follow-up intent
  • 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

Detect
nature of investment question
  • 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

Agent
compose a clear, plain-language response to the customer's question using retrieved content from product.rateInfo, product.feeInfo, or product.policyInfo.
Goal:give the customer an accurate, complete, and easy-to-understand answer that directly addresses query.topic without jargon; tailor any state-specific nuances if customer.state affects the answer.
Constraints:never paraphrase or interpolate policy or rate data beyond what was retrieved; do not omit material terms or conditions; do not present promotional terms as permanent; always surface any applicable footnotes or conditions attached to the retrieved record.
Tools available:FAQCMS.LookupTopic, RateFeeDatabase.QueryProduct, kb.product-catalog, kb.fee-schedule
Say"Here's what you need to know about product.name: product.policyInfo"
Say"Is there anything about that I can clarify, or do you have another question?"
Detect
customer follow-up intent
  • 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

Agent
compose a plain-language answer to the customer's general investment product question using retrieved content, then append the required regulatory disclaimer from disclaimer.text.
Goal:answer the general informational question accurately while ensuring the required compliance language is delivered before closing the topic.
Constraints:the disclaimer from ComplianceDisclaimerLibrary.GetDisclaimer must be appended verbatim and in full — it may not be shortened, paraphrased, or omitted; if the customer asks for a personalized recommendation, stop and route to escalation immediately.
Tools available:FAQCMS.LookupTopic, ComplianceDisclaimerLibrary.GetDisclaimer, kb.product-catalog, kb.compliance-disclaimer-library
Say"Here's a general overview of product.name: product.policyInfo"
Say"disclaimer.text"
Say"Do you have any other questions I can help with?"
Detect
customer follow-up intent
  • 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

Say"To access any details specific to your account, I'll need to verify your identity first. This should only take a moment."

IdentityVerification.InitiateCheck for customer.id via query.channel

Detect
verification outcome
  • 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

Say"No problem — I'm not able to pull up account-specific information without verification, but I'm happy to answer any general questions about our products, rates, or policies."
Detect
customer response
  • 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

Say"Thanks for verifying. I can now look into the details for your account."
Detect
nature of account detail requested
  • 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

Say"I want to make sure I give you accurate information, and I don't have a confident answer to that specific question right now. Rather than guess, I'd like to connect you with someone who can give you a definitive answer."

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

Say"I'm going to connect you with one of our specialists who will be able to help you fully with this. You won't need to repeat yourself — I'm passing along everything we've covered."

Close Interaction

Say"You're all set. If you ever have more questions about our products or accounts, don't hesitate to reach out. Have a great day!"

CRM.LogInteraction with query.topic marked resolved and customer.status updated

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms▣ text

General FAQ — Healthcare

HealthcareFAQPatient Support

Intake

Say"Hello, thanks for reaching out to us today. I'm here to help answer your questions about our services, hours, billing, insurance, and more. Could you tell me briefly what you're looking for help with?"
Detect
intent on patient opening message
  • 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

Say"Thanks for reaching out. I want to make sure I point you in the right direction — could you share a bit more detail about your question? For example, is this about a bill, an upcoming appointment, our services, or something else?"
Detect
intent on follow-up message
  • 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

Say"I can help with billing questions. Our billing team handles payments, payment plans, and statements. patient.name, are you asking about a specific bill or charge, or do you have a more general question about payment options?"
  • 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

Say"Based on our billing policy: [answer from kb.billing-faq]. Does that answer your question, or is there anything else I can clarify for you?"
  • 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

Say"I can help with scheduling. Are you looking to book a new appointment, reschedule or cancel an existing one, or do you have a question about our scheduling process?"
  • 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

Say"Here's what I can tell you about our scheduling: [answer from kb.scheduling-faq]. Would you like me to help you get connected to schedule directly, or is there anything else?"
  • 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

Say"To get you scheduled, I'll connect you with our scheduling team or patient portal. Do you have a preferred provider or location, and are you an existing patient with us?"
  • 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

Say"I just need to verify a couple of details so I can pull up your record. Could you please confirm your date of birth and the phone number or email we have on file?"
  • 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

Say"Welcome — we're glad you're considering us for your care. As a new patient, you'll want to complete our registration process. Here's how that works: [answer from kb.new-patient-faq]. Would you like me to share the link to our patient portal to get started, or connect you with our front desk?"
  • 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

Say"I can help with insurance questions. Are you asking about which insurance plans we accept, how to verify your coverage, or something about a referral or authorization?"
  • 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

Say"Here's what I can share: [answer from kb.insurance-faq]. For the most accurate coverage details tied to your specific plan, our insurance team can verify your benefits directly. Would that be helpful?"
  • 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

Say"I can tell you about the services and specialties we offer. What would you like to know — are you asking about a specific procedure, a specialty area, or whether we offer telehealth visits?"
  • 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

Say"Here's what I can share about our services: [answer from kb.services-faq]. Keep in mind, for questions about whether a specific treatment is right for you personally, our clinical team would be the best resource. Is there anything else I can help you with?"
  • 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

Say"I can help with location and hours. Do you have a specific facility or clinic in mind, or would you like general information about our locations?"
  • 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

Say"Here are the details for facility.name: [address, hours from kb.facility-directory]. Is there anything else you need, such as directions or a phone number?"
  • 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

Say"I can help with general questions about prescriptions. Are you asking about refilling a prescription, our pharmacy partners, or something about prior authorization for a medication?"
  • 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

Say"Here's what I can share: [answer from kb.prescriptions-faq]. For anything specific to your prescription or medical history, your care team or pharmacist will have the most accurate guidance. Is there anything else I can help with?"
  • 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

Say"To access any account-specific information, I'll need to verify your identity first. Could you please provide your full name, date of birth, and the phone number or email address associated with your account?"

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

Say"Thank you — I've verified your identity. Let me pull up the information you need."
  • 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

Say"I wasn't able to verify your identity with the information provided. For security purposes, I'm not able to share account-specific details without verification. You're welcome to contact us directly by phone or visit one of our locations with a valid photo ID. Is there anything general I can help you with in the meantime?"
  • 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

Agent
search available knowledge sources to find the best available answer to the patient's question.
Goal:retrieve an accurate, policy-aligned answer from kb.general-faq, kb.billing-faq, kb.services-faq, or kb.facility-directory without guessing or fabricating information.
Constraints:never provide clinical advice, diagnoses, or medication guidance; if no confident answer is found, acknowledge uncertainty explicitly and do not speculate; never access patient records without verified identity.
Tools available:kb.general-faq, kb.billing-faq, kb.services-faq, kb.scheduling-faq, kb.insurance-faq, kb.facility-directory, kb.prescriptions-faq
  • Answer found with high confidence answer_found →deliver-fallback-answer
  • No reliable answer found in knowledge base no_answer →acknowledge-uncertainty

Deliver Fallback Answer

Say"Based on our available information, here's what I can share: [answer retrieved]. Is that helpful, or do you have any follow-up questions?"
  • 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

Say"I want to make sure you get accurate information, and I don't have a confident answer to that specific question in our resources right now. Rather than guess, I'd recommend speaking directly with our team who can give you a verified answer. Would you like me to connect you with someone, or point you to our patient portal for more information?"
  • 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

Say"I appreciate you sharing that with me. I'm not able to provide clinical advice, diagnoses, or guidance on symptoms — that's something a licensed provider needs to assess for your safety. If you have a medical concern, I'd encourage you to contact your care team directly, schedule an appointment, or if it's urgent, please call 911 or go to your nearest emergency room. Would you like help scheduling an appointment or finding a location?"
  • 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

Say"If you or someone else is experiencing a medical emergency, please call 911 or go to your nearest emergency room immediately. Do not wait for a callback. Is there anything else I can do to help right now?"

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

Say"I'm going to connect you with a member of our team who can help you further. Please hold for just a moment — or if you'd prefer, I can arrange for a callback. Thank you for your patience."

Resolution

Say"I'm glad I could help. If you have any other questions in the future, don't hesitate to reach out. Take care, and have a great day!"

CRM.LogInteraction with question.category and resolution status

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ sms

Flight/Trip Disruption Support

TravelHospitalityDisruptionRebooking

Intake & Verification

Say"Thank you for contacting Travel Support. I'm here to help you through this disruption as quickly as possible. Can I please have your booking confirmation number and the name on the reservation?"

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

Say"For your security I need to verify your identity before making any changes. I'll ask you a couple of quick questions."

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

Say"I can see your booking, booking.passengerName. Can you tell me what's happening right now — is your flight cancelled, delayed, or are you dealing with something else like a hotel or connection issue?"

PNR.GetAffectedSegment for booking.confirmationNumber to pre-populate trip.affectedSegment

Detect
nature of disruption reported by customer
  • 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

Say"I'm sorry about the disruption to your journey. Let me pull up the best available options to get you to trip.destination as quickly as possible."

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

Agent
evaluate available rebooking alternatives against booking.itinerary and customer preference.
Goal:identify the best one or two options that minimize total travel time and respect fare class entitlements, including partner carriers if same-carrier options are inadequate.
Constraints:never rebook onto a flight that creates a connection under 45 minutes at an international hub; do not offer partner carrier options that exceed the authorized fare difference threshold per kb.rebooking-policy without escalation; always check if minor.travelingAlone is true before proceeding.
Tools available:GDS.SearchAvailability, GDS.CheckSeatMap, kb.rebooking-policy, PNR.GetAffectedSegment
  • 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

Say"I've found a flight that works — here are the details: rebooking.option. Does this work for you?"
  • 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

Say"There are no remaining seats available on our carrier for this route today, but I can get you on a partner airline. The next available option is rebooking.option. Shall I go ahead and book that for you?"

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

Say"No problem — let me pull up what you've booked and make sure everything looks right, including any fare differences or duplicate charges you may have incurred."

PNR.GetAffectedSegment to compare original booking.itinerary against new booking

GDS.CheckFareDifference for rebooking.fareDifference

Detect
outcome of fare and duplicate charge review
  • 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

Say"I'm sorry to hear about the accommodation issue. Can you tell me more — is the hotel overbooked, is there a room condition problem, or something else?"

kb.hotel-disruption-policy — review duty-of-care obligations, walk procedures, and compensation entitlements

Detect
hotel disruption type
  • 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

Say"I've located an alternative property that meets your needs. I'll go ahead and transfer your reservation now and make sure tonight's cost is covered. Does that work for you?"
  • 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

Say"Let me check your refund eligibility based on the type of disruption and your fare rules."

kb.refund-policy — verify refundability for booking.fareClass, disruption cause trip.disruption.cause, and weather exception rules

Agent
determine the correct refund path and compensation entitlement for this disruption.
Goal:establish whether the customer qualifies for a full refund, partial refund, travel credit, or no refund, and calculate any applicable compensation per policy.
Constraints:never promise a cash refund for non-refundable fares outside of carrier-caused cancellations; always flag weather-caused disruptions as limited-compensation per kb.refund-policy before setting expectations; do not issue compensation exceeding USD 300 without escalation approval.
Tools available:PNR.InitiateRefund, CompensationTool.CalculateEntitlement, kb.refund-policy
  • 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

Say"I want to be upfront with you — because this disruption is weather-related, our policy limits what compensation we're able to offer. I know that's frustrating. Here's what I can do for you right now: compensation.voucherAmount in travel credit, and I can waive the rebooking change fee."

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

Say"Based on your fare type and the circumstances, a refund isn't applicable here. However, I do want to make sure you're taken care of. Let me see what goodwill compensation I'm able to offer."

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

Say"You're all set. I'm sending your updated itinerary and any applicable vouchers to traveler.email right now. Is there anything else I can help you with before we wrap up?"

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

Say"I'm glad we could get that sorted for you. Safe travels, booking.passengerName — and don't hesitate to reach out if you need anything else on your journey."

Salesforce.CloseCase with outcome logged and customer satisfaction noted

Escalation — Secure Verification

Say"For your protection, I'm unable to make changes to this booking without completing identity verification. I'm going to connect you with our secure verification team who can assist you through a different channel."

Salesforce.CreateCase priority: high, tagged identity-verification-required

IdentityVerification.RouteToSecureChannel for traveler.phone or traveler.email

Escalation — Human Agent

Say"This situation needs the attention of one of our senior travel specialists who has the authority to handle this for you. I'm transferring you now and sharing all the details so you won't need to repeat yourself."

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

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat▣ text

Device Troubleshooting

TelecomSupportDeviceTroubleshooting

Identity Verification

Say"Thanks for reaching out to support. I'm here to help get your device working again. Can I start by pulling up your account? Please share your name and the phone number or account number associated with your account."

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

Say"No problem — I can look into this manually. Could you give me your full name, the device's phone number, and if you have it handy, the IMEI number printed on your device or in Settings?"

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

Say"Great, I've got your account. Now let's look at the device. Can you confirm the make and model of the device you're having trouble with, and roughly when the issue started?"

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

Say"Thanks. Tell me what's been happening with your device.make device.model — what does the problem look like, and have you already tried anything to fix it?"

CRM.LogInteraction note issue.description, issue.startDate, issue.stepsTried

Ticketing.CheckPriorContacts for customer.accountId, device.imei

Detect
prior contact history and issue severity
  • 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

Say"Let's start with the most common fixes — these resolve the majority of issues. I'll walk you through each one and we can check as we go."

kb.device-troubleshooting-standard-steps — retrieve model-specific restart and reset instructions for device.make device.model

Say"First, let's do a full restart. Hold down the power button and select Restart — let me know once it's back up."

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

Say"Good. Now let's make sure your software is up to date. Go to Settings, then General or About, then Software Update. Do you see an update available?"
  • 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

Say"The next step is resetting your network settings — this won't delete your apps or photos, but it will clear saved Wi-Fi passwords. Go to Settings, then General, then Transfer or Reset, then Reset Network Settings."

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

Say"Let's see where we are — is the issue resolved now, or are you still seeing the same problem?"
Detect
customer confirmation of issue status
  • Issue resolved confirmed →resolution-confirmed
  • Issue still present unresolved →advanced-troubleshooting

Advanced Troubleshooting

Agent
diagnose the remaining fault using device.imei diagnostics, issue.description, issue.stepsTried, and kb.advanced-device-troubleshooting.
Goal:identify whether the fault is software-recoverable (factory reset candidate), network/provisioning-related, or hardware in nature, and recommend the correct next step.
Constraints:never recommend a factory reset without explicitly warning the customer that all data will be erased and confirming backup; never promise a replacement device without first confirming warranty or insurance eligibility.
Tools available:NetworkDiagnostics.DeepScan, DeviceManagement.GetDiagnosticsReport, kb.advanced-device-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

Say"Based on the diagnostics, a factory reset is the most likely fix. This will erase everything on the device and restore it to out-of-box settings. Before we go further — do you have your data backed up, or would you like help with that first?"

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

Say"Give the device a moment to come back up — this can take a few minutes. Once you're back to the setup screen, let me know and we'll confirm everything is working."
Detect
customer confirmation of issue status after factory reset
  • Issue resolved confirmed →resolution-confirmed
  • Issue still present after factory reset unresolved →escalation-specialist

Physical Damage Assessment

Say"I'm sorry to hear the device has physical damage. Let me check what coverage options are available on your account."

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

Say"Good news — your device is covered under warranty. I'll get a repair or replacement order started for you now."

WarrantyInsurance.InitiateWarrantyClaim for device.imei, customer.accountId

Ticketing.CreateTicket tagged warranty-repair, linked to device.imei

CRM.LogInteraction note warranty claim initiated

Say"I've opened a warranty claim. You'll receive a confirmation at customer.email with next steps — typically within one business day. Is there anything else I can help with today?"

→resolution-confirmed

Insurance Claim Route

Say"Your device is covered under your insurance plan. I'll transfer you to the claims workflow now, where a specialist will walk you through filing your claim and arranging a replacement or repair."

Ticketing.CreateTicket tagged insurance-claim, linked to device.imei

CRM.LogInteraction note insurance claim routed

→insurance-claims-workflow

Out-of-Warranty Options

Say"Unfortunately the device isn't covered under warranty or insurance for this type of damage. I can walk you through a couple of options — a paid repair through an authorized service center, or an upgrade to a new device on your account."

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

Say"No problem at all — let's get a time scheduled for a senior tech specialist to call you back, so you have the time you need to get your backup sorted first."

CRM.ScheduleCallback for customer.phone, note issue.description and steps completed

Ticketing.CreateTicket tagged callback-pending, linked to device.imei

Say"You're all set — you'll receive a confirmation at customer.phone. The specialist will have the full notes from today so you won't have to repeat yourself."

→resolution-confirmed

Escalation to Specialist

Say"I want to make sure you get the best help here. I'm escalating this to one of our senior tech specialists who has the tools to dig deeper into this. I'll make sure they have all the notes from today."

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

Say"A specialist will be with you shortly — or if you prefer a callback, just let me know and I can schedule that instead."
  • 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

Say"I'm connecting you with a team member right now who can take it from here. I've passed along everything from our conversation so you're all set."

Resolution Confirmed

Say"Glad we could sort that out! Just to confirm — is everything working as expected now, or is there anything else I can help you with today?"

Ticketing.CreateTicket tagged resolved, linked to device.imei, customer.accountId

CRM.LogInteraction note resolution summary, steps taken, outcome

CRM.CloseInteraction for customer.accountId

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ email

Complaint Intake & Routing

Financial ServicesComplaintsComplianceSupport

Intake & Greeting

Say"Thank you for contacting us. I understand you'd like to raise a concern or formally lodge a complaint — I'm here to help you through that process and make sure your matter is fully recorded."
Say"To get started, may I have your full name and the account number related to your complaint?"
  • 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

Detect
outcome of identity verification check
  • 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

Say"Thank you, customer.fullName — your identity has been verified. I'll now collect the details of your complaint so we can log it accurately."
Say"Could you please tell me: what is the nature of your complaint, which product or service is involved, and approximately when did the issue occur?"

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

Say"I want to make sure I capture everything correctly. Let me ask a few specific questions to help document your complaint fully."
Say"Which product or service does this relate to — for example, a credit card, mortgage, current account, or a specific interaction with our team?"
Say"And can you recall the approximate date when this issue first occurred?"

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

Say"Have you contacted us previously about this issue? If so, do you have a reference number from that interaction?"

ComplaintManagement.SearchExistingCases using customer.accountNumber and complaint.nature

Detect
whether a duplicate or related case exists
  • 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

Say"I can see that a complaint related to this matter is already on record with us, reference number case.existingId. I'll make sure your latest contact is noted against that case."

CRM.AddInteractionNote linked to case.existingId with today's contact details and any new information provided

Say"Your existing complaint is being reviewed and you'll receive a response within regulatory.responseWindow days. Would you like us to send you a status update to your preferred contact?"
  • 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

Detect
complaint category classification result
  • 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

Say"Based on the details you've shared, your complaint involves a matter that requires review by our specialist compliance team. I want to assure you this will be prioritised appropriately."

ComplianceFlagging.FlagCase with complaint.category, customer.accountNumber, and complaint.nature

CaseRouting.AssignToComplianceQueue with priority: high

CRM.CreateComplaintRecord tagged regulatory, linked to customer.accountNumber

Say"Your complaint has been assigned reference number complaint.referenceNumber and routed to our compliance team. You can expect a formal written response within regulatory.responseWindow days — this is a regulatory commitment we are required to meet."
  • 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

Say"I've now formally logged your complaint. Your reference number is complaint.referenceNumber — please keep this for your records."
Say"Under our obligations, we aim to provide a full written response within regulatory.responseWindow days. You'll receive a written acknowledgment shortly at your preferred contact."
  • 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

Say"How would you prefer us to contact you with updates and our formal response — by email, phone, or secure message?"

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

Say"Your complaint has been recorded and an acknowledgment has been sent to your preferred contact. Your reference number is complaint.referenceNumber."
Say"A member of our team will review your complaint and aim to provide a full written response within regulatory.responseWindow days. If you need to contact us in the meantime, please quote your reference number."
Say"Is there anything else I can help you with today?"

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

Say"I understand — I'm not able to access your account without verified details, but I can still log an anonymous record of your concern so it is on record."

ComplaintManagement.CreateAnonymousRecord with complaint.nature and any details provided

ComplaintManagement.GenerateReferenceNumber to produce complaint.referenceNumber

Say"I've created an anonymous reference — your number is complaint.referenceNumber. To allow us to fully investigate and respond to you, we would need you to contact us again with your account credentials or visit a branch with valid identification."
Say"Would you like me to note a preferred contact method in case you are able to verify your identity with us in future?"
  • 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
Say"I understand this is a serious matter and I want to make sure it's handled with the urgency it deserves. I'm escalating your complaint immediately to a senior complaints handler who has the authority to address concerns of this nature."

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

Say"Your reference number is complaint.referenceNumber. A senior handler will be in contact with you within one business day. You do not need to contact us again — we will reach out to you."

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

Say"I'm transferring you now to one of our team members who will be able to assist you directly. Your reference number is complaint.referenceNumber — they'll have full context of our conversation."

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

Say"Your complaint has been flagged for review by our compliance team to ensure it is handled through the correct process. Your reference number is complaint.referenceNumber and you will receive written confirmation of next steps within two business days."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Telecom Support Agent▣ voice▣ chat

Complaint Escalation — Telecom

TelecomComplaintsEscalationSupport

Intake and Verification

Say"Thank you for reaching out. I understand you have a complaint you'd like escalated — I want to make sure this gets the attention it deserves. To get started, may I have your account number or the name on the account so I can pull up your details?"

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

Say"I can see your account, customer.name. Let me check whether there's an existing complaint on file for you."
  • 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

Say"It looks like this hasn't been formally logged yet — I'm going to create a new escalation case right now so nothing falls through the cracks."

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

Say"I want to make sure I have everything right before I escalate this. You've reported an issue with complaint.servicesAffected, and the nature of the complaint is complaint.nature. Is that accurate, and is there anything else you'd like added to the record?"
Detect
sentiment and completeness of customer response
  • 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

Agent
review the account history and escalation assignment to determine if case priority needs to be upgraded.
Goal:confirm whether the complaint warrants expedited handling based on account type, outage scope, prior compensation history, or repeat contact.
Constraints:never promise a resolution timeline shorter than the one returned by EscalationRouting.IdentifyTeam without senior approval; always flag business or critical infrastructure accounts for immediate upgrade.
Tools available:CRM.GetAccountSummary, CaseManagement.GetCaseDetails, EscalationRouting.IdentifyTeam, kb.escalation-priority-policy
  • 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

Approval
Slack.RequestApproval to #escalations-queue, approver: escalation_team_lead
Context sent:case.id, customer.accountNumber, complaint.nature, complaint.servicesAffected, case.escalationTeam, case.responseTimeline, complaint.compensationOffered
  • 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

Say"Your case has been escalated and assigned. Your case reference number is case.id. The case.escalationTeam team will be in touch within case.responseTimeline via customer.preferredContact. If you need to reference this, please quote case.id."

CommsLog.SendConfirmation to customer.preferredContact with case.id, case.escalationTeam, and case.responseTimeline

BillingPlatform.NoteAccount with escalation flag and case.id

Say"Is there anything else I can clarify before we wrap up? I want to make sure you feel confident that this is in hand."
  • 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

Agent
assess whether a goodwill credit or service adjustment is appropriate given the complaint history.
Goal:determine credit amount or gesture within policy limits and apply if approved.
Constraints:never offer a credit exceeding USD 150 without manager approval; never apply a second credit if complaint.compensationOffered already shows one was granted within the last 90 days; always document the decision in the case notes.
Tools available:BillingPlatform.ApplyCredit, CRM.GetAccountSummary, CaseManagement.GetCaseDetails, kb.compensation-credit-policy
  • 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

Say"I completely hear you, and I want you to know I take this seriously. My goal right now is to make sure your complaint gets to the right person with the full context — can I ask a couple of quick questions so I can do that properly?"

kb.de-escalation-guidelines — apply language and pacing guidance for hostile or distressed callers

Detect
sentiment shift after de-escalation attempt
  • 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
Say"I understand — given what you've mentioned, I'm going to make sure this is reviewed by the right team immediately. I'm flagging your case right now and you will be contacted directly."

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

Say"Your case, reference case.id, has been escalated directly to our compliance team. Someone will be in touch within one business day via customer.preferredContact. Please reference case.id in any further correspondence."

CommsLog.SendConfirmation to customer.preferredContact with case.id and compliance escalation notice

System Unavailable Fallback

Say"I'm sorry — our systems are temporarily unavailable, but I don't want that to delay your complaint. I'm taking full notes manually right now and will ensure this is entered and actioned as soon as systems are restored."

CommsLog.ManualNoteEntry with customer.name, customer.accountNumber, complaint.nature, complaint.servicesAffected, complaint.history, and timestamp

Say"Your verbal reference number for this interaction is case.id — please keep that handy. You can expect to hear from us within case.responseTimeline once our systems are back up. I sincerely apologise for the inconvenience."
  • 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

Say"I'm transferring you to a senior member of our team right now. They have full visibility of your case — you won't need to repeat anything. Thank you for your patience, customer.name."

Identity Escalation

Say"I want to help, but I need to protect your account by verifying your identity first. Unfortunately I wasn't able to confirm your details this time. I can send a verification link to the contact details on your account — would that work for you?"

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

Say"Thank you for your patience throughout this, customer.name. Your escalation is logged under case.id, and the right team will be in touch within case.responseTimeline. We appreciate you giving us the chance to put this right."

CaseManagement.UpdateCase with resolved_handoff status and final interaction notes

CommsLog.CloseInteraction with customer.accountNumber and case.id

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Retail Support Agent▣ voice▣ chat▣ email

Complaint Escalation

RetailComplaintsEscalationSupport

Greeting & Acknowledgement

Say"Thank you for reaching out. I'm sorry to hear you've had a difficult experience — I'm here to help get this sorted for you. Could I start with your name and order or account number?"
Detect
sentiment on customer opening message or tone
  • 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

Say"I can hear how frustrating this has been, and I want you to know I take this seriously. Let me pull up your details right now so we can focus on finding a resolution for you."
  • 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

Say"I want to make sure I'm looking at the right account. Could you provide an alternative proof of purchase — such as a receipt, confirmation email, or the card used for payment?"
  • 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

Say"Thank you — I can see your order from order.date. Just to make sure I have everything right, can you walk me through what happened and what you were hoping we could do for you?"
Detect
nature of complaint submitted by customer
  • 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

Agent
evaluate the appropriate remedy for complaint.nature based on order.value, contact.history, and kb.returns-compensation-policy.
Goal:identify the most suitable remedy — refund, replacement, discount, or formal apology — that falls within agent compensation authority and policy limits.
Constraints:never approve a refund or compensation exceeding the agent authority threshold for order.value without supervisor approval; never offer a remedy that contradicts kb.returns-compensation-policy; always check contact.history for prior remedy offers before making a new one.
Tools available:OrderManagement.GetOrderDetails, ContactHistory.GetLog, RefundCompensationTool.CheckEligibility, kb.returns-compensation-policy
  • 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

Say"Based on what you've described, here's what I'd like to offer you: remedy.offered. Does that work for you?"
  • 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

Agent
construct one alternative remedy within policy limits, accounting for the customer's stated reason for rejecting remedy.offered.
Goal:offer a single alternative that meaningfully addresses the customer's concern without exceeding compensation authority or policy.
Constraints:only one alternative offer is permitted before mandatory escalation; cannot exceed agent compensation authority; must not duplicate remedy.offered.
Tools available:RefundCompensationTool.CheckEligibility, ContactHistory.GetLog, kb.returns-compensation-policy
Say"I completely understand — let me see what else I can do. remedy.alternative — would that be acceptable?"
  • 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

Detect
whether situation involves abusive language or conduct
  • 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

Say"I want to help you resolve this, and I'll do everything I can — but I do need to ask that we keep the conversation respectful so I'm able to assist you. Can we continue on that basis?"
  • Customer agrees and calms down neutral →remedy-offer
  • Customer continues to use abusive language abusive →escalation-conduct

Policy Exception Flag

Say"I want to be upfront with you — based on our current policy, this situation falls outside what I'm able to action directly. I'm going to document your case and flag it for a supervisor review so it receives the right attention."

CRM.UpdateCase with complaint.nature, order.id, and exception request details

RefundCompensationTool.FlagException tagged policy-exception, linked to order.id

Approval
SupervisorQueue.RequestReview to #complaints-supervisor, approver: complaints_supervisor
Context sent:customer.accountId, order.id, order.value, complaint.nature, complaint.date, contact.history, reason for policy exception
  • 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

Say"I want to make sure you get the best possible help here. I'm transferring you to a senior member of our team right now who has full authority to resolve this for you. I've passed them everything we've discussed so you won't need to repeat yourself."

Escalation — Conduct Transfer

CRM.UpdateCase with complaint.nature, contact.history, and conduct flag

SupervisorQueue.Assign priority: high, tagged conduct-escalation, linked to customer.accountId

Say"I'm going to transfer you to a senior agent who may be better placed to assist you. Thank you for your patience."

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

Say"Brilliant — I've gone ahead and processed that for you. You should receive a confirmation shortly. I'm really sorry again for the experience, and thank you for giving us the chance to put it right. Is there anything else I can help you with today?"
  • Customer has further queries →greeting-acknowledgement
  • Customer is satisfied and done confirmed →resolution-complete

Resolution Complete

Say"Wonderful. Thank you for your patience, customer.name — take care and have a great day."

CRM.UpdateCase status: resolved, satisfaction: confirmed

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ text

Claims Intake

InsuranceClaimsIntake

Welcome & Policy Lookup

Say"Thank you for contacting us. I'm here to help you report a new claim. To get started, could you please provide your policy number or the name on the account?"

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

Say"I found an account. For your security, I need to verify your identity before we proceed. Could you please confirm your date of birth and the ZIP code on the policy?"

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

Say"I wasn't able to verify your identity with those details. Let me try a couple of alternative questions. Could you confirm the last four digits of the SSN on the account, or the email address we have on file?"

IdentityVerification.VerifySecondary using policy.number

  • Identity verified with secondary identifiers →loss-details-collection
  • Identity still unverified identity_failed →escalation-human

Loss Details Collection

Say"Thank you — your identity is confirmed. I'm sorry to hear you've experienced a loss. I'd like to gather a few details about what happened so we can open your claim. Please take your time."
Say"First, can you tell me the date the loss occurred, the location, and a brief description of what happened?"
  • 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

Say"Thank you. Are there any injuries involved, and can you give me a rough sense of the damages — for example, is a vehicle undriveable, or is a property uninhabitable?"
Detect
severity indicators in customer response — injuries, fatalities, large-scale damage, legal intent
  • 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

Agent
assess whether the reported loss type and circumstances fall within the active policy's coverage scope.
Goal:determine if the claim can proceed as standard intake, needs adjuster-review flagging, or falls into a clear exclusion category.
Constraints:never outright deny a claim to the customer — if exclusion is possible, flag for adjuster review rather than refusing; never proceed to claim creation if policy status is not confirmed active at time of loss.
Tools available:PolicyManagement.GetCoverageDetails, kb.coverage-rules
  • 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

Say"Everything looks good — I'm creating your claim record now. Just one moment."

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

Say"Your claim has been successfully submitted. Your claim number is claim.id — please keep this for your records. A claims adjuster will be in touch within claim.adjusterContactWindow business days via your preferred contact method."
Say"In the meantime, please preserve any evidence, avoid disposing of damaged property, and document everything with photos if possible. Is there anything else you'd like to know before we wrap up?"

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

Say"Happy to walk you through what happens next. Once our adjuster reaches out, they'll schedule an inspection or request documentation depending on your coverage type. You can also track your claim status online using your claim number claim.id."
Say"Do you have any other questions, or is there anything else I can help you with today?"
  • 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

Say"Thank you for those details. Based on what you've described, I want to make sure your claim receives the right level of review. I'm going to open a claim record and flag it for a specialist who can assess the coverage details carefully."

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

Say"Your claim number is claim.id. A claims specialist will review your policy terms and contact you within claim.adjusterContactWindow business days. We won't make any coverage determination until that review is complete."

CRM.SendConfirmation to customer.email or customer.phone with claim.id and review-pending notice

→resolution

Lapsed Policy

Say"I can see your policy — however, it appears that the coverage was not active on the date of the loss. Unfortunately, we're unable to open a claim for a period when the policy was lapsed or expired."

kb.reinstatement-options — retrieve available reinstatement paths for policy.coverageType

Say"I understand this is difficult news. I can share some options around reinstating your policy for future coverage. Would you like me to walk you through those options, or would you prefer to speak with a specialist?"
  • Customer wants reinstatement information CRM.LogInteraction tag: reinstatement-interest →escalation-human
  • Customer acknowledges and ends interaction →resolution

System Unavailable

Say"I apologize — our claims system is experiencing a temporary issue and I'm unable to create your claim record electronically right now. I want to make sure your report is captured so nothing is lost."

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

Say"I've logged all of your details securely. You will receive a confirmation and a claim number via your preferred contact method within one business day once our systems are restored. I'm sorry for the inconvenience."
  • 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

Say"Based on what you've described, I want to make sure you're connected immediately with a senior claims specialist who handles complex situations like this. I'm escalating your case right now — please stay on the line."

Escalation to Human Agent

CRM.LogInteraction with full context, flag: human_review_required

Say"I'm going to connect you with one of our team members who can assist you further. Please hold for just a moment — thank you for your patience."

Resolution

Say"Thank you for reaching out, and I'm sorry again about your loss. We'll be in touch soon, and please don't hesitate to contact us if you need anything in the meantime. Take care."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ sms▣ text

Check-in / Check-out Assistance

TravelHospitalityFront DeskCheck-inCheck-out

Contact & Intent Capture

Say"Welcome! I'm here to help you with your hotel check-in or check-out. Are you checking in, checking out, or do you need help with a reservation issue?"
  • 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

Say"No problem — could you tell me a little more about what you need today? For example, are you arriving and need your room, or are you departing and have a question about your bill?"
  • 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

Say"Great, let's get you checked in. Could you please share your reservation confirmation number and the name on the booking?"

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

Say"Of course — let's pull up your stay. Could you share your confirmation number or the name on the reservation?"

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

Say"I wasn't able to find a reservation with that confirmation number. Let me try a few other ways to locate your booking."

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

Say"It looks like your booking was made through a third-party site. I've initiated a request to import those details, which can take a few minutes. Could I place you on a brief hold, or would you prefer I send you an update as soon as it's ready?"
  • 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

Say"To protect your security, I need to verify your identity. Could you please confirm your date of birth, loyalty account number, or the last four digits of the card used to hold the reservation?"

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

Say"Great news — your room room.number is ready and waiting for you. Let me issue your digital key now."

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

Say"Your digital key has been sent to guest.email. Your room is room.number. Is there anything else I can help you with — extra pillows, dining reservations, or local recommendations?"
  • Guest has additional requests additional-requests →special-requests-handling
  • Guest is satisfied and done satisfied →resolution-checkin-complete

Room Not Ready — Options

Say"Your room isn't quite ready yet, but I have a few options to make your wait comfortable. I can arrange luggage storage, provide access to our lounge, or send you a notification the moment your room is ready. Which would you prefer?"
  • 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

Say"Perfect — I've set that up for you. You'll receive a message at guest.phone as soon as your room is ready. In the meantime, is there anything else I can arrange?"
  • Guest has further needs additional-requests →special-requests-handling
  • Guest is happy to wait satisfied →resolution-pending-notification

Special Requests Handling

Say"Of course — happy to note that. What can I arrange for you?"

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

Say"I've pulled up your folio — the total comes to folio.total. I've sent an itemized breakdown to guest.email. Would you like me to walk you through the charges, or does everything look correct?"
  • 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

Say"Of course — let me explain that line item. The charge for dispute.lineItem reflects the rate agreed at booking, plus applicable taxes and any incidentals. Does that make sense?"

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

Agent
review dispute.lineItem and dispute.amount against kb.billing-policy and reservation details to determine if a correction is warranted.
Goal:resolve the disputed charge fairly — apply a correction if within agent adjustment authority, or route to a supervisor if it exceeds policy limits.
Constraints:never approve adjustments above USD 150 without supervisor approval; always log every adjustment in the billing system; never remove taxes or mandatory fees unilaterally.
Tools available:BillingSystem.GetLineItemDetail, BillingSystem.ApplyAdjustment, kb.billing-policy, CRM.LogDispute
  • 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

Say"I've reviewed that charge carefully, and based on our policy it reflects a valid and agreed-upon amount. I'm sorry I'm not able to remove it, but I want to make sure you feel heard. Would you like me to escalate this for a second review, or are you comfortable proceeding with check-out?"
  • 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

Say"You're all checked out — your final receipt has been sent to guest.email. It was a pleasure having you with us. Safe travels, guest.fullName!"
  • Guest has feedback or further questions feedback →post-stay-feedback
  • Guest is satisfied and done satisfied →resolution-checkout-complete

Post-Stay Feedback

Say"I'd love to hear your thoughts — your feedback helps us improve. What stood out during your stay, and is there anything we could have done better?"

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

Say"It looks like our front desk is currently unstaffed. I have two options for you: I can activate self-service key retrieval at the kiosk, or I can page our on-call team member to assist you right away. Which would you prefer?"

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

Say"I want to make sure you're taken care of properly. I'm connecting you now with a team member who has the authority to resolve this right away. Thank you for your patience, guest.fullName."

Resolution — Check-in Complete

Say"You're all set and checked in! Enjoy your stay, guest.fullName. Don't hesitate to reach out if you need anything at all."

Resolution — Check-out Complete

Say"Everything is wrapped up. Thank you for staying with us, guest.fullName — we hope to welcome you back soon!"

Resolution — Pending Notification

Say"You're all set for now. We'll be in touch at guest.phone or guest.email as soon as your room is ready. Thanks for your patience!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Insurance Support Agent▣ voice▣ chat▣ email

Cancellation Request

InsuranceCancellationRetention

Intake & Identity Verification

Say"Thank you for contacting us. I can help you with a cancellation request today. To get started, I'll need to verify your identity. Could you please provide your full name, date of birth, and policy number?"

CRM.LookupCustomer using customer.fullName and customer.dateOfBirth

PolicyManagement.LookupPolicy using policy.number

Detect
identity verification outcome
  • 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

Say"Thank you, I've verified your account. Before I process your cancellation request, could you tell me the reason you'd like to cancel, and what effective date you have in mind for the cancellation?"

CRM.LogInteraction tag: cancellation-request, policy.number

Detect
cancellation reason category
  • 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

Say"I'm sorry to hear that. Before we proceed with the cancellation, I'd like to see if there's something we can do to address your concerns. We may be able to offer a premium discount, adjust your coverage levels, or explore a payment plan that better fits your budget."

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

Agent
present the best-fit retention option to the customer based on cancellation.reason, policy.type, and kb.retention-offers.
Goal:identify and offer one or two targeted retention alternatives — discount, coverage adjustment, or payment plan — that directly address the customer's stated reason for cancelling.
Constraints:never promise a discount not listed in kb.retention-offers; never modify the policy without explicit customer confirmation; always confirm the customer understands the new terms before applying any change.
Tools available:PolicyManagement.GetPolicyDetails, BillingPayments.GetPaymentHistory, kb.retention-offers
  • 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

Say"Wonderful — I've applied the change to your policy. You'll receive a confirmation email shortly outlining the updated terms. Is there anything else I can help you with today?"

DocumentDelivery.SendEmail to customer.email with updated policy summary

Active Claim Check

PolicyManagement.CheckActiveClaims for policy.number

Detect
active claim status on policy
  • 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

Detect
requested effective date validity
  • 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

Say"I see you've requested a cancellation date that falls in the past. Unfortunately, our policy guidelines don't allow us to backdate cancellations to that date. The earliest effective date we can process is today. Would you like to proceed with today's date, or would you prefer a future date?"
Detect
customer response to backdating limitation
  • 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

Say"Before I finalize the cancellation, let me go over the terms with you. Your policy will be cancelled effective cancellation.requestedDate. Any outstanding balance of policy.cancellationFee will need to be settled, and your estimated refund is policy.refundAmount. Do you have any questions about these terms before we proceed?"
Detect
customer response to cancellation terms
  • 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

Detect
authorization requirement for policy type
  • 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

Say"Your policy has been successfully cancelled effective cancellation.requestedDate. You'll receive a confirmation email at customer.email shortly, which includes your confirmation number and refund details. Is there anything else I can help you with today?"

→cancellation-complete

Cancellation Complete

Say"Thank you for being a customer with us. If you ever need coverage again in the future, we'd be happy to help. Take care."

CRM.LogInteraction tag: cancellation-complete, policy.number, cancellation.confirmationNumber

Escalation — Active Claim on Policy

Say"I've found that there is currently an active claim on your policy. We're unable to process a cancellation while a claim is open, as this could affect your coverage for that claim. I'm going to connect you with a specialist who can walk you through your options and the implications in detail."

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

Say"I'm sorry, but I'm unable to verify your identity with the information provided, which means I can't process this request over the phone. For your security, cancellation requests can be submitted in writing by visiting a branch or mailing a signed request to the address on your policy documents. We can also send a secure email link if you have your email on file with us."

CRM.LogInteraction tag: identity-verification-failed, policy.number

Escalation — Fee or Policy Dispute

Say"I understand your concern, and I want to make sure this is handled fairly. I'm going to escalate this to a senior member of our team who has the authority to review and address your dispute directly."

CRM.CreateCase priority: high, tag: cancellation-dispute, policy.number, cancellation.reason

CRM.LogInteraction tag: escalation-dispute, policy.number

Escalation — Supervisor Authorization Required

Say"Your policy type requires authorization from a licensed agent or supervisor before the cancellation can be finalized. I'm going to transfer you now — everything we've discussed is noted on your account so you won't need to repeat it."

CRM.LogInteraction tag: escalation-supervisor-auth-required, policy.number, policy.type

CRM.CreateCase priority: normal, tag: supervisor-auth-cancellation, policy.number

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Branch / ATM Locator & Appointment Booking

Financial ServicesBranchATMAppointmentsLocator

Greeting & Intent Capture

Say"Hello! I'm here to help you find a branch or ATM, or schedule an in-person appointment. Are you looking to find a location near you, or would you like to book an appointment at a branch?"
  • 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

Say"No problem — I can help with either! Just to make sure I point you in the right direction: are you primarily trying to find a nearby branch or ATM, or are you looking to schedule a visit with someone at a branch?"
  • 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

Say"Great! To find the nearest branches and ATMs, could you share your current ZIP code or city?"

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

Say"No problem. You can also find branches and ATMs using our branch locator at bankname.com/locations, or call us at any time and we can search by city or state. Is there anything else I can help you with?"
  • 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

Say"Here are the closest options I found for you:"

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

Say"I see that one or more of those branches is currently closed or has limited hours. Let me pull up the most current hours and the next nearest alternative for you."

BranchATMLocator.GetUpdatedHours for branch.name, surface branch.hours and branch.status

BranchATMLocator.Search for next nearest open branch, surface branch.address and branch.distance

Say"The updated hours for branch.name are branch.hours. The nearest open alternative is branch.address, approximately branch.distance away. Would you like to book an appointment at the open branch, or is this information enough for now?"
  • 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

Say"Of course. Could you let me know what you need — for example, wheelchair-accessible facilities, language interpretation services, or anything else? I want to make sure the branch I recommend can fully support you."

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

Say"To book an appointment, I just need to confirm a couple of details. Are you an existing account holder with us?"

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

Say"I wasn't able to automatically pull up your account. Could you provide the phone number or email address associated with your account so I can look you up?"

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

Say"No problem — you're welcome to visit any branch or use our ATMs without an account. I should let you know that certain appointment types, such as account openings or loan consultations, do require an existing account or a new-customer intake process. Would you like help finding a branch, or are you interested in learning about opening an account?"
  • 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

Say"What type of appointment are you looking to schedule? For example: general banking, account services, safe deposit box access, notary services, or a financial review. You can also just describe what you need."
  • 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

Say"Great. What date and time works best for you? I'll check availability at your preferred branch."

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

Say"It looks like appointment.preferredTime on appointment.preferredDate isn't available at branch.name. The next available slot is branch.nextAvailableSlot. Would that work for you, or would you prefer a different date?"

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

Say"I understand — let me check a nearby branch that may have better availability for you."

BranchATMLocator.Search for next nearest branch with availability for appointment.type on appointment.preferredDate

AppointmentScheduler.CheckAvailability at alternative branch

Say"The next closest branch with availability is branch.name at branch.address, with an opening on branch.nextAvailableSlot. Would you like to book there?"
  • 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

Say"You're all set! Your appointment.type appointment is confirmed at branch.name, branch.address on appointment.preferredDate at appointment.preferredTime. Your confirmation number is appointment.confirmationNumber."

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

Say"I've sent a confirmation to your phone and email. Is there anything else I can help you with — for example, accessibility needs at the branch, or directions?"
  • 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

Say"Of course. I can help you reschedule or cancel your appointment with confirmation number appointment.confirmationNumber. Would you like to reschedule to a new date and time, or cancel the appointment altogether?"

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

Say"Your appointment has been cancelled and you'll receive a confirmation shortly. If you'd like to rebook in the future, I'm happy to help. Is there anything else I can assist you with?"
  • 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

Say"For a appointment.type appointment, I'll connect you with a dedicated advisor who can make sure you get the right level of service. Let me get that arranged for you."

Twilio.SendEmail to customer.email with advisor contact information and next steps

Say"A specialist will be in touch shortly to confirm your appointment details. Is there anything else I can help you with in the meantime?"
  • 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

Say"I want to make sure you get the right help. Let me connect you with one of our team members who can assist you directly."

Resolution

Say"You're all set! Don't hesitate to reach out if you need to find a location, book an appointment, or have any other questions. Have a great day!"
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Travel & Hospitality Support Agent▣ voice▣ chat▣ email▣ sms

Booking Cancellation / Refund Request

TravelHospitalityCancellationRefund

Identity Verification

Say"Thank you for reaching out. I can help you with a cancellation or refund request. To get started, could you please provide your full name and the email address or phone number on the booking?"

CRM.LookupCustomer using customer.fullName and customer.email or customer.phone

Detect
outcome of identity lookup
  • 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

Say"I wasn't able to match those details to a booking. Could you double-check the name or email used at the time of booking? Sometimes a nickname or alternate address was used."

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

Say"Thank you, customer.fullName. Could you please share your booking or confirmation ID, along with your travel dates and destination?"

ReservationManagement.GetBooking using booking.id

Detect
booking record outcome
  • 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

Say"I've pulled up your reservation for booking.destination on booking.travelDates. Let me check the cancellation policy tied to your rate."

PolicyRulesEngine.GetCancellationPolicy for booking.id and booking.rateClass

Detect
cancellation window and fee applicability
  • 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

Say"Great news — your booking is within the free-cancellation window. You are eligible for a full refund of refund.amount to your original payment method. Before I proceed, could you share the reason for your cancellation? This helps us improve."
  • 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

Say"No problem at all. I'll send a summary of your cancellation policy and options to customer.email so you can review at your own pace. Feel free to reach back out when you're ready."

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

Say"I can see that your booking falls outside the free-cancellation window, which means a cancellation fee of cancellation.feeAmount would apply. I want to make sure you have all your options before we proceed. You may be eligible for a travel credit of refund.creditValue, or we could look into changing your travel dates at no extra charge."

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

Say"I'm very sorry to hear about your situation. We do have a process to review waiver requests for extenuating circumstances such as medical emergencies or bereavement. I'll need to collect a brief note on the nature of the situation and, if available, any supporting documentation such as a medical certificate or official notice."

CRM.CreateCase tagged exception-review, linked to booking.id, reason: cancellation.reason

Detect
customer willingness to provide documentation
  • 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

Say"Thank you for sharing that. I've flagged your case for our exception review team. They will assess your request and reach out to you at customer.email within two business days with a decision. In the meantime, I'm not processing the cancellation so your booking remains active."

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

Say"I'll go ahead and cancel your booking now. This will just take a moment."

ReservationManagement.CancelBooking for booking.id

PaymentProcessor.InitiateRefund for refund.amount to booking.paymentMethod

CRM.UpdateRecord with cancellation details for customer.fullName

Detect
cancellation processing outcome
  • Cancellation and refund initiated successfully success →send-confirmation
  • System error prevents processing system_error →escalation-human

Process Travel Credit

Say"I'll cancel your booking and apply a travel credit of refund.creditValue to your account. This credit can be used toward any future booking with us."

ReservationManagement.CancelBooking for booking.id

PaymentProcessor.IssueTravelCredit for refund.creditValue linked to customer.email

CRM.UpdateRecord with credit issuance details

Detect
credit issuance outcome
  • Credit issued successfully success →send-confirmation
  • System error during credit issuance system_error →escalation-human

Send Confirmation

Say"Your booking has been successfully cancelled. You'll receive a written confirmation at customer.email within a few minutes, including your refund or credit details and the expected timeline of refund.timeline."

NotificationService.SendEmail to customer.email with cancellation confirmation, refund.amount or refund.creditValue, and refund.timeline

  • Confirmation sent successfully →resolution-confirmation

Refund Status Check

Say"It looks like this booking was already cancelled. Let me check the status of any refund associated with it."

PaymentProcessor.GetRefundStatus for refund.transactionId

Detect
refund status
  • 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

Say"Our records show that a refund of refund.amount was issued on the original transaction. It can sometimes take 5 to 10 business days to appear depending on your bank. Could you confirm that you haven't seen it in your statement?"
  • 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

Say"Your refund of refund.amount is currently being processed and should appear within refund.timeline. I'll send a confirmation to customer.email with the transaction reference so you have it on record."

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

Say"I can see that your booking was made through a third-party platform — booking.otaSource. Unfortunately, our system is unable to process cancellations or refunds for reservations made via that channel. You'll need to contact booking.otaSource directly to request a cancellation."

kb.ota-partner-contacts — retrieve contact instructions and cancellation process for booking.otaSource

Say"I can share the reference details for your booking so you have everything ready when you contact them: your booking ID is booking.id, the travel dates are booking.travelDates, and the destination is booking.destination."

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

Say"I've escalated this to our finance team with all the transaction details. A specialist will reach out to you at customer.email within one to two business days to resolve this."

→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

Say"I want to make sure this is handled correctly for you. I'm escalating your case to a senior support specialist who will be able to assist further. You'll be contacted at customer.email or customer.phone shortly."

Resolution Confirmation

Say"Is there anything else I can help you with today? We appreciate your patience and hope to welcome you on a future trip."
Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ sms

Billing / Statement Inquiry

HealthcareBillingPatient Support

Patient Greeting

Say"Thank you for contacting our billing support team. My name is your Healthcare Support Agent. To protect your privacy and access your account, I'll need to verify your identity first. May I have your full name, date of birth, and your account or guarantor ID?"
  • 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

Detect
identity verification outcome
  • 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

Say"I want to make sure I'm protecting your information. I was unable to fully confirm your identity with what you provided. Could you double-check your account or guarantor ID — you can find it in the top right corner of your paper statement or in the patient portal?"
  • Patient provides corrected identifiers CRM.LookupPatient →identity-verification
  • Patient still cannot provide matching information →hipaa-decline

HIPAA Decline

Say"I'm sorry, but under federal HIPAA privacy regulations I'm unable to access or share any account or billing details without confirming your identity. I'd encourage you to log into the patient portal at your convenience, or visit our billing office in person with a valid photo ID. Is there anything general I can help you with today?"

CRM.LogInteraction note: identity verification failed, HIPAA protocol applied, no account data disclosed

Inquiry Intake

Say"Thank you, patient.name — I've verified your account. I can see your billing record. Could you tell me which charge or balance you have a question about? If you have your statement handy, the date of service or the specific line item description would be very helpful."

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

Detect
claim and EOB status
  • 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

Say"I've pulled up that charge. The service on charge.dateOfService for charge.description was billed at charge.amount. Your insurer insurance.planName processed the claim and applied your benefits — your portion after insurance is eob.patientResponsibility. This reflects your current deductible, copay, or coinsurance as outlined in your plan."

kb.billing-patient-responsibility — reference plan benefit structure and cost-sharing explanation guidance

Say"Does that explanation make sense, or would you like me to walk through how your benefits were applied in more detail?"
  • 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

Agent
provide a detailed line-by-line walkthrough of how insurance.planName applied benefits to charge.lineItem, referencing the EOB and plan cost-sharing rules.
Goal:ensure the patient fully understands what each component of their bill represents and why eob.patientResponsibility is the amount owed.
Constraints:never speculate about future insurance decisions or promise adjustments not yet authorized; only describe what is documented in the EOB and billing system.
Tools available:PatientBillingSystem.GetChargeDetail, EOBLookup.GetEOB, kb.billing-patient-responsibility
  • 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

Say"I can see your current account balance. Let me walk you through the outstanding charges, how insurance has been applied to each, and what remains as your patient responsibility."

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

Say"It looks like your insurance claim for the service on charge.dateOfService is still being processed by insurance.planName. We haven't yet received the Explanation of Benefits that tells us your exact patient responsibility. I'd recommend waiting until that EOB is issued — typically within 30 days of the claim submission date — before making any payment on this charge."
Say"I'm going to make a note on your account so our team is aware you called, and I'll flag this for a follow-up outreach once the EOB is received. Is there a preferred contact method — phone or email — for that follow-up?"

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

Agent
assess the denial reason for claim.id and determine whether the denial is due to a technical/administrative issue correctable by rebilling, a coverage exclusion, or a clinical necessity decision requiring formal appeal.
Goal:advise the patient on the correct next step — administrative correction, insurance appeal, or billing specialist referral.
Constraints:never promise that an appeal will succeed or that a charge will be waived; do not initiate a claim adjustment without billing specialist authorization; always document the denial reason before routing.
Tools available:InsuranceEligibilityClaims.GetDenialReason, InsuranceEligibilityClaims.GetClaimStatus, kb.claim-denial-codes, CaseManagement.CreateCase
  • 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

Say"Thank you for bringing this to our attention. Based on what you've described, this may need to be reviewed by our billing specialists. I'm going to document this now and open a case so a specialist can investigate and correct the record if needed."

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

Say"A billing specialist will review this within 3 to 5 business days and will reach out to you at patient.phone or patient.email. You will not need to make any payment on a disputed charge while it is under active review. Is there anything else I can help you with today?"
  • Patient is satisfied and the case is documented →resolution-close
  • Patient is not satisfied and demands immediate resolution frustrated →escalation-human

Clinical Dispute

Say"I understand — disputes about whether a service was rendered or was medically appropriate are taken very seriously. Our billing team is not able to make clinical determinations, so I'll need to document your concern and route it to the appropriate clinical or patient relations department."

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

Say"A member of our patient relations team will contact you within 2 business days to discuss your concern. You should not receive any collections activity on this charge while it is under review."
  • Patient acknowledges and accepts the routing →resolution-close
  • Patient is distressed or requests immediate supervisor contact frustrated →escalation-human

Payment Options

Say"I can help you take care of this balance now or set up an arrangement that works for you. You have a few options: you can pay online through the patient portal, pay by phone with a credit or debit card right now, or set up an interest-free monthly payment plan if your balance qualifies."

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

Say"Your payment has been processed and a confirmation will be sent to patient.email. Your updated account balance will reflect this payment within one to two business days. Is there anything else I can help you with?"
  • Patient has additional questions →inquiry-intake
  • Patient is done →resolution-close

Payment Plan Setup

PaymentPortal.CreatePaymentPlan for patient.accountId

Say"I've set up a payment plan on your account. You'll receive a confirmation at patient.email with the payment schedule and amounts. Each installment will be automatically applied to your balance. If your financial situation changes, please contact us and we can review the plan."

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

Say"I completely understand, and I want to make sure you get the help you need. I'm going to connect you with a senior billing specialist or supervisor who can take this further. Please hold for just a moment — I'll make sure they have all the details from our conversation so you don't have to repeat yourself."

CRM.TransferWithContext to billing-escalation-queue, include patient.accountId, claim.id, charge.lineItem, interaction summary

Resolution / Close

Say"I'm glad we could assist you today. To summarize: we reviewed the charge for charge.description from charge.dateOfService, and your next steps are clear. If you have any further questions about your bill, don't hesitate to contact us — you can also view your account and statements at any time through the patient portal."

CRM.LogInteraction note: inquiry resolved, case closed

CaseManagement.CloseCase for case.id if open

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Balance / Transaction Inquiry

Financial ServicesSupportBalanceTransactions

Intake

Say"Thank you for reaching out to Financial Services support. I can help you with your account balance or a transaction question. Could you please share your full name and either your account number or the last four digits of your card?"
Detect
customer intent from opening message
  • 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

Say"To protect your account, I need to verify your identity. I'll send a one-time passcode to your phone number on file. Please share the code when you receive it."

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

Say"That code didn't match. You have one attempt remaining before I'll need to pause access for your security. Please double-check the code and try again."
  • Customer provides correct OTP on second try verified IdentityVerification.Confirm →account-lookup
  • Customer fails again unverified →escalation-identity-failure

Security Question Fallback

Say"No problem — let me try another way. I'll ask you a security question linked to your account. Please answer as accurately as you can."

IdentityVerification.FetchSecurityQuestion for customer.accountNumber

Say"Here is your security question: please go ahead and answer when ready."
  • 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

Detect
what the customer needs based on original request and account data
  • 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

Say"Here is your current account summary for your customer.accountType account. Your current balance is account.balance and your available balance is account.availableBalance. Is there anything specific about those figures you would like me to explain?"
  • 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

Say"I'll pull up the transactions for you now. Could you let me know the approximate date range or the amount you are looking into? That will help me find the right record quickly."

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

Say"I found the transaction. Here are the details: the charge of transaction.amount was made on transaction.date at transaction.merchant, categorized as transaction.category. Does that help explain what you were looking at?"

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

Say"I wasn't able to find a transaction matching that description in the date range you gave me. It's possible it may appear under a different date or may still be pending. Would you like me to widen the search, or can you share any additional details?"
  • 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

Say"I can see you have a concern about a fee on your account. Let me take a look at the details and check whether any options are available to you."

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

Agent
evaluate waiver eligibility for fee.type of fee.amount on customer.accountNumber using account history and kb.fee-waiver-policy.
Goal:determine whether the customer qualifies for a one-time courtesy fee waiver and, if so, apply it; if not, explain why clearly and empathetically.
Constraints:never apply more than one waiver per calendar year per account; never waive fees on accounts with an active hold or delinquency flag; do not promise a waiver before eligibility is confirmed.
Tools available:CoreBanking.GetFeeDetail, CoreBanking.ApplyFeeWaiver, CoreBanking.GetAccountStanding, kb.fee-waiver-policy
  • 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

Say"Good news — you qualify for a one-time courtesy waiver on that fee. I have applied it to your account and it should be reflected within one business day. Is there anything else I can help you with today?"

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

Say"I reviewed your account and unfortunately I am not able to apply a waiver at this time. I want to be transparent — your account has already received a waiver this year, so another one isn't available under our current policy. I'm sorry I can't do more here. Would you like me to connect you with a specialist who may have additional options?"
  • Customer accepts the outcome satisfied →resolution
  • Customer wants to speak to a specialist or is upset escalation-requested →escalation-human

System Error

Say"I apologize — I'm having trouble retrieving your account information right now. This is a system issue on our end, not with your account. I'll log this so our team can look into it, and I can arrange for a callback at your convenience."

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

Say"I take this very seriously. Let me flag this right away and connect you with our fraud team who can open a formal investigation and protect your account immediately."

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

Say"For your protection, I'm not able to continue with the inquiry after multiple unsuccessful verification attempts. I'd encourage you to visit your nearest branch with a government-issued ID, or use our secure identity reset flow through the mobile app."

CRM.LogIncident tagged verification-failure, linked to customer.phone

CRM.CreateCase priority: high, tagged identity-lockout

Escalation — Account Flag

Say"I can see there is a restriction on your account that prevents me from sharing details through this channel. I'll need to connect you with a specialist who can review what's happening and assist you directly."

CRM.CreateCase priority: high, tagged account-flag-review, linked to customer.accountNumber

CRM.LogInteraction tagged account-flag-escalation

→escalation-human

Escalation — Human Specialist

Say"I'm going to transfer you to one of our account specialists right now. They'll have the full context of our conversation so you won't need to repeat anything."

CRM.CreateCase priority: high, tagged specialist-handoff, linked to customer.accountNumber

CRM.LogInteraction tagged escalation-human, with case summary

Resolution

Say"I'm glad I could help. To summarize what we covered today: your account information has been confirmed and any actions taken are noted on your account. If you ever have another question, don't hesitate to reach out. Have a great day!"

CRM.LogInteraction tagged inquiry-resolved, linked to customer.accountNumber

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Healthcare Support Agent▣ voice▣ chat▣ text

Appointment Reschedule / Cancellation

HealthcareSchedulingPatient Support

Intake and Identity Verification

Say"Thank you for reaching out. I can help you reschedule or cancel your appointment. To get started, may I have your full name and date of birth?"

EHR.LookupPatient using patient.fullName and patient.dateOfBirth to retrieve the patient record and patient.id.

Say"Thank you. Can you also confirm your patient ID or account number so I can pull up your appointment details?"

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

Say"I'm sorry — I wasn't able to verify your identity with the information provided. For your security, we're unable to make changes to your appointment until your identity is confirmed in person at one of our locations or through the patient portal with a verified login."

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.

Say"I can see you have an appointment on appointment.date with appointment.provider. Are you looking to reschedule or cancel this appointment?"
Detect
patient intent on the request
  • 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

Say"No problem — I just want to make sure I help you in the right way. Are you looking to move your appointment to a different time, or would you like to cancel it entirely?"
  • 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

Say"Understood. Could you briefly share the reason you need to reschedule? And do you have a preferred date or time range for the new appointment?"

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

Say"I have a few openings with appointment.provider. Let me share those with you — which works best?"

SchedulingPortal.PresentSlots to surface top three available options.

Say"Once you confirm a time, I'll book that right away and send you a confirmation."
  • 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

Say"I'm sorry — appointment.provider doesn't have availability within that window. I have a few options for you: I can offer you the next available slot with appointment.provider, or I can check for an earlier opening with another provider on the same care team, or I can add you to the waitlist so we can contact you if something opens up."
Detect
patient preference on alternatives
  • 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

Say"Before I confirm the new slot, I need to quickly verify your insurance coverage for that date. This will only take a moment."

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

Say"I was able to check your coverage, and there may be a gap in your insurance eligibility for the new appointment date. I want to make you aware before confirming so there are no billing surprises. Would you like to proceed, or would you prefer to speak with our billing team first?"
  • 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

Say"I can process that cancellation for you. Could you share the reason, even briefly? It helps us improve our scheduling."

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

Say"I want to let you know that this appointment falls within our late-cancellation window per clinic policy, which means a cancellation fee may apply. I want to make sure you're aware before I proceed. Would you still like to cancel?"

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.

Say"Your appointment on appointment.date with appointment.provider has been cancelled. You'll receive a confirmation shortly."

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.

Say"You're all set. Your appointment has been moved to newAppointment.date at newAppointment.time with newAppointment.provider. A confirmation will be sent to your preferred contact on file."

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

Say"You've been added to the waitlist for appointment.provider. If a slot becomes available that matches your preferences, we'll reach out right away via your preferred contact method. Is there anything else I can help you with?"

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

Say"I want to make sure you get the right support. Before we make any changes to your appointment, I'd like to connect you with a clinical team member who can better assess what you're experiencing."

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

Say"I'm going to connect you with a member of our team who can assist you further. Please hold for just a moment."

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

Say"No changes have been made to your appointment on appointment.date with appointment.provider. If you need anything else, don't hesitate to reach out."

CRM.LogInteraction tagged no-change, linked to patient.id.

Resolution — Complete

Say"Is there anything else I can help you with today?"

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

Say"Thank you for reaching out. Take care, and we look forward to seeing you. Goodbye!"

CRM.CloseCase linked to patient.id.

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup
Financial Services Support Agent▣ voice▣ chat▣ sms

Account Closure Request

Financial ServicesAccount ManagementComplianceRetention

Intake and Identity Verification

Say"Thank you for contacting us. I understand you'd like to close an account today. Before we proceed, I'll need to verify your identity. Can I have your full name and date of birth?"

CRM.LookupCustomer using customer.fullName and customer.dateOfBirth

IdentityVerification.InitiateCheck for customer.fullName and customer.dateOfBirth

Detect
identity verification outcome
  • 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

Say"I wasn't able to verify your identity with those details. Let me try one more method — can you confirm the last four digits of your Social Security Number and the phone number on file?"

IdentityVerification.SecondaryCheck using additional customer-provided details

Detect
secondary verification outcome
  • Verification passes on retry confirmed →account-selection
  • Verification fails again unconfirmed →escalation-human

Account Selection

Say"Thank you, customer.fullName — your identity is verified. Which account or accounts would you like to close today? Please provide the account number or I can list the accounts currently on file."

CoreBanking.GetAccountList for verified customer record

Say"I can see the following accounts associated with your profile. Please confirm the account number or numbers you'd like to close."
Detect
customer intent on account selection
  • 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

Say"No problem — let me walk you through the accounts on your profile so we can identify the right one."

CoreBanking.GetAccountList — surface account type, last four digits, and current status for each account

Say"Can you confirm which of these is the account you'd like to close? I want to make sure we process the correct one."
  • 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

Detect
compliance screening outcome
  • 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
assess the flagged account against compliance.riskScore, account.status, and kb.aml-compliance-policy.
Goal:determine whether the closure request can proceed, must be held pending review, or must be escalated to the compliance team.
Constraints:never approve closure of a flagged account without documented risk assessment; never communicate hold details that would tip off a potentially fraudulent actor; always log the screening outcome to agent.caseId.
Tools available:ComplianceAML.ScreenAccount, ComplianceAML.GetRiskDetail, CRM.LogInteraction, kb.aml-compliance-policy
  • 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

Detect
account financial state
  • 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

Say"I can see there are pending transactions on this account that haven't settled yet. Account closure will be processed automatically once all pending transactions have cleared — typically within three to five business days."

kb.account-closure-policy — confirm settlement window and closure processing rules for account.type

Say"Would you like us to proceed with the closure request now so it triggers automatically after settlement, or would you prefer to call back once the transactions have cleared?"
Detect
customer preference
  • 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

Say"Understood — no problem. Your closure request has not been submitted. Please contact us again once your pending transactions have settled and we'll process the closure at that time. Is there anything else I can help you with today?"

CRM.LogInteraction note: customer deferred closure for account.number pending transaction settlement

Outstanding Balance Hold

Say"I'm showing an outstanding balance or a linked loan associated with this account. Before we can process the closure, the balance will need to be resolved — either paid in full or transferred to another eligible account."

kb.account-closure-policy — confirm balance resolution requirements for account.type

Say"Would you like me to walk you through your options for resolving the balance, or would you prefer to speak with a specialist?"
Detect
customer response
  • 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

Say"Before we finalize the closure, I'd like to note the reason for your request — this helps us improve our services. Common reasons include switching to another institution, account no longer needed, fee concerns, or a change in financial goals. What's the primary reason for closing your account today?"
Detect
closure reason and customer sentiment
  • 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

Say"I want to make sure we're exploring every option available to you before we proceed. We have resources that may help — would it be okay if I connected you with a financial wellness specialist?"
Detect
customer response
  • Customer agrees to speak with a specialist confirmed →escalation-human
  • Customer declines and wishes to continue closure declined →funds-destination-collection

Retention Offer

Say"I hear you, and I'm sorry to hear you've had that experience. Before we proceed, I'd like to see if there's anything we can do — such as a fee waiver, a rate adjustment, or a product that better fits your needs. Would you be open to hearing your options?"

kb.retention-offers-policy — surface eligible retention offers for account.type and customer.fullName profile

Detect
customer response to retention offer
  • Customer is open to retention options interested →escalation-human
  • Customer declines and confirms they want to close confirmed →funds-destination-collection

Funds Destination Collection

Say"To transfer your remaining balance, I'll need the destination account details — the bank name, routing number, and account number you'd like the funds sent to."

ACHTransfer.ValidateDestination for transfer.destinationAccount and transfer.destinationBank

Detect
destination verification outcome
  • 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

Say"I wasn't able to verify the destination account details you provided. To protect your funds, we'll need to place the closure on hold until we can confirm a valid transfer destination."
Say"You can provide updated banking details by calling us back, visiting a branch, or sending a secure message through your online banking portal. Once we have verified details on file, we'll process your closure and fund transfer right away."

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

Say"Your closure request has been submitted. Your confirmation number is closure.requestId. Any remaining balance will be transferred to your destination account within closure.timeline business days. You'll receive a written confirmation at the email address on file."
Say"Is there anything else I can help you with today?"
Detect
customer response
  • Customer has additional questions or requests needs_help →post-closure-support
  • Customer is satisfied and ends interaction confirmed →resolution

Post-Closure Support

Say"Of course — I'm happy to help. What else can I assist you with?"

kb.account-closure-policy — reference post-closure FAQs including statement access, tax documents, and credit impact

Detect
nature of follow-up question
  • 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

Say"I'm going to connect you with a specialist who has the tools and authority to assist you further. They'll have full context on your request so you won't need to repeat yourself. Please hold for just a moment."

Resolution

Say"Thank you for contacting us today, customer.fullName. Your request has been handled and you'll receive written confirmation shortly. We appreciate your time and wish you all the best. Have a great day."

CRM.LogInteraction note: closure interaction completed for customer.fullName, account account.number

Tags:actionintentflagvariable#channel→step→workflow→escalation{{template}}kb-lookup

Ready to stop experimenting and start deploying?

Learn how teams across every industry are deploying AI agents in production and seeing results from day one.

2026 Feather Financial Inc. All Rights Reserved.

Ready to stop experimenting and start deploying?

Learn how teams across every industry are deploying AI agents in production and seeing results from day one.

2026 Feather Financial Inc. All Rights Reserved.

Ready to stop experimenting and start deploying?

Learn how teams across every industry are deploying AI agents in production and seeing results from day one.

2026 Feather Financial Inc. All Rights Reserved.