Aller au contenu principal

Intégration de Mailjet avec OmniCRM

OmniCRM s'intègre à Mailjet pour gérer toute la communication par e-mail avec les clients et le personnel, garantissant une livraison d'e-mails professionnelle, de marque et fiable pour les e-mails transactionnels et les campagnes marketing.

Vue d'ensemble

L'intégration de Mailjet fournit :

  • E-mails transactionnels automatisés - Réinitialisations de mot de passe, factures, e-mails de bienvenue, notifications
  • Synchronisation des contacts - Contacts clients automatiquement synchronisés avec Mailjet pour les campagnes
  • Modèles d'e-mails - Plus de 10 types d'e-mails préconfigurés avec des modèles Mailjet personnalisables
  • Campagnes marketing - Campagnes par e-mail segmentées basées sur les données clients
  • Livraison fiable - Infrastructure d'e-mail professionnelle avec suivi et analyses

Configuration

Mailjet est configuré dans OmniCRM-API/crm_config.yaml sous la section mailjet.

Configuration de base

mailjet:
api_key: your_mailjet_api_key
api_secret: your_mailjet_api_secret

Obtention des identifiants API :

  1. Créez un compte sur <https://www.mailjet.com>
  2. Accédez à Paramètres du compte → Clés API
  3. Copiez Clé API et Clé secrète
  4. Collez dans crm_config.yaml

Configuration des modèles d'e-mails

OmniCRM utilise 10 types de modèles d'e-mails distincts pour les communications automatisées. Chaque modèle est configuré avec :

  • from_email - Adresse e-mail de l'expéditeur
  • from_name - Nom d'affichage de l'expéditeur
  • template_id - ID du modèle Mailjet (numérique)
  • subject - Ligne de sujet de l'e-mail

Types de modèles et configuration

E-mail de bienvenue client

Envoyé lorsqu'un nouveau compte client est créé.

api_crmCommunicationCustomerWelcome:
from_email: "support@yourcompany.com"
from_name: "Support de Votre Entreprise"
template_id: 5977509
subject: "Bienvenue chez Votre Entreprise"

Quand il est envoyé :

  • Un nouveau client s'inscrit via le portail d'auto-assistance
  • Le personnel crée un nouveau compte client
  • Le client active le service pour la première fois

Variables de modèle disponibles :

  • {{ var:customer_name }} - Nom complet du client
  • {{ var:email }} - Adresse e-mail du client
  • {{ var:company_name }} - Nom de votre entreprise
  • {{ var:login_url }} - Lien vers le portail d'auto-assistance
  • {{ var:support_url }} - Lien vers la page de support

E-mail de facture client

Envoyé lorsqu'une facture est générée et prête à être payée.

api_crmCommunicationCustomerInvoice:
from_email: "billing@yourcompany.com"
from_name: "Facturation de Votre Entreprise"
template_id: 6759851
subject: "Votre Facture - "

Quand il est envoyé :

  • Facture automatiquement générée pour la période de facturation
  • Facture manuelle créée par le personnel
  • Le client demande une copie de la facture

Variables de modèle disponibles :

  • {{ var:customer_name }} - Nom complet du client
  • {{ var:invoice_number }} - ID/numéro de la facture
  • {{ var:invoice_date }} - Date d'émission de la facture
  • {{ var:due_date }} - Date d'échéance du paiement
  • {{ var:total_amount }} - Montant total dû
  • {{ var:invoice_url }} - Lien pour voir/télécharger le PDF de la facture
  • {{ var:pay_url }} - Lien pour payer la facture en ligne

Pièce jointe de la facture :

Le PDF de la facture est automatiquement joint à l'e-mail.

Rappel de facture client

Envoyé pour rappeler aux clients les factures impayées.

api_crmCommunicationCustomerInvoiceReminder:
from_email: "billing@yourcompany.com"
from_name: "Facturation de Votre Entreprise"
template_id: 6759852
subject: "Rappel de paiement - Facture en retard"

