Integrar pelo banco de dados (para sistemas sem API)

IntegraçõesAtualizado em 18 de julho de 202611 min de leitura
Navegar na ajuda
Neste artigo

Muitos sistemas de gestão e PDV mais antigos não têm API — mas guardam tudo num banco de dados. A integração por banco de dados resolve isso: o Reton se conecta ao seu banco (só para ler) e importa contatos e vendas automaticamente, como se tivessem sido digitados no balcão. As vendas geram pontos/cashback e alimentam o score e as automações normalmente.

Este recurso está disponível no plano Pro ou superior, e você provavelmente vai precisar de alguém com acesso técnico ao seu banco de dados para criar as views.

Como funciona, em 3 passos

  • Seu técnico cria duas views. Uma *view* é uma consulta pronta e somente-leitura que mostra seus dados no formato que o Reton espera — sem copiar nem mexer em nada. São duas: uma de contatos (vw_reton_contatos) e uma de vendas (vw_reton_vendas), com as colunas das tabelas abaixo. O próprio assistente já traz um modelo pronto para o técnico copiar e só trocar os nomes das colunas pelas do seu sistema.
  • Você informa a conexão no Reton (Configurações › Integrações › Banco de dados): tipo de banco, host, usuário e senha. Um botão testa a conexão na hora e já ajusta a conexão segura (SSL) sozinho.
  • O Reton confere e importa sozinho. O assistente mostra as primeiras linhas do jeito que vão ficar (para você validar) e, depois de ativar, importa de hora em hora — lendo só o que é novo desde a última vez.

A view de contatos (vw_reton_contatos)

Cada linha é um cliente. As colunas:

ColunaPrecisa?O que é
reton_data_cadastroSimData do cadastro do cliente
reton_nomeSimNome do cliente
reton_celularIdentidade ¹Celular — a identidade preferida (habilita o WhatsApp)
reton_documentoIdentidade ¹CPF ou CNPJ
reton_sobrenomeOpcionalSobrenome
reton_emailOpcionalE-mail
reton_nascimentoOpcionalData de nascimento (aniversário)
reton_sexoOpcionalF ou M
reton_senhaOpcionalSenha inicial do cliente no Site Fidelidade (mín. 6 caracteres). Sem ela, o cliente usa “esqueci minha senha” para criar a dele
reton_cepOpcionalCEP
reton_logradouroOpcionalRua/avenida
reton_numeroOpcionalNúmero
reton_complementoOpcionalComplemento (apto, sala…)
reton_bairroOpcionalBairro
reton_cidadeOpcionalCidade
reton_estadoOpcionalUF, 2 letras (ex.: MG)
¹ Identidade: informe pelo menos uma entre reton_celular e reton_documento — é por ela que o cliente é identificado e que dois cadastros não viram duplicados.
Endereço com rua e número juntos: se o seu sistema guarda tudo num campo só (ex.: “RUA ONOFRE DIAS, 198”), mande esse campo em reton_logradouro e deixe reton_numero vazio. O Reton não separa o texto — chutar onde termina a rua daria endereço errado. O endereço fica completo do mesmo jeito, só concentrado numa linha.

A view de vendas (vw_reton_vendas)

Cada linha é uma venda (ou um item da venda). As colunas:

ColunaPrecisa?O que é
reton_valorSimValor da venda (ex.: 149.90). Não aceita negativo
reton_dataSimData e hora da venda
reton_canceladoOpcionalfalso no caso normal. verdadeiro cancela a venda (veja abaixo). Sem esta coluna, toda linha entra como venda e nada é estornado.
reton_usuarioSimQuem comprou — o MESMO identificador que está na view de contatos: o CPF/CNPJ ou o celular. Não precisa dizer qual dos dois é; o Reton procura pelos dois
reton_identificadorRecomendadaNº do item — código único de cada linha (não se repete); evita contar a mesma venda 2× e permite cancelar item a item
reton_descricaoRecomendadaProduto/serviço vendido — aparece na venda e ajuda o Reton a não repetir a linha
reton_transacaoOpcionalNº do cupom — repete entre os itens de uma mesma compra; é ele que diz quais linhas são da mesma venda
reton_categoriaOpcionalCategoria (ou código) do produto. Pode ser usado para aplicar regra de ponto por produto/categoria — ex.: pontos em dobro na categoria TINTAS. Sem ela, o Reton usa o próprio produto
reton_unidadeOpcionalCódigo da loja/filial no seu sistema. Se este banco é de uma loja só, não precisa desta coluna — escolha a loja ao configurar a integração
Para cancelar uma venda, sua view devolve a MESMA linha de novo com reton_cancelado = verdadeiro e todos os demais dados iguais aos da venda original — mudando só a data, para o Reton enxergar a linha nova. É por esses dados iguais que o Reton acha a venda a cancelar (pelo Nº do item; na falta dele, pelo Nº do cupom, e aí cancela a venda inteira) e reverte os pontos sozinho. Se a linha não tiver Nº do item nem Nº do cupom, não há como saber qual venda é e o cancelamento é ignorado.
Seu sistema registra devolução como valor negativo? Muitos ERPs fazem assim: a devolução é a mesma venda com o valor invertido, sem nenhuma coluna de cancelamento. O Reton recusa valor negativo ou zero numa venda — então essas linhas apareceriam em “Linhas que não entraram” como Dado inválido, e o cliente continuaria com os pontos de uma compra que devolveu.

Resolve-se na própria view, sem mexer no seu sistema: mande o valor em módulo e derive o cancelamento do sinal — ABS(valor) AS reton_valor e CASE WHEN valor < 0 THEN 1 ELSE 0 END AS reton_cancelado. Depois é só apontar essa coluna no campo Cancelado. O Reton acha a venda original pelo Nº do item e estorna os pontos sozinho.

As duas views precisam falar a mesma língua

A view de vendas nunca traz o nome do cliente — quem traz o nome é a view de contatos. Por isso o Reton primeiro lê os contatos e depois as vendas, e nunca cria um cliente sem nome a partir de uma venda. É por isso que a venda tem um campo só de identificação (reton_usuario): ele precisa conter exatamente o mesmo valor que identifica a pessoa na view de contatos — o mesmo CPF/CNPJ ou o mesmo celular. (É o que o cliente também informa ao acessar o Site Fidelidade e a cada compra — por isso o CPF/celular é a referência, nunca um código interno do seu sistema, que o cliente não conhece.)

Se você importar e ver muitas vendas 'aguardando o cadastro do cliente' mesmo tendo clientes na base, é sinal de que as duas views estão usando chaves diferentes (ex.: contatos por celular, vendas por CPF). Acerte a chave e as vendas entram sozinhas.

Vendas que chegam antes do cliente: a fila

Se uma venda chega e o cliente ainda não está cadastrado, o Reton guarda a venda numa fila em vez de descartá-la. A cada rodada ele reprocessa a fila: assim que o cadastro do cliente chega (pela view de contatos), a venda entra sozinha. O painel mostra quantas vendas estão aguardando. Depois de 30 dias sem o cliente aparecer, o Reton desiste daquela venda e registra o motivo.

Pontuar por item (uma linha por produto)

Alguns negócios querem pontuar por item — quando a venda vem com uma linha para cada produto (para aplicar regras diferentes por produto). Não há nada para ligar: é o mapeamento que decide. Mande o número do cupom na coluna Nº do cupom (reton_transacao) e deixe o Nº do item (reton_identificador) vazio — ou com um código único por linha, se o seu sistema tiver. O Nº do cupom pode (e deve) se repetir entre os itens: é ele que agrupa a venda e estorna todas as linhas juntas.

Não coloque o número do cupom no Nº do item: nesse campo o Reton trata as linhas repetidas como a mesma venda e registra só uma. O cupom vai no Nº do cupom. A tela 'Conferir' avisa se estiver trocado.

Já vem da Donuz?

Se você já integrava com a Donuz por banco de dados, não precisa recriar nada. No passo 'Views', escolha 'Mapear colunas' e clique em 'Preencher com vw_donuz_*': o Reton usa as views vw_donuz_usuarios e vw_donuz_pontos que você já tem. Depois clique em 'Carregar colunas do banco' — ele reconhece os nomes donuz_* e preenche o mapa, marcando cada palpite como 'sugerido'. O campo donuz_usuario identifica o cliente (tanto faz CPF ou celular — o Reton procura pelos dois), e o donuz_codigo_produto vira a categoria que aplica suas regras de pontos.

Confira o mapa antes de ativar, principalmente o bloco de endereço: views Donuz variam de cliente para cliente (num é donuz_cep, noutro é donuz_endereco_cep). É por isso que o Reton mostra o mapeamento em vez de montar tudo escondido — você vê o que ele entendeu e corrige o que estiver trocado.

Tem mais de uma loja? Conecte um banco por loja

Você pode conectar quantos bancos precisar — o normal em rede é um por loja. A tela Bancos de dados lista todos, cada um com a própria saúde: clique em 'Adicionar banco' para incluir mais um, e no card para ver o detalhe daquele. Dê nomes que você reconheça (“Loja Centro”, “Matriz”): é por eles que você vai saber qual parou.

  • A loja da venda: ao configurar cada banco, escolha em “Estas vendas são de qual loja?”. Assim você não precisa da coluna reton_unidade na view. Se um mesmo banco atende várias lojas, deixe “a view diz” e mapeie a coluna — ela sempre tem a palavra final.
  • Cada banco tem o próprio ritmo: se um cai, os outros continuam importando normalmente. É por isso que os números aparecem por card, e não somados.
  • Investigar funciona em todos de uma vez: você não precisa saber de qual loja veio a venda do cliente que ligou.
