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 :
- Créez un compte sur <https://www.mailjet.com>
- Accédez à Paramètres du compte → Clés API
- Copiez Clé API et Clé secrète
- 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
- Connectez-vous au tableau de bord Mailjet
- Accédez à Modèles d'e-mails → Modèles transactionnels
- Cliquez sur Créer un nouveau modèle
- 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
- Enregistrez le modèle dans Mailjet
- Notez l'ID du modèle (numérique, par exemple,
5977509) - Copiez cet ID dans
crm_config.yaml
Étape 4 : Tester le modèle
- Dans Mailjet, utilisez la fonction E-mail de test
- Fournissez des valeurs d'exemple pour toutes les variables
- Envoyez un e-mail de test à vous-même
- 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_keyetapi_secretdanscrm_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
- Vérifiez
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 Mailjetpayments_invoices- Génération de factures et livraison d'e-mailsauthentication_flows- Réinitialisation de mot de passe et e-mails de vérificationcustomer_care- E-mails de bienvenue du portail d'auto-assistance
Lecture complémentaire
- Documentation Mailjet : <https://dev.mailjet.com/>
- Référence API Mailjet : <https://dev.mailjet.com/email/reference/>