Skip to main content
Now you implement the workflow steps. Each step is a node. This example demonstrates reusable patterns you can apply across client projects.

Workflow Steps

1

Analyze ticket contents

Run three concurrent analyses:
  • Determine ticket intent
  • Check for spam
  • Validate information sufficiency
2

Route based on analysis

Make intelligent routing decisions:
  • Close spam tickets
  • Escalate urgent issues
  • Process specific requests (invoices, refunds)
  • Generate responses for general queries
3

Take action

Execute the appropriate action based on routing decision
All nodes are located under app/launchpad/workflows/examples/quickstart/nodes/, and Jinja2 prompts live in app/launchpad/workflows/examples/quickstart/prompts/.

Step 1: Concurrent Analysis

AnalyzeTicketNode

Since our three analysis operations are independent, we use ConcurrentNode to run them simultaneously:
Tip: Use concurrency when independent AI calls reduce total processing time.

DetermineTicketIntentNode

This AgentNode uses AI to classify the ticket intent:
PROMPTS_DIR is defined at the top of the module as Path(__file__).parent.parent / "prompts" so the loader resolves templates colocated with the workflow.

FilterSpamNode

Detects spam messages using AI:

ValidateTicketNode

Verifies if the ticket contains actionable information:

Step 2: Intelligent Routing

TicketRouterNode

The router examines analysis results and selects the next action:
  • CloseTicketRouter: Closes spam tickets automatically when confidence > 0.8
  • EscalationRouter: Escalates urgent or sensitive issues to human agents
  • InvoiceRouter: Routes billing-related requests to invoice processing

Router Implementation

Step 3: Action Nodes

GenerateResponseNode

Creates AI-powered responses for customer queries:

SendReplyNode

Delivers the generated response:

Complete Workflow Schema