Step Types¶
Workflows are built from steps, each of which performs a specific action. GloriaMundo supports the following step types.
See step types in action
Browse the use-case library for real workflow examples demonstrating each step type.
Integration¶
Connect to hundreds of external apps.
Integration steps use Composio to interact with external services like Gmail, Slack, Google Sheets, HubSpot, and more. Each integration step executes a specific action (e.g., send an email, create a contact, fetch spreadsheet data).
- Requires an OAuth or API key connection to the target app
- Parameters are mapped automatically from your prompt
- Supports template variables:
{{trigger.field_name}}or{{step_id.field}}
Example Actions¶
GMAIL_SEND_EMAIL— Send an email via GmailSLACK_SEND_MESSAGE— Post a message to a Slack channelGOOGLESHEETS_READ_ROWS— Read data from a Google SheetHUBSPOT_CREATE_CONTACT— Create a new contact in HubSpot
LLM (AI Reasoning)¶
Use AI models for reasoning, generation, and transformation.
LLM steps send a prompt to a language model and return the response. Use them for:
- Summarising content
- Drafting emails or messages
- Analysing sentiment
- Extracting structured data from text
- Making decisions based on context
Configuration¶
- Prompt — The instruction for the AI model
- Model — Optionally override the model used for this step (defaults to your preset's writer model)
- Parameters — Temperature, max tokens, and other model settings
Code¶
Run custom Python in a secure sandbox.
Code steps execute Python code in an isolated E2B sandbox environment. Use them for data transformation, calculations, or any logic that's easier to express as code.
Key Details¶
- Code runs in an isolated environment — it cannot access your local machine
- For single-input steps, access previous step data via the
input_datavariable - For multi-input steps, use
input_1,input_2, etc. - The step output is the return value of the code (or the last expression)
- Test your code directly in the editor with mock values using the Test button
Example¶
# Filter emails from the last 24 hours
from datetime import datetime, timedelta
cutoff = datetime.now() - timedelta(hours=24)
recent = [e for e in input_data if e['date'] > cutoff.isoformat()]
{"count": len(recent), "emails": recent}
Conditional¶
Branch your workflow based on conditions.
Conditional steps evaluate a condition and route execution accordingly. Use them for:
- Filtering data (only proceed if certain criteria are met)
- Branching logic (do X if true, Y if false)
- Error handling (check if a previous step succeeded)
Configuration¶
- Condition — A string expression evaluated against available step data
- Parameters — Values to compare against
Agent (Sub-Agent)¶
Spawn a child workflow for complex sub-tasks.
Agent steps create a sub-workflow that runs independently within the parent workflow. Use them for:
- Tasks that need focused, multi-step reasoning
- Generating multiple perspectives on a topic
- Deep exploration of a subject
Configuration¶
- Objective — What the sub-agent should accomplish
- Budget limit — Maximum spend in dollars for this sub-agent (default $1.00, up to $100)
- Allowed integrations — Optionally restrict which apps the sub-agent can use
- Briefing — Context, constraints, and role/expertise information
- Parallelisation — Run multiple sub-agents in parallel with different inputs or perspectives, then aggregate results
Sub-agent costs are constrained by the configured budget limit and capped by the parent workflow's budget.
Browser Automation¶
Automate web interactions when no API integration exists.
Browser steps use headless browsers to navigate websites, click elements, fill forms, and extract content. Use them as a last resort when the app doesn't have a direct integration.
Available Actions¶
| Action | Description |
|---|---|
navigate | Go to a URL |
click | Click an element by CSS selector |
type | Type text into an input field |
wait | Wait for an element to appear on the page |
extract | Extract text or an attribute from one or more elements |
screenshot | Capture a screenshot |
scroll | Scroll the page |
select | Select a value from a dropdown or <select> element |
Tip
Prefer integration steps over browser automation when possible. Integrations are faster, more reliable, and less fragile than browser-based approaches.
Tips¶
- Use specific CSS selectors to target elements reliably
- Add wait steps before interacting with dynamically loaded content
- Test with Virtual Run first to verify element selection
Web Search¶
Search the public web for information.
Web search steps query the web via Tavily or Serper and return structured results. Useful for:
- Researching companies, people, or topics
- Finding current information
- Gathering competitive intelligence
Configuration¶
- Query — The search query
- Site filter — Restrict results to a specific domain
- Time filter — Limit results to a time range
- Search depth — Standard (up to 10 results) or Deep (up to 20 results, higher cost)
- Search tool — Optionally force a specific provider (
tavilyorserper); if omitted, the platform auto-routes
Twitter/X Search¶
Search Twitter/X with native access.
Twitter search steps use Grok for direct Twitter/X data access, providing better coverage than web scraping.
Configuration¶
- Query — The search query
- Limit — Maximum number of results
URL Extract¶
Extract content from a specific URL.
URL extract steps fetch a web page and extract its content in a structured format.
Configuration¶
- URL — The page to fetch
- Selector — Optional CSS selector to extract a specific element
- Render JS — Whether to render JavaScript before extracting (slower but handles dynamic content)
- Output format — Text, HTML, Markdown, or JSON
State (Get/Set)¶
Persist values across workflow runs.
State steps allow you to save and retrieve values that persist between workflow executions. Use them for:
- Tracking counters or timestamps across runs
- Storing the last processed item to avoid duplicates
- Maintaining state for scheduled workflows
Configuration¶
- Key — A unique identifier for the stored value
- Value (set only) — The value to store
- Default (get only) — Value to return if the key doesn't exist
- TTL (set only) — How long to keep the value (in days)