Workflow Blocks Overview
Blocks are the building pieces of a workflow. Each block does one job; you connect them on the canvas to automate a process. The workflow editor organizes 160+ blocks into 7 categories:
| Category | Blocks | What they do |
|---|---|---|
| Triggers | 26 | Start the workflow (manually, on a schedule, or when something happens in another app) |
| Actions | 19 | Do work: call APIs, send email, run AI, transform data |
| Integrations | 95 | Connect to specific apps — WhatsApp, Slack, Stripe, Notion, and many more |
| Models | 5 | AI models (OpenAI, Claude, Gemini, Groq, Bedrock) — standalone or powering an LLM Agent |
| Tools | 5 | Abilities you attach to an LLM Agent: web search, MCP servers, SQL, APIs, custom code |
| Database | 12 | Read and write data: SQL, NoSQL, sheets, vector stores |
| Logic | 7 | Branch, loop, wait, and manage variables |
The basic recipe: every workflow starts with a Trigger, then chains Actions / Integrations / Logic blocks. Data flows between blocks through variables and each block's output. Blocks that talk to an outside app need a credential.
Blocks marked ✦ are in early access — they are fully documented here but may not yet appear in your workspace's block picker. Blocks marked 🔒 require a paid plan.
Triggers — 26 blocks
A workflow can have more than one trigger — each trigger starts its own branch of the flow.
| Trigger | Starts the workflow when… |
|---|---|
| Manual | You click the play button (optionally with input values) |
| Schedule | A timer fires — every N minutes, hourly, daily, weekly, monthly, or a cron expression |
| Webhook | Any system calls the workflow's unique URL |
| Telegram | Your Telegram bot receives a message |
| Slack | A Slack event happens — app mention, new channel message, or file shared |
| Gmail | A new email arrives (with from/to/subject/unread/attachment filters) |
| Microsoft Teams | A Teams @mention or Graph event — new channel/chat message, channel created, member added |
| Outlook | A new Outlook email arrives (with filters) |
| Google Sheets 🔒 | A spreadsheet changes (new or updated rows) |
| Facebook Lead Ads 🔒 | A new lead submits your Facebook lead form |
| HubSpot | A CRM record changes — 24 events across contacts, companies, deals, tickets, products, conversations |
| Calendly | An invitee books or cancels, or a routing form is submitted |
| OpenClaw 🔒 | An OpenClaw agent dispatches a task to your workflow |
| A WhatsApp message arrives (Meta or Twilio; filter by type, sender, keyword) | |
| Jira | A Jira event fires — 40 events across issues, comments, sprints, boards, versions |
| Typeform | A Typeform response is submitted |
| An Instagram DM, comment, mention, or story insight arrives | |
| Airtable | A record is created, updated, or deleted (instant webhook or polling) |
| Stripe | A Stripe event arrives — payments, checkouts, invoices, subscriptions |
| Supabase | A Supabase table row is inserted, updated, or deleted |
| Shopify ✦ | Store events — orders, products, customers, carts, checkouts, refunds, inventory |
| WooCommerce ✦ | Store events — orders, products, customers, coupons |
| BambooHR ✦ | HR events — employees, time off, job info |
| Greenhouse ✦ | Hiring events — candidates, applications, offers, interviews, scorecards |
| Lever ✦ | Recruiting events — candidates, applications, interviews, offers |
| Google Business Profile ✦ 🔒 | A new review is posted on your business location |
Every trigger has an overlap policy: when a new event arrives while a previous run is still going, the workflow can either Run in parallel or Skip the new event. Schedule and email/sheet polling triggers default to skip; the rest default to parallel.
Actions — 19 blocks
| Action | What it does |
|---|---|
| HTTP Request | Calls any API — all 9 HTTP methods, headers, query params, body, response mapping |
| Send Email | Sends an email through your SMTP account (To/CC/BCC, HTML body, attachments, threading) |
| LLM Agent | An AI agent that reasons in steps — attach one Model and any Tools |
| Agent Orchestrator | AI router — reads a message, picks one of your routes, and branches the flow |
| AI Judge | Validates an AI answer against your instructions — pass/fail branching |
| AI Summarizer | Summarizes PDFs, emails, meeting notes, chats, web pages, YouTube transcripts |
| Guardrails | Safety checks on input or output — prompt injection, toxicity, secrets, format, custom rules — pass/fail branching |
| PII 🔒 | Anonymizes / de-anonymizes personal data in text |
| File Loader | Loads and extracts text from files (PDF, DOCX, XLSX, CSV, TXT, MD…) |
| Generate Document | Turns text/Markdown/HTML/JSON into a PDF, DOCX, or TXT file |
| Speech to Text | Transcribes audio, or translates it to English |
| CSV | Converts CSV ↔ JSON |
| JSON | Text ↔ JSON, get value by path, merge objects |
| XML | Converts XML ↔ JSON |
| Text Helper | Concatenate, replace, split, find, Markdown ↔ HTML, strip HTML, slugify |
| Date Helper | Current date, format, extract parts, difference, add/subtract |
| Image Helper | Rotate, resize, crop, compress, Base64, metadata |
| Extract text from PDF, text → PDF, image → PDF | |
| Data Summarizer | Average, sum, min/max, count uniques, sort, filter arrays |
Integrations — 95 blocks
Each integration block connects to one app and offers a dropdown of actions for that app (from a single action up to 40+). Open a block's page for its full action list and credential setup.
Models — 5 blocks
Model blocks run an AI model. Use them in two ways:
- Standalone — drop one on the canvas with a prompt, and it returns a completion.
- Attached to an LLM Agent (or AI Judge) — drag the model onto the agent's Model endpoint; the agent then uses it for its reasoning loop. An LLM Agent needs exactly one model.
| Model block | Provider | Credential |
|---|---|---|
| OpenAI | GPT models (+ vision/file tasks) | OpenAI API key |
| Claude | Anthropic Claude models | Anthropic API key |
| Gemini | Google Gemini models | Gemini API key |
| Groq | Ultra-fast open models | Groq API key |
| AWS Bedrock | Models hosted on Amazon Bedrock | AWS access keys |
All model blocks share the same core settings: model picker, prompt, system prompt, temperature, max tokens, optional structured output format, and response mapping into variables.
Tools — 5 blocks
Tools give an LLM Agent extra abilities. Attach them to the agent's Tools endpoint (an agent can have many tools).
| Tool | The agent can… |
|---|---|
| Search Tool | Search the web (Tavily, DuckDuckGo, SearchAPI, or SerpAPI). Also works standalone |
| MCP Tool | Call tools from any external MCP server — see MCP |
| SQL Toolkit | Explore and query a SQL database (SQLite, MySQL, Postgres) |
| API Tool | Call an HTTP endpoint you describe with typed parameters |
| Custom Tool | Run your own JavaScript function with a defined input schema |
Database — 12 blocks
| Block | Operations | Credential |
|---|---|---|
| Google Sheets 🔒 | Get data, Insert / Update a row, Insert many rows, Add / Update column | Google sign-in |
| PostgreSQL | Select, insert, update, delete, custom query | Connection details |
| MySQL | Select, insert, update, delete, custom query | Connection details |
| SQLite | Select, insert, update, delete, custom query | Connection URL |
| Microsoft SQL ✦ 🔒 | Query, insert, update, delete | Host + login |
| MongoDB | Find, insert, update, delete, count (single & many) | Connection URL |
| Redis | 27 operations — keys, counters, lists, sets, hashes, custom commands | Connection URL |
| Firebase | Get, create, update, delete (Firestore or Realtime DB) | Service Account JSON |
| Airtable | 13 operations — records CRUD, batch ops, tables, fields, attachments, comments | Airtable token |
| NocoDB | Search, create, update records | Base URL + token |
| Supabase | 14 operations — rows, auth, storage, RPC, edge functions, vector search | Project URL + key |
| Vector Store / Pinecone | Semantic search / upsert on your knowledge base or your Pinecone index | — / Pinecone key |
Logic — 7 blocks
| Block | What it does |
|---|---|
| Condition | If/else branching with AND/OR groups and 15 comparison operators (equals, contains, regex…) |
| Switch | Routes to one of several cases matching a value, with a default case |
| For Each | Loops over a list, running the downstream blocks once per item |
| Wait | Pauses — for a time interval, until a specific time, or until a webhook call resumes it |
| Set Variable | Sets a variable — custom expression/code, dates, random ID, list operations (append, pop, shift, map) |
| Script | Runs custom JavaScript |
| Human In The Loop | Pauses for a human approve/reject decision, delivered via an attached channel (Gmail, Email, Telegram, Slack, Twilio, or WhatsApp) |
Next steps
- Getting Started — build your first workflow
- Indite Copilot — let AI build the workflow for you
- Credentials — connect your accounts