Skip to main content

Get Execution by ID

Retrieve the result of a workflow execution using the run ID returned by executeIntegration.

Function Signature

client.workflow.getIntegrationExecuteById(executionId: string): Promise<BolticSuccessResponse<IntegrationExecutionData> | BolticErrorResponse>

Parameters

ParameterTypeRequiredDescription
executionIdstringThe execution run ID returned by executeIntegration

Basic Usage

import { createClient } from "@boltic/sdk";

const client = createClient("your-api-key");

const result = await client.workflow.getIntegrationExecuteById("execution-run-id");

if (result.error) {
console.error("Failed:", result.error.message);
} else {
console.log("Execution data:", result.data);
}

With Fire-and-Forget Pattern

Use this in combination with executeOnly: true for manual polling or deferred result retrieval:

// Step 1: Fire the execution
const execResult = await client.workflow.executeIntegration({
data: {
type: "apiActivity",
name: "long-running-task",
properties: {
method: "post",
endpoint: "https://api.example.com/process",
body: { data: "large-payload" },
body_type: "json",
integration_slug: "blt-int.api",
},
},
executeOnly: true,
});

if (execResult.error) {
console.error("Failed to start:", execResult.error.message);
process.exit(1);
}

const executionId = execResult.data.execution_id;
console.log("Started execution:", executionId);

// Step 2: Wait and check later
await new Promise((r) => setTimeout(r, 5000)); // wait 5 seconds

const result = await client.workflow.getIntegrationExecuteById(executionId);

if (!result.error && result.data && Object.keys(result.data).length > 0) {
console.log("Completed:", result.data);
} else {
console.log("Still running or failed");
}

Return Value

Success Response

{
data: {
// Execution result data — shape varies by integration
[key: string]: unknown;
},
message?: string;
}

Error Response

{
error: {
code: string; // e.g., "WORKFLOW_ERROR"
message: string;
meta: string[];
}
}