django-signal-webhooks
Add webhooks to django using signals.
What it is and what it does
Django Signal Webhooks bridges Django model lifecycle events (create, update, delete) to external HTTP endpoints by hooking into Django's signal system. It lets you define which models should trigger webhooks and manage them through Django's admin interface, with optional authentication and customization hooks throughout the sending process.
The package handles the mechanics of serializing model changes, constructing HTTP requests via httpx, and delivering payloads to registered webhook URLs. It relies on cryptography for secure operations and django-settings-holder for configuration management. You configure webhooks declaratively in settings and then manage individual webhook registrations (URLs, authentication, active/inactive state) through the admin panel without code changes.
Use it for:
- Notify external systems (CRM, analytics, logging) when Django models change without tight coupling.
- Trigger downstream workflows in microservices when user or order records are created or updated.
- Implement audit trails or event streaming by sending model mutations to a dedicated event service.
- Sync data between Django and third-party SaaS platforms on model changes.
- Build real-time integrations where external tools need to react to Django application events.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds webhook support to Django models by automatically triggering HTTP callbacks on create, update, and delete events via Django signals, configurable through the admin panel.
Yes, if you need to emit webhooks from Django model events and want a low-friction, admin-friendly solution. The package is actively maintained, has no known vulnerabilities, uses permissive licensing, and integrates cleanly with Django 4.2+. Install only if your project already uses Django and you need outbound webhooks; it adds a small dependency footprint and is straightforward to configure.
Install
django-signal-webhooks on PyPI
pip
pip install django-signal-webhooksuv
uv add django-signal-webhookspoetry
poetry add django-signal-webhooksInstalling django-signal-webhooks
Before you install
Low friction: pure Python wheel with six runtime dependencies (Django, asgiref, httpx, cryptography, django-settings-holder, typing-extensions). Active maintenance with recent commits; last release 652 days ago but repo shows current activity.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install django-signal-webhooks
# In project/settings.py
INSTALLED_APPS = [
...
"signal_webhooks",
]
SIGNAL_WEBHOOKS = {
"HOOKS": {
"django.contrib.auth.models.User": {},
},
}
Requires Django 4.2, 5.0, or 5.1; Python 3.9 or later.
Verify before relying
- Whether webhook retry logic, rate limiting, or failure handling are built-in or require custom implementation.
- Whether the package supports webhook signing/verification beyond basic authentication.
- Performance characteristics when handling many concurrent webhook deliveries.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — Django, asgiref, httpx, cryptography, django-settings-holder, typing-extensions |
| Maintenance | actively maintained — 652 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 124,144/month — #11,884 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_signal_webhooks-0.3.1-py3-none-any.whl
Keywords: django, signal, webhooks
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
django-lifecycleAdds declarative lifecycle hooks to Django…
permissive · top 15,000 on PyPI
django-easy-auditLogs every CRUD operation, authentication…
copyleft · top 15,000 on PyPI
django-admin-data-viewsAdds custom data views to the Django admin…
permissive · top 15,000 on PyPI
discord-webhookSend messages to Discord channels via webhooks,…
permissive · top 5,000 on PyPI
django-waffleDjango Waffle provides feature flags (toggles)…
permissive · top 5,000 on PyPI
slackwebSends messages to Slack channels via incoming…
permissive · top 15,000 on PyPI
dhooks-liteSends messages and embeds to Discord channels…
unclear · top 15,000 on PyPI
pysignalclirestapiPython client library for the Signal Cli REST…
permissive · top 15,000 on PyPI
standardwebhooksProvides webhook payload verification and…
permissive · top 5,000 on PyPI
dj-stripedj-stripe syncs Stripe payment objects into…
permissive · top 15,000 on PyPI