WhatsApp Cookbook
Use WhatsApp integration with Agno.
The example below shows how to send a template message using Agno's WhatsApp tools. For more complex use cases, check out the WhatsApp Cloud API documentation: here
"""
WhatsApp Cookbook
----------------
This cookbook demonstrates how to use WhatsApp integration with Agno. Before running this example,
you'll need to complete these setup steps:
1. Create Meta Developer Account
- Go to [Meta Developer Portal](https://developers.facebook.com/) and create a new account
- Create a new app at [Meta Apps Dashboard](https://developers.facebook.com/apps/)
- Enable WhatsApp integration for your app [here](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started)
2. Set Up WhatsApp Business API
You can get your WhatsApp Business Account ID from [Business Settings](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started)
3. Configure Environment
- Set these environment variables:
WHATSAPP_ACCESS_TOKEN=your_access_token # Access Token
WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id # Phone Number ID
WHATSAPP_RECIPIENT_WAID=your_recipient_waid # Recipient WhatsApp ID (e.g. 1234567890)
WHATSAPP_VERSION=your_whatsapp_version # WhatsApp API Version (e.g. v22.0)
Important Notes:
- For first-time outreach, you must use pre-approved message templates
[here](https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-message-templates)
- Test messages can only be sent to numbers that are registered in your test environment
The example below shows how to send a template message using Agno's WhatsApp tools.
For more complex use cases, check out the WhatsApp Cloud API documentation:
[here](https://developers.facebook.com/docs/whatsapp/cloud-api/overview)
"""
from agno.agent import Agent
from agno.models.google import Gemini
from agno.tools.whatsapp import WhatsAppTools
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
name="whatsapp",
model=Gemini(id="gemini-3.5-flash"),
tools=[WhatsAppTools()],
)
# Example: Send a template message
# Note: Replace 'hello_world' with your actual template name
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
agent.print_response(
"Send a template message using the 'hello_world' template in English to +1 123456789"
)Replace the placeholder recipient in the request with your actual permitted recipient and use an approved template and its exact language code, such as hello_world with en_US in a configured test account. This makes a real outbound send. The optional WHATSAPP_RECIPIENT_WAID supplies a fallback only when the tool call omits recipient; WHATSAPP_VERSION defaults to v22.0. For this template-only example, use WhatsAppTools(enable_send_text_message=False).
Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno google-genaiExport environment variables
export GOOGLE_API_KEY="your_google_api_key_here"
export WHATSAPP_ACCESS_TOKEN="your_whatsapp_access_token_here"
export WHATSAPP_PHONE_NUMBER_ID="your_whatsapp_phone_number_id_here"Run the example
Save the code above as whatsapp_tools.py, then run:
python whatsapp_tools.pyFull source: cookbook/91_tools/whatsapp_tools.py