npx skills add ...
npx skills add aws/agent-toolkit-for-aws --skill aws-social-messaging
Manages WhatsApp messaging through AWS End User Messaging Social. Covers managing templates (create, update, delete, library), sending messages (utility/marketing/auth templates and freeform), uploading and managing media, configuring event destinations for delivery tracking, and troubleshooting delivery failures. Applicable when a user needs to send WhatsApp messages, create or manage templates, upload media, configure delivery notifications, or diagnose messaging issues.
npx skills add aws/agent-toolkit-for-aws --skill aws-social-messaging
WhatsApp messaging via AWS End User Messaging Social: template management, sending, media handling, event destinations, and delivery troubleshooting.
Recommended setup: Use the AWS MCP server for sandboxed execution, audit logging, and enterprise controls.
Without AWS MCP: This skill works with any agent that has AWS CLI access. All commands use standard AWS CLI syntax.
Constraints:
aws socialmessaging subcommand is not recognized, the user must update to the latest AWS CLI versionsocial-messaging:CreateWhatsAppMessageTemplate, social-messaging:GetWhatsAppMessageTemplate, social-messaging:ListWhatsAppMessageTemplates, social-messaging:UpdateWhatsAppMessageTemplate, social-messaging:DeleteWhatsAppMessageTemplate, social-messaging:ListWhatsAppTemplateLibrary, social-messaging:CreateWhatsAppMessageTemplateFromLibrarysocial-messaging:SendWhatsAppMessagesocial-messaging:PostWhatsAppMessageMedia, social-messaging:CreateWhatsAppMessageTemplateMedia, social-messaging:GetWhatsAppMessageMedia, social-messaging:DeleteWhatsAppMessageMediasocial-messaging:PutWhatsAppBusinessAccountEventDestinationssocial-messaging:GetLinkedWhatsAppBusinessAccount, social-messaging:GetLinkedWhatsAppBusinessAccountPhoneNumber, social-messaging:ListLinkedWhatsAppBusinessAccountssns:ListSubscriptionsByTopic, iam:PassRole (for event destination role)Create, update, and delete message templates (utility, marketing, authentication).
create-whatsapp-message-template: base64-encode --template-definition (blob type)create-whatsapp-message-template-from-library: use pre-approved Meta library templateslist-whatsapp-template-library: browse available library templatesget-whatsapp-message-template: retrieve template details by --id (WABA) and --meta-template-idupdate-whatsapp-message-template: modify existing template contentdelete-whatsapp-message-template: requires --template-name (NOT --meta-template-name); always include --delete-all-languageslist-whatsapp-message-templates: response fields are templateStatus and templateCategory (NOT status/category){{N}} parameters MUST include "parameter_format": "positional" (exception: AUTHENTICATION — Meta handles OTP parameters automatically) and "example"+), template name, language, parameters--message is blob type — MUST base64-encode JSONpost-whatsapp-message-media and reference by media ID instead — presigned URLs cannot satisfy the 30-day availability requirementConstraints for all sends:
phone-number-id-* patternwaba-* pattern+ prefix (e.g., +14155551234), or Business-Scoped User ID (BSUID) via the "recipient" fielden_US, pt_BR)--meta-api-version is v{Major}.{Minor} format (e.g., v21.0)"messaging_product" MUST be "whatsapp" in the JSON body; check Meta's Graph API changelog for the supported Meta Graph API version--message is blob type — MUST base64-encode the JSON payloadmessageId means queued, not deliveredSee sending-messages.md.
Upload, retrieve, and delete media for messages and template headers.
post-whatsapp-message-media: upload media, returns reusable media IDcreate-whatsapp-message-template-media: upload media specifically for template headersget-whatsapp-message-media: retrieve media metadata/URL by IDdelete-whatsapp-message-media: remove uploaded mediaSee managing-media.md.
Set up delivery tracking, template status notifications, and reclassification alerts.
Set up delivery tracking, template status notifications, and reclassification alerts. A WABA can only have one event destination. See configuring-event-destinations.md for prerequisites (IAM role, SNS topic with KMS encryption, HTTPS-only subscription endpoints, condition keys) and full security controls.
Diagnostic flow: WABA status → phone number → templates → event destinations → quotas.
get-linked-whatsapp-business-account: registration MUST be COMPLETEget-linked-whatsapp-business-account-phone-number: verify phone number healthlist-linked-whatsapp-business-accounts: list all WABAsSee troubleshooting-delivery.md.
parameter_format and example--origination-phone-number-id is the ID (not phone number); recipient E.164 with +social-messaging: actions and WABA/phone number ARNssocial-messaging API calls; encrypt logs with KMS CMKaws:SourceArn, aws:SourceAccount) to SNS topic policies to prevent confused deputy attacks