連携
n8n連携
n8nのワークフローからWhatsAppメッセージを送信できます。たとえば、Webhookで受け取った新しいリードにメッセージを送る、ストアの注文を確認する、チェックに失敗したときにアラートを送る、といった使い方ができます。
接続方法は2つあります。
- Wbiztoolコミュニティノード(
n8n-nodes-wbiztool):オプションごとに入力欄が用意された、すぐに使えるノードです。 - 組み込みのHTTP Requestノード:どのn8nインスタンスでも動作し、すべてのAPIエンドポイントを利用できます。HTTP Requestノードを使うをご覧ください。
始める前に#
- WhatsApp設定でWhatsApp番号を接続済みのWbiztoolアカウント。
- 設定 → APIキーで確認できる クライアントID と APIキー。
- WhatsApp設定に表示されている、送信元の番号の WhatsAppクライアントID。
コミュニティノードをインストールする#
コミュニティノードを開く
n8nで Settings → Community Nodes(設定 → コミュニティノード)を開き、Install(インストール)をクリックします。
パッケージ名を入力する
n8n-nodes-wbiztoolを入力し、確認してインストールします。ノードが表示されない場合は、n8nを再起動してください。
セルフホストのインスタンスでは、n8nのカスタムノードフォルダでnpmを使ってインストールすることもできます。
npm install n8n-nodes-wbiztool
認証情報を作成する#
WbizTool API タイプの新しい認証情報(Credential)を追加します。
| フィールド | 値 |
|---|---|
| Client ID | APIクライアントID。 |
| API Key | APIキー。 |
| WhatsApp Client ID | デフォルトの送信元の番号。ほとんどのノードで上書きできます。 |
| Base URL | デフォルトの https://wbiztool.com/api/v1 のままにします(末尾のスラッシュなし)。 |
保存すると、n8nが認証情報の確認で認証情報をテストします。
ノード#
パッケージには次のノードが含まれます。各ノードはWbiztoolのAPIエンドポイントを呼び出し、APIのレスポンスを出力します。
| ノード | できること | API |
|---|---|---|
| WbizTool Send Message | 電話番号またはグループにテキスト、画像、ファイルを送信します。 | メッセージ送信、グループに送信 |
| WbizTool Send Group Message | 名前を指定してWhatsAppグループにメッセージを送信します。 | グループに送信 |
| WbizTool Send Multi Message | カンマ区切りの番号リストに同じメッセージを送信します。 | 複数の番号に送信 |
| WbizTool Schedule Message | 日時を指定してメッセージを予約します。下記の注意をご覧ください。 | メッセージを予約 |
| WbizTool Cancel Message | メッセージIDを指定して予約メッセージをキャンセルします。 | メッセージをキャンセル |
| WbizTool Message Status | メッセージIDを指定してメッセージのステータスを取得します。アイテムが返されるのは Sent(送信済み)のメッセージのみです。キューにある、失敗した、キャンセルされた、期限切れのメッセージでは、Created や Failed などのエラーでノードが停止します。結果に応じて分岐するには Continue On Fail をオンにしてください。 | メッセージステータス |
| WbizTool Check Credentials | クライアントIDとAPIキーが機能するか確認します。 | 認証情報の確認 |
| WbizTool List WhatsApp Clients | ワークスペース内のWhatsApp番号を一覧表示します。 | 接続済みの番号を一覧表示 |
| WbizTool Create WhatsApp Client | ワークスペースにWhatsApp番号を追加します(Webhook URLは任意)。 | WhatsApp番号を接続 |
| WbizTool WhatsApp Client Status | WhatsApp番号が接続されているか確認します。 | 接続ステータス |
WbizTool Send Message#
| フィールド | 説明 |
|---|---|
| Target Type | Phone Number(電話番号)または Group(グループ)。 |
| Phone Number | Phone Numberの場合に表示されます。前のノードからマッピングします(例:{{ $json.phone }})。 |
| Country Code | デフォルトは 91 です。受信者の国番号に変更してください。番号がすでにその国番号で始まっていない限り、電話番号の前に付加されます。 |
| Group Name | Groupの場合に表示されます。ご自身のWhatsApp番号が参加しているグループの正確な名前。 |
| Message Type | Text、Image with Text、File with Text のいずれか。 |
| Message Text | メッセージ(3,000文字以内)。 |
| Image URL / File URL / File Name | 画像とファイルのメッセージの場合に表示されます。URLは公開されている必要があります。 |
| WhatsApp Client ID (Optional) | 空欄にすると、認証情報の番号が使用されます。 |
| Additional Options | Expire After (Seconds)(有効期限、秒)と Webhook URL。 |
ノードは messageId(APIの msg_id)を出力します。後でステータスを確認したりメッセージをキャンセルしたりする場合は、保存しておいてください。
ワークフローの例#
- Webhook ノードが、
phoneとnameを含む新しいリードを受け取ります。 - WbizTool Send Message:Phone Number を
{{ $json.phone }}、Message Text をHi {{ $json.name }}, thanks for signing up!に設定します。 - IF ノード:
{{ $json.messageId }}が空でないことを確認してから、CRMの更新などの次のステップに進みます。
WbizTool Send Message が成功すると、次のようなアイテムが出力されます。
{
"success": true,
"messageId": 9817263,
"status": 1,
"message": "Created",
"response": { "status": 1, "message": "Created", "msg_id": 9817263 }
}
アイテムには、ノードが送信した値を含む input オブジェクトも含まれます。APIがエラーを返すと、ノードは停止してAPIの message を表示します。代わりに success: false と error のテキストを含むアイテムを受け取るには、Continue On Fail をオンにしてください。
WbizTool WhatsApp Client Status では、General Status のチェック方法を使用してください。Status by ID の方法は、そのAPIエンドポイントの不具合により、すべての番号でエラーを返します。General Statusでも、接続されていない番号では Disconnected エラーでノードが停止するため、結果に応じて分岐したい場合はノードの Continue On Fail 設定をオンにしてください。
HTTP Requestノードを使う#
HTTP Request ノードを追加し、次のように設定します。
| 設定 | 値 |
|---|---|
| Method | POST |
| URL | https://wbiztool.com/api/v1/send_msg/ |
| Authentication | None |
| Send Body | On |
| Body Content Type | JSON |
| Specify Body | Using JSON |
次に、以下のようなボディを貼り付け、式(expression)を使って前のノードから値をマッピングします。
{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"country_code": "91",
"phone": "{{ $json.phone }}",
"msg": "Hi {{ $json.name }}, thanks for signing up!"
}
呼び出しが成功すると、{"status": 1, "message": "Created", "msg_id": 9817263} が返されます。すべてのフィールドとエラーメッセージはメッセージ送信に記載されています。
他のエンドポイントを呼び出すには、URLとボディを変更します。たとえばメッセージを予約するには、https://wbiztool.com/api/v1/schedule_msg/ を使用し、DD/MM/YYYY 形式の date、HH:MM 形式の time、timezone を追加します。メッセージを予約をご覧ください。
同じメッセージを1回の呼び出しで複数の番号やグループに送信するには、https://wbiztool.com/api/v1/send_msg/multi/ を使用し、受信者をカンマ区切りの1つの文字列として phone に指定します。複数の番号に送信をご覧ください。
{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"country_code": "91",
"phone": "{{ $json.phones }}",
"img_url": "https://example.com/offers/diwali-sale.jpg",
"msg": "Our Diwali sale starts tomorrow!"
}
各番号には数字のみを入れてください。98765 43210 のように整数でないものは、グループ名として送信されます。
n8nの式は、どのテキストフィールドでも使用できます。たとえば、時間帯によって変わるあいさつや、注文の合計金額によって変わるテキストは次のように書けます。
{
"msg": "Good {{ $now.hour < 12 ? 'morning' : 'evening' }} {{ $json.name }}, your order total is {{ $json.total }}.{{ $json.total > 1000 ? ' Delivery is free.' : '' }}"
}
$now はワークフローのタイムゾーン(Workflow settings → Timezone)を使うため、「morning」がいつ終わるかはこの設定で決まります。
メッセージ送信時に通知を受け取る#
Webhookワークフローを作成する
HTTPメソッドが
POSTの Webhook ノードを追加し、本番用URL(Production URL)をコピーします。送信時にURLを渡す
そのURLを、ノードの Webhook URL オプション、またはHTTPリクエストボディの
webhookフィールドに入れます。結果を読み取る
メッセージが送信されるか失敗すると、WbiztoolがそのURLを呼び出します。ボディはフォームエンコードされており、
msg_idとstatus(SENTまたはFAILED)のみが含まれます。
再試行とタイムアウトについてはWebhookをご覧ください。
トラブルシューティング#
| 問題 | 確認事項 |
|---|---|
| 認証情報のテストに失敗する | 設定 → APIキーでクライアントIDとAPIキーを確認し、Base URLの末尾にスラッシュがないこと、認証情報の WhatsApp Client ID がこのワークスペースの番号であることを確認してください。 |
Auth Error: invalid api key | キーが削除されたか、別のワークスペースのキーです。 |
Invalid whatsapp client | WhatsAppクライアントIDが、このワークスペースの番号ではありません。 |
Invalid phone number | 電話番号の値に文字や、スペース、ドット、ダッシュ、括弧、+ 以外の記号が含まれているか、桁数が6桁未満または17桁を超えています。919876543210 のような数字のみの番号をマッピングしてください。 |
Either phone or group_name parameter is required | このアイテムでは、マッピングした電話番号の値が空です。 |
Invalid Contact Number "…" | 国番号を付加した後の番号が15桁を超えています。すでに国番号が含まれている番号に、さらに国番号が付加されていないか確認してください。 |
Not enough credits | プランに残りのメッセージがありません。 |
| ノードは成功したがメッセージが送信されない | メッセージは、WhatsApp番号が接続されるまでキューで待機します。HTTP Requestノードでメッセージステータスを使うか、メッセージ履歴で確認してください。WbizTool Message Status ノードは、キューにあるメッセージを Created という名前のエラーとして報告します。 |
