Skip to content

Rédiger ​

Prépare un message — destinataires, objet, corps, pièces jointes — sans rien envoyer. Ajoutez « Envoyer » derrière pour le déposer en brouillon ou l’expédier ; entre les deux, vous pouvez poser une approbation, une condition ou une écriture dans une table.

Rédiger prépare un message à partir de champs que vous remplissez : destinataires, objet, corps, pièces jointes. Il n’envoie rien et ne dépose aucun brouillon. Branchez Envoyer derrière lui pour déposer le message en brouillon ou l’expédier ; entre les deux, vous pouvez poser une Approbation, une condition ou une écriture dans une table.

Utilisez Rédiger quand le texte est un gabarit : un accusé de réception, une relance, un transfert avec les pièces jointes. Utilisez Rédiger (IA) quand le texte doit être écrit pour chaque mail.

En bref ​

  • Type : mail.compose · version 1
  • Catégorie : Actions
  • Nature : Étape — s’exécute pendant une exécution
  • Effet : Sans effet externe (none) — rien n’est écrit hors de Mankomail ; rejouable sans risque
  • Exige un mail porteur : Non
  • Connexion : Aucune
  • Entrées : main
  • Sorties : main

Paramètres ​

to ​

Destinataires — Adresses séparées par des virgules. Par défaut : l’expéditeur du mail déclencheur — et rien quand le déclencheur n’apporte pas de mail.

  • Type : Texte (string)
  • Requis : Oui
  • Défaut : Selon le déclencheur — {{ email.from.email }} (déclencheur mail ou manuel) ; "" (vide) (appelé par un autre workflow) ; "" (vide) (planification, webhook ou événement d’intégration)
  • 2000 caractères au plus
  • Expressions : {{ }} accepté

cc ​

Copie (Cc)

  • Type : Texte (string)
  • Requis : Non
  • Défaut : "" (vide)
  • 2000 caractères au plus
  • Expressions : {{ }} accepté

bcc ​

Copie cachée (Cci)

  • Type : Texte (string)
  • Requis : Non
  • Défaut : "" (vide)
  • 2000 caractères au plus
  • Expressions : {{ }} accepté

subject ​

Objet

  • Type : Texte (string)
  • Requis : Oui
  • Défaut : Selon le déclencheur — Re: {{ email.subject }} (déclencheur mail ou manuel) ; "" (vide) (appelé par un autre workflow) ; "" (vide) (planification, webhook ou événement d’intégration)
  • 500 caractères au plus
  • Expressions : {{ }} accepté

bodyText ​

Message — Texte du brouillon. Accepte des expressions {{ }} : {{ email.from.name }}, {{ data.extract_1.numero }}…

  • Type : Texte long (text)
  • Requis : Oui
  • Défaut : "" (vide)
  • 50000 caractères au plus
  • Expressions : {{ }} accepté

replyInThread ​

Répondre dans le fil — La réponse est rattachée au mail déclencheur et reste dans la conversation. Coché par défaut sous un déclencheur mail, décoché sous une planification, un webhook ou un appel — il n’y a alors pas de fil, et la publication le refuse s’il reste coché.

  • Type : Oui / non (boolean)
  • Requis : Non
  • Défaut : Selon le déclencheur — true (déclencheur mail ou manuel) ; false (appelé par un autre workflow) ; false (planification, webhook ou événement d’intégration)
  • Exige un mail porteur pour : true

attachments ​

Pièces jointes — Les pièces à joindre : celles du mail déclencheur — c’est ce qui fait un vrai « transférer avec les PJ » — et les fichiers ajoutés par une étape précédente (un acte rapatrié, un PDF signé). Les images intégrées (logos de signature) ne sont jamais reprises.

  • Type : Un choix (options)
  • Requis : Oui
  • Défaut : none
  • Options :
    • none — Aucune : Le brouillon ne porte que son texte.
    • fromTrigger — Celles de l’exécution : Toutes : celles du mail reçu, puis les fichiers ajoutés par les étapes précédentes.
    • fromTriggerFiltered — Celles de l’exécution, filtrées : Seulement celles dont le type ou le nom correspond — le devis, pas la signature.

attachmentMime ​

