コンテンツへスキップ
Wbiztool

連携

n8n連携

n8nのワークフローからWhatsAppメッセージを送信できます。たとえば、Webhookで受け取った新しいリードにメッセージを送る、ストアの注文を確認する、チェックに失敗したときにアラートを送る、といった使い方ができます。

接続方法は2つあります。

  • Wbiztoolコミュニティノードn8n-nodes-wbiztool):オプションごとに入力欄が用意された、すぐに使えるノードです。
  • 組み込みのHTTP Requestノード:どのn8nインスタンスでも動作し、すべてのAPIエンドポイントを利用できます。HTTP Requestノードを使うをご覧ください。

始める前に#

  • WhatsApp設定でWhatsApp番号を接続済みのWbiztoolアカウント。
  • 設定 → APIキーで確認できる クライアントIDAPIキー
  • WhatsApp設定に表示されている、送信元の番号の WhatsAppクライアントID

コミュニティノードをインストールする#

  1. コミュニティノードを開く

    n8nで Settings → Community Nodes(設定 → コミュニティノード)を開き、Install(インストール)をクリックします。

  2. パッケージ名を入力する

    n8n-nodes-wbiztool を入力し、確認してインストールします。ノードが表示されない場合は、n8nを再起動してください。

セルフホストのインスタンスでは、n8nのカスタムノードフォルダでnpmを使ってインストールすることもできます。

npm install n8n-nodes-wbiztool

認証情報を作成する#

WbizTool API タイプの新しい認証情報(Credential)を追加します。

フィールド
Client IDAPIクライアントID。
API KeyAPIキー。
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(送信済み)のメッセージのみです。キューにある、失敗した、キャンセルされた、期限切れのメッセージでは、CreatedFailed などのエラーでノードが停止します。結果に応じて分岐するには Continue On Fail をオンにしてください。メッセージステータス
WbizTool Check CredentialsクライアントIDとAPIキーが機能するか確認します。認証情報の確認
WbizTool List WhatsApp Clientsワークスペース内のWhatsApp番号を一覧表示します。接続済みの番号を一覧表示
WbizTool Create WhatsApp ClientワークスペースにWhatsApp番号を追加します(Webhook URLは任意)。WhatsApp番号を接続
WbizTool WhatsApp Client StatusWhatsApp番号が接続されているか確認します。接続ステータス

WbizTool Send Message#

フィールド説明
Target TypePhone Number(電話番号)または Group(グループ)。
Phone NumberPhone Numberの場合に表示されます。前のノードからマッピングします(例:{{ $json.phone }})。
Country Codeデフォルトは 91 です。受信者の国番号に変更してください。番号がすでにその国番号で始まっていない限り、電話番号の前に付加されます。
Group NameGroupの場合に表示されます。ご自身のWhatsApp番号が参加しているグループの正確な名前。
Message TypeTextImage with TextFile with Text のいずれか。
Message Textメッセージ(3,000文字以内)。
Image URL / File URL / File Name画像とファイルのメッセージの場合に表示されます。URLは公開されている必要があります。
WhatsApp Client ID (Optional)空欄にすると、認証情報の番号が使用されます。
Additional OptionsExpire After (Seconds)(有効期限、秒)と Webhook URL

ノードは messageId(APIの msg_id)を出力します。後でステータスを確認したりメッセージをキャンセルしたりする場合は、保存しておいてください。

ワークフローの例#

  1. Webhook ノードが、phonename を含む新しいリードを受け取ります。
  2. WbizTool Send MessagePhone Number{{ $json.phone }}Message TextHi {{ $json.name }}, thanks for signing up! に設定します。
  3. 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: falseerror のテキストを含むアイテムを受け取るには、Continue On Fail をオンにしてください。

WbizTool WhatsApp Client Status では、General Status のチェック方法を使用してください。Status by ID の方法は、そのAPIエンドポイントの不具合により、すべての番号でエラーを返します。General Statusでも、接続されていない番号では Disconnected エラーでノードが停止するため、結果に応じて分岐したい場合はノードの Continue On Fail 設定をオンにしてください。

HTTP Requestノードを使う#

HTTP Request ノードを追加し、次のように設定します。

設定
MethodPOST
URLhttps://wbiztool.com/api/v1/send_msg/
AuthenticationNone
Send BodyOn
Body Content TypeJSON
Specify BodyUsing 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 形式の dateHH:MM 形式の timetimezone を追加します。メッセージを予約をご覧ください。

同じメッセージを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」がいつ終わるかはこの設定で決まります。

メッセージ送信時に通知を受け取る#

  1. Webhookワークフローを作成する

    HTTPメソッドが POSTWebhook ノードを追加し、本番用URL(Production URL)をコピーします。

  2. 送信時にURLを渡す

    そのURLを、ノードの Webhook URL オプション、またはHTTPリクエストボディの webhook フィールドに入れます。

  3. 結果を読み取る

    メッセージが送信されるか失敗すると、WbiztoolがそのURLを呼び出します。ボディはフォームエンコードされており、msg_idstatusSENT または FAILED)のみが含まれます。

再試行とタイムアウトについてはWebhookをご覧ください。

トラブルシューティング#

問題確認事項
認証情報のテストに失敗する設定 → APIキーでクライアントIDとAPIキーを確認し、Base URLの末尾にスラッシュがないこと、認証情報の WhatsApp Client ID がこのワークスペースの番号であることを確認してください。
Auth Error: invalid api keyキーが削除されたか、別のワークスペースのキーです。
Invalid whatsapp clientWhatsAppクライアント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 という名前のエラーとして報告します。