> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Jinba FlowでSlackイベントを受信する

> INPUT_SLACK_EVENTでSlack Appのイベントを公開フローに渡し、返されたイベントデータを確認します。

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認証情報](/ja/pages/credentials/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`も任意です。

```yaml theme={null}
- id: slack_event
  tool: INPUT_SLACK_EVENT
  config:
    - name: signing_secret
      value: "{{secrets.SLACK_SIGNING_SECRET}}"
  input:
    - name: value
      value: '{"type":"app_mention","text":"Help","channel":"C123"}'
```

ローカル確認では、`result.type`が`app_mention`のオブジェクトが返ります。Slackからはイベントのエンベロープがエンドポイントに送られ、Jinba Flowは内側の`event`オブジェクトをツールに渡します。実際のイベントのフィールドはSlackイベントの種類によって異なるため、後続ステップで参照する前に`result`を確認します。

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

元のガイドにあった、Slackのメンションに返信する例です。イベントの形式を確認してから`channel`フィールドを`SLACK_POST_MESSAGE`に渡します。

```yaml theme={null}
- id: reply_to_mention
  tool: SLACK_POST_MESSAGE
  needs: [slack_event]
  config:
    - name: token
      value: "{{secrets.SLACK_BOT_TOKEN}}"
  input:
    - name: channel
      value: "{{steps.slack_event.result.channel}}"
    - name: text
      value: "メンションありがとうございます。"
```

この例では、イベントに`channel`があり、そのチャンネルに投稿できるSlackトークンが必要です。

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

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.