Início/Tutoriais/Integrações

Conectar o Bling ao Pulsefy via n8n

Sincronização de produtos, contatos e pedidos em tempo real

É possível conectar o Bling ao Pulsefy, mas não existe, por enquanto, uma integração nativa direta "de um clique". Para fazer isso, é necessário utilizar uma plataforma de automação como middleware ou a API pública de ambos.

O que você consegue sincronizar entre Bling e Pulsefy

  • Produtos: cadastrar novos produtos no Bling e criá-los automaticamente no Pulsefy (com nome, preço, descrição e SKUs).
  • Contatos/Clientes: sincronizar os dados do cliente quando um novo pedido ou oportunidade entra no pipeline.
  • Pedidos e Vendas: atualizar o status de uma oportunidade no CRM do Pulsefy assim que o pedido for faturado ou enviado no Bling.

Neste método, vamos usar o n8n, por ser uma das melhores opções para essa integração. Ele oferece total flexibilidade sem os custos de mensalidade por execuções do Zapier ou Make (se você utilizar a versão self-hosted/auto-hospedada). No n8n, você usará os nós de Webhook ou HTTP Request para conversar com a API v2 do Pulsefy e a API v3 do Bling.

1. Cadastrar o aplicativo na Área do Integrador do Bling

Na API v3 do Bling, a única forma de obter credenciais de API (Client ID e Client Secret) e configurar Webhooks para enviar dados para o n8n é cadastrando um Aplicativo na Área do Integrador.

Nota

É possível cadastrar um aplicativo pela conta do administrador Bling ou criando um usuário para tal finalidade. Recomendamos a criação de um usuário para cada desenvolvedor: acesse Preferências > Sistema > Usuários, clique em Incluir usuário e, nas permissões de "Cadastros", selecione Cadastro de aplicativos.

Acesse a Central de Extensões e clique em Área do Integrador, ou entre direto em bling.com.br/cadastro.aplicativos.php. Na tela de cadastro de aplicativos, clique no botão Criar aplicativo.

Central de Extensões do Bling com a Área do Integrador
Acesso à Área do Integrador pela Central de Extensões.
Tela de cadastro de aplicativos no Bling
Clique em Criar aplicativo para começar.

Visibilidade do aplicativo

  • Público: o aplicativo será usado em outras contas Bling e passará por homologação. Enquanto não for homologado, o número de usuários que podem autorizá-lo fica restrito a 10.
  • Privado: o aplicativo será usado apenas na própria conta Bling. É a opção recomendada para esta integração interna.
Seleção de visibilidade do aplicativo no Bling
Escolha a visibilidade Privada para uso interno.

Dados do aplicativo

Clique em próximo e preencha os dados do aplicativo:

  • Logo: precisa estar em .svg e na resolução mínima de 250 x 250 px. Baixe aqui a logo do Pulsefy em SVG (260 px).
  • Nome: pode usar Pulsefy.
  • Categoria: classificação de negócio, podendo marcar CRM.
  • Descrição: apague todo o texto padrão de instruções e escreva apenas uma linha simples. Pode colar este texto: "Aplicativo de integração interna entre o Bling e o Pulsefy via n8n para sincronização de produtos e contatos."
  • Descrição curta: descrição curta do aplicativo, usada na Central de Extensões.

Para os campos restantes:

  • Link de redirecionamento (obrigatório): a URL de callback OAuth2 do seu n8n: https://seu-n8n.com/rest/oauth2-credential/callback (substitua "seu-n8n.com" pelo endereço do seu n8n). O n8n possui uma rota padrão para receber a autorização OAuth2 das integrações; quando você criar a credencial do Bling dentro do n8n, ele vai pedir o Client ID e o Client Secret do app e usará esse mesmo link para validar a conta.
  • Link da homepage: pode usar https://pulsefy.ia.br/.
  • Link do manual, vídeo demonstrativo, nome do desenvolvedor, e-mail e celular: como se trata de um aplicativo privado, alguns campos podem ser ignorados.

Lista de escopos (permissões)

O escopo é a representação da permissão para operar sobre os recursos do usuário. Informe somente os escopos necessários, passando maior clareza e segurança no momento da autorização. Para inserir os escopos, clique no botão Adicionar:

Janela de seleção de escopos no Bling
Seleção de escopos do aplicativo.

Os escopos escolhidos serão listados no formulário. Para excluir um escopo, passe o cursor sobre a linha desejada e clique no ícone da lixeira. Qualquer adição ou exclusão de escopos só é confirmada após o salvamento do aplicativo.

