Instruções para aquisição

Instale o zBot (para Windows). Rode este sistema no seu computador e vários outros que podem ser baixados diretamente pelo zBot ou criados por você mesmo(a)!

Detalhes do Sistema

Gestão do funil de vendas

26/12/2023 | Build: 74
Do pacote: Funil de vendas

Descrição: Permite adicionar e classificar contatos de acordo com sua etapa no funil de vendas, facilitando a gestão da comunicação e otimizando custos e esforços nas ações de comunicação.

Tutorial em Vídeo

Ajuda

Atenção: Veja também o vídeo curto que explica o que é e quais são as principais características de um funil de vendas: youtu.be/2GcU3SzR0CI

FUNIL DE VENDAS


Este script facilita a gestão de contatos que estão sendo trabalhados para um determinado objetivo, como por exemplo: comprar um produto de sua empresa.

Ele pode ser usado para ações de abordagem por e-mail, telefone ou envio de mensagens por plataformas diversas, mas iremos direcionar mais tutorial para ações de e-mail marketing.

Quanto mais etapas, mais complexa e trabalhosa fica a gestão de um funil de vendas. Para o nosso propósito, entendemos que não adianta fazer um funil bem detalhado se você, como usuário, vai ter um trabalho enorme para classificar os contatos. O resultado mais comum nesse caso é a desistência da gestão dos dados. Ao invés disso, criamos uma experiência básica, mas muito fácil de usar e melhor para lhe gerar resultado.



O Funil de Vendas terá 3 simples etapas. Do grupo inicial para o grupo final (objetivo), teremos:

1- Prospects:
São contatos antigos, que você não trabalha já faz meses ou até anos. Você não sabe se o e-mail dessa pessoa está ativo nem se ela lembra de sua empresa. Aqui também podem ser inseridos contatos fruto de coleta de dados segmentados, onde você quer iniciar um trabalho de abordagem.

2- Produção:
Esta classificação deve ser atribuída aos contatos com alto potencial de serem válidos, ou quando você tem certeza de que eles são válidos. Sugestões para adição: Quando você enviar pelo menos 2 mensagens via e-mail e não houver retorno de erro nem pedido de descadastramento. Melhor ainda se você tiver uma medida que ateste que o contato leu sua mensagem.

3- Lista Vip:
Contatos mais importantes. São aqueles que entram em contato com você diretamente para tirar dúvidas ou comprar após a sua abordagem inicial. Essa classificação deve ser dada para pessoas que leram sua mensagem e isso foi medido por um sistema de estatísticas integrado ao sistema de e-mail marketing que você usa, ou então quando uma pessoa entrar em contato diretametne com você e você atestar que o e-mail está no seu funil de vendas.

INTERRUPÇÃO DA ABORDAGEM


É importante fazer uma gestão adequada dos contatos que não existem e também das pessoas que não querem continuar recebendo suas mensagens. Para isso criamos dois marcadores para esta classificação:

4- Descadastrados: São pessoas que solicitam ativamente para não receberem mais mensagens suas, ou então que efetuam alguma reclamação de SPAM por não terem se inscrito ou não lembrarem mais de sua empresa.

5- Inválidos: Coloque nesta lista os contatos que retornaram erro, ou seja, o endereço de e-mail não existe mais, a conta está inativa ou alguma regra do servidor de destino bloqueou de forma permanente sua mensagem.

DICAS IMPORTANTES


A gestão dos contatos descadastrados e inválidos é tão importante quanto a gestão da sua lista de trabalho formada pelo funil (prospects, produção e lista vip). Ações de e-mail marketing geram tempo e custos, então manter e-mails inúteis atrapalha muito ou até inviabiliza suas ações de comunicação.

COMO FUNCIONA A ENTRADA DE DADOS NO FUNIL DE VENDAS



OBS: Repetindo que estamos focando em e-mails, mas os contatos também podem ser telefones ou outros identificadores que você queira usar.



