Tutorial Overview
This tutorial guides you through building a complete contact form workflow, starting from a simple greeting and progressively adding features until you have a production-ready solution.
What You'll Build
By the end of this tutorial, you'll have a contact form workflow that:
- Collects information: Name, email, and preferred contact time
- Validates input: Checks email format and allows retries
- Routes intelligently: Different follow-ups based on user preference
- Integrates externally: Validates email domains and notifies a CRM system
- Feels polished: Progress indicators and friendly messages throughout
Prerequisites
Before starting this tutorial, you should have:
- Basic understanding of Syllable Agents, Tools, and Prompts
- Access to the Syllable Console
- Familiarity with JSON syntax
Learning Path
The tutorial is structured as 7 progressive examples. Each example builds on the previous one, introducing new concepts:
| Example | What You'll Build | Key Concepts |
|---|---|---|
| 1. Hello World | Simple greeting workflow | Basic step structure, terminal steps, workflow initialization |
| 2. Collect Input | Name collection with validation | Input parameters, validation, current step inputs |
| 3. Multi-Step Flow | Full contact form (name → email → time) | Step transitions, data persistence, workflow variables |
| 4. Lifecycle Actions | Polished experience with progress indicators | on.enter, on.submit, say action, counters |
| 5. Conditional Branching | Smart routing based on preferences | JMESPath expressions, conditional next routing |
| 6. Retry Loop | Email validation with retry attempts | Validation patterns, inc action, loop-back transitions |
| 7. Tool Integration | External API calls and CRM notification | call action, tools.allow, progressive tool disclosure |
The User Journey
Each example addresses a real need that arises when building production workflows:
"I need a simple greeting workflow"
→ Example 1: Hello World
Create your first step workflow with just a greeting
"I need to collect user information"
→ Example 2: Collect Input
Add input collection with automatic validation
"I need to collect multiple pieces of information"
→ Example 3: Multi-Step Flow
Build a 3-step form: name → email → contact time
Learn to persist data across steps
"I need the workflow to feel polished"
→ Example 4: Lifecycle Actions
Add welcome messages and progress tracking
"Step 1 of 3", "Step 2 of 3", etc.
"I need different follow-ups based on user preference"
→ Example 5: Conditional Branching
Route morning/afternoon → schedule phone call
Route evening/night → schedule email follow-up
"I need to validate email format and allow corrections"
→ Example 6: Retry Loop
Check email format before proceeding
Allow up to 3 retry attempts
Show helpful error messages
"I need to integrate with external systems"
→ Example 7: Tool Integration
Validate email domain via API
Send notification to CRM system
Control which tools are available per step
Result: By Example 7, you'll have built a complete, production-ready contact request workflow with validation, smart routing, retry logic, and external integrations.
Tutorial Structure
Each example follows the same format:
- Objective: What you'll learn and why it matters
- The Scenario: User story context for the feature
- Implementation: Complete JSON tool definition you can copy
- Key Concepts: Detailed explanation of new features
- How It Works: Step-by-step breakdown of workflow execution
- Try It: Instructions to test in the Syllable Console
- What's Next: Preview of the next example
Estimated Time
- Quick read-through: ~15 minutes
- Following along with testing: ~45 minutes
- Building your own variant: ~1-2 hours
Next Steps
Ready to start? Continue to Example 1: Hello World to create your first Step Workflow.
Reference
While working through the tutorial, you may want to reference:
- Step Workflow Reference — Complete documentation of all configuration options
- Step Workflows Overview — High-level introduction to the feature

