Workflows
Build automated multi-step workflows that your agent executes on a schedule, webhook trigger, or event. No coding required.
What are Workflows?#
Workflows are automated sequences of steps that your agent can execute. Each workflow consists of one or more steps — tool calls, LLM prompts, conditions, or delays — connected in sequence. You can trigger workflows manually, on a schedule, via webhook, or when specific events occur.
Where to find it
/automate and /schedule.Creating a Workflow#
Open the Workflow Builder
Navigate to the Sandbox tab in your dashboard, then click the Workflows sub-tab. Click + New to start from scratch, or select a template to start with a pre-configured workflow.
Add Steps
Each workflow consists of one or more steps arranged on a visual canvas. Click the + button on the edges between nodes to insert new steps. Click any node to select it and configure it in the side panel.
Configure Triggers (Optional)
In the right panel under When to run, add triggers to automate your workflow. Choose from scheduled (cron), webhook, or event-based triggers. Workflows without triggers can only be run manually.
Create
Give your workflow a name and optional description, then click Create. Your workflow is now ready to run — either manually with the Run Now button, or automatically when a trigger fires.
Editing a Workflow#
To modify an existing workflow, expand it in the workflow list and click the Edit button. This opens the visual builder pre-populated with the workflow's current name, description, steps, and triggers. Make your changes and click Save Changes — the updated workflow is synced to your agent immediately without needing to delete and recreate it.
Step Types#
Every step in a workflow has a type that determines what it does. You can mix and match step types in any order.
| Type | Description | Use Case |
|---|---|---|
| Tool | Execute a tool on your agent's VM — terminal commands, HTTP requests, send emails, post messages, etc. | Run commands, call APIs, send notifications |
| LLM | Send a prompt to your agent's AI model and get a response. Use results from previous steps as context. | Summarize data, generate content, analyze information |
| Condition | Branch logic that checks a field value. If the condition is true, continue; otherwise, stop. | Only send alerts when errors are detected |
| Delay | Wait for a specified duration before continuing to the next step. | Rate limiting, waiting for external processes |
Available Tools#
When adding a Tool step, you can choose from a catalog of 20+ tools. Here are the most common ones:
| Tool | Category | Description |
|---|---|---|
| Terminal | System | Execute shell commands on the VM |
| HTTP Request | System | Make GET/POST/PUT/DELETE requests to any URL |
| Browser | System | Fetch and extract content from web pages |
| Firecrawl Scrape | System | Scrape web pages with structured extraction (returns markdown by default) |
| File Read | System | Read file contents from the workspace |
| File Write | System | Write or create files in the workspace |
| Gmail Send | Send emails via Gmail | |
| Discord Message | Chat | Send messages to Discord channels |
| Slack Message | Chat | Send messages to Slack channels |
| Twitter Post | Social | Post tweets to X/Twitter |
| GitHub Comment | Dev | Comment on GitHub issues or PRs |
| GitHub Create Issue | Dev | Create new GitHub issues |
| Google Calendar Event | Productivity | Create calendar events |
Skills required
Triggers#
Triggers determine when your workflow runs automatically. You can add multiple triggers to a single workflow. Workflows without triggers can only be run manually via the Run Now button.
Scheduled (Cron)#
Run your workflow on a repeating schedule — every N minutes, hours, or days. The minimum scheduling interval is 1 minute.
Examples:
Every 15 minutes → Run every: 15 minutes
Every 6 hours → Run every: 6 hours
Once a day → Run every: 1 daysWebhook#
Trigger your workflow by sending an HTTP POST request to a custom webhook path. The request body is available as {{trigger_data}} in your workflow steps, so you can use incoming data to drive your automation.
Event#
Trigger your workflow when specific internal agent events occur:
| Event | Description |
|---|---|
| message.received | A new chat message arrives |
| health_check | A health check runs |
| agent.started | The agent starts up |
| agent.error | The agent encounters an error |
| workflow.completed | Another workflow finishes successfully |
| workflow.failed | Another workflow fails |
Passing Data Between Steps#
Steps can reference the output of previous steps using template variables. Paste these into any field in the step editor to pass data through your workflow:
| Variable | Description |
|---|---|
| {{step_0_output}} | Output from the first step |
| {{step_1_output}} | Output from the second step |
| {{step_N_output}} | Output from step N (zero-indexed) |
| {{trigger_data}} | Data from the trigger that started the workflow (webhook body or event data) |
Step 0 (Tool): Terminal → curl https://api.example.com/stats
Step 1 (LLM): "Summarize this data into a brief report: {{step_0_output}}"
Step 2 (Tool): Gmail Send → to: admin@example.com, body: {{step_1_output}}Built-in Templates#
Lobstack includes 6 pre-built workflow templates to get you started. Click any template in the Workflows tab to load it into the builder with pre-configured steps and triggers.
| Template | Steps | Trigger | Description |
|---|---|---|---|
| Daily Email Digest | 3 | Every day at 8am | Gather data, summarize with AI, send digest email |
| Social Media Poster | 2 | Mon/Wed/Fri at noon | Generate content with AI, post to Twitter |
| GitHub Issue Responder | 2 | On new issue | Analyze issue with AI, post initial comment |
| Health Monitor & Alert | 4 | Every 15 minutes | Check health endpoint, diagnose failures, send alert email |
| Web Scrape & Report | 2 | Every 6 hours | Scrape a URL, analyze changes with AI |
| File Backup | 2 | Daily at 2am | Create tarball backup, confirm success |
Execution History#
Every workflow run is tracked in the Executions sub-tab. Each execution shows its status, start and completion time, step-by-step results, and any error messages.
| Status | Meaning |
|---|---|
| Pending | Queued but not yet started |
| Running | Currently executing steps |
| Completed | All steps finished successfully |
| Failed | One or more steps encountered an error |
| Cancelled | Execution was stopped before completion |
Click any execution in the list to see detailed step results, output values, and the variables that were passed between steps. This is useful for debugging failed workflows or verifying that data is flowing correctly.
Creating Workflows from Chat#
You can create workflows directly from the chat interface using slash commands, without opening the visual builder. This is the fastest way to set up simple automations.
| Command | What it creates | Example |
|---|---|---|
| /automate | Cron-triggered workflow | /automate every day at 9am check inventory levels |
| /schedule | Scheduled recurring task | /schedule every Monday at 10am send weekly summary |
| /trigger | Event-triggered workflow | /trigger when message received summarize and notify |
| /remind | One-shot timed reminder | /remind in 2 hours check deployment status |
| /status | Shows automation status | /status (no arguments needed) |
Natural language time parsing supports expressions like "every 30 minutes", "daily at 5pm", "weekdays at 8am", "every Monday at 10am", and "every morning". These are automatically converted to cron schedules. For more complex workflows with multiple steps, use the visual builder.
Best Practices#
Keep these in mind when building workflows:
- Use solo variables for structured data — When a step outputs JSON (like an API response), use
{{step_0_output}}as the entire field value (not mixed with other text). This passes the raw object instead of stringifying it. - Large outputs are automatically truncated — If a step produces very long output, results are safely truncated for the execution log. The full data is still passed to the next step.
- Check Firecrawl format — The Firecrawl Scrape tool defaults to
markdownformat. Set this explicitly in the step configuration if you need a different output format. - Test manually first — Use Run Now to test your workflow before adding automated triggers. Check the execution detail view in the Executions tab to verify each step's output.
Troubleshooting