Quand il est envoyé :

  • La facture est en retard de X jours (configurable)
  • Rappel manuel déclenché par le personnel
  • Flux de rappel automatisé (si configuré)

Variables de modèle disponibles :

  • {{ var:customer_name }}
  • {{ var:invoice_number }}
  • {{ var:due_date }}
  • {{ var:days_overdue }}
  • {{ var:total_amount }}
  • {{ var:pay_url }}

E-mail de bienvenue utilisateur du personnel

Envoyé lorsqu'un nouveau compte utilisateur du personnel est créé.

api_crmCommunicationUserWelcome:
from_email: "admin@yourcompany.com"
from_name: "Admin de Votre Entreprise"
template_id: 5977510
subject: "Bienvenue dans l'Équipe"

Quand il est envoyé :

  • L'administrateur crée un nouvel utilisateur du personnel
  • Le bouton "Envoyer un e-mail de bienvenue" est cliqué dans la gestion des utilisateurs

Variables de modèle disponibles :

  • {{ var:user_name }} - Nom complet de l'utilisateur du personnel
  • {{ var:email }} - E-mail de l'utilisateur du personnel
  • {{ var:role }} - Rôle(s) attribué(s)
  • {{ var:login_url }} - Lien vers la connexion du portail administrateur
  • {{ var:temp_password }} - Mot de passe temporaire (si applicable)
  • {{ var:support_email }} - Contact de support informatique

Réinitialisation du mot de passe utilisateur

Envoyé lorsqu'un utilisateur demande à réinitialiser son mot de passe.

api_crmCommunicationUserPasswordReset:
from_email: "noreply@yourcompany.com"
from_name: "Sécurité de Votre Entreprise"
template_id: 5977511
subject: "Demande de réinitialisation de mot de passe"

Quand il est envoyé :

  • L'utilisateur clique sur "Mot de passe oublié" sur la page de connexion
  • L'utilisateur soumet une demande de réinitialisation de mot de passe

Variables de modèle disponibles :

  • {{ var:user_name }}
  • {{ var:reset_url }} - Lien de réinitialisation de mot de passe limité dans le temps (généralement 1 heure)
  • {{ var:expiry_time }} - Quand le lien de réinitialisation expire

Remarque de sécurité :

Les liens de réinitialisation expirent après la période de temps configurée (par défaut 1 heure).

Réinitialisation de mot de passe réussie

Envoyé pour confirmer que le mot de passe a été changé avec succès.

api_crmCommunicationUserPasswordResetSuccess:
from_email: "noreply@yourcompany.com"
from_name: "Sécurité de Votre Entreprise"
template_id: 5977512
subject: "Mot de passe changé avec succès"

Quand il est envoyé :

  • L'utilisateur termine avec succès la réinitialisation du mot de passe
  • Immédiatement après que le nouveau mot de passe est défini

Variables de modèle disponibles :

  • {{ var:user_name }}
  • {{ var:change_date }} - Date/heure à laquelle le mot de passe a été changé
  • {{ var:ip_address }} - Adresse IP du changement (facultatif)
  • {{ var:support_email }} - Contact si le changement était non autorisé

Changement de mot de passe utilisateur

Envoyé lorsqu'un utilisateur change son mot de passe depuis les paramètres.

api_crmCommunicationUserPasswordChange:
from_email: "noreply@yourcompany.com"
from_name: "Sécurité de Votre Entreprise"
template_id: 5977513
subject: "Notification de changement de mot de passe"

Quand il est envoyé :

  • L'utilisateur change le mot de passe depuis son profil/paramètres
  • L'administrateur réinitialise le mot de passe de l'utilisateur

Variables de modèle disponibles :

  • {{ var:user_name }}
  • {{ var:change_date }}
  • {{ var:changed_by }} - "Soit" ou nom de l'administrateur
  • {{ var:support_email }}

Vérification de l'e-mail

