Estructura del proyecto
En el contexto de un proyecto, pondrás las definiciones de los tipos de eventos en un directorioapp-events dentro de app/. El directorio app-events debe contener un archivo de definición del esquema JSON para cada tipo de evento (*-hsmeta.json).
- Tu aplicación debe utilizar la autenticación de OAuth y estar configurada para su distribución en el mercado de aplicaciones. Además, la aplicación debe incluir
timelineen surequiredScopes. Más información sobre la configuración de aplicaciones. - Tu proyecto debe desplegarse correctamente antes de que puedas incluir un componente de eventos de aplicación.
Esquema del tipo de evento
Abajo se indican las opciones de configuración disponibles para los esquemas de tipo de evento (*-hsmeta.json). Ten en cuenta que algunos de los atributos que aparecen no se pueden cambiar una vez creado el tipo de evento.
Los campos marcados con * son obligatorios.
Propiedades de eventos
Cuando definas el esquema de sucesos, utiliza la matrizproperties para definir los campos a los que enviarás los datos de eventos. Cada tipo de evento puede tener hasta 500 propiedades.
Los campos marcados con * son obligatorios.
Sellado de propiedades
En algunos casos, puede que quieras modificar los valores de las propiedades del registro del CRM basándote en los datos de ocurrencia del evento de la aplicación. Por ejemplo, puede que quieras actualizar el nombre y apellidos de un contacto con los nuevos valores establecidos por la ocurrencia (por ejemplo, envío de formularios). Para actualizar las propiedades de los registros del CRM mediante ocurrencias de eventos, puedes vincular una propiedad de evento a una propiedad de CRM dentro del esquema del tipo de evento. En los campos de definición de una determinada propiedad de evento, incluye el campoobjectPropertyName y especifica la propiedad del CRM a enlazar. Una vez vinculada una propiedad, HubSpot siempre actualizará el valor de la propiedad en el registro del CRM utilizando el valor de la aparición más reciente basado en el campo timestamp.
Por ejemplo, el siguiente esquema de tipo de evento vincula la propiedad de evento customerName con una propiedad de contacto personalizada denominada custom_property_name. Cuando los datos de ocurrencia del evento incluyan un valor para customerName, se actualizará custom_property_name para el registro del CRM asociado.
Plantillas de renderizado
Los esquemas de tipo de evento pueden incluir los camposheaderTemplate y detailTemplate para configurar cómo se muestran los eventos en las cronologías de los registros del CRM.
headerTemplate: una descripción de una línea del acontecimiento en la parte superior de la tarjeta de actividad (hasta 1.000 caracteres).detailTemplate: los detalles del evento en el cuerpo de la tarjeta de actividad (hasta 10.000 caracteres).
- En ambas plantillas, puedes acceder a cualquier dato de
propertypasado por la ocurrencia del evento utilizando la sintaxis{{propertyName}}. - En
detailTemplate, puedes acceder adicionalmente a los valoresextraDatapasados por la ocurrencia del evento utilizando la sintaxis{{extraData.fieldName}}. Puedes acceder a cualquier nivel de atributo enextraDatamediante la notación con puntos, como{{extraData.person1.preferredName}}.
customerName y loginLocation, junto con el campo surveyData de extraData enviado a través de la ocurrencia del evento.
detailTemplate incluye el #if ayudante para renderizar condicionalmente el contenido en función de si los datos de ocurrencia del evento incluyen el campo surveyData en extraData.
- Si
extraDatacontienesurveyData, muestra las respuestas de las encuestas posteriores al inicio de sesión. - Si no había ningún
surveyDataen la ocurrencia del evento, muestraNo additional information..
Usar iframes
Cuando los datos de ocurrencia del evento contengan el campotimelineIFrame, la tarjeta de actividad de cronología incluirá un hipervínculo en el que los usuarios podrán hacer clic para abrir el contenido vinculado en un iframe.
Ocurrencias del evento
Para enviar ocurrencias de evento de un tipo de evento determinado, haz una petición aPOST a los puntos finales que se indican a continuación. La API de eventos de la aplicación incluye endpoints para enviar ocurrencias de eventos individuales y lotes de ocurrencias de eventos múltiples. Para ambos endpoints, los datos de ocurrencia del evento tendrán que validarse con respecto a un esquema de tipo de evento existente, que especificarás con eventTypeName en el cuerpo de la solicitud.
- Enviar una ocurrencia única
- Enviar un lote de ocurrencias
Para enviar una ocurrencia de evento única, haz una solicitud de
POST a /integrators/timeline/v4/events.En el cuerpo de la solicitud, incluye los datos de la ocurrencia del evento, respetando el esquema definido para el tipo de suceso.eventTypeName, que puedes recuperar a través de la API.
Los campos marcados con * son obligatorios.
Si alguna ocurrencia no se valida, las ocurrencias validadas con éxito seguirán aceptándose y persistiendo. El mensaje de error de la respuesta te proporcionará información sobre lo que tendrás que arreglar.
Asociación de registros del CRM
Cada suceso debe estar asociado a un registro del CRM, con el tipo de objeto del CRM definido por el esquema de tipo de evento. La API de eventos de la aplicación incluye múltiples campos para asociar los datos de ocurrencia de eventos con los registros del CRM. Para todos los objetos del CRM compatibles, se recomienda utilizar el campoobjectId. Sin embargo, hay algunas situaciones en las que puede que quieras utilizar los otros campos.
utk/email: si no conoces el ID del contacto, utiliza el campoutky/oemailpara identificarlo. Proporcionar estos dos identificadores también te permite crear y actualizar contactos. Por ejemplo:- Si
utkcoincide con un contacto existente peroemailno coincide, HubSpot actualizará el contacto con la nueva dirección de correo electrónico. - Si no se proporciona
objectId, el evento se asociará a un contacto existente que coincida conutk/email, o HubSpot creará un nuevo contacto si no se encuentra ninguna coincidencia. - Ten en cuenta que
utkpor sí solo no puede crear nuevos contactos. Siempre debes incluiremailconutkpara garantizar una asociación adecuada.
- Si
domain: para la asociación de empresas, debes proporcionar la direcciónobjectId, pero también puedes incluirdomainpara actualizar la propiedaddomainde esa empresa.