Run in Postman
En este artículo:
- Permisos necesarios
- Diferencias entre los endpoints de identificación interna y externa
- Endpoints de gestión de eventos
- Endpoints de asistencia a eventos
- Endpoints de estado del participante
- Endpoints de asociación de listas
- Configurar los valores de la aplicación
Permisos necesarios
Para hacer una solicitud a uno de los endpoints de eventos de marketing a través de la API, se requieren los siguientes permisos:crm.objects.marketing_events.read: da permiso para obtener datos de eventos de marketing y asistencia.crm.objects.marketing_events.write: da permisos para crear, eliminar o hacer cambios en la información de eventos de marketing.
Diferencias entre los endpoints de identificación interna y externa
Muchos de los endpoints que se indican a continuación ofrecen dos formas distintas de identificar un evento que se quiere obtener o actualizar. Aunque el resultado final para endpoints similares puede ser el mismo, difieren principalmente en los ID asociados que proporcionas:- Endpoints que utilizan ID externos: los endpoints que requieren los parámetros
externalEventIdyexternalAccountIdsolo funcionarán en la misma aplicación que creó originalmente el evento. Por ejemplo, si has creado dos aplicaciones públicas, denominadas App A y App B, y has creado un evento de marketing mediante la autenticación y los ID asociados a App A, solo App B puede leer, cambiar y añadir nuevos participantes al evento. Si intentas acceder al mismo evento con App B utilizando los mismos externalEventId y externalAccountId, se producirá un error 404. - Endpoints que utilizan objectId: los endpoints que requieren
objectIdpueden usarse para acceder a un evento por cualquier aplicación con los permisos asociados que se mencionan en la sección anterior, independientemente de la aplicación que creó originalmente el evento. Si App A creó un evento de marketing, App B puede seguir leyendo, actualizando o añadiendo participantes a través de endpoints basados en elobjectId.
Endpoints de gestión de eventos
Las siguientes secciones proporcionan información sobre las propiedades más comunes de los eventos y sobre cómo utilizar los distintos endpoints de gestión de eventos para crear, leer, actualizar y archivar eventos.Propiedades de eventos
Las siguientes propiedades están disponibles para obtener y actualizar información cuando se usan los endpoints de gestión de eventos:| Parámetro | Tipo | Descripción |
|---|---|---|
eventName | Cadena | El título del evento. |
eventType | Cadena | El tipo de evento (ejemplo, webinario, feria comercial, etc.). |
eventOrganizer | Cadena | La persona o la organización a cargo del evento. |
eventDescription | Cadena | Una descripción del evento. |
eventUrl | Cadena | Una URL a la que los usuarios pueden navegar para registrarse al evento o conocer más información. |
eventCancelled | Booleano | Si el evento está cancelado o no. |
eventStartTime | Cadena | Una marca de tiempo con el formato ISO 8601 de la hora de inicio del evento. |
eventEndTime | Cadena | Una marca de tiempo con el formato ISO 8601 de la hora de finalización del evento. |
Crear un evento
Para crear un evento de marketing puedes hacer una solicitudPOST a /marketing/v3/marketing-events/events e incluir los datos eventName, externalEventId, externalAccountId y eventOrganizer en el cuerpo de la solicitud. Si quieres, puedes indicar en tu solicitud las propiedades adicionales que figuran en la tabla anterior.
Por ejemplo, si el externalAccountId de tu app es "12345" y el externalEventId de tu evento en la app es "67890", podrías crear un nuevo evento llamado "Winter webinar" con una solicitud que se parecería a la siguiente:
Actualizar propiedades de eventos mediante ID externos
Para crear o actualizar eventos de marketing, haz una solicitudPOST al endpoint /marketing/v3/marketing-events/events/upsert. Puedes incluir cualquier customProperties propiedad personalizada junto con cualquier otro detalle del evento (como su nombre, hora de inicio y descripción).
Si ya hay un evento de marketing con el ID especificado en tu solicitud, se actualizará. De lo contrario, se creará un nuevo evento.
Por ejemplo, la siguiente solicitud crearía un evento con el ID 4 llamado “Virtual cooking class”:
Actualizar propiedades de eventos mediante el objectId
Una vez creado un evento, puedes actualizar sus propiedades haciendo una solicitudPATCH a /marketing/v3/marketing-events/{objectId}.
- Para obtener el
objectIdde un evento de marketing específico, sigue las instrucciones de este artículo de la base de conocimientos para ver los detalles del evento en tu cuenta de HubSpot y luego, localiza el ID en el campo Record ID. La direcciónobjectIdtambién se devolverá en la respuesta cuando se cree un evento correctamente. - También puedes hacer una solicitud
GETal punto de terminación/marketing/v3/marketing-eventsdescrito en la siguiente sección. - Si tienes la dirección
externalEventIdde un evento, puedes incluirla como ruta al hacer una solicitudGETa/marketing/v3/marketing-events/{externalEventId}/identifiers. La respuesta incluirá todos los eventos de marketing junto con los identificadores pertinentes de cada evento (es decir, elobjectIddel evento, suappInfo, elmarketingEventName, y elexternalAccountId).
Detalles del evento
Para obtener una lista de todos los eventos de marketing junto con sus propiedades, haz una solicitudGET a /marketing/v3/marketing-events.
Si necesitas obtener los detalles de un evento de marketing específico por el Record ID de HubSpot, puedes proporcionar el ID como objectId en una solicitud GET a /marketing/v3/marketing-events/{objectId}.
Eliminar un evento
Para eliminar un evento de marketing, envía una solicitudDELETE a /marketing/v3/marketing-events/{objectId} con la dirección objectId asociada al evento.
Si tiene éxito, recibirás una respuesta 204 No Content.
Actualización en bloque de varios eventos
Para actualizar varios eventos de marketing en bloque, puedes hacer una solicitudPOST a /marketing-events/v3/marketing-events/batch/update y proporcionar las propiedades que quieres actualizar en cada evento dentro de la matriz de entradas del cuerpo de la solicitud.
Por ejemplo, si quieres actualizar varias propiedades de dos eventos de marketing con los ID de objeto 58237132332 y 54073507364 en una única solicitud, el cuerpo de la solicitud sería similar al siguiente:
Endpoints de asistencia a eventos
Los endpoints de estado de asistencia a un evento permiten registrar las actividades de registro de un contacto, como si se registró, asistió o canceló su registro en el evento. Por ejemplo, puedes usar este endpoint para registrar que un contacto de HubSpot se registró en un evento de marketing.Actualizar la asistencia mediante el evento objectId
Si quieres utilizar la direcciónobjectId de un evento de email marketing, puedes utilizar el ID de contacto del contacto para el que quieres registrar el estado de participación, o bien puedes utilizar su dirección de email.
- Para utilizar el ID de un contacto, haz una solicitud POST a
/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/createy, a continuación, proporciona el ID del contacto utilizando el campoviddentro de la matrizinputsdel cuerpo de la solicitud. Por ejemplo, el cuerpo de la solicitud que se muestra a continuación proporciona un ejemplo de actualización de los datos de asistencia de un contacto con un ID47733471576y especifica cuándo el asistente entró y salió del evento mediante las propiedadesjoinedAtyleftAt:
- Para utilizar el correo electrónico de un contacto, haz una solicitud POST a
/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/email-createy, a continuación, proporciona el correo electrónico del contacto utilizando el campoemaildentro de la matrizinputsdel cuerpo de la solicitud.- Si estás creando un nuevo contacto, puedes incluir el campo
contactPropertiesdentro de la matrizinputsdel cuerpo de la solicitud para definir cualquier propiedad asociada en el contacto recién creado. De lo contrario, si el contacto ya existe, el valorcontactProperties, proporcionado en la solicitud, no se actualizará . - Por ejemplo, el cuerpo de la solicitud que se muestra a continuación proporciona un ejemplo de actualización de los datos de asistencia de un contacto con la dirección de correo electrónico
[email protected], y especifica cuándo el asistente entró y salió del evento en de los camposjoinedAtyleftAtdentro del objetopropertiesde la matrizinputs:
- Si estás creando un nuevo contacto, puedes incluir el campo
objectId: el Record ID del evento de marketing en tu cuenta de HubSpot. Consulta la sección anterior para obtener más detalles sobre el uso de objectId de un evento frente al uso de sus ID externos.subscriberState: una enumeración que coincide con el nuevo estado de asistencia del contacto:REGISTERED: indica que el contacto de HubSpot se registró en el evento.ATTENDED: indica que el contacto de HubSpot asistió al evento. Si estás actualizando el estado de un contacto a ATTENDED, también puedes incluir las marcas de tiempojoinedAtyleftAtcomo parámetros en el cuerpo de la solicitud, especificados en el formato ISO8601 Instant.CANCELLED: indica que el contacto de HubSpot, que se había registrado previamente en el evento, ha cancelado su registro.
Actualiza la asistencia utilizando los ID externos del evento
Si utilizas los endpoints que requieren la direcciónexternalEventId de la aplicación, puedes utilizar los ID de contacto o la dirección de correo electrónico de los contactos existentes:
- Si quieres usar los ID de contacto de los contactos existentes:
- Haz una solicitud
POSTa/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create, utilizando el ID del evento desde tu aplicación externa como elexternalEventId. - En el cuerpo de la solicitud, proporciona un objeto
inputsque incluya los siguientes campos:interactionDateTime: la fecha y la hora en las que el contacto se suscribió al evento.vid: el ID de contacto de un contacto existente.
- Haz una solicitud
- Si quieres usar la dirección de correo electrónico de uno de los asistentes al evento:
- Haz una solicitud
POSTa/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create. - En el cuerpo de la solicitud, proporciona un objeto
inputsque incluya los siguientes campos:interactionDateTime: la fecha y la hora en las que el contacto se suscribió al evento.email: la dirección de correo electrónico del asistente como el valor del campo de correo electrónico dentro de una entrada.
- Si la dirección de correo electrónico que incluyes no coincide con la dirección de un contacto existente, se creará un nuevo contacto.
- Haz una solicitud
externalEventId: el ID del evento de marketing. Consulta la sección anterior para obtener más detalles sobre el uso de objectId de un evento frente al uso de sus ID externos.subscriberState: una enumeración que coincide con el nuevo estado de asistencia del contacto:REGISTERED: indica que el contacto de HubSpot se registró en el evento.ATTENDED: indica que el contacto de HubSpot asistió al evento. Si estás actualizando el estado de un contacto a ATTENDED, también puedes incluir las marcas de tiempojoinedAtyleftAtcomo parámetros en el cuerpo de la solicitud, especificados en el formato ISO8601 Instant.CANCELLED: indica que el contacto de HubSpot, que se había registrado previamente en el evento, ha cancelado su registro.
Endpoints de estado del participante
Puedes usar los endpoints de participación para recuperar los datos de los participantes en tus eventos de marketing. Puedes consultar datos como las métricas agregadas de un evento en específico, así como los datos de participación de un contacto o evento específico. A continuación puedes consultar los endpoints de participación disponibles. Para consultar información completa de todos los parámetros disponibles con cada endpoint, consulta la documentación de referencia.Leer las participaciones de un contacto específico
Para obtener los datos de participación en un evento de un contacto en específico, realiza una solicitudGET a /marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown, utilizando el ID o la dirección de correo electrónico del contacto como parámetro de ruta contactIdentifier.
La respuesta incluirá un resumen de la participación del contacto en el evento, en el campo properties:
Leer los datos del desglose de participación
Para consultar un desglose de los datos de participación en un evento específico, utiliza elexternalAccountId y el externalEventId del evento para hacer una solicitud GET a /marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown.
Consultar contadores de participación
Para consultar un resumen agregado de la participación en un evento, utiliza elexternalAccountId y el externalEventId del evento para hacer una solicitud GET a /marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}.
La respuesta incluirá los recuentos totales de asistencia:
Filtrar los datos de desglose de participación
Cuando obtienes datos de desglose o de participación en eventos de un contacto específico, puedes filtrar los datos resultantes usando los campos contactIdentifier, estado, límite o después como parámetros de consulta en tu solicitud.| Parámetro de consulta | Tipo | Descripción |
|---|---|---|
contactIdentifier | Cadena | La dirección de correo electrónico o el ID de un contacto específico |
state | Enumeración | El estado de participación del evento. Los estados de participación son:
|
limit | Número | El límite de los resultados devueltos. De forma predeterminada, el límite se define como 10. El intervalo válido es de 1 a 100. |
after | Número | Se utiliza para la paginación entre los resultados de la respuesta. Consulta la información proporcionada en la página anterior de datos de respuesta para determinar el próximo índice de resultados que se devolverá. |
Endpoints de asociación de listas
Puedes usar los endpoints descritos en las secciones siguientes para gestionar asociaciones entre listas y eventos de marketing. Muchos de estos endpoints requieren unlistId como parámetro de ruta, que puedes encontrar en la página de detalles de la lista en tu cuenta de HubSpot:
- En tu cuenta de HubSpot, navega a CRM > Listas.
- Haz clic en el nombre de una lista.
- En la parte superior derecha, haz clic en Detalles.
- En el panel derecho, el ID de la lista aparecerá en ID de listas para integraciones de API. Puedes hacer clic en Copiar ID de lista para copiar el ID en el portapapeles.

