get_workflow_blocks
get_workflow_blocks is where every workflow build starts. A workflow is an
OnFire automation: a trigger (when it runs), then a chain of steps that
each take the rows the step before it produced. This tool lists the blocks
those steps are built from, and — when you name specific ones — describes
each in full.
Workflows are the write side of the MCP: an agent can design one, save it as a draft, and run it. The six workflow tools form a lifecycle:
get_workflow_blocks— discover the blocks (this tool).get_workflow_options— the valid values for a block’s settings and inputs.build_workflow— assemble and validate the steps, with a dry-run preview.save_workflow— save them as a draft.run_workflow— run it (a dry run by default).manage_workflows— list, inspect, edit, pause or archive saved workflows.
Block categories
Section titled “Block categories”| Category | What it does |
|---|---|
| Triggers | When the workflow runs — a schedule, a webhook, new CRM records, Signals. |
| Sources | What records it reads — CRM records, a list you supply, OnFire data. |
| Enrichments | Add facts to a row — firmographics, a matched company or person. |
| Transforms | Reshape the rows — SQL steps, derived columns, filters. |
| Logic | Branch, merge and stop — if, switch, and named stops. |
| Actions | Write the result out — CRM writes, CSV exports, sequence enrollment. |
Two modes
Section titled “Two modes”List every block (no types)
Section titled “List every block (no types)”Returns each block in one line — its type, display name, category, a short summary, its ports (only where it has more than one way in or a side other than its main row output), and whether your tenant may use it. It also returns the tenant context you build against: the connected CRM and its objects, enabled features, and the variables a step may reference.
Read this once to choose your blocks. It carries no settings, inputs or outputs — full details come only from the second mode.
Describe blocks in full (with types)
Section titled “Describe blocks in full (with types)”Pass the block types you chose — e.g.
["enrich.match_company", "action.csv_export"] — to get each one in full:
- what every parameter and input means, their defaults, and which are required;
- the
AnyOfrules between inputs; - the output fields each block produces;
- the nested
parameter_schemafor every setting; - the guides the block’s description points to, and worked examples that use it;
- for a CRM write, your tenant’s CRM field mapping;
- your tenant’s variables.
Read the full detail for every block before you write its step.
Binding inputs to fields
Section titled “Binding inputs to fields”Each input has a tag — the kind of value it accepts (a company website,
a person’s LinkedIn URL, and so on). Bind an input only to a field with the
same tag. An input tagged text (or untagged) accepts any field.
The values a setting or input can take come from
get_workflow_options — never write a
CRM object, field, or data name from memory, because an unknown one fails on
save. get_workflow_blocks tells you which places need looking up
(pick_from_lists gathers them per block); get_workflow_options returns
the actual values.
Inputs
Section titled “Inputs”| Parameter | Type | Required | Description |
|---|---|---|---|
types | string[] | No | Block types to describe in full. Omit to list every block in one line. |
target_tenant_id | string | No | Super-tenant administrators only — act for another tenant. Blocked for everyone else. |
- Skip any block whose
availableflag isfalse;unavailable_becausesays why it isn’t enabled for your tenant. - The block surface is tenant-scoped: the CRM objects, fields, features and variables you see are your tenant’s.