Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Des emails qui arrivent à tous les coups avec Sendgrid

— Article en partenariat avec Twilio —

Qu’est-ce que Sendgrid ?

Sendgrid est une suite d’outils et de services proposés par Twilio qui permet d’envoyer des emails, de créer des scénarios, des newsletters et d’automatiser tout ce qui concerne l’envoi de messages.

Ainsi, plutôt que de configurer votre propre serveur pour envoyer des emails à partir de vos applications web, vous pouvez vous reposer sur Sendgrid pour faire le job. Les avantages sont nombreux : fiabilité, facilité d’implémentation, meilleure déliverabilité de vos messages et surtout vous ne risquez plus de vous faire blacklister votre serveur pour envoi de spams.

Sendgrid est un outil qui peut s’utiliser comme ça, sans compétences techniques grâce à une myriade d’outils no-code, mais il est également très simple d’utiliser les APIs ou les bibliothèques proposées par Sendgrid pour justement interagir avec le service 100% en code, peu importe le langage.

Sendgrid vous permet également de lier votre propre nom de domaine pour que vos adresses d’expéditeurs soient à vos couleurs, mais ce n’est pas une étape obligatoire.

Créer des campagnes en no code

Grâce à Sendgrid, vous pourrez bien sûr faire de l’envoi simple de newsletter sans rien à voir à coder ou à designer, simplement en choisissant un thème et en le modifiant avant de l’envoyer à votre liste de contact.

Mais la valeur ajoutée la plus forte du service réside dans la section « Automatisations » (Automations en anglais) qui permet de créer facilement en remplissant quelques formulaires, tout un scénario à chaque nouvelle personne qui vous donne son adresse email.

Par exemple, vous rentrez un nouvel abonné. Immédiatement vous lui envoyez un email de bienvenue. Puis quelques jours plus tard, vous renvoyez un message, et quelques jours ou semaines encore plus tard, vous pouvez lui envoyer d’autres messages…etc. L’idée c’est de préparer toute une suite d’emails qui sera envoyée au fur et à mesure du temps à votre nouvel inscrit. C’est très pratique pour fidéliser et communiquer de manière progressive avec vos abonnés sans avoir à envoyer la même chose à tout le monde.

Grâce à Sendgrid, vous pouvez mettre en place tout cela rapidement directement via leur site, sans avoir de compétences techniques.

Créer une campagne avec du code

Créer des campagnes avec du code c’est également très simple puisque le site Sendgrid va vous guider dans l’utilisation de ces APIs. Il suffit de choisir d’utiliser la web API (ou le SMTP relay) pour ensuite être guidé selon le langage choisi : Python, Ruby, JavaScript, Go, PHP…etc.

Ensuite, Sendgrid vous guidera étape par étape, de la création d’une clé API, à l’implémentation du code et vous permettra de valider que votre premier email de test a été correctement envoyé et que tout est OK.

Une fois cette première étape franchie, vous pourrez alors tout faire avec du code : Créer des listes de contacts, les alimenter, supprimer des contacts, gérer des scénarios d’envoi d’emails, créer et programmer des newsletters…etc. C’est le bonheur, car c’est simple à intégrer et la documentation est très riche.

Première connexion à Sendgrid avec Python

Avant toute chose, il faut installer la lib sendgrid comme ceci :

pip3 install sendgrid

Ensuite vous devez vous créer une clé API en vous rendant sur la page suivante. Vous pouvez régler les autorisations de cette clé pour qu’elle vous donne par exemple l’accès aux fonctionnalités marketing (création de listes…etc.), à l’envoi de mail, à l’utilisation des templates…etc. A vous de faire vos réglages selon ce dont vous avez envie.

À partir de là, il ne vous reste plus qu’à coder. Pour se brancher à l’API, il vous suffit donc d’utiliser le code suivant :

from sendgrid import SendGridAPIClient

sg = SendGridAPIClient('MA_CLÉ_API')

Par exemple, si je veux créer une nouvelle liste de contact, je peux ajouter en dessous le code suivant :

