F
Fluxo Facilite.ai · Canvas único
Lookup por telefone → cadastrado fala pelo nome · novo é cadastrado antes de tudo
🏪 LADO RESTAURANTE
👨‍🍳 LADO AUTÔNOMO
❓ FAQ (comum aos dois)
⚡ JIT · CADASTRO LAZY
⚡ JIT · CADASTRO LAZY
🆘 FALLBACK
🚀 Trigger inicial
Qualquer 1ª mensagem do contato no WhatsApp.
Inclui mensagens vindas da landing page.
GPT · Classificador de intenção
Função
Classifica a 1ª mensagem em 3 buckets sem responder ao usuário ainda. Salva em {{intencao}}:
Buckets possíveis
descoberta · perguntas tipo "quanto cobram", "atendem em BH", "como funciona"
intencao · "preciso de garçom", "quero trabalhar", "cadastrar meu restaurante"
humano · "falar com pessoa", reclamação, urgência
✅ Salvou {{intencao}}
🤖 Critério · {{intencao}} auto
⚡ Roteia sem o usuário ver
🔍 descoberta → FAQ direto
🎯 intencao → lookup
🆘 humano → escala
⚙️ Lookup · /usuarios
GET /usuarios/lookup
?telefone={{subscriber.phone}}
← retorna
{ existe, tipo, nome,
  status, cadastro_completo }
🤖 Critério · existe? auto
⚡ Decisão silenciosa
existe == true?
✅ Sim → saudação por nome
❌ Não → mini-cadastro
💬 Saudação por nome
Oi, {{nome}}! 👋
Aqui é a Facilite.ai.
Next step
🤖 Critério · tipo + status auto
⚡ Lê {{tipo}} e {{status}} pra rotear
🏪 restaurante (qualquer status)
👨‍🍳 autônomo · status aprovado
⏳ autônomo · status pendente
⛔ autônomo · status suspenso
💬 Mini · Q1 Nome mini
Olá! 👋 Aqui é a Facilite.ai.
Pra te ajudar, qual seu nome?
Texto
💬 Mini · Q2 Tipo mini
Prazer, {{nome}}! Você é:
🏪 Restaurante
👨‍🍳 Profissional
⚙️ Cria mini-cadastro
POST /usuarios
{ nome, tipo,
  telefone,
  status: "mini" }
← grava no banco com cadastro_completo: false
💬 Bem-vindo
Pronto, {{nome}}! ✅
Bem-vindo à Facilite.ai.

(continua pro menu correspondente — abre o caminho específico de {{tipo}})
Continua
💬 Menu Restaurante
{{nome}}, o que precisa hoje?
🍽️ Contratar profissional
⚙️ Atualizar dados do estabelecimento
❓ Outras dúvidas
V2: Minhas vagas, Cancelar vaga, Avaliar, Ver pagamentos — quando o backend estiver maduro.
💬 Q1 · Categoria
Qual categoria?
Garçom
Cozinheiro
Barman
Copeiro
Outro
Q2 · Quando? (GPT extrator)
Facilite pergunta
"Pra quando? (ex: amanhã 19h às 02h)"
GPT extrai
data_inicio + data_fim · valida formato
✅ Successful
❌ Não entendeu
💬 Q3 · Bairro
Em qual bairro de SP?
Texto livre · GPT valida bairro
Next step
💬 Q4 · Quantos
Quantos profissionais?
1
2
3
4 ou mais
💬 Q5 · Valor/h
Qual valor por hora?
R$ 25/h
R$ 30/h
R$ 35/h
Outro
💬 Confirma?
{{quantidade}} {{categoria}}
{{data}} · {{inicio}}-{{fim}}
{{bairro}} · R${{valor}}/h
✅ Procurar agora
✏️ Corrigir
⚙️ /matching (webhook)
POST /matching
{ categoria, bairro,
  inicio, fim,
  quantidade, valor_max }
← retorna match_1_*, match_2_*, match_3_*
💬 Top 3 (Send message)
Achei 3 opções:
1️⃣ {{match_1_nome}} ⭐{{match_1_nota}}
R${{match_1_valor}}/h
2️⃣ {{match_2_nome}} ⭐{{match_2_nota}}
3️⃣ {{match_3_nome}} ⭐{{match_3_nota}}
Escolher 1
Escolher 2
Escolher 3
⚙️ /reservar
POST /reservar
{ vaga_id,
  autonomo_id_escolhido }
← backend dispara fluxo "Oferta de serviço" pro autônomo
💬 Aguardando
Avisei {{nome_escolhido}}!
Tem 15 min pra responder.
Espera webhook
Aceitou?
Backend retorna autonomo_aceitou.
✅ Sim
❌ Não / 15 min
💬 🎉 Confirmado
{{nome_escolhido}} confirmou!