- En tu cuenta de HubSpot, navega a CRM > Contactos.
- En la parte superior izquierda, haz clic en Contactos y en el menú desplegable, selecciona Eventos de marketing.
- Haz clic en el nombre de un evento de marketing.
- En la pestaña Rendimiento, haz clic en Listas para ampliar la sección y, a continuación, haz clic en la pestaña Listas agregadas a través de asociaciones.

Crear una asociación entre una lista y un ID de evento de marketing
Para crear una nueva asociación entre un evento de marketing y una lista existente, haz una solicitudPUT a /marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}.
Si tiene éxito, recibirás una respuesta 204 No content.
Crear una asociación entre una lista y un evento externo e ID de cuenta
Para crear una nueva asociación entre un evento de marketing y una lista existente utilizando el ID de cuenta externa y el ID de evento externo, haz una solicitudPUT a /marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}.
Si tiene éxito, recibirás una respuesta 204 No content.
Obtener las listas asociadas a un evento de marketing utilizando el ID del evento
Para obtener todas las listas asociadas a un evento de marketing, haz una solicitudGET a /marketing/v3/marketing-events/associations/{marketingEventId}/lists.
La respuesta tendrá el siguiente formato:
Obtener las listas asociadas a un evento de marketing utilizando el ID y las cuentas externas
También puedes obtener listas asociadas a un evento de marketing utilizando el ID de una cuenta externa y el ID de un evento externo. Para ello, haz una solicitudGET a /marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists.
Eliminar la asociación de una lista mediante un ID de evento de marketing
Para eliminar la asociación de una lista con un evento de marketing utilizando el ID del evento de marketing, haz una solicitudDELETE a /marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}.
Si tiene éxito, recibirás una respuesta 204 No content.
Borrar la asociación de una lista mediante un evento externo y el ID de una cuenta
Para eliminar la asociación de una lista y un evento de marketing utilizando el ID de una cuenta externa y el ID de un evento externo, haz una solicitudDELETE a /marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}.
Si tiene éxito, recibirás una respuesta 204 No content.
Configurar los valores de la aplicación
Se requiere cierta configuración para permitir que los eventos de marketing se sincronicen correctamente con HubSpot. Si envías a HubSpot un cambio de estado del asistente a un evento (por ejemplo, un registro en el evento o un evento cancelado), HubSpot primero comprobará si hay un evento de marketing con el ID del evento especificado. Si no es así, HubSpot llamará al punto de conexión configurado de tu aplicación para obtener los detalles del evento de marketing, luego creará el evento en HubSpot y luego, publicará el cambio de estado del asistente. Esto se proporciona por conveniencia; sin embargo, se recomienda que crees los eventos de marketing mediante los métodos CRUD que se detallan en este documento y no confíes en esta funcionalidad para crear tus eventos de marketing en HubSpot.Paso 1: Crea una API en tu aplicación
Para que esta funcionalidad sea posible, HubSpot requiere que cada aplicación que use eventos de marketing defina una API para obtener información sobre un evento específico. Requisitos:- Acepta:
externalAccountId: un parámetro de consulta que especifica el accountId del cliente en la aplicación externa.appId: un parámetro de consulta que especifica el ID de la aplicación de HubSpot que solicita los detalles del evento. Este será el ID de tu aplicación.externalEventId: un parámetro de ruta en la URL de la solicitud que especifica el ID del evento en la aplicación externa sobre la que HubSpot requiere detalles.
- Devuelve:
- Un objeto JSON que proporciona los detalles del evento de marketing, y que incluye los campos de esta tabla:
eventName | verdadero | cadena | El nombre del evento de marketing |
| eventOrganizer | verdadero | cadena | El nombre del organizador del evento de marketing. |
| eventType | falso | cadena | Describe qué tipo de evento es este. Por ejemplo, WEBINAR, CONFERENCE, WORKSHOP | . |
| startDateTime | falso | cadena (fecha y hora) | La fecha y la hora de inicio del evento de marketing. |
| endDateTime | falso | cadena (fecha y hora) | La fecha y la hora de finalización del evento de marketing. |
| eventDescription | falso | cadena (fecha y hora) | La descripción del evento de marketing. |
| eventUrl | falso | cadena (fecha y hora) | Una URL en la aplicación del evento externo donde se realiza el evento de marketing. |
| eventCancelled | falso | boolenano | Indica si el evento de marketing se canceló. El valor predeterminado es false |
HubSpot también enviará un encabezado X-HubSpot-Signature-v3 que puedes usar para verificar que la solicitud proviene de HubSpot. Consulta información sobre las firmas de solicitud para obtener detalles adicionales sobre la firma y cómo validarla.
Paso 2: Da a HubSpot la ruta URL a la API
Ahora que has creado la API en tu aplicación que devolverá un objeto con los detalles de un evento de marketing específico, deberás proporcionar a HubSpot la ruta de la URL a la API haciendo una solicitudPOST a /marketing/v3/marketing-events/{appId}/settings. Esto permitirá a HubSpot determinar cómo realizar solicitudes a tu aplicación para obtener los detalles de un evento de marketing.
En el cuerpo de tu solicitud POST, especifica la URL utilizando el campo eventDetailsURL. El eventDetailsURL debe cumplir con los siguientes requisitos:
- Contener una secuencia de caracteres
%s, que HubSpot utilizará para hacer la substitución en el ID del evento (externalEventId) como parámetro de ruta. - Debe ser la ruta completa al recurso API, incluido el prefijo
https://y el nombre de dominio (por ejemplo,my.event.app).
eventDetailsURL de https://my.event.app/events/%s y necesitas hacer una solicitud para obtener detalles de un evento con el ID 1234-event-XYZ, de la aplicación HubSpot con el ID app-101 y la cuenta con el ID ABC-account-789, HubSpot hará una solicitud GET a:
https://my.event.app/events/1234-event-XYZ?appId=app-101&externalAccountId=ABC-account-789