Build smarter workflows with the AI Agent canvas.

A reference for product, ops, and design teams. Learn how Pre-chat, Escalation, and Process Tools workflows fit together — with industry examples.

eGain AI Agent · Canvas preview

The three workflow types

Every conversation in eGain AI Agent flows through these three categories. Pick the right one
based on where in the conversation you need to take control.

PRE-CHAT

Before the AI takes over

Collect context, route by topic, and hand a clean userQuery to the AI Agent. Always ends with
Send to AI Agent.

ESCALATION

When AI hits its limit

The AI couldn’t resolve it — capture context, set expectations, and hand off to a queue, agent,
or callback. Ends with Chat Transfer, Send Email, or Trigger Call.

PROCESS TOOLS

Tools the AI can call

Reusable, deterministic flows the agent invokes mid-conversation. This is where the
API node lives — fetch a record, write a ticket, look something up.

All available nodes

The block sidebar groups nodes into Display, Input, Logic, Action, and Connector Actions. Filter by category to focus on one group.

Display
Input
Logic
Action
Connector Actions






Statement #1
Welcome to MercyCare Health Support.

StatementDisplay

Read-only message from the bot. Supports {{var}}.


Question Select #2
What can we help with?
Appointments
Billing
Coverage
▷ On Skip

QuestionInput

Two modes: Text (free-text into a variable) or Select (each option becomes its own outgoing edge).

Date #3
When did the issue start?
YYYY-MM-DD

DateInput

Calendar input with format validation. Skip + Invalid handles.

Time #4
Preferred callback time?
HH:mm

TimeInput

Clock-style time input. Pairs well with Date for scheduling.

Number #5
Estimated claim amount?
⚠ Invalid

NumberInput

Numeric input. Works with the gt/lt/gte operators in Condition nodes.

Email #6
What’s the email on file?
⚠ Invalid

EmailInput

Validated email input. Skip + Invalid handles included.

Phone #7
Best number to reach you?
+1 (555) …

PhoneInput

Phone-number input with format validation.


Condition #8
Urgent? amount >= 25000
Else

ConditionLogic

Branch on rule groups. Always has an implicit Else path. Each rule references a workflow variable via variableName.

API #9
GET
/policies/{{id}}
⚠ On Error · ⏱ On Timeout

APILogic

Call any HTTP endpoint. Three required handles: Success, On Error, On Timeout. Map JSON fields to workflow variables via output_variables: [{ mapped_variable, response_path }].

Jump #10
→ Statement #2

JumpLogic

Direct jump to another node. Useful for loops or shared “thanks” endings.

Wait #11
3 seconds

WaitLogic

Pause the flow. Often used to space out bot messages so they feel less robotic.

Set Variable #12
topTx = expression
tx[0].merchant

Set VariableLogic

Assign a static value, copy from another variable, or evaluate an expression.

Query Filter #13
2 conditions (AND)

Query FilterLogic

Narrow KB retrieval by attribute or filter tag. Requires sendQueryOps:true downstream.


Send to AI Agent #14
→ end

Send to AI AgentAction

Pre-chat terminator. Hands the session over to the agent. Requires that userQuery has been set upstream (e.g. by a Question Text with isUserQuery: true) — otherwise publish-checks fail.


Chat Transfer #15
→ Banking queue
⚠ On Error

Chat TransferConnector

Routes the live conversation to a human queue. Escalation terminator.

Send Email #16
+ chatHistory

Send EmailConnector

Send an email mid-flow. Non-terminal — has a default handle that continues.

Trigger Call #17
+1 (555) 867-5309

Trigger CallConnector

Initiate an outbound voice call from the workflow.

Workflow Examples

Three industries, with one example for each workflow type. None of these use KB filter tags or KB
attributes — they’re portable patterns you can drop into any workspace.


Note: All API calls (URLs, payloads, responses) shown across these workflows are dummy / placeholder values for representation purposes only — they’re meant to illustrate the workflow shape, not point to real endpoints.

Health

Pre-chat

HealthPre-chat

MercyCare triage intake

Start Statement #1 Welcome to MercyCare Health Support! I can help with appointments, billing & coverage. Question Text #2 What’s your full name? ⚠ Invalid Email #3 Email on file? ⚠ Invalid Question Select #4 What can we help with? Appointments Billing & Payments Coverage & Benefits ▷ On Skip Send to AI Agent → end

