ワークフロー Webhook 連携
Webhook トリガーを使うと、NocoBase はサードパーティシステムからの HTTP 呼び出しを受け取り、ワークフローを自動的にトリガーできます。これにより、外部システムとのシームレスな連携が実現します。
概要
Webhook は「リバース API」メカニズムの一種で、特定のイベントが発生した際に外部システムが NocoBase にデータを能動的に送信できるようにします。アクティブポーリングと比較して、Webhook はよりリアルタイムで効率的な連携方法を提供します。
典型的な利用シーン
フォームデータの送信
外部のアンケートシステム、登録フォーム、顧客フィードバックフォームなどでユーザーがデータを送信した後、Webhook を介して NocoBase にデータがプッシュされ、自動的にレコードが作成されたり、確認メールの送信やタスクの割り当てといった後続の処理がトリガーされたりします。
メッセージ通知
WeCom、DingTalk、Slack などのサードパーティメッセージングプラットフォームからのイベント(新着メッセージ、@メンション、承認完了など)は、Webhook を介して NocoBase 内の自動処理プロセスをトリガーできます。
データ同期
CRM、ERP などの外部システムでデータが変更された際、Webhook を介して NocoBase にリアルタイムで更新がプッシュされ、データ同期が維持されます。
サードパーティサービス連携
- GitHub: コードプッシュ、PR 作成などのイベントが自動化ワークフローをトリガー
- GitLab: CI/CD パイプラインのステータス通知
- フォーム送信: 外部フォームシステムから NocoBase へのデータ送信
- IoT デバイス: デバイスの状態変化、センサーデータ報告
機能
柔軟なトリガーメカニズム
- GET、POST、PUT、DELETE などの HTTP メソッドをサポート
- JSON、フォームデータなどの一般的な形式を自動的に解析
- リクエスト検証を設定可能で、信頼できるソースからのアクセスを保証
データ処理機能
- 受信したデータはワークフロー内で変数として利用できます
- 複雑なデータ変換および処理ロジックをサポート
- 他のワークフローノードと組み合わせて、複雑なビジネスロジックを実装できます
セキュリティ
- 署名検証をサポートし、偽造リクエストを防止
- IP ホワイトリストを設定可能
- HTTPS 暗号化通信
利用手順
1. プラグインのインストール
プラグインマネージャーで ワークフロー:Webhook トリガー プラグインを見つけてインストールします。
注意: このプラグインは商用プラグインであり、別途購入またはサブスクリプションが必要です。
2. Webhook ワークフローの作成
- ワークフロー管理ページに移動します
- ワークフローを作成をクリックします
- トリガータイプとしてWebhook トリガーを選択します

- Webhook パラメータを設定します

- リクエストパス: カスタム Webhook URL パス
- リクエストメソッド: 許可する HTTP メソッド (GET/POST/PUT/DELETE) を選択します
- 同期/非同期: ワークフローの実行完了を待って結果を返すかどうかを選択します
- 検証: 署名検証またはその他のセキュリティメカニズムを設定します
3. ワークフローノードの設定
ビジネス要件に基づいてワークフローノードを追加します。例えば、以下のようなものがあります。
- コレクション操作: レコードの作成、更新、削除
- 条件ロジック: 受信したデータに基づいて条件分岐
- HTTP リクエスト: 他の API を呼び出す
- 通知: メール、SMS などを送信
- カスタムコード: JavaScript コードを実行
4. Webhook URL の取得
ワークフロー作成後、システムは一意の Webhook URL を生成します。通常、形式は次のとおりです。
5. サードパーティシステムでの設定
生成された Webhook URL をサードパーティシステムに設定します。
- フォームシステムでデータ送信コールバックアドレスを設定
- GitHub/GitLab で Webhook を設定
- WeCom/DingTalk でイベントプッシュアドレスを設定
6. Webhook のテスト
Postman や cURL などのツールを使用して Webhook をテストします。
リクエストデータへのアクセス
ワークフローでは、変数を通じて Webhook が受信したデータにアクセスできます。
{{$context.data}}: リクエストボディデータ{{$context.headers}}: リクエストヘッダー情報{{$context.query}}: URL クエリパラメータ{{$context.params}}: パスパラメータ


レスポンス設定

同期モード
ワークフローの実行完了後に結果を返します。以下を設定できます。
- レスポンスステータスコード: 200、201 など

