Skip to main content

Sendgrid Mail tracking for Django, store sendgrid tracking info into django models.

Project description

Django Sendgrid Tracking

Travis codecov Python Versions PyPI Version MIT licensed Documentation Status

Sendgrid Mail tracking for Django, store sendgrid tracking info into django models.

This library allows to track the email sent using Sendgrid by storing information collected from a webhook into django models.

Table of Contents



  • Python version 3.6+

  • Sendgrid account and API configuration

Environment Variables

This library uses django-sendgrid-v5 which requires the following in your

EMAIL_BACKEND = "sendgrid_backend.SendgridBackend"

You can find more information and other settings here

Install package

Install the library with pip

$ pip install django-sendgrid-tracking

Quick Start

Below the steps to start using django-sendgrid-tracking in your django project using your sendgrid account.

Enable django

To enable django_sendgrid_tracking in your project you to add it to INSTALLED_APPS in your projects file


Run django migrate to create django-sendgrid-tracking related models

$ python migrate

In addition to that you need to expose for sendgrid the webhook endpoint

from django.conf.urls import url
from django_sendgrid_tracking import views

urlpatterns = [
    url(r'sendgrid_webhook', views.event_hooks, name='sendgrid_webhook'),

Enable sendgrid

Now you need to provide this endpoint URL to Sendgrid from the console (Setting -> Mail Settings -> Event WebHook):


In this case your webhook would be available at N.B. remember to append a slash at the end of it since it will be a POST request

Use cases

The most simple use case would be to analyse internal statics or troubleshoot pitfall in the application flow. As an example we can see for which reason a particular user didn’t confirm the email address


sent_email = SentMail.object.filter(
# True the user opened the email
# False the user didn't click on the confirmation link
# Maybe something is wrong with the content of the email?

Another use case is in the case of referral program we can show the user the status of the sent invitation



(example from


django-sendgrid-tracking is a library extracted from different website implemented by the author in django

If you’ve instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!

Any contribution is appreciated!! (see CONTRIBUTING)


The MIT License (MIT)

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

django-sendgrid-tracking-1.0.6.tar.gz (12.2 kB view hashes)

Uploaded Source

Built Distribution

django_sendgrid_tracking-1.0.6-py3-none-any.whl (16.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page