What it does

Greets a returning member, captures name + email, asks them to pick a topic so the AI Agent
starts the chat with the right context, and hands off cleanly.

Build order

StartStatement (welcome) → Question · Text (name) → EmailQuestion · Select (3 topics) → Question · Text “How can we help today?” with isUserQuery: trueSend to AI Agent.

Highlights

  • All three options on the select question fan into the same userQuery node — standard “deflection” pattern.
  • Use skipIfPresent: true on Name and Email so returning users aren’t re-asked.
  • Pre-chat must assign userQuery before Send to AI Agent — add a Question Text with isUserQuery: true and variableKey: "userQuery", otherwise publish-checks will fail.
  • Forward captured variables in Send to AI Agent → variables so the agent sees them.

Escalation

HealthEscalation

MercyCare nurse handoff

Start Statement #1 A clinical specialist can help. Let me get the right person for you. Question Select #2 How urgent is this? Emergency symptoms Same-day question General follow-up Statement #3 If this is a life-threatening emergency, please call 911. Connecting a nurse now. Statement #4 Connecting a nurse for you. Statement #5 A nurse will call you back. Chat Transfer → Triage queue Chat Transfer → Nurse Line Trigger Call → Callback queue

What it does

Triggered when the AI couldn’t resolve a clinical question. Asks one question to route by
urgency, shows a 911 disclaimer for the emergency branch, then transfers to the right queue —
or schedules a callback for non-urgent.

Build order

StartStatementQuestion · Select (3 urgency tiers) → branch into 3 statements → Chat Transfer / Trigger Call.

Highlights

  • Use three Question Select options instead of a Condition node when the user is choosing — it’s clearer than a one-deep condition.
  • Each terminal action node (Chat Transfer / Trigger Call) needs an escalationMessage.
  • Pass chatHistory in contextVariables so the human picks up where the AI left off.

Process Tools

HealthProcess Tools

Find next available appointment (API)

Start Question Text #1 Which specialty? (e.g., cardiology, dermatology) API #2 GET /appts?spec={{spec}} → Success ⚠ On Error ⏱ On Timeout Condition #3 Slot found? slotCount > 0 Else Statement #4 Next available: {{nextSlot}} with Dr. {{doctorName}}. Statement #5 No slots in 30 days. Want to be on the waitlist? Statement #6 Try again in a moment. Statement #7 Lookup is taking too long.

What it does

The AI agent calls this tool when a member asks “when’s my next appointment?” It captures the
specialty, hits the scheduling API, then either shows the next slot, offers a waitlist, or
falls back gracefully on error/timeout.

Build order

StartQuestion · TextAPI GETCondition on slotCount → 2 outcome statements + 2 fallback statements.

Highlights

  • The API node has three required output handles — Success, On Error, On Timeout. All three must be wired or publish fails.
  • Use output_variables to map response paths (data.slots[0].timenextSlot) into workflow variables.
  • The Condition reads the variable the API just wrote — operator gt against 0.
  • Process Tools are reusable: any AI Agent in the department can call this tool.

Expert Sample Use Cases

Patient Access Workflow

Patient Access

Hospital · Insurance Verification & Prior Authorization

9 steps

Drives a Patient Access agent through eligibility verification, PA requirements, pre-submit
validation, package submission, status monitoring with SLA tracking, denial & appeal, and
financial clearance — all from one screen, with AI assembling the patient record and
surfacing payer-specific KM articles.

Epic EMRPayer APIsEDI 270/271eGain KM

Start API #1 GET /epic/patient/{{mrn}} → Success · ⚠ Error · ⏱ Timeout API #2 POST /edi/eligibility/270 writes: eligible, copay Condition #3 Eligible? eligible == “Y” Else Statement #4 Coverage issue — let me get a specialist. Chat Transfer #5 → Eligibility Specialist API #6 GET /payer/pa-rules?cpt= writes: paRequired, daysToAuth Condition #7 PA Required? paRequired == “Y” Else Condition #8 Submission valid? NPI & ICD-CPT & notes Else API #9 POST /payer/pa/submit attaches order + clinicals Wait #10 5 min API #11 GET /payer/pa/status writes: paStatus Condition #12 PA Status? approved | pending Else (denied) Statement #13 Good news, no prior authorization is needed. Statement #14 You’re all set, your visit is approved. Statement #15 Submission validation failed, fix and retry. Condition #16 PA decision in? paStatus == DENIED Else (timed out) Send Email #17 Appeals team Statement #18 PA past SLA, escalate to supervisor.

