Integrar pelo banco de dados (para sistemas sem API)

IntegraçõesAtualizado em 3 de novembro 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 os agentes 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

Meu sistema não tem API. Dá pra integrar mesmo assim?

Dá, se ele guardar os dados num banco MySQL/MariaDB ou PostgreSQL acessível pela internet. Você cria duas 'views' (consultas prontas) no padrão do Reton e informa os dados de conexão. O Reton lê de lá de hora em hora.

O Reton altera alguma coisa no meu banco?

Não. A conexão é só de leitura. Por isso pedimos que você crie um usuário de banco somente-leitura, dedicado a esta integração.

Importei e muitas vendas ficaram 'aguardando o cadastro do cliente'. Por quê?

A view de vendas não traz o nome do cliente — então o Reton nunca cria um cliente 'sem nome' a partir de uma venda. Quando a venda chega e o cliente ainda não está na base, ela espera na fila e entra sozinha assim que o cadastro chegar pela view de contatos. Se MUITAS ficam paradas, quase sempre é porque as duas views não se ligam pela mesma chave (veja 'As duas views precisam falar a mesma língua').

Um cliente diz que a venda dele não entrou. Como eu descubro o que houve?

Na tela de Bancos de dados, use 'Investigar uma venda': digite o CPF, o celular ou o Nº da nota. A busca cobre TODOS os bancos conectados (você não precisa saber de qual loja veio), e o resultado diz se a venda entrou, se estava duplicada, se está aguardando o cadastro do cliente — e de qual banco a linha veio.

O sistema esqueceu de trazer uma venda antes e agora quero rebuscar. Dá?

Sim. Use o botão 'Reprocessar' e escolha reler os últimos 7, 15 ou 30 dias (ou desde o início). O Reton traz o que faltava; o que já entrou é ignorado (não duplica nem altera o que já foi lançado).

Já uso a Donuz por banco de dados. Preciso refazer as views?

Não. No passo das views, escolha 'Mapear colunas' e clique em 'Preencher com vw_donuz_*' — o Reton usa suas views existentes e reconhece os nomes donuz_* sozinho. Você só confere o mapa (o que ele adivinhou vem marcado como 'sugerido') e ativa. O campo donuz_usuario já identifica o cliente, seja ele CPF ou celular.

Minhas devoluções aparecem como “Dado inválido”. Por quê?

Porque elas provavelmente vêm com valor negativo, e o Reton só aceita venda com valor maior que zero. Ajuste na própria view: mande o valor em módulo (ABS) e crie uma coluna que vale 1 quando o valor original é negativo — aponte essa coluna no campo Cancelado. Aí a devolução deixa de ser recusada e passa a estornar os pontos da venda original automaticamente.

Meu sistema não tem coluna de cancelamento. Posso integrar assim mesmo?

Pode. A coluna reton_cancelado é opcional: sem ela, toda linha entra como venda. A troca é que cancelamento feito no seu sistema não estorna no Reton — se uma compra for cancelada lá, os pontos continuam valendo aqui e o estorno teria que ser feito à mão. O assistente avisa isso na tela de conferência.

Vai duplicar vendas ou pontos?

Não. Cada venda é identificada por um código único (o Nº do item ou, na falta, por cliente + valor + produto + data). Se a mesma venda for lida de novo, o Reton reconhece e ignora — nunca conta duas vezes.

Posso apagar o operador 'Integração · Banco de dados'?

Não. Ele é do sistema: é a identidade que assina as vendas importadas. Sem ele, as vendas ficariam sem autor na timeline. Por isso a lista de operadores não oferece editar, desativar nem excluir para ele — e ele não ocupa uma vaga de operador.

Em qual plano está disponível?

No plano Pro ou superior.

Minha conta voltou para o Free e depois assinei o Pro. Preciso religar a integração?

Não. Enquanto a conta está no Free, a importação fica pausada. Assim que o Pro volta, ela religa sozinha em até 5 minutos e traz as vendas do período em que ficou parada. Só a pausa que você mesmo fez (ou a que acontece depois de várias falhas seguidas) precisa ser retomada na tela da integração.

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