Exemplo prático: o usuário quer vender seus produtos no Pulsefy, já tem os produtos centralizados no Bling e quer importá-los para a aba de Produtos (Pagamentos > Produtos). Para atender a esse objetivo, busque e marque na janela de escopos:

  • Produtos: Leitura e Escrita (para garantir, caso no futuro queira atualizar dados no Bling).
  • Estoque: Leitura (caso queira trazer a quantidade em estoque para o Pulsefy).
  • Categorias de Produtos: Leitura (opcional, mas recomendado se você organiza produtos por categorias).

Como vai funcionar o fluxo depois de salvar:

  • Exportação/Sincronização: o n8n consulta os produtos cadastrados no Bling através da API usando esse escopo de Produtos.
  • Criação no Pulsefy: o n8n lê cada item e o envia via API para a tela de Produtos do Pulsefy com o mesmo nome, preço e tipo (Físico).

Como funciona a baixa de estoque na prática

Venda fecha no Pulsefy ➔ n8n recebe o Webhook ➔ n8n cria Pedido de Venda no Bling ➔ Bling debita o estoque automaticamente

Se você tentar apenas "escrever" o novo saldo de estoque via API sem registrar uma venda, o Bling perde a rastreabilidade fiscal e o histórico financeiro. Criando o Pedido de Venda, o Bling debita o estoque automaticamente, gera o lançamento financeiro de receita e deixa tudo pronto para emitir a Nota Fiscal em um clique. Para isso, marque Leitura e Escrita nos escopos de Vendas / Pedidos de Venda e em Contatos. Assim seu app fica pronto para as duas pontas: puxar o catálogo para o Pulsefy e enviar as vendas de volta para o Bling.

Escopos de vendas e contatos selecionados no Bling
Escopos completos para sincronização nos dois sentidos.

2. Obter os tokens e autorizar o Bling no n8n

O passo após salvar o aplicativo é obter os tokens de autorização (Client ID / Secret) e autorizar a conexão dentro do n8n. Abra o aplicativo cadastrado e acesse as Informações do APP — essa tela tem os dois dados essenciais:

  • Client ID: copie o código exibido clicando no ícone de cópia ao lado.
  • Client Secret: clique no ícone de olho (👁️) para revelar a chave, ou clique no ícone de cópia para copiar o texto direto.
Informações do app no Bling com Client ID e Client Secret
Copie o Client ID e o Client Secret nas Informações do APP.

Criar a credencial OAuth2 no n8n

  1. Vá até a aba Credentials no seu n8n, clique em Create Credential e pesquise por OAuth2 API.
  2. Cole o Client ID e o Client Secret nos respectivos campos.
  3. Altere o campo Grant Type para Authorization Code — o Bling utiliza obrigatoriamente o fluxo de código de autorização (authorization_code) para liberar os tokens de acesso.

Como preencher os campos do formulário:

  • Grant Type: Authorization Code.
  • Authorization URL: https://www.bling.com.br/Api/v3/oauth/authorize
  • Access Token URL: https://api.bling.com.br/Api/v3/oauth/token
  • Client ID / Client Secret: cole os valores gerados no Bling.
  • Authentication: mantenha como Header (envia como Basic Auth).
  • Auth URI Query Parameters: apague o texto access_type=offline caso venha preenchido por padrão — o Bling não utiliza esse parâmetro e ele pode gerar erro na requisição.
  • Ignore SSL Issues (Insecure): mantenha desativado.

Assim que mudar para Authorization Code, o n8n exibirá a URL de redirecionamento (OAuth Redirect URL) e o botão Connect my account. Ao clicar nele, uma janela popup do Bling vai abrir: faça o login (se necessário) e clique em Autorizar. O n8n atualizará a tela para Account connected.

Formulário de credencial OAuth2 no n8n
Configuração da credencial OAuth2 no n8n.
Popup de autorização do Bling
Autorize o aplicativo na janela do Bling.
Credencial conectada com sucesso no n8n
A credencial muda o status para verde quando a conexão é bem-sucedida.
Confirmação de conta conectada
Account connected — integração autorizada.

Nota

Alguns usuários reportaram bugs pontuais no pop-up de conexão, geralmente resolvidos repetindo o processo.

3. Cadastrar o Webhook no Bling