Envoyé pour vérifier l'adresse e-mail d'un utilisateur.

api_crmCommunicationEmailVerification:
from_email: "noreply@yourcompany.com"
from_name: "Votre Entreprise"
template_id: 5977514
subject: "Vérifiez votre adresse e-mail"

Quand il est envoyé :

  • Nouveau compte créé (client ou personnel)
  • L'utilisateur change d'adresse e-mail
  • Vérification de l'e-mail requise pour la sécurité

Variables de modèle disponibles :

  • {{ var:user_name }}
  • {{ var:verification_url }} - Lien pour vérifier l'e-mail
  • {{ var:verification_code }} - Code à entrer manuellement (alternative au lien)

Notification d'expiration de solde

Envoyé lorsqu'un solde/une allocation de service d'un client a expiré.

api_crmCommunicationsBalanceExpired:
from_email: "support@yourcompany.com"
from_name: "Support de Votre Entreprise"
template_id: 5977515
subject: "Votre solde de service a expiré"

Quand il est envoyé :

  • Le solde prépayé expire
  • La date de renouvellement de l'allocation mensuelle est dépassée
  • La date d'expiration du service est atteinte

Variables de modèle disponibles :

  • {{ var:customer_name }}
  • {{ var:service_name }} - Nom du service expiré
  • {{ var:expiry_date }}
  • {{ var:balance_type }} - "Données", "Voix", "Monétaire", etc.
  • {{ var:renewal_url }} - Lien pour renouveler/approvisionner

Alerte de solde bas

Envoyé lorsqu'un solde de client tombe en dessous d'un seuil configuré.

api_crmCommunicationsBalanceLow:
from_email: "support@yourcompany.com"
from_name: "Support de Votre Entreprise"
template_id: 5977516
subject: "Alerte de solde bas"

Quand il est envoyé :

  • Le solde tombe en dessous du seuil (par exemple, 20 % restant)
  • Configuré dans le plan de service ou OCS
  • La surveillance en temps réel déclenche l'alerte

Variables de modèle disponibles :

  • {{ var:customer_name }}
  • {{ var:service_name }}
  • {{ var:current_balance }}
  • {{ var:threshold }}
  • {{ var:balance_type }}
  • {{ var:topup_url }} - Lien pour ajouter du solde

Création de modèles d'e-mails Mailjet

Pour chaque type d'e-mail, vous devez créer un modèle correspondant dans Mailjet.

Étape 1 : Créer un modèle dans Mailjet

  1. Connectez-vous au tableau de bord Mailjet
  2. Accédez à Modèles d'e-mails → Modèles transactionnels
  3. Cliquez sur Créer un nouveau modèle
  4. Choisissez Codez votre propre modèle (pour les utilisateurs avancés) ou Utilisez le générateur de modèles

Étape 2 : Concevoir le modèle

Utilisez le générateur par glisser-déposer de Mailjet ou l'éditeur HTML pour concevoir votre e-mail.

Éléments essentiels :

  • En-tête - Logo et branding de l'entreprise
  • Salutation - Personnalisée avec {{ var:customer_name }} ou {{ var:user_name }}
  • Contenu - Corps principal du message
  • Variables - Insérez les variables de modèle de la liste ci-dessus
  • Appel à l'action - Boutons/liens pour les actions des utilisateurs
  • Pied de page - Lien de désinscription, adresse de l'entreprise, contact de support

Exemple de modèle (Réinitialisation de mot de passe) :

