# Profluxus > Plataforma de Relacionamento Comercial do Grupo 3DS: Talk (atendimento multicanal com IA), Shop (e-commerce e PDV), Imob (operacao imobiliaria), RADS (anuncios Meta com atribuicao real) e Pipeline Board. Site: https://www.profluxus.com ## Profluxus Talk ### Primeiros passos no Profluxus Talk URL: https://www.profluxus.com/docs/talk/primeiros-passos O Profluxus Talk junta todas as conversas da empresa em uma caixa de entrada só. Antes de colocar o time para atender, vale configurar quatro coisas — nesta ordem. ## 1. Criar as caixas de entrada Cada canal vira uma **caixa de entrada**: WhatsApp, Instagram, Facebook, Telegram, e-mail ou o chat do site. É a caixa que define por onde a mensagem sai quando o agente responde. Um número de WhatsApp = uma caixa. Se a empresa tem dois números, são duas caixas, e cada uma pode ter um time diferente. ## 2. Cadastrar os agentes Convide as pessoas do time em **Configurações → Agentes**. Cada uma recebe um e-mail para criar a senha. Depois, em cada caixa de entrada, escolha quem tem acesso. Agente que não está na caixa não vê aquelas conversas — é assim que se separa suporte de comercial. ## 3. Montar times e distribuição Um **time** agrupa agentes por assunto (Suporte, Vendas, Financeiro). A conversa pode ser atribuída a um time e qualquer pessoa dele assume. ## 4. Preparar as respostas prontas Respostas prontas economizam mais tempo que qualquer outro recurso. Comece pelas cinco perguntas que mais chegam. > Dica: só padronize resposta que você já respondeu umas dez vezes do mesmo jeito. Padronizar cedo demais engessa o atendimento. ## O que vem depois Com isso rodando, vale olhar etiquetas (para relatório por assunto), macros (para sequência de ações repetidas) e os aplicativos de celular, para o time não ficar preso ao computador. ### Conversas, status e atribuição URL: https://www.profluxus.com/docs/talk/conversas-e-atribuicao ## Os status Toda conversa tem um status, e ele é o que separa o que precisa de ação do que já foi tratado. - **Aberta** — está em andamento e alguém precisa olhar - **Pendente** — depende de um terceiro (o cliente, outro setor) e volta depois - **Adiada** — parada de propósito até uma data - **Resolvida** — terminou; se o cliente escrever de novo, ela reabre sozinha A fila de trabalho do agente são as conversas **abertas atribuídas a ele**. Se esse número não cabe num dia, o problema é de distribuição, não de esforço. ## Atribuição A conversa pode ser atribuída a uma pessoa, a um time, ou às duas coisas. Vale uma regra simples: **conversa sem responsável é conversa de ninguém**. Atribua na entrada, nem que seja para um time. ## Etiquetas Etiqueta é o que transforma atendimento em informação. "Troca", "Orçamento", "Reclamação de entrega" — depois o relatório por etiqueta mostra o que mais consome o time. Use poucas e bem definidas. Vinte etiquetas parecidas não geram relatório nenhum. ### Respostas prontas e macros URL: https://www.profluxus.com/docs/talk/respostas-prontas-e-macros ## Resposta pronta É um texto guardado com um atalho. Na conversa, o agente digita a barra e o atalho, e o texto entra no campo de mensagem — dá para editar antes de enviar. Serve para o que se repete palavra por palavra: horário de funcionamento, dados de pagamento, política de troca. ## Macro A macro faz **várias ações de uma vez**: envia uma mensagem, coloca uma etiqueta, muda o status, atribui a alguém. É um roteiro inteiro num clique. Exemplo de macro de fim de atendimento: 1. Envia a mensagem de agradecimento 2. Coloca a etiqueta do assunto 3. Marca a conversa como resolvida ## Qual usar Se é só texto, resposta pronta. Se envolve mudar alguma coisa na conversa, macro. Na dúvida, comece com resposta pronta — é mais simples de manter. ## Formatação nas mensagens O texto aceita a marcação do WhatsApp, e ela chega formatada no aparelho do cliente: - `*negrito*` fica em negrito - `_itálico_` fica em itálico - `~riscado~` fica riscado Linha em branco entre os blocos vale tanto quanto o negrito: mensagem longa sem respiro ninguém lê. ### Os módulos de automação: qual usar em cada caso URL: https://www.profluxus.com/docs/talk/modulos-de-automacao Quatro módulos cuidam de automação e conversão no Talk. Eles se dividem pelo canal e pelo momento em que agem. | Módulo | Para quê | Canal | Quem usa | |---|---|---|---| | **SocialFlow** | Portão de qualificação, fluxos, comentários e agenda | Instagram, Facebook | Marketing e atendimento | | **Studio** | O mesmo construtor de fluxo, nos demais canais | WhatsApp, site, e-mail, API, Telegram | Atendimento | | **Bridge** | Automação por hora, webhook ou evento | Nenhum: roda por trás | Operação e integração | | **Lead Conversions** | Cruza leads com vendas e mede conversão | Nenhum: lê o Talk e as fontes | Gestão e diretoria | ## Onde um termina e o outro começa SocialFlow e Studio são o mesmo motor de fluxo, com caixas que não se cruzam: um fluxo de Instagram nunca roda numa caixa de WhatsApp, e vice-versa. A separação é proposital — cada canal tem capacidades diferentes, e misturar geraria fluxo que quebra no meio. O **Bridge** é o braço que os dois chamam quando precisam falar com um sistema de fora. Dentro de um fluxo de conversa existe um bloco "Bridge": ele entrega a integração para o módulo que foi feito para isso, e devolve o resultado ao fluxo. O **Lead Conversions** fecha o ciclo. Ele responde se o lead que entrou por esses fluxos virou venda, e devolve a resposta para a distribuição de leads, que passa a considerar a taxa de conversão de cada consultor ao repartir a fila. ## Conexões e APIs é de todos Os quatro compartilham um cadastro só de conexões: APIs e bancos de dados registrados uma vez, escolhidos pelo nome dentro dos blocos. Trocar o token do ERP é mexer em um lugar, não em cada fluxo. ## Profluxus Shop ### Enviar um produto na conversa URL: https://www.profluxus.com/docs/shop/enviar-produto-na-conversa Dentro da conversa, o bloco **Profluxus Shop** abre a busca do catálogo. Procure pelo nome do produto e escolha o que vai ser enviado. ## O que dá para escolher Antes de enviar, você marca o que entra na mensagem: - **Foto** — uma ou várias imagens do produto - **Título** - **Descrição** — a curta; quando ela está vazia, o app usa a completa, resumida - **Preço** - **Link** do produto na loja O que estiver desmarcado simplesmente não entra — a mensagem não fica com espaço sobrando. ## Preço promocional Quando o produto está em promoção, o preço vai em duas linhas: o valor antigo riscado e o novo em negrito. É a forma que o cliente entende na hora, sem precisar de explicação. ## Produtos relacionados Dá para enviar produtos relacionados junto. Vale para tíquete médio, mas com moderação: três sugestões ajudam, dez viram catálogo e o cliente não responde nenhuma. ### Link de carrinho com cupom URL: https://www.profluxus.com/docs/shop/link-de-carrinho-e-cupom O link de carrinho monta a compra inteira do jeito que foi combinado no atendimento. O cliente clica e cai no checkout com tudo dentro. ## Como funciona 1. Escolha os produtos e as quantidades 2. Se for o caso, adicione uma oferta (cupom) 3. O sistema gera o link e a mensagem ## As ofertas A oferta pode ser um desconto nos produtos, no frete ou no carrinho inteiro. O cupom é **criado na hora** e vale para aquele link. > O cupom já vai aplicado no link. O cliente não precisa digitar código nenhum — e a mensagem diz isso, porque "onde eu coloco o código?" é a pergunta que mais volta. ## Validade O cupom gerado tem prazo. A mensagem informa o dia em que ele expira, no fuso do aparelho de quem lê. Prazo curto ajuda a fechar; prazo curto demais irrita. ## Cupom que não aparece na lista A lista de cupons mostra os que você pode reutilizar. Cupons gerados automaticamente por outros links e cupons inativos ficam de fora — senão a lista cresce sem parar e nenhum deles serve. ### Consultar um pedido pelo CPF URL: https://www.profluxus.com/docs/shop/consultar-pedido "Cadê meu pedido?" é a pergunta mais frequente de qualquer loja. A busca por pedido resolve sem sair da conversa. ## Buscar Informe o **CPF** (ou o identificador do cliente) e a lista de pedidos daquela pessoa aparece. Escolha o pedido. ## O que enviar Você marca o que vai na mensagem: - Número do pedido - Status - Situação do pagamento - Total - Itens - Código e link de rastreio - Link do pedido ## Boa prática Mande status **e** rastreio na mesma mensagem. Enviar só "está a caminho" garante a próxima pergunta em cinco minutos. ## Profluxus Imob ### Enviar um imóvel na conversa URL: https://www.profluxus.com/docs/imob/enviar-imovel O bloco **Profluxus Imob**, dentro da conversa, abre a busca de imóveis da conta. Procure por código, título ou bairro. ## O que vai na mensagem - **Título** do imóvel - **Valor** - **Link** da página do imóvel no site - Fotos, quando você escolher Como no Shop, o que estiver desmarcado não entra. ## Vale lembrar Mandar um imóvel por mensagem funciona melhor que mandar cinco. Se o cliente ainda não decidiu, use a seleção (o artigo ao lado) em vez de despejar fichas soltas. ### Enviar uma seleção de imóveis URL: https://www.profluxus.com/docs/imob/selecao-de-imoveis Quando o cliente ainda está escolhendo, a seleção é melhor que a ficha individual: ele compara tudo numa página só e você recebe de volta qual chamou atenção. ## Como montar Marque os imóveis na busca e envie. A mensagem sai com a lista (título e valor de cada um) e um **link da vitrine** com todos eles: ``` https://seusite.com.br/s?ids=P26071C5B,CA-0101 ``` Os códigos no fim da URL são os imóveis selecionados. O link abre o site da imobiliária já filtrado. ## Quantos imóveis De três a seis funciona bem. Acima disso, o cliente não compara — ele desiste. ## RADS ### Conectar a conta de anúncios URL: https://www.profluxus.com/docs/rads/conectar-conta-de-anuncios O RADS lê as campanhas da conta de anúncios e traz os números para dentro da plataforma, junto com as conversas que eles geraram. ## Ordem da configuração 1. Autorize o acesso à conta de anúncios 2. Escolha o **Business Manager** e a **conta de anúncios** que serão usados 3. Rode a primeira sincronização A sincronização traz campanhas, conjuntos e anúncios. Depois dela, o histórico continua atualizando sozinho. ## Se a conta não aparecer Quase sempre é permissão: o usuário que autorizou precisa ter acesso àquela conta de anúncios no Business Manager. Confira lá e sincronize de novo. ### Atribuição: ligar a conversa ao anúncio URL: https://www.profluxus.com/docs/rads/atribuicao-de-resultado Relatório de anúncio isolado mostra cliques. O que interessa é outra coisa: **quais conversas** vieram do anúncio e **quantas fecharam**. ## Como a ligação acontece Quando o lead chega por um anúncio com destino ao WhatsApp, a origem vem junto com a conversa. O RADS usa isso para juntar o gasto da campanha com o que aconteceu no atendimento. ## O que olhar - **Conversas por campanha** — volume real, não impressão - **Custo por conversa** — o número que decide onde colocar verba - **Fechamento por campanha** — a campanha mais barata em lead pode ser a mais cara em venda > Anúncio que traz muita conversa e pouca venda costuma ter problema de promessa, não de mídia. Vale ler as conversas antes de mexer no orçamento. ## Pipeline Board ### Montar o funil em quadros URL: https://www.profluxus.com/docs/pipeline-board/montar-o-funil O Pipeline Board é o funil visual: cada negócio é um cartão e cada coluna é uma etapa. ## Definir as etapas Regra prática: **etapa é o que já aconteceu, não o que você pretende fazer**. "Proposta enviada" é etapa. "Vou ligar" não é. Um funil comercial simples dá conta da maioria dos casos: 1. Contato 2. Qualificado 3. Proposta enviada 4. Negociação 5. Ganho / Perdido Cinco a sete etapas é o limite do que um time consegue manter atualizado. ## Responsável e prazo Todo cartão precisa de responsável. Cartão sem dono para de andar e ninguém percebe. ## Checklist Dentro do cartão, o checklist guarda o que falta: enviar documento, agendar visita, confirmar dados. É onde mora o detalhe que não cabe no título. ### Ler os relatórios do funil URL: https://www.profluxus.com/docs/pipeline-board/relatorios-do-funil ## Tempo por etapa O número mais útil do funil não é o total de negócios — é **quanto tempo eles ficam parados em cada etapa**. Uma etapa com tempo médio muito acima das outras é o gargalo, e é lá que a receita está presa. ## Conversão entre etapas Olhe a passagem de uma etapa para a seguinte, não só o fechamento final. Perder na qualificação é problema de origem do lead; perder na proposta é problema de preço ou de argumento. ## Cartões parados Vale rever toda semana os cartões sem movimento. Ou o negócio morreu e precisa ser marcado como perdido, ou está esquecido — os dois casos custam caro, e o segundo custa mais. ## Apps PWA, Android e iOS ### Instalar o aplicativo URL: https://www.profluxus.com/docs/apps/instalar-o-aplicativo ## Android e iPhone Os aplicativos nativos do Profluxus Talk trazem o atendimento para o celular, com notificação de mensagem nova. Na primeira abertura o app pede o **endereço do servidor** da sua empresa (por exemplo `talk.profluxus.com`) e depois o e-mail e a senha do agente — os mesmos do computador. ## PWA Sem instalar nada: abra o endereço da plataforma no navegador do celular e use a opção **Adicionar à tela de início**. O atalho abre em tela cheia, parecido com um app. O PWA depende do navegador para notificação e por isso é menos confiável nesse ponto. Para quem atende o dia inteiro, o app nativo é a melhor escolha. ## Notificações não chegam Confira, nesta ordem: 1. A permissão de notificação do app está ligada nos ajustes do celular 2. A economia de bateria não está suspendendo o app em segundo plano (comum no Android) 3. A conta certa está selecionada no app ### Recursos do app no dia a dia URL: https://www.profluxus.com/docs/apps/recursos-do-app ## Encaminhar mensagens Segure uma mensagem para entrar no modo de seleção e toque nas outras que quer levar junto. Ao encaminhar, elas chegam **na ordem original**, uma sequência, não um amontoado. Encaminhou para uma conversa só? O app abre essa conversa. Para várias? Ele fica onde está e avisa quantas receberam. Mensagem encaminhada aparece marcada como tal. ## Áudio em sequência Quando o cliente manda vários áudios seguidos, o app emenda um no outro sem você tocar em nada — desde que não haja outra mensagem no meio. Dá para ouvir em **1x, 1,5x ou 2x**. ## Menu de anexos O botão **+** abre os blocos de envio: foto, câmera, arquivo, documento e, para quem tem o plano, **Profluxus Shop** e **Profluxus Imob**. Quem não tem o módulo contratado vê o bloco desativado. ## Trocar de conta Quem atende mais de uma conta troca pelo menu de ajustes. A conta escolhida no celular é lembrada pelo aparelho — abrir outra conta no computador não muda mais a do app. ## Conta e acesso ### Usuários e permissões URL: https://www.profluxus.com/docs/conta/usuarios-e-permissoes ## Os dois papéis básicos - **Administrador** — configura caixas de entrada, agentes, times, automações e vê todos os relatórios - **Agente** — atende as conversas das caixas em que foi incluído ## O que controla o que o agente vê Não é o papel, é a **caixa de entrada**. Um agente só enxerga conversas das caixas em que está. É assim que se separa suporte de comercial, ou uma filial da outra. ## Ao desligar alguém Remova o acesso no mesmo dia. As conversas continuam na conta — o histórico é da empresa, não do agente, e nada se perde quando a pessoa sai. ### Segurança da conta URL: https://www.profluxus.com/docs/conta/seguranca-da-conta ## Senha Senha longa e exclusiva desta plataforma. A conta dá acesso ao histórico de conversas de clientes — é um dado sensível, e reaproveitar senha de outro serviço é o jeito mais comum de perdê-lo. ## Token de API O token de acesso vale tanto quanto a senha: quem tem o token faz o que o usuário faz. Guarde em cofre de senhas, nunca em planilha compartilhada, e jamais em código publicado. ## Suspeita de vazamento 1. Troque a senha 2. Gere um token novo (o antigo deixa de valer) 3. Avise o administrador da conta para revisar os acessos ## Dados de cliente Não copie conversa de cliente para grupo de WhatsApp, print público ou apresentação. Se precisar de exemplo, use dados fictícios — é exigência de LGPD e evita problema real. ### Operação dos módulos de automação URL: https://www.profluxus.com/docs/conta/modulos-operacao-e-verificacao Os quatro módulos são overlays do Talk: entram na imagem no momento do build, pelo `./profluxus.sh` — etapas IMAGEM, DEPLOY e, quando há migração, BANCO. ## Verificar uma conta Rodados dentro do container do Rails: ```bash bundle exec rails runner /app/scripts/verificar_leadconversions.rb bundle exec rails runner /app/scripts/verificar_laboratorio.rb # SocialFlow e Studio bundle exec rails runner /app/scripts/verificar_bridge.rb bundle exec rails runner /app/scripts/verificar_studio.rb ``` ## Variáveis de ambiente | Variável | Efeito | |---|---| | `PROFLUXUS_FLUXO_REDE_INTERNA=1` | Libera endereços de rede interna nos blocos de API e SQL | | `PROFLUXUS_LEADCONVERSIONS=0` | Desliga o cron do Lead Conversions | | `PROFLUXUS_LEADCONVERSIONS_CRON` | Expressão cron do módulo; o padrão é a cada 5 minutos | ## API e integrações ### API da documentação (para chatbot e LLM) URL: https://www.profluxus.com/docs/api/api-da-documentacao Esta documentação é publicada também em formato de máquina, para que um chatbot ou um assistente de IA responda dúvidas de cliente com o texto oficial em vez de improvisar. Todos os endereços são públicos, respondem `GET` e aceitam requisição de qualquer origem (CORS liberado). ## Índice em JSON ``` GET /api/docs ``` Devolve as categorias e a lista de artigos com título, resumo, palavras-chave, data de atualização e URL. ## Um artigo ``` GET /api/docs/{categoria}/{slug} ``` Devolve o artigo com o corpo em markdown. Exemplo: `/api/docs/shop/link-de-carrinho-e-cupom`. ## Busca ``` GET /api/docs/search?q=cupom ``` Devolve os artigos ordenados por relevância, com um trecho do texto em volta do termo. Aceita `limite` (padrão 10) e `categoria`. ## Formato para LLM ``` GET /llms.txt índice em markdown GET /llms-full.txt a documentação inteira, em um arquivo ``` O `/llms.txt` segue a convenção de mesmo nome: um índice enxuto para o modelo saber o que existe. O `/llms-full.txt` traz tudo, e serve para carregar num contexto ou indexar num banco vetorial. > Estes endpoints são somente leitura e não expõem dado de cliente: eles servem apenas o texto da documentação pública. ### Token de acesso da plataforma URL: https://www.profluxus.com/docs/api/token-de-acesso As integrações com a plataforma se autenticam por um **token de acesso** ligado ao usuário. ## Onde encontrar No perfil do usuário, na área de configurações da plataforma. Ele é pessoal: as ações feitas com esse token aparecem no histórico como daquele usuário. ## Como usar O token vai no cabeçalho `api_access_token`: ``` curl -H "api_access_token: SEU_TOKEN" \ https://talk.profluxus.com/api/v1/profile ``` ## Cuidados - Um token por integração, para poder revogar uma sem derrubar as outras - Nunca no código-fonte de app ou site — qualquer pessoa lê - Trocou de responsável pela integração? Gere um token novo ## Studio ### Conexões e APIs: o cadastro compartilhado URL: https://www.profluxus.com/docs/studio/conexoes-e-apis A aba **Conexões e APIs** aparece dentro de SocialFlow, Studio, Bridge e Lead Conversions. É a mesma tabela nos quatro: cadastrar em um faz aparecer nos outros. Cada conexão guarda nome, projeto, endereço, tipo de autenticação e credencial. Os blocos de fluxo escolhem a conexão pelo nome. Trocar o token do ERP é mexer em um lugar só. **A chave nunca volta para a tela.** Ela é gravada criptografada; a tela mostra "chave guardada" e um campo para substituir. ## Modelos prontos | Modelo | Quando usar | O que preencher | |---|---|---| | Banco Postgres (leitura) | Painel, ERP ou CRM em Postgres | DSN: `postgres://leitor:senha@db.exemplo.com.br:5432/erp` | | Banco MySQL (leitura) | CyberPanel, MariaDB, boa parte dos ERPs | DSN: `mysql://leitor:senha@db.exemplo.com.br:3306/erp` | | API REST com token (Bearer) | APIs modernas | Endereço base e o token | | API com chave no cabeçalho | Sistemas que pedem `X-Api-Key` | Endereço base, nome do cabeçalho e a chave | | API com usuário e senha (Basic) | Sistemas antigos | Endereço base, usuário e senha | Também é possível **importar uma coleção do Postman (v2.1) ou um arquivo Swagger/OpenAPI**: as chamadas viram uma lista pronta para usar nos blocos. O token não é importado de propósito — ele é colado depois, para não ficar registrado no arquivo de coleção. --- # Liberar o acesso ao banco em outra VPS O caso comum tem o Talk numa VPS, o painel de vendas em outra e um CRM antigo numa terceira. A conexão parte do Talk e chega ao banco de origem, que por padrão não aceita conexão de fora. São quatro camadas para abrir, e esquecer uma delas é a causa de quase toda falha. ## Passo 0: o IP a liberar Todas as camadas abaixo liberam um endereço só — o IP de saída do Talk: ``` {{ip_talk}} ``` **Esse é o IP mesmo com o domínio atrás do Cloudflare.** Quando a conexão parte do Talk em direção ao banco do cliente, ela sai direto do servidor: o Cloudflare fica no caminho de quem *chega* ao Talk, não de quem o Talk *procura*. Ligar ou desligar a nuvem laranja não muda o endereço a liberar. Por isso, não descubra o IP por `dig` ou `nslookup` no domínio: com a nuvem laranja ligada, a consulta devolve endereços do Cloudflare, e liberar aqueles não faz a conexão funcionar. Se precisar confirmar, rode no próprio servidor do Talk: ```bash curl -s https://ifconfig.me ``` Nos exemplos abaixo o endereço aparece como `{{ip_talk}}`. ## Postgres **1. Criar os usuários.** Conecte como superusuário no banco de origem: ```sql -- leitor: só consulta CREATE USER leitor WITH PASSWORD 'senha-longa-aqui'; GRANT CONNECT ON DATABASE erp TO leitor; GRANT USAGE ON SCHEMA public TO leitor; GRANT SELECT ON ALL TABLES IN SCHEMA public TO leitor; -- tabelas criadas depois também entram ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO leitor; ``` **2. Aceitar conexão de fora.** No `postgresql.conf`: ``` listen_addresses = '*' ``` **3. Autorizar o IP.** No `pg_hba.conf`, acrescente uma linha — e coloque antes das regras genéricas: ``` # TIPO BANCO USUÁRIO ORIGEM MÉTODO hostssl erp leitor {{ip_talk}}/32 scram-sha-256 ``` Use `hostssl`, não `host`: assim a senha não trafega em claro. Se o Postgres ainda não tem certificado, `host` funciona, mas trate como solução temporária. **4. Recarregar** e conferir que subiu: ```bash sudo systemctl reload postgresql # ou, em container: docker exec -it psql -U postgres -c 'SELECT pg_reload_conf();' ``` **5. Firewall.** Libere a porta apenas para o IP do Talk: ```bash sudo ufw allow from {{ip_talk}} to any port 5432 proto tcp sudo ufw status numbered # confira que não existe um "5432 ALLOW Anywhere" ``` **6. Docker.** Se o banco roda em container, a porta precisa estar publicada no host. No `docker-compose.yml`: ```yaml services: postgres: ports: - "5432:5432" ``` No Portainer: **Containers › o container › Duplicate/Edit › Port mapping**, host `5432` para container `5432`. ## MySQL e MariaDB **1. Criar os usuários**, já amarrados ao IP de origem: ```sql CREATE USER 'leitor'@'{{ip_talk}}' IDENTIFIED BY 'senha-longa-aqui'; GRANT SELECT ON erp.* TO 'leitor'@'{{ip_talk}}'; FLUSH PRIVILEGES; ``` O `@'{{ip_talk}}'` é a trava principal: esse usuário não consegue entrar de nenhum outro lugar, nem que a senha vaze. **2. Aceitar conexão de fora.** No `my.cnf` ou `50-server.cnf`: ``` bind-address = 0.0.0.0 ``` Reinicie o serviço depois de mudar. **3. Firewall:** ```bash sudo ufw allow from {{ip_talk}} to any port 3306 proto tcp ``` **4. CyberPanel.** O painel tem trava própria: **Databases › Remote MySQL**, informe o `{{ip_talk}}` e salve. Sem isso, o usuário existe, o firewall está aberto e a conexão continua recusada. ## Testar antes de cadastrar Rode **a partir do servidor do Talk** — é o teste que reproduz o caminho real: ```bash # Postgres psql "postgres://leitor:senha@db.exemplo.com.br:5432/erp" -c 'SELECT 1' # MySQL mysql -h db.exemplo.com.br -u leitor -p erp -e 'SELECT 1' # só a porta, quando nem o cliente está instalado nc -zv db.exemplo.com.br 5432 ``` Funcionando aqui, cadastre a conexão no Talk e use "Testar com 5 registros" no bloco Consulta SQL. ## Quando não conecta | Mensagem | Onde está o problema | |---|---| | `Connection timed out` | Firewall, ou a porta não está publicada no host | | `Connection refused` | O serviço não escuta no IP externo — `listen_addresses` ou `bind-address` | | `no pg_hba.conf entry for host` | Falta a linha no `pg_hba.conf`, ou o IP mudou | | `Access denied for user ... @` | No MySQL, o usuário existe para outro IP, ou falta o Remote MySQL do CyberPanel | | `password authentication failed` | Senha errada, ou método diferente do configurado no `pg_hba` | | Conecta e não vê tabela | Faltou o `GRANT SELECT`, ou o schema não é o `public` | --- # Usuário editor: escrever de volta no ERP Ler do ERP e devolver informação para ele é um caso legítimo — gravar no CRM que o consultor recebeu determinado número de leads, marcar um pedido como atendido, atualizar um campo de status. Duas coisas precisam ficar claras antes. ## O bloco Consulta SQL não escreve O motor de SQL aceita apenas `SELECT` e `WITH`, e abre **transação somente leitura**. Um `UPDATE` colocado ali é recusado antes de chegar ao banco. Isso é proposital: uma consulta de leitura que roda a cada 15 minutos, com erro de `WHERE`, não pode ter poder de apagar a base do ERP. **O caminho da escrita é o bloco Chamar API**, contra um endpoint do próprio ERP, usado dentro de um fluxo do Bridge ou do Studio. Se o ERP não tem endpoint de escrita, o caminho é criar um — um pequeno serviço com uma rota só, que recebe o dado e faz o `UPDATE`. Fica mais seguro do que abrir o banco para escrita pela rede, e deixa registro de quem chamou. ## Criando o usuário editor mesmo assim Quando existe esse serviço intermediário, é ele que usa o usuário editor — e o princípio é dar o mínimo, tabela por tabela, nunca `ALL PRIVILEGES`. Postgres: ```sql CREATE USER editor WITH PASSWORD 'outra-senha-longa'; GRANT CONNECT ON DATABASE erp TO editor; GRANT USAGE ON SCHEMA public TO editor; -- leitura ampla, escrita só onde é necessário GRANT SELECT ON ALL TABLES IN SCHEMA public TO editor; GRANT INSERT, UPDATE ON consultores_metricas TO editor; GRANT UPDATE (leads_recebidos, atualizado_em) ON consultores TO editor; -- sequências, para o INSERT conseguir gerar id GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO editor; ``` O `GRANT UPDATE (coluna)` é a forma mais restrita: o editor altera aquelas duas colunas da tabela `consultores` e mais nenhuma. MySQL e MariaDB: ```sql CREATE USER 'editor'@'IP_DO_SERVICO' IDENTIFIED BY 'outra-senha-longa'; GRANT SELECT ON erp.* TO 'editor'@'IP_DO_SERVICO'; GRANT INSERT, UPDATE ON erp.consultores_metricas TO 'editor'@'IP_DO_SERVICO'; FLUSH PRIVILEGES; ``` Repare no que **não** foi concedido em nenhum dos dois: `DELETE`, `DROP`, `TRUNCATE`, `ALTER`. Um erro de fluxo passa a custar um registro errado, não uma tabela perdida. ## Recomendações - **Um usuário por finalidade.** O `leitor` do Lead Conversions e o `editor` do serviço de escrita são usuários diferentes, com senhas diferentes. Vazou um, o outro continua fechado. - **Chave de idempotência.** Se o fluxo roda a cada 15 minutos e pode repetir, grave um identificador do evento e ignore repetido. Sem isso, uma reexecução soma duas vezes. - **Coluna de origem.** Uma coluna `origem = 'profluxus'` na tabela de destino deixa claro o que veio de automação quando alguém for auditar. - **Teste em cópia.** Rode a escrita primeiro contra uma base de homologação. O `Testar com 5 registros` protege a leitura, não a escrita por API. ## Limites do motor Toda consulta abre transação **somente leitura** e é interrompida aos 30 segundos. Endereços de rede interna — `10.x`, `172.16.x`, `192.168.x`, `localhost` — são bloqueados, a menos que a instalação tenha `PROFLUXUS_FLUXO_REDE_INTERNA=1`. Blocos de código rodam em sandbox, sem rede e sem acesso a arquivo. ### Studio: o construtor nos demais canais URL: https://www.profluxus.com/docs/studio/studio-fluxos-fora-do-meta O Studio usa o mesmo construtor do SocialFlow, aplicado a WhatsApp (oficial e não oficial), site, e-mail, API e Telegram. As caixas são separadas: o Studio nunca enxerga uma caixa de Instagram, e um fluxo do SocialFlow nunca roda numa caixa de WhatsApp. ## O que muda em relação ao SocialFlow **Capacidades por canal.** Botões e listas existem na API oficial do WhatsApp; onde não há botão, o bloco vira texto simples. O construtor mostra o que cada canal suporta. **Custo por mensagem.** No WhatsApp oficial, o Studio avisa quando um bloco gera cobrança, antes de você publicar o fluxo. **Gatilhos por caixa.** Palavra-chave, primeira mensagem ou qualquer mensagem, configurados caixa a caixa. **Saída para fora.** Quando o fluxo precisa continuar em outro lugar, há saída para Typebot e n8n. ## Casos de uso - Menu de atendimento no WhatsApp — "Quero comprar / Já sou cliente / Outro assunto" — com cada saída entregando para um time diferente. - Pergunta de CPF que consulta o ERP pelo bloco API, usando uma conexão cadastrada, e responde com os dados do cliente. - Fila igualitária por caixa depois que o portão completa o cadastro. ## SocialFlow ### Portão de qualificação e construtor de fluxo URL: https://www.profluxus.com/docs/socialflow/socialflow-portao-e-fluxos O SocialFlow cuida de Instagram e Facebook: portão de qualificação antes do consultor, fluxos com botões e perguntas, resposta a comentários, agenda de publicação e sequências. ## O portão Quem chama no direct passa primeiro pelo portão, que coleta nome, telefone, e-mail e os campos personalizados que a conta definir — o CPF vai direto para o identificador do contato. Só depois de completo é que a conversa entra na fila do consultor. No WhatsApp, via Studio, há um complemento: quando o nome do perfil não serve — emoji, um número de telefone, "Eu" — o portão pergunta o nome. ## Blocos do construtor Gatilho (primeira mensagem, palavra-chave ou qualquer mensagem), texto, botões, cartão, mídia, pergunta com validação, condição, espera, etiqueta, código, IA classifica, IA responde, responsável, prioridade, situação, guardar, nota, funil, Bridge, ação, API, entregar e portão. A pergunta com validação aceita CPF, CNPJ, telefone, e-mail, data, número, lista de opções, padrão livre e validação por API. O botão direito abre menu no bloco — testar até aqui, duplicar, apagar — e na ligação entre blocos, para removê-la. ## Variáveis `{{nome}}`, `{{telefone}}`, `{{contact.identifier}}` (CPF), `{{contact.identifier.pj}}` (CNPJ), `{{campo:x}}` para campo personalizado, `{{conversa:x}}` para atributo da conversa e `{{dados.x.y}}` para o que uma chamada de API trouxe. O spintax `{oi|olá}` sorteia uma das variações a cada envio. ## Testar "Testar o fluxo" roda o motor de verdade com um contato real, sem enviar nada e sem gravar. A conversa pode ser localizada por nome, telefone, CPF ou número. ## Resgate no WhatsApp Para o lead do direct que sumiu, a conversa tem o botão "Chamar no WhatsApp": ele envia um template aprovado de utilidade para o telefone da ficha e abre a conversa no WhatsApp, atribuída ao mesmo consultor, com um resumo do que já havia sido conversado. Uma vez por agente; quem supervisiona não tem limite. ## Casos de uso - Qualificar todo lead do Instagram antes de ocupar um consultor. - Responder comentário por regra de palavra-chave e puxar a pessoa para o direct. - Agendar posts e stories com variação de texto, para não repetir a mesma frase. - Recuperar pelo WhatsApp o lead que parou de responder no direct. ## Lead Conversions ### Como o Lead Conversions liga lead e venda URL: https://www.profluxus.com/docs/lead-conversions/lead-conversions-como-funciona "Quantos leads de agosto fecharam em agosto?" é uma pergunta que não se responde chamando API: são dezenas de milhares de contatos no Talk, centenas de milhares de vendas na fonte e, muitas vezes, um CRM antigo no meio. O módulo espelha tudo em duas tabelas locais, num formato só, e a pergunta passa a ser uma consulta de um segundo. ## Conceitos **Lead (entrada)** é a primeira conversa de um contato no Talk. As conversas seguintes da mesma pessoa são **toques**, não leads novos. **Venda** é um registro vindo de uma fonte: ERP, painel ou planilha. **Venda atribuída** é a venda cuja pessoa tem um lead no Talk. É ela que entra no cálculo da taxa de conversão. **Sem lead** é a venda que não encontrou ninguém. Ela **não desaparece**: fica no painel, em "Qualidade do cruzamento", porque é justamente a parte que mais diz sobre o estado do cadastro. **Consultor da venda** é quem atendeu o lead no Talk, na primeira conversa. O vendedor que a fonte registrou aparece ao lado, para comparação. **Canal e caixa**: o canal é WhatsApp, Instagram, Facebook ou Site; a caixa é a sub-trilha dentro dele — cada número de WhatsApp, cada conta de Instagram. ## As três chaves O encontro entre lead e venda é tentado nesta ordem: 1. **CPF ou CNPJ**, só dígitos. No Talk fica em `contact.identifier`. 2. **Telefone**, com e sem o nono dígito. Não é chave reserva: metade dos leads não tem CPF. 3. **E-mail.** Quando encontra, o módulo **enriquece o cadastro**: a pessoa que só tinha telefone ganha o CPF que veio da venda. A venda seguinte dela, mesmo chegando só com CPF, encontra o lead. ## Segurança O módulo é visível apenas para administradores da conta. Credenciais de banco e API ficam criptografadas e não voltam para a tela. O SQL aceita apenas `SELECT` e `WITH`, em transação somente leitura, com teto de 30 segundos. Blocos de código rodam em sandbox sem rede e sem acesso a arquivo. Endereços de rede interna são bloqueados por padrão. ### Primeiro uso: ligar as fontes e cruzar URL: https://www.profluxus.com/docs/lead-conversions/lead-conversions-primeiro-uso Abra **Lead Conversions** no menu — só administradores enxergam o módulo. ## 1. Sincronizar o Talk Em **Fontes**, mande sincronizar o **Talk**. A carga inicial roda em fatias de quatro minutos, na fila de baixa prioridade, para não disputar recurso com o atendimento. O sino avisa quando termina. Depois disso a agenda padrão, a cada 15 minutos, mantém tudo em dia. ## 2. Cadastrar a fonte de vendas Em **Conexões e APIs**, cadastre a origem das vendas pelo modelo certo — banco ou API — e cole a credencial. ## 3. Montar o fluxo de leitura Em **Fontes › Nova fonte**, tipo **Vendas**, monte no construtor: - **Consulta SQL**, **Chamar API** ou **Planilha**, apontando para a conexão. Use `:cursor` no SQL, ou `{{ultimo_cursor}}` na API, para ler só o que mudou desde a última vez. - **Para cada item**, quando a resposta for uma lista dentro de um objeto, como `dados.data`. - **Mapear campos**: qual campo é documento, telefone, e-mail, nome, **data do evento** (obrigatória), valor, vendedor, status e cursor. O botão "Ver os campos da fonte" lê 5 registros reais e transforma os campos numa lista para escolher. - **Gravar evento**, tipo venda, com o id de origem — o código da venda na fonte. Salve. **Testar com 5 registros** executa de verdade e mostra o que seria gravado, sem gravar nada. ## 4. Agendar Todo dia às 6h costuma bastar para uma fonte de vendas. Um CRM antigo entra como fonte de **leads**, por planilha ou SQL, com agenda manual: é carga única, não precisa repetir. ### Painel, cruzamentos e relatório da diretoria URL: https://www.profluxus.com/docs/lead-conversions/lead-conversions-painel-e-relatorio ## Filtros No topo: mês, consultores (vários, com busca) e canais com sub-trilhas por caixa — dá para marcar "WhatsApp" inteiro e mais uma conta específica de Instagram. O bloco recolhe num clique. ## Painel - **KPIs**: leads, vendas atribuídas, taxa, dias até fechar (mediana) e VGV atribuído, cada um com a variação sobre o mês anterior. - **Séries de nove meses**: leads, vendas atribuídas e taxa. - **Qualidade do cruzamento**: quanto foi encontrado por CPF, por telefone, por e-mail, quanto foi encontrado depois pelo enriquecimento e quanto ficou sem lead. - **Por canal e por caixa.** - **Por consultor**, com ficha individual: taxa por mês e últimas vendas, cada uma mostrando a chave que a encontrou. ## Cruzamentos As três perguntas do mês vêm prontas, e há a pergunta livre "entrou em X e fechou em Y" — onde X pode ser "qualquer mês" ou "antes do Talk". Tudo exporta em CSV. ## Relatório da diretoria Uma folha pronta para A4: resumo executivo em texto, KPIs, evolução, ranking, de onde vieram as vendas e qualidade do cruzamento. "Exportar PDF" usa a impressão do navegador. Os filtros do topo valem no relatório. ## Casos de uso **Reunião mensal.** Todo dia 1º, abrir o relatório com o mês anterior e exportar o PDF. **Campanha de anúncio.** Filtrar pela caixa de WhatsApp da campanha e comparar a taxa dela com a média da conta. **Consultor que "não recebe lead bom".** A ficha mostra leads, taxa por mês e dias até fechar, lado a lado com o time. **Cliente que voltou.** A pergunta "fechou em agosto e entrou antes do Talk" mostra quanto do faturamento vem da base antiga. ### Taxa de conversão como peso na distribuição de leads URL: https://www.profluxus.com/docs/lead-conversions/lead-conversions-distribuicao Em **Distribuição**, é possível ligar o peso por conversão. A taxa de cada consultor no período escolhido — último mês, trimestre, semestre, ano ou faixa de datas, sempre em meses fechados — vira um **fator** entre 1 e a força escolhida: 1,5x, 2x, 3x ou 5x. Quem converte no topo passa a receber até esse múltiplo de leads. ## As regras que protegem a fila - Quem tem **menos leads que o mínimo** no período fica **neutro**, com fator 1. Consultor novo não é punido por não ter histórico. - **Ninguém cai a zero.** Tirar alguém da fila continua sendo decisão humana, na aba de suspensões da distribuição. - Vale nos três modos da distribuição do Talk: fila igualitária, por contagem e cascata online/ausente/offline. - A tabela de fatores é recalculada a cada 20 minutos. A tela mostra a tabela de fatores **antes** de ligar, para a diretoria ver o efeito sobre o time real antes de decidir. Uma configuração comum: peso por conversão no trimestre, força 2x, mínimo de 20 leads. ### Perguntar em português: as ferramentas MCP do módulo URL: https://www.profluxus.com/docs/lead-conversions/lead-conversions-mcp Quando uma leitura termina, o sino do módulo avisa: quantos registros lidos, quantos atribuídos e quantos ficaram sem lead. O bloco "Avisar ao terminar" também aceita um webhook. O servidor MCP da conta expõe o módulo como ferramentas, o que permite perguntar em português em vez de abrir o painel. "Qual a taxa de conversão de agosto por consultor?" vira uma pergunta direta ao assistente. | Ferramenta | O que faz | |---|---| | `leadconversions_painel` | Os números do painel no período escolhido | | `leadconversions_cruzamentos` | As perguntas prontas do mês | | `leadconversions_livre` | A pergunta "entrou em X e fechou em Y" | | `leadconversions_consultor` | A ficha de um consultor | | `leadconversions_fontes_list` | As fontes cadastradas e o estado de cada uma | | `leadconversions_fonte_sincronizar` | Dispara a leitura de uma fonte | | `leadconversions_distribuicao` | A tabela de fatores da distribuição | | `leadconversions_distribuicao_update` | Altera a configuração do peso por conversão | Como ligar o servidor MCP da conta está em [Servidor MCP](/docs/mcp). ## Bridge ### Bridge: automação sem conversa URL: https://www.profluxus.com/docs/bridge/bridge-automacao-sem-conversa O Bridge é o módulo de automação que não depende de conversa. Os gatilhos são por hora, por webhook recebido ou por evento do Talk. As ações chamam serviços de fora, pelas conexões cadastradas, e agem dentro do Talk: etiqueta, atribuição, nota, campanha, funil. ## Casos de uso **Rotina diária.** Todo dia às 7h, buscar no ERP os boletos vencidos e etiquetar os contatos correspondentes. **Lead vindo do site.** O webhook do site cria o lead, o Bridge atribui ao time certo e dispara o primeiro template. **Pós-atendimento.** O evento "conversa resolvida" dispara uma pesquisa de satisfação por outro canal. **Braço dos fluxos de conversa.** SocialFlow e Studio chamam um fluxo do Bridge pelo bloco "Bridge" quando precisam de uma integração que não cabe dentro do fluxo de conversa.