Introducción
Configuremos un script que permita usar Latenode para crear y actualizar un registro en una tabla de la base de datos de Airtable;
Preparación de Airtable
Vaya al sitio web de "Airtable";
Los enlaces a todos los sitios están al final del artículo;
Si ya tenía tablas, vuelva a la página de inicio, cree una nueva con el botón "Empezar desde cero" y seleccione "Kanban";
![]()
![]()
![]()
Después de crearla, seleccione la columna "Priority" en el menú inferior y compruebe que también estén seleccionadas "Status" y "Assignee";
![]()
Si acaba de registrarse, seleccione "Tasks" en el paso titulado "Now, we'll add some info" para crear un tablero Kanban prediseñado con las tres tareas ya añadidas;
![]()
![]()
Añadir un token personal
Vaya al enlace "crear token personal de Airtable";
Haga clic en el botón "Create new token" en la esquina superior derecha;
![]()
Introduzca cualquier nombre que desee, por ejemplo, "AirtableLatenode";
![]()
En "Scope", añada lo siguiente: data.records:read data.records:write schema.bases:read;
![]()
En "Permissions", seleccione el "workspace" deseado al que quiere conceder acceso para gestionarlo mediante la "API";
![]()
Haga clic en "Create token";
![]()
Guarde el token resultante, por ejemplo, temporalmente en un bloc de notas;
Crear un proyecto en Latenode
Vaya a nuestra lista de proyectos en "Latenode";
Vamos a crear un nuevo proyecto;
![]()
A continuación, cree el primer nodo "Webhook";
![]()
![]()
Copie su dirección en su cliente REST o bloc de notas;
Guarde el nodo;
![]()
Cree un nodo "JavaScript" (JS) y copie en él el código del artículo;
Código para el nodo JS
let apiURI, personalToken, newTask, recordID;
apiURI = "https://api.airtable.com/v0";
personalToken = "Bearer [Insert your personal token in place of these square brackets]";
newTask = {
name: , // After the colon and before the comma, select the name field from the received query
status: , // After the colon and before the comma, select the status field from the resulting query
priority: , // After the colon and before the comma, select the priority field from the resulting query
};
if () { // Inside the parentheses, select the recordID field from the resulting query
recordID = ; // After the equal sign and before the semicolon, select the recordID field from the received query
} else {
recordID = false;
}
return {
apiURI,
personalToken,
newTask,
recordID,
}
Por ahora, sin cambiar nada, simplemente guárdelo;
![]()
Inicie el proyecto;
![]()
Con el cliente REST, realice una solicitud pegando la dirección del nodo webhook en la barra de direcciones;
![]()
Solicitud para el cliente REST
curl --request POST --url [insert the address of your webhook in the Latenode project instead of these square brackets]
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'Accept: application/json'
--data 'name=Send data from Latenode!'
--data 'priority=In progress'
--data 'status=Medium'
--data 'recordID='
Vuelva al nodo "JS" y edítelo;
Compruebe que, al colocar el cursor de texto dentro del nodo, estos datos aparezcan en el menú lateral. Si no aparecen, repita la ejecución y la llamada al webhook;
![]()
Inserte en los lugares indicados los datos enviados en la solicitud;
![]()
Guarde los cambios;
![]()
Cree cuatro nuevos nodos "HTTP request" para obtener la lista de bases de datos;
En cada uno, copie el código siguiente y guárdelo. Lo más importante es no confundirlos; puede asignar a cada uno un nombre claro;
REQ01 Obtener la lista de bases
curl --request GET --url '[insert the apiURL variable from the JS node in place of these square brackets]/meta/bases'
--header 'Accept: application/json'
--header 'Authorization: [Insert the personal token in place of these square brackets]'
REQ02 Obtener el esquema y el contenido de la base
curl --request GET --url '[insert in place of these square brackets the variable apiURL from the JS node]/meta/bases/[the ID of your base from the REQ01 query]/tables'
--header 'Accept: application/json'
--header 'Authorization: [Insert personal token]'
REQ03 Crear una nueva entrada en la tabla de tareas
curl --request POST --url '[insert the apiURL variable from the JS node in place of these square brackets]/[The ID of your database received in query REQ01]/[The ID of your table received in query REQ02]' --header 'Authorization: [Insert personal token]'
--header 'Content-Type: application/json'
--data '{
"records": [
{
"fields": {
"Priority": [Substitute the variable priority from the JS node],
"Name": [Substitute the name variable from the JS node ],
"Status": [Substitute the status variable from the JS node]
}
}
]
}'
Ahora los añadiremos uno por uno a la cadena y los ejecutaremos para configurar la obtención de datos;
Cambie todo lo que esté entre corchetes por datos de las consultas y otros nodos;
En cada uno debe añadir el token personal creado;
En los lugares donde se use el acceso a matrices, indique el índice deseado. Comienza en cero, como en otros casos, pese a que en el menú lateral el primero tendrá el número uno;
En la solicitud de creación, no olvide comprobar que POST esté seleccionado como tipo de método;
A continuación aparecen capturas de pantalla de cómo debe quedar cada uno de estos nodos tras realizar todas las modificaciones;
![]()
![]()
![]()
Después de ejecutar la consulta que añade un registro, vaya a la tabla de Airtable y compruebe que haya una nueva tarea con el texto "Send data from Latenode!". Si no es así, revise cada consulta individualmente: quizás en algún lugar no sustituyó los datos u olvidó introducir un token;
Elimine esta tarea;
Al final de la cadena, añada un nodo "Webhook response" para mayor comodidad;
Haga que devuelva el ID del nuevo registro creado;
![]()
Inicie el proyecto y llame al Webhook;
Asegúrese de que el objeto con record_id se devuelva como respuesta a la solicitud;
Vuelva a la tabla de tareas y compruebe que se haya creado;
Espero que también le haya funcionado;
Enlaces útiles:
Básico:
Creación de un token personal de Airtable (Airtable Developers)
Información:
https://developers.google.com/gmail/api/reference/rest/v1/users.messages/send
https://developers.google.com/gmail/api/reference/rest/v1/users.messages#Message


