Skip to Content
ReferenceClient SDK - JSWorkflows (Legacy) API

Workflows (Legacy) API

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

Initialize Mastra Client

import { MastraClient } from "@mastra/client-js"; const client = new MastraClient();

Getting All Legacy Workflows

Retrieve a list of all available legacy workflows:

const workflows = await client.getLegacyWorkflows();

Working with a Specific Legacy Workflow

Get an instance of a specific legacy workflow:

const workflow = client.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 = client.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