> For the complete documentation index, see [llms.txt](https://docs.dapta.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapta.ai/dapta-docs-es/dapta-forms/security-and-privacy.md).

# Seguridad y privacidad

Qué guarda Dapta Forms con una respuesta y qué no recoge nunca, cómo se protegen las credenciales de las integraciones, cómo se firman los webhooks, cómo se limita la tasa del formulario público, quié

Dapta Forms recoge las respuestas que te da la gente, y nada más. Esta página explica exactamente qué se guarda, qué no se recoge nunca, cómo se protegen tus credenciales de integración y las entregas de webhook, y cómo borras datos cuando ya no los necesitas.

***

## Qué se guarda con una respuesta

Cada respuesta es una fila por persona y por sesión. Contiene:

| Se guarda             | Detalle                                                                                                                                                                                   |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Respuestas            | Un valor por pregunta, indexado por la **clave de campo** de esa pregunta.                                                                                                                |
| Puntaje               | El puntaje total, recalculado en el servidor a partir de tu formulario publicado.                                                                                                         |
| Marcas de tiempo      | Cuándo empezó la persona, cuándo se capturó una parcial, y cuándo completó.                                                                                                               |
| Parámetros de campaña | Cualquier `utm_source`, `utm_medium`, `utm_campaign`, `utm_term` y `utm_content` que viniera en el enlace que abrió.                                                                      |
| ID de sesión          | Un id aleatorio creado por pestaña del navegador, que sirve para mantener una respuesta por persona en lugar de muchas.                                                                   |
| Archivos subidos      | Cuando el formulario tiene una pregunta **Subir archivo**: el archivo en el almacenamiento, más su nombre, su tamaño y el tipo que reportó el navegador, en la respuesta. Mira más abajo. |

Todo eso lo ves en **Respuestas**, y los mismos campos van al CSV. Si un paso se responde con una reserva de Calendly, los datos de la reserva (el correo y el nombre del invitado y la hora de la reunión) vienen con ella.

***

## Qué no se recoge nunca

Dapta Forms no guarda nada de lo siguiente con una respuesta:

* **Ninguna dirección IP.** El formulario público se limita por dirección, pero ese contador vive solo en memoria y nunca se escribe junto a una respuesta.
* **Ninguna huella de dispositivo o navegador.** Ni agente de usuario, ni tamaño de pantalla, ni sistema operativo.
* **Ninguna ubicación.** Ni país, ni ciudad, ni geolocalización.
* **Ningún referente.** De dónde vino la visita solo se sabe por los parámetros UTM que pongas en tus propios enlaces.

Los números del embudo en **Analíticas** se construyen con esos mismos ids de sesión: vistas, inicios, vistas de paso y envíos. No hay desglose por dispositivo ni informe geográfico porque esos datos no se recogen en primer lugar.

> **⚠️ Nota:** Si añades un ID de **Google Tag Manager**, **píxel de Meta**, **PostHog** o **seguimiento de HubSpot** en **Conectar → Seguimiento y píxeles**, ese proveedor recoge lo que recoja su propio script, bajo su propia política de privacidad. Sin ningún ID definido, un formulario publicado hace cero peticiones a terceros. Mira [Seguimiento y píxeles](/dapta-docs-es/dapta-forms/connect/tracking-and-pixels.md).

***

## Credenciales de las integraciones

Conectas HubSpot y Calendly una vez para todo el workspace, en la página de **Conexiones**. Cuando pegas un token, el campo te dice qué pasa con él: *El token se valida, se cifra y se guarda en el servidor. No se vuelve a mostrar nunca.*

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-7859344e16da94200d3ba95e125df0c4af542507%2Fforms-connections-02-hubspot-connected.png?alt=media" alt="La tarjeta de HubSpot en la página de Conexiones mostrando la insignia Conectado, Conectado como HubSpot, terminado en los últimos cuatro caracteres, y el botón Desconectar"><figcaption><p>Un proveedor conectado muestra solo la etiqueta de la cuenta y los últimos cuatro caracteres del token. El token en sí no se vuelve a mostrar.</p></figcaption></figure>

* La tarjeta solo muestra la etiqueta de la cuenta, los últimos cuatro caracteres y la fecha en que conectaste.
* No hay forma de leer de vuelta un token guardado, ni desde la interfaz ni desde una exportación.
* Para rotar un token, haz clic en **Desconectar** y conecta otra vez con el nuevo.
* Solo un **admin** o un **owner** puede conectar o desconectar un proveedor.

Tu **Secreto de firma** de webhook funciona igual. Una vez guardado, el campo dice *Hay un secreto definido. Déjalo en blanco para conservarlo, o escribe uno nuevo.* y nunca vuelve a mostrar el valor.

Nada de esto llega a quien responde. La página pública del formulario se sirve solo con tus preguntas y tu diseño: las URLs de webhook, los secretos de firma y los mapeos del CRM se quitan antes de mandar el formulario a un navegador.

***

## Entregas de webhook

Los webhooks son el único sitio donde tus datos salen de Dapta a propósito, así que tienen sus propias barreras.

* **Solo HTTPS.** La **URL del endpoint** tiene que empezar por `https://`. El `http://` pelado se rechaza salvo en `localhost` mientras desarrollas.
* **Firmados a petición.** Define un **Secreto de firma** y cada entrega lleva una cabecera `X-Forms-Signature` con un HMAC-SHA256 del cuerpo exacto, para que tu endpoint pueda demostrar que la petición vino de tu formulario. Mira [Verificar la firma](/dapta-docs-es/dapta-forms/connect/webhooks/verify-signature.md).
* **Las direcciones privadas se rechazan.** Si una URL resuelve a una dirección privada, reservada, de loopback o interna, la entrega se bloquea antes de enviar nada y la fila del historial lo explica: *Bloqueado antes de enviar: esa dirección es privada, reservada o interna, y nunca mandamos POST ahí.*
* **Las redirecciones nunca se siguen.** Una respuesta `3xx` cuenta como fallo, así que una entrega no puede rebotar a una dirección que tú no elegiste.
* **Acotadas.** Cada intento se agota a los 10 segundos, y una entrega se reintenta como mucho cinco veces antes de marcarse como **Fallida**.

Cada intento, con lo que se envió y lo que volvió, se conserva en el **Historial de webhook** de la tarjeta. Lee [Entrega, reintentos e historial](/dapta-docs-es/dapta-forms/connect/delivery-and-retries.md) para el ciclo completo.

***

## Archivos subidos

Una pregunta [Subir archivo](/dapta-docs-es/dapta-forms/builder/question-types/file-upload.md) guarda el archivo que la gente adjunta. Se maneja aparte de las respuestas, y sus reglas son propias.

* **El archivo nunca pasa por los servidores de Dapta.** Al navegador se le da una dirección de un solo uso que puede escribir un archivo y nada más, y manda los bytes directo al almacenamiento.
* **Esa dirección caduca en minutos.** También caduca cada dirección que se usa para volver a leer un archivo. Los enlaces se crean en el momento del clic, y nunca se escriben en una página, en un correo, en un payload de webhook ni en la exportación a CSV.
* **El tipo se verifica.** Antes de guardar una respuesta, el contenido real del archivo se compara con su extensión. Un archivo cuyos bytes no coinciden con su nombre se rechaza y el envío falla.
* **Los programas y las páginas web se rechazan siempre**, en todos los formularios, sin importar qué acepte la pregunta. Mira [Subir archivo](/dapta-docs-es/dapta-forms/builder/question-types/file-upload.md).
* **Solo tu workspace los puede leer.** No existe una URL pública para un archivo subido, así que no hay nada que compartir por accidente ni nada que adivinar.

***

## Límites de tasa en el formulario público

La superficie pública (cargar un formulario, enviarlo, registrar un evento de embudo, confirmar una reserva) se limita por dirección IP: una ráfaga de 60 peticiones, que se recarga a razón de una por segundo. Pasado eso, la petición se contesta con `429` y el mensaje *Demasiadas peticiones. Ve más despacio.* más una pista `Retry-After`.

Esto protege tu formulario del spam de envíos y de que alguien raspe tu configuración. Una persona real rellenando un formulario nunca se acerca al límite.

***

## Quién puede ver qué

Los workspaces son la frontera de privacidad. Un formulario, sus respuestas y sus analíticas pertenecen a un workspace, y solo la gente de ese workspace puede llegar a ellos.

| Rol        | Qué puede ver y hacer                                                                                                                                                                                                                    |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Member** | Sus propios formularios: construir, publicar, borrar, leer respuestas y analíticas, configurar webhooks y mapeos de campos, gestionar su propia página pública.                                                                          |
| **Admin**  | Todo lo que puede un member, sobre los formularios de todo el mundo, más invitar gente, cambiar roles, activar o desactivar miembros, editar el kit de marca y los correos de notificación, y conectar y desconectar HubSpot y Calendly. |
| **Owner**  | Todo lo que puede un admin, más quitar a un miembro que ya aceptó y actuar sobre otros owners. Un workspace siempre conserva al menos un owner.                                                                                          |

Cambiar de workspace cambia todo con él: nunca ves los formularios ni las respuestas de otro workspace en la lista. Quitar a un miembro le retira el acceso y deja intactos los formularios y las respuestas. Mira [Miembros y roles](/dapta-docs-es/dapta-forms/account/members-and-roles.md).

***

## Borrar datos

Tú controlas la retención: no se borra nada de forma automática, y no se conserva nada una vez que lo borras, con una excepción que se explica abajo para los archivos subidos.

**Borrar una respuesta:** abre **Respuestas**, usa la acción de fila **Eliminar** y confirma *¿Eliminar esta respuesta? Esto no se puede deshacer.* Las respuestas, el puntaje y las marcas de tiempo se van con ella. Un archivo que la persona haya subido deja de aparecer, pero el archivo guardado no se borra.

**Borrar un formulario y todo lo que recogió:** abre el menú de tres puntos en la fila del formulario en **Formularios** y elige **Eliminar**. La confirmación dice *¿Eliminar este formulario y todas sus respuestas?* Borrar el formulario quita sus respuestas, sus eventos de embudo, sus reservas y sus anulaciones de correo propias, todo de una vez. Los archivos que subieron sus respuestas no se borran.

> **⚠️ Nota:** Ninguno de los dos borrados se puede deshacer, y ninguno alcanza a las copias que ya salieron. Un contacto que creaste en HubSpot, o un payload que tu endpoint de webhook ya guardó, hay que borrarlo también allí.

***

## Cerrar sesión

**Cerrar sesión** en el menú de perfil termina más que la pestaña actual. Revoca tu sesión de Dapta Forms y además termina el inicio de sesión de Dapta que comparte, así que también sales de los otros productos de Dapta en ese navegador. Vuelves a la tarjeta de inicio de sesión con **Continuar con Dapta**.

Una sesión que simplemente caduca sola es distinta: solo termina tu sesión de Forms y deja en paz el inicio de sesión de Dapta.

***

## Reportar un problema de seguridad

Si crees que has encontrado una vulnerabilidad en Dapta Forms, no abras un issue público. Escribe a `security@dapta.ai` con una descripción, el impacto y los pasos para reproducirla. El proyecto también acepta avisos privados en su [repositorio de GitHub](https://github.com/Dapta-Tech/dapta-forms).

***

## Qué sigue

* [Webhooks](/dapta-docs-es/dapta-forms/connect/webhooks.md): URL del endpoint, secreto de firma y qué dispara una entrega.
* [Verificar la firma](/dapta-docs-es/dapta-forms/connect/webhooks/verify-signature.md): comprueba que una petición vino de verdad de tu formulario.
* [Miembros y roles](/dapta-docs-es/dapta-forms/account/members-and-roles.md): quién puede hacer qué en un workspace.
* [Respuestas](/dapta-docs-es/dapta-forms/results/submissions.md): lee, filtra y borra respuestas.
* [Seguimiento y píxeles](/dapta-docs-es/dapta-forms/connect/tracking-and-pixels.md): las etiquetas de analítica que puedes añadir tú.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dapta.ai/dapta-docs-es/dapta-forms/security-and-privacy.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
