Quickstart
ワークフロートピックへのパブリッシュ
お客様のシステムからワークフロートピックにパブリッシュし、ワークフローを自動実行する最短手順です。
概要
CRISIS のワークフロー機能は、ワークフロートピック と ワークフロー の 2 つの概念で構成されています。
- ワークフロートピック — お客様のシステムからイベントを受け取るエントリーポイント。API から
publishを呼び出す対象です。 - ワークフロー — トピックに紐づく自動処理の定義。トピックにイベントがパブリッシュされると、紐づくワークフローが実行されます。
このガイドでは、最小限のコードで Publish API を呼び出す方法を解説します。 通知設定、制御ポリシー、フィルター条件など詳細な仕様は Incoming Webhooks ガイド を参照してください。
前提条件
- サービスアカウントとアクセストークンを作成済み(はじめに 参照)
- サービスアカウントの IAM に
organization.workflow_topic:publishパーミッションを付与済み - Web UI でワークフロートピックを作成し、ワークフローを紐づけ済み
organizationIdとtopicIdを把握済み
最小コード例
エンドポイント
POST /v1/organizations/{organizationId}/workflow_topics/{topicId}/publish
必須フィールド
| フィールド | 説明 |
|---|---|
data | 任意の JSON オブジェクト。ワークフロー条件(フィルター)の評価対象 |
status | ACTUAL(実災害)/ DRILL(訓練)/ TEST(テスト) |
Node.js(fetch)
export async function publishWorkflowTopic({
organizationId, topicId, accessToken,
}) {
const response = await fetch(
`https://api.crisis.jp/v1/organizations/${organizationId}/workflow_topics/${topicId}/publish`,
{
method: 'POST',
headers: {
Authorization: `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: 'ACTUAL',
data: {
source: 'monitoring_system',
service: 'payment-api',
severity: 'critical',
message: '応答時間が閾値を超過',
},
}),
}
);
if (!response.ok) {
const error = await response.json();
throw new Error(
`CRISIS API error: ${error.ErrorCode} (${response.status})`
);
}
return response.json();
}
cURL
curl -X POST https://api.crisis.jp/v1/organizations/{organizationId}/workflow_topics/{topicId}/publish \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"data": {
"source": "monitoring_system",
"service": "payment-api",
"severity": "critical",
"message": "応答時間が閾値を超過"
},
"status": "ACTUAL"
}'
⚠ アクセストークンの管理
アクセストークンをソースコードや環境変数に直接埋め込まないでください。 AWS Secrets Manager、Google Secret Manager、HashiCorp Vault などのシークレット管理サービスを使用して安全に保管してください。
レスポンス
パブリッシュが成功すると 202 Accepted で以下のレスポンスが返されます。
{
"message_id": "msg-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"published_at": "2026-04-10T12:00:00Z",
"topic_id": "topic-xxxxxxxx",
"topic_key": "ops.service_alert"
}
エラーハンドリング
よくあるエラーと対処方法です。詳細は エラーレスポンスガイド を参照してください。
401 Unauthorized — アクセストークンが無効か期限切れです。トークンを再確認してください。
403 Forbidden — サービスアカウントに
organization.workflow_topic:publish 権限がありません。IAM 設定を確認してください。
404 Not Found —
organizationId または topicId が正しくありません。
422 Unprocessable Entity — リクエストボディの形式が不正です。
data と status が含まれているか確認してください。
5XX — サーバー側の一時的な問題です。指数バックオフでリトライしてください。
実装チェックリスト
パブリッシュ連携を本番環境にデプロイする前に、以下を確認してください。
✅ Web UI でワークフロートピックを作成し、ワークフローを紐づけ済みか
✅ サービスアカウントの IAM に
organization.workflow_topic:publish 権限を付与したか✅
data の構造がワークフローの条件設定と一致しているか✅
status を ACTUAL / DRILL / TEST で正しく使い分けているか✅ 4XX / 5XX エラーのハンドリングとリトライ方針を実装したか
✅ アクセストークンを Secret Manager 等で安全に管理しているか
✅
TEST ステータスで本番トピックに疎通確認を行ったか