メインコンテンツへスキップ
Slack Appからフローへイベントを送る場合はINPUT_SLACK_EVENTを使います。SlackのEvent SubscriptionsのRequest URLにhttps://<your-flow-host>/api/v2/external/flows/<flow-id>/slack-runを指定します。ホストとフローIDはTriggersパネルで確認してください。これはSlackイベント専用エンドポイントであり、通常の公開API URLではありません。ルートはSlackのURL検証チャレンジに応答し、イベント本体をINPUT_SLACK_EVENTに渡します。アプリ設定はSlack認証情報を参照してください。 ルートはすべてのイベントをSlack Appの Signing Secret で検証します。ステップのsigning_secret設定に種類がSLACK_SIGNING_SECRETのシークレット(アプリのBasic Information → App Credentialsからコピー)を指定し、フローを公開してください。実行されるのは公開バージョンです。公開されたINPUT_SLACK_EVENTステップに有効なsigning secretがないフローや、X-Slack-Signature / X-Slack-Request-Timestampヘッダーがない・不正・5分より古いリクエストは、実行前に401で拒否されます。公開されたINPUT_SLACK_EVENTステップがないフローは404を返します。署名なしで応答するのはurl_verificationハンドシェイクとSlackのリトライ(X-Slack-Retry-Num付きのリクエスト。処理せずに応答のみ)だけです。

イベントをフロー入力として受け取る

valueは実行時に渡す任意のJSON文字列です。use_as_inputの既定値はtrueで、イベントをAPIまたはMCP入力として使います。optionalの既定値はfalseです。イベントなしでもフローを続けられる場合だけtrueにします。descriptionも任意です。
ローカル確認では、result.typeがapp_mentionのオブジェクトが返ります。Slackからはイベントのエンベロープがエンドポイントに送られ、Jinba Flowは内側のeventオブジェクトをツールに渡します。実際のイベントのフィールドはSlackイベントの種類によって異なるため、後続ステップで参照する前にresultを確認します。

イベントのチャンネルに返信する

元のガイドにあった、Slackのメンションに返信する例です。イベントの形式を確認してからchannelフィールドをSLACK_POST_MESSAGEに渡します。
この例では、イベントにchannelがあり、そのチャンネルに投稿できるSlackトークンが必要です。

イベントがない場合やJSONが無効な場合

optionalがfalseでvalueがないと、「Slack event value is required」で失敗します。無効なJSONではInputSlackEventToolエラーとnullの結果が返ります。後続の式を変更する前に、/slack-runイベントサブスクリプションのURLとJSONデータを確認してください。