PIX R${{valor_total}}
{{pix_copia_cola}}
Reofertar
Backend oferece pro #2 do top.
Avisa restaurante: "1 min".
💬 Q1 · Nome
Qual o nome do estabelecimento?
Texto livre
Next
💬 Q2 · Tipo
É qual tipo?
Restaurante
Bar / Boteco
Bistrô
Pizzaria
Cafeteria
Outro
💬 Q3 · Bairro
Bairro em SP?
Texto · GPT valida
Next
💬 Q4 · Endereço
Rua e número
Texto livre
Next
💬 Q5 · CNPJ
CNPJ ou "depois"
Vou digitar
Depois
💬 Confirma?
{{nome}} · {{tipo}}
{{endereco}}, {{bairro}}
CNPJ {{cnpj}}
✅ Sim
✏️ Corrigir
⚙️ /restaurantes
POST /restaurantes
{ ..., status: "lead" }
💬 🎉 Cadastrado
{{nome}} cadastrado! ✅
Quando precisar, manda mensagem aqui mesmo.
🍽️ Quero alguém agora
👌 Depois
🔁 Botão "Quero alguém agora" conecta de volta no Q1 do caminho contratar (acima). No BotConversa: usar trigger por palavra-chave OU duplicar a sequência.
💬 Menu Autônomo
{{nome}}, o que precisa?
⚙️ Atualizar meu perfil
❓ Outras dúvidas
V2 (com backend): Ver próximas vagas, Pausar X dias, Ver pagamentos.
Variantes por status: mini · pendente · suspenso mostram mensagem específica.
💬 Q1 · Nome
Seu nome completo?
Texto · Next
💬 Q2 · Categoria
Função principal?
Garçom
Cozinheiro
Barman
Copeiro
Aux. cozinha
💬 Q3 · Outras
Atua em outras funções?
("não" se for só {{categoria}})
Texto · GPT extrai
Next
💬 Q4 · Bairros
Quais bairros de SP aceita?
Texto · GPT extrai lista
Next
💬 Q5 · Valor mín
Valor mínimo/hora?
R$ 25/h
R$ 30/h
R$ 35/h
Outro
💬 Q6 · Foto
Manda uma selfie (rosto, fundo claro).
Imagem · BotConversa salva URL
Next
💬 Q7 · CPF
Seu CPF (11 números).
GPT valida
Next
💬 Q8 · PIX
Sua chave PIX?
Pra receber
Next
💬 Q9 · Refs
2 estabelecimentos onde já trabalhou.
Admin valida
Next
⚙️ /autonomos
POST /autonomos
{ ..., status: "pendente" }
Admin revisa no Dashboard
📥 External Trigger
POST /webhook/<token>
{
  subscriber_phone,
  variables: { restaurante,
   categoria, data,
   valor_total, reserva_id }
}
💬 Oferta de vaga
Tem serviço pra você 🚨
🏪 {{restaurante}}
📅 {{data}} · {{horario}}
💰 {{valor_total}} (PIX Facilite)
Topa? 15 min pra responder.
✅ Aceitar
❌ Não consigo
⚙️ /reserva/confirmar
POST /reserva/confirmar
{ reserva_id }
⚙️ /reserva/recusar
POST /reserva/recusar
{ reserva_id }
Backend oferece pro #2
💬 🎉 Confirmado!
Show, {{first_name}}! Vaga reservada.
Não falta! Te aviso 1h antes.
Você recebe R${{valor_liquido}}.
💬 Recusa registrada
Tudo bem! Vou ofertar pra outro.
Recusas reduzem sua taxa de aceite.
Esse é um fluxo SEPARADO no BotConversa, disparado por chamada de API externa (o backend chama quando há vaga compatível). Não tem trigger de mensagem do usuário — começa por webhook recebido.
FAQ · GPT Assistant
Escopo
o que é · preço (10% take rate, R$67/mês selo) · como funciona · garantias · LGPD
Proibições
não inventar números, prazos, cidades
✅ Resposta dada
⚠️ Fora do escopo
💬 Encerra
Espero ter ajudado! 😊
Quando precisar, é só me chamar.
⚠️ Humano
"Vou te passar pra equipe."
Action: Transfer to agent.
Leandro recebe alerta.
🤖 Critérios são DECISÕES SILENCIOSAS do sistema — o usuário NÃO vê, não escolhe, não recebe pergunta. Funcionam pelos dados que o backend devolveu no lookup ({{tipo}}, {{nome}}, {{status}}). Os blocos amarelos com selo "auto" são esses critérios. Já os blocos verdes (Send message) são o que o usuário recebe e interage.
📌 Limite BotConversa: webhook timeout = 10s. Edge Function precisa responder rápido — usa índices no Supabase.
📌 Resposta JSON: usa campos achatados (match_1_nome, match_2_nome) em vez de array — facilita mapeamento no BotConversa.
🤖 JIT · CNPJ ok? auto
⚡ Antes de buscar matches reais
cnpj != null?
✅ Sim → /matching
❌ Não → pede CNPJ
💬 JIT · Pede CNPJ jit
Pra matchar profissional precisamos do CNPJ. Manda aí (ou "não tenho ainda" se for MEI/informal).
Texto
🤖 JIT · perfil completo? auto
⚡ Antes de aceitar 1ª vaga
Tem foto + CPF + PIX + 2 refs?
✅ Sim → muda status pra pendente
❌ Não → pede o que falta
JIT (Just-In-Time): em vez de pedir TUDO no cadastro inicial (5+9 perguntas) que afasta o usuário, fazemos cadastro mínimo (2 perguntas) e cobramos os campos avançados só na hora que precisa — CNPJ no 1º matching, foto/ CPF/PIX antes da 1ª aprovação. Reduz fricção e aumenta conversão.
🤖 Detector · 3 falhas auto
⚡ Em qualquer GPT, conta tentativas falhas em {{tentativas}}
tentativas >= 3?
⚠️ Sim → escala humano
🔄 Não → tenta de novo
⚠️ Escala humano
"Vou te passar pra equipe, {{nome}}. 1 segundo."
Action: Transfer to agent · Leandro recebe alerta no Dashboard.
🖱️ arraste pra mover
·
·
+ zoom
·
0 reset

Tipos de bloco

Starting (entrada do fluxo)
Send msg · usuário
GPT Assistant · IA conversa
Action / Webhook · backend
Critério (auto) · usuário NÃO vê
Fallback humano