> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/expert-center/es/faq-and-troubleshooting/iot-logic/how-to-connect-an-iot-logic-webhook-node-to-google-sheets.md).

# Cómo conectar un Nodo Webhook de IoT Logic a Google Sheets

Envíe parámetros telemáticos desde un flujo de IoT Logic a Google Sheets usando el Nodo Webhook. Incluye la configuración del nodo, Apps Script y los niveles de acceso de implementación.

En esta guía, aprenderá a enviar parámetros telemáticos o valores de una fuente de datos externa desde el flujo de IoT Logic de Navixy al Google Sheets usando el Nodo Webhook.

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FN1ViKhMchLe2tVWC9rW5%2Funknown.png?alt=media&amp;token=21f441d8-e064-4336-afcc-c22c5e1779a0" alt="" height="236" width="624">

## Paso 1. Agregue el Nodo Webhook

Una vez que se haya creado su flujo de IoT Logic, agregue un Nodo Webhook y conéctelo al disparador que iniciará la transmisión de datos.

El Nodo Webhook funciona como un mecanismo de envío y olvido. Esto significa que envía la solicitud HTTP de inmediato cuando se activa, pero no espera ni almacena la respuesta del servidor.

Después de agregar el Nodo Webhook, configúrelo de la siguiente manera.

#### URL

Ingrese la URL de la aplicación web de Google Apps Script asociada con la hoja de cálculo de Google a la que desea enviar la información.

#### Encabezados

Agregue el siguiente encabezado HTTP:

| Clave             | Valor            |
| ----------------- | ---------------- |
| Tipo de contenido | application/json |

#### Cuerpo

El cuerpo de la solicitud debe estar en formato JSON. Debe incluir la clave de autenticación y cualquier dato que desee enviar a Google Sheets.

Ejemplo:

*{*

*"key": "MY\_SUPER\_SECRET\_123",*

*"evento": "reporte\_matutino\_de\_combustible",*

*"device\_id": "{{device\_label}}",*

*"timestamp": "{{comb\_current\_time}}"*

*}*

Puede incluir cualquier atributo adicional de IoT Logic o parámetro de telemetría usando sus marcadores de posición correspondientes.

Nota: el campo "key" es obligatorio si su Google Apps Script usa un secreto compartido para autenticar solicitudes entrantes de Webhook. Reemplace "MY\_SUPER\_SECRET\_123" por el secreto configurado en su Google Apps Script.

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FRrdnGQ2FtONud0qqk7Gn%2Funknown.png?alt=media&amp;token=50444694-7408-4931-9d78-f7b713cb468b" alt="" height="497" width="309">

## Paso 2. Configure la hoja de cálculo de Google

Abra su hoja de cálculo de Google, haga clic en Extensions y luego seleccione Apps Script.

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FxBPxi9Ahrz6hYj3isiO4%2Funknown.png?alt=media&amp;token=333a133e-0728-42a2-9439-c9e77e130727" alt="" height="277" width="624">

Esto abrirá el archivo Code.gs, donde agregará el script responsable de recibir las solicitudes de Webhook y escribir los datos en la hoja de cálculo.

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FzGi71dP0c0yoqEGsjbbB%2Funknown.png?alt=media&amp;token=9ceac0d9-d50c-4cf2-84b2-2f275925e9a4" alt="" height="249" width="624">

El siguiente código de ejemplo puede usarse para recibir los valores enviados desde el Nodo Webhook y agregarlos como una nueva fila en su hoja de cálculo de Google.

*function doPost(e) {*

*var SECRET\_KEY = "MY\_SUPER\_SECRET\_123";*

*var data = JSON.parse(e.postData.contents);*

*if (data.key !== SECRET\_KEY) {*

*return ContentService.createTextOutput("Acceso denegado").setMimeType(ContentService.MimeType.TEXT);*

*}*

*var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();*

*sheet.appendRow(\[*

*new Date(),*

*data.name || "",*

*data.device\_id || "",*

*data.longitud || "",*

*data.latitud || ""*

*]);*

*return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);*

*}*

**Nota**: Reemplace el código de ejemplo anterior con el script proporcionado a continuación. También puede personalizar los campos para que coincidan con los datos enviados desde su Webhook de IoT Logic.

El script anterior actúa como un endpoint HTTP POST que recibe solicitudes enviadas por el nodo Webhook de IoT Logic.

Cada vez que se recibe una solicitud, el script primero valida un secreto compartido (SECRET\_KEY) para asegurar que solo las solicitudes de Webhook autorizadas puedan escribir datos en la hoja de cálculo de Google. Si la autenticación es exitosa, la carga útil JSON se analiza y los parámetros especificados —como la marca de tiempo de recepción, el nombre del dispositivo, el ID del dispositivo, la longitud, la latitud o cualquier otro valor de telemetría— se agregan automáticamente como una nueva fila en la hoja de cálculo.