Coverage & Cost Estimation

Health Payer

Member Services · Benefit Coverage & Pricing

10 steps

Live coverage check + cost estimation for a member call. Pulls plan benefits from Facets,
gates on coverage and network status, retrieves accumulators, queries UM for prior auth,
gates on PA-required disclosure, and synthesizes a member-friendly cost estimate.

FacetsProvider DirectoryUM / AutheGain KMSalesforcePricing Engine

Start Question Text #1 Member ID? writes: memberId Question Select #2 Service / CPT? MRI · 72148 PT · 97110 Specialist visit API #3 GET /facets/benefits writes: planTier, copay, oop Condition #4 Service covered? coverageActive == true Else (not covered) API #5 GET /providers/network writes: networkStatus Condition #6 In-Network? networkStatus = “IN” Else (OON) Statement Service not covered; refer to plan exclusions. API #7 GET /facets/accumulators writes: ytdDeduct, oopMet API #8 GET /um/auth-rules writes: paRequired, daysToAuth Condition #9 PA required? paRequired == true Else (no PA) Statement Prior auth required; disclose to member. API #10 GET /pricing?cpt=&tier= writes: contractedRate Set Variable #11 memberCost = expression copay + max(0, rate – ytdDeduct) Statement #12 Your estimated cost is ${{memberCost}}. Statement #13 Heads up, this provider is out of network. API #14 GET /pricing/oon Statement #15 Out-of-network estimate: ${{wsContractedRate}}.

Care Coordination Workflow

High Complexity

Patient Access · Complex Multi-Appointment Scheduling

10 steps

High-complexity case orchestration. Sequences a 4-appointment chain
(labs → imaging → surgical consult → same-day surgery block) with PA checks, special
services (interpreter / transport), patient confirmation gate with rollback, and
outgoing patient communications.

Epic EMRScheduling PlatformUM / AutheGain KMReferrals

Start API #1 GET /epic/referral/{{id}} writes: orderValid, sequence Condition #2 Order valid? orderValid == “Y” Else Send Email #3 Provider: missing order Set Variable #4 apptOrder = expression labs → MRI → consult → surgery API #5 POST /sched/labs Step 1 — labs first API #6 GET /um/auth?cpt=72148 writes: imagingPA Condition #7 imagingPA approved? Else (pending) Send Email #8 UM team — escalate PA API #9 POST /sched/mri Step 2 — imaging API #10 POST /sched/consult Step 3 — surgical consult API #11 POST /sched/surgery Step 4 — block Conditional #12 Yes Else API #13 POST /sched/interp Statement #14 All 4 visits are confirmed. Condition #15 Patient confirms? patientConfirms == true Else (declined) Send Email #16 Itinerary to patient Statement Patient declined; cancel all 4 bookings, free the slots.

Banking

Pre-chat

BankingPre-chat

Northpoint Bank intent capture

Start Statement #1 Northpoint Bank — your questions answered fast. Question Select #2 Are you a customer? Yes — sign me in No — I’m shopping Question Text #3 Last 4 of your account? ⚠ Invalid Statement #4 Happy to help you compare. Send to AI Agent → end

What it does

Two-fork pre-chat. Existing customers verify with the last 4 of their account; prospects skip
ahead. Both branches converge on the AI Agent with the right context flag.

Build order

StartStatementQuestion · Select (Yes/No) → 2 different paths → Question · Text “How can we help?” with isUserQuery: trueSend to AI Agent.

Highlights

  • This is the canonical returning vs. new pattern. The variable (wsIsCustomer) is visible inside the AI session.
  • Don’t put real account numbers into chat — capture only the last 4 as a reference, not for auth.
  • Both branches converge on the same userQuery question — that satisfies the “pre-chat must assign userQuery” publish-check.

Escalation

BankingEscalation

Fraud-priority routing

Start Statement #1 I understand this needs a specialist. Question Select #2 Issue type? Suspected fraud Lost or stolen card Account locked Condition #3 Urgent? issue ∈ {fraud, lost} Else Statement #4 Connecting you with our Fraud team. Statement #5 Connecting you with a specialist. Chat Transfer #6 → Fraud queue Chat Transfer #7 → Banking queue

