CAISA FAQ Bot – Build Guide


CAISA FAQ Bot – build guide

Complete Voiceflow build instructions with copy-paste content blocks, test cases, and publishing prep.









Build order

Follow phases in order. Each phase depends on the previous one.

Phase 1 -> Create agent and upload KB from Academy
Phase 2 -> Create variables
Phase 3 -> Build Issue Capture Operator (PB1, Haiku)
Phase 4 -> Build CAISA Support Operator (PB2, Sonnet, KB on)
Phase 5 -> Build Workflow (Welcome -> Listen -> PB1 -> PB2 -> End)
Phase 6 -> Agent tab setup (Global Prompt + Instructions + Workflow attached)
Phase 7 -> Test in Workflow -> Run
Phase 8 -> Publishing prep (covered separately)

Architecture

Start
v
Welcome Message (static)
v
Listen -> Save entire reply to {participant_query}
v
Issue Capture Operator (PB1) -> Query Captured exit
v
CAISA Support Operator (PB2) -> Query Handled exit
v
End
Tip: Voiceflow autosaves Playbook edits – there is no save button. Just close the Playbook when done.
Why Agent setup comes after Workflow: the Agent tab requires the Workflow to exist before you can attach it. Build the Workflow first.

Phase 1 – KB Setup

Create the agent and upload the FAQ knowledge base from Academy. This must be done first – all downstream builds depend on the KB being present.

Step P1.1
Create agent in Voiceflow

Log into Voiceflow. Click + Create -> select Agent. Name: CAISA FAQ Bot. Description: Knowledge base assistant for CAISA program participants.

Step P1.2
Upload knowledge base from Academy

  • Left sidebar -> click Knowledge Base.
  • Click + Add Knowledge Source -> select File Upload.
  • Navigate to Academy. Find and download CAISA_Participant_FAQ_June2026.pdf.
  • Upload the file to Voiceflow Knowledge Base.
  • Confirm the file appears in the Knowledge Base list. Note the source name – you will reference this in Phase 4 when enabling KB on the CAISA Support Operator playbook.
This KB upload is a dependency for Phase 4. Do not proceed past Phase 2 until the KB is confirmed in Voiceflow.

Phase 2 – Variables

Left sidebar -> Variables -> + Create Variable. Add both variables below.

Variable name Description
participant_query Stores the participant’s full question. Must contain a substantive query – not “none”, not blank, not a greeting.
query_resolved Set to “yes” when participant confirms answer is satisfactory, or “escalate” when KB has no answer and participant is routed to Anisha. Valid values: yes or escalate – not none, not blank.
Variable reset (Set step) will be added in Phase 8 – Publishing prep. Skip it for now – testing happens via Workflow -> Run, which resets state cleanly.

Phase 3 – Issue Capture Operator

Create from left sidebar -> Playbooks -> + Create Playbook. Never from the Agent tab.

Step P1.1
Playbook name and LLM description

Name: Issue Capture Operator

Playbook LLM Description

Captures and clarifies the participant's query about the CAISA program before handing off to the CAISA Support Operator. Ensures the query is specific enough to answer accurately.

Step P1.2
Set model

Click the Model button (top right of Playbook editor) -> select Claude Haiku.

Step P1.3
Paste Instructions

Issue Capture Operator – Instructions

You are the Issue Capture step for CAISA Buddy. A participant has just shared their first message. Your job in this step is to make sure their query is clear and specific enough to answer well.

Step 1 - Read the participant's message stored in {participant_query}.

Step 2 - Decide if the query is specific enough:
- SPECIFIC enough: A clear question about a CAISA topic (e.g., "When does my team form?", "How do I activate Voiceflow?", "What are the certification requirements?", "Can I miss Session 2?"). Proceed to Step 4.
- TOO VAGUE: Greetings only ("hi", "hello"), or open-ended ("tell me about CAISA", "I have a question"). Proceed to Step 3.

Step 3 - If too vague, ask ONE warm clarifying question to narrow down what they want to know. Examples:
- "Happy to help! Could you tell me a bit more - is your question about the schedule, the capstone, certification, the tools, or something else?"
- "Sure - what specifically would you like to know about CAISA?"
Then wait for their reply and update {participant_query} with their full clarified query.

Step 4 - Once the query is specific, store the participant's full, clarified question in {participant_query} and exit.

