mcpField
W
whatsapp-automation

whatsapp-automation

github.com/davepoon生産性3.7k122 回インストール2 日前に更新
リポジトリ

whatsapp-automation について

Rube MCP上のComposio WhatsAppツールキットで、WhatsApp Businessの操作を自動化するワークフロースキルです。テキスト、テンプレート、メディア、返信、連絡先の送信に加え、プロフィールやテンプレートの管理にも対応します。

主な機能

  1. 01テキストと承認済みテンプレートの送信
  2. 02メディアのアップロードと送信
  3. 03受信メッセージへの返信
  4. 04連絡先カードの共有
  5. 05ビジネスプロフィールの確認とテンプレート管理

活用シーン

  1. 01連絡先への業務連絡の送信
  2. 02承認済みテンプレートによる案内
  3. 03顧客メッセージへの返信
  4. 04連絡先カードの共有

MCP 対応

Rube MCPとComposio WhatsAppツールキットを使ってWhatsApp Businessを操作します。有効なWhatsApp Business接続が必要で、通常のWhatsAppには対応していません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davepoon/buildwithclaude --skill whatsapp-automation

インストール後、Claude Code で/whatsapp-automationを入力して読み込まれたか確認します。

詳細

Rube MCP による WhatsApp Business の自動化

Rube MCP 経由で Composio の WhatsApp ツールキットを利用し、WhatsApp Business の操作を自動化します。

ツールキットのドキュメント:composio.dev/toolkits/whatsapp

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • whatsapp ツールキットを指定した RUBE_MANAGE_CONNECTIONS 経由で WhatsApp に接続されていること
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください
  • WhatsApp Business API アカウントが必要です(通常の WhatsApp アカウントは使用できません)

セットアップ

Rube MCP を入手:クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加してください。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確認します
  2. whatsapp ツールキットを指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って WhatsApp Business のセットアップを完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

1. テキストメッセージを送信する

使用する場面:ユーザーが WhatsApp の連絡先にテキストメッセージを送信したい場合

ツールの順序:

  1. WHATSAPP_GET_PHONE_NUMBERS - 利用可能なビジネス用電話番号を一覧表示します[前提条件]
  2. WHATSAPP_SEND_MESSAGE - テキストメッセージを送信します[必須]

主なパラメーター:

  • to:受信者の電話番号(国際形式、例:'+14155551234')
  • body:メッセージ本文
  • phone_number_id:送信元のビジネス用電話番号 ID

注意事項:

  • 電話番号は国番号を含む国際 E.164 形式で指定する必要があります
  • 24 時間の時間枠を過ぎてからメッセージを送信するには、承認済みのテンプレートが必要です
  • 24 時間の時間枠は、顧客が最後にメッセージを送信した時点から始まります
  • ビジネス側から会話を開始する場合は、最初にテンプレートメッセージを送信する必要があります
2. テンプレートメッセージを送信する

使用する場面:ユーザーが送信メッセージに承認済みテンプレートを使用したい場合

ツールの順序:

  1. WHATSAPP_GET_MESSAGE_TEMPLATES - 利用可能なテンプレートを一覧表示します[前提条件]
  2. WHATSAPP_GET_TEMPLATE_STATUS - テンプレートの承認ステータスを確認します[任意]
  3. WHATSAPP_SEND_TEMPLATE_MESSAGE - テンプレートメッセージを送信します[必須]

主なパラメーター:

  • template_name:承認済みテンプレートの名前
  • language_code:テンプレートの言語(例:'en_US')
  • to:受信者の電話番号
  • components:テンプレート変数の値とパラメーター

注意事項:

  • テンプレートは使用前に Meta の承認を受ける必要があります
  • テンプレート変数は、想定される数と形式に一致している必要があります
  • 未承認または却下されたテンプレートを送信すると、エラーが返されます
  • 言語コードは、テンプレートの承認済み翻訳に一致している必要があります
3. メディアメッセージを送信する

使用する場面:ユーザーが画像、ドキュメント、その他のメディアを送信したい場合

ツールの順序:

  1. WHATSAPP_UPLOAD_MEDIA - WhatsApp サーバーにメディアをアップロードします[必須]
  2. WHATSAPP_SEND_MEDIA_BY_ID - アップロードされたメディア ID を使ってメディアを送信します[必須] または
  3. WHATSAPP_SEND_MEDIA - 公開 URL を使ってメディアを送信します[代替]

主なパラメーター:

  • media_url:メディアの公開 URL(SEND_MEDIA 用)
  • media_id:アップロード応答から取得した ID(SEND_MEDIA_BY_ID 用)
  • type:メディアの種類('image'、'document'、'audio'、'video'、'sticker')
  • caption:メディアに付ける任意のキャプション

注意事項:

  • アップロードしたメディア ID は一時的なもので、一定期間が経過すると期限切れになります
  • メディアのサイズ制限は種類によって異なります(画像:5MB、動画:16MB、ドキュメント:100MB)
  • 対応形式:画像(JPEG、PNG)、動画(MP4、3GPP)、ドキュメント(PDF など)
  • SEND_MEDIA には、一般にアクセス可能な HTTPS URL が必要です
4. メッセージに返信する

使用するタイミング:ユーザーが受信した WhatsApp メッセージに返信したい場合

ツールの順序:

  1. WHATSAPP_SEND_REPLY - 特定のメッセージに返信する[必須]

主なパラメーター:

  • message_id:返信対象のメッセージの ID
  • to:受信者の電話番号
  • body:返信の本文