INCLUSÃO DE CONTATOS


Cole a lista de contatos escolhendo se quer classificá-los como prospects, produção, lista vip, descadastrados ou inválidos. Aqui os benefícios do sistema já começam a agir fortemente, pois ele vai considerar o fluxo de classificação.

Se você decidir inserir esses contatos como prospects (etapa 1), por exemplo, apenas contatos que ainda não estão na sua tabela serão inseridos. Os que já tiverem uma classificação mais alta ou forem descadastrados/inválidos, não serão afetados.



Se você inserir os contatos querendo classificar eles como lista VIP, ele irá inserir os que não existirem já como "lista vip", irá migrar automaticamente os que forem prospects ou produção para se tornarem lista vip, e não irá alterar a classificação de contatos que forem descadastrados/inválidos.

Ou seja, ele sempre considera se o contato já está em uma etapa mais elevada. Se estiver, ele não o altera, se for de uma camada inferior, o contato é editado e se não existir, já entra na classificação que você definiu. Deu para perceber como apenas esta função já facilita enormemente a gestão da classificação dos seus contatos?

E se eu quiser forçar a classificação dos contatos inseridos?
Não se preocupe. Sabemos que há situações onde você precisa inserir contatos forçando uma determinada etapa no funil, especialmente em situações onde você acabar cometendo algum erro operacional. Basta mudar o seletor para forçar a classificação e o sistema vai migrar contatos existentes ou inserir os que não existirem na etapa desejada do seu funil

OBTENÇÃO DE CONTATOS PARA ABORDAGEM


Tenho certeza de que você já está muito animado(a) com a função de inclusão, mas fica ainda melhor. Você pode efetuar filtragens gerenciais para exibir contatos que você quer abordar. Usando a função "Obter contatos", os contatos selecionados são editados. A DATA DE CONTATO é alterada para hoje, o campo INTERAÇÕES é incrementado e o campo ID ÚNICO é reatribuído para identificar a operação de obtenção em todos os registros afetados. Os dados do campo "CONTATOS" são exibidos no bloco de notas e a partir daí você pode fazer o envio de uma mensagem, ligação ou outra abordagem de comunicação prevista na estratégia de seu negócio.

CASO DE USO


Digamos que você adicionou 1000 e-mails classificados como prospects. Todos os dias você quer obter 200 contatos e enviar uma mensagem inicial de abordagem. Claro que você quer obter sempre os contatos não usados, até concluir a lista dos 1.000 prospects inseridos. Para isso basta você efetuar uma filtragem gerencial com o campo INTERAÇÕES MENOR DO QUE 1 e o status como PROSPECT. Use então o botão UTILS, na opção selecionar o contato da posição 1 até 200. Selecione todos e clique no botão "OBTER CONTATOS". Pronto, agora basta copiar os contatos que vão abrir no bloco de notas e enviar a sua mensagem pelo sistema de e-mail de sua preferência. Nesse procedimento esses contatos foram todos atualizados, conforme já explicamos anteriormente, com dados gerenciais que lhe permitirão efetuar filtragens futuras para poder obter exatamente o tipo de contato que deseja trabalhar.





Avançando no nosso caso de uso. Nesse trabalho de abordagem, digamos que sua ferramenta de envio de e-mails consegue rastrear as aberturas de mensagem e você obteve a lista de e-mails que leram sua mensagem. Além dessa lista, você também recebeu alguns contatos diretos de pessoas que responderam sua mensagem interessadas em seus produtos. É um bom momento para adicionar esses contatos na sua lista VIP, que foi projetada para você manter os contatos mais importantes, que se tornaram clientes ou estão engajados na sua comunicação. Essas são as pessoas para quem você vai direcionar as melhores campanhas.

Por outro lado, você também verificou na sua ferramenta de envio de e-mails e outras fontes, que há uma quantidade de retornos com erro, ou seja, e-mails que não existem mais ou estão inativos. Há também pessoas que pediram para não receber mais suas mensagens. Da mesma maneira, insira esses contatos adequadamente nas categorias DESCADASTRADO ou INVÁLIDO.

