Workflow Step Types
Hubrix workflows support 10 step types. Each step does one thing well and passes its output to the next step as {{steps.step_name.output}}.

Reference any previous step's output using the {{steps.step_name.field}} syntax. For example, {{steps.http_request_1.output}} passes the full response body of an HTTP step to the next step.
Prompt
Run an AI prompt with a chosen model.
Required config:
- Model — which AI model to use (GPT-4o, Claude, Gemini, etc.)
- System message — the AI's instructions for this step
- User prompt — the message, optionally using
{{variable}}references to earlier steps
Example use case: Summarise a news feed fetched by an HTTP Request step.
Agent Call
Invoke one of your Custom Agents with an input message.
Required config:
- Agent — select from your existing agents
- Input — the message to send to the agent, can reference previous steps
Example use case: Route each row of a dataset through your Data Analyst agent for interpretation.
HTTP Request
Make a GET, POST, or PUT request to any external URL.
Required config:
- Method — GET, POST, or PUT
- URL — the endpoint, with optional
{{variable}}interpolation - Headers — key/value pairs (for example,
Authorization: Bearer {{inputs.api_key}}) - Body — for POST/PUT, the request body (JSON template with variable references)
Example use case: Fetch a CRM contact's details before enriching with AI.
Extract
Pull structured fields from unstructured text using AI.
Required config:
- Input text — the text to extract from (usually a reference to a previous step)
- Fields to extract — define each field name and a description of what to extract
Output: A JSON object with each extracted field as a key.
Example use case: Extract invoice number, vendor name, and total amount from a scanned invoice text.
Branch
Route the workflow to different paths based on a condition.
Required config:
- Condition — a variable or expression to evaluate
- True path — steps to run if the condition is true
- False path — steps to run if the condition is false
Example use case: If a lead's score is above 80, send to the sales team via email; otherwise, add to a nurture sequence.
Loop
Iterate over an array, running a set of sub-steps for each item.
Required config:
- Array — the input array to loop over (reference a previous step's array output)
- Sub-steps — the steps to run for each item; use
{{item}}to reference the current element
Example use case: For each article in an RSS feed, generate a short summary using a Prompt step.
RAG Query
Search your document library with a query and return the most relevant chunks.
Required config:
- Query — the search question, can reference previous step outputs
- Top K — how many chunks to return (default: 5)
- Document filter — optionally restrict the search to specific documents or folders
Output: An array of text chunks with their source document names.
Example use case: Before drafting an email response, retrieve relevant policy sections from the company knowledge base.
Transform
Reshape or manipulate JSON data using a JavaScript expression.
Required config:
- Input — the data to transform (reference a previous step)
- Expression — a JavaScript expression that returns the transformed output (for example,
input.items.map(i => i.name))
Transform runs the JavaScript expression server-side in a restricted context — it is not a full code execution sandbox. Complex Node.js APIs and external modules are not available. Use Code Execution via an Agent Call for more complex transformations.
Example use case: Extract just the email field from an array of contact objects before passing them to an Email Send step.
Human Input
Pause the workflow and wait for a human to provide input or approval before continuing.
Required config:
- Prompt — the question or instruction shown to the assigned reviewer
- Assignee — which team member receives the approval request (optional; defaults to workflow owner)
- Timeout — how long to wait before marking the run as timed out (max 72 hours)
Example use case: After an AI drafts a client proposal, pause and ask the account manager to approve it before sending.
Email Send
Send a transactional email via the Hubrix email service.
Required config:
- To — recipient email address (can reference a previous step variable)
- Subject — email subject line
- Body — email body, supports HTML and Markdown, can reference previous step outputs
Example use case: Send a finished weekly report to a distribution list every Monday morning.
Was this helpful?