TrueSign Gen — Génération de documents
TrueSign Gen fabrique le document avant de le faire signer : un modèle contenant des balises est fusionné avec les données Salesforce, converti en PDF, puis — en option — envoyé pour signature. Le tout en un clic.
Deux façons de fournir le modèle, au choix dans l'onglet Content :
- Éditeur intégré (texte → PDF) — vous écrivez le document directement dans TrueSign et insérez les balises avec le Tag Builder. Aucun fichier Word n'est nécessaire.
- Word / import de fichier — vous téléversez un
.docxpréparé de votre côté, utile quand la mise en page est complexe ou imposée.
Le bouton Aperçu avec des données rend le document sur un enregistrement réel de votre org, avec le même moteur que la génération finale — et sans rien enregistrer.
Un commercial ouvre l'opportunité, clique « Générer et signer le devis » : les lignes de produits, les prix et l'adresse sont résolus depuis le modèle Word, le PDF est produit et l'envoi part — une seule action.
Aucune donnée de l'enregistrement ne quitte Salesforce pour être fusionnée : le moteur tourne dans votre org, et la conversion PDF aussi. C'est la différence d'architecture la plus importante avec DocuSign Gen, qui expédie le XML de vos données vers ses serveurs. Conséquences directes : rien à déclarer au titre d'un transfert, aucune panne fournisseur possible sur la génération, et aucun plafond de débit (DocuSign limite à 100 générations par 10 minutes).
1. Référence des balises
Toutes les balises s'écrivent entre doubles accolades, directement dans le document Word.
Valeurs
| Balise | Effet |
|---|---|
{{Champ}} | Un champ de l'enregistrement source |
{{Objet.Champ}} | Un champ d'un enregistrement lié — {{Account.Name}} |
{{A.B.C.Champ}} | Traversée de relations, jusqu'à 5 niveaux |
{{alias.Champ}} | Un champ d'une liste liée, via son alias (§3) |
Une balise qui ne se résout pas est retirée du document — elle ne laisse jamais {{Champ}} en clair dans un contrat. Un champ que l'utilisateur n'a pas le droit de lire rend vide, sans faire échouer la génération.
Conditions
{{if Montant > 10000}}
Cette commande relève de la procédure grands comptes.
{{else}}
Traitement standard.
{{endif}}
| Élément | Détail |
|---|---|
| Opérateurs | == != > < >= <= contains |
| Combinaisons | and / or — le texte entre guillemets n'est jamais coupé ('Recherche and Développement' reste entier) |
{{else}} | Pris en charge — inutile d'écrire deux conditions miroir |
| Casse | Insensible par défaut |
| Imbrication | Jusqu'à 10 niveaux |
Boucles
{{for each lignes}}
{{lignes.Produit}} — {{lignes.Quantite}} × {{lignes.PrixUnitaire | currency}}
{{end each}}
Les boucles s'imbriquent, et les conditions à l'intérieur sont évaluées ligne par ligne : {{if lignes.Prix > 15}} ne s'affiche que sur les lignes concernées.
Lignes de tableau répétées
C'est le cas d'usage n°1 d'un devis ou d'une annexe produits :
- placez
{{for each lignes}}dans la première cellule de la ligne du tableau ; - placez
{{end each}}dans la dernière cellule de la même ligne ; - TrueSign clone la ligne entière, une par enregistrement.
Si les deux balises sont dans une seule cellule, le comportement reste celui d'une boucle de texte classique — vos modèles existants ne changent pas de rendu.
Liste vide ? La ligne disparaît. Si c'était la seule ligne du tableau, le tableau entier est retiré (un tableau sans ligne rend le fichier illisible par Word).
Mise en forme
| Balise | Résultat |
|---|---|
{{Date | date:"dd/MM/yyyy"}} | Date au format choisi |
{{Montant | currency}} | 24 500,00 € — séparateurs selon la locale du modèle |
{{Montant | currency:"$"}} | Symbole imposé |
{{Nombre | number}} / {{Nombre | number:2}} | Nombre groupé, sans symbole, décimales au choix |
Images
{{image Logo__c}} {{image Logo__c:6x2}}
Le champ contient l'identifiant d'un fichier Salesforce. L'image est insérée dans le document (dimensions en pouces, optionnelles). Modèles Word uniquement. Un fichier que l'utilisateur n'a pas le droit de lire n'est pas inséré.
Formules Salesforce
{{formula: IF(Amount > 50000, "Remise grands comptes", "Tarif standard")}}
{{formula: TEXT(YEAR(CloseDate)) & "-" & Account.Name}}
C'est le moteur de formule Salesforce natif qui évalue l'expression : fonctions, calculs, conditions, dates, texte. Les champs référencés sont ajoutés automatiquement à la requête — aucun coût supplémentaire.
Les deux produits de génération de DocuSign excluent explicitement les formules et les calculs dans le document ; leur contournement officiel est « créez un champ formule dans Salesforce et masquez-le du layout ». Ici, la formule vit dans le modèle.
2. Créer un modèle Gen
TrueSign → Gen Templates → Nouveau :
- Objet source — l'objet Salesforce d'où partiront les générations.
- Document Word — le .docx avec ses balises.
- Listes liées (§3) — les alias utilisés par les boucles.
- Options :
| Option | Effet |
|---|---|
| Nom du fichier | Accepte des balises de fusion — Devis {{Account.Name}} {{CloseDate}} |
| Suffixe | Ajouté au nom (date, nom de l'objet source) |
| Locale monétaire | Format des montants pour ce modèle |
| Destination | Fichiers de l'enregistrement, bibliothèque, ou les deux |
| Modèle d'enveloppe lié | Pour enchaîner génération → signature |
| Lancement automatique | La génération part au clic, sans écran intermédiaire |
| Aperçu avant envoi | L'utilisateur vérifie le PDF résolu avant de confirmer |
| Envoi pour signature | Désactivable — Gen produit alors seulement le document |
| Actif | Coupe-circuit réel : un modèle inactif ne génère pas, même appelé par un Flow |
L'aperçu rejoue le vrai pipeline, y compris avec les listes liées que vous venez de configurer sans les avoir enregistrées : ce que vous voyez est ce que le document sera.
Générer depuis un enregistrement d'un autre objet que l'objet source est refusé explicitement, avec un message — plutôt que de produire un document entièrement vide sans rien dire.
3. Listes liées — filtre, tri, plafond
Une liste liée porte un alias (utilisé par {{for each alias}}) et trois réglages qui la maîtrisent :
| Réglage | Exemple | Détail |
|---|---|---|
| Filtre | Title = 'CEO' AND IsActive = true | Opérateurs = != < <= > >= LIKE IN NOT IN, combinables par AND / OR |
| Tri | LastName ASC NULLS LAST | Champs triables uniquement |
| Plafond | 200 | De 1 à 2000 — 2000 par défaut |
Les valeurs null et les littéraux de date Salesforce (TODAY, LAST_N_DAYS:30…) sont acceptés dans les filtres.
Vous écrivez un mini-langage que TrueSign analyse et reconstruit : chaque nom de champ est revalidé, chaque valeur est typée puis liée à la requête. Une tentative d'injection est refusée. C'est la différence avec DocuSign, qui fait saisir du SOQL directement.
Une clause invalide fait échouer la génération avec un message — jamais une annexe silencieusement non filtrée.
Le plafond n'est pas une coquetterie : une liste de 50 000 lignes sans limite épuise les ressources de la transaction.
4. Sortie et automatisation
- Word, PDF, CSV ou HTML. La conversion PDF se fait dans l'org par défaut. Un moteur de conversion externe peut être configuré ; il n'est alors accepté qu'en
https. - Bouton sur la page d'enregistrement — voir Boutons personnalisés.
- Action de Flow : la génération est exposée comme action invocable, utilisable depuis n'importe quel Flow ou stratégie Next Best Action.
- Génération + envoi en une action, via le modèle d'enveloppe lié.
Une valeur fusionnée vient d'un enregistrement — donc potentiellement d'un tiers (saisie portail, formulaire web, import). TrueSign en tient compte :
- CSV — les valeurs qui commenceraient par
=,+,-,@sont neutralisées (préfixe apostrophe, recommandation OWASP) pour qu'aucune ne soit exécutée comme formule par Excel ou Google Sheets. Les montants négatifs légitimes (-42) restent intacts. - HTML — chaque valeur fusionnée est échappée : elle ne peut jamais injecter de balisage. Le corps du modèle, lui, reste libre — c'est votre admin qui l'écrit.
Voir Architecture de sécurité.
5. Bonnes pratiques et limites connues
- Word découpe parfois une balise en plusieurs morceaux invisibles (correcteur orthographique, mise en forme partielle). TrueSign les recolle automatiquement — un problème classique et non traité ailleurs. Si une balise résiste, retapez-la d'un seul geste sans mise en forme intermédiaire.
- Les balises
{{formula:}}et{{image}}fonctionnent aussi à l'intérieur d'une ligne de tableau répétée, tout comme les champs de l'enregistrement source. - Caractère
&: un&dans une valeur fusionnée (« Black & Decker ») peut produire un document Word illisible. Correctif en cours côté produit ; en attendant, évitez ce caractère dans les données destinées à un modèle Word, ou nettoyez-le via une formule.
6. Droits
La génération requiert le permission set TES_GenUser (ou TES_Admin). L'entrée « Document Generation » du Setup affiche un cadenas pour les utilisateurs non autorisés.
7. Assistance IA (optionnelle)
TrueSign Gen peut proposer une aide à la rédaction de vos modèles. Elle est désactivée tant qu'aucune clé n'est saisie et reste coupable à tout moment depuis la configuration.
Ce qu'il faut savoir avant de l'activer :
- l'assistance envoie le contexte du modèle et de l'enregistrement à un service d'IA externe — c'est le seul cas où une donnée sort de votre org dans tout le parcours Gen ;
- la clé d'accès est stockée comme les autres secrets, illisible hors du package ;
- l'usage doit figurer dans votre registre de traitement si le contexte transmis contient des données personnelles.