Virbe Documentation

On conversation-start

Fires once when a new conversation session begins – initialize state or trigger a greeting.

The On conversation-start handler fires once at the beginning of every new conversation session – before the user has sent any message. It is the ideal place for initialization logic: setting up variables, triggering an opening greeting, or logging the session start.

When It Runs

This handler is triggered by the predefined conversation-start signal, which fires automatically when:

  • A user opens the web widget for the first time in a session
  • A Kiosk conversation session initializes
  • A new conversation is explicitly started after a previous one ended

It runs before the On User Input handler and before any Conversational Flow is activated.

Common Uses

  • Trigger a greeting flow – Use Activate Flow to run your Greet flow as soon as a session starts, so the virtual being speaks first
  • Initialize session variables – Use Store Variable to set default values for conversation variables at the start of each session
  • Log session starts – Use Call Webhook or Trigger Automation to notify an external system that a new session has begun
  • Pre-load data – Use Find record(s) to query a data table and store results in a variable for use throughout the conversation

Typical Node Pattern

Signal Handler (On conversation-start) ──► Continue Processing

Or with a greeting:

Signal Handler (On conversation-start) ──► Activate Flow (Greet)

When Activate Flow is used, there is no need for Continue Processing – the flow is activated and the handler finishes.

Available Nodes

NodeCategoryPurpose
Continue ProcessingExitPass control to Conversational Flows
Abandon ProcessingExitDrop the event – no flow is triggered
Activate FlowExitTrigger a specific Conversational Flow
Check VariableContextRead a variable value
Store VariableContextWrite a value to a variable
Find record(s)ContextQuery a data table
Route by ProfileLogicBranch by touchpoint (Web vs. Kiosk)
Route by LanguageLogicBranch by active language
Route by SignalLogicBranch by a named signal
Is Flow ActiveLogicCheck if a flow is currently running
Trigger AutomationIntegrationFire an Automation
CommentOtherCanvas annotation

Example: Profile-Specific Greeting

Greet differently based on whether the user is on the web widget or a kiosk:

  1. Signal Handler (On conversation-start)
  2. Route by Profile
    • Web Widget branch → Activate Flow (WebGreet)
    • Kiosk branch → Activate Flow (KioskGreet)

The On conversation-start handler is the right place for logic that should run once per session. Do not put per-message logic here – use On User Input instead.

Relationship to the Greet Flow

A common pattern is to pair On conversation-start with a dedicated Greet Conversational Flow. The handler uses Activate Flow to trigger the Greet flow, which sends the opening message. After the Greet flow ends, the pipeline is ready to receive user messages via the On User Input handler.

On this page