I want to integrate an api, make 3 api calls, save the data in a Bubble database, this operation must be done every day

Hello, im trying to integrate the Tech3h’s API to my Bubble app, im stuck beaucause by this API, via this api I’m trying to retrieve ads for available used vehicles from 3 different garages, here’s the link to the Tech3h documentation. Currently, for 1 of the 3 garages, I’m able to obtain in my database all the specific information for each ad (make, model, price, mileage, etc.) in the same line. In addition, Bubble creates a line for each vehicle, but with all the elements in each line.

I’d like to find a solution so that I can converge the feeds from each call api that writes the specific fields to the database for each ad.

The aim is then to make them appear on the site’s index page, which is the showcase.

Why don’t you call directly API from the frontend when you need to show them? This will probably cost you a lot less WU…
However… if you want to create items in DB,
You will need to you Schedule API Workflow on a list (of the API type call) And create item

To do that daily, you can use recurring workflow or Schedule another API that will schedule itself next day

here so more informations, screenshots of my database at the end of the workflow, the configuration of my call api get véhicle and the configuration of my worflow backend




because its really slow and i want it to be instant, everyday or every week i dont really car i just have to be smooth at loading.

Thanks for your time, do you think you could take a look at my work and try to help?
:slight_smile:

Les erreurs sont
A) type of thing doit être du même type que la liste de l’API. Sans la réponse de l’API, je ne peut pas te dire exactement. Mais semble être APi (…) 's vehicule
B) Dans les champs/paramètres, tu dois utiliser THIS… et non result of step… Par exemple: This vehicule’s marque

Petit conseil, dans la majorité des cas, un GET devrait être un DATA et non une action dans l’API Connector. Dans List to run on, au lieu d’utiliser Result of step… (parce que c’est une action), tu utilises Get Data from API directement dans ce champ.

Les Actions devraient être en général réservé aux POST, PUT, PATCH et DELETE

Ho tu es francais ?