Type de fichier — Type MIME exact (application/pdf) ou famille entière (image/*). Laissé vide, aucune PJ n’est retenue.

  • Type : Texte (string)
  • Requis : Non
  • Défaut : "" (vide)
  • 200 caractères au plus
  • Exemple : application/pdf
  • Affiché quand : attachments vaut fromTriggerFiltered
  • Expressions : {{ }} accepté

attachmentNamePattern ​

Nom du fichier — Motif simple : * remplace n’importe quoi, ? un caractère (*.pdf, facture-*). La casse est ignorée.

  • Type : Texte (string)
  • Requis : Non
  • Défaut : "" (vide)
  • 200 caractères au plus
  • Exemple : *.pdf
  • Affiché quand : attachments vaut fromTriggerFiltered
  • Expressions : {{ }} accepté

Sorties ​

  • main

Données produites ​

Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).

  • {{ data.<step>.message }} — object { to, cc?, bcc?, subject, bodyText?, inReplyToMessageId?, attachmentRefs? }. Le message préparé, prêt pour un nœud Envoyer. Faites pointer le champ « Message à envoyer » d’Envoyer sur cette expression. to, cc et bcc sont des tableaux d’adresses ; cc, bcc et bodyText sont absents quand ils sont vides ; inReplyToMessageId n’est présent que si le message répond dans le fil ; attachmentRefs liste les pièces retenues par position.
  • {{ data.<step>.message.subject }} — string. L’objet rendu.
  • {{ data.<step>.bodyPreview }} — string. Les 280 premiers caractères du corps, pour l’affichage dans le détail d’exécution.
  • {{ data.<step>.bodyTruncated }} — boolean. true quand le corps est plus long que l’aperçu.
  • {{ data.<step>.attachments }} — array of { position, filename, mime, size }. Les pièces jointes que portera le message. Vide quand « Pièces jointes » vaut « Aucune » ou que rien ne correspond.
  • {{ data.<step>.attachments.0.filename }} — string. Le nom de fichier de la première pièce retenue.
  • {{ data.<step>.summary }} — string. Une phrase qui décrit le message dans le détail d’exécution (nombre de destinataires, pièces jointes), dans la langue du membre qui exécute le workflow. summaryKey et summaryParams portent la même phrase sous forme de clé de traduction et de paramètres.

Exemple ​

Transférer chaque facture fournisseur à la boîte de la comptabilité, avec son PDF. Ajoutez un nœud Rédiger nommé Transfert :

to: "compta@example.com"
subject: "Facture de {{ email.from.name }} : {{ email.subject }}"
bodyText: "Transfert automatique. Expéditeur d’origine : {{ email.from.email }}."
replyInThread: false
attachments: fromTriggerFiltered
attachmentMime: "application/pdf"

Puis un nœud Envoyer avec message réglé sur {{ data.transfert.message }} et mode sur send. Les données de l’étape Transfert sont :

json
{
  "message": {
    "to": ["compta@example.com"],
    "subject": "Facture de Acme : Facture F-2026-118",
    "bodyText": "Transfert automatique. Expéditeur d’origine : facturation@acme.example.",
    "attachmentRefs": [{ "position": 0 }]
  },
  "bodyPreview": "Transfert automatique. Expéditeur d’origine : facturation@acme.example.",
  "bodyTruncated": false,
  "attachments": [
    { "position": 0, "filename": "F-2026-118.pdf", "mime": "application/pdf", "size": 84211 }
  ],
  "summary": "…"
}

Des défauts qui dépendent du déclencheur ​

Sous un déclencheur mail, Rédiger part comme une réponse : « Destinataires » vaut {{ email.from.email }}, « Objet » vaut Re: {{ email.subject }} et « Répondre dans le fil » est coché. Sous une planification, un webhook, un déclencheur par sondage ou un appel, il n’y a ni expéditeur ni fil : « Destinataires » et « Objet » partent vides et doivent être remplis (depuis data.* par exemple), et « Répondre dans le fil » part décoché. Si « Répondre dans le fil » reste coché dans un workflow sans mail déclencheur, la publication le refuse, et à l’exécution le nœud échoue avec mail.reply_without_email.

Pièces jointes ​

  • Aucune : le message ne porte que son texte.
  • Celles de l’exécution : toutes les pièces du mail déclencheur, puis tous les fichiers ajoutés par une étape précédente (un document rapatrié d’un drive, un PDF signé).
  • Celles de l’exécution, filtrées : seulement celles dont le type ou le nom correspond aux champs de filtre. Avec les deux champs de filtre remplis, une pièce doit satisfaire les deux ; avec les deux laissés vides, rien n’est retenu.

Les images intégrées (logos de signature, images insérées dans le corps) ne sont jamais reprises. Les pièces sont désignées par leur position : leur contenu n’est pas recopié dans les données de l’étape, et le serveur lit les fichiers au moment où Envoyer enregistre le message.

Conseils ​

  • Adresses. « Destinataires », « Copie (Cc) » et « Copie cachée (Cci) » prennent des adresses séparées par des virgules et sont templatables. Si « Destinataires » n’est rendu en aucune adresse, le nœud échoue avec node_invalid_param.
  • Pas de Message-ID. Si le mail déclencheur n’a pas d’en-tête Message-ID exploitable, le message est préparé hors du fil plutôt que perdu.
  • Aucune pièce correspondante. Si la sélection ne trouve rien, le message est quand même préparé, sans pièce jointe, et attachments est vide.
  • Boîte d’expédition. Rédiger ne choisit ni la boîte d’expédition ni la signature : c’est Envoyer qui le fait.
  • Aucun effet. Rédiger se comporte de la même façon en essai et en production ; seul Envoyer est simulé.