Comment hacker la croissance d’une entreprise avec Python?

Pour hacker la croissance d’une entreprise avec Python, voici quelques packages qui peuvent ĂŞtre utiles pour construire votre programme.

selenium==3.141.0
Django==2.2.5
requests==2.22.0
pillow==6.1.0
imageio==2.5.0

#1 Récupérer et traiter les données de vos leads

selenium == Web Scraper Python

Documentation disponible ici.

Principalement utilisĂ© pour faire des tests unitaires, Selenium permet d’automatiser le navigateur web pour rĂ©cupĂ©rer des donnĂ©es sur les pages souhaitĂ©es. Avec une frĂ©quence d’actions lentes, de nombreux sites internet ne le dĂ©tectent pas. Quelques lignes de codes permettent de rĂ©cupĂ©rer des donnĂ©es comme :

  • full_name
  • company
  • website

dropcontact.io == API Emails Génération

Documentation disponible ici.
Pricing disponible ici.

Le rĂ´le de dropcontact.io est de nettoyer et d’enrichir les donnĂ©es simplement. Par exemple, les donnĂ©es ci-dessous sont envoyĂ©es Ă  l’API :

  • full_name = « Alexis Le Baron »
  • company = « Station Spatiale »
  • website = « stationspatiale.com »

Voici les données récupérées :

{
    "data": [
        {
            "first_name": "Alexis",
            "last_name": "Le Baron",
            "email": [
                {
                    "email": "alexis@stationspatiale.com",
                    "qualification": "nominative@pro"
                }
            ],
            "company": "Station Spatiale",
            "website": "stationspatiale.com",
        }
    ],
    "error": False,
    "success": True
}

#2 Tracker les emails

sendgrid.com == API Email Service

Documentation mail send.
Documentation webhooks des tracking events.
Pricing.

Lors de l’envoi d’emails avec Sendgrid, un système de tracking est assurĂ© pour rĂ©cupĂ©rer des donnĂ©es comme :

  • OPEN : ouverture de l’email
  • CLICK : clic sur un lien dans l’email
  • UNSUBSCRIPTION : se dĂ©sinscrire Ă  l’emailing
  • DELIVERED : email reçu
  • BOUNCE : non reçu
  • etc…

Grâce au tracking, il est possible de voir si un mailing a été efficace ou non. Voici un exemple de données reçues :

[{
    'asm_group_id': 12345,  # Group subscription
    'email': 'alexis@stationspatiale.fr',  # Email target
    'event': 'click',  # Event
    'ip': '11.22.33.444',  # Ip of target
    'customer_id': '8',  # Custom variable
    'useragent': 'Mozilla/5.0 (X11; Linux x86_64)...',
    'timestamp': 1568487847,
    ...
}]

#3 Générer des GIFs dynamiques

pillow && imageio == Image Python

pillow documentation.
imageio documentation.

Voici comment en 3 Ă©tapes ajouter du texte dans un GIF pour personnaliser votre email :

  • Étape 1 : DĂ©couper le GIF de base sur lequel il faut mettre du texte en frames.
from PIL import Image

def cut_frames_gif():
    frame = Image.open('./my.gif')
    c_frame = 0
    while frame:
        frame.save(
            '%s/%s_%s.gif' % ('./gif_frames', 'my_cut', c_frame), 
            'GIF'
        )
        c_frame += 1
        try:
            frame.seek(c_frame)
        except EOFError:
            break
  • Étape 2 : Écrire du texte dans une ou plusieurs frames.
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw

img = Image.open('./gif_frames/my_cut_1.gif')
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(
    'lato-bold.ttf',  # Font
    50  # Font-size
)
draw.text(
    0,  # Pos X
    0,  # Pos Y
    'Station Spatiale',  # Text to write
    (47, 177, 150),  # Color
    font=font
)
img.save('./gif_frames/my_cut_1.gif', 'GIF')
  • Étape 3 : Transformer toutes les frames en GIF
import imageio

imageio.mimsave(
    './my_text.gif', # File result
    [
        './gif_frames/my_cut_0.gif',
        './gif_frames/my_cut_1.gif',
        './gif_frames/my_cut_2.gif',
    ], # All frames
    palettesize=16,  #  Optimize colors
    subrectangles=True,  # Optimize
    duration=[0, 1, 0]  #  Duration 1 sec on frame 2
)

Il faut Ă©viter de gĂ©nĂ©rer des GIFs trop lourds en poids pour amĂ©liorer le chargement de l’image lors de l’ouverture d’un email. Pour cela, il est possible de l’optimiser grâce Ă  plusieurs paramètres de imageio.mimsave(). Voici un exemple gĂ©nĂ©rĂ© avec une variable texte :

Gif représentant un globe terrestre

#4 Administrer et visualiser les donnĂ©es d’emails

django == Framework Web Python

Admin documentation Django.

Le web serveur qu’il faut est Django :

  • RĂ©cupĂ©rer les donnĂ©es des webhooks de sendgrid
  • Administrer et visualiser les donnĂ©es

Avec Django Admin, aucune ligne de code « front-end » n’est nĂ©cessaire grâce Ă  la personnalisation des classes : Model et ModelAdmin.

Le mot de la fin

Grâce à ces outils, vous pouvez entièrement personnaliser et automatiser vos campagnes de mailing.

A lire : ✏️Designer un email marketing