Dynamic data in API Connector (json)

Hello everyone,

I’m facing an issue when using the API Connector in Bubble. For example, I’m trying to send a CV and a job offer to the API so it can adapt the CV to the offer, but I’m having trouble retrieving the dynamic fields correctly.

Here is the API request I’m using to send the information:

In my Bubble app, I’m trying to retrieve the CV and job offer from the database fields, using something like Current Page's Candidature's TextFormat for the CV and Current Page's Candidature's CVFormat for the job offer. However, when I pass these values into the API, they are not retrieved and sent properly.

Here’s what I’ve tried:

  • I’ve set up the API in Bubble and replaced the fields with Current Page's Candidature's TextFormat and Current Page's Candidature's CVFormat in the corresponding spots.
  • Despite that, I’m not able to get the API to correctly retrieve these values and use them in the request.

Can anyone help me understand why this isn’t working? Is it a formatting issue or a problem with how I’m passing the dynamic values to the API?

Thanks in advance for your help!

When making calls through the API Connector interface (i.e. when initialising a call) you have to use actual real values…

So your CV and Offre values need to be actual value values

Also, you need to uncheck the ‘Private’ checkbox if you want to be able to define those values dynamically in your app.

1 Like

Also, you may consider making CV and Offre data using the :formatted as json-safe. To do that, you will need to remove the double quotes around theses dynamic fields because Bubble will add them for you.

Thank you for your help !

I’ve removed the double quotes but I don’t know where to add the :formatted as json-safe. Should this be added directly to the connector api?

Thank you

You add that at the end of your expression (using the expression composer) when dynamically setting the values in your API action of datasource.

Thank you, it’s very clear :+1:

I added this to my workflow :

About the double quotes, I’ve removed them like this and it shows me a 400 error. Do you think it’s incorrectly configured?

Vous ne comprenez pas réellement ce que l’on dit avec la partie “dynamique” de l’expression. La première étape sera de supprimer les “value” que vous avez pour CV et offre et inscrire de réelle possibles valeurs (comme vous auriez dans votre BD pour textformat et csvformat. D’ailleurs, enlever formatted as json-safe the l’action create a new extractpdf)
Ne pas oublier de mettre les guillemets dans cette valeur. Une fois ces valeurs inscrites, faites initialize pour l’API call. Si la réponse est bonne, enregistrez-là. À partir de ce ce moment, vous pourrez utiliser cet API soit dans Get data from API (si vous utilisez l’appel en DATA) ou dans les workflow si vous le mettez en action (dans ce cas-ci, ça me semble plus approprié).

C’est dans cet action que vous utiliserez les valeurs dynamique du genre Current page’s Extract PDF’s TextFormat:formatted as json-safe.

Je vous invite à chercher et regarder des tutoriels youtube ou autre pour comprendre le fonctionnement de l’API connector. de nombreux exemples existent aussi pour chatGPT.

Merci pour vos explications détaillées. J’ai regardé pas mal de tutoriel (ex: https://www.youtube.com/watch?v=nO8PSqeJaWk). Et je ne trouve pas trop les réponses à mes questions.

Pour tout vous dire, vos explications dans le premiers paragraphe sont totalement ce que j’ai réalisé à la base, il y a juste la partie “Current page’s Extract PDF’s TextFormat:formatted as json-safe.” que j’ai du mal à savoir où je dois positionner cela :sweat_smile:

Par exemple j’ai ajouté cela directement dans le Body de l’appel API que je réalise dans mon workflow mais cela remonte une erreur 400. J’ai cherché pendant des heures où bien le positionner mais je ne trouve pas et mes tests ne sont pas concluant :sweat_smile: Est-ce bien là ?

Dans mon premier post mes explications et ma réalisation ne sont pas de bonne qualité, veuillez m’excuser j’ai tellement testé plein de choses que je me suis perdu :grimacing:

Peux-tu envoyer des captures à jour (API connector et workflow de l’API, pas du make change or create a new thing)? as-tu bien initialisé ton call API

Voici la première partie de l’API :

La suite :

Le bouton est en mode “Reinitialize call” ce qui indique que l’initialisation est faite.

Le workflow:

C’est ici, quand je met formatted as json-safe que l’erreur 400 apparaît.

Encore une fois merci pour ton aide …

Le problème vient du content dans role user.
Dans API connector, cela devrait être "content":<content>
Dans l’onglet dynamique ce sera arbitrary-text:formatted as json-safe. Dans le arbitrary text tu auras quelque chose comme:

Voici le CV: Current page's extractPDF's TextFormat et voici l'offre d'emploi: Current page's ExtractPDF's CVFormat. Merci d'adapter le CV pour cette offre.

Ma dernière capture d’écran ne s’est pas chargée, il y a deux role user dans api connector. Un pour le CV et un pour l’offre d’emploi, je suppose que cela change quelque chose ?

Oui mais le même concept s’applique
Tu n’as qu’à prendre un nom différent pour <content>comme <content_1> et <content_2> (mais vaut mieux choisir un titre plus représentatif :wink: )

Ça marche, merci beaucoup, si j’ai tout bien compris, cela devrait donner quelques chose comme ceci ?

(j’ai décoché le “private” pour chaque champ")

Veuillez m’excuser je suis encore une fois parti dans tous les sens. Après une petite pause et un peu de réflexion, j’ai réussi !

L’appel API fonctionne bien ! Un grand merci pour votre aide (et votre patience :sweat_smile:)

Maintenant il faut que je cherche pourquoi les champs Current page’s extractPDF TextFormat et CVFormat ne se semble pas se tranmettre à l’API (les champs content et content offre restent vides)

Bonne journée à vous :slight_smile:

1 Like