Skip to main content

Workflows (Legacy) API

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

Getting All Legacy WorkflowsDirect link to Getting All Legacy Workflows

Retrieve a list of all available legacy workflows:

const workflows = await mastraClient.getLegacyWorkflows();

Working with a Specific Legacy WorkflowDirect link to Working with a Specific Legacy Workflow

Get an instance of a specific legacy workflow:

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

Legacy Workflow MethodsDirect link to Legacy Workflow Methods

Get Legacy Workflow DetailsDirect link to Get Legacy Workflow Details

Retrieve detailed information about a legacy workflow:

const details = await workflow.details();

Start Legacy Workflow run asynchronouslyDirect link to 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 asynchronouslyDirect link to 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 WorkflowDirect link to 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 WorkflowDirect link to 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 resultDirect link to 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