Guides

Personnalisez chaque e-mail : Comment les modèles d'e-mails personnalisés de Firma.dev fonctionnent

Texte alternatif : « Interface au thème sombre affichant un panneau de notifications personnalisable. Le texte indique « Personnalisez tout », avec « Tout » entouré en violet, ce qui évoque la personnalisation. »

Lorsque vous intégrez les signatures électroniques à votre produit, vos clients ne devraient pas savoir quelle plateforme le prend en charge. L'expérience de signature devrait être la vôtre, y compris chaque e-mail automatisé envoyé pendant le processus. Firma.dev vous permet désormais de personnaliser chaque e-mail de notification que la plateforme envoie en votre nom, avec un contrôle total sur les lignes d'objet, les corps HTML et les remplacements par espace de travail.

Vos clients voient votre marque, pas la nôtre

Chaque flux de signature déclenche une série d'e-mails automatisés : l'invitation initiale, la notification du signataire suivant dans un flux séquentiel, les avis d'expiration, les messages d'annulation et les notifications de refus. Avant les modèles d'e-mail personnalisés, tout cela était envoyé avec le texte et la mise en forme par défaut de Firma.dev.

Vous contrôlez désormais les cinq :

Type d'e-mail

Quand il est envoyé

signing_invite

Lorsqu'une demande de signature est envoyée pour la première fois à un destinataire

next_signer

Lorsque c'est au tour du prochain signataire dans un ordre de signature

signing_expired

Lorsqu'une demande de signature expire

signing_cancelled

Lorsqu'un expéditeur annule une demande de signature

signing_declined

Lorsqu'un signataire refuse de signer

Le champ de l'objet (texte brut, 500 caractères max) et le corps (HTML, 50 000 caractères max) sont entièrement personnalisables pour chaque type. Vous pouvez faire correspondre exactement le ton, la mise en page, les couleurs et le texte de votre marque.

Variables dynamiques

Les modèles prennent en charge une syntaxe {{placeholder}} pour injecter des valeurs en temps réel lors de l'envoi. La liste complète des variables disponibles est accessible via GET /email-templates/placeholders, et comprend celles que vous utiliserez le plus :

  • {{signing_link}} — le lien unique du signataire pour accéder au document

  • {{signer_name}} — le nom du destinataire

  • {{document_name}} — le nom de la demande de signature

Un exemple concret du corps d'un signing_invite :

<p>Bonjour {{signer_name}},</p>
<p>
  {{sender_name}} vous a envoyé un document à examiner et signer.
  Veuillez utiliser le lien ci-dessous pour y accéder.
</p>
<p>
  <a href="{{signing_link}}" style="background:#1a1a1a;color:#fff;padding:12px 24px;border-radius:4px;text-decoration:none;">
    Examiner et signer
  </a>
</p>
<p>Ce lien expire dans {{expiration_hours}} heures.</p>
<p>L'équipe {{company_name}}</p>
<p>Bonjour {{signer_name}},</p>
<p>
  {{sender_name}} vous a envoyé un document à examiner et signer.
  Veuillez utiliser le lien ci-dessous pour y accéder.
</p>
<p>
  <a href="{{signing_link}}" style="background:#1a1a1a;color:#fff;padding:12px 24px;border-radius:4px;text-decoration:none;">
    Examiner et signer
  </a>
</p>
<p>Ce lien expire dans {{expiration_hours}} heures.</p>
<p>L'équipe {{company_name}}</p>
<p>Bonjour {{signer_name}},</p>
<p>
  {{sender_name}} vous a envoyé un document à examiner et signer.
  Veuillez utiliser le lien ci-dessous pour y accéder.
</p>
<p>
  <a href="{{signing_link}}" style="background:#1a1a1a;color:#fff;padding:12px 24px;border-radius:4px;text-decoration:none;">
    Examiner et signer
  </a>
</p>
<p>Ce lien expire dans {{expiration_hours}} heures.</p>
<p>L'équipe {{company_name}}</p>

Une remarque de développeur : si le corps de votre modèle n'inclut pas {{signing_link}}, l'API renvoie un avertissement lors de l'enregistrement. L'enregistrement réussit quand même, mais l'avertissement sert à détecter l'erreur avant qu'un signataire ne reçoive un e-mail sans moyen d'accéder à son document.

Modèles au niveau de l'entreprise et de l'espace de travail

Le système de modèles utilise une hiérarchie à trois niveaux : le modèle de l'espace de travail est prioritaire, puis le modèle d'entreprise, puis le modèle par défaut intégré de Firma.dev. Cela vous offre deux schémas d'intégration naturels.

Définir une valeur par défaut à l'échelle de l'entreprise

Définissez une fois votre modèle personnalisé au niveau de l'entreprise et il s'appliquera à chaque espace de travail qui n'a pas son propre remplacement. Le schéma de point de terminaison tiré du journal des modifications de l'API :

