Última modificação: 11 de setembro de 2025
Veja abaixo informações de referência para recursos da plataforma para desenvolvedores, incluindo definições de arquivo de configuração, detalhes de escopos e muito mais.

Estrutura do projeto

  • Todos os componentes do projeto devem estar no diretório src especificado no arquivo de configuração hsproject.json de nível superior.
  • Todos os recursos e componentes do aplicativo devem estar no diretório src/app/. No diretório app/, você definirá subdiretórios para cada recurso ao qual deseja que seu aplicativo ofereça suporte:
    • Os eventos de aplicativo são configurados em app-events/.
    • Objetos de aplicativo são definidos em app-objects/.
    • Todos os recursos do cartão são definidos no cards/.
    • Os recursos da página de configurações são definidos no settings/.
    • A telemetria é configurada em telemetry/.
    • As assinaturas de webhook são definidas no diretório webhooks/.
    • As ações de fluxo de trabalho personalizadas são definidas no workflow-actions/.
  • Dentro de cada subdiretório de recurso, você configurará o recurso usando um arquivo *-hsmeta.json. Você pode prefixar o nome do arquivo com algo significativo para seu aplicativo (por exemplo, my-app-hsmeta.json), desde que o arquivo termine com -hsmeta.json. Esses arquivos devem estar no nível raiz da respectiva pasta (por exemplo, app/my-app-hsmeta.json, cards/my-card-hsmeta.json).
O exemplo de estrutura de diretório abaixo descreve todos os recursos disponíveis. Detalhes para configurar o esquema de aplicativo de arquivo app-hsmeta.json de nível superior são fornecidos na seção de esquema de aplicativo a seguir. Quando estiver pronto para adicionar recursos de aplicativo, confira a seção adicionar recursos de aplicativo.
my-project-folder/
└── hsproject.json
└── src
    └── app/
        └── app-hsmeta.json/
        └── app-events/
            └── my-event-type-hsmeta.json
        └── cards/
            └── MyCard.jsx
            └── my-app-card-hsmeta.json
            └── package.json
        └── settings/
            └── Settings.tsx
            └── settings-hsmeta.json
            └── package.json
        └── telemetry/
            └── telemetry-hsmeta.json
        └── webhooks/
            └── webhooks-hsmeta.json
        └── workflow-actions/
            └── custom-action-hsmeta.json

Ver exemplo no GitHub

A extensão HubSpot Visual Studio Code fornece verificação de tipo para cada uma das propriedades em seus arquivos de configuração *-hsmeta.json.

Especificar UIDs

O campo uid é um identificador exclusivo interno para seu aplicativo específico e também deve ser globalmente exclusivo dentro do projeto. Cada recurso de aplicativo terá seu próprio uid definido nos respectivos arquivos *-hsmeta.json, que devem ser diferentes do uid de nível superior escolhido no arquivo app-hsmeta.json do seu aplicativo.

Esquema de aplicativo

A configuração de nível superior do seu aplicativo é especificada em um arquivo de configuração app-hsmeta.json no diretório app.
my-project-folder/
└── src
    └── app/
        └── app-hsmeta.json/
Veja abaixo as opções de configuração disponíveis para app-hsmeta.json.
{
  "uid": "new_developer_platform_app",
  "type": "app",
  "config": {
    "description": "An example to demonstrate how to build an app with developer projects.",
    "name": "my first app",
    "distribution": "marketplace",
    "auth": {
      "type": "oauth",
      "redirectUrls": ["http://localhost:3000/oauth-callback"],
      "requiredScopes": [
        "crm.objects.contacts.read",
        "crm.objects.contacts.write"
      ],
      "optionalScopes": [],
      "conditionallyRequiredScopes": []
    },
    "permittedUrls": {
      "fetch": ["https://api.hubapi.com"],
      "iframe": [],
      "img": []
    },
    "support": {
      "supportEmail": "support@example.com",
      "documentationUrl": "https://example.com/docs",
      "supportUrl": "https://example.com/support",
      "supportPhone": "+18005555555"
    }
  }
}

Ver exemplo no GitHub

Cada uma das opções de configuração é detalhada na tabela abaixo. Mais contexto sobre como distribuir seu aplicativo, configurar a autenticação e especificar escopos são fornecidos nas seções abaixo da tabela.

Campos marcados com * são obrigatórios.

CampoTipoDescrição
uid*StringUm identificador exclusivo interno do aplicativo. Deve ser globalmente exclusivo dentro do projeto. Pode ser qualquer string de até 64 caracteres. Os caracteres podem ser maiúsculos ou minúsculos e podem incluir números e sublinhados (_), traços (-) e pontos (.).
type*StringO tipo de componente. Deve corresponder ao nome da pasta principal (app).
description*StringUma descrição do que o aplicativo faz para o usuário que está instalando. Pode ser qualquer string de até 8192 caracteres.
name*StringO nome do aplicativo, que será exibido na interface do HubSpot. Pode ser qualquer string de até 200 caracteres. Não deve iniciar ou terminar com um caractere de espaço.
distribution*StringO método de distribuição do aplicativo, que pode ser definido como um dos seguintes:
  • marketplace: usado se você quiser que o aplicativo seja qualificado para listagem no Marketplace de aplicativos da HubSpot.
  • private: usado se você somente quiser instalar seu aplicativo em um conjunto específico de contas permitidas ou em uma única conta por vez.

