whatsapp-send-skill

Send WhatsApp messages to contacts, groups, or channels. Supports text, images, videos, audio, documents, stickers, locations, and contacts.

100 stars

Best use case

whatsapp-send-skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Send WhatsApp messages to contacts, groups, or channels. Supports text, images, videos, audio, documents, stickers, locations, and contacts.

Teams using whatsapp-send-skill should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/whatsapp-send-skill/SKILL.md --create-dirs "https://raw.githubusercontent.com/trohitg/MachinaOS/main/server/skills/social_agent/whatsapp-send-skill/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/whatsapp-send-skill/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How whatsapp-send-skill Compares

Feature / Agentwhatsapp-send-skillStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Send WhatsApp messages to contacts, groups, or channels. Supports text, images, videos, audio, documents, stickers, locations, and contacts.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# WhatsApp Send Tool

Send messages to WhatsApp contacts, groups, or newsletter channels.

## How It Works

This skill provides instructions for the **WhatsApp Send** tool node. Connect the **WhatsApp Send** node to Zeenie's `input-tools` handle to enable message sending.

## whatsapp_send Tool

Send messages to individual contacts, groups, or channels.

### Schema Fields

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| recipient_type | string | Yes | `"phone"` for individual, `"group"` for group chat, or `"channel"` for newsletter |
| phone | string | If phone | Phone number without + prefix (e.g., `1234567890`) |
| group_id | string | If group | Group JID (e.g., `123456789@g.us`) |
| channel_jid | string | If channel | Newsletter JID (e.g., `120363198765432101@newsletter`) |
| message_type | string | Yes | Message type (see below) |
| message | string | If text | Text message content |
| media_url | string | If media | URL for image/video/audio/document/sticker |
| caption | string | No | Caption for media messages |
| latitude | float | If location | Latitude coordinate |
| longitude | float | If location | Longitude coordinate |
| location_name | string | No | Display name for location |
| address | string | No | Address text for location |
| contact_name | string | If contact | Contact display name |
| vcard | string | If contact | vCard 3.0 format string |

### Message Types

| Type | Required Fields | Description |
|------|-----------------|-------------|
| `text` | message | Plain text message |
| `image` | media_url | Image file (JPG, PNG, GIF) |
| `video` | media_url | Video file (MP4) |
| `audio` | media_url | Audio file (MP3, OGG, WAV) |
| `document` | media_url | Any file type |
| `sticker` | media_url | Sticker image (WebP) |
| `location` | latitude, longitude | GPS coordinates |
| `contact` | contact_name, vcard | Contact card |

### Examples

**Send text message to contact:**
```json
{
  "recipient_type": "phone",
  "phone": "1234567890",
  "message_type": "text",
  "message": "Hello! How are you?"
}
```

**Send image with caption:**
```json
{
  "recipient_type": "phone",
  "phone": "1234567890",
  "message_type": "image",
  "media_url": "https://example.com/photo.jpg",
  "caption": "Check out this photo!"
}
```

**Send to group:**
```json
{
  "recipient_type": "group",
  "group_id": "123456789012345678@g.us",
  "message_type": "text",
  "message": "Hello everyone!"
}
```

**Send to channel (newsletter):**
```json
{
  "recipient_type": "channel",
  "channel_jid": "120363198765432101@newsletter",
  "message_type": "text",
  "message": "Channel update: new features released!"
}
```

> **Channel limitations:** Channels only support `text`, `image`, `video`, `audio`, and `document` message types. Sticker, location, and contact are NOT supported. You must be an admin/owner of the channel to send.

**Send video:**
```json
{
  "recipient_type": "phone",
  "phone": "1234567890",
  "message_type": "video",
  "media_url": "https://example.com/video.mp4",
  "caption": "Check this video"
}
```

**Send document:**
```json
{
  "recipient_type": "phone",
  "phone": "1234567890",
  "message_type": "document",
  "media_url": "https://example.com/report.pdf",
  "caption": "Here's the report"
}
```

