Skip to content

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:

  1. get_workflow_blocks — discover the blocks (this tool).
  2. get_workflow_options — the valid values for a block’s settings and inputs.
  3. build_workflow — assemble and validate the steps, with a dry-run preview.
  4. save_workflow — save them as a draft.
  5. run_workflow — run it (a dry run by default).
  6. manage_workflows — list, inspect, edit, pause or archive saved workflows.
CategoryWhat it does
TriggersWhen the workflow runs — a schedule, a webhook, new CRM records, Signals.
SourcesWhat records it reads — CRM records, a list you supply, OnFire data.
EnrichmentsAdd facts to a row — firmographics, a matched company or person.
TransformsReshape the rows — SQL steps, derived columns, filters.
LogicBranch, merge and stop — if, switch, and named stops.
ActionsWrite the result out — CRM writes, CSV exports, sequence enrollment.

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.

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 AnyOf rules between inputs;
  • the output fields each block produces;
  • the nested parameter_schema for 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.

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.

ParameterTypeRequiredDescription
typesstring[]NoBlock types to describe in full. Omit to list every block in one line.
target_tenant_idstringNoSuper-tenant administrators only — act for another tenant. Blocked for everyone else.
  • Skip any block whose available flag is false; unavailable_because says 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.