Saiba mais na seção distribuição abaixo.

auth*ObjetoUm objeto que contém os detalhes do método de autenticação do aplicativo. Consulte a seção de autenticação abaixo para obter detalhes.
permittedUrlsObjetoUma matriz que contém os URLs que o aplicativo tem permissão para chamar. Os URLs devem usar o esquema HTTPS e devem conter uma autoridades, seguido por um prefixo de caminho opcional, se necessário.
supportEmailStringUm endereço de e-mail válido com o qual os usuários podem entrar em contato para obter suporte.
documentationUrlStringO URL externa na qual os usuários podem navegar para documentação de suporte. Devem usar HTTPS.
supportUrlStringO URL externo para o qual os usuários podem navegar para obter suporte adicional. Devem usar HTTPS.
supportPhoneStringO número de telefone com o qual os usuários podem entrar em contato para obter suporte. Deve começar com um sinal de mais (+).

Distribuição

O campo distribution no esquema do aplicativo permite que você configure como deseja distribuir o aplicativo:
  • Se você planeja listar seu aplicativo no Marketplace de aplicativos da HubSpot, defina o campo distribution como "marketplace". Um exemplo de esquema de aplicativo para esta opção pode ser encontrado aqui. Se você escolher essa opção, verifique se definiu type na propriedade auth como oauth, tal como especificado na seção de autenticação abaixo.
  • Se você quiser permitir que seu aplicativo seja instalado em um conjunto específico de contas permitidas, ou se quiser restringir a instalação a uma única conta por vez, defina distribution como "private". Certifique-se de definir o type dentro da propriedade auth:
    • Se você quiser instalar seu aplicativo em várias contas com base em uma lista de permissões definida nas configurações do seu projeto, defina a autenticação type como oauth. Consulte o exemplo de esquema de aplicativo para esta opção aqui.
    • Para restringir a instalação a uma única conta, seja a mesma conta usada para desenvolvimento ou outra à qual o usuário instalador tenha acesso, defina a autenticação type como static. Um exemplo de esquema de aplicativo para autenticação estática pode ser encontrado aqui.

Autenticação

A autenticação do seu aplicativo é configurada por meio da propriedade auth no esquema do aplicativo. Você pode especificar os requisitos de escopo do seu aplicativo, os URLs de redirecionamento e o tipo de autenticação.

Campos marcados com * são obrigatórios.

CampoTipoDescrição
type*StringO tipo de autenticação, que pode ser definido como um dos seguintes:
  • oauth: permita a instalação via OAuth, seja para um conjunto específico de contas permitidas ou listando-o no Marketplace de aplicativos da HubSpot.
  • static: restrinja a instalação do seu aplicativo a uma única conta à qual o usuário que está instalando tenha acesso.
redirectUrls*MatrizUma lista de URLs que o OAuth tem permissão para usar em redirecionamentos. Cada aplicativo deve ter pelo menos um URL de redirecionamento de autenticação e deve usar HTTPS. A única exceção é que http://localhost é permitida para testes.
requiredScopes*MatrizUma lista dos escopos obrigatórios do seu aplicativo. Cada aplicativo deve incluir pelo menos um escopo, e o usuário instalador deve conceder esses escopos para instalar o aplicativo. Saiba mais sobre escopos abaixo.
optionalScopesMatrizUma lista dos escopos opcionais do seu aplicativo. Esses escopos podem ser excluídos da autorização durante a instalação se a conta ou o usuário que está instalando o aplicativo não tiver as permissões adequadas. Nesse caso, o escopo não será incluído no token de atualização ou de acesso resultante. Saiba mais sobre escopos abaixo.
conditionallyRequiredScopesMatrizUma lista de escopos que são necessários somente quando incluídos no parâmetro de consulta scope do URL de instalação. Saiba mais sobre escopos abaixo.

Escopos

Na janela auth de um arquivo de configuração de aplicativo, você pode especificar três tipos de escopos: necessários, condicionalmente necessários e opcionais. No mínimo, seu aplicativo deve incluir o escopo read para permitir que os clientes acessem o tipo de objeto do CRM associado.
"auth": {
      "type" : "oauth",
      "redirectUrls": ["http://localhost:3000/oauth-callback"],
      "requiredScopes": [
        "crm.objects.contacts.read",
        "crm.objects.contacts.write"
      ],
      "optionalScopes": [],
      "conditionallyRequiredScopes": []
    },

Para obter uma lista completa dos escopos disponíveis, consulte a referência de escopos.

Adicionar recursos do aplicativo

Para configurar recursos de aplicativo, como assinaturas de webhook, ações de fluxo de trabalho personalizadas e cartões de aplicativo, confira os guias abaixo para obter detalhes sobre como adicionar os arquivos *-hsmeta.json ao seu projeto: