Sim's execution engine brings your workflows to life by processing blocks in the correct order, managing data flow, and handling errors gracefully, so you can understand exactly how workflows run in Sim.
Every workflow run follows a deterministic path based on your block connections and logic, ensuring predictable and reliable results.
Documentation Overview
Execution Basics
Learn about the fundamental execution flow, block types, and how data flows through your workflow
Logging
Monitor workflow runs with comprehensive logging and real-time visibility
Cost Calculation
Understand how workflow run costs are calculated and optimized
External API
Access run logs and set up webhooks programmatically via REST API
API Deployment
Deploy your workflow as a REST API endpoint with sync, streaming, and async modes
Chat Deployment
Deploy your workflow as a conversational chat interface with streaming, file uploads, and voice
Key Concepts
Topological Execution
Blocks run in dependency order, similar to how a spreadsheet recalculates cells. The execution engine automatically determines which blocks can run based on completed dependencies.
Path Tracking
The engine actively tracks run paths through your workflow. Router and Condition blocks dynamically update these paths, ensuring only relevant blocks run.
Layer-Based Processing
Instead of executing blocks one-by-one, the engine identifies layers of blocks that can run in parallel, optimizing performance for complex workflows.
Run Context
Each workflow maintains a rich context during a run containing:
- Block outputs and states
- Active run paths
- Loop and parallel iteration tracking
- Environment variables
- Routing decisions
Deployment Snapshots
API, Chat, Schedule, and Webhook runs use the workflow’s active deployment snapshot. Manual runs from the editor use the current draft canvas state, letting you test changes before deploying. Publish a new deployment whenever you change the canvas so every trigger uses the updated version.

Version History
The General tab in the Deploy modal shows a version history table for every deployment. Each row shows the version name, who deployed it, and when.

From the version table you can:
- Rename a version to give it a meaningful label (e.g., "v2 — added error handling")
- Add a description with notes about what changed in that deployment
- Promote to live to roll back to an older version — this makes the selected version the active deployment without changing your draft canvas
- Load into editor to restore a previous version's workflow into the canvas for editing and redeploying
- Preview a version by selecting a row to view that version's workflow in the canvas preview, then toggle between Live and the selected version

Promoting an old version takes effect immediately — all API, Chat, Schedule, and Webhook executions will use the promoted version. Your draft canvas is not affected.
Programmatic Access
Run workflows from your applications using our official SDKs:
# TypeScript/JavaScript
npm install simstudio-ts-sdk
# Python
pip install simstudio-sdk// TypeScript Example
import { SimStudioClient } from 'simstudio-ts-sdk';
const client = new SimStudioClient({
apiKey: 'your-api-key'
});
const result = await client.executeWorkflow('workflow-id', {
input: { message: 'Hello' }
});Best Practices
Design for Reliability
- Handle errors gracefully with appropriate fallback paths
- Use environment variables for sensitive data
- Add logging to Function blocks for debugging
Optimize Performance
- Minimize external API calls where possible
- Use parallel execution for independent operations
- Cache results with Memory blocks when appropriate
Monitor Runs
- Review logs regularly to understand performance patterns
- Track costs for AI model usage
- Use workflow snapshots to debug issues
What's Next?
Start with Execution Basics to understand how workflows run, then explore Logging to monitor your runs and Cost Calculation to optimize your spending.