#create a list

data = {
    "name": "MA LISTE"
}
response = sg.client.marketing.lists.post(
    request_body=data
)
print(response.status_code)
print(response.body)
print(response.headers)

Et elle sera alors visible chez Sendgrid et je pourrais y ajouter des contacts.

Voici un code pour ajouter un contact dans ma nouvelle liste. J’ai récupéré son ID auparavant :

from sendgrid import SendGridAPIClient

sg = SendGridAPIClient('MA_CLÉ_API')

data = {
    "list_ids": ["a44be4a3-5cae-43f2-8ce5-cc32a042e54f"],
    "contacts": [
        {
            "email": "[email protected]",
            "first_name": "Korben",
            "last_name": "Manu",
            "country": "France"
        }
    ]
}

response = sg.client.marketing.contacts.put(request_body=data)

print(response.status_code)
print(response.body)
print(response.headers)

Ce qui est cool, c’est que si vous avez créé des champs personnalisés pour vos contacts, vous pouvez également les remplir directement via le code avec le champ « custom_fields ».

L’importation de contact peut aussi se faire en codant l’importation d’un CSV.

Si vous rencontrez des erreurs et que vous voulez obtenir un peu plus d’infos de la part de Sendgrid, je vous recommande d’ajouter l’importe suivant :

from python_http_client.exceptions import HTTPError

Et d’encapsuler le lancement de la requête comme ceci

try:
    response = sg.client.marketing.contacts.put(request_body=data)
except HTTPError as e:
    print(e.to_dict)

Alors évidemment, je ne l’ai pas précisé, mais vous pouvez ainsi ajouter, modifier, supprimer des contacts, leur envoyer des messages, créer, modifier ou supprimer des listes et j’en passe.

Il est également possible d’envoyer des emails directement à vos listes et je vais vous montrer comment.

Un envoi d’email avec Sendgrid en Python

Pour créer un envoi de mail, il suffit de le forger en respectant les spécifications de l’API.

On spécifie ainsi dans l’objet data, l’ensemble des informations du mail, à savoir l’expéditeur (sender_id), le sujet, le contenu HTML et texte, le lien pour se désabonner ou encore la liste à laquelle envoyer le message…etc. Tout est bien sûr expliqué dans la doc de l’API.

from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

sg = SendGridAPIClient('MA_CLÉ_API')

data = {
    "name": "Ma newsletter 2",
    "status": "active",
        "email_config": {
            "sender_id": 4441081,
            "subject": "Quoi de neuf ?",
            "html_content": "<html><body><p>Cette semaine voici les nouveaux sujets...</p></body></html>",
            "plain_content": "Cette semaine voici les nouveaux sujets...",
            "custom_unsubscribe_url": "http://www.example.com/unsubscribe",
        },
    
    "send_to": {
        "list_ids": [
            "a44be4a3-5cae-43f2-8ce5-cc32a042e54f"
        ],    
    },
}

try:
    response = sg.client.marketing.singlesends.post(request_body=data)
except HTTPError as e:
    print(e.to_dict)
else:
    print(response.status_code)
    print(response.body)
    print(response.headers)

Le coût de Sendgrid

Au niveau des coûts de Sendgrid, ça dépend de votre consommation d’emails, mais la bonne nouvelle c’est qu’en dessous de 2000 contacts et de 6000 emails envoyés par mois c’est totalement gratuit ! C’est donc super pour essayer et commencer à monter un service autour de ça, pour ensuite basculer sur une option payante dès que l’audience est là.

D’une manière générale, en comparant avec les prix de la concurrence, le prix au mail est assez équivalent à ce qu’on peut trouver ailleurs. Par contre, la vraie différence réside dans les outils et les services qui sont proposés sur Sendgrid. Avec Sendgrid, que vous soyez développeur confirmé ou simple amateur, vous pouvez en l’espace d’une journée mettre en place toute une automatisation d’emails ou créer votre newsletter.

C’est à portée de tous !

Découvrir Sendgrid


Les articles du moment