What it does

Captures the issue type from a select, then a Condition node groups fraud and
lost_card as urgent while locked falls into the standard
queue. Each branch ends in a Chat Transfer (collapsed in the diagram for clarity).

Build order

StartStatementQuestion · SelectCondition (urgent vs else) → 2 statements → Chat Transfer.

Highlights

  • The Condition’s first group has rule wsBankIssue equals [fraud, lost_card] — note OR across values in a single rule.
  • Every Condition has an implicit else handle. You must wire it or publish-checks fails.
  • Statements before the transfer set expectations — useful for SLA reasons.

Process Tools

BankingProcess Tools

Recent transactions lookup (API)

Start Question Text #1 Last 4 of your account? Question Select #2 Time range? Last 7 days Last 30 days Last 90 days API #3 GET /tx?last4={{l4}}& range={{rangeDays}} → Success ⚠ On Error · ⏱ Timeout Set Variable #4 topTx = expression tx[0].merchant Statement #5 Most recent: {{topTx}} — {{txCount}} total in range. Statement #6 Sorry, our system is unavailable. Please try again.

What it does

Customer asks “what’s my recent spending?” The agent calls this tool, which collects the
last-4 + range, hits the transactions API, then formats the result with a Set Variable
expression before showing it.

Build order

Start → 2 questions → API GETSet Variable (expression on response) → Statement.

Highlights

  • Set Variable + expression is how you reshape API responses without writing code outside the workflow.
  • Pass query params via {{var}} interpolation in the API node’s url.
  • Don’t include account numbers in any URL — the last 4 only as a reference token.

Expert Sample Use Cases

Fraud & ATO Response

High Risk

Credit Union Member Services · Fraud Response

9 steps

Drives fraud triage and account-takeover response: identity verification, account &
transaction pull, fraud classification, immediate containment, Reg E/Z routing, BSA silent
SAR protocol, provisional credit decisioning, and dispute filing.

Symitar CoreFIS Card MgmtACH PlatformNICE ActimizeeGain KMBSA/AML

Start Question Text #1 Member # + last 4? writes: memberId, last4 API #2 GET /symitar/accounts writes: accounts, txns API #3 POST /actimize/score writes: riskScore, fraudType Condition #4 High risk? riskScore >= 80 Else (low) Statement #5 Thanks for confirming. We don’t see anything unusual. API #6 POST /fis/card/freeze immediate containment API #7 POST /ach/hold stop pending ACH Question Select #8 Reg E claim? Yes — file claim No — info only Set Variable #9 provCredit = “eligible” API #10 POST /bsa/silent-flag SAR — do not disclose Send Email #11 Fraud Ops · case file Statement #12 Your account is secured. A specialist is on the way. Chat Transfer #13 → Fraud queue

Business banking triage

Business Services · Pre-chat intent routing

9 nodes

Front-door triage for the business banking line. The visitor picks the path that fits — opening a business checking account, applying for a commercial loan, or ‘something else’ — and gets a short routing message before the AI Agent takes over with the right context.

Business DepositsBusiness LendingAI Agent

Start Statement #1 Welcome to Business Services. Question Select #2 What can we help with? Business checking Commercial loan Something else Condition #3 Checking Loan Else Statement #4 → Business Deposits team Statement #5 → Business Lending team Statement #6 Tell me a bit more… Send to AI Agent → end

Open business checking

Business Deposits · Pre-chat intake

12 nodes

Pre-chat intake for opening a business checking account. Captures entity type and document readiness, surfaces the full BSA / CIP document checklist when anything is missing, then collects deposit size — flagging $25,000+ for the Member Business Services Officer’s mandatory secondary review.

BSA / CIPMember Business ServicesAI Agent

Start Question Select #1 Entity type? LLC Corporation Partnership Sole proprietor / Other Question Select #2 Documents ready? Yes, all ready Some missing Not sure Condition #3 Missing or unsure? Else Statement #4 Send full document checklist (6 items). Question Select #5 Opening deposit? Min ($100) $100 – $25K $25K+ Condition #6 ≥ \$25,000? Else Statement #7 Flag for senior officer review Send to AI Agent → end

Open commercial loan

Business Lending · Pre-chat intake

13 nodes

