このガイドでは、Chat App メッセージ送信スキルのコア機能、インストール、および使用方法について詳しく説明します。このスキルを使用すると、コンソールを切り替えたり、手動で API リクエストを作成したりすることなく、エージェント内で直接 WhatsApp メッセージの送信、テンプレートのクエリ、セッションの管理を行うことができます。
前提条件
Alibaba Cloud のサブアカウントの AccessKey ID と AccessKey Secret を持っていること。メインアカウントが RAM コンソール でユーザーを作成し、必要な Chat App Message Service (CAMS) の権限を付与していること。
Chat App Message Service コンソール を有効化し、以下の操作を完了していること:
WhatsApp Business Account (WABA) をバインドしていること。
送信元電話番号 (From) を登録し、承認を得ていること。
メッセージテンプレートを作成し、承認を得ていること (テンプレートメッセージの送信に必要)。
1. 機能と利点
Alibaba Cloud Chat App メッセージ送信スキルは、WhatsApp のメッセージング、テンプレートのクエリ、セッション管理をエージェントが呼び出せるツールとしてパッケージ化します。これにより、コンソールを切り替えたり、手動で JSON ペイロードを構築したりすることなく、エージェントから直接、通知の送信、マーケティングキャンペーンの実行、顧客との対話が可能になります。
機能 | 説明 |
テンプレートメッセージの送信 | 24時間のセッションウィンドウ外で WhatsApp テンプレートメッセージを送信します。この機能は、マーケティング通知、注文ステータスの更新、確認コード、物流リマインダーなどのシナリオで変数の置換に対応しています。 |
カスタムメッセージの送信 | 24時間のセッションウィンドウ内でカスタムメッセージを送信します。テキスト、画像、動画、音声、ドキュメント、インタラクティブ、位置情報の7種類のメッセージタイプに対応しています。 |
テンプレートリストのクエリ | 承認ステータス、タイプ、または言語でテンプレートをフィルタリングすることで、エージェントは自動的にテンプレートを選択したり、ユーザーにオプションを提示したりできます。 |
テンプレート詳細のクエリ | 特定のテンプレートの変数構造を取得します。これにより、エージェントはユーザーがパラメータを1つずつ入力するようガイドし、パラメータの数と形式の不一致を防ぎます。 |
主な利点:
対話型のメッセージ送信:自然言語を使用してテンプレートのクエリ、変数の入力、メッセージの送信を、Claude Code、Cursor、OpenClaw、Qoderwork、Wukong などのエージェントツール内で直接行うことができ、頻繁にコンソールにアクセスする必要がなくなります。
パラメータ作成の簡素化:エージェントが有効な JSON を自動的に構築し、変数のマッチングを支援するため、1つのエラーが失敗の原因となりうる、従来の API 呼び出しで求められる厳格なフォーマットを回避できます。
自動エラー診断:このスキルは、組み込みの診断機能を提供し、一般的なエラーコードに対する解決策を提案します。たとえば、
SessionWindowExpiredエラーが発生した場合、スキルは自動的にテンプレートメッセージのワークフローに切り替わります。RAM 権限が不十分な場合は、ram-permission-diagnoseスキルと連携して、権限申請プロセスをガイドします。送信前の確認:エージェントは、送信前にすべてのカスタマイズ可能なパラメータについてユーザーに明確な確認を求め、デフォルト値を使用しないことで、正確性を保証します。
2. インストール
Alibaba Cloud Skill Marketplace
Alibaba Cloud Skill Marketplace にアクセスし、「Chat App Message Sending」 を検索して、スキルをインストールします。
ClawHub
ClawHub プラットフォームにアクセスし、「alibabacloud-chatapp-message-send」 を検索してスキルの詳細を表示し、インストールします。
その他の方法
Claude Code
詳細については、Claude Code の公式ドキュメントをご参照ください。
ダウンロードしたスキルパッケージを解凍し、そのディレクトリを Claude Code の skills フォルダに移動します:
グローバルスコープ (すべてのプロジェクト) の場合:スキルを
~/.claude/skills/ディレクトリに移動します。プロジェクトレベルスコープ (現在のプロジェクトのみ) の場合:スキルを
project_root/.claude/skills/ディレクトリに移動します。
ディレクトリを移動した後、Claude Code を再起動して変更を有効にします。
OpenClaw
ダウンロードしたスキルパッケージを解凍し、スキルのディレクトリへのパスをコピーします。OpenClaw でパスを入力し、「このディレクトリのスキルをインストールして」とエージェントに依頼します。スキルを使用する前に、インストールが完了したことを示す確認メッセージを待ちます。
3. セットアップ
1. Aliyun CLI >= 3.3.3
aliyun version を実行して現在のバージョンを確認します。Aliyun CLI がインストールされていない、またはバージョンが 3.3.3 より古い場合:
# macOS または Linux では、このコマンドを実行して最新バージョンをインストールまたはアップグレードします。
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
# バージョンが 3.3.3 以降であることを確認します。
aliyun version重要:CLI を使用する前に、プラグインの自動インストールと AI モードを有効にしてください:
aliyun configure set --auto-plugin-install true
aliyun plugin update
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent \
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-chatapp-message-send"重要:タスクの完了、エラー、または終了など、何らかの理由でセッションが終了した場合は、AI モードを無効にする必要があります。終了する前に、必ず aliyun configure ai-mode disable を実行してください。
2. CAMS プラグインのインストール
aliyun plugin install --names aliyun-cli-cams3. 認証情報
セキュリティルール:
絶対に AccessKey ID または AccessKey Secret の値を読み取り、表示、または出力しないでください。
絶対に 会話やコマンドラインでユーザーに AccessKey ID または AccessKey Secret を直接入力するよう要求しないでください。
絶対に
aliyun configure setで平文の認証情報を使用しないでください。認証情報のステータスを確認するには、
aliyun configure listのみを使用してください。
aliyun configure listコマンドの出力で、AccessKey、STS、OAuth などの有効なプロファイルを確認します。有効なプロファイルが存在しない場合は、処理を停止し、RAM コンソールから認証情報を取得してください。この手順に戻る前に、aliyun configure または環境変数を使用して、現在のセッションの外部で設定してください。
4. RAM 権限
このスキルには、以下の RAM アクションが必要です:
API | アクション | 説明 |
SendChatappMessage | cams:SendChatappMessage | メッセージの送信 |
SendChatappMassMessage | cams:SendChatappMassMessage | 一括送信 |
ListChatappTemplate | cams:ListChatappTemplate | テンプレートリストのクエリ |
GetChatappTemplateDetail | cams:GetChatappTemplateDetail | テンプレート詳細のクエリ |
ListChatappMessage | cams:ListChatappMessage | メッセージリストのクエリ |
最小権限ポリシーの JSON:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cams:SendChatappMessage",
"cams:SendChatappMassMessage",
"cams:ListChatappTemplate",
"cams:GetChatappTemplateDetail",
"cams:ListChatappMessage"
],
"Resource": "*"
}
]
}4. 使用方法
コア機能
対話形式でテンプレートリストと詳細をクエリし、利用可能なテンプレートとその変数構造を取得します。
テンプレートメッセージとカスタムメッセージを自動的に送信し、24 時間のセッションウィンドウの内外でユーザーにリーチできます。
セッションウィンドウの期限切れを検出し、自動的にテンプレートメッセージのワークフローに切り替えます。
en、zh_CN、zh_HK などの多言語テンプレートに対応しています。
--cust-space-idパラメータを使用して、独立系ソフトウェアベンダー (ISV) のマルチテナントシナリオに対応しています。
5. ユースケース
国際注文の通知
国際ビジネスにおける一般的なユースケースには、発送通知、物流の更新、支払い確認の送信などがあります。
以前は、運用スタッフはコンソールやスクリプトからメッセージを送信する前に、テンプレートを見つけ、変数を入力し、電話番号を準備する必要がありました。このスキルを使えば、エージェントに要件を述べるだけで、テンプレートのマッチング、変数の補完、メッセージの送信、結果の報告を支援します。
マーケティングキャンペーンのアウトリーチ
国際的なマーケティングキャンペーンでは、新製品の発表、プロモーションのリマインダー、顧客の再エンゲージメントに WhatsApp がよく使用されます。
WhatsApp のテンプレートメッセージは事前に承認される必要があることに注意してください。このスキルは Meta のテンプレート審査サイクルを短縮するものではありません。しかし、テンプレートが承認されれば、エージェントは電話番号形式の自動検証、テンプレートのマッチング確認、顧客リストの処理、変数の一致、メッセージの一括送信、結果のレビューによって、テンプレートをより効率的に使用するのに役立ちます。
カスタマーサービスのフォローアップ
カスタマーサービスにおいて、24 時間のセッションウィンドウは重要なルールです。顧客が会話を開始した後、企業はこのウィンドウ内でカスタムメッセージを送信できます。ウィンドウ外では、テンプレートメッセージが必要です。
このスキルは、エージェントがカスタムメッセージとテンプレートメッセージのどちらを使用すべきかを判断し、適切な方法を推奨するのに役立ちます。これにより、サポートスタッフによる手動でのルール解釈や判断の必要性が減り、送信の失敗や再試行の防止に役立ちます。
6. よくある質問
このスキルはどの AI エージェントツールに対応していますか?
現在、Claude Code、Cursor、OpenClaw、Qoderwork、Wukong など、Agent Skills 標準に準拠したツールに対応しています。現在、さらに多くのプラットフォームへの対応を進めています。
このスキルの機能とコンソールの機能の違いは何ですか?
このスキルは現在、テンプレートメッセージの送信、カスタムメッセージの送信、テンプレートリストのクエリ、テンプレート詳細のクエリに対応しています。テンプレートの作成は引き続きコンソールで行う必要があります。
アカウントを登録せずにメッセージを送信できますか?
いいえ。Alibaba Cloud アカウントを登録し、CAMS を有効化し、WABA をバインドし、送信元電話番号を登録し、メッセージテンプレートの承認を得る必要があります。
個人ユーザーはこのサービスを利用できますか?
WhatsApp Business API はビジネスの認証情報を必要とします。個人ユーザーは、有効なビジネス情報を提供した場合にのみサービスを利用できます。このサービスは、メッセージ送信のための個人認証情報には対応していません。
テンプレート変数は特定の形式で入力する必要がありますか?
はい。テンプレート変数は、1=value1 2=value2 3=value3 のように、数値順に入力する必要があります。エージェントは、数や形式の不一致を防ぐために、それぞれについて確認するようにガイドします。
どのようなテンプレートを使用してメッセージを送信できますか?
ステータスが「Approved」で、ターゲットユーザーの言語と一致する言語のテンプレートを使用できます。list-chatapp-template --audit-status Approved を実行して、承認済みのテンプレートをクエリします。
一度に複数のユーザーにメッセージを送信できますか?
はい。複数のユーザーにメッセージを送信するには、ターゲットの電話番号のリストをエージェントに提供してください。
カスタムメッセージは 24 時間のセッションウィンドウ内でのみ送信できますか?
はい。カスタム WhatsApp メッセージは、ユーザーの最後のメッセージから 24 時間以内にのみ送信できます。この期間を過ぎると、SessionWindowExpired エラーが表示されます。この場合、エージェントは自動的にテンプレートメッセージのワークフローに切り替わります。
7. エラーコード
エラーコード | 説明 | 解決策 |
InvalidParameter.FromOnlyNumeric | 電話番号にプラス記号 (+) が含まれています。 | API は数字のみを受け付けます。プラス記号 (+) を削除してください。例: |
TemplateNotFound | テンプレートが存在しません。 |
|
TemplateParamInvalid | テンプレート変数が無効です。 | 変数の数と形式がテンプレートと一致しているか確認してください。 |
SessionWindowExpired | 24 時間のセッションウィンドウが期限切れになりました。 | テンプレートメッセージのワークフローに切り替えてください。 |
PhoneNumberNotRegistered | 送信者の電話番号が登録されていません。 | コンソールで電話番号の登録と承認プロセスを完了してください。 |
Forbidden.RAM | RAM 権限が不十分です。 |
|
InvalidAccessKeyId.NotFound | AccessKey ID が正しくありません。 | AccessKey ID を確認してください。 |
SignatureDoesNotMatch | AccessKey Secret が正しくありません。 | AccessKey Secret を確認してください。 |
権限の自動処理:RAM 権限が不十分でコマンドが失敗した場合、スキルは自動的に references/ram-policies.md を読み取り、ram-permission-diagnose スキルを呼び出して、必要な権限を付与するプロセスをガイドします。権限を付与すると、元のコマンドが再開されます。