Un Smart Message peut signer une publication avec les identifiants sociaux des auteurs de l’article, par exemple Par @camille.example.com et Noah Petit. Nonli lit les noms des auteurs dans l’article, puis cherche chaque nom dans une table que vous tenez à jour : dans Airtable, ou directement dans le template.
Cette page utilise des noms et des identifiants fictifs. Chaque extrait ci-dessous a été rendu avec le moteur de templates de Nonli le 26/10/2026, avec des données de test et sans rien publier.
1. Ce que cela fait et ne fait pas#
- Cela associe les auteurs connus d’un article à des identifiants. Cela ne trouve pas les personnes ou les entreprises citées dans le texte de l’article, et ne devine pas un compte à partir d’un nom.
- Le template écrit du texte. Ce texte devient une vraie mention ou non selon le réseau (voir la section « Quels réseaux transforment le texte en mention » plus bas).
- Cela ne permet pas de mentionner des profils LinkedIn personnels. Voir Puis-je mentionner des personnes ou des entreprises dans les publications LinkedIn ?
2. Prérequis#
- Les noms des auteurs dans vos articles. Nonli lit les auteurs sur la page de l’article, dans ses données structurées (
authorSchema.org en JSON-LD, ou microdonnéesitemprop="author"avec unname). Si la page n’en contient pas, Nonli se rabat sur la balise metaarticle:author, que certains sites remplissent avec l’URL d’un profil plutôt qu’avec un nom : la recherche utilise alors cette URL. Dans un template, ils sont disponibles dansauthors, une liste de noms. Vérifiez d’abord les valeurs réelles sur un vrai article : voirauthorsdans Quelles variables Twig sont disponibles dans Nonli ?. N’utilisez paspost.author: c’est un texte unique qui peut désigner la personne qui a créé la publication dans Nonli, pas l’auteur de l’article. - Les identifiants de vos auteurs sur chaque réseau où vous publiez.
- Pour la méthode Airtable, un jeton Airtable enregistré dans Nonli, et l’identifiant de votre base. Suivez Comment créer une clé d’API (secret) Airtable pour Nonli. N’envoyez jamais votre jeton au support.
3. Méthode 1 : une table Airtable#
3.1. Créer la table#
Créez une table nommée Authors avec une ligne par auteur :
| Name | Bluesky |
|---|---|
| Camille Martin | camille.example.com |
| Léa Dubois | lea.example.com |
| Sam Lefèvre |
- Name est la clé de recherche. Écrivez-la exactement comme dans
authors, avec les mêmes accents, espaces et majuscules. Nonli ne corrige ni ne normalise les noms : une variante commeLea DuboispourLéa Duboisn’est pas une correspondance fiable. Si un auteur signe de plusieurs façons, ajoutez une ligne par orthographe. - Gardez chaque nom unique. Si deux lignes portent le même nom, Nonli utilise la première renvoyée par Airtable, et l’autre est ignorée.
- Ajoutez une colonne par réseau (par exemple
Bluesky,Mastodon). Une cellule vide signifie « pas d’identifiant pour ce réseau ». - Enregistrez les identifiants sans
@: le template l’ajoute. - Utilisez un champ Single line text pour chaque colonne de réseau. Un champ de type lien vers un autre enregistrement, lookup ou sélection multiple renvoie une liste au lieu d’un texte, et le template échoue au lieu de se rabattre sur le nom.
3.2. Écrire le template#
1{%- set signature = [] -%}2{%- for authorName in authors -%}3 {%- set handle = airtable('appYourBaseId', 'Authors', 'Name', authorName, 'Bluesky') -%}4 {%- set signature = signature|merge([handle ? '@' ~ handle : authorName]) -%}5{%- endfor -%}6{{ title }}7{%- if signature is not empty %}8
9Par {{ signature|join(', ', ' et ') }}10{%- endif %}Remplacez appYourBaseId par l’identifiant de votre base, et Authors, Name et Bluesky par les noms de votre table et de vos colonnes. airtable(base, table, champRecherche, valeurRecherche, champRenvoyé) renvoie la valeur de champRenvoyé dans la première ligne où champRecherche est égal à valeurRecherche, ou rien quand aucune ligne ne correspond ou que la cellule est vide.