O que são Webhooks? Webhook é um método de comunicação utilizado para que aplicativos e sistemas se comuniquem em tempo real de forma reativa, sempre que um evento específico ocorre. Em vez de criar uma rotina que consulte periodicamente a API do Bling, os webhooks são acionados automaticamente a cada ação (produto cadastrado, atualizado ou excluído), e o sistema recebe os dados em tempo real.

  • Idempotência: caso o Bling envie o mesmo webhook duas vezes, sua aplicação deve responder a ambas as requisições com um código HTTP 2xx.
  • Entrega não ordenada: não há garantia da entrega dos eventos na ordem em que foram gerados. Uma prática recomendada é gerenciar os webhooks de forma assíncrona, usando filas.
  • Retentativas: serão feitas tentativas por até 3 dias. Uma requisição é considerada entregue quando o integrador responde com HTTP 2xx em até 5 segundos. Ao final das retentativas com falha, o webhook do recurso é desabilitado até ser reabilitado manualmente.

Acesse o aplicativo já cadastrado e navegue até a aba Webhooks:

Aba Webhooks no aplicativo do Bling
Aba Webhooks dentro do aplicativo cadastrado.
Formulário de cadastro de webhook no Bling
Cadastro do servidor e dos eventos do webhook.

Preencha os campos exatamente assim:

1. Configuração de servidores (no topo)

  • Alias: um nome para identificar o seu n8n. Exemplo: n8n Pulsefy.
  • URL: cole a URL de produção do nó Webhook criado no n8n. Exemplo: https://n8n.SEU.DOMINIO.COM/webhook/bling-produtos

2. Configuração de webhooks (nas caixas abaixo)

  1. No bloco Produtos, clique na chave para mudar de "Webhook inativo" para Webhook ativo (a chavinha fica verde).
  2. Clique em Detalhes ao lado direito do bloco de Produtos.
  3. No menu expandido, em Servidor, selecione o servidor "n8n Pulsefy" e, em Gatilhamento / Eventos, marque Inclusão (novos produtos) e Alteração (atualizações de preço, nome ou dados).

Como testar se o Bling está enviando para o n8n

  1. No n8n, configure a trigger da sua automação. O Bling envia os webhooks utilizando o método POST — sempre use POST, pois o n8n rejeita se estiver aguardando um GET.
  2. Abra o workflow e clique em Listen for Test Event (ou Test step) no nó de Webhook.
  3. Salve as configurações no Bling.
  4. Vá no Bling e faça uma pequena alteração em um produto (ou crie um novo) em bling.com.br/produtos.php.
  5. O n8n vai receber o payload com os dados e o ID do produto em tempo real.
Payload de teste do webhook do Bling recebido no n8n
Primeiro teste: o payload chega em body.data com todos os dados do produto.

Veja que em body.data o Bling já enviou tudo o que você precisa para cadastrar no Pulsefy: ID no Bling, Nome, Preço e Descrição. Com esses dados chegando no evento, você nem precisa fazer uma segunda chamada para a API do Bling — é só criar o nó do Pulsefy no n8n.

4. Gerar a chave da Integração Privada no Pulsefy

O Pulsefy utiliza a arquitetura de chaves de API v2, substituindo a antiga API Key pelas Integrações Privadas. Para gerar a chave (Location Access Token):

  1. Criar Integração: no menu lateral, clique em Integrações Privadas > Criar Integração / Nova Integração.
  2. Preencher dados: Nome: n8n Integração; Descrição: Chave para conectar o n8n e criar produtos. Clique em Próximo.
  3. Selecionar escopos: busque por Products e selecione products.readonly e products.write.
  4. Copiar o token: clique em Salvar. A tela vai gerar o Location Access Token. Copie essa chave!
Criação de integração privada no Pulsefy
Criando a Integração Privada no Pulsefy.

A API v2 exige que você informe explicitamente qual é a subconta (locationId) que vai receber o produto. Vá em Configurações > Perfil da empresa e copie o ID de localização no cabeçalho:

ID de localização no Perfil da empresa do Pulsefy
Copie o locationId no cabeçalho do Perfil da empresa.

5. Criar o produto no Pulsefy (nó HTTP Request no n8n)

No n8n, adicione um nó HTTP Request logo após o Webhook:

  • Method: POST
  • URL: https://services.leadconnectorhq.com/products/
  • Authentication: Predefined Credential Type > HighLevel API (ou insira o API Key / Bearer Token da sua subconta no cabeçalho Authorization). No campo API Key, cole a chave inteira da Integração Privada.
Nó HTTP Request no n8n com a credencial do Pulsefy
Nó HTTP Request configurado com a chave da subconta.

