Intégration Bubble : générer des documents dans votre application Bubble
Dernière mise à jour le 23 mars 2026
Le plugin officiel PDFMonkey pour Bubble vous permet de générer des documents directement depuis vos workflows Bubble, sans écrire de code backend. Installez-le depuis le marketplace Bubble, ajoutez une seule action à votre workflow et récupérez une URL de téléchargement dès que le document est prêt.
Il existe deux façons de connecter PDFMonkey à Bubble :
- Plugin PDFMonkey (recommandé) : installez-le depuis le marketplace pour une intégration sans code avec polling intégré.
- API Connector : appelez l’API REST PDFMonkey directement pour un contrôle total sur les requêtes et les réponses.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Un compte PDFMonkey (inscription ici)
- Un compte Bubble avec une application
- Un modèle publié dans PDFMonkey
Pour la création de compte et la configuration d’un modèle, consultez De zéro à votre premier document.
Vous avez également besoin de votre clé secrète API, disponible sur la page Mon compte. Consultez Authentification pour plus de détails.
Plugin PDFMonkey
Le plugin officiel PDFMonkey est le moyen le plus rapide de générer des documents depuis Bubble. Il gère automatiquement l’authentification, la création de documents et le polling : vous ajoutez une seule action à votre workflow et elle renvoie le document finalisé.
Installer le plugin
- Ouvrez l’éditeur de votre application Bubble.
- Accédez à Plugins et cliquez sur Add plugins.
- Recherchez PDFMonkey et installez le plugin PDFMonkey.
- Dans les paramètres du plugin, collez votre clé secrète API depuis la page Mon compte.
C’est tout ce qu’il faut pour l’authentification. Le plugin transmet votre clé via l’en-tête Authorization à chaque requête.
Action « Generate a Document »
Le plugin fournit une action serveur appelée PDFMonkey - Generate a Document. Ajoutez-la à n’importe quel workflow Bubble pour créer et générer un document à partir de l’un de vos modèles.
Champs d’entrée
| Champ | Type | Requis | Description |
|---|---|---|---|
| Template ID | Valeur dynamique | Oui | L’identifiant de votre modèle PDFMonkey (disponible dans les paramètres du modèle) |
| Document data | Paires clé/valeur | Oui | Les données dynamiques pour votre modèle ; les clés doivent correspondre aux noms de variables définis dans votre modèle |
| Document meta-data | Paires clé/valeur | Non | Métadonnées attachées au document (non accessibles dans le modèle) |
| Filename | Valeur dynamique | Non | Un nom de fichier personnalisé pour le fichier généré |
Nommage des variables
Valeurs renvoyées
Une fois l’action terminée, les valeurs suivantes sont disponibles dans les étapes suivantes du workflow (via Result of step X) :
| Champ | Type | Description |
|---|---|---|
| id | texte | L’identifiant unique du document généré |
| Download URL | fichier | Une URL temporaire pour télécharger le fichier (valide 1 heure) |
| Public Share Link | texte | Un lien de partage permanent (disponible sur les plans Premium) |
| Filename | texte | Le nom du fichier généré |
| Document meta-data | texte | Les métadonnées attachées au document |
| Status | texte | Le statut du document (success ou failure) |
| Failure cause | texte | Le message d’erreur en cas d’échec de la génération |
| Creation Date | date | Date de création du document |
| Generation Date | date | Date de fin de génération du document |
| Workspace ID | texte | L’identifiant du workspace contenant le modèle |
| Template ID | texte | L’identifiant du modèle utilisé |
| Template name | texte | Le nom (identifiant) du modèle utilisé |
Fonctionnement de l’action
Lorsque l’action s’exécute, elle :
- Crée un document via l’API PDFMonkey avec le statut
pending, ce qui déclenche immédiatement la génération. - Interroge automatiquement l’API (polling) jusqu’à ce que le document atteigne le statut
successoufailure. - Renvoie le résultat à votre workflow.
L’action bloque donc jusqu’à ce que le document soit prêt. Vous n’avez pas besoin de configurer de polling, de webhooks ou de traitement asynchrone. Lorsque l’étape suivante de votre workflow s’exécute, le document est déjà généré et l’URL de téléchargement est disponible.
Exemple de workflow
Voici un workflow typique qui génère une facture et l’envoie par e-mail au client :
- L’utilisateur clique sur un bouton Générer la facture.
- Dans le workflow, ajoutez l’action PDFMonkey - Generate a Document.
- Définissez Template ID avec l’identifiant de votre modèle de facture (vous pouvez le coder en dur ou le récupérer dynamiquement depuis votre base de données).
- Associez vos données Bubble aux clés de Document data. Par exemple :
customerName→ Current User’s NameinvoiceNumber→ Current Invoice’s NumberlineItems→ Current Invoice’s Items (formaté en JSON)
- L’action attend que le document soit prêt.
- À l’étape suivante, ajoutez une action Send Email et utilisez Result of step X’s Download URL comme pièce jointe.
Publiez votre modèle au préalable
Source de données « List Workspaces »
Le plugin expose également une source de données List Workspaces qui renvoie les workspaces disponibles dans votre compte PDFMonkey. Vous pouvez l’utiliser pour construire des menus déroulants dynamiques ou permettre aux utilisateurs de sélectionner un workspace avant de générer un document.
API Connector
Si vous avez besoin de plus de contrôle sur les requêtes (en-têtes personnalisés, endpoints spécifiques ou accès direct à la réponse complète de l’API), vous pouvez appeler l’API REST PDFMonkey via le plugin API Connector intégré à Bubble.
Quand utiliser l’API Connector
Configurer l’API Connector
- Dans l’éditeur de votre application Bubble, accédez à Plugins et installez le plugin API Connector (s’il n’est pas déjà installé).
- Cliquez sur Add another API et nommez-la
PDFMonkey. - Définissez Authentication sur Private key in header et configurez :
- Key name :
Authorization - Key value :
Bearer VOTRE_CLÉ_SECRÈTE_API
- Key name :
- Ajoutez un nouvel appel API avec les paramètres suivants :
| Paramètre | Valeur |
|---|---|
| Name | Create Document |
| Use as | Action |
| Method | POST |
| URL | https://api.pdfmonkey.io/api/v1/documents |
| Headers | Content-Type: application/json |
- Dans le Body, collez le JSON suivant :
{
"document": {
"document_template_id": "<template_id>",
"status": "pending",
"payload": {
"name": "<name>"
}
}
}
Remplacez <template_id> par l’identifiant de votre modèle (disponible dans votre tableau de bord PDFMonkey) et ajustez les clés du payload pour correspondre aux données dynamiques de votre modèle.
- Cliquez sur Initialize call pour tester la connexion. En cas de succès, Bubble détecte automatiquement les champs de la réponse.
Définissez le statut sur pending
"status": "pending" pour que PDFMonkey commence immédiatement la génération du document. Si vous l’omettez ou le définissez sur "draft", le document est créé mais pas généré. Consultez Statuts des documents pour plus de détails.Utiliser des valeurs dynamiques
Pour transmettre des données dynamiques depuis votre application Bubble, encadrez les paramètres de chevrons (<paramètre>) dans le body de l’API Connector. Bubble les transforme en champs que vous pouvez associer à des valeurs dynamiques dans vos workflows.
Par exemple, pour générer une facture, votre body pourrait ressembler à ceci :
{
"document": {
"document_template_id": "<template_id>",
"status": "pending",
"payload": {
"customerName": "<customer_name>",
"invoiceNumber": "<invoice_number>",
"totalAmount": "<total_amount>"
}
}
}
Chaque <paramètre> devient un champ dans l’action du workflow, que vous pouvez remplir avec les données de votre application Bubble.
Nommage des variables
Récupérer le fichier généré
La génération de documents est asynchrone. Une fois l’appel Create Document effectué, le document n’est pas encore prêt. Vous avez deux options pour récupérer le fichier finalisé :
- Polling : ajoutez un second appel API (
GET https://api.pdfmonkey.io/api/v1/documents/<document_id>) et vérifiez le champstatusjusqu’à ce qu’il atteignesuccess. La réponse inclut alors unedownload_url. - Webhook : configurez un webhook dans PDFMonkey pour notifier votre application Bubble lorsque le document est prêt. Cette approche évite le polling et convient mieux en production.
Dépannage
Échec de la génération
Si l’action du plugin renvoie un statut failure, consultez le champ Failure cause (ou failureCause dans la réponse API) pour connaître le message d’erreur. Les causes fréquentes incluent des erreurs de syntaxe dans votre modèle ou des données dynamiques invalides.
JSON invalide dans l’API Connector
Si vous obtenez une erreur 422 en utilisant l’API Connector, votre body JSON est probablement mal formé. Causes fréquentes :
- Guillemets doubles non échappés dans les valeurs dynamiques : si une valeur saisie par l’utilisateur contient
", elle casse la structure JSON. Nettoyez les données avant de les transmettre. - Sauts de ligne dans les valeurs : les sauts de ligne bruts sont invalides en JSON. Remplacez-les par
\nou<br />avant l’envoi.
Pour en savoir plus sur l’échappement JSON, consultez la section Réponses 422 du guide Zapier (les mêmes principes s’appliquent).
Document bloqué en brouillon
Si votre document est créé mais ne se génère jamais (API Connector uniquement), vérifiez que "status": "pending" est bien inclus dans le body de la requête. Sans cela, PDFMonkey crée le document en tant que brouillon et attend que vous déclenchiez la génération. Consultez Statuts des documents.
pending.URL de téléchargement expirée
L’URL de téléchargement est valide pendant 1 heure. Si votre workflow met plus de temps à traiter le fichier, téléchargez-le immédiatement après la génération ou utilisez un lien de partage pour un accès permanent.
Pour plus de détails, consultez L’URL de téléchargement renvoie une erreur 403.
Étapes suivantes
- 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
- 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 URL de téléchargement et leur expiration
- Découvrez les autres intégrations : Zapier, Make, n8n