Production-ready Django WhatsApp Cloud Platform — Inbox, Campaigns, Templates, Analytics
Project description
django-meta-whatsapp is not just an API wrapper—it's a fully-featured, drop-in CRM and messaging platform that lives entirely within your existing Django project. It provides a beautiful Tailwind UI for managing conversations, blasting marketing campaigns, handling webhooks, and syncing contacts without requiring third-party SaaS subscriptions.
✨ Features
- 📨 Live Unified Inbox: A sleek, real-time chat interface to talk to your customers directly from your Django admin dashboard.
- 🚀 Marketing Campaigns: Schedule and send bulk messages using approved WhatsApp Templates. Track delivery, read rates, and bounce rates.
- 👥 Contact Management: Import CSVs, assign dynamic colored Labels, and auto-sync users who subscribe via WhatsApp deep-links.
- 🚫 Blocked User Sync: Automatically detect and sync users who block your business so you never waste API calls on blocked numbers.
- 🧩 Template Sync: Pull all your approved WhatsApp message templates directly from Meta with one click.
- 🔗 In-App Signups: Create and manage
wa.medeep links so users can instantly opt-in to marketing messages. - ⚡ Webhooks Engine: Built-in webhook endpoints to automatically ingest incoming messages, delivery receipts, and status updates.
📦 Installation
This package is fully managed via uv or pip.
# Using uv (Recommended)
uv add django-meta-whatsapp
# Using pip
pip install django-meta-whatsapp
⚙️ Configuration
Add the app to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
# ...
"django_meta_whatsapp",
]
Include the URLs in your urls.py:
from django.urls import path, include
urlpatterns = [
# ...
path("whatsapp/", include("django_meta_whatsapp.urls", namespace="django_meta_whatsapp")),
]
Add your WhatsApp Cloud API credentials to settings.py:
# Required
WHATSAPP_API_TOKEN = "EAA..."
WHATSAPP_PHONE_NUMBER_ID = "1234567890"
WHATSAPP_WEBHOOK_VERIFY_TOKEN = "your_secure_random_string"
# Optional Customizations
WHATSAPP_DASHBOARD_NAME = "My Business CRM"
WHATSAPP_DASHBOARD_LOGO = "https://yourwebsite.com/logo.png"
Run migrations:
python manage.py migrate
🚀 Quickstart
- Visit
/whatsapp/in your browser. - If you haven't set up your credentials in
settings.py, the UI will prompt you to create a WhatsApp Account object via the dashboard. - Configure your Meta App Webhook URL to point to
https://yourdomain.com/whatsapp/webhook/using yourWHATSAPP_WEBHOOK_VERIFY_TOKEN. - Sync your templates from the Templates tab.
- Start chatting from the Inbox!
📖 Full Documentation
For advanced setup, webhook handling, and UI customization, please see the full documentation at: https://rahul-baberwal.github.io/django-meta-whatsapp
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_meta_whatsapp-1.0.3.tar.gz.
File metadata
- Download URL: django_meta_whatsapp-1.0.3.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc759a7ee98cbd0495e33dcd98efdbc45aa9302f57f0d306ddcd305c2dbf374f
|
|
| MD5 |
eaca837f46a5609b5b9e8489c9af0ae0
|
|
| BLAKE2b-256 |
ebe55b9197163c8508924033cec0338b229b655a51463f2591253c2da4d3cf49
|
Provenance
The following attestation bundles were made for django_meta_whatsapp-1.0.3.tar.gz:
Publisher:
publish.yml on rahul-baberwal/django-meta-whatsapp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_meta_whatsapp-1.0.3.tar.gz -
Subject digest:
cc759a7ee98cbd0495e33dcd98efdbc45aa9302f57f0d306ddcd305c2dbf374f - Sigstore transparency entry: 1815602851
- Sigstore integration time:
-
Permalink:
rahul-baberwal/django-meta-whatsapp@13f5e4d6f5d13616ec6e9c72d6296cb3a2d428b9 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/rahul-baberwal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5e4d6f5d13616ec6e9c72d6296cb3a2d428b9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file django_meta_whatsapp-1.0.3-py3-none-any.whl.
File metadata
- Download URL: django_meta_whatsapp-1.0.3-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcb3830c4771cca660cd24e7a3b9bb5093ba54c835e9e768b1720cec439b9479
|
|
| MD5 |
edf677386827bac458aa2c96573942a8
|
|
| BLAKE2b-256 |
133a849ee52a358f6f4d08a34bbf841bf952d8fe8a3af316268a84af171a9f4f
|
Provenance
The following attestation bundles were made for django_meta_whatsapp-1.0.3-py3-none-any.whl:
Publisher:
publish.yml on rahul-baberwal/django-meta-whatsapp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_meta_whatsapp-1.0.3-py3-none-any.whl -
Subject digest:
fcb3830c4771cca660cd24e7a3b9bb5093ba54c835e9e768b1720cec439b9479 - Sigstore transparency entry: 1815603017
- Sigstore integration time:
-
Permalink:
rahul-baberwal/django-meta-whatsapp@13f5e4d6f5d13616ec6e9c72d6296cb3a2d428b9 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/rahul-baberwal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5e4d6f5d13616ec6e9c72d6296cb3a2d428b9 -
Trigger Event:
push
-
Statement type: