Estrutura do projeto
No contexto de um projeto, as definições de tipo de evento serão colocadas em um diretórioapp-events em app/. O diretório app-events deve conter um arquivo de definição de esquema JSON para cada tipo de evento (*-hsmeta.json).
- Seu aplicativo deve usar a autenticação OAuth e ser configurado para distribuição no Marketplace de aplicativos. Além disso, o aplicativo deve incluir
timelineno seurequiredScopes. Saiba mais sobre a configuração de aplicativos. - Seu projeto deve ser implantado com êxito para que um componente de evento de aplicativo possa ser incluído.
Esquema de tipo de evento
Veja abaixo as opções de configuração disponíveis para esquemas de tipo de evento (*-hsmeta.json). Observe que alguns atributos abaixo não podem ser alterados depois da criação do tipo de evento.
Campos marcados com * são obrigatórios.
Propriedades do evento
Ao definir o esquema de evento, use a matrizproperties para definir os campos para os quais os dados de ocorrência de evento serão enviados. Cada tipo de evento pode ter até 500 propriedades.
Campos marcados com * são obrigatórios.
Carimbos de propriedade
Em alguns casos, talvez você queira modificar os valores da propriedade do registro do CRM com base nos dados de ocorrência do evento do aplicativo. Por exemplo, você pode querer atualizar o nome e o sobrenome de um contato com novos valores definidos pela ocorrência (por exemplo, envio de formulário). Para atualizar as propriedades de registro por meio de ocorrências de evento, você pode vincular uma propriedade de evento a uma propriedade de CRM no esquema de tipo de evento. Nos campos de definição de uma determinada propriedade de evento, inclua o campoobjectPropertyName e especifique a propriedade de CRM a vincular. Quando uma propriedade é vinculada, o HubSpot sempre atualiza o valor da propriedade no registro de CRM usando o valor da ocorrência mais recente com base no campo timestamp.
Por exemplo, o esquema de tipo de evento abaixo vincula a propriedade de evento customerName a uma propriedade do contato personalizada denominada custom_property_name. Quando os dados de ocorrência de evento incluir um valor para customerName, custom_property_name será atualizado para o registro de CRM associado.
Renderização de modelos
Os esquemas de tipo de evento podem incluir oheaderTemplate e detailTemplate para configurar como as ocorrências do evento são renderizadas nas linhas do tempo de registro de CRM.
headerTemplate: uma descrição em uma linha do evento na parte superior do cartão de atividade (até 1.000 caracteres).detailTemplate: os detalhes do evento no corpo do cartão de atividade (até 10.000 caracteres).
- Em ambos os modelos, você pode acessar qualquer dados de
propertypassados pela ocorrência do evento usando a sintaxe{{propertyName}}. - Na janela
detailTemplate, você pode acessar também valores deextraDatatransmitidos pela ocorrência do evento usando a sintaxe{{extraData.fieldName}}. Você pode acessar qualquer categoria de atributo emextraDatapor meio da notação de ponto, como{{extraData.person1.preferredName}}.
customerName e loginLocation com o campo surveyData de extraData enviado através da ocorrência do evento.
detailTemplate inclui o #if auxiliar para processar conteúdo condicionalmente com base no fato de os dados de ocorrência do evento incluírem o campo surveyData em extraData.
- Se
extraDatacontémsurveyData, as respostas da pesquisa pós-login são mostradas. - Se não havia
surveyDatapresente na ocorrência do evento, renderizarNo additional information..
Uso de iframes
Quando os dados de ocorrência do evento contiverem o campotimelineIFrame, o cartão de atividade da linha do tempo incluirá um hiperlink em que os usuários podem clicar para abrir o conteúdo vinculado em um iframe.
Ocorrências de eventos
Para enviar ocorrências de um determinado tipo de evento, faça uma solicitação dePOST aos pontos de extremidade abaixo. A API de eventos do aplicativo inclui pontos de extremidade para enviar ocorrências de eventos únicos e lotes de várias ocorrências de eventos. Para ambos os pontos de extremidade, os dados de ocorrência do evento precisarão ser validados em relação a um esquema de tipo de evento existente, que você especificará com eventTypeName no corpo do pedido.
- Enviar uma única ocorrência
- Enviar um lote de ocorrências
Para enviar uma única ocorrência de evento, faça uma solicitação de
POST para /integrators/timeline/v4/events.No corpo da solicitação, inclua os dados de ocorrência do evento, cumprindo o esquema definido do tipo de evento.eventTypeName, que você pode recuperar via API.
Campos marcados com * são obrigatórios.
Mesmo que alguma ocorrência não seja validada, as ocorrências validadas serão aceitas e mantidas. A mensagem de erro na resposta fornecerá informações sobre o que precisa ser corrigido.
Associação de registro de CRM
Cada ocorrência de evento deve ser associada a um registro de CRM, com o tipo de objeto de CRM definido pelo esquema de tipo de evento. A API de eventos de aplicativo inclui vários campos para associar dados de ocorrência de evento com registros de CRM. Para todos os objetos de CRM compatíveis, recomendamos usar o campoobjectId. No entanto, há algumas situações em que outros campos devem ser usados.
utk/email: se você não souber o ID do contato, use o campoutke/ouemailpara identificação. Fornecer esses dois identificadores também permite criar e atualizar contatos. Por exemplo:- Se
utkcorresponde a um contato existente, masemailnão corresponde, o HubSpot atualizará o contato com o novo endereço de e-mail. - Se nenhum
objectIdfor fornecido, a ocorrência do evento será associada a um contato existente que corresponda aoutk/email, ou HubSpot criará um contato se nenhuma correspondência for encontrada. - Observe que o
utksozinho não pode criar novos contatos. Você deve sempre incluiremailcomutkpara que associação seja adequada.
- Se
domain: para associações de empresa, você deve fornecer oobjectId, mas você também pode incluirdomainpara atualizar a propriedade dedomaindaquela empresa.