<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.button { background-color: #4CAF50; color: white; padding: 14px 28px; }
</style>
</head>
<body>
<img src="https://yourcompany.com/logo.png" alt="Logo" width="200">

<h2>Demande de réinitialisation de mot de passe</h2>

<p>Bonjour {{ var:user_name }},</p>

<p>Nous avons reçu une demande pour réinitialiser votre mot de passe. Cliquez sur le bouton ci-dessous pour créer un nouveau mot de passe :</p>

<a href="{{ var:reset_url }}" class="button">Réinitialiser le mot de passe</a>

<p>Ce lien expire dans {{ var:expiry_time }}.</p>

<p>Si vous n'avez pas demandé cela, veuillez ignorer cet e-mail.</p>

<hr>
<p style="font-size: 12px; color: #666;">
Votre Entreprise | support@yourcompany.com<br/>
123 Business St, City, Country
</p>
</body>
</html>

Étape 3 : Obtenir l'ID du modèle

  1. Enregistrez le modèle dans Mailjet
  2. Notez l'ID du modèle (numérique, par exemple, 5977509)
  3. Copiez cet ID dans crm_config.yaml

Étape 4 : Tester le modèle

  1. Dans Mailjet, utilisez la fonction E-mail de test
  2. Fournissez des valeurs d'exemple pour toutes les variables
  3. Envoyez un e-mail de test à vous-même
  4. Vérifiez le formatage, les liens et le branding

Étape 5 : Configurer dans OmniCRM

Ajoutez la configuration du modèle à crm_config.yaml :

mailjet:
api_key: your_api_key
api_secret: your_secret

api_crmCommunicationUserPasswordReset:
from_email: "noreply@yourcompany.com"
from_name: "Sécurité de Votre Entreprise"
template_id: 5977511
subject: "Demande de réinitialisation de mot de passe"

Redémarrez l'API OmniCRM pour que les modifications prennent effet :

cd OmniCRM-API
sudo systemctl restart omnicrm-api

Synchronisation des contacts

Tous les contacts clients dans OmniCRM sont automatiquement synchronisés avec Mailjet.

Ce qui est synchronisé :

  • Nom du contact
  • Adresse e-mail
  • Type de contact (facturation, technique, etc.)
  • Localisation du client
  • Champs personnalisés

Fréquence de synchronisation :

Les contacts se synchronisent en temps réel lorsque :

  • Un nouveau client est créé
  • Un contact est ajouté/mis à jour
  • Les détails du client sont modifiés

Dépannage

E-mail non envoyé

  • Cause : Identifiants API invalides, compte Mailjet suspendu ou ID de modèle incorrect
  • Solution :
    • Vérifiez api_key et api_secret dans crm_config.yaml
    • Vérifiez l'état du compte Mailjet et la facturation
    • Vérifiez que l'ID du modèle existe dans Mailjet
    • Vérifiez les journaux API pour les erreurs

Variables de modèle non substituées

  • Cause : Mismatch de nom de variable ou données manquantes dans OmniCRM
  • Solution :
    • Vérifiez que les noms de variables correspondent exactement (sensible à la casse)
    • Utilisez le format {{ var:variable_name }}
    • Vérifiez qu'OmniCRM transmet les données de variable dans l'appel API
    • Testez avec des données d'exemple dans Mailjet

PDF de facture non attaché

  • Cause : Échec de génération de PDF ou taille de fichier trop grande
  • Solution :
    • Vérifiez les journaux de génération de factures
    • Vérifiez que le modèle de facture se rend correctement
    • Assurez-vous que le PDF est inférieur à 15 Mo (limite Mailjet)
    • Testez la génération de PDF de facture séparément

Contacts non synchronisés avec Mailjet

  • Cause : Limite de taux API dépassée ou service de synchronisation non en cours d'exécution
  • Solution :
    • Vérifiez les limites de taux API Mailjet (200 appels/minute)
    • Vérifiez que le service OmniCRM-API est en cours d'exécution
    • Examinez les journaux de synchronisation pour les erreurs
    • Déclenchez manuellement la synchronisation pour les tests

Documentation connexe

  • administration_configuration - Référence complète de configuration de Mailjet
  • payments_invoices - Génération de factures et livraison d'e-mails
  • authentication_flows - Réinitialisation de mot de passe et e-mails de vérification
  • customer_care - E-mails de bienvenue du portail d'auto-assistance

Lecture complémentaire