workflow について
workflowは、Domo App Platform開発者向けのワークフロー連携ガイドです。WorkflowClientでの起動や状態確認と、manifest.jsonのエイリアスを使った呼び出しを説明します。
主な機能
- 01エイリアスでワークフローを起動
- 02インスタンスの状態とモデル詳細を確認
- 03manifest.jsonでワークフローマッピングを設定
- 04入力変数名と型を確認
活用シーン
- 01Domoアプリからワークフローを起動
- 02長時間実行されるワークフローの状態確認
- 03アプリのペイロードをワークフロー入力に対応
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ stahura/ domo-ai-vibe-rules --skill workflowインストール後、Claude Code で/workflowを入力して読み込まれたか確認します。
詳細
ルール:Domo App Platform のワークフロー(ツールキット優先)
このルールはツールキット優先です。アプリでのワークフロー操作には WorkflowClient を使用してください。
標準クライアント
yarn add @domoinc/toolkit
import { WorkflowClient } from '@domoinc/toolkit';
const startResponse = await WorkflowClient.startModel('myWorkflow', {
inputVar: 'value',
anotherVar: 123
});
const instance = startResponse.body;
ステータスを確認します:
const statusResponse = await WorkflowClient.getInstance('myWorkflow', instance.id);
const status = statusResponse.body.status;
正しいメソッドの使用方法(UUID ではなくエイリアス)
WorkflowClient のワークフローメソッドでは、UUID ではなく、manifest.json の workflowMapping にあるワークフローのエイリアスを使用します。
await WorkflowClient.startModel('myWorkflow', { inputVar: 'value' });
await WorkflowClient.getAllModels(); // or getAllModels(true)
await WorkflowClient.getModelDetails('myWorkflow');
await WorkflowClient.getInstance('myWorkflow', 'instance-id');
マニフェストの要件
ワークフローには、引き続き manifest.json の workflowMapping エントリーが必要です。
{
"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 }
]
}
]
}
カードのマッピングと入力の契約に関する注意事項
- Domo では、アプリのカードを、カード/アプリの設定 UI で意図するワークフローモデルにマッピングしてください(ソースファイル内だけで設定しないでください)。
- ワークフローの開始ノードの入力パラメーターがワークフローで設定されており、アプリが
WorkflowClient.startModel(workflowAlias, variables)で送信するペイロードのキーと一致していることを確認してください。 - パラメーター名、型、リスト設定が一致しない場合、ワークフローの開始に失敗したり、入力が誤って処理されたりすることがあります。
WorkflowClient.startModel(...)の呼び出しを推奨または生成する際、エージェントは渡される入力変数の正確な名前と型をユーザーに明示する必要があります。
エラー処理パターン
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;
}
}
チェックリスト
-
workflowMappingが設定されている - アプリのカードが Domo UI で正しいワークフローにマッピングされている
- ワークフローの開始ノードの入力パラメーターがアプリのペイロードのキー/型と一致している
- 呼び出しで
WorkflowClientのエイリアスベースのメソッド(startModel、getModelDetails、getInstance)を使用している - エージェントが、ガイダンスで
startModelに渡す正確な入力変数名と型を明示している - コードがワークフロー UUID ではなく、ワークフローのエイリアス(
workflowMapping.aliasの値)を渡している - レスポンスの解析に
response.bodyを使用している - 実行時間の長いワークフローの UX に、ステータス確認または非同期のユーザーフィードバックが含まれている
コメント
Markdown 対応