Skip to Content
ReferenceClient SDKWorkflows (Legacy) API

Workflows (Legacy) API

The Workflows (Legacy) API provides methods to interact with and execute automated legacy workflows in Mastra.

Getting All Legacy Workflows

Retrieve a list of all available legacy workflows:

const workflows = await mastraClient.getLegacyWorkflows();

Working with a Specific Legacy Workflow

Get an instance of a specific legacy workflow:

const workflow = mastraClient.getLegacyWorkflow("workflow-id");

Legacy Workflow Methods

Get Legacy Workflow Details

Retrieve detailed information about a legacy workflow:

const details = await workflow.details();

Start Legacy Workflow run asynchronously

Start a legacy workflow run with triggerData and await full run results:

const { runId } = workflow.createRun(); const result = await workflow.startAsync({ runId, triggerData: { param1: "value1", param2: "value2", }, });

Resume Legacy Workflow run asynchronously

Resume a suspended legacy workflow step and await full run result:

const { runId } = createRun({ runId: prevRunId }); const result = await workflow.resumeAsync({ runId, stepId: "step-id", contextData: { key: "value" }, });

Watch Legacy Workflow

Watch legacy workflow transitions

try { // Get workflow instance const workflow = mastraClient.getLegacyWorkflow("workflow-id"); // Create a workflow run const { runId } = workflow.createRun(); // Watch workflow run workflow.watch({ runId }, (record) => { // Every new record is the latest transition state of the workflow run console.log({ activePaths: record.activePaths, results: record.results, timestamp: record.timestamp, runId: record.runId, }); }); // Start workflow run workflow.start({ runId, triggerData: { city: "New York", }, }); } catch (e) { console.error(e); }

Resume Legacy Workflow

Resume legacy workflow run and watch legacy workflow step transitions

try { //To resume a workflow run, when a step is suspended const { run } = createRun({ runId: prevRunId }); //Watch run workflow.watch({ runId }, (record) => { // Every new record is the latest transition state of the workflow run console.log({ activePaths: record.activePaths, results: record.results, timestamp: record.timestamp, runId: record.runId, }); }); //resume run workflow.resume({ runId, stepId: "step-id", contextData: { key: "value" }, }); } catch (e) { console.error(e); }

Legacy Workflow run result

A legacy workflow run result yields the following:

FieldTypeDescription
activePathsRecord<string, { status: string; suspendPayload?: any; stepPath: string[] }>Currently active paths in the workflow with their execution status
resultsLegacyWorkflowRunResult<any, any, any>['results']Results from the workflow execution
timestampnumberUnix timestamp of when this transition occurred
runIdstringUnique identifier for this workflow run instance