Webhook
カスタムウェブフックを設定して、任意のサービスからウェブフックを受信します。

概要
汎用Webhookブロックを使用すると、任意の外部サービスからWebhookを受信できます。これは柔軟なトリガーであり、あらゆるJSONペイロードを処理できるため、専用のSimブロックがないサービスとの統合に最適です。
基本的な使用方法
シンプルなパススルーモード
入力フォーマットを定義しない場合、Webhookはリクエスト本文全体をそのまま渡します:
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
-H "Content-Type: application/json" \
-H "X-Sim-Secret: your-secret" \
-d '{
"message": "Test webhook trigger",
"data": {
"key": "value"
}
}'下流のブロックでデータにアクセスする方法:
<webhook1.message>→ "Test webhook trigger"<webhook1.data.key>→ "value"
構造化入力フォーマット(オプション)
入力スキーマを定義して、型付きフィールドを取得し、ファイルアップロードなどの高度な機能を有効にします:
入力フォーマット設定:
[
{ "name": "message", "type": "string" },
{ "name": "priority", "type": "number" },
{ "name": "documents", "type": "files" }
]Webhookリクエスト:
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
-H "Content-Type: application/json" \
-H "X-Sim-Secret: your-secret" \
-d '{
"message": "Invoice submission",
"priority": 1,
"documents": [
{
"type": "file",
"data": "data:application/pdf;base64,JVBERi0xLjQK...",
"name": "invoice.pdf",
"mime": "application/pdf"
}
]
}'ファイルアップロード
サポートされているファイル形式
Webhookは2つのファイル入力形式をサポートしています:
1. Base64エンコードファイル
ファイルコンテンツを直接アップロードする場合:
{
"documents": [
{
"type": "file",
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
"name": "screenshot.png",
"mime": "image/png"
}
]
}- 最大サイズ: ファイルあたり20MB
- フォーマット: Base64エンコーディングを使用した標準データURL
- ストレージ: ファイルは安全な実行ストレージにアップロードされます
2. URL参照
既存のファイルURLを渡す場合:
{
"documents": [
{
"type": "url",
"data": "https://example.com/files/document.pdf",
"name": "document.pdf",
"mime": "application/pdf"
}
]
}下流のブロックでファイルにアクセスする
ファイルは以下のプロパティを持つ UserFile オブジェクトに処理されます:
{
id: string, // Unique file identifier
name: string, // Original filename
url: string, // Presigned URL (valid for 5 minutes)
size: number, // File size in bytes
type: string, // MIME type
key: string, // Storage key
uploadedAt: string, // ISO timestamp
expiresAt: string // ISO timestamp (5 minutes)
}ブロック内でのアクセス:
<webhook1.documents[0].url>→ ダウンロードURL<webhook1.documents[0].name>→ "invoice.pdf"<webhook1.documents[0].size>→ 524288<webhook1.documents[0].type>→ "application/pdf"
ファイルアップロードの完全な例
# Create a base64-encoded file
echo "Hello World" | base64
# SGVsbG8gV29ybGQK
# Send webhook with file
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
-H "Content-Type: application/json" \
-H "X-Sim-Secret: your-secret" \
-d '{
"subject": "Document for review",
"attachments": [
{
"type": "file",
"data": "data:text/plain;base64,SGVsbG8gV29ybGQK",
"name": "sample.txt",
"mime": "text/plain"
}
]
}'認証
認証の設定(オプション)
ウェブフック設定で:
- 「認証を要求する」を有効にする
- シークレットトークンを設定する
- ヘッダータイプを選択する:
- カスタムヘッダー:
X-Sim-Secret: your-token - 認証ベアラー:
Authorization: Bearer your-token
- カスタムヘッダー:
認証の使用
# With custom header
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
-H "Content-Type: application/json" \
-H "X-Sim-Secret: your-secret-token" \
-d '{"message": "Authenticated request"}'
# With bearer token
curl -X POST https://sim.ai/api/webhooks/trigger/{webhook-path} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-secret-token" \
-d '{"message": "Authenticated request"}'ベストプラクティス
-
構造化のための入力フォーマットの使用: 予想されるスキーマがわかっている場合は入力フォーマットを定義してください。これにより以下が提供されます:
- 型の検証
- エディタでのより良いオートコンプリート
- ファイルアップロード機能
-
認証: 不正アクセスを防ぐため、本番環境のウェブフックには常に認証を有効にしてください。
-
ファイルサイズの制限: ファイルは20MB未満に保ってください。より大きなファイルの場合は、代わりにURL参照を使用してください。
-
ファイルの有効期限: ダウンロードされたファイルのURLは5分間有効です。すぐに処理するか、長期間必要な場合は別の場所に保存してください。
-
エラー処理: ウェブフック処理は非同期です。エラーについては実行ログを確認してください。
-
テスト: 設定をデプロイする前に、エディタの「ウェブフックをテスト」ボタンを使用して設定を検証してください。
ユースケース
- フォーム送信: ファイルアップロード機能を持つカスタムフォームからデータを受け取る
- サードパーティ連携: ウェブフックを送信するサービス(Stripe、GitHubなど)と接続する
- ドキュメント処理: 外部システムからドキュメントを受け取って処理する
- イベント通知: さまざまなソースからイベントデータを受け取る
- カスタムAPI: アプリケーション用のカスタムAPIエンドポイントを構築する
注意事項
- カテゴリ:
triggers - タイプ:
generic_webhook - ファイルサポート:入力フォーマット設定で利用可能
- 最大ファイルサイズ:ファイルあたり20MB