La réponse au call API ressemble a ca : {
“total”: 11,
“total_conditions”: 11,
“pagination”: {
“page”: 1,
“per_page”: 800,
“total_pages”: 1
},
“concession”: [
{
“id”: “574”,
“nom”: “SOCIETE D’ECHALLENS MIMIZAN”,
“adresse_code_postal”: “40200”,
“adresse_email”: “Stephane.lemiere@peugeot-mimizan.fr”,
“adresse_ligne_1”: “9b Route de Baleste 40200 Mimizan”,
“adresse_ligne_2”: “”,
“adresse_no_fax”: “”,
“adresse_no_telephone_fixe”: “07 43 36 56 79”,
“adresse_no_telephone_mobile”: “07 69 06 19 82”,
“adresse_pays”: “FR”,
“adresse_ville”: “Mimizan”,
“date_creation”: “20/11/2019”,
“date_maj”: “30/06/2025”,
“no_siret”: “85186919800024”
}
],
“vehicule”: [
{
“id”: “3566644”,
“boite_vitesse”: “Manuelle”,
“categorie”: “SUV 4X2”,
“cnit”: “M10CTRVP0783820”,
“co2”: “126”,
“couleur”: “Noir”,
“couleur_exterieure”: “noir”,
“couleur_interieure”: “”,
“cout_de_transport”: “”,
“critair”: “2”,
“date_changement_etat”: “04/04/2025”,
“date_creation”: “04/04/2025”,
“date_maj”: “29/06/2025”,
“date_mise_en_circulation”: “08/07/2020”,
“energie”: “Diesel”,
“equipements”: [
“6 airbags”,
“Affichage multi-fonctions: 7,0 pouces, écran(s) tactile(s), tableau de bord 1 et 17,8”,
“Airbags rideaux latéraux AV & AR”,
“Antibrouillards AV”,
“Antipatinage”,
" Apple CarPlay et Android Auto",
“Assistance au freinage d’urgence”,
" Bluetooth connexion téléphone, musique en streaming",
"Capacité du coffre(l) : sièges en place, sous tablette : 410, sièges rabattus, au pavillon : 1 289, ",
“Capteurs de distance au stationnement : AR, radar”,
“Climatisation 1 zone”,
“Condamnation centralisée à distance”,
“Contrôle des phares: allumage automatique, réglage en hauteur manuel”,
“Détection panneaux signalisation”,
“Eclair latéral”,
“Ecran de divertissement: 7,0 " tactile, AV et 17,8”,
“ESP”,
“Essuie-glaces à capteur de pluie”,
“Feux à LED”,
“Indicateur de sous-gonflage des pneus”,
“Limiteur de vitesse”,
“Mémoire interne/disque dur 8,00 Gb”,
“Navigation via téléphone mobile”,
“Phares à surface complexe, feux de croisement : halogènes, feux de route : halogènes”,
“Préparation Isofix”,
“Prise(s) 12V : AV et AR”,
“Rails de toit noirs”,
“Reconnaissance vocale : téléphone et navigation”,
“Récupération d’énergie au freinage moteur”,
“Régulateur de vitesse”,
“Réservoir principal 45 litres”,
“Rétroviseurs extérieurs: côté conducteur, côté passager, ton caisse, électriques, chauffants, rappels de clignotants intégrés”,
“Rétroviseurs rabattables électriquement”,
“Sièges AR : banquette fractionnée, 3 places, assise fixe, rabattables : 2/3-1/3, plancher plat, trappe à ski”,
“Synthèse/reconnaissance vocale”,
“Système anti collision”,
“Système de navigation: guidage par carte & voix, info trafic, avec écran tactile, affichage couleur, 7,0 pouces, données sur mémoire interne/disque dur et 17,8”,
“Température extérieure”,
“Volant cuir, réglable en hauteur, réglable en profondeur, multi-fonctions”
],
“externe_reference”: “”,
“flag_accidente”: “2”,
“flag_atelier”: “2”,
“flag_destination”: “3”,
“flag_dispo”: “1”,
“flag_etat”: “3”,
“flag_mode_location”: “”,
“flag_origine”: “”,
“flag_promo”: “2”,
“flag_provenance”: “”,
“flag_qualification”: “1”,
“flag_vente”: “1”,
“garantie”: “12”,
“garantie_nom”: “prenium”,
“genre_national”: “VP”,
“id_commercial”: “8901”,
“id_concession”: “574”,
“id_concession_origine”: “”,
“id_copie”: “”,
“id_repreneur”: “8901”,
“immatriculation”: “FR091FX”,
“import_date”: “”,
“import_origin”: “”,
“import_uid”: “”,
“kilometrage”: “53000”,
“kilometrage_garanti”: “2”,
“marque”: “Citroën”,
“millesime”: “”,
“modele”: “C3 AIRCROSS”,
“modele_annee”: “2020”,
“nom_garantisseur”: “cirano”,
“nombre_cle”: “”,
“nombre_photos”: “15”,
“nombre_place”: “5”,
“nombre_porte”: “5”,
“nombre_proprietaire”: “2”,
“nombre_vitesse”: “6”,
“note_publique”: “Sous réserve d’erreur de saisie des équipements ou de la finition. \n"Les informations relatives à la finition, à la motorisation, au modèle et au kilométrage de ce véhicule sont fournies à titre indicatif. Bien que nous nous efforcions d’assurer leur exactitude, des erreurs peuvent survenir. Il est recommandé de vérifier les détails du véhicule avant l’achat. Aucune responsabilité ne pourra être engagée en cas d’inexactitude."”,
“numero_serie”: “VF72CYHYJL4266897”,
“options”: “”,
“pays_provenance”: “FR”,
“photos”: [
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664573.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664540.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664575.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664576.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664547.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664574.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664526.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664537.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664527.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664530.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664532.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664538.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664534.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664535.jpg”,
https://images-medias1.tec3h.com/vignette/574/l1200/h1200/51664536.jpg
],
“prix_vente_marchand_ht”: “14190.00”,
“prix_vente_marchand_ttc”: “14190”,
“prix_vente_marchand_tva”: “0”,
“prix_vente_public_ht”: “14990.00”,
“prix_vente_public_ttc”: “14990”,
“prix_vente_public_tva”: “0”,
“puissance_fiscale”: “5”,
“puissance_reelle”: “102”,
“reference_interne”: “3551212”,
“site_interne”: “”,
“site_partenaire”: “”,
“stock_emplacement”: “”,
“version”: “BlueHDi 100 S&S BVM6 Shine”
}

Pour les champs dans les paramètres je n’arrive pas a utiliser This véhicule il n’apparait pas lorsque je selectionne This, il n’y a rien a la suite.

Here is the link of the API doc : https://documenter.getpostman.com/view/20628224/2s946ibr3W#a50e17af-e00e-4a3b-ac31-929781489979

This n’est pas disponible parce que tu n’as pas sélectionné le type of thing

Par réponse de l’API , je parlais plus de l’écran API initialized dans l’API Connector,

Est-ce que tu charges toutes les concessions avec 1 call?

Finalement, quand tu envois du json dans le forum, vaut mieux le mettre entre ``` pour une meilleur lisibilité

ho okay autant pour moi ahah, voila donc l’écran API dans le connecter Bubble. Il faut que je réalise 1 call par concession donc 3 calls au total, d’ou l’intéret de vouloir les centraliser dans une database Bubble.

Je ne sais pas quel type of things mettre car lorsque je met “Véhicules” qui est le nom de la database ou j’aimerais que les annonces s’enregistrent, alors après lors du mappage l’option Résult of step 2… n’est plus disponible.

Click sur initialize API et partage l’écran (popup). C’est ce qui nous intéresse.

Mais avec ta réponse et le JSON précédent, le type of thing devrait être A Get Vehicules Mimizan’s vehicule. Ne pas mélanger avec le nom de la BD. Tu roules le flow sur la liste de l’API connector, pas sur la liste de ce que tu veux créer.

Une fois sélectionné, change les champs pour This vehicule…

Ok merci j’ai essayé de faire les corrections que tu m’as apportés, j’ai quelque chose comme ci joint, je t’envoie aussi une photo du pop up. Vois tu des anomalies ?
Je joins aussi une capture de l’état de la database a la suite de l’actualisation du workflow. (comme tu peux voir rien ne s’affiche mais les lignes sont bien crées



je ne pense pas que tu as choisir le type of thing correctement. Mais je ne peux voir le titre complet. Assures-toi de bien choisir A Get Vehicules Mimizan’s vehicule

Corrige les This après

1 Like

Man its works !!! I LOVE YOU i swear.

Thanks you so much for your help i was stuck like since 1 week thanks thanks thanks.

As tu des conseils maintenant que je vais intégrer les 2 autres calls api et faire en sorte que tout les 2 jours le workflow s’actualise ?

1 Like

Tu peux utiliser soit recurring workflow sur un item qui lui fera le schedule on a list sur tes trois concessions (si c’est le même API, alors ce sera la même workflow, mais tu peux avoir un paramètres pour l’ID de concession dynamique, sinon ce sera trois différents workflows). Tu peux aussi avoir un backend WF qui fera la même chose, mais qui aura une étape à la fin pour se replanifier lui même en utilisant current date +days

I’d like my Jwt token to be dynamic, it expires every 7 days, and I want it to be dynamized so I don’t have to worry about it. Do you know of a solution?

Je ne sais pas pourquoi cet API n’utilise pas un standard en client_credentials… ce serait plus simple.

Mais bref, il te faudra stocker le token dans un BD et y faire appel, uniquement en backend, et le renouveller au besoin. Dans ce cas-ci, j’irais pour un recurring workflow sur l’item qui stock la clé d’accès. Une autre solution est de valider la clé avant de l’utiliser (donc un champ clé et un champ date pour l’expiration). Si c’est expiré, on renouvelle, sinon on continue. Le problème c’est que cela multiple les actions car tu dois le faire partout où tu appeles l’API.