PUT /company/email-templates/{email_type}
{
  "subject": "Veuillez signer : {{document_name}}",
  "body": "<p>Bonjour {{signer_name}},</p><p>Veuillez examiner et signer à l'aide de ce lien : {{signing_link}}</p>"
}
PUT /company/email-templates/{email_type}
{
  "subject": "Veuillez signer : {{document_name}}",
  "body": "<p>Bonjour {{signer_name}},</p><p>Veuillez examiner et signer à l'aide de ce lien : {{signing_link}}</p>"
}
PUT /company/email-templates/{email_type}
{
  "subject": "Veuillez signer : {{document_name}}",
  "body": "<p>Bonjour {{signer_name}},</p><p>Veuillez examiner et signer à l'aide de ce lien : {{signing_link}}</p>"
}

Remplacement par espace de travail

Pour les partenaires utilisant le modèle d'espaces de travail clients de Firma.dev, chaque espace de travail peut avoir ses propres modèles d'e-mail. Cet exemple curl provient du guide de marque blanche :

curl -X PUT https://api.firma.dev/functions/v1/signing-request-api/workspace/{workspace_id}/email-templates/signing_invite \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Action requise : veuillez signer {{document_name}}",
    "body": "<p>Bonjour {{signer_name}},</p><p>{{sender_name}} a demandé votre signature sur {{document_name}}.</p><p><a href=\"{{signing_link}}\">Signer maintenant</a></p><p>— L'équipe {{workspace_name}}</p>"
  }'
curl -X PUT https://api.firma.dev/functions/v1/signing-request-api/workspace/{workspace_id}/email-templates/signing_invite \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Action requise : veuillez signer {{document_name}}",
    "body": "<p>Bonjour {{signer_name}},</p><p>{{sender_name}} a demandé votre signature sur {{document_name}}.</p><p><a href=\"{{signing_link}}\">Signer maintenant</a></p><p>— L'équipe {{workspace_name}}</p>"
  }'
curl -X PUT https://api.firma.dev/functions/v1/signing-request-api/workspace/{workspace_id}/email-templates/signing_invite \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Action requise : veuillez signer {{document_name}}",
    "body": "<p>Bonjour {{signer_name}},</p><p>{{sender_name}} a demandé votre signature sur {{document_name}}.</p><p><a href=\"{{signing_link}}\">Signer maintenant</a></p><p>— L'équipe {{workspace_name}}</p>"
  }'

Un espace de travail servant des clients en Allemagne pourrait utiliser des modèles en allemand avec la marque spécifique de ce client, tandis qu'un autre espace de travail utilise les valeurs par défaut de votre entreprise.

La suppression d'un modèle d'espace de travail rétablit la valeur par défaut au niveau de l'entreprise pour cet espace. La suppression du modèle d'entreprise rétablit le modèle intégré de Firma.dev. La chaîne de repli a toujours quelque chose sur quoi se rabattre.

Référence complète de l'API

Point de terminaison

Description

GET /company/email-templates

Lister tous les modèles au niveau de l'entreprise

PUT /company/email-templates/{email_type}

Créer ou mettre à jour un modèle d'entreprise

DELETE /company/email-templates/{email_type}

Supprimer un modèle d'entreprise

GET /workspace/{id}/email-templates

Lister tous les modèles d'espace de travail

GET /workspace/{id}/email-templates/{email_type}

Obtenir un modèle d'espace de travail spécifique

PUT /workspace/{id}/email-templates/{email_type}

Créer ou mettre à jour un modèle d'espace de travail

DELETE /workspace/{id}/email-templates/{email_type}

Supprimer un modèle d'espace de travail

GET /email-templates/defaults/{language}

Obtenir les valeurs par défaut intégrées pour une langue

GET /email-templates/placeholders

Obtenir toutes les variables disponibles

Le point de terminaison GET /email-templates/defaults/{language} est particulièrement utile comme point de départ : récupérez le modèle intégré pour votre langue cible, personnalisez-le, puis enregistrez-le à nouveau. Pas besoin de rédiger le texte des e-mails à partir de zéro.

Pour commencer

Les modèles d'e-mail personnalisés sont disponibles à partir de l'API v1.8.0 sans aucun changement cassant. Si vous êtes déjà intégré, vous pouvez commencer à personnaliser les e-mails dès aujourd'hui sans toucher à la logique existante des demandes de signature.

Commencez gratuitement avec Firma.dev, aucune carte de crédit requise. Toutes les demandes de signature coûtent 0.029 par enveloppe, sans minimum mensuel.

  1. Titre

Image de fond

Prêt à ajouter des signatures électroniques à votre application ?

Commencez gratuitement. Aucune carte de crédit requise. Payez seulement 0,029 € par enveloppe lorsque vous êtes prêt à passer en direct.

Image de fond

Prêt à ajouter des signatures électroniques à votre application ?

Commencez gratuitement. Aucune carte de crédit requise. Payez seulement 0,029 € par enveloppe lorsque vous êtes prêt à passer en direct.

Image de fond

Prêt à ajouter des signatures électroniques à votre application ?

Commencez gratuitement. Aucune carte de crédit requise. Payez seulement 0,029 € par enveloppe lorsque vous êtes prêt à passer en direct.