Trigger a new execution from UI while adding all necessary inputs and store.
Motivation
Accessibility – Enable users to trigger graph executions without writing code or using API tools.
Rapid testing – Allow developers to quickly test graph configurations and changes directly from the dashboard.
Operational convenience – Enable operations teams to manually trigger workflows for troubleshooting, ad-hoc runs, or emergency operations.
Input validation – Provide real-time validation and guidance for required inputs and store values before triggering.
Visibility – Make it easy to see what inputs and store values are needed for each graph.
Current State
What Exists
Component
Location
Purpose
Graph Templates
Dashboard "Graph" tab
View and edit graph templates
Runs Table
Dashboard "Runs" tab
View execution history
Graph Template Detail Modal
Dashboard
View graph template configuration
Trigger API
State Manager
Programmatic graph triggering via API/SDK
Current Limitations
No UI option to trigger graph executions
Users must use Python SDK or API directly to trigger graphs
No visibility into what inputs/store values are required before triggering
No validation feedback in UI before triggering
Cannot easily test graph changes without leaving the dashboard
Proposed Solution
Trigger Graph Dialog/Modal
Add a "Trigger Graph" feature that allows users to:
Select a graph template to execute
Provide inputs for the root node
Provide store values (required and optional)
Set optional start delay
Validate inputs before triggering
See immediate feedback on success/failure
Key Features
Graph selection – Choose from available graph templates in the namespace
Input form – Dynamic form based on root node's input schema
Store configuration – Form for required and optional store values
Validation – Real-time validation of inputs and store values
Default values – Pre-fill store defaults from graph configuration
Start delay – Optional delay before execution starts
Success feedback – Show run ID and link to execution view
User Experience
Access Points
From Graph Template Detail Modal :
"Trigger" button in the graph template detail view
Opens trigger dialog pre-populated with selected graph
From Graph Templates List :
"Trigger" action button for each graph template
Opens trigger dialog with selected graph
From Runs Table :
"Trigger New Run" button at top of runs table
Opens trigger dialog to select graph and trigger
Trigger Dialog Flow
Graph Selection (if not pre-selected):
Dropdown/select showing available graph templates
Filter by namespace
Show graph validation status (only valid graphs can be triggered)
Root Node Inputs Section :
Dynamic form fields based on root node's input schema
Show field names and types
Mark required fields
Help text showing example values or descriptions
Support for store references: ${{ store.key }} (read-only, shows resolved value)
Store Values Section :
Required keys : Clearly marked, must be provided
Optional keys : Shown with default values (if configured)
Default values : Pre-filled from graph's store_config.default_values
Add custom keys : Allow adding additional store keys beyond required/optional
Validation : Real-time check that all required keys are provided
Start Delay (Optional) :
Input field for delay in milliseconds
Helper showing human-readable equivalent (e.g., "5000ms = 5 seconds")
Default: 0 (immediate execution)
Validation & Trigger :
"Trigger" button (disabled until valid)
Real-time validation feedback
Error messages for missing/invalid inputs
Loading state during trigger request
Success message with run ID and link to execution
Visual Design
Modal/Dialog : Centered modal with clear sections
Form sections : Collapsible sections for Inputs, Store, and Advanced (delay)
Required indicators : Red asterisks or "Required" badges
Validation feedback : Inline error messages, field highlighting
Success state : Green checkmark, run ID prominently displayed
Error state : Red error message with details
Use Cases
Use Case 1: Quick Test of Graph Changes
Scenario : Developer just updated a graph template and wants to test it immediately.
User action :
Navigate to Graph Templates
Open the updated graph template
Click "Trigger" button
Review root node inputs (see what's needed)
Fill in required store values (or use defaults)
Click "Trigger"
See success message with run ID
Click link to view execution in real-time
Expected outcome : Graph execution starts, user can immediately see it in the runs table and monitor progress.
Use Case 2: Manual Workflow Execution
Scenario : Operations team needs to manually trigger a data processing workflow with specific parameters.
User action :
Navigate to Runs table
Click "Trigger New Run" button
Select graph from dropdown
Fill in root node inputs (e.g., user_id: "12345", batch_size: "100")
Configure store values:
Required: cursor: "0", batch_id: "batch_001"
Optional: retry_count: "3" (uses default if not provided)
Set start delay to 10 seconds (10000ms)
Review all inputs
Click "Trigger"
See confirmation with run ID
Expected outcome : Workflow starts after 10-second delay with specified inputs and store values.
Use Case 3: Testing with Different Store Values
Scenario : Developer wants to test how a graph behaves with different store configurations.
User action :
Open graph template
Click "Trigger"
See pre-filled default store values
Modify store values (e.g., change cursor from "0" to "100")
Add custom store key test_mode: "true"
Trigger execution
Repeat with different values to compare behavior
Expected outcome : Multiple test runs with different store configurations, easy to compare results.
Use Case 4: Triggering Graph with Store-Referenced Inputs
Scenario : Root node inputs reference store values (e.g., "cursor": "${{ store.cursor }}").
User action :
Open graph template
Click "Trigger"
See root node input field showing cursor: "${{ store.cursor }}"
Input field is read-only or shows resolved value
Fill in store section with cursor: "50"
See input field update to show resolved value "50"
Trigger execution
Expected outcome : Store values are properly resolved into root node inputs before execution.
Acceptance Criteria
Graph Selection
Root Node Inputs
Store Configuration
Start Delay
Triggering & Feedback
UI/UX
Non-Goals
Bulk triggering – Single graph execution per trigger (bulk can be future enhancement)
Scheduled triggering – One-time execution only (scheduling via cron triggers is separate)
Input templates/presets – Manual input entry only (templates can be future enhancement)
Import/export inputs – Manual entry only (import/export can be future enhancement)
Trigger history – No saved trigger configurations (can be future enhancement)
Open Questions
Input schema discovery : How do we get the root node's input schema? From registered node metadata?
Store key discovery : How do we show which store keys are used by nodes? Parse input templates?
Input validation : Should we validate input types (string, number) or accept strings only (current API behavior)?
Default input values : Should graphs support default input values for root node, or only store defaults?
Trigger from run details : Should users be able to "re-trigger" a graph with same inputs from a previous run?
Input examples : Should we show example values or previous successful input combinations?
Store value types : Currently store values are strings only - should UI enforce this or allow other types with conversion?
Additional Notes
This feature focuses on user-facing functionality and UI/UX, not implementation details
Implementation should leverage existing trigger API endpoint
Consider integration with feature-plan feat: Add UI based workflow builder #636 (UI workflow builder) - trigger could be accessible from builder
Consider integration with feature-plan feat: delete graph and pending execution #608 (delete/cancel) - triggered runs should be cancellable
Future enhancements could include: input templates, trigger history, bulk triggering, scheduled one-time triggers
Trigger a new execution from UI while adding all necessary inputs and store.
Motivation
Current State
What Exists
Current Limitations
Proposed Solution
Trigger Graph Dialog/Modal
Add a "Trigger Graph" feature that allows users to:
Key Features
User Experience
Access Points
From Graph Template Detail Modal:
From Graph Templates List:
From Runs Table:
Trigger Dialog Flow
Graph Selection (if not pre-selected):
Root Node Inputs Section:
${{ store.key }}(read-only, shows resolved value)Store Values Section:
store_config.default_valuesStart Delay (Optional):
Validation & Trigger:
Visual Design
Use Cases
Use Case 1: Quick Test of Graph Changes
Scenario: Developer just updated a graph template and wants to test it immediately.
User action:
Expected outcome: Graph execution starts, user can immediately see it in the runs table and monitor progress.
Use Case 2: Manual Workflow Execution
Scenario: Operations team needs to manually trigger a data processing workflow with specific parameters.
User action:
user_id: "12345",batch_size: "100")cursor: "0",batch_id: "batch_001"retry_count: "3"(uses default if not provided)Expected outcome: Workflow starts after 10-second delay with specified inputs and store values.
Use Case 3: Testing with Different Store Values
Scenario: Developer wants to test how a graph behaves with different store configurations.
User action:
cursorfrom "0" to "100")test_mode: "true"Expected outcome: Multiple test runs with different store configurations, easy to compare results.
Use Case 4: Triggering Graph with Store-Referenced Inputs
Scenario: Root node inputs reference store values (e.g.,
"cursor": "${{ store.cursor }}").User action:
cursor: "${{ store.cursor }}"cursor: "50"Expected outcome: Store values are properly resolved into root node inputs before execution.
Acceptance Criteria
Graph Selection
Root Node Inputs
Store Configuration
Start Delay
Triggering & Feedback
UI/UX
Non-Goals
Open Questions
Additional Notes