Hello, I am creating a json object from my airtable data to send it to a google script:
//Table Bail --> xxxxx
//Table Locataire --> xxxxx
//Table Facturation --> xxxxx
//Table Roof --> xxxx
//Table Chambre --> xxxxx
let url = "https://script.google.com/macros/s/XXXXXX";
const id_bail = input.config().id_bail; //Recupere l'id du bail
let table_bail = base.getTable("xxxxxx");
let query_bail = await table_bail.selectRecordsAsync();
let record_bail = query_bail.getRecord(id_bail); //on filtre la base en fonction de l'id du client
//////////////////////////////////////////////////////////////////////
let error_log = record_bail.getCellValue("Error_Log")
let bail_statut = record_bail.getCellValue("Statut_bail")
if (error_log !== null){
console.error(` Oups, une erreur est survenue: \n${error_log}`)
} else if (bail_statut !== "Fini"){
//Table Roof
let id_roof = record_bail.getCellValue("Roof"); //id_roof associé au bail
let table_roof = base.getTable("xxxxxxx");
let query_roof = await table_roof.selectRecordsAsync();
let record_roof = query_roof.getRecord(id_rooff0]); //on filtre la base en fonction de l'id_roof
//Table Chambre
let id_room = record_bail.getCellValue("Chambre"))0].id; //id_chambre associé au bail
let table_room = base.getTable("xxxxxxx");
let query_room = await table_room.selectRecordsAsync();
let record_room = query_room.getRecord(id_room); //on filtre la base en fonction de l'id_roof
//Table Locataire
let id_locataire = record_bail.getCellValue("Locataire")"0].id;
let table_locataire = base.getTable("xxxxxxx");
let query_locataire = await table_locataire.selectRecordsAsync();
let record_locataire = query_locataire.getRecord(id_locataire); //on filtre la base en fonction de l'id du locataire
//Table Garant
let id_garant = record_bail.getCellValue("Garant_infos")"0];
let table_garant = base.getTable("xxxxxxxx");
let query_garant = await table_garant.selectRecordsAsync();
let record_garant = query_garant.getRecord(id_garant); //on filtre la base en fonction de l'id du garant
let payload = {
"Data_locataire": :
{
"locataire_data_bail": record_bail,
"locataire_data_locataire": record_bail.getCellValue("Locataire"),
"locataire_start_bail": record_bail.getCellValue("Start_bail"),
"locataire_first_name": record_locataire.getCellValue("Prenom"),
"locataire_last_name": record_locataire.getCellValue("Nom"),
"locataire_birthday": record_bail.getCellValue("Birthday_Locataire"),
"locataire_birthplace": record_bail.getCellValue("Birthplace_Locataire"),
"locataire_email": record_bail.getCellValue("Email_Locataire"),
"locataire_telephone": record_bail.getCellValue("Telephone_Locataire"),
"locataire_adresse": record_bail.getCellValue("Adresse_Locataire"),
"locataire_nationalite": record_bail.getCellValue("Nationalite_Locataire"),
}
],
"Data_roof": :
{
"roof_name": record_roof.getCellValue("Residences"),
"roof_adresse": record_roof.getCellValue("Adresse"),
"roof_total_superficie": record_roof.getCellValue("Total superficie (m2)"),
"roof_commun_superficie": record_roof.getCellValue("Espace partage (m2)"),
"roof_piece": record_roof.getCellValue("Nombre de piece"),
"roof_piece_desc": record_roof.getCellValue("Pieces desc"),
"roof_all_room": record_roof.getCellValue("Chambres"),
"roof_proprietaire": record_roof.getCellValue("Infos proprietaire"),
"roof_espaces_desc": record_roof.getCellValue("Espaces partages desc"),
"roof_surface_privee": record_roof.getCellValue("Espace prive (m2)"),
"roof_complement_loyer_desc": record_roof.getCellValue("Complement loyer desc"),
"roof_annee_construction": record_roof.getCellValue("Annee construction"),
"roof_inventaire": record_roof.getCellValue("Inventaire"),
"roof_assurance_annexe": record_roof.getCellValue("Assurance_annexe"),
"roof_plan_folder": record_roof.getCellValue("Plan_folder")
}
],
"Data_room": :
{
"room_floor": record_room.getCellValue("Etage"),
"room_number": record_room.getCellValue("Numero"),
"room_ville": record_room.getCellValue("Ville")"0],
"room_price_HC": record_room.getCellValue("Loyer (HC)"),
"room_charges": record_room.getCellValue("Charges"),
"room_price_TCC": record_room.getCellValue("Loyer TCC"),
"room_espace_prive": record_room.getCellValue("Espace prive (m2)"),
"room_espace_partage": record_room.getCellValue("Espace partage (m2)"),
"room_loyer_minore": record_room.getCellValue("Loyer_minore"),
"room_loyer_majore": record_room.getCellValue("Loyer_majore"),
"room_loyer_ref": record_room.getCellValue("Loyer_ref"),
"room_complement": record_room.getCellValue("Complement"),
"room_service": record_room.getCellValue("Service"),
"room_communaute": record_room.getCellValue("Communaute"),
"room_infos": record_room.getCellValue("Info_chambre_4")
}
],
"Data_garant": :
{
"garant_type": record_garant.getCellValue("Type").name,
"garant_prenom": record_garant.getCellValue("Prenom"),
"garant_nom": record_garant.getCellValue("Nom"),
"garant_adresse": record_garant.getCellValue("Adresse"),
"garant_birthday": record_garant.getCellValue("Date de naissance"),
"garant_birthplace": record_garant.getCellValue("Lieu de naissance"),
"garant_email": record_garant.getCellValue("Email"),
}
],
"Doc_type": "Bail"
}
let postOptions = {
method: "post",
headers: {
'Accept' : 'application/json',
},
body: JSON.stringify(payload)
}
const postResults = await fetch(url, postOptions);
//console.log("Génération réussie . Un dossier client a été généré sur le Drive");
//console.log("Répoonse serveur: ", postResults)
//console.log(payload)
} else {
console.error(` Oups, ce client ne fait plus partie des roofers`)
}
I am getting the 30s limit but my Google script works well. I have the impression that my airtable script is waiting for the response from my google script app. I could also connect my google script to Airtable but the work has already been done so I would like to keep that like that.
Best regards