> 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/connect/delivery-and-retries.md).

# Entrega, reintentos e historial

Cómo entrega Dapta Forms las respuestas a webhooks, HubSpot y correo sin bloquear nunca a quien responde: la cola, el calendario de reintentos con backoff, qué significan Entregado, En curso, Fallido

Cada integración de Dapta Forms sigue la misma regla: **guardar la respuesta primero, entregar después, reintentar si falla, y dejar registro.** Esta página explica ese proceso para que sepas qué esperar cuando un endpoint va lento, un CRM está caído, o alguien envía dos veces.

***

## Nada bloquea una respuesta

Cuando alguien pasa el punto de envío parcial o termina el formulario, sus respuestas se guardan de inmediato y ve el siguiente paso o la pantalla final. Solo entonces Dapta Forms encola una entrega por cada integración activada:

| Integración                    | Qué se encola                                                 | En qué fase                                                                                                                 |
| ------------------------------ | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Webhook**                    | Un POST por webhook                                           | Parcial o completa, según las casillas de **Disparar en**                                                                   |
| **HubSpot**                    | Alta o actualización del contacto y propiedades mapeadas      | Parcial y completa (puntaje, resultado, propiedades estáticas, nota y actividad de envío de formulario solo en la completa) |
| **Correos**                    | **Aviso de nueva respuesta** y **Confirmación al encuestado** | Solo completa                                                                                                               |
| **Sincronización de reservas** | Propiedades de reserva de HubSpot                             | Después de una reserva en el agendador                                                                                      |

Un destino lento o roto, por tanto, nunca ralentiza a quien responde, y nunca pierde las respuestas: el envío ya está en **Respuestas** y en el CSV antes de que se intente ninguna entrega.

***

## Calendario de reintentos

Una entrega se recoge en unos segundos. Si falla (estado distinto de 2xx, redirección, tiempo agotado a los 10 segundos, error de red, error del proveedor) se reintenta con backoff exponencial: unos **1 s, 2 s, 4 s, 8 s…** entre intentos, con tope de 5 minutos, hasta un máximo de **5 intentos**. Mientras hay reintentos pendientes la fila dice **En curso** y el conteo de intentos sube.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-fdc02ef1ddf31e17592e47b4543d8a07d5fa4350%2Fforms-delivery-and-retries-02-in-progress.png?alt=media" alt="El diálogo Historial de webhook con dos filas marcadas En curso, HTTP 500, 2 intentos"><figcaption><p>Entre reintentos, una entrega se muestra como <strong>En curso</strong> con su conteo de intentos.</p></figcaption></figure>

Tras el quinto fallo la entrega se marca como **Fallida** y se conserva como registro, con el último error y la última respuesta del endpoint.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-0cb98abb7b0b1aac3f26d71de2ca8cd8519f6a61%2Fforms-delivery-and-retries-03-failed-row.png?alt=media" alt="Una fila Fallida desplegada en el diálogo Historial de webhook mostrando 5 intentos, el cuerpo en Qué enviamos y la respuesta en Qué volvió HTTP 500"><figcaption><p>Una entrega que se rindió tras <strong>5 intentos</strong>. La transcripción sigue disponible.</p></figcaption></figure>

***

## Qué significan los estados

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-7d6da891fb691c8cd0c53343357d1ba34e49032b%2Fforms-delivery-and-retries-01-history-statuses.png?alt=media" alt="El diálogo Historial de webhook listando filas Entregado, algunas con una insignia Prueba"><figcaption><p>Píldoras de estado y la insignia <strong>Prueba</strong> en un diálogo de historial.</p></figcaption></figure>

| Estado        | Qué significa                                                                                                                                                                                                      | ¿Se reintenta?                                                             |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| **Entregado** | El destino la aceptó (2xx en un webhook, una llamada de API correcta en HubSpot, el correo entregado al proveedor).                                                                                                | No hace falta.                                                             |
| **En curso**  | Encolada, enviándose, o esperando su siguiente intento.                                                                                                                                                            | Sí, automáticamente.                                                       |
| **Fallido**   | Reintentos agotados. La fila conserva el último mensaje de error y, en los webhooks, **Qué volvió**.                                                                                                               | No. Arregla el destino; la siguiente respuesta o **Enviar prueba** pasará. |
| **Omitido**   | No se hizo a propósito porque ya no podía aplicar (por ejemplo una sincronización de reserva en un formulario cuyo destino de HubSpot se apagó entretanto). Se registra una vez con un motivo, nunca se reintenta. | No.                                                                        |

> **⚠️ Nota:** No hay botón de reenvío manual. Las entregas fallidas son un registro, no una cola que puedas reproducir. Si se perdió un lead porque tu endpoint estaba caído, exporta la respuesta desde **Respuestas** o pídele a la persona que vuelva a enviar.

***

## Historial por integración

Cada tarjeta de la pestaña **Conectar** tiene su propio registro: **Historial de webhook**, **Historial de HubSpot** e **Historial de correos**, cada uno se abre con **Ver historial** y muestra las últimas 25 filas, de la más reciente a la más antigua. Las filas de webhook incluyen la petición y la respuesta completas; las de HubSpot incluyen la acción y cualquier error que devolviera el CRM; las de correo muestran qué aviso se envió.

A nivel de cuenta, el inventario de **Webhooks** de la página de [Conexiones](/dapta-docs-es/dapta-forms/connect/connections.md) muestra una columna de **Entrega** por formulario: vacía cuando está sano, o un **{n} fallidas** rojo con **Último fallo {fecha}**. Los fallos se cuentan por formulario, así que un formulario con dos webhooks muestra el mismo conteo en las dos filas.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-54b662bb64626d3cfdefb75f1bf167892d346b91%2Fforms-delivery-and-retries-04-connections-delivery.png?alt=media" alt="La tabla de Webhooks de la página de Conexiones con una insignia roja de 4 fallidas en la columna Entrega"><figcaption><p>El inventario marca los formularios cuyo webhook tiene entregas fallidas.</p></figcaption></figure>

***

## Sin duplicados al reenviar

Cada entrega lleva una clave de idempotencia (`submission:{submissionId}:{phase}:webhook:{index}`, enviada como `x-forms-delivery` y como `id` en el cuerpo). Si la misma sesión envía otra vez la misma fase, por ejemplo porque la persona volvió atrás y pulsó Enviar dos veces, las entregas pendientes de esa fase se reemplazan en lugar de duplicarse, y una fase que ya llegó no se vuelve a encolar. HubSpot se indexa por el correo de quien responde, así que una repetición actualiza el mismo contacto en lugar de crear uno nuevo. En tu propio endpoint, guarda la clave e ignora una petición cuya clave ya procesaste.

## Qué sigue

* [Webhooks](/dapta-docs-es/dapta-forms/connect/webhooks.md) y [Probar y ver el historial de entregas](/dapta-docs-es/dapta-forms/connect/webhooks/test-and-history.md)
* [Cómo funciona la sincronización con HubSpot y solución de problemas](/dapta-docs-es/dapta-forms/connect/hubspot/how-sync-works.md)
* [Correos de respuesta](/dapta-docs-es/dapta-forms/connect/emails.md)
* [Solución de problemas](/dapta-docs-es/dapta-forms/troubleshooting.md)


---

# 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/connect/delivery-and-retries.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.
