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

  1. Ouvrez l’éditeur de votre application Bubble.
  2. Accédez à Plugins et cliquez sur Add plugins.
  3. Recherchez PDFMonkey et installez le plugin PDFMonkey.
  4. 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

ChampTypeRequisDescription
Template IDValeur dynamiqueOuiL’identifiant de votre modèle PDFMonkey (disponible dans les paramètres du modèle)
Document dataPaires clé/valeurOuiLes données dynamiques pour votre modèle ; les clés doivent correspondre aux noms de variables définis dans votre modèle
Document meta-dataPaires clé/valeurNonMétadonnées attachées au document (non accessibles dans le modèle)
FilenameValeur dynamiqueNonUn nom de fichier personnalisé pour le fichier généré

Nommage des variables

Les clés de Document data doivent correspondre exactement aux noms de variables de votre modèle. Consultez la référence sur le nommage des variables pour les règles de formatage.

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) :

ChampTypeDescription
idtexteL’identifiant unique du document généré
Download URLfichierUne URL temporaire pour télécharger le fichier (valide 1 heure)
Public Share LinktexteUn lien de partage permanent (disponible sur les plans Premium)
FilenametexteLe nom du fichier généré
Document meta-datatexteLes métadonnées attachées au document
StatustexteLe statut du document (success ou failure)
Failure causetexteLe message d’erreur en cas d’échec de la génération
Creation DatedateDate de création du document
Generation DatedateDate de fin de génération du document
Workspace IDtexteL’identifiant du workspace contenant le modèle
Template IDtexteL’identifiant du modèle utilisé
Template nametexteLe nom (identifiant) du modèle utilisé

Fonctionnement de l’action

Lorsque l’action s’exécute, elle :

  1. Crée un document via l’API PDFMonkey avec le statut pending, ce qui déclenche immédiatement la génération.
  2. Interroge automatiquement l’API (polling) jusqu’à ce que le document atteigne le statut success ou failure.
  3. 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.

Comme l’action gère le polling pour vous, elle peut prendre quelques secondes selon la complexité de votre modèle. C’est un comportement normal ; Bubble attend le résultat avant de passer à l’étape suivante.

Exemple de workflow

Voici un workflow typique qui génère une facture et l’envoie par e-mail au client :

  1. L’utilisateur clique sur un bouton Générer la facture.
  2. Dans le workflow, ajoutez l’action PDFMonkey - Generate a Document.
  3. 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).
  4. Associez vos données Bubble aux clés de Document data. Par exemple :
    • customerName → Current User’s Name
    • invoiceNumber → Current Invoice’s Number
    • lineItems → Current Invoice’s Items (formaté en JSON)
  5. L’action attend que le document soit prêt.
  6. À 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

Si vos documents générés ne reflètent pas vos dernières modifications, vérifiez que vous avez publié le modèle dans PDFMonkey. Oublier de publier après une modification est une erreur fréquente.

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

Pour la plupart des cas d’usage, le plugin PDFMonkey est plus simple et suffisant. Envisagez l’API Connector si vous avez besoin d’appeler des endpoints non couverts par le plugin (comme lister ou supprimer des documents), ou si vous souhaitez gérer le polling ou les webhooks vous-même.

Configurer l’API Connector

  1. Dans l’éditeur de votre application Bubble, accédez à Plugins et installez le plugin API Connector (s’il n’est pas déjà installé).
  2. Cliquez sur Add another API et nommez-la PDFMonkey.
  3. Définissez Authentication sur Private key in header et configurez :
    • Key name : Authorization
    • Key value : Bearer VOTRE_CLÉ_SECRÈTE_API
  4. Ajoutez un nouvel appel API avec les paramètres suivants :
ParamètreValeur
NameCreate Document
Use asAction
MethodPOST
URLhttps://api.pdfmonkey.io/api/v1/documents
HeadersContent-Type: application/json
  1. 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.

  1. 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

Vous devez inclure "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

Les noms de variables dans votre payload doivent correspondre à ceux utilisés dans votre modèle. Consultez la référence sur le nommage des variables pour les règles de formatage.

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 champ status jusqu’à ce qu’il atteigne success. La réponse inclut alors une download_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.
L’URL de téléchargement expire après 1 heure. Si vous avez besoin d’un lien permanent, utilisez un lien de partage ou stockez le fichier dans votre propre espace de stockage.

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 \n ou <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.

Ce problème ne concerne pas le plugin PDFMonkey, qui définit toujours automatiquement le statut sur 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