Última modificação: 8 de outubro de 2025
Veja abaixo informações de referência para criar cartões de aplicativo
Estrutura do projeto
No contexto de um projeto, os componentes do cartão de aplicativo são definidos em um diretóriocards
em app/
. O diretório cards
deve conter:
- Um arquivo de definição de esquema JSON para cada tipo de cartão (
*-hsmeta.json
). - Um arquivo React que renderiza o frontend do cartão. Ele pode ser um arquivo
.jsx
ou.tsx
. - Um arquivo
package.json
para lidar com as dependências necessárias.
Esquema do cartão de aplicativo
No arquivo de configuração do*-hsmeta.json
para seu cartão de aplicativo, inclua as propriedades abaixo.
Campos marcados com * são obrigatórios.
Campo | Tipo | Descrição |
---|---|---|
uid * | String | O identificador exclusivo do cartão. Ele pode ser qualquer string, mas deve identificar o aplicativo de uma maneira significativa. O HubSpot identificará o cartão por esse ID para que você possa alterar o título do cartão sem remover dados do histórico ou de estado, como a posição no registro de CRM. |
type | String | O tipo de componente, que deve ser card neste caso. |
config | Objeto | Um objeto que contém detalhes de configuração. |
name * | String | O título do cartão, exibido na interface do usuário do HubSpot. |
description | String | Uma descrição do cartão. |
previewImage | Objeto | Um objeto que contenha os campos file e altText . O campo file é o caminho relativo para a imagem de visualização. As extensões de arquivo válidas são png, jpeg, jpg ou gif. O tamanho máximo do arquivo é 5,0 MB. O campo altText é uma breve descrição da imagem. |
entrypoint * | String | O caminho de arquivo do código do React de frontend do cartão. |
location * | crm.record.tab | crm.record.sidebar | crm.preview |helpdesk.sidebar | Onde o cartão aparece na interface do usuário do HubSpot. Você só pode especificar um valor de local, mas algumas combinações location e objectTypes resultam em suporte a vários locais. Consulte a seção Locais com suporte para obter mais detalhes. |
objectTypes * | Matriz | Os tipos de registros de CRM em que o cartão aparecerá. Consulte a seção Objetos com suporte abaixo para obter mais detalhes. |
Objetos com suporte
Na matrizobjectTypes
do arquivo de configuração *-hsmeta.json
do cartão, especifique os tipos de registros de CRM em que o cartão aparecerá. Veja abaixo os objetos do CRM atualmente compatíveis, seu valor de objectType
e o escopo mínimo a adicionar ao seu aplicativo.
Para objetos padrão do HubSpot, os valores de
objectType
não fazem distinção entre maiúsculas e minúsculas e tanto singular quanto plural são aceitos. Por exemplo, "CONTACT"
e "contacts"
são ambos válidos.Valor | objectType do objeto do CRM | Escopo relacionado |
---|---|---|
Contatos | CONTACT | crm.objects.contacts.read |
Empresas | COMPANY | crm.objects.companies.read |
Negócios | DEALS | crm.objects.deals.read |
Tickets | TICKETS | tickets |
Objeto personalizado | p_objectName (diferencia maiúsculas de minúsculas) | crm.objects.custom.read |
Objetos de aplicativo | app_object_uid | Consulte escopos de objetos de aplicativo |
Valor do | objectType objeto do CRM | Escopos relacionados |
---|---|---|
Compromissos | APPOINTMENTS | crm.objects.appointments.read |
Cursos | COURSES | crm.objects.courses.read |
Listagens | LISTINGS | crm.objects.listings.read |
Serviços | SERVICES | crm.objects.services.read |
Locais compatíveis
No campolocation
do arquivo de configuração de *-hsmeta.json
do cartão, especifique onde o cartão será exibido no HubSpot. Veja abaixo os locais compatíveis no momento.
crm.record.tab
: coloca a extensão na coluna do meio das páginas de registro do CRM, em uma das guias padrão do HubSpot ou em uma guia personalizada. QuandoobjectType
está definido comoCOMPANIES
, o cartão estará igualmente disponível no painel de visualização de contas-alvo do espaço de trabalho de vendas.
Se você personalizou a coluna do meio, precisará personalizar a visualização da coluna do meio para tornar visíveis as extensões recém-criadas.
crm.record.sidebar
: exibe a extensão na barra lateral direita das páginas de registro de CRM. As extensões na barra lateral não podem usar componentes de dados de CRM. QuandoobjectType
está definido comoDEALS
, o cartão estará igualmente disponível na barra lateral de negócios do espaço de trabalho de vendas.
crm.preview
: exibe o cartão de aplicativo no painel de visualização que você pode acessar em todo o CRM. Ao usar este local, a extensão estará disponível ao visualizar oobjectTypes
especificado no arquivo de configuração JSON. Isso inclui a visualização de registros nas páginas de registro do CRM, páginas de índice, exibições de quadro e a ferramenta de listas. Saiba mais sobre como personalizar visualizações.
helpdesk.sidebar
: exibe o cartão nas barras laterais do ticket no help desk. Isso inclui o painel de visualização do ticket na página inicial do help desk e a barra lateral direita da exibição do ticket no help desk. Para adicionar um cartão a esse local, você precisará definir suas configurações de help desk.
Ao criar uma extensão para este local, você também precisará garantir que o arquivo de configuração JSON do aplicativo inclui
tickets
na matriz scopes
e que o arquivo de configuração JSON do cartão inclui tickets
no campo objectTypes
.Construção do frontend do React
A interface do usuário de um cartão de aplicativo é criada por um arquivo de componente do React,.jsx
ou .tsx
. Este arquivo fica no diretório cards/
ao lado do arquivo JSON de configuração do cartão (*-hsmeta.json
). No arquivo de configuração do cartão, você especifica o caminho do arquivo React no campo entrypoint
.
Veja abaixo um exemplo de um cartão de aplicativo simples, que inclui Componentes da interface Text
e Button
para renderizar o conteúdo do cartão, além de um componente Flex
para gerenciar layout.
- Documentação de referência de componentes de extensão da interface do usuário
- SDK de extensões de interface
Gerenciamento de dependências
Você pode incluir dependências para seu cartão de aplicativo em um arquivopackage.json
no diretório cards/
. Por padrão, ao adicionar um cartão de aplicativo por meio do comando hs project add
, um arquivo package.json
será criado para você com as seguintes dependências:
@hubspot/ui-extensions
react
typescript
package.json
, você pode executar o comando hs project install-deps
no diretório do projeto.