Com esse ciclo de gestão, você vai poder selecionar de forma precisa os contatos, sem mandar mensagens repetidas ou com frequência inadequada por engano. O uso de um funil de vendas costuma gerar ótimos resultados, pois você para de uma vez de fazer ações de comunicação no escuro. Fica tudo mensurado e muito mais fácil de gerenciar.

DICAS FINAIS


* Na seção "Pacotes" você pode duplicar o pacote de Funil de Vendas, ou seja, você pode ter quantos funis de venda quiser, com bases de dados separadas para diversos objetivos.

* Especialmente se estiver trabalhando com e-mails e seguindo as recomendações sobre inserir na categoria de prospects os contatos antigos ou obtidos por segmentação de público-alvo, evite enviar muitas mensagens por dia para esses contatos, pois normalmente essa lista vai ter um índice de bounces maior, o que pode causar restrições no uso de suas ferramentas de e-mail marketing ou até problemas no domínio do seu site. Essa lista de prospects é para ir trabalhando bem devagar; poucas centenas de envios por dia. Também é preciso coletar adequadamente a lista de retornos de erro. Após 1 ou 2 (recomendado) envios para as pessoas dessa lista, as que não tiverem sido classificadas como inválidos ou descadastramentos podem então ser migradas para a categoria PRODUÇÃO. Nessa categoria, normalmente os contatos já ficam seguros para você efetuar campanhas em maior volume e também usar plataformas de envio como Wix, Mailchimp entre várias outras, pois o índice de bounces deverá ficar dentro da tolerância e com isso você finalmente vai poder usufruir desse tipo de serviço de e-mail marketing da forma que sempre quis!

Código do script

Este script também pode ser baixado diretamente pelo software zBot
&CriarBotaoPopup("Exibir...";"Desfazer filtro, Prospects (1),Produção (2),Lista VIP (3),Descadastrados (4),Inválidos (5)";"desfazer filtro, exibir prospect, exibir produção, exibir lista vip, exibir descadastrado, exibir inválido";110) //*
&CriarBotaoPopup("Adicionar...";"Inserir contatos etapa 1 (prospects),Inserir contatos etapa 2 (produção),Inserir contatos etapa 3 (lista vip),Inserir contatos etapa 4 (descadastrados),Inserir contatos etapa 5 (inválidos)";"adicionar prospect, adicionar produção, adicionar lista vip, adicionar descadastrado, adicionar inválido";130) //*
&CriarBotaoPopup("Nos selecionados...";"Forçar categoria,Forçar data de contato"; "definir categoria,definir data contato";150) //*
&CriarBotao("Obter selecionados";"obter selecionados")
&CriarBotaoPopup("Filtro gerencial..."; "Filtro gerencial detalhado, Obter contatos pela data da última abordagem" ;"filtro gerencial, filtro gerencial 2")


//* Adiciona o campo "interações" se não existir
&TbAdicionarCampo("interacoes"; "inteiro")[0] //* tipo: texto, inteiro, moeda, data

//&TbCores("ativo";"";"clGreen";"=";"sim")
//&TbCores("ativo";"";"clRed";"=";"não")

&TextoObterDataHora("hoje")[0] //*
&TextoDataInfo([hoje]; "data"; "hoje")[0]

&TbCores("data_contato";"clLime";"";"=";[hoje])
&TbCores("status";"$0081D1F8";"";"=";"prospect")
&TbCores("status";"$00BCFBAA";"";"=";"produção")
&TbCores("status";"$00FDC6DE";"";"=";"lista vip")
&TbCores("status";"$00E4DEDE";"";"=";"descadastrado")
&TbCores("status";"$008E8DCB";"";"=";"inválido") 

#categorias
v0=indefinido
v1=prospect
v2=produção
v3=lista vip
v4=descadastrado
v5=inválido
#