Finalmente, el script devuelve una respuesta que indica si la operación se completó correctamente (Éxito) o fue rechazada debido a una clave de autenticación inválida (Acceso denegado).

Importante: Los nombres de campo usados en el script deben coincidir exactamente con los nombres de parámetro enviados por el Webhook de IoT Logic. A cada valor se accede usando la sintaxis data.\<parameter\_name>, donde \<parameter\_name> corresponde a la propiedad JSON recibida en la solicitud.

Por ejemplo, si el Webhook envía el siguiente parámetro:

*{*

*"Combustible\_level": 68.5*

*}*

Apps Script debe hacer referencia a ello como:

*data.fuel\_level*

Si el script hace referencia a:

*data.fuel\_level\_march*

El valor no se llenará porque no existe ningún parámetro con ese nombre en la carga JSON entrante. Como resultado, la celda correspondiente en Google Sheets permanecerá vacía.

Este es uno de los errores de configuración más comunes al integrar el Webhook de IoT Logic con Google Sheets. Verifique siempre que los nombres de los parámetros en el cuerpo de Webhook coincidan exactamente con los que se usan en el código de Apps Script, incluidas las mayúsculas, los guiones bajos y la ortografía.

Una vez que haya terminado de hacer coincidir el cuerpo JSON con el código de Apps Script, haga clic en el botón Implementar.

En Quién tiene acceso, asegúrese de seleccionar Cualquiera.

Esta configuración es necesaria porque, cuando el Nodo Webhook envía una solicitud HTTP POST a la URL de la aplicación web de Google Apps Script, la solicitud se recibe como un cliente anónimo (sin las credenciales de su cuenta de Google).

Si el nivel de acceso está configurado como:

* Solo yo: Google rechazará la solicitud o exigirá autenticación.
* Cualquiera: Google aceptará la solicitud POST sin exigir que el remitente inicie sesión.

Por esta razón, Cualquiera es el nivel de acceso recomendado al recibir solicitudes de proveedores externos de Webhook, como Navixy, ngrok, Postman, curl o cualquier otro cliente HTTP de terceros.<br>

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FpUD1naI3DbunN0V3zmhD%2Funknown.png?alt=media&amp;token=aa405c86-ae6d-48ca-bb88-e00bc7290d45" alt="" height="409" width="390">

Seleccione Nueva implementación y luego elija Aplicación web en el menú de tipos de implementación. El proceso de implementación puede tardar unos momentos. Una vez que se complete, se generará una URL de la aplicación web. Copie esta URL y péguela en el campo URL del Nodo Webhook en su flujo de IoT Logic. La URL de la aplicación web es el endpoint que recibirá las solicitudes HTTP POST enviadas por el Nodo Webhook.

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2Fk4TCKGYMxwcPb4kzvPxo%2Funknown.png?alt=media&amp;token=c0e5a05f-5a90-43d5-82b3-c5c068dc5b35" alt="" height="494.99999999999994" width="624">

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FH8Ullj2zVuFZs4lHGItx%2Funknown.png?alt=media&amp;token=f63312b5-a3fa-40c2-83e0-ef977a06fd05" alt="" height="492" width="624">

#### Actualizar Apps Script

Si más adelante necesita modificar el Apps Script, no necesita crear una nueva implementación.

En su lugar, haga clic en Implementar → Administrar implementaciones, seleccione la implementación existente y haga clic en Editar (ícono de lápiz). Después de guardar y volver a implementar la versión actualizada, los cambios realizados en el script surtirán efecto de inmediato y se mantendrá la misma URL de la aplicación web.

Esto le permite actualizar el script sin tener que modificar la configuración del Webhook en IoT Logic.

<img src="https://3386484127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2FsfpLsoQucj997CWAc2oS%2Funknown.png?alt=media&amp;token=7270bc46-c379-47a1-91b3-e6b43edd8d7a" alt="" height="613" width="624">

Después de completar todos los pasos descritos en esta guía, la conexión entre IoT Logic y Google Sheets debería establecerse correctamente.

Esta integración proporciona una forma simple y eficaz de registrar datos de telemetría, parámetros externos o atributos personalizados de IoT Logic para reportes, análisis, auditoría o integración con otras herramientas de Google Workspace.

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/expert-center/es/faq-and-troubleshooting/iot-logic/how-to-connect-an-iot-logic-webhook-node-to-google-sheets.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
