Skip to main content
Export workflow in the workflow menu downloads a workflow as a JSON file. Import workflow creates a new private draft from such a file, in the same or another workspace. This page describes that file so you can version workflows in source control, review changes, or generate them.

Envelope

1
required
The format version. Only 1 exists.
string
required
ISO 8601 timestamp.
object
required
The workflow. name is 1-120 characters and description up to 500. Unknown keys are rejected.
The file carries the draft graph as it was when exported. Identity and history fields (id, ownerUserId, status, counts, dates, sharedUserIds) are informational: an import ignores them.

Graph

Every node has id, type and position (x, y within ±10,000), and optionally title (120 characters), note (500) and comment (500). Steps other than the trigger can also carry:
  • active: false — kept but skipped;
  • errorPolicy — maxAttempts (1-10, including the first) and/or onFailure (fail_run or continue). A policy that sets neither is rejected.
Each type’s own fields — for example prompt, model, tools, connectorPins, outputSchema and maxSteps on an agent; expression or router on a condition; loop, wait, action, output, webSearch, image and document on their steps; agents on parallel_agents — are listed with their limits in the triggers and steps reference. Placeholders use {{step_id.path}}.

What export strips

Exports leave out anything that only means something to the exporter:
  • Personal accounts. A step pinned to a specific connected account (provider::connectionId) keeps that pin in the file only when the account is yours. Anyone else’s account is exported with only the provider, for example xero. Import removes every account from the pins: if the importer has exactly one account for that provider it is used, otherwise the step asks them to connect or choose one.
  • Reader-specific fields: permissions, access, owner details, run-account requirements and the workflow’s cost to date.
Schedules, public form links, releases and runs are never part of an export. The share list (shareScope, sharedUserIds) is in the file, but an import ignores it.

What import does

Importing needs the Operator role or higher. Hive then:
  1. checks the file against the format above, and refuses it if it is malformed, repeats a node id, or contains an action your role may not put in a workflow;
  2. creates a new private draft you own, whatever the file’s status or sharing said;
  3. clamps settings to your workspace’s usage limits;
  4. records the import in the audit log;
  5. returns the draft with a list of issues — up to 50 things a deploy would refuse until you fix them.
Each issue names the step (nodeId, or null for the whole workflow), a code and a message:
Issue codes are the same ones a deploy refuses with, such as connector_capability_missing, workflow_model_unavailable, web_search_unavailable, saved_agent_unavailable, output_key_unknown and error_policy_reference. See Deploy a release.

Share and reuse

Duplicate, export, import and share.

Triggers and steps

Every node type and its fields.

Limits reference

Every limit in one table.

Developer overview

Every way to build on Hive.