Le template collé dans un nouveau template Smart Message, avant l’enregistrement, ici dans l’interface en anglais (Label : libellé). Cette capture montre la version anglaise du template, avec By et and à la place de Par et et. appYourBaseId est un exemple à remplacer.
3.3. Résultat attendu#
Avec le titre Budget 2027 : ce qui change et la table ci-dessus :
authors | Résultat |
|---|---|
| (aucun) | Budget 2027 : ce qui change |
Camille Martin | Budget 2027 : ce qui changePar @camille.example.com |
Noah Petit (absent de la table) | Budget 2027 : ce qui changePar Noah Petit |
Léa Dubois, Noah Petit, Camille Martin | Budget 2027 : ce qui changePar @lea.example.com, Noah Petit et @camille.example.com |
Sam Lefèvre (cellule vide) | Budget 2027 : ce qui changePar Sam Lefèvre |
Ce template suit ces règles :
- Pas d’auteur, pas de signature. La ligne
Parn’est ajoutée que s’il y a au moins un auteur, pour qu’une publication ne se termine jamais par unParisolé. - Repli sur le nom. Un auteur sans identifiant garde son nom complet : chaque auteur reste crédité.
- L’ordre est conservé. Les auteurs apparaissent dans l’ordre de l’article, séparés par des virgules, avec
etavant le dernier.
3.4. Variante : n’afficher que les auteurs trouvés#
Si vous préférez ne créditer que les auteurs qui ont un identifiant, ignorez les autres :
1{%- set handles = [] -%}2{%- for authorName in authors -%}3 {%- set handle = airtable('appYourBaseId', 'Authors', 'Name', authorName, 'Bluesky') -%}4 {%- if handle -%}5 {%- set handles = handles|merge(['@' ~ handle]) -%}6 {%- endif -%}7{%- endfor -%}8{{ title }}9{%- if handles is not empty %}10
11Par {{ handles|join(', ', ' et ') }}12{%- endif %}Avec Léa Dubois, Noah Petit, Camille Martin, le résultat est Par @lea.example.com et @camille.example.com. Si aucun auteur n’est trouvé, il n’y a pas de ligne Par. Choisissez cette variante en connaissance de cause : elle omet les auteurs sans identifiant.
3.5. Variante : signer seulement si tous les auteurs sont trouvés#
Certaines équipes préfèrent tout ou rien : la signature n’est ajoutée que si chaque auteur a un identifiant, et elle est omise entièrement sinon. Gardez la boucle de la variante précédente et changez seulement la condition :
1{%- if handles is not empty and handles|length == authors|length %}Avec Léa Dubois, Camille Martin, le résultat est Par @lea.example.com et @camille.example.com. Avec Léa Dubois, Noah Petit, Camille Martin, il n’y a aucune ligne Par, car Noah Petit n’a pas d’identifiant.
| Règle | Auteur non trouvé | Adaptée quand |
|---|---|---|
| Repli sur le nom (template principal) | Crédité par son nom | Chaque auteur doit toujours être crédité |
| N’afficher que les auteurs trouvés | Omis | Seuls les identifiants comptent, un crédit partiel est acceptable |
| Signer seulement si tous les auteurs sont trouvés | Toute la signature est omise | Une signature partielle serait trompeuse |
Aucune de ces règles n’est un comportement par défaut de Nonli : c’est le template qui décide. Choisissez la règle qui correspond à vos règles éditoriales.
4. Méthode 2 : une table dans le template#
Pour quelques auteurs, vous pouvez garder la table dans le Smart Message lui-même, sans Airtable. L’entrée (authors) et la règle de repli sont les mêmes que dans la méthode 1 :
1{%- set blueskyHandles = {2 'Camille Martin': 'camille.example.com',3 'Léa Dubois': 'lea.example.com',4 'Alex Moreau': 'alex.example.com',5} -%}6{%- set signature = [] -%}7{%- for authorName in authors -%}8 {%- set handle = blueskyHandles[authorName] ?? null -%}9 {%- set signature = signature|merge([handle ? '@' ~ handle : authorName]) -%}10{%- endfor -%}11{{ title }}12{%- if signature is not empty %}13
14Par {{ signature|join(', ', ' et ') }}15{%- endif %}Il donne les mêmes résultats que la méthode 1 pour les mêmes noms : par exemple Camille Martin, Noah Petit donne Par @camille.example.com et Noah Petit. Les noms doivent correspondre exactement : Lea Dubois (sans accent) ou camille martin (en minuscules) ne trouvent rien et sont affichés tels quels.
Cette méthode est un exemple à adapter, pas une configuration reprise d’un client.
4.1. Quelle méthode choisir#
| Airtable | Table dans le template | |
|---|---|---|
| Où modifier l’association | Dans une seule table Airtable | Dans chaque template |
| Partagée entre plusieurs templates | Oui : une modification s’applique partout | Non : chaque copie du template doit être mise à jour |
| Nécessite un jeton Airtable | Oui | Non |
| Adaptée à | Une rédaction avec beaucoup d’auteurs | Quelques auteurs stables |
Aucune des deux méthodes ne change les mentions qu’un réseau accepte.
5. Tester avant de publier#
Dans l’éditeur de templates Smart Message, testez le template avec des articles représentatifs avant d’enregistrer : un article sans auteur, un auteur avec identifiant, un sans, et plusieurs auteurs. Testez ensuite une publication hors production de bout en bout, publiée par un robot : les identifiants Bluesky ne sont transformés en mentions que dans les publications des robots (voir plus bas). Voir Comment créer un Smart Message.
Vérifiez ce que le résultat contient réellement :
- un nom (
Noah Petit) : du texte simple ; - un identifiant (
@camille.example.com) : du texte que certains réseaux peuvent transformer en mention ; - une URL de profil : un lien, pas une mention ;
- une mention cliquable : visible uniquement sur la publication publiée, et seulement si le réseau l’a créée.
6. Quels réseaux transforment le texte en mention#
- Bluesky : quand un robot publie, Nonli recherche chaque identifiant complet écrit dans le message, comme
@camille.example.com. Quand le compte est trouvé, Nonli publie une vraie mention Bluesky. Sinon, le texte reste simple. Dans une publication créée manuellement, les identifiants tapés ne sont pas convertis : sélectionnez plutôt le compte dans les suggestions de mention de l’éditeur. Utilisez l’identifiant complet avec son domaine (par exemplenom.bsky.social), et ne placez pas de ponctuation comme un point juste après : elle serait lue comme une partie de l’identifiant. - LinkedIn : un identifiant ou un nom écrit par un template reste du texte simple. Nonli crée des mentions LinkedIn uniquement pour les pages entreprise sélectionnées dans l’éditeur, et ne prend pas encore en charge les mentions de profils personnels. Pour mentionner une personne, modifiez la publication sur LinkedIn après sa publication, comme expliqué dans Puis-je mentionner des personnes ou des entreprises dans les publications LinkedIn ?
- Autres réseaux : cette page ne les couvre pas. Vérifiez une publication de test avant de vous fier au résultat.
7. Dépannage#
| Problème | Cause et solution |
|---|---|
Aucune ligne Par | authors est vide pour cet article. Vérifiez les données structurées de l’auteur sur la page de l’article. |
| Un auteur apparaît sous forme de nom au lieu d’un identifiant | Le nom est écrit différemment dans Airtable (accent, majuscule, deuxième prénom), la cellule est vide pour ce réseau, ou le nom de colonne du template est faux. |
| Le mauvais identifiant apparaît | Deux lignes portent le même nom. Gardez une seule ligne par nom. |
| Aucun auteur n’obtient d’identifiant | Vérifiez le jeton Airtable dans Nonli, l’identifiant de la base, et les noms de la table et des colonnes. |
| L’identifiant est publié mais pas cliquable | Le réseau ne l’a pas reconnu comme une mention. Sur Bluesky, vérifiez l’identifiant complet et que la publication a été faite par un robot. Sur LinkedIn, un texte de template n’est jamais une mention. |