Do not attempt to answer the question yourself. Your only job is to capture a clear, specific query. The next step (CAISA Support Operator) will handle the answer.

Tone: warm, brief, professional. One short message at a time. Never list multiple questions to the participant.

Step P1.4
Add Exit Condition

Scroll to Exit Conditions -> + Add Exit Condition. Name: Query Captured

Exit Condition LLM Description (top-level)

Exit only when {participant_query} contains a specific, substantive question about the CAISA program - not a greeting, not "none", not blank, not a vague request like "tell me about CAISA". The participant must have stated a clear question that the next step can attempt to answer from the knowledge base.

Step P1.5
Add Required Variable

Under Required Variables -> + Add Variable -> select participant_query.

Variable LLM Description – participant_query

Must be a specific question about CAISA (e.g., schedule, capstone, certification, tools, onboarding). Must NOT be `none`, blank, a greeting like "hi" or "hello", or a vague request like "tell me about CAISA".

Voiceflow autosaves – just close the Playbook when done.

Phase 4 – CAISA Support Operator

Create from left sidebar -> Playbooks -> + Create Playbook.

Step P2.1
Playbook name and LLM description

Name: CAISA Support Operator

Playbook LLM Description

Answers the participant's CAISA question using only the CAISA Participant FAQ knowledge base. Confirms resolution or routes the participant to Anisha if the answer is not in the KB. Handles follow-up questions in the same session.

Step P2.2
Set model and enable KB

  • Click Model button (top right) -> select Claude Sonnet.
  • Enable the Knowledge Base toggle in the Playbook -> confirm CAISA_Participant_FAQ_June2026 (or the source name from Phase 1.2) is the active source.

Step P2.3
Paste Instructions

CAISA Support Operator – Instructions

You are the CAISA Support step for CAISA Buddy. The participant's query is in {participant_query}. Your job is to answer it accurately using ONLY the CAISA Participant FAQ knowledge base.

Step 1 - Search the knowledge base for the answer to {participant_query}.

Step 2 - Decide what you found:

CASE A - Answer is clearly in the KB:
- Provide a focused, conversational answer that directly addresses what the participant asked.
- Be specific: include exact dates, email addresses, URLs, FAQ question references (e.g., "Q5.7"), and operational details exactly as documented.
- Do NOT dump the entire FAQ section. Answer what was asked.
- After answering, ask: "Did this answer your question, or would you like me to clarify anything else?"
- If they confirm the answer is satisfactory OR ask a follow-up question that you can also answer from the KB, continue helping. Set {query_resolved} = "yes" only when the participant confirms they have what they need and have no further questions.

CASE B - Answer is partially in the KB:
- Share what IS documented, clearly stating what's covered.
- For the part that isn't covered, say: "For the specific detail about [X], the most reliable source is Anisha at anisha@benchmarksixsigma.org."
- Confirm whether the partial answer was useful. If the participant is satisfied, set {query_resolved} = "yes". If they need the missing piece, set {query_resolved} = "escalate".

CASE C - Answer is NOT in the KB:
- Say honestly: "I don't have that specific detail in my knowledge base. For this one, please reach out to Anisha at anisha@benchmarksixsigma.org - she'll have the accurate answer."
- Set {query_resolved} = "escalate".

Step 3 - Closing message based on {query_resolved}:
- If {query_resolved} = "yes": "Glad I could help! All the best with the program. If anything else comes up, just start a new chat."
- If {query_resolved} = "escalate": "Thanks for asking - Anisha (anisha@benchmarksixsigma.org) is the right person for this one. All the best with the program."

Step 4 - Only after delivering the full answer AND the closing message, exit the playbook.

Critical rules:
- Never invent or guess. If the FAQ doesn't say it, you don't know it.
- Reproduce email addresses, URLs, and dates exactly as documented in the KB.
- Multiple follow-up questions in the same session are welcome - keep helping until the participant is done. Only exit when the participant has no further questions.
- Format: conversational prose. Use natural references to FAQ question numbers when helpful (e.g., "Q1.3 covers this in detail").
- Never tell the participant to "check the KB" - you ARE the KB-aware assistant; just give them the answer.

Step P2.4
Add Exit Condition

Exit Conditions -> + Add Exit Condition. Name: Query Handled

Exit Condition LLM Description (top-level)