O Reton recusa cadastrar o mesmo banco, com as mesmas consultas, duas vezes — seria só ler tudo em dobro, sem trazer nada novo. Já o mesmo banco com views diferentes (um par por loja) é permitido.

Ver o que não entrou

Os dois números do painel são clicáveis e abrem a lista por trás deles — você não precisa saber o CPF de ninguém para investigar:

  • Linhas puladas: abre agrupado por motivo (“Já tinha entrado”, “Cliente não encontrado”, “Dado inválido”…), com a explicação de cada um. Clique num motivo para ver só aquelas linhas. Boa parte costuma ser “já tinha entrado” — que é o certo, e acontece sempre que você reprocessa um período.
  • Vendas aguardando o cadastro: abre agrupado por cliente — que é o que você precisa resolver. Cada linha mostra o CPF, CNPJ ou celular já formatado, quantas vendas estão paradas, quanto somam em reais e há quanto tempo esperam. Ordenado pelo valor parado, então o cliente que mais deixou dinheiro na fila aparece primeiro. Se preferir, a aba “Venda a venda” mostra uma por uma.
  • O botão “Copiar identificadores” copia todos os CPFs/celulares da fila. Cole numa consulta contra a sua view de contatos (WHERE cpf IN (…)) e você descobre na hora por que eles não aparecem lá.
  • O painel também interpreta o número para você: se cada cliente tem várias vendas paradas, as duas views estão casando e o que falta é o cadastro dessas pessoas (veja se a view de contatos tem algum filtro, ou se eles foram cadastrados antes da data inicial que você escolheu). Se é quase uma venda por cliente, o mais provável é que as views não usem a mesma chave.
O Reton não oferece “forçar entrada” nem cadastrar os clientes em massa por aqui — isso esconderia a causa. Corrija a view de contatos e a fila entra sozinha na próxima sincronização.

Investigar uma venda

Quando um cliente diz que a venda dele não entrou, você mesmo descobre em segundos: na tela de Bancos de dados, use 'Investigar uma venda' e digite o CPF, o celular ou o Nº da nota. A busca cobre todos os bancos conectados — você não precisa adivinhar de qual loja veio — e o resultado mostra o que aconteceu com aquela venda — entrou (com link para a ficha do cliente), estava duplicada (já havia entrado), está aguardando o cadastro do cliente, ou não tinha como identificar o cliente.

Rebuscar vendas que faltaram

Se o seu sistema deixou de trazer alguma venda antes e ela foi adicionada depois, use o botão 'Reprocessar' e escolha reler os últimos 7, 15 ou 30 dias (ou desde o início). O Reton relê o período e traz o que faltava; as vendas que já entraram são ignoradas — nada é duplicado nem alterado. (Para corrigir o valor de uma venda que já entrou, o caminho é o seu sistema cancelar a errada e reemitir a certa — o Reton trata isso automaticamente.)

Segurança

  • Crie um usuário de banco somente-leitura, dedicado a esta integração — nunca use o usuário administrador.
  • As views devem ser somente-leitura. O Reton nunca escreve no seu banco.
  • Sua senha fica criptografada no Reton e é usada só no momento de conectar.
  • Como o Reton conecta de endereços variáveis, proteja o acesso com senha forte e, se possível, uma porta não-padrão.

Acompanhando a saúde

Depois de ativar, a tela mostra o status da integração (ativa, com avisos ou pausada), quantos contatos e vendas foram importados nos últimos 30 dias, quantas vendas estão aguardando o cadastro do cliente e o histórico das últimas execuções. Se a conexão falhar várias vezes seguidas (por exemplo, a senha do banco mudou), o Reton pausa a integração e avisa você — assim nada quebra em silêncio.

Quem aparece como autor das vendas importadas

As vendas que entram pela integração são registradas por um operador automático chamado Integração · Banco de dados. Ele aparece na sua lista de operadores (Configurações › Operadores) com a marca Do sistema — serve só para você saber, na ficha do cliente, de onde veio cada venda.

Esse operador é criado sozinho na primeira sincronização, não ocupa uma vaga de operador e não pode ser editado, desativado nem excluído.

Conecte seu sistema antigo pelo banco de dados

No painel, vá em Configurações › Integrações › Banco de dados, informe a conexão e deixe o Reton importar contatos e vendas sozinho.

Perguntas frequentes

Isso foi útil?

Ainda precisa de ajuda?

Não achou o que procurava? A gente responde de gente pra gente.

Comece a recuperar clientes hoje

Grátis para começar. Veja quem está sumindo já no primeiro dia.

Sem cartão de crédito · Cancele quando quiser