Intégration n8n : automatiser la génération de documents
Dernière mise à jour le 23 mars 2026
Le nœud PDFMonkey pour n8n vous permet de générer, récupérer, télécharger et supprimer des documents directement depuis vos workflows n8n. Si vous configurez PDFMonkey avec n8n pour la première fois, commencez par la section Premiers pas ci-dessous.
Premiers pas
n8n est une plateforme d’automatisation de workflows qui connecte différentes applications et services entre eux. C’est une alternative open-source à des outils comme Zapier et Make, proposant des options cloud et auto-hébergées.
Avant de commencer, assurez-vous d’avoir :
- Un compte PDFMonkey (inscrivez-vous ici)
- Un compte ou une instance n8n (inscrivez-vous sur n8n.io ou auto-hébergez)
- Votre clé API PDFMonkey
- Un modèle publié dans PDFMonkey
Pour le guide complet de création de compte et de configuration d’un modèle, consultez De zéro à votre premier document.
Configuration des identifiants
Avant d’utiliser le nœud PDFMonkey, vous devez configurer vos identifiants API :
- Dans votre workflow n8n, ajoutez un nœud PDFMonkey
- Cliquez sur Create New Credentials
- Saisissez votre clé API PDFMonkey (disponible dans votre tableau de bord PDFMonkey)
- Cliquez sur Save
Où trouver votre clé API
Votre premier workflow
Créons un workflow simple qui génère un document lorsqu’il est déclenché manuellement. Utilisez le modèle que vous avez créé dans De zéro à votre premier document, ou créez un modèle simple avec une variable de salutation.
Étape 1 : ajouter un Manual Trigger
- Créez un nouveau workflow dans n8n
- Le nœud Manual Trigger devrait déjà être présent
- Cela vous permettra de tester votre workflow manuellement
Étape 2 : ajouter le nœud PDFMonkey
- Cliquez sur le bouton + pour ajouter un nouveau nœud
- Recherchez PDFMonkey
- Sélectionnez le nœud PDFMonkey
- Choisissez Generate Document comme opération
Étape 3 : configurer l’opération Generate Document
Dans la configuration du nœud PDFMonkey :
- Sélectionnez vos identifiants PDFMonkey (ou créez-les si ce n’est pas déjà fait)
- Définissez l’identifiant de votre modèle PDFMonkey
- Réglez la Payload Input Method sur Key-Value Pairs
- Ajoutez les champs suivants :
- Key :
name→ Value :Peter Parker - Key :
favoriteNumber→ Value :8
- Key :
Méthodes de payload
Nommage des variables
Étape 4 : tester votre workflow
- Cliquez sur Execute Workflow (le bouton play en bas)
- Attendez quelques secondes que le document se génère
- Vous devriez voir les détails du document dans la sortie
- Le fichier est maintenant disponible à l’adresse
download_urlfournie
Étape 5 : télécharger le fichier (optionnel)
Si vous souhaitez télécharger le fichier généré en tant que données binaires dans n8n :
- Activez Download File dans les options du nœud PDFMonkey
- Le fichier sera disponible en tant que données binaires dans les nœuds suivants
Exemple : webhook vers document puis email
Créons un workflow plus pratique qui :
- Reçoit des données depuis un webhook
- Génère un document avec PDFMonkey
- Envoie le document par email
Structure du workflow
- Nœud Webhook : reçoit les données du formulaire
- Nœud PDFMonkey : génère le document
- Nœud Send Email : envoie le fichier en pièce jointe
Configuration
Nœud Webhook :
- Méthode : POST
- Chemin :
/generate-document
Nœud PDFMonkey :
- Opération : Generate Document
- Sélectionnez votre modèle
- Associez les données du webhook aux variables du modèle :
name→{{ $json.name }}favoriteNumber→{{ $json.favoriteNumber }}
- Activez l’option Download File
Nœud Send Email :
- Utilisez Gmail, SendGrid ou tout service SMTP
- Dans les pièces jointes, référencez les données binaires PDFMonkey :
- Property Name :
data - File Name :
document.pdf
- Property Name :
Tester les webhooks
Utilisez l’URL de test fournie par n8n pour envoyer des requêtes POST avec des données JSON comme :
{
"name": "John Doe",
"favoriteNumber": 42
}
Vous avez configuré avec succès votre premier workflow PDFMonkey dans n8n.
Générer un document
L’opération Generate Document crée un document à partir de l’un de vos modèles PDFMonkey. Vous fournissez un modèle et un payload de données dynamiques, et PDFMonkey génère le fichier.
Méthodes d’entrée du payload
Le nœud PDFMonkey propose deux façons d’envoyer des données à votre modèle.
Key-Value Pairs (mode simple) est la méthode la plus facile pour envoyer des structures de données simples. Vous ajoutez les champs un par un, chacun avec une clé (le nom de la variable dans votre modèle) et une valeur (statique ou dynamique provenant des nœuds précédents).
JSON Format (mode avancé) gère les structures de données complexes, les objets imbriqués ou les tableaux. Utilisez le JSON lorsque votre modèle attend des données structurées :
{
"customer": {
"name": "Acme Inc.",
"email": "contact@acme.com",
"address": {
"street": "123 Main St",
"city": "New York",
"zip": "10001"
}
},
"items": [
{
"product": "Widget",
"quantity": 5,
"price": 10.99
},
{
"product": "Gadget",
"quantity": 2,
"price": 24.99
}
],
"total": 104.93
}
Dans votre modèle, accédez aux données imbriquées avec la notation par points :
<h2>Invoice for {{customer.name}}</h2>
<p>{{customer.address.street}}, {{customer.address.city}}</p>
{% for item in items %}
<p>{{item.product}} x{{item.quantity}} = {{item.price}}</p>
{% endfor %}
Pour en savoir plus sur la structuration de vos données dynamiques, consultez Définir les données dynamiques.
Utilisation des expressions
Les expressions n8n vous permettent de référencer dynamiquement les données des nœuds précédents :
{{ $json.customerName }} // Champ simple
{{ $node["Webhook"].json["email"] }} // Depuis un nœud spécifique
{{ $json.items.length }} // Longueur du tableau
{{ new Date().toISOString() }} // Date actuelle
Vous pouvez utiliser les expressions dans les valeurs des paires Key-Value, les payloads JSON (comme valeurs de chaîne), le champ de nom de fichier personnalisé et les champs de métadonnées.
Nom de fichier personnalisé
Vous pouvez spécifier un nom personnalisé pour le fichier généré. Cela est utile lorsque vous stockez des fichiers dans Google Drive, Dropbox ou d’autres services de stockage.
Dans les options du nœud PDFMonkey :
- Développez Additional Options
- Définissez Custom Filename
- Utilisez un nom statique ou des expressions n8n :
Invoice-{{ $json.invoiceNumber }}.pdf
Report-{{ $now.format('YYYY-MM-DD') }}.pdf
{{ $json.customerName }}-Contract.pdf
Restrictions sur le nom de fichier
- N’utilisez pas de slashs
/ni de backslashs\ - Évitez les caractères spéciaux qui pourraient causer des problèmes sur différents systèmes d’exploitation
- Les caractères non latins peuvent être échappés ou remplacés
Pour plus de détails sur les options de nom de fichier, consultez Nom de fichier personnalisé.
Métadonnées
Les métadonnées sont des informations supplémentaires attachées à un document qui n’apparaissent pas dans le fichier généré. Elles sont utiles pour suivre l’origine du document, stocker des identifiants de référence et filtrer dans les webhooks.
Pour ajouter des métadonnées :
- Développez Additional Options dans le nœud PDFMonkey
- Réglez Metadata sur Key-Value Pairs ou JSON
- Ajoutez vos champs de métadonnées :
{
"orderId": "ORD-12345",
"customerEmail": "john@example.com",
"environment": "production"
}
Vous pouvez récupérer les métadonnées ultérieurement en utilisant l’opération Get Document ou dans les triggers par webhook.
Métadonnées vs Payload
- Payload (données dynamiques) : Données utilisées pour générer le contenu du document
- Metadata : Informations attachées au document mais non visibles dans la sortie ; incluses dans les notifications webhook
Attendre le document
Par défaut, l’opération Generate Document attend que le document soit entièrement généré avant de continuer.
Temps de génération du document
Si vous devez désactiver l’attente et gérer la complétion de manière asynchrone, vous pouvez utiliser le trigger PDFMonkey ou le polling à la place.
Tableaux et données complexes
n8n facilite le travail avec les tableaux provenant des nœuds précédents. Voici un exemple utilisant des données Google Sheets.
Sortie du nœud Google Sheets :
[
{ "product": "Widget", "qty": 5, "price": 10 },
{ "product": "Gadget", "qty": 2, "price": 25 }
]
Dans le nœud PDFMonkey (mode JSON) :
{
"customerName": "{{ $json.customerName }}",
"items": {{ $node["Google Sheets"].json }}
}
Le tableau est transmis directement à votre modèle où vous pouvez le parcourir :
{% for item in items %}
<tr>
<td>{{item.product}}</td>
<td>{{item.qty}}</td>
<td>{{item.price}}</td>
</tr>
{% endfor %}
Pour en savoir plus sur les boucles et le rendu conditionnel, consultez Conditions et boucles.
Traitement d’éléments multiples
Si votre workflow traite plusieurs éléments (comme plusieurs clients ou commandes), utilisez le nœud Split In Batches de n8n :
1. Get Data (retourne 100 éléments)
2. Split In Batches (taille du lot : 1)
3. PDFMonkey - Generate Document (s’exécute 100 fois)
4. Stocker les fichiers
Ou utilisez le nœud Loop Over Items pour plus de contrôle.
Limites de débit
Gestion des erreurs
Utilisez les fonctionnalités de gestion d’erreurs de n8n pour gérer les échecs :
- Cliquez sur le nœud PDFMonkey
- Allez dans l’onglet Settings
- Configurez On Error :
- Stop Workflow (par défaut)
- Continue With Last Successful Item
- Continue Execution
Pour une gestion d’erreurs plus robuste, ajoutez un nœud IF après PDFMonkey pour vérifier le statut du document :
IF: {{ $json.status }} equals "success"
-> TRUE : Continuer avec le fichier
-> FALSE : Envoyer une notification d’erreur
Trigger PDFMonkey
Le trigger PDFMonkey est un trigger basé sur les webhooks qui écoute les événements de génération de documents. Lorsqu’un document est terminé, PDFMonkey envoie une notification à votre workflow n8n. Cela est utile pour automatiser les actions post-génération comme le stockage de fichiers, l’envoi de notifications ou la mise à jour de bases de données.
Pour des informations de fond sur le fonctionnement des webhooks PDFMonkey (types d’événements, format du payload et vérification des signatures), consultez Webhooks.
Configuration
- Dans votre workflow n8n, cliquez sur + pour ajouter un nouveau nœud
- Recherchez PDFMonkey Trigger et sélectionnez-le comme point de départ de votre workflow
- Sélectionnez vos identifiants API PDFMonkey
- Choisissez les modèles à écouter :
- Any Template : déclencher pour tous les documents de votre workspace
- Specific Template : déclencher pour un seul modèle
- Multiple Templates : déclencher pour plusieurs modèles sélectionnés
- Copiez l’URL de webhook affichée par le nœud trigger
- Dans votre tableau de bord PDFMonkey, allez dans la section Webhooks
- Créez un nouvel endpoint avec l’URL de webhook n8n
- Cochez les événements de succès et d’échec, puis cliquez sur Create
- De retour dans n8n, activez le toggle Activate pour activer votre workflow
Webhooks de production vs de test
n8n fournit deux URLs :
- URL de test : Pour tester dans l’éditeur n8n
- URL de production : Pour les workflows activés/publiés
Assurez-vous de mettre à jour l’URL de webhook dans PDFMonkey lors de l’activation de votre workflow.
Données du trigger
Lorsqu’un document est terminé, le trigger reçoit un objet DocumentCard. Celui-ci inclut les métadonnées du document, le statut et l’URL de téléchargement, mais n’inclut pas les données dynamiques originales que vous avez envoyées :
{
"document": {
"id": "a5e86d72-f5b7-43d4-a04e-8b7e08e6741c",
"app_id": "d6b4e8f2-7a3c-4d1e-9f5b-2c8a1d3e6f90",
"created_at": "2050-03-13T12:34:56.181+02:00",
"document_template_id": "2903f5b4-623b-4e10-b2e3-dc7e2e67ea39",
"document_template_identifier": "My Invoice Template",
"download_url": "https://pdfmonkey.s3.eu-west-1.amazonaws.com/...",
"failure_cause": null,
"filename": "2050-03-14 Peter Parker.pdf",
"meta": {
"_filename": "2050-03-14 Peter Parker.pdf",
"clientRef": "spidey-616"
},
"output_type": "pdf",
"preview_url": "https://preview.pdfmonkey.io/...",
"public_share_link": null,
"status": "success",
"updated_at": "2050-03-13T12:34:59.412+02:00"
}
}
Les données dynamiques ne sont pas incluses
Téléchargement automatique
Le trigger PDFMonkey dispose d’une option Download File qui télécharge automatiquement le fichier généré lorsque le trigger se déclenche.
Lorsqu’elle est activée :
- Le fichier est téléchargé en tant que données binaires
- Il est disponible immédiatement dans les nœuds suivants
- Pas besoin d’une opération Download File séparée
Pour l’activer :
- Ouvrez les paramètres du nœud trigger
- Développez Additional Options
- Basculez Download File sur ON
Les données binaires sont disponibles avec la clé data.
Cas d’utilisation
Stocker des fichiers dans Google Drive :
1. PDFMonkey Trigger (Download File : activé)
2. Google Drive - Upload File
- File : {{ $binary.data }}
- Folder : /Invoices/
- Filename : {{ $json.filename }}
Envoyer une notification sur Slack :
1. PDFMonkey Trigger
2. Slack - Send Message
- Channel : #notifications
- Message : "New document generated: {{ $json.filename }}"
- Attachment : {{ $json.download_url }}
Mettre à jour un enregistrement en base de données :
1. PDFMonkey Trigger
2. Postgres - Update
- Table : orders
- Where : id = {{ $json.metadata.orderId }}
- Set : pdf_url = {{ $json.download_url }}, status = 'completed'
Envoyer le document par email au client :
1. PDFMonkey Trigger (Download File : activé)
2. Gmail - Send Email
- To : {{ $json.metadata.customerEmail }}
- Subject : Your invoice is ready
- Attachments : {{ $binary.data }}
Métadonnées pour le routage
Les métadonnées permettent des workflows conditionnels. Lors de la génération d’un document, attachez des informations de routage :
{
"metadata": {
"documentType": "invoice",
"customerId": "12345",
"sendEmail": true
}
}
Puis dans votre workflow déclenché, utilisez un nœud IF ou Switch pour router en fonction des métadonnées :
1. PDFMonkey Trigger
2. Nœud Switch
- Case 1 : {{ $json.metadata.documentType }} = "invoice" -> Stocker en comptabilité
- Case 2 : {{ $json.metadata.documentType }} = "report" -> Partager sur Slack
- Case 3 : {{ $json.metadata.documentType }} = "contract" -> Stocker dans DocuSign
Test
Méthode 1 : Générer un document de test. Utilisez un autre workflow ou l’API pour générer un document, attendez que le webhook se déclenche, et vérifiez l’exécution du nœud trigger dans n8n.
Méthode 2 : Utiliser le webhook de test.
- Cliquez sur Listen for event dans le nœud trigger
- Générez un document depuis votre modèle PDFMonkey
- Le trigger capture l’événement et affiche les données
- Cliquez sur Use test event pour utiliser ces données lors de la construction de votre workflow
Déclencher depuis le tableau de bord
Vous pouvez également avoir plusieurs workflows n8n à l’écoute du même modèle. Chaque webhook reçoit la notification indépendamment, ce qui est utile pour séparer les environnements ou avoir différents workflows pour différents types de documents.
Garanties de livraison
PDFMonkey utilise Svix pour livrer les webhooks. Les livraisons suivent ces garanties :
- Livraison au moins une fois : vous pourriez recevoir le même événement plusieurs fois
- Ordre au mieux : les événements sont généralement dans l’ordre mais ce n’est pas garanti
- Réessais automatiques : les livraisons échouées sont réessayées avec un backoff exponentiel
- Vérification de signature : chaque webhook est signé pour que vous puissiez vérifier son authenticité
Rendez votre workflow idempotent
Pour tous les détails sur la configuration des webhooks (routage par canal et vérification de signature), consultez Webhooks.
Autres opérations
Au-delà de la génération de documents et de la réaction aux triggers, le nœud PDFMonkey prend en charge plusieurs opérations de gestion de documents.
Récupérer un document
L’opération Get Document récupère les informations d’un document précédemment généré. Utilisez-la pour vérifier le statut d’un document, récupérer son URL de téléchargement, accéder aux métadonnées attachées ou vérifier qu’un document existe avant traitement.
Champ requis : Document ID
Document ID : {{ $json.documentId }}
L’opération retourne les informations complètes du document incluant le statut, l’URL de téléchargement, l’URL de prévisualisation, les métadonnées et les horodatages.
Valeurs de statut du document :
draft— le document est créé mais pas encore en file d’attente pour la générationpending— le document est en file d’attente pour la générationgenerating— le document est en cours de rendusuccess— le document a été généré avec succèsfailure— la génération a échoué (vérifiezfailure_causepour les détails)
Pour le cycle de vie complet des statuts, consultez Statuts des documents.
Télécharger un fichier
L’opération Download File télécharge un fichier généré en tant que données binaires. Utilisez-la pour télécharger un fichier généré précédemment, obtenir des données binaires séparément de la génération ou re-télécharger un document pour traitement.
Champ requis : Document ID
Champ optionnel : Binary Property Name (par défaut : data)
Document ID : {{ $json.documentId }}
Binary Property Name : pdfFile
Le fichier est stocké en tant que données binaires et peut être utilisé dans les pièces jointes d’email, les nœuds de stockage de fichiers (Google Drive, Dropbox, etc.), les uploads FTP ou d’autres nœuds de traitement.
Generate Document inclut le téléchargement
Supprimer un document
L’opération Delete Document supprime définitivement un document de PDFMonkey. Utilisez-la pour nettoyer après l’envoi d’un document, supprimer des documents contenant des données sensibles, gérer les quotas de stockage ou implémenter des politiques de rétention de documents.
Champ requis : Document ID
Document ID : {{ $json.documentId }}
La suppression est définitive
Le TTL comme alternative
Polling de complétion
Si vous avez généré un document avec Wait for Document désactivé, vous pouvez utiliser le polling pour vérifier sa complétion au lieu d’un trigger webhook :
1. PDFMonkey - Generate Document (Wait : désactivé)
2. Wait (10 secondes)
3. PDFMonkey - Get Document
- Document ID : {{ $node["PDFMonkey"].json.id }}
4. Nœud IF
- {{ $json.status }} = "success"
- TRUE : Continuer avec le fichier
- FALSE : Retourner à l’étape 2
Meilleure approche : utiliser le trigger
Combiner les opérations
Générer, stocker et nettoyer :
1. Manual Trigger
2. PDFMonkey - Generate Document (Download : activé)
3. Google Drive - Upload File
- File : {{ $binary.data }}
- Folder : /Invoices/
4. Postgres - Insert
- Table : documents
- Data : {
drive_url : {{ $node["Google Drive"].json.webViewLink }},
pdfmonkey_id : {{ $node["PDFMonkey"].json.id }}
}
5. PDFMonkey - Delete Document
- Document ID : {{ $node["PDFMonkey"].json.id }}
Téléchargement conditionnel basé sur le statut :
1. Webhook (reçoit l’identifiant du document)
2. PDFMonkey - Get Document
- Document ID : {{ $json.documentId }}
3. Nœud IF
- Condition : {{ $json.status }} = "success"
- TRUE :
4a. PDFMonkey - Download File
5a. Envoyer au client
- FALSE :
4b. Envoyer une notification d’erreur
5b. PDFMonkey - Delete Document (nettoyage de la tentative échouée)
Re-générer et remplacer :
1. Webhook (reçoit la mise à jour de commande)
2. PDFMonkey - Delete Document
- Document ID : {{ $json.oldDocumentId }}
3. PDFMonkey - Generate Document
- Template : Invoice
- Payload : {{ $json.updatedData }}
4. Mettre à jour la base de données avec le nouvel identifiant de document
Résolution de problèmes
Erreurs d’authentification
Clé API invalide :
401 Unauthorized - Invalid API key
- Allez dans votre tableau de bord PDFMonkey
- Naviguez vers Account puis API
- Copiez votre clé API
- Dans n8n, mettez à jour vos identifiants PDFMonkey avec la bonne clé
- Testez la connexion
Pour en savoir plus sur l’authentification API, consultez Authentification.
Workspaces multiples
Si vos identifiants cessent soudainement de fonctionner, supprimez les anciens identifiants dans n8n, créez-en de nouveaux avec une clé API fraîche, et mettez à jour tous les nœuds utilisant ces identifiants.
Modèle introuvable
404 Not Found - Template does not exist
Causes : le modèle a été supprimé, le mauvais workspace ou la mauvaise clé API est utilisé, ou l’identifiant du modèle est incorrect.
Solution : Vérifiez que le modèle existe dans votre tableau de bord PDFMonkey, vérifiez que vous utilisez la bonne clé API, et re-sélectionnez le modèle depuis le menu déroulant dans n8n.
Modèle non publié :
422 Unprocessable Entity - Template is not published
Allez dans votre modèle dans PDFMonkey et assurez-vous qu’il est publié en cliquant sur le bouton Publish, puis réessayez la génération.
Erreur courante
Payload invalide
422 Unprocessable Entity - Invalid payload
Causes : syntaxe JSON invalide (en mode JSON), mauvais types de données ou champs requis manquants.
Problèmes courants de syntaxe JSON :
Guillemets manquants :
// Incorrect
{ name: "John" }
// Correct
{ "name": "John" }
Virgules en fin de ligne :
// Incorrect
{
"name": "John",
"age": 30,
}
// Correct
{
"name": "John",
"age": 30
}
Guillemets doubles non échappés dans les valeurs :
// Incorrect - les guillemets imbriqués cassent le JSON
{ "name": "Peter "Spider-Man" Parker" }
// Correct - échapper les guillemets internes avec un backslash
{ "name": "Peter \"Spider-Man\" Parker" }
Utilisation des expressions n8n dans le JSON :
Lorsque vous utilisez des expressions, assurez-vous de sérialiser les objets :
// Incorrect - Créera un JSON invalide
{
"items": {{ $json.items }}
}
// Correct - Sérialiser correctement
{
"items": {{ JSON.stringify($json.items) }}
}
Utilisez le mode Key-Value Pairs
Erreurs de téléchargement
URL de téléchargement expirée :
403 Forbidden - Download URL has expired
Les URLs de téléchargement expirent après 1 heure pour des raisons de sécurité.
Option 1 : Utilisez Get Document pour obtenir une URL fraîche, puis téléchargez depuis la nouvelle URL avec un nœud HTTP Request.
Option 2 : Activez l’option Download File dans le nœud Generate Document pour télécharger immédiatement après la génération.
Option 3 : Stockez les données binaires dans un service de stockage (Google Drive, S3, etc.) plutôt que de dépendre des URLs PDFMonkey.
Pour plus de détails, consultez L’URL de téléchargement retourne 403.
Données binaires non disponibles :
Si aucune donnée binaire n’est disponible pour la pièce jointe ou le stockage, assurez-vous que Download File est activé :
- Dans l’opération Generate Document : Additional Options puis Download File
- Dans le PDFMonkey Trigger : Additional Options puis Download File
- Ou utilisez explicitement une opération Download File
Problèmes de webhook
Le webhook ne reçoit pas d’événements :
- Le workflow est activé (pas seulement sauvegardé)
- L’URL du webhook est correcte dans PDFMonkey
- Utilisation de l’URL de production et non l’URL de test
- Le modèle est publié
- Le pare-feu ne bloque pas les requêtes
Pour déboguer : vérifiez l’onglet Executions dans n8n pour les erreurs, allez dans les paramètres du modèle dans le tableau de bord PDFMonkey et vérifiez les journaux de livraison des webhooks, et essayez de générer manuellement un document de test. Consultez Webhooks pour les détails de configuration des webhooks.
Réception d’événements webhook en double : c’est un comportement attendu. Les webhooks PDFMonkey utilisent une livraison au moins une fois. Rendez votre workflow idempotent en vérifiant si vous avez déjà traité un document :
1. PDFMonkey Trigger
2. Postgres - Vérifier si l’identifiant du document existe
3. Nœud IF
- Déjà traité : Arrêter
- Nouveau document : Continuer le traitement
Mauvaise URL de webhook : Après l’activation de votre workflow, l’URL du webhook passe de Test à Production. Copiez l’URL de production depuis le nœud trigger et mettez à jour l’URL du webhook dans vos paramètres PDFMonkey.
Erreurs d’expression
Cannot read property of undefined :
Cannot read property 'field' of undefined
Cela se produit lorsque vous essayez d’accéder à des données qui n’existent pas depuis un nœud précédent.
Vérifiez le nom du nœud :
// Mauvais nom de nœud
{{ $node["PDFmonkey"].json.id }}
// Bon nom de nœud (M majuscule)
{{ $node["PDFMonkey"].json.id }}
Vérifiez que les données existent :
// Suppose que le champ existe
{{ $json.customer.email }}
// Utilisez le chaînage optionnel (n8n 1.0+)
{{ $json.customer?.email }}
// Ou fournissez une valeur par défaut
{{ $json.customer?.email || 'no-email@example.com' }}
Utilisez l’éditeur d’expressions dans n8n (cliquez sur le bouton Expression) et utilisez l’autocomplétion pour vous assurer de référencer les bons champs.
Timeout du workflow
Workflow execution timed out
Causes : document prenant trop de temps à se générer, problèmes réseau ou téléchargement de fichiers volumineux.
Option 1 : Augmentez le timeout dans les paramètres du workflow (Execution Timeout).
Option 2 : Désactivez « Wait for Document » et utilisez un trigger webhook dans un workflow séparé.
Option 3 : Découpez en plusieurs workflows et utilisez des webhooks pour les chaîner.
Erreurs de mémoire
JavaScript heap out of memory
Cela se produit lors du traitement de fichiers ou de données très volumineux dans n8n.
Solutions :
- Traitez les éléments par lots plus petits (utilisez le nœud Split In Batches)
- Utilisez le streaming lorsque c’est possible
- Augmentez l’allocation mémoire de n8n (auto-hébergé uniquement)
- Stockez les fichiers volumineux en externe plutôt que de les faire transiter par le workflow
Limitation de débit
429 Too Many Requests - Rate limit exceeded
Ajoutez des nœuds Wait entre les opérations lors du traitement de plusieurs documents :
1. Récupérer les éléments à traiter
2. Split In Batches (taille : 10)
3. Wait (5 secondes)
4. PDFMonkey - Generate Document
5. Boucle
Ou utilisez le nœud Code pour ajouter des délais :
// Attendre 1 seconde par élément
await new Promise(resolve => setTimeout(resolve, 1000));
return items;
Formatage JSON
Sauts de ligne dans le JSON : le JSON ne prend pas en charge les sauts de ligne bruts dans les chaînes :
// Incorrect
{
"description": "Line 1
Line 2"
}
// Correct
{
"description": "Line 1\nLine 2"
}
Ou utilisez un nœud Code pour échapper :
items[0].json.description = items[0].json.description.replace(/\n/g, '\\n');
return items;
Caractères spéciaux : échappez les guillemets doubles dans les valeurs de chaîne :
// Incorrect - les guillemets non échappés cassent le JSON
{ "html": "<div class="test">Hello</div>" }
// Correct - guillemets internes échappés
{ "html": "<div class=\"test\">Hello</div>" }
Ou utilisez le mode Key-Value Pairs qui gère l’échappement automatiquement.
Prochaines étapes
- De zéro à votre premier document : configurez votre compte PDFMonkey et créez votre premier modèle
- Définir les données dynamiques : apprenez à structurer le payload JSON pour vos modèles
- Nom de fichier personnalisé : contrôlez le nom des fichiers générés
- Statuts des documents : comprenez le cycle de vie d’un document généré
- Webhooks : recevez des notifications en temps réel lorsque les documents sont générés
- URL de téléchargement : fonctionnement des liens de téléchargement temporaires et leur actualisation
- Rétention et suppression : configurez le nettoyage automatique des documents avec le TTL
- Explorez d’autres intégrations : Zapier, Make, Workato
Besoin d’aide supplémentaire ?
Si vous rencontrez toujours des problèmes :
- Documentation n8n : docs.n8n.io
- Statut PDFMonkey : status.pdfmonkey.io
- Communauté n8n : community.n8n.io
- Support PDFMonkey : support@pdfmonkey.io
Incluez les détails dans vos demandes de support