> 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/hubspot/booking-sync.md).

# Sincronización de reservas

Marca en el contacto de HubSpot los datos de la reserva cuando alguien reserva desde un paso de Agendador: un valor de etapa, el día en que reservó, la hora en que empieza la reunión, y los datos que

La **sincronización de reservas** es la parte de la tarjeta de HubSpot que se dispara cuando alguien reserva una reunión desde un [paso de Agendador](/dapta-docs-es/dapta-forms/connect/scheduler-and-calendly.md). Una respuesta te dice qué contestó el lead; una reserva te dice que eligió un hueco, qué día lo eligió, y cuándo empieza la reunión. Son hechos distintos, así que van a sus propias propiedades del contacto.

Todo aquí es opcional. Deja un campo en blanco y ese dato simplemente no se escribe.

***

**Paso 1:** Abre el formulario en el editor, ve a la pestaña **Conectar** y pon la tarjeta de **HubSpot** en **Activado**. Baja a **Sincronización de reservas** y llena los campos que quieras.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-a304f793bd14691c74ee0d618cf478294b715fcb%2Fforms-booking-sync-01-booking-sync-fields.png?alt=media" alt="Los campos de sincronización de reservas en la tarjeta de HubSpot, con una propiedad de etapa, un valor de etapa, una propiedad de fecha de reserva, una zona horaria del día y una propiedad de hora de la reunión llenas"><figcaption><p>Los cinco campos de <strong>sincronización de reservas</strong>. Lo que dejes en blanco se salta.</p></figcaption></figure>

| Campo                               | Qué escribe                                                                             |
| ----------------------------------- | --------------------------------------------------------------------------------------- |
| Propiedad de **etapa**              | La propiedad del contacto que marca al lead como agendado, por ejemplo **Lead Status**. |
| Valor de **etapa**                  | El valor fijo que se marca en esa propiedad cada vez que alguien reserva.               |
| Propiedad de **fecha de reserva**   | El día del calendario en que el lead reservó, no el día de la reunión.                  |
| **Zona horaria del día**            | La zona horaria en la que se calcula ese día. En blanco significa UTC.                  |
| Propiedad de **hora de la reunión** | La fecha y la hora en que empieza la reunión, tomadas del agendador.                    |

> **⚠️ Nota:** Estos ajustes se guardan en el formulario **en vivo** en cuanto dejas de escribir. La línea de estado dice **Cambios guardados automáticamente**. A diferencia de las ediciones de diseño o de preguntas, no esperan al **Publicar**.

***

**Paso 2:** Elige cada propiedad desde el selector buscable. Lista tus propiedades de contacto de HubSpot como **Etiqueta (nombre\_interno)**, así puedes buscar por la etiqueta humana o por el nombre interno.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-a9274e4f5a4b983e7315b560373abeea6a7d54e3%2Fforms-booking-sync-02-property-picker.png?alt=media" alt="El selector de propiedad de fecha de reserva abierto con un término de búsqueda, listando propiedades de contacto de HubSpot como etiqueta y nombre interno"><figcaption><p>Todos los selectores de propiedad son buscables y muestran el nombre interno entre paréntesis, así no se pueden confundir dos propiedades de nombre parecido.</p></figcaption></figure>

Si la propiedad que quieres no está en la lista, todavía no existe en tu portal. Créala primero en HubSpot (una propiedad de **fecha** para la fecha de reserva, una de **fecha y hora** para la hora de la reunión), y luego vuelve y reabre el selector. En HubSpot no se crea nada por ti.

El valor de **etapa** es un campo de texto normal, no un selector, porque tiene que coincidir con lo que guarda tu propiedad de HubSpot. Escribe el valor interno exactamente como lo tiene HubSpot: si la opción se llama «Meeting booked» pero se guarda como `MEETING_BOOKED`, escribe `MEETING_BOOKED`. Un valor que HubSpot no reconoce se rechaza y la etapa no se pone.

> **💡 Tip:** La **zona horaria del día** acepta un nombre IANA como `America/Bogota` o `Europe/Madrid`. Si el nombre no se reconoce, el campo avisa **No es un nombre de zona horaria que reconozcamos. El día se calculará en UTC.** y se guarda igual, así que un error de escritura mueve en silencio al día siguiente las reservas hechas de noche.

***

## Por qué las dos fechas son distintas

| Propiedad                           | A qué pregunta responde           | Cuándo se escribe                                               |
| ----------------------------------- | --------------------------------- | --------------------------------------------------------------- |
| Propiedad de **fecha de reserva**   | ¿Cuándo se comprometió este lead? | En cada reserva, aunque el proveedor no reporte hora de inicio. |
| Propiedad de **hora de la reunión** | ¿Cuándo nos reunimos de verdad?   | Solo cuando hay una hora de inicio disponible.                  |

Informar sobre «reuniones agendadas este mes» cuenta el día en que reservó el lead, y por eso la propiedad de **fecha de reserva** existe por su cuenta. Marcarla con el día de la reunión empujaría una reserva hecha el día 31 al mes siguiente.