注意点:

  • message_id は、24 時間以内に受信したメッセージのものである必要があります
  • 返信は、会話内で引用メッセージとして表示されます
  • 引用を表示するには、元のメッセージが削除されずに残っている必要があります
5. ビジネスプロフィールとテンプレートを管理する

使用するタイミング:ユーザーが WhatsApp Business プロフィールを確認または管理したい場合

ツールの順序:

  1. WHATSAPP_GET_BUSINESS_PROFILE - ビジネスプロフィールの詳細を取得する[任意]
  2. WHATSAPP_GET_PHONE_NUMBERS - 登録済みの電話番号を一覧表示する[任意]
  3. WHATSAPP_GET_PHONE_NUMBER - 特定の電話番号の詳細を取得する[任意]
  4. WHATSAPP_CREATE_MESSAGE_TEMPLATE - 新しいテンプレートを作成する[任意]
  5. WHATSAPP_GET_MESSAGE_TEMPLATES - すべてのテンプレートを一覧表示する[任意]

主なパラメーター:

  • phone_number_id:ビジネス電話番号の ID
  • template_name:新しいテンプレートの名前
  • category:テンプレートのカテゴリ(MARKETING、UTILITY、AUTHENTICATION)
  • language:テンプレートの言語コード

注意点:

  • 新しいテンプレートは、使用する前に Meta の審査が必要です
  • テンプレート名は小文字とアンダースコアのみを使用してください(スペースは使用できません)
  • カテゴリは料金と承認基準に影響します
  • テンプレートのヘッダー、本文、ボタンには、それぞれ固有の書式要件があります
6. 連絡先を共有する

使用するタイミング:ユーザーが WhatsApp で連絡先情報を送信したい場合

ツールの順序:

  1. WHATSAPP_SEND_CONTACTS - 連絡先カードを送信する[必須]

主なパラメーター:

  • to:受信者の電話番号
  • contacts:名前、電話番号、メールアドレスの詳細を含む連絡先オブジェクトの配列

注意点:

  • 連絡先オブジェクトは WhatsApp Business API の連絡先スキーマに従う必要があります
  • 各連絡先には少なくとも名前が必要です
  • 連絡先の電話番号には国番号を含めてください

よく使われるパターン

24 時間のメッセージ送信ウィンドウ
  • 会話ウィンドウを開くには、顧客から先にメッセージを送信してもらう必要があります
  • 顧客の最後のメッセージから 24 時間以内であれば、自由形式のメッセージを送信できます
  • 24 時間経過後は、承認済みのテンプレートメッセージのみ送信できます
  • テンプレートメッセージを送信すると、会話ウィンドウを再度開けます
電話番号の解決
1. Call WHATSAPP_GET_PHONE_NUMBERS
2. Extract phone_number_id for your business number
3. Use phone_number_id in all send operations
メディアのアップロードフロー
1. Call WHATSAPP_UPLOAD_MEDIA with the file
2. Extract media_id from response
3. Call WHATSAPP_SEND_MEDIA_BY_ID with media_id
4. OR use WHATSAPP_SEND_MEDIA with a public URL directly

既知の注意点

電話番号の形式:

  • 常に E.164 形式を使用してください:+[国番号][電話番号](例:'+14155551234')
  • ハイフン、スペース、かっこは使用しないでください
  • 国番号は必須です。国番号のない国内番号では処理に失敗します

メッセージ送信の制限:

  • 24 時間のウィンドウ外で企業側からメッセージを送信するには、テンプレートが必要です
  • テンプレートメッセージは会話ごとに料金が発生します
  • 電話番号ごと、およびアカウントごとにレート制限が適用されます

メディアの取り扱い:

  • アップロードしたメディアには有効期限があります。アップロード後は速やかに使用してください
  • メディアの URL は、誰でもアクセスできる HTTPS である必要があります
  • スタンプには特定の要件があります(WebP 形式、512x512 ピクセル)

テンプレートの管理:

  • テンプレートの審査には最大 24 時間かかることがあります
  • 却下されたテンプレートは修正して再提出する必要があります
  • テンプレート変数には二重波かっこを使用します:{{1}}、{{2}} など

クイックリファレンス

タスクツールスラッグ主なパラメーター
メッセージを送信WHATSAPP_SEND_MESSAGEto, body
テンプレートを送信WHATSAPP_SEND_TEMPLATE_MESSAGEtemplate_name, to, language_code
メディアをアップロードWHATSAPP_UPLOAD_MEDIA(file params)
IDでメディアを送信WHATSAPP_SEND_MEDIA_BY_IDmedia_id, to, type
URLでメディアを送信WHATSAPP_SEND_MEDIAmedia_url, to, type
メッセージに返信WHATSAPP_SEND_REPLYmessage_id, to, body
連絡先を送信WHATSAPP_SEND_CONTACTSto, contacts
メディアを取得WHATSAPP_GET_MEDIAmedia_id
電話番号の一覧を取得WHATSAPP_GET_PHONE_NUMBERS(none)
電話番号を取得WHATSAPP_GET_PHONE_NUMBERphone_number_id
ビジネスプロフィールを取得WHATSAPP_GET_BUSINESS_PROFILEphone_number_id
テンプレートを作成WHATSAPP_CREATE_MESSAGE_TEMPLATEtemplate_name, category, language
テンプレートの一覧を取得WHATSAPP_GET_MESSAGE_TEMPLATES(none)
テンプレートのステータスを確認WHATSAPP_GET_TEMPLATE_STATUStemplate_id

Composio 提供

コメント