Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.voxworks.ai/llms.txt

Use this file to discover all available pages before exploring further.

Step Types

Voxworks supports four step types:
TypePurposeInteractiveAwaits ResponseInterruptible
VoiceSpeak to user and listen for responseYesYesYes
FunctionExecute custom logicNoNoNo
ToolCall external servicesNoNoNo
FlowNavigate to a sub-flowNoDependsNo

Common Step Properties

All steps share these properties:
PropertyDescriptionDefault
idUnique identifier for the stepRequired
typeStep type (voice, function, tool, flow)Required
Voice, Function, and Tool steps also have a script property for spoken output. Flow steps do not have a script, they simply navigate directly to the sub-flow.

Step-Specific Settings

Each step can configure conversation dynamics:
SettingOptionsDescription
eagernesskeen, normal, patientHow quickly to respond after user stops speaking
thinking_effortfast, normal, deepLLM reasoning depth for this step
silence_responsehurried, patient, extremely patient, infiniteHow long to wait before prompting silent users
See Conversation Dynamics for details on these settings.

Voice Steps

Voice steps are the primary interactive component. They:
  • Speak a message to the user
  • Wait for the user’s response
  • Evaluate conditions to determine the next step
Voice Step: "Would you like to schedule a demo?"
   Condition: "User agrees" → Booking step
   Condition: "No" → Thank user and say goodbye step
   Condition: "Otherwise" → Loop back to current step
It’s recommended to use “Otherwise” to loop back to the current step, allowing the assistant to ensure step conditions have been met before continueing. Learn more about Voice Steps →

Function Steps

Function steps execute custom logic without speaking. They:
  • Run calculations or validations
  • Don’t produce voice output (though can have a “thinking” message)
  • Evaluate conditions based on function results
Function Step: Check if [Contact - Email] exists
   Condition: true → Continue with valid email
   Condition: false → Ask for email step
Learn more about Function Steps →

Tool Steps

Tool steps call external services. They:
  • Execute integrations (SMS, calendar, webhooks)
  • Return results that can be used in conditions
  • Can map outputs to variables
Tool Step: Check calendar availability
   Condition: true (slots available) → Speak options step
   Condition: false (no slots) → Apologize and offer alternative
Learn more about Tool Steps →

Flow Steps

Flow steps navigate to sub-flows. They:
  • Invoke another flow as a module
  • Variables are automatically available in the sub-flow
  • Return success or failure to the parent flow
Learn more about Flow Steps →

Step Execution Order

Steps execute in sequence unless conditions redirect:
  1. Enter step — Step settings are applied (eagerness, idle, etc.)
  2. Execute — Step-specific action runs
  3. Evaluate — Conditions are checked (for voice/function/tool steps)
  4. Navigate — Move to the next step based on conditions

Conditions

Most steps include conditions that determine navigation:
Step TypeCondition Basis
VoiceAI analysis of user response
FunctionBoolean result of function execution
ToolBoolean result of tool execution
FlowResult returned from sub-flow

Best Practices

  1. Keep steps focused — Each step should do one thing
  2. Use clear scripts — Write naturally, as you would speak
  3. Plan your conditions — Consider all possible user responses
  4. Set appropriate dynamics — Adjust eagerness and thinking for each step
  5. Test step transitions — Verify conditions work as expected

Next Steps