Skip to main content

Connecting Nodes

Voiceblox enforces typed connections — not every node can connect to every other node. The rules are defined in connectionRules.ts and validated both in the UI and at runtime.

Handle types

TypeColorUsed for
controlPurpleConversation step chain
frameworkBlueStart → Framework link
contextGreenTools/context injection (MCP, Exa)
llmGrayLLM component wiring
ttsGrayTTS component wiring
sttGraySTT component wiring
personaGrayPersona component wiring
avatarGrayAvatar component wiring

Connection rules

Component → Framework

Source nodeConnects toHandle
PersonaFrameworkpersona_in
LLMFrameworkllm_in
TTSFrameworktts_in
STTFrameworkstt_in
AvatarFrameworkavatar_in

Conversation chain

Source nodeTarget handleNotes
FrameworkStart framework_inStarts the step chain
StartAny step inOne outgoing connection
BurstAny step in or Framework transfer_inOne outgoing connection
Open TalkAny step in or Framework transfer_inOne outgoing connection
TimerAny step in or Framework transfer_inOne outgoing connection
If/ElseTwo targets: true and false handlesCannot target Start, If/Else, or Categorize
CategorizeOne target per categoryCannot target Start, If/Else, or Categorize
EndWebhook inOptional, fires webhook before disconnect
TransferFramework transfer_inOne outgoing connection

Integration → Framework

Source nodeConnects toHandle
MCPFrameworktools_in (unlimited)
ExaFrameworktools_in (unlimited)

Auto-routing

When you drag an edge from an output handle and release it on a target node (not a specific handle), Voiceblox automatically routes the connection to the correct handle using findTargetRule(). This works for all component nodes wiring into the Framework node.

Validation

Invalid connections are rejected visually during drag. If a connection would violate the rules (wrong handle type, wrong source category, max connections exceeded), the edge snaps back and the connection is not created.
IfElse and Categorize nodes cannot immediately follow a Start node. You need at least one Burst, Open Talk, or Timer step between Start and a branching node.