Pre-chat intake for a commercial loan inquiry. Captures purpose, amount band, collateral, and years in business, then routes to the right approval authority — Senior Loan Officer, VP of Business Services, the Loan Committee, or the Board — with the SLA on each path so the visitor knows what turnaround to expect before the loan officer even reaches out.

Senior Loan OfficerVP Business ServicesLoan CommitteeBoard

Start Question Select #1 Purpose? Real estate / Equipment Working capital Refinance / Other Question Select #2 Loan amount? Up to \$100,000 \$100,000 – \$500,000 \$500,000 – \$2 million Over \$2 million Question Select #3 Collateral? Real estate Equipment / receivables Unsecured Question Select #4 Years in business? Less than 2 / 2–5 / 5+ years Condition #5 Tier 1 (up to \$100K) Tier 2 (\$100K – \$500K) Tier 3 (\$500K – \$2M) Else (>$2M) Statement #6 Senior Loan Officer · 3-day review Statement #7 VP Business Services · 5-day review Statement #8 Loan Committee · 10-day review Statement #9 Board approval · next meeting

Member fraud claim escalation

High Risk

Member Services · Fraud Response · Escalation

17 nodes

Routing brain for an active fraud call. Captures the fraud type, whether the member authorized the payment (the scam-vs-unauthorized distinction), the dollar amount, and any high-risk flag. A single Condition node ranks all seven escalation triggers and either lifts the call to a Fraud Supervisor or hands off to a standard fraud-claim agent.

Member ServicesFraud Operations

Start Statement #1 Sorry to hear that — let’s get help. Question Select #2 Fraud type? Debit / ACH / Account takeover Check / Wire Zelle / P2P Question Select #3 Authorized? Yes (scam) / No Question Number #4 Total amount? (in dollars) Question Select #5 Risk flag? Can’t verify Deceased / Identity theft Third party / None Condition #6 Wire (urgent) Scam (authorized) Takeover + can’t verify Deceased Identity theft Third-party filing Amount over \$5,000 Else (standard) Chat Transfer #7 → Fraud Supervisor 7 escalation paths Chat Transfer #8 → Fraud Claims

Fraud claim filing procedure

High Risk

Member Services · Fraud Response · Agent procedure

18 nodes

Agent-side guided procedure for handling any fraud call from start to finish. Gates on identity verification, branches to the right security actions for the specific fraud type, then surfaces escalation triggers and approved closing language so notes and member expectations land exactly the way the procedure requires.

Identity VerificationMember ServicesFraud Operations

Start Statement #1 Fraud claim procedure — do not skip steps. Question Select #2 ID verification? Passed Failed High-risk flag Condition #3 Failed High-risk Else Statement #4 End call — identity not verified Statement #5 Transfer for high-risk review Question Select #6 Pick fraud type Debit / ACH / Check Account takeover Wire / Zelle Condition #7 Route by fraud type six branches Statement #8 Block debit card and reissue Statement #9 Block ACH and request reversal Statement #10 Reset credentials and freeze account Statement #11 Stop payment and retrieve check Statement #12 Document wire and escalate Statement #13 Block Zelle and report in app Question Select #14 Escalation trigger? Wire fraud or hostile member Deceased holder or identity theft Over $5,000, third party, none Condition #15 Trigger present? Else Statement #16 Escalate to supervisor Statement #17 Confirm timeline and claim number

Insurance

Pre-chat

InsurancePre-chat

Delta Insurance line-of-business intake

Start Statement #1 Hi! I’ll route you to the right team in seconds. Question Select #2 Line of business? Auto Home Renters Life Commercial Question Text #3 In one sentence, how can we help today? Send to AI Agent → end · userQuery=intent

What it does

Captures Line of Business as a select (so reporting can attribute by LOB), plus a free-text
“what brings you here?” that becomes the AI Agent’s userQuery.

Build order

StartStatementQuestion · Select (5 LOB options, all converging) → Question · Text with isUserQuery: trueSend to AI Agent.

Highlights

  • Five-option converge → one downstream node: still readable, no Condition needed.
  • Setting isUserQuery: true on the text question writes the answer into the system userQuery variable — the AI Agent treats that as the opening message.
  • Don’t filter the KB on LOB here unless you’ve explicitly added a Query Filter — this example deliberately uses LOB as context only, not a KB filter.

Escalation

InsuranceEscalation

Claim escalation by severity

Start Statement #1 Sorry you’re going through this. Let me help. Number #2 Estimated claim amount? ⚠ Invalid Condition #3 High severity? amount >= 25000 Mid? amount >= 5000 Else Send Email + summary to Sr. Adjuster Chat Transfer → Sr. Adjusters queue Chat Transfer → Adjusters queue Chat Transfer → General queue

What it does

Asks for a numeric claim amount (validated by the Number node), then a Condition node with
three groups (high, mid, low/else) routes to the appropriate queue. The
high-severity branch also emails the senior adjuster team before the transfer.

Build order

StartStatementNumberCondition (3 groups) → Send Email + 3 × Chat Transfer.

Highlights

  • Multi-group conditions: groups are evaluated top-down, first match wins. Order them most-specific-first.
  • Send Email is non-terminal — it has a default handle that continues the workflow. Useful for “alert someone but keep going”.
  • Numeric operators (gt, gte, lt) work on string-typed variables that contain numerics.

Process Tools

InsuranceProcess Tools

Policy lookup tool (API)

Start Question Text #1 Policy number? e.g. POL-12345 API #2 GET /policies/{{wsPolicyNumber}} → Success ⚠ On Error ⏱ On Timeout Condition #3 Active? status equals “active” Else Statement #4 Policy {{wsPolicyNumber}} is active and in good standing. Statement #5 Policy is currently {{wsPolicyStatus}}. A specialist will follow up. Statement #6 Our system is down right now. Please try again in a moment. Statement #7 Lookup is taking too long.

What it does

The agent invokes this when a customer asks “is my policy active?” One question collects the
policy number, the API node fetches the record, a Condition reads the returned status, and the
response goes back to the agent verbatim. Errors and timeouts each get their own friendly
message.

Build order

StartQuestion · TextAPI GET with three handles wired → Condition on wsPolicyStatus → 4 outcome statements.

Highlights

  • The three API handles (Success / On Error / On Timeout) must all be wired — even a simple Statement is enough on the failure paths.
  • Use output_variables with response_path like data.status to map JSON fields into workflow vars.
  • Statements support {{varName}} templating, so the inactive branch can echo back the actual status without a separate Set Variable.
  • This is a true Process Tool — give it a clear description so the agent knows when to invoke it.

Expert Sample Use Cases

Pre-Form Filtering Flow

Pre-chat · Routing

Line-of-business intake routing into the AI Agent

5 LOB branches

Routes the customer by line of business at the very start of the chat. Home / Auto / Life
each ask a follow-up qualifier (Product / State / System) before capturing the user
question and handing off to the AI Agent. Commercial and Health fall into a generic
statement branch (no AI handoff yet).

Question · SelectQuestion · TextSend to AI AgentStatement

Start Question Select #1 Line of business? Home Auto Life Commercial Health writes: lob Question Select #2 What is the product? Renters Condo Homeowners writes: product Question Select #3 Policy state? CA · TX · FL · NY Other writes: state Question Select #4 Which system holds it? Legacy LMS Modern Policy Hub writes: system Question Text #5 User’s question? isUserQuery: true writes: userQuery Send to AI Agent #6 → end forwards: lob, product, state Statement #7 Commercial & Health are handled by a specialist team — someone will call you back shortly.

Escalation Flow

Escalation · Routing

Three triggers (feedback, direct, knowledge gap) → live channel routing

3 triggers · 3 channels

One escalation flow handles three triggers: a thumbs-down on an AI answer, a direct
“speak to a human” request (with a 2-run reconfirm limit), and a knowledge-gap escalation
from upstream. An Hours of Operation API call gates routing to Email
(after-hours) or to a live channel — Message or Call — during business hours.

Question · SelectStatementAPI · HoursConditionSend EmailChat TransferTrigger Call

Answer provided trigger Direct escalation “speak to a human” Knowledge gap escalation Question Select #1 Was this helpful? 👍 Yes / nothing selected 👎 No writes: feedback Statement #2 Glad we could help. Have a great day! Statement #3 Can you repeat your question? API #4 GET /hours/check Hours of Operation writes: isOpen, tz Condition #5 Working hours? isOpen == “Y” Else (after-hours) Question Select #6 How would you like to connect? Message a live person Call a live person Email me back writes: channel Chat Transfer #7 Message live person Trigger Call #8 Call live person Send Email #10 team inbox + ticket Statement #9 We’re closed. We’ll email you first thing tomorrow.

Skip to content