Las propiedades de **fecha** de HubSpot guardan medianoche UTC, así que solo se conserva el día. La **zona horaria del día** decide qué día es ese: una reserva hecha a las 22:00 en Bogotá sigue siendo el mismo día del calendario allí, pero en UTC ya es el día siguiente.

***

## Qué más lleva una reserva

La página de reserva también le dice a Dapta Forms quién reservó. De ahí salen los datos del invitado:

| Campo de reserva                | Qué contiene                                                                        |
| ------------------------------- | ----------------------------------------------------------------------------------- |
| **Reserva: hora de la reunión** | La hora de inicio de la reunión, tal como la reportó la reserva.                    |
| **Reserva: nombre completo**    | El nombre escrito en la página de reserva.                                          |
| **Reserva: nombre**             | El nombre de pila, separado del nombre completo cuando Calendly no lo envía aparte. |
| **Reserva: apellido**           | El apellido, separado de la misma forma.                                            |
| **Reserva: teléfono**           | El número de teléfono, cuando el tipo de evento lo pide.                            |

Cuáles de estos puedes mapear depende de si el formulario pide un correo por su cuenta.

* **El formulario tiene pregunta de correo.** Esa respuesta es la que identifica al contacto, y toda la respuesta ya se sincronizó para cuando alguien reserva. Solo se ofrece **Reserva: hora de la reunión**, en la pregunta de agendador de la pestaña **Construir**. Las propiedades de reserva de arriba se marcan igual.
* **El formulario no tiene pregunta de correo.** La reserva es el único sitio donde aparece una dirección, así que el correo del invitado de Calendly se convierte en la clave del contacto. Entonces también se ofrecen las filas del invitado: en la pregunta de agendador, y en los mapeos de campo personalizados de la pestaña **Conectar**, en **Campos del sistema**. Cuando alguien reserva, las respuestas que dio antes se reflejan en ese contacto, así que el quiz que pusiste antes del calendario no se pierde.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-a3386aebaec67a3c0da1e7e5c4b9ab53a69dda7d%2Fforms-booking-sync-03-question-booking-row.png?alt=media" alt="El bloque de HubSpot en una pregunta de agendador mostrando la fila Reserva: hora de la reunión y su pista"><figcaption><p>En la pregunta de agendador, el bloque de <strong>HubSpot</strong> mapea lo que produce la reserva. La pista devuelve las fechas escritas a la <strong>sincronización de reservas</strong>.</p></figcaption></figure>

> **⚠️ Nota:** **Reserva: hora de la reunión** en la pregunta se envía como texto, exactamente como lo reportó la reserva. Una propiedad de fecha de HubSpot lo rechazará. Para una propiedad de fecha de verdad, usa la propiedad de **hora de la reunión** en la **sincronización de reservas**, que envía una marca de tiempo correcta.

***

## Qué pasa cuando alguien reserva

1. La persona elige un hueco en el calendario incrustado y confirma en la página de reserva.
2. Dapta Forms registra la reserva y espera un momento a que el calendario se asiente.
3. Lee de vuelta desde Calendly la hora de inicio de la reunión y los datos del invitado.
4. Empareja el contacto de HubSpot por dirección de correo (la del invitado, o la que recogió el formulario) y marca las propiedades que configuraste arriba.
5. En un formulario sin pregunta de correo, las respuestas anteriores se reflejan en ese contacto en la misma pasada.

La entrega es duradera: si HubSpot va lento o no está disponible un momento, la escritura se reintenta en segundo plano en lugar de descartarse. Puedes seguir cada intento en el **Historial de HubSpot** de la misma tarjeta, donde las escrituras de reserva aparecen junto a las de respuesta. Mira [Entrega, reintentos e historial](/dapta-docs-es/dapta-forms/connect/delivery-and-retries.md).

No se escribe nada cuando el contacto no se puede identificar en absoluto, cuando la tarjeta de HubSpot está desactivada, o cuando todos los campos de **sincronización de reservas** están en blanco.

## Qué sigue

* [Paso de agendador y Calendly](/dapta-docs-es/dapta-forms/connect/scheduler-and-calendly.md): añade el paso, elige el tipo de evento y autocompleta el formulario de reserva.
* [Cómo funciona la sincronización y solución de problemas](/dapta-docs-es/dapta-forms/connect/hubspot/how-sync-works.md): la clave del correo, los mapeos en conflicto y cómo leer el historial.
* [Asignar preguntas a propiedades del contacto](/dapta-docs-es/dapta-forms/connect/hubspot/map-questions.md): envía cada respuesta a una propiedad del contacto.
* [Elementos del formulario: UTMs, puntaje, resultado, fecha de envío](/dapta-docs-es/dapta-forms/connect/hubspot/form-elements.md): el resto de metadatos que puede llevar una respuesta.


---

# 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/hubspot/booking-sync.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.