**Send location:**
```json
{
  "recipient_type": "phone",
  "phone": "1234567890",
  "message_type": "location",
  "latitude": 37.7749,
  "longitude": -122.4194,
  "location_name": "San Francisco",
  "address": "San Francisco, CA, USA"
}
```

**Send contact card:**
```json
{
  "recipient_type": "phone",
  "phone": "1234567890",
  "message_type": "contact",
  "contact_name": "John Doe",
  "vcard": "BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nTEL:+1234567890\nEND:VCARD"
}
```

### Response Format

```json
{
  "success": true,
  "recipient": "1234567890",
  "recipient_type": "phone",
  "message_type": "text",
  "details": {
    "status": "sent",
    "preview": "Hello! How are you?",
    "timestamp": "2025-01-30T12:00:00"
  }
}
```

### Error Response

```json
{
  "error": "Phone number is required for recipient_type='phone'"
}
```

## Guidelines

1. **Phone numbers**: Always use without + prefix, just digits (e.g., `919876543210`)
2. **Group IDs**: Use JID format ending in `@g.us` (e.g., `123456789@g.us`)
3. **Channel JIDs**: Use JID format ending in `@newsletter` (e.g., `120363198765432101@newsletter`)
4. **Media URLs**: Must be publicly accessible URLs (https://)
5. **vCard format**: Use vCard 3.0 specification for contact cards
6. **Message length**: Text messages can be up to 4096 characters
7. **Media size**: Check WhatsApp limits for media file sizes

## Common Use Cases

- Send automated notifications to contacts
- Forward messages to groups
- Share media files
- Send location information
- Share contact information

## Setup Requirements

1. Connect the **WhatsApp Send** node to Zeenie's `input-tools` handle
2. Ensure WhatsApp is connected (green status indicator in Credentials)
3. The recipient must have WhatsApp installed

Related Skills

whatsapp-db-skill

100
from trohitg/MachinaOS

Query WhatsApp database for contacts, groups, channels, and chat history. Look up contact info, search groups, manage channels, retrieve messages.

twitter-send-skill

100
from trohitg/MachinaOS

Post tweets, reply to tweets, retweet, like/unlike, and delete tweets on Twitter/X. Supports threading, 280-char tweets, and automatic token refresh.

serper-search-skill

100
from trohitg/MachinaOS

Search the web using Serper API for Google-powered search results including web, news, images, and places.

proxy-config-skill

100
from trohitg/MachinaOS

Configure residential proxy providers and make proxied HTTP requests with geo-targeting.

perplexity-search-skill

100
from trohitg/MachinaOS

Search the web using Perplexity Sonar AI for synthesized answers with citations, related questions, and optional images.

http-request-skill

100
from trohitg/MachinaOS

Make HTTP requests to external APIs and web services. Supports GET, POST, PUT, DELETE, PATCH methods with headers and JSON body.

duckduckgo-search-skill

100
from trohitg/MachinaOS

Search the web using DuckDuckGo for free, privacy-focused results with no API key required.

crawlee-scraper-skill

100
from trohitg/MachinaOS

Read and extract content from any web page URL.

browser-skill

100
from trohitg/MachinaOS

Interactive browser automation - navigate, click, type, fill forms, take screenshots, get accessibility snapshots. Supports system Chrome/Edge via auto-detection.

brave-search-skill

100
from trohitg/MachinaOS

Search the web using Brave Search API for privacy-focused, independent search results with no tracking.

apify-skill

100
from trohitg/MachinaOS

Run web scrapers and extract data from websites and social media platforms using Apify actors. Supports Instagram, TikTok, Twitter/X, LinkedIn, Facebook, YouTube, Google Search, and general web crawling.

nearby-places-skill

100
from trohitg/MachinaOS

Search for nearby places like restaurants, cafes, stores, and services using Google Places API. Find places by type and location.