1. Ligar o "Send Headers"

Ative a chave Send Headers, clique em Add Header e preencha:

  • Name: Version
  • Value: 2021-07-28

Esse valor é a versão da API v2 do Pulsefy. Informar esse header garante que a API entenda exatamente qual estrutura de dados você está enviando e recebendo, evitando que futuras atualizações quebrem a automação. Sem ele, o Pulsefy recusa a chamada com erro 400 ou 401.

2. Ligar o "Send Body"

Ative a chave Send Body. Em Body Content Type, selecione JSON e, em Specify Body, selecione Using JSON. Cole o JSON abaixo:

{
  "locationId": "SEU_LOCATION_ID",
  "name": {{ JSON.stringify($json.body.data.nome) }},
  "productType": "PHYSICAL",
  "image": {{ JSON.stringify($json.body.data.imagemURL) }},
  "description": {{ JSON.stringify($json.body.data.descricaoCurta) }},
  "prices": [
    {
      "name": "Preço Padrão",
      "type": "one_time",
      "currency": "BRL",
      "amount": {{ $json.body.data.preco }}
    }
  ]
}

Mantenha em Expression (ícone fx ativo): assim o n8n substitui os códigos dinâmicos pelos dados reais de cada produto que chegar no Webhook. No modo Fixed, o texto seria enviado literalmente.

Depois de colar, clique no botão vermelho Execute step para testar o envio:

Output de sucesso do nó HTTP Request no n8n
Output esperado após o Execute step.

Com isso, o Pulsefy autentica perfeitamente e cria os produtos vindos do Bling:

Produto criado no Pulsefy
Produto criado automaticamente no Pulsefy.

6. Colocar em produção

  1. Copiar a Production URL (n8n): volte no nó de Webhook, clique na aba Production URL e copie o link gerado (sem o -test).
  2. Atualizar a URL no Bling: em Configurações > Webhooks, cole a Production URL no lugar da URL de teste e salve.
  3. Ativar o workflow (n8n): no canto superior direito, altere a chave de Inactive para Active (verde) e salve o workflow (Ctrl + S ou Cmd + S).

Pronto! A partir de agora, qualquer produto criado ou editado no Bling vai direto para o Pulsefy em tempo real.

7. E se já tenho produtos antigos cadastrados? (Carga inicial / Backfill)

Para sincronizar em massa os produtos que já estão no Bling (sem editar um por um para disparar o Webhook), crie um fluxo paralelo de carga inicial no próprio n8n — o n8n suporta múltiplos gatilhos na mesma tela:

  1. Adicione o trigger manual: clique no + e adicione o nó When clicking 'Execute Workflow'.
  2. Busque os produtos do Bling: conecte um nó HTTP Request com Method GET, URL https://api.bling.com.br/Api/v3/produtos?limite=100 e Authentication: Predefined Credential Type > Bling OAuth2 API.
  3. Adicione um nó Split Out: o Bling retorna uma lista (array) em data. No campo Field To Split Out, coloque data e deixe Include em "No Other Fields". Isso transforma a lista única em itens individuais.
  4. Ligue o Split Out no nó do Pulsefy: conecte a saída do Split Out direto na entrada do nó HTTP Request (Pulsefy) já configurado.
  5. Ajuste as variáveis no JSON do Pulsefy: como os dados agora vêm do GET do Bling (e não do Webhook), troque os caminhos para usar $json direto: {{ JSON.stringify($json.nome) }}, {{ JSON.stringify($json.descricaoCurta) }} e {{ $json.preco }}.
  6. Dispare a carga em massa: clique no nó When clicking 'Execute workflow' e aperte Execute workflow. O n8n vai percorrer os produtos um por um e cadastrar todos no Pulsefy automaticamente.
Output da busca de produtos do Bling no n8n
Lista de produtos retornada pela API do Bling.
Fluxo completo no n8n com webhook e carga inicial
Exemplo de fluxo completo: Webhook em tempo real + carga inicial manual.

Como funciona na prática: para rodar o passado, você clica no botão manual uma única vez; para novos produtos, o nó de Webhook fica escutando o Bling em tempo real e dispara o mesmo nó do Pulsefy. No painel do Pulsefy, em Pagamentos > Produtos, atualize a página para ver a lista completa sendo preenchida.

Importante

Certifique-se de que a chave no canto superior direito do n8n está em Active (verde) para garantir que o Webhook permaneça escutando 24/7.

Artigos relacionados