Construtor de Sequência de Prospecção
Receba um sinal de compra. Gere uma sequência de prospecção multicanal personalizada. Produza mensagens prontas para envio por e-mail, LinkedIn e telefone.
Regra crítica: Toda mensagem deve ser completamente preenchida com o contexto que você carregar. Apenas {{first_name}} é permitido como variável. Sem colchetes [Nome da Empresa], sem placeholders [INSIRA PONTO DE DOR]. Se você não tiver as informações para preencher algo, pergunte antes de escrever. Nunca envie uma mensagem com um placeholder não preenchido.
Etapa 1: Verificação de Configuração
Confirme as variáveis de ambiente necessárias:
echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
echo "COMPOSIO_API_KEY: ${COMPOSIO_API_KEY:-not set, Gmail drafting will be skipped}"
Se GEMINI_API_KEY estiver faltando: Pare. Diga ao usuário: "GEMINI_API_KEY é obrigatória. Obtenha-a em aistudio.google.com. Adicione-a ao seu arquivo .env."
Se COMPOSIO_API_KEY estiver faltando: Continue. As sequências serão geradas como texto formatado para copiar e colar. A criação de rascunhos no Gmail será ignorada.
Etapa 2: Carregar Contexto
Verifique a existência de um arquivo ICP e de arquivos de conta:
ls docs/icp.md 2>/dev/null && echo "icp encontrado" || echo "icp ausente"
ls docs/accounts/ 2>/dev/null && echo "contas encontradas" || echo "contas ausentes"
Se docs/icp.md existir: Leia-o. Extraia:
- Personas-alvo (cargos, senioridade, departamento)
- Perfil da empresa (porte, setor, estágio de captação)
- Principais pontos de dor (use a linguagem exata do comprador)
- Principais diferenciais (por que seu produto em vez das alternativas)
Se docs/accounts/{empresa}.md existir: Leia o arquivo relevante. Extraia:
- Nome da empresa, porte, contexto recente
- Stack tecnológica conhecida ou pontos de dor
- Qualquer relacionamento existente ou contato anterior
Se nenhum existir: Faça estas 4 perguntas ao usuário. Não prossiga até que todas as 4 sejam respondidas:
- O que seu produto faz? (uma ou duas frases)
- Quem é seu público-alvo? (cargo, porte da empresa, setor)
- Qual é o principal problema que você resolve? (da perspectiva do comprador, não da sua)
- Qual é seu principal diferencial? (por que você em vez da alternativa que eles usam hoje)
Etapa 3: Identificar o Sinal
Determine qual dos 7 tipos de sinal se aplica. Leia references/signal-playbook.md para obter o Insight, Ponte, Abertura e Pergunta completos para cada tipo de sinal.
7 tipos de sinal:
| Sinal | Definição |
|---|---|
| Pós-Captação | A empresa captou uma rodada de investimento nos últimos 30 dias |
| Sinal de Contratação | A empresa publicou 5 ou mais vagas em uma função que você atende |
| Substituição de Concorrente | O contato está usando um concorrente e mostrando frustração |
| Lançamento de Produto | A empresa lançou um novo produto ou funcionalidade importante |
| Engajamento com Conteúdo | O contato curtiu, comentou ou compartilhou seu conteúdo |
| Acompanhamento de Evento | Você se encontrou ou esteve na mesma sessão de uma conferência ou webinar |
| Mudança de Emprego | O contato mudou para uma nova empresa nos últimos 60 dias |
Se o usuário forneceu um sinal em seu prompt: Confirme o tipo e extraia os detalhes específicos (tamanho da rodada, títulos dos cargos, nome do produto, nome do evento etc.).
Se nenhum sinal estiver claro: Pergunte: "O que gerou esta prospecção? (ex.: eles captaram uma rodada, estão contratando engenheiros, você se encontrou em um evento)"
Informe o tipo de sinal detectado e o detalhe específico antes de prosseguir.
Etapa 4: Desenvolver o Ângulo
Usando o tipo de sinal e o contexto carregado nas Etapas 2-3, defina os quatro elementos do ângulo. Leia references/signal-playbook.md para a fórmula deste tipo de sinal.
Escreva explicitamente antes de gerar qualquer mensagem:
Sinal: [sinal específico + detalhe concreto]
Insight: [o que este sinal revela sobre a situação deles]
Ponte: [como seu produto se conecta ao que o sinal revela]
Abertura: [uma frase referenciando o detalhe específico do sinal]
Pergunta: [CTA mínimo viável, com menos de 10 palavras]
A abertura deve nomear o gatilho específico. Aberturas vagas são rejeitadas.
Bom: "Parabéns pela Série B de US$ 18 milhões — escalar a equipe de vendas rápido geralmente cria uma lacuna de onboarding." Ruim: "Vi que sua empresa recentemente captou investimento."
Etapa 5: Planejar a Sequência de Canais
Projete 4 a 6 pontos de contato entre e-mail, LinkedIn e telefone. Regras:
- Duração total: 10 a 14 dias
- Intervalo mínimo: 2 dias entre quaisquer dois contatos
- Nunca use o mesmo canal duas vezes seguidas
- Cada follow-up deve agregar novo valor (novo recurso, novo ângulo, nova prova). Nunca "só acompanhando".
- O ponto de contato final é uma mensagem curta de encerramento
Cadência padrão para a maioria dos sinais:
Dia 1: E-mail (primeiro contato, abertura baseada no sinal)
Dia 3: LinkedIn (nota de conexão ou DM curto)
Dia 7: E-mail (novo ângulo ou case de sucesso)
Dia 9: Telefone (script de abordagem + mensagem de voz)
Dia 12: E-mail (enquadramento diferente ou objeção respondida)
Dia 14: E-mail (mensagem curta de encerramento)
Ajuste para o tipo de sinal:
- Pós-Captação: aja mais rápido (Dia 1, 2, 4, 7, 10). Aja dentro de 48 horas do anúncio.
- Acompanhamento de Evento: comece pelo LinkedIn, não por e-mail (canal mais quente primeiro)
- Engajamento com Conteúdo: comece com resposta ou comentário no LinkedIn antes do e-mail
Informe o dia planejado e o canal para cada ponto de contato antes de escrever as mensagens.
Etapa 6: Gerar a Sequência
Leia references/sequence-format.md na íntegra. Leia references/output-template.md e selecione o modelo para este tipo de sinal.
Escreva a requisição Gemini em um arquivo temporário:
cat > /tmp/outreach-sequence-request.json << 'ENDJSON'
{
"system_instruction": {
"parts": [{
"text": "Você é um redator de vendas B2B que escreve prospecção fria que gera respostas. Regras: A primeira frase de cada mensagem é sobre ELES, não sobre sua empresa. Referencie o sinal de compra específico pelo nome e detalhe na mensagem de abertura. Use contrações naturalmente. Frases curtas. Sem jargão corporativo. Sem palavras proibidas: sinergia, alavancar, entrar em contato, retornar, ping, envolver, alinhamento, inovador, de ponta, melhor da classe, classe mundial, transformador, disruptivo, capacidade, mergulho profundo, fruta fácil, mover o ponteiro. Sem cortesias: sem 'Espero que este e-mail te encontre bem', sem 'Feliz segunda-feira', sem 'Só queria'. Cada follow-up agrega novo valor — nunca 'só acompanhando'. Limites rígidos: corpo do e-mail com menos de 100 palavras, nota do LinkedIn com menos de 300 caracteres, abertura de telefone com menos de 20 palavras. Apenas {{first_name}} é permitido como variável — preencha todos os outros detalhes com o contexto fornecido. A mensagem de encerramento é curta (3-4 frases), amigável e deixa a porta aberta."
}]
},
"contents": [{
"parts": [{
"text": "CONTEXTO_E_INSTRUCOES_AQUI"
}]
}],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 4096
}
}
ENDJSON
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d @/tmp/outreach-sequence-request.json \
| python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"
Substitua CONTEXTO_E_INSTRUCOES_AQUI por:
- A descrição do produto, persona-alvo, pontos de dor e diferenciais da Etapa 2
- O tipo de sinal, detalhe específico e os quatro elementos do ângulo da Etapa 4
- O plano de canais da Etapa 5
- Instruções para escrever cada ponto de contato com seu assunto (e-mail), contagem de caracteres (LinkedIn) e script de abordagem (telefone)
Para cada ponto de contato por e-mail, exija duas variantes de assunto (teste A/B).
Etapa 7: Mapear Objeções
Após gerar a sequência, identifique as 2 a 4 objeções mais prováveis para este tipo de sinal. Antecipe cada uma naturalmente dentro de um ponto de contato existente. Não adicione mensagens separadas para lidar com objeções. Incorpore a antecipação na sequência.
Leia o manual de objeções em references/sequence-format.md. Mapeie qual ponto de contato lida com cada objeção.
4 objeções padrão a antecipar:
| Objeção | Abordagem de antecipação |
|---|---|
| "Já temos uma solução" | Reconheça a ferramenta atual deles, posicione a sua como complementar ou próximo passo |
| "Não é o momento certo" | Relacione o sinal diretamente ao porquê agora é o momento certo |
| "Muito caro" | Enquadre o ROI, ancore a um número que eles se importam |
| "Preciso envolver mais pessoas" | Ofereça um recurso compartilhável (one-pager, walkthrough gravado) |
Informe qual ponto de contato lida com cada objeção antes de apresentar a sequência final.
Etapa 8: Auto-QA
Execute cada verificação e corrija violações antes de apresentar:
- Toda mensagem começa com uma frase sobre ELES
- O detalhe específico do sinal é nomeado em pelo menos o primeiro ponto de contato
- Nenhum placeholder não preenchido, exceto
{{first_name}} - Corpos de e-mail com menos de 100 palavras (conte e informe a contagem de palavras para cada)
- Notas do LinkedIn com menos de 300 caracteres (conte e informe para cada)
- Abertura de telefone com menos de 20 palavras
- Nenhuma palavra proibida em nenhuma mensagem
- Nenhum "só acompanhando" em nenhum follow-up
- Cada follow-up adiciona um novo ângulo ou valor
- Nenhum mesmo canal usado duas vezes seguidas
- Pelo menos 2 objeções antecipadas ao longo da sequência
- Mensagem de encerramento tem 3-4 frases, amigável, sem culpa
Corrija qualquer violação antes de apresentar.
Etapa 9: Saída e Salvamento
Apresente a sequência completa em um bloco de código.
Salvar em arquivo:
mkdir -p docs/sequences
cat > docs/sequences/TIPO-DO-SINAL.md << 'EOF'
CONTEUDO_DA_SEQUENCIA_AQUI
EOF
echo "Sequência salva em docs/sequences/TIPO-DO-SINAL.md"
Se COMPOSIO_API_KEY estiver configurada: Pergunte: "Criar rascunhos dos e-mails no Gmail via Composio?"
Após confirmação, para cada ponto de contato por e-mail:
# O agente chama a ação GMAIL_CREATE_EMAIL_DRAFT do Composio
# com assunto = [linha de assunto], corpo = [corpo do e-mail], destinatário = [e-mail do contato se conhecido]
Após criar os rascunhos: "Rascunhos de e-mail criados no Gmail. Verifique sua pasta Rascunhos."
Notas do LinkedIn: Apresente como blocos separados para copiar e colar com um rótulo claro por ponto de contato. O LinkedIn não suporta mensagens programáticas.
Scripts de telefone: Apresente como um roteiro de abordagem formatado com marcadores, não um script rígido.