#status
indefinido=0
prospect=1
produção=2
lista vip=3
descadastrado=4
inválido=5
#

// faz uma seleção de dados para ações de comunicação
#filtro gerencial
[data] = ""
[interacoes] = ""
[status] = ""
[filtro] = ""
[conectivo] = ""

&ValorPedirVarios("Defina os critérios do seu filtro"; "data menor que, data maior que, interações menor que, interações maior que, status|prospect#produção#lista vip#descadastrado#inválido")[0] //*
&Se([último resultado];igual;"FALHA")   
   &VaiPara("pular filtro gerencial")
.fimse

&Se([data menor que];#-\#-/;"")
   [filtro] = "(data_contato #-\ '[data menor que]')"
.fimse

&Se([data maior que];#-\#-/;"")
   &Se([filtro];#-\#-/;"")
      [conectivo] = ' e '
   .fimse   
   [filtro] = "[filtro][conectivo](data_contato #-/ '[data maior que]')"
.fimse

&Se([interações menor que];#-\#-/;"")
   &Se([filtro];#-\#-/;"")
      [conectivo] = ' e '
   .fimse   
   [filtro] = "[filtro][conectivo](interacoes #-\ [interações menor que])"
.fimse

&Se([interações maior que];#-\#-/;"")
   &Se([filtro];#-\#-/;"")
      [conectivo] = ' e '
   .fimse   
   [filtro] = "[filtro][conectivo](interacoes #-/ [interações maior que])"
.fimse

&Se([status];#-\#-/;"")
   &Se([filtro];#-\#-/;"")
      [conectivo] = ' e '
   .fimse   
   [filtro] = "[filtro][conectivo](status = '[status]')"
.fimse
//&Mensagem([filtro])
&TbFiltrar([filtro])[0] //*
&Marcador("pular filtro gerencial")

#

// filtra registros não contatados (pela data último contato) a mais de X dias
#filtro gerencial 2
[data] = ""
[status] = ""
[filtro] = ""
[conectivo] = ""

&ValorPedirVarios("Defina os critérios do seu filtro"; "Não contatatos há pelo menos (em dias), status|todos#prospect#produção#lista vip#descadastrado#inválido")[0] //*
&Se([último resultado];igual;"FALHA")   
   &VaiPara("pular filtro gerencial 2")
.fimse

[dias] = [Não contatatos há pelo menos (em dias)]

&Se([dias];#-\#-/;"")   
   &TextoHojeInfo("data"; "data")[0] //* valor -#-/ data, ano, mês, dia, hora, minuto, segundo, dia_semana, secao_hora
   &TextoDataInc("data"; "-[dias]")[0] //*
   [filtro] = "(data_contato #-\= '[data]')"
.fimse

&Se([status];#-\#-/;"todos")
   &Se([filtro];#-\#-/;"")
      [conectivo] = ' e '
   .fimse   
   [filtro] = "[filtro][conectivo](status = '[status]')"
.fimse
//&Mensagem([filtro])
&TbFiltrar([filtro])[0] //*
&Marcador("pular filtro gerencial 2")
#


// Força uma redefinição bruta em uma categoria, para os registros selecinoados
#definir categoria
   &TextoGerarIdUnico("id_unico")[0] //* Gera um id único
   [categoria] = 0
   &ValorPedirVarios("Forçar definição de uma categoria"; "status|prospect#produção#lista vip#descadastrado#inválido")[0] //*
   &BlocoLer("status";"categoria");
   [categoria] = [categoria*[status]]   
   &Se([categoria];#-\#-/;0)
      &TbSelecionadosValorDefinir("status,categoria";"[status],[categoria]")[0] //*        
      //&TbSelecionadosValorDefinir("categoria";[categoria])[0] //*
      //&TbSelecionadosValorDefinir("id_unico";[id_unico])[0] //*            
   .fimse         
#

// Força uma redefinição de data do último contato
#definir data contato
   &TextoGerarIdUnico("id_unico")[0] //* Gera um id único
   [data] = ""   
   &ValorPedirVarios("Forçar data de contato"; "data")[0] //*      
   &Se([data];#-\#-/;"")
      &TbSelecionadosValorDefinir("data_contato,id_unico";"[data],[id_unico]")[0] //*             
      //&TbSelecionadosValorDefinir("id_unico";[id_unico])[0] //*
   .fimse         
#


// copia os contatos selecionados
// Define a data de último contato para hoje
// Incrementa o campo interacoes
#obter selecionados
   &TextoGerarIdUnico("id_unico")[0] //* Gera um id único
   &StatusInserir("OBTER CONTATOS SELECIONADOS";"cinza")[0]
   &TextoObterDataHora("hoje")[0] //*
   &TextoDataInfo([hoje]; "secao_data"; "hoje")[0] //* valor -#-/ ano, mês, dia, hora, minuto, segundo, dia_semana, secao_data, secao_hora
   
   &StatusInserir("Copiando contatos...";"preto")[0]
   &TbSelecionadosCopiar("contato";"dados")[0] //*
   &StatusInserirExtra("[OK]";"sucesso")[0] //*       
   
   //* Edita os registros selecionados
   &StatusInserir("Atualizando registros...";"preto")[0]
   &TbLerCampo("interacoes")[0] //*
   &Se([interacoes];=;"")
      [interacoes] = "0"
   .fimse
   &ValorInc("interacoes";1)[0] //*
   &TbSelecionadosValorDefinir("id_unico, data_contato, interacoes";"[id_unico], [hoje], [interacoes]")[0] //*
   &StatusInserirExtra("[OK]";"sucesso")[0] //*               
   
   &StatusInserir("Exibindo dados copiados (AGUARDE)...";"preto")[0]
   &TextoSalvar([dados]; "tmp_obter.txt")[0] //*
   &ExecutarComando("notepad.exe tmp_obter.txt")[0]
   &StatusInserirExtra("[OK]";"sucesso")[0] //*
   
   &StatusInserir("FIM DA OPERAÇÃO";"cinza")[0]
#

#desfazer filtro
   &TbFiltrar("")[0] //*
#

#exibir prospect
   &TbFiltrar("categoria='1'")[0] //*
#

#exibir produção
  &TbFiltrar("categoria='2'")[0] //*
#

#exibir lista vip
  &TbFiltrar("categoria='3'")[0] //*
#

#exibir descadastrado
  &TbFiltrar("categoria='4'")[0] //*
#

#exibir inválido
  &TbFiltrar("categoria='5'")[0] //*
#

// dados (lista de contatos para adicionar)
// categoria (1,2,3,4, 5) 
#adicionar dados em uma etapa
   &TextoGerarIdUnico("id_unico")[0] //* Gera um id único     
   &TextoObterDataHora("hoje")[0] //*   
   &TextoDataInfo([hoje]; "secao_data"; "hoje")[0] //* valor -#-/ ano, mês, dia, hora, minuto, segundo, dia_semana, secao_data, secao_hora
   &BlocoLer("categorias";"lista_status")[0] //*
      
   &TextoQtdLinhas([dados]; "qtd")[0] //* Obtém a quantidade de linhas
   &Progresso1Iniciar("Progresso";[qtd])[0] //*

   &Repetir([qtd]) //* a variável _indice terá o número do ciclo atual
      &Progresso1Inc(1)[0] //*  
      [linha] = ""
      &TbLocalizar("contato";[dados*[_indice]]; "linha")[0] //*            
      
      [categoria_origem] = [linha*categoria]
      &Se([categoria_origem];igual;"")
         [categoria_origem] = 0
      .fimse                         
      
      
      [status_origem] = [lista_status*v[categoria_origem]]
      [status_destino] = [lista_status*v[categoria]]      
      &Se([forçar];=;"não")         
         &Se([categoria_origem];#-/=;[categoria])
            &StatusInserir("Contato [linha*contato] já tem o status [status_origem]";"erro")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
            &VaiPara("continuar")      
         .fimse
      .fimse        
      
      &Se([categoria_origem];=;0)                  
         &TbInserir("id_unico,ativo,contato,categoria,status,data_cadastro";"[id_unico],sim,[dados*[_indice]],[categoria],[status_destino],[hoje]")[0] //*
         &StatusInserir("Inserido: [dados*[_indice]]";"sucesso")[0]
      .senao
         &TbLocalizarEditar("contato";[linha*contato];"categoria,status,id_unico";"[categoria],[status_destino],[id_unico]")[0] //*       
         
         [temp] = [dados*[_indice]]
         &StatusInserir("Editado: [temp] ([status_destino])";"sucesso")[0]         
      .fimse                   
      
      &Marcador("continuar")           
   .fimrepetir        
#

//&TextoSalvar("francisco@linkws.com"; "teste.txt")[0] //*
//&ExecutarComando("notepad.exe teste.txt")[0]

// Adiciona contatos como prospects
#adicionar prospect
   [dados] = ""
   &ValorPedirVarios("Cole a lista de prospects (um em cada linha)"; "dados, forçar|não#sim")[0] //*      
   &Se([dados];diferente;"")
      [categoria] = 1
      &BlocoExec("adicionar dados em uma etapa")[0] //*
   .senao
      &Mensagem("Sem dados")   
   .fimse
#

// Adiciona contatos como produção
#adicionar produção
   [dados] = ""
   &ValorPedirVarios("Cole a lista de produção (um em cada linha)"; "dados, forçar|não#sim")[0] //*   
   &Se([dados];diferente;"")
      [categoria] = 2
      &BlocoExec("adicionar dados em uma etapa")[0] //*
   .senao
      &Mensagem("Sem dados")   
   .fimse
#

// Adiciona contatos como lista vip
#adicionar lista vip
   [dados] = ""
   &ValorPedirVarios("Cole a lista vip (um em cada linha)"; "dados, forçar|não#sim")[0] //*   
   &Se([dados];diferente;"")
      [categoria] = 3
      &BlocoExec("adicionar dados em uma etapa")[0] //*
   .senao
      &Mensagem("Sem dados")   
   .fimse
#

// Adiciona contatos como descadstrado
#adicionar descadastrado
   [dados] = ""
   &ValorPedirVarios("Cole a lista de descadastrados (um em cada linha)"; "dados, forçar|não#sim")[0] //*   
   &Se([dados];diferente;"")
      [categoria] = 4
      &BlocoExec("adicionar dados em uma etapa")[0] //*
   .senao
      &Mensagem("Sem dados")   
   .fimse
#

// Adiciona contatos inválidos
#adicionar inválido 
   [dados] = ""    
   &ValorPedirVarios("Cole a lista de inválidos (um em cada linha)"; "dados, forçar|não#sim")[0] //*   
   &Se([dados];diferente;"")
      [categoria] = 5
      &BlocoExec("adicionar dados em uma etapa")[0] //*
   .senao
      &Mensagem("Sem dados")   
   .fimse
#

Termos gerais dos scripts

Os scritps gratuitos ou pagos tem como objetivo disponibilizar funções ou demonstrar possíveis aplicações que podem ser criadas usando a linguagem de programação de scripts do zBot.
Seu código-fonte é fornecido e pode ser livremente estudado, adaptado ou alterado pelo usuário que o adquire. Eventualmente são usados links ou exemplos de funções interagindo com sistemas ou sites populares, mas o zBot não tem nenhum vínculo, propriedade nem parceria com quaisquer produtos de terceiros, nem se responsabiliza por nenhuma consequência de sua utilização, cabendo exclusivamente ao usuário a total responsabilidade sobre isso, sempre levando em conta a licitide de sua aplicação e eventuais termos de uso ou propriedade de terceiros que devam ser considerados.
 Fale conosco