Package Information
Documentation
n8n-nodes-hotmart
Este pacote contém nós personalizados para integrar a API Hotmart com o n8n, permitindo automação completa de operações na plataforma líder de produtos digitais da América Latina.

A Hotmart é uma plataforma de negócios digitais para criação, hospedagem e venda de produtos digitais e assinaturas, com recursos para gerenciamento de membros, pagamentos e análises de vendas.
n8n é uma plataforma de automação de fluxo de trabalho fair-code licensed.
Índice
- Instalação
- Nós Disponíveis
- Operações Suportadas
- Arquitetura
- Credenciais
- Compatibilidade
- Exemplos de Uso
- Webhooks Hotmart
- Recursos e APIs
- Desenvolvimento
- Solução de Problemas
- Histórico de Versões
- Licença
- Contribuição
- Autores e Mantenedores
Instalação
Instalação via n8n
A maneira mais simples de instalar é diretamente através da interface do n8n:
- Abra seu n8n
- Vá para Configurações > Nós Comunitários
- Pesquise por "n8n-nodes-hotmart"
- Clique em Instalar
- Reinicie seu n8n
Instalação Manual
Para instalação manual, siga os passos abaixo:
1. Instalar as dependências do projeto
No diretório raiz do seu projeto:
npm install
Este comando vai instalar todas as dependências listadas no seu package.json, como TypeScript, Gulp, e as bibliotecas core do n8n.
2. Compilar os nodes
npm run build
Este comando executa o script de build definido no seu package.json, que geralmente inclui:
- Limpeza dos diretórios de saída (dist/, nodes/, credentials/)
- Compilação do TypeScript
- Execução das tarefas Gulp para copiar ícones e outros recursos
3. Verificar a compilação
# Verificar estrutura de diretórios
ls -la dist/
# Verificar se os ícones foram copiados corretamente
ls -la dist/nodes/*/
4. Para desenvolvimento contínuo (Opcional)
npm run dev
Próximos passos após compilar seu node n8n
1. Verificar a compilação
ls -la dist/
ls -la dist/nodes/
ls -la dist/credentials/ # se aplicável
Certifique-se de que:
- Os arquivos JavaScript (.js) foram gerados
- Os ícones (.svg ou .png) foram copiados corretamente
- Os arquivos de mapeamento (.map) estão presentes (para depuração)
2. Testar localmente
Opção A: Instalação local a partir do arquivo
# No diretório do seu node, crie um pacote
npm install
npm run build
npm pack
# Isso criará um arquivo .tgz (ex: n8n-nodes-hotmart-0.4.0.tgz)
# Instale-o na sua instalação do n8n
cd ~/.n8n/node
npm install /caminho/para/n8n-nodes-hotmart-0.4.0.tgz
3. Reiniciar o n8n
# Se estiver usando n8n instalado globalmente
n8n stop
n8n start
# Ou se estiver usando em modo desenvolvimento
n8n restart
Nós Disponíveis
Hotmart
O nó Hotmart permite interagir com a API Hotmart para acessar e gerenciar todos os recursos da plataforma.
Características:
- ✅ Suporte completo para API RESTful Hotmart
- ✅ Paginação automática para conjuntos grandes de dados
- ✅ Formatação inteligente dos retornos da API
- ✅ Tratamento de erros robusto com mensagens específicas
Hotmart Trigger
O nó Hotmart Trigger permite receber eventos da Hotmart via webhook, possibilitando automação baseada em eventos.
Características:
- ✅ Três modos de operação: Padrão, Smart e Super Smart
- ✅ Separação automática de tipos de eventos
- ✅ Detecção inteligente de assinaturas e métodos de pagamento
- ✅ Processamento avançado de eventos para boleto e PIX
Operações Suportadas
Hotmart
Assinaturas
Operação | Descrição | Parâmetros Obrigatórios |
---|---|---|
Obter Assinaturas | Lista todas as assinaturas com suporte a filtros e paginação | Nenhum |
Cancelar Assinatura | Cancela uma assinatura específica | ID da Assinatura |
Cancelar Lista de Assinaturas | Cancela múltiplas assinaturas | Lista de IDs |
Alterar Dia de Cobrança | Modifica a data de cobrança de uma assinatura | ID da Assinatura, Novo Dia |
Obter Compras de Assinantes | Lista compras de um assinante específico | ID do Assinante |
Reativar e Cobrar Assinatura | Reativa uma assinatura cancelada | ID da Assinatura |
Sumário de Assinaturas | Obtém dados sumarizados de assinaturas | Nenhum |
Transações de Assinatura | Lista transações relacionadas a assinaturas | Nenhum |
Vendas
Operação | Descrição | Parâmetros Obrigatórios |
---|---|---|
Histórico de Vendas | Obter todas as transações de vendas com filtros | Nenhum |
Sumário de Vendas | Relatório resumido de vendas | Nenhum |
Detalhamento de Preços | Visualizar detalhamento de preços por venda | ID da Venda |
Comissões de Vendas | Listar comissões por transação | Nenhum |
Participantes de Vendas | Visualizar produtores e afiliados | Nenhum |
Solicitar Reembolso | Reembolsar uma venda específica | ID da Venda |
Produtos
Operação | Descrição | Parâmetros Obrigatórios |
---|---|---|
Obter Produtos | Listar todos os produtos disponíveis | Nenhum |
Cupons
Operação | Descrição | Parâmetros Obrigatórios |
---|---|---|
Criar Cupom | Gerar um novo cupom para produtos | Nome do Cupom, Desconto, Produto |
Obter Cupom | Obter detalhes de um cupom existente | Nome do Cupom |
Excluir Cupom | Remover um cupom | Nome do Cupom |
Área de Membros (Club)
Operação | Descrição | Parâmetros Obrigatórios |
---|---|---|
Obter Alunos | Listar todos os alunos | ID do Produto |
Obter Módulos | Listar módulos de um produto | ID do Produto |
Obter Páginas | Listar páginas de um módulo | ID do Produto, ID do Módulo |
Obter Progresso | Visualizar progresso de um aluno | ID do Produto, Email do Aluno |
Ingressos
Operação | Descrição | Parâmetros Obrigatórios |
---|---|---|
Obter Informações do Evento | Detalhes do evento | ID do Evento |
Listar Ingressos | Verificar ingressos e participantes | ID do Evento |
Hotmart Trigger
O nó Hotmart Trigger oferece três modos de operação:
Modo Padrão
Recebe um evento específico ou todos os eventos em uma única saída.
Modo Smart
Separa automaticamente cada tipo de evento em saídas distintas, facilitando a criação de fluxos específicos.
Modo Super Smart
Separa compras únicas, novas assinaturas e renovações de assinaturas, permitindo mensagens personalizadas para cada situação.
Novos Metadados no Super Smart Mode:
{
"event_type": "PURCHASE_APPROVED",
"event_data": { ... },
// Metadados enriquecidos (v0.3.1+)
"isSubscription": true,
"isRenewal": false,
"paymentType": "CREDIT_CARD",
// Informações de pagamento parcelado
"hasInstallments": true,
"installmentsCount": 12,
"installmentValue": 97.00,
// Informações de abandono (quando aplicável)
"isCartAbandonment": false,
"cartAbandonmentData": null
}
O modo Super Smart permite criar fluxos de trabalho sofisticados baseados nestes metadados, como enviar ofertas especiais para clientes de alto valor, criar lembretes para pagamentos parcelados, ou implementar estratégias de recuperação de carrinho abandonado.
Arquitetura
O pacote segue uma arquitetura modular para integrar-se com a API Hotmart:
n8n-nodes-hotmart/
credentials/
HotmartOAuth2Api.credentials.ts # Autenticação OAuth2
nodes/
Hotmart/
Hotmart.node.json # Definição do nó
Hotmart.node.ts # Ponto de entrada do nó
hotmart.svg # Logo do Hotmart
v1/
HotmartV1.node.ts # Implementação da versão 1
actions/ # Recursos e operações
club/ # Área de membros
coupon/ # Cupons
product/ # Produtos
sales/ # Vendas
subscription/ # Assinaturas
tickets/ # Ingressos
config/ # Configurações centralizadas
api.config.ts # URLs e endpoints
constants.ts # Constantes e enums
errors/ # Tratamento de erros
HotmartApiError.ts # Classe personalizada de erro
errorHandler.ts # Manipuladores de erro
helpers/ # Funções auxiliares
dateUtils.ts # Utilidades para datas
outputFormatter.ts # Formatação de resultados
pagination.ts # Paginação automática
logging/ # Sistema de logs
logger.ts # Logger estruturado
transport/ # Comunicação HTTP
request.ts # Cliente HTTP
types/ # Definições de tipos
common.types.ts # Tipos compartilhados
subscription.types.ts # Tipos específicos
webhook.types.ts # Tipos e processamento de webhooks
HotmartTrigger.node.ts # Nó de trigger para webhooks
Fluxo de Execução
Hotmart.node.ts
define a entrada do nó e seus recursosHotmartV1.node.ts
implementa a versão 1 da API- A camada de transporte gerencia requisições HTTP e autenticação
- Helpers como pagination.ts e dateUtils.ts fornecem funcionalidades comuns
- O sistema de logs e tratamento de erros garantem robustez
Sistema de Processamento de Webhooks
O processamento de webhooks foi significativamente aprimorado na versão 0.3.1:
- Recebimento e Validação: O
HotmartTrigger.node.ts
recebe e valida eventos - Processamento de Eventos: O módulo
webhook.types.ts
processa os eventos brutos - Detecção Inteligente:
- Identificação de tipo de pagamento (PIX, Boleto, Cartão, etc.)
- Detecção de assinaturas vs. compras únicas
- Reconhecimento de renovações vs. novas assinaturas
- Processamento de pagamentos parcelados
- Enriquecimento de Metadados:
- Extração de informações de pagamento detalhadas
- Identificação e processamento de abandonos de carrinho
- Saídas Formatadas: Os eventos processados são distribuídos para as saídas apropriadas no modo Smart e Super Smart
Credenciais
Este pacote utiliza autenticação OAuth 2.0 com client credentials. Para configurar:
- Acesse o Hotmart Developers
- Crie uma credencial para o ambiente desejado (produção ou sandbox)
- Anote o Client ID e Client Secret
- Configure essas credenciais no n8n, selecionando "Hotmart OAuth2 API"
Campos de Credenciais
Campo | Descrição | Obrigatório |
---|---|---|
Client ID | Identificador do cliente fornecido pela Hotmart | Sim |
Client Secret | Chave secreta do cliente fornecida pela Hotmart | Sim |
Ambiente | Produção ou Sandbox | Sim |
Compatibilidade
- Requer n8n versão 0.214.0 ou superior
- Testado com n8n versões 0.214.0 até 1.3.0
- Não requer dependências externas
- Funcionamento em ambientes Docker e instalações locais
Exemplos de Uso
Listar Assinaturas Ativas e Enviar Notificação
Verifica diariamente as assinaturas ativas e envia notificações para aquelas que estão prestes a vencer.
- Nó Trigger: Agendamento (a cada dia)
- Nó Hotmart:
- Recurso: Assinatura
- Operação: Obter Assinaturas
- Retornar Todos os Resultados: Sim
- Filtros: Status = ACTIVE
- Nó Filter: Filtrar assinaturas que vencem em 3 dias
- Nó WhatsApp/Email: Enviar notificação com lista de assinaturas
// Exemplo de código para filtrar assinaturas que vencem em 3 dias
const today = new Date();
const expiryDate = new Date(item.json.next_charge_date);
const daysDifference = Math.ceil((expiryDate - today) / (1000 * 60 * 60 * 24));
return daysDifference === 3;
Cancelar Assinaturas Atrasadas
Identifica assinaturas atrasadas e as cancela automaticamente.
- Nó Trigger: Webhook ou Agendamento
- Nó Hotmart:
- Recurso: Assinatura
- Operação: Obter Assinaturas
- Filtros: Status = DELAYED
- Nó Loop: Iterar sobre as assinaturas atrasadas
- Nó Hotmart:
- Recurso: Assinatura
- Operação: Cancelar Assinatura
- ID da Assinatura:
={{$json.id}}
- Motivo: "Cancelamento automático por atraso"
Automação de Webhook para Vendas
Utiliza o webhook Hotmart para processar diferentes tipos de eventos de vendas e assinaturas.
- Nó Hotmart Trigger:
- Modo: Super Smart
- Configurar webhook no painel Hotmart apontando para a URL fornecida
- Conecte diferentes fluxos para cada tipo de saída:
- Compra Única: Enviar email de boas-vindas para produto único
- Assinatura: Enviar email específico para novos assinantes
- Renovação: Agradecer pela renovação da assinatura
Webhooks Hotmart
Para configurar um webhook Hotmart:
- No painel da Hotmart, acesse Ferramentas > Webhooks
- Clique em Criar webhook
- Insira a URL fornecida pelo nó Hotmart Trigger
- Selecione os eventos que deseja receber
Eventos Suportados
- PURCHASE_APPROVED: Compra aprovada
- PURCHASE_COMPLETE: Compra completa
- PURCHASE_CANCELED: Compra cancelada
- PURCHASE_REFUNDED: Compra reembolsada
- PURCHASE_CHARGEBACK: Compra com chargeback
- PURCHASE_BILLET_PRINTED: Boleto impresso
- PURCHASE_PROTEST: Compra em disputa
- PURCHASE_EXPIRED: Compra expirada
- PURCHASE_DELAYED: Compra atrasada
- PURCHASE_OUT_OF_SHOPPING_CART: Abandono de carrinho
- SUBSCRIPTION_CANCELLATION: Assinatura cancelada
- SWITCH_PLAN: Troca de plano de assinatura
- UPDATE_SUBSCRIPTION_CHARGE_DATE: Troca de dia de cobrança
- CLUB_FIRST_ACCESS: Primeiro acesso à área de membros
- CLUB_MODULE_COMPLETED: Módulo de curso completado
Metadados Avançados nos Eventos (v0.3.1+)
A partir da versão 0.3.1, o modo Super Smart inclui metadados enriquecidos que fornecem informações detalhadas sobre os eventos:
Detecção de Parcelamento
- hasInstallments: Indica se o pagamento foi parcelado
- installmentsCount: Número de parcelas do pagamento
- installmentValue: Valor de cada parcela
Abandono de Carrinho
- isCartAbandonment: Indica se o evento é de abandono de carrinho
- cartAbandonmentData: Dados detalhados sobre o carrinho abandonado
- recoveryUrl: URL para recuperação do carrinho (quando disponível)
- abandonmentReason: Motivo do abandono quando identificável
Exemplo de Uso
// Verificar se é um pagamento parcelado
if ($node["Hotmart Trigger"].json.hasInstallments) {
// Número de parcelas: $node["Hotmart Trigger"].json.installmentsCount
// Valor de cada parcela: $node["Hotmart Trigger"].json.installmentValue
}
// Recuperar carrinho abandonado
if ($node["Hotmart Trigger"].json.isCartAbandonment) {
// URL para recuperação: $node["Hotmart Trigger"].json.cartAbandonmentData.recoveryUrl
}
Recursos e APIs
- Taxa de Limitação: A API Hotmart tem um limite de 60 requisições por minuto
- Paginação: Suporte para 50-100 itens por página, com paginação automática
- Sandbox: Ambiente de teste disponível para desenvolvimento seguro
- Formatos: Todos os endpoints usam JSON para requisições e respostas
Documentação de Referência
- Documentação da API Hotmart
- Webhooks da Hotmart
- Autenticação API Hotmart
- Documentação de nós comunitários n8n
Estrutura do Código
O código segue uma arquitetura modular para facilitar manutenção e extensão:
- Recursos e Operações: Cada recurso (subscription, sales, etc.) está em pasta separada
- Operações: Cada operação é um arquivo independente com sua própria lógica
- Configurações Centralizadas: Endpoints e constantes são mantidos em arquivos específicos
- Tratamento de Erros: Sistema robusto e específico para erros da API Hotmart
- Sistema de Log: Logs estruturados para facilitar depuração
Adicionando Novos Recursos
Para adicionar um novo recurso:
- Crie uma nova pasta em
nodes/Hotmart/v1/actions/
- Implemente a estrutura básica:
Resource.resource.ts
com operações agrupadas- Arquivo para cada operação (ex:
getAll.operation.ts
) - Adicione tipos em
types/newResource.types.ts
- Atualize o router em
actions/router.ts
- Adicione à descrição em
actions/versionDescription.ts
Solução de Problemas
Problemas Comuns
Erro de Autenticação
- Verifique se as credenciais Client ID e Client Secret estão corretas
- Confirme se o ambiente (produção ou sandbox) está configurado corretamente
- Verifique se as credenciais têm as permissões necessárias no painel Hotmart
Webhook não recebe eventos
- Verifique se a URL do webhook está configurada corretamente no painel Hotmart
- Certifique-se de que o n8n está acessível publicamente
- Verifique os logs de execução para possíveis erros
Logs de Depuração
Para ativar logs de depuração, adicione as seguintes variáveis de ambiente:
export N8N_LOG_LEVEL=debug
export HOTMART_LOG_LEVEL=debug
Isso habilitará logs detalhados para ajudar na solução de problemas.
Relatando Problemas
Se encontrar algum problema, abra uma issue no GitHub com:
- Versão do n8n
- Versão do nó Hotmart
- Logs de erro
- Passos para reproduzir o problema
Histórico de Versões
0.4.5 (20/05/2025)
- Versão Inicial Lançada para o Público
0.4.4 (20/05/2025)
- Correção de bugs
0.4.3 (20/05/2025)
Corrigido
- Resolvido problema de ícones definitivamente por conta de permissões faltantes.
0.4.2 (19/05/2025)
Corrigido
- Resolvido problema de ícones desaparecendo após publicação
- Corrigida resolução de caminhos para ícones em diferentes níveis de diretório
- Ajustado processo de build para incluir corretamente diretório de 'actions'
- Desativada compilação incremental para garantir aplicação consistente de alterações
Melhorado
- Otimizado processo de build para maior confiabilidade
- Atualizada documentação interna de código
0.4.1 (19/05/2025)
Correções
- Corrigido problema de ícones desaparecendo após publicação no npm
- Atualizado processo de build para incluir corretamente diretório de ações
- Padronizadas referências aos arquivos de ícones
0.4.0 (18/05/2025)
Nova Estrutura de Build
- Implementação da nova estrutura para organização do código
- Melhoria no processo de build com verificação de integridade
- Aprimoramento do gulpfile.js para cópia e verificação de arquivos
- Nova configuração de TypeScript com foco em melhor gerenciamento de código
Correções na Instalação
- Solução definitiva para problemas "Cannot find module"
- Verificação rigorosa de estrutura de arquivos na instalação
- Documentação detalhada sobre a nova estrutura
Documentação
- Adição da nova seção sobre estrutura de build ao README
- Atualização do guia de desenvolvimento com novas práticas
0.3.2 (15/05/2025)
Correções Críticas
- Correção do problema "Cannot find module" para HotmartTrigger.node.js
- Correção do erro "Cannot find module './v1/HotmartV1.node'" na inicialização
- Implementação da "abordagem de cópia dupla" para garantir compatibilidade
Modificações
- Atualização do diretório de instalação de
~/.n8n/custom/
para~/.n8n/nodes/node_modules/
- Aprimoramento do gulpfile.js para copiar corretamente arquivos em subdiretórios
0.3.1 (10/05/2025)
Aprimoramentos nos Webhooks e Super Smart Mode
- Implementação de metadados enriquecidos para eventos em webhook
- Detecção avançada de pagamentos parcelados com número de parcelas e valor
- Melhoria no processamento de eventos de abandono de carrinhos
Melhorias na Usabilidade
- Interface mais intuitiva no modo Super Smart
- Documentação expandida com exemplos de uso dos novos metadados
- Atualização das saídas do trigger para incluir campos de metadados
Correções
- Ajuste na detecção de tipo de pagamento para maior precisão
- Otimização de desempenho no processamento de webhooks
- Correção de tipos TypeScript para compatibilidade total
0.3.0 (05/05/2025)
Grandes Mudanças
- Implementado o novo nó HotmartTrigger para receber webhooks da Hotmart
- Removido o antigo HotmartRouter, substituído pelo HotmartTrigger
Novas Funcionalidades
- Adicionado modo Smart Trigger para criar fluxos de trabalho complexos sem nós condicionais
- Implementado modo Super Smart com separação automática de:
- Compras únicas/normais
- Novas assinaturas
- Renovações de assinaturas
- Adicionada detecção automática de método de pagamento, separando PIX de Boleto
- Personalização dos nomes de saída para melhorar a experiência visual
Melhorias
- Sistema avançado de detecção de assinaturas usando vários métodos:
- Verificação de dados de subscription.subscriber.code
- Verificação de atributo purchase.is_subscription
- Reconhecimento automático de eventos específicos de assinatura
- Adicionadas informações extras de pagamento como metadados:
- paymentMethod: método de pagamento (PIX, BILLET, CREDIT_CARD, etc.)
- paymentInfo: informações estruturadas (isBillet, isPix, isCard, isDigital)
Segurança
- Suporte para verificação de token HOTTOK enviado pelo Hotmart no cabeçalho
- Validação de eventos para evitar processamento de dados não reconhecidos
0.2.0 (30/04/2025)
Melhorias
- Implementada solução definitiva para paginação com 500 itens por página
- Adicionados logs de depuração para solucionar problemas de paginação
- Corrigido erro de compilação no arquivo pagination.ts
0.1.0 (15/04/2025)
Versão Inicial
- Implementado nó Hotmart com autenticação OAuth2
- Suporte para operações básicas:
- Assinaturas
- Vendas
- Produtos
- Cupons
- Área de Membros (Club)
- Ingressos
- Negociação de Parcelas
- Paginação automática para retornar todos os resultados
- Integração com Sandbox e ambiente de produção
Licença
Este projeto está licenciado sob a Licença MIT.
Contribuição
Contribuições são bem-vindas! Para contribuir com o projeto:
- Faça um fork do repositório
- Crie uma branch com sua feature (
git checkout -b feature/nova-funcionalidade
) - Faça commit das suas mudanças (
git commit -m 'Adiciona nova funcionalidade'
) - Envie para a branch (
git push origin feature/nova-funcionalidade
) - Abra um Pull Request
Autores e Mantenedores
- Autor Principal - Thales Laray
- Contribuidores - Veja a lista completa de contribuidores