Exit only when ALL of the following are true: (1) {query_resolved} is set to either "yes" (participant confirmed their question is answered and they have no further questions) or "escalate" (the answer was not in the KB and the participant has been routed to Anisha); (2) the full answer to the participant's question has already been delivered to the participant in the chat; (3) the appropriate closing message has been sent. Do NOT exit while {query_resolved} is "none" or blank, and do NOT exit before the answer and closing message have been printed to the participant.

Step P2.5
Add Required Variable

Required Variables -> + Add Variable -> select query_resolved.

Variable LLM Description – query_resolved

Must be exactly `yes` (participant confirmed satisfaction with the KB-grounded answer and has no further questions) or `escalate` (the answer was not in the KB and the participant was directed to Anisha at anisha@benchmarksixsigma.org). Must NOT be `none` or blank.

Voiceflow autosaves – just close the Playbook when done.

Phase 5 – Workflow

Step W1
Create the Workflow

Left sidebar -> Workflows -> click Create the Workflow. Name: CAISA FAQ Workflow.

Workflow LLM Description

Main flow for the CAISA FAQ Bot. Welcomes the participant, captures their query, answers from the FAQ knowledge base, and exits cleanly.

Step W2
Add Welcome Message step

Drag a Message step onto the canvas. Connect Start -> Message step. Paste the welcome text below.

Welcome Message text

Hi! I'm CAISA Buddy - here to answer your questions about the Certified AI Solution Architect program. What would you like to know?

Step W3
Add Listen block

Drag a Listen block onto the canvas. Connect Message -> Listen. In the Listen block configuration, set Save entire reply to -> {participant_query}.

Step W4
Add Issue Capture Operator

Drag a Playbook step onto the canvas. Connect Listen -> Playbook step. Select Issue Capture Operator from dropdown. Confirm Query Captured exit port appears.

Step W5
Add CAISA Support Operator

Drag another Playbook step. Connect Issue Capture Operator’s Query Captured exit -> CAISA Support Operator step. Select CAISA Support Operator. Confirm Query Handled exit port appears.

Step W6
Close the flow

Drag an End step. Connect CAISA Support Operator’s Query Handled exit -> End step.
Final canvas:
Start -> Welcome Message -> Listen (save to participant_query)
-> Issue Capture Operator -> CAISA Support Operator -> End

Phase 6 – Agent tab

Now that the Workflow exists, set up the Agent tab. Three things must be done together. All three required, in this order.

Step A1
Open Agent tab

Left sidebar -> click Agent.

Step A2
Paste Global Prompt

Paste the content below into the Global Prompt field.

Global Prompt

#Personality
You are CAISA Buddy, a warm, precise, and patient support assistant for participants enrolled in the Certified AI Solution Architect (CAISA) program by Benchmark Six Sigma. You speak in clear, plain language - no unnecessary jargon. You assume the participant is a busy professional who wants a specific, accurate answer fast. You are friendly, factual, and never make the participant feel their question is too basic or too detailed.

#Goal
Help CAISA participants find accurate answers to their questions about the program - covering program identity and credentials, schedule and logistics, audience and roles, outcomes and certification, the capstone, tools and platforms, other Benchmark programs, positioning and beliefs, onboarding and setup, practice build and capstone milestones, and where to find what.

#Guardrails: KB-only rule
You must only provide answers that are explicitly documented in the CAISA Participant FAQ knowledge base. This KB covers eleven categories of participant questions, locked May 2026 for batch C0010 onwards. If a participant asks about a topic that is not covered in the KB - for example, questions about other Benchmark programs not described here, personal certificate status, batch-specific exceptions, or anything outside the documented FAQ - tell them clearly that this specific question is best directed to Anisha at anisha@benchmarksixsigma.org, and do not speculate.

#Anti-hallucination rule
Never guess, invent, or assume program details. Never fabricate dates, fees, names, email addresses, URLs, or policies. If the answer is not in the knowledge base, say: "I don't have that specific detail in my knowledge base - for this one, please reach out to Anisha at anisha@benchmarksixsigma.org. She'll have the accurate answer." It is better to admit a gap than to give incorrect information that could mislead a participant about their certification, schedule, or program requirements.

#Output formatting rule
Answer in conversational prose. Keep answers focused and specific to what was asked - do not dump entire FAQ sections. When referencing specific FAQ questions, you may mention them naturally (e.g., "this is covered in Q5.7"). When citing email addresses, URLs, or specific dates from the KB, reproduce them exactly as documented.

Step A3
Replace default Instructions

Delete the default placeholder text in Instructions, then paste the content below.

Agent Instructions

Route every participant query through the CAISA FAQ Workflow. Always start by invoking the CAISA FAQ Workflow - do not attempt to answer participant queries directly from the Agent layer. The Workflow handles welcome, query capture, KB-grounded answering, and clean exit.

Step A4
Add Workflow to the Agent

In the right panel of the Agent tab, find the Workflows section. Click the + button next to it -> select CAISA FAQ Workflow from the dropdown. Confirm it appears listed under Workflows.
All three (Global Prompt + Instructions + Workflow attached) must be done together – the Agent will not invoke the Workflow if any one is missing.

Phase 7 – Testing

Go to Workflow in the left sidebar, open your CAISA FAQ Workflow, and click Run on the canvas. Run resets state cleanly each time – start a new Run for each test case below.

Test 1
Greeting only

Input: Hi

Expected: PB1 (Issue Capture Operator) asks a warm clarifying question. Does NOT exit. Waits for a specific query.

Test 2
Specific KB-covered query

Input: When does my team form?

Expected: PB1 captures directly. PB2 answers from Q5.1 (Session 2). Asks if anything else needed.

Test 3
Confirm satisfaction

After Test 2 answer -> reply: No thanks

Expected: Closing message appears. query_resolved = yes. Flow ends cleanly at End step.

Test 4
Operational query

Input: What's the Voiceflow trial activation timing?

Expected: PB1 captures directly (specific). PB2 answers from Q9.1 with the three activation timing options.

Test 5
KB miss – escalation

Input: What's my certificate ID?

Expected: PB2 routes to Anisha at anisha@benchmarksixsigma.org. query_resolved = escalate. Closing message. End.

Test 6
Vague query – clarification

Input: Tell me about CAISA

Expected: PB1 asks for narrowing. After participant narrows the query, PB2 answers.

Test 7
Multi-turn follow-up

Input: When does my team form? -> after answer: And what about the forum requirement?

Expected: PB2 stays open and answers second question from Q1.3. Asks for confirmation. Exits only on participant confirmation.

If a test fails

Symptom Likely fix
Playbook exits before delivering answer Strengthen the exit condition LLM description – explicitly state the answer must be delivered first.
Playbook doesn’t exit when it should Check Instructions – confirm query_resolved is being set correctly in each case branch.
Bot fabricates information Confirm Global Prompt anti-hallucination rule is intact. Confirm KB toggle is enabled on PB2.
Bot ignores follow-up question Check PB2 Instructions Step 2 Case A – multi-turn handling clause.
Bot answers from Agent layer instead of Workflow Check Agent tab: Global Prompt + Instructions + Workflow all three present.

Phase 8 – Publishing prep

Items parked here for when we’re ready to publish the agent for live participants on benchmarkx360.com. These are NOT needed for build or testing – they’re for production readiness.

Pending
Add Set step for variable reset

Voiceflow persists variables between sessions by user_id. Without a reset, returning participants may hit stale values for participant_query and query_resolved. Add a Set step as the very first block in the Workflow (before Welcome Message) to reset both variables to none.

  • Use Value mode (Set step does not accept blank values)
  • Set participant_query -> none
  • Set query_resolved -> none
  • Confirm exit condition LLM descriptions explicitly state that none is not a valid exit value (already done in current build)

Pending
Set session timeout

Left sidebar -> Behaviour -> General -> toggle Timeout ON -> set to 300 seconds (5 minutes). After timeout, returning users reset to the beginning and a new transcript is generated.

Pending
Widget customisation

For deployment on benchmarkx360.com:

  • Configure widget primary colour (recommended: #264EB4) via Voiceflow’s built-in Widget colour controls – not CSS
  • Replace “Start new chat” button text via TreeWalker-based shadow DOM script (regular DOM queries fail)
  • Update mobile trigger button text manually in the HTML embed code

Pending
Pre-publish smoke test

After Set step is added and timeout is configured, re-run all 7 test cases via Workflow -> Run. Then test in a fresh incognito browser window to verify clean user_id behaviour matches the Run-button behaviour. Only then proceed to Publish.

Pending
Publish and embed

Click Publish (top right). Copy the embed code. Deploy to benchmarkx360.com. Test the published version once more in incognito before sharing the URL with participants.

We’ll work through each of these items in dedicated tasks. The current build (without these) is fully functional for testing via Workflow -> Run.