mcpField
W
workflow

workflow

github.com/stahuraDevelopment24197 installsUpdated 27w ago
Repository

About workflow

workflow is a workflow integration guide for Domo App Platform developers. It covers starting workflows and checking their status with WorkflowClient, using aliases from manifest.json.

Key features

  1. 01Start workflows by alias
  2. 02Check instance status and model details
  3. 03Configure workflow mappings in manifest.json
  4. 04Verify input variable names and types

Use cases

  1. 01Trigger workflows from Domo apps
  2. 02Check the status of long-running workflows
  3. 03Match app payloads to workflow inputs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill workflow

After installing, type/workflowin Claude Code to confirm it loaded.

Details

From the project README

Rule: Domo App Platform Workflows (Toolkit-First)

This rule is toolkit-first. Use WorkflowClient for workflow operations in apps.

Canonical Client

yarn add @domoinc/toolkit
import { WorkflowClient } from '@domoinc/toolkit';

const startResponse = await WorkflowClient.startModel('myWorkflow', {
  inputVar: 'value',
  anotherVar: 123
});
const instance = startResponse.body;

Check status:

const statusResponse = await WorkflowClient.getInstance('myWorkflow', instance.id);
const status = statusResponse.body.status;

Correct method usage (aliases, not UUIDs)

WorkflowClient workflow methods use the workflow alias from manifest.json workflowMapping, not the UUID.

await WorkflowClient.startModel('myWorkflow', { inputVar: 'value' });
await WorkflowClient.getAllModels();          // or getAllModels(true)
await WorkflowClient.getModelDetails('myWorkflow');
await WorkflowClient.getInstance('myWorkflow', 'instance-id');

Manifest Requirements

Workflows still require workflowMapping entries in manifest.json.

{
  "workflowMapping": [
    {
      "alias": "sendReport",
      "modelId": "d1373fa7-9df8-45d3-80ba-f931dda169b4",
      "parameters": [
        { "aliasedName": "reportType", "type": "string", "list": false, "children": null },
        { "aliasedName": "recipients", "type": "string", "list": true, "children": null }
      ]
    }
  ]
}

Card mapping and input contract reminder

  • In Domo, map the app card to the intended workflow model in the card/app configuration UI (not just in source files).
  • Confirm the workflow start-node input parameters are configured in the workflow and match the payload keys your app sends in WorkflowClient.startModel(workflowAlias, variables).
  • If parameter names/types/list settings do not match, workflow starts may fail or silently mis-handle inputs.
  • When recommending or generating WorkflowClient.startModel(...) calls, the agent must explicitly tell the user the exact input variable names and types being passed.

Error Handling Pattern

async function runWorkflow(workflowAlias: string, payload: Record<string, unknown>) {
  try {
    const response = await WorkflowClient.startModel(workflowAlias, payload);
    return response.body;
  } catch (error) {
    console.error(`WorkflowClient.startModel failed for ${workflowAlias}`, error);
    throw error;
  }
}

Checklist

  • workflowMapping is configured
  • App card is mapped to the correct workflow in Domo UI
  • Workflow start-node input parameters match app payload keys/types
  • Calls use WorkflowClient alias-based methods (startModel, getModelDetails, getInstance)
  • Agent states exact startModel input variable names/types in guidance
  • Code passes workflow aliases (from workflowMapping.alias) rather than workflow UUIDs
  • Response parsing uses response.body
  • Long-running workflow UX includes status checks or async user feedback

Comments

Markdown supported