name: notificacao-webinario description: Orquestra a cadeia de notificacoes de WhatsApp de um webinario-lancamento da Expert (API Oficial ChatGuru). 7 toques (T-12h, T-1h, T0, T+1h pitch, abertura sessao estrategica, FUP D+1 12h, FUP D+2 12h), lendo leads do Pipedrive, filtrando pelo evento atual, segmentando por cargo (decisor vs funcionario) e por pipeline (FUPs so pra quem nao agendou). Agenda os toques via scheduled-tasks relativo ao horario do webinario. TRIGGER quando Eric pedir "notificacao de webinario", "cadeia de disparos do evento", "lembrete do webinario", "avisa a galera do evento", "dispara o lembrete de X", ou montar comunicacao de um lancamento/webinario.
Notificacao de Webinario — cadeia de lancamento via WhatsApp
Orquestra os disparos de WhatsApp (API Oficial ChatGuru) ao longo do ciclo de um webinario-lancamento: do lembrete pre-evento ate o follow-up de conversao pos-evento. Le os leads direto do CRM (Pipedrive), nao de CSV.
Reaproveita a engine de disparo
whatsapp-api-fup-batch.py(mesma do plugin comercial) — dialog de template + atribuicao opcional ao time. Credenciais SEMPRE do JSON local, nunca hardcoded.
CADEIA DE 7 TOQUES
| # | Toque | Quando | Link | Publico |
|---|---|---|---|---|
| 1 | Lembrete vespera | T-12h | Zoom | todos do evento |
| 2 | Alerta 1h | T-1h | Zoom | todos do evento |
| 3 | Comecamos agora | T0 (inicio) | Zoom | todos do evento |
| 4 | Pitch / conteudo mais importante | T+1h | Zoom | todos do evento |
| 5 | Abertura da sessao estrategica | momento do CTA do diagnostico | Diagnostico | todos do evento |
| 6 | FUP 1 | D+1 as 12h | Diagnostico | so quem nao agendou (Prospeccao) |
| 7 | FUP 2 | D+2 as 12h | Diagnostico | so quem nao agendou (Prospeccao) |
Base de cada toque: sempre puxar do Pipedrive filtrando pelo evento atual (NUNCA lista solta — evita atingir grupo de evento anterior). Ver secao FILTRO POR EVENTO.
REGRAS INVIOLAVEIS
- Miolo SEMPRE em LINHA UNICA. O template
gupshup utility_generico_05rejeita quebra de linha (\nda erro 132018,\r\n/U+2028/<br>tambem falham). Usar emoji / pontuacao como separador visual. Detalhe: Brainrfn7klo8igyj. - NUNCA usar travessao (em-dash — ou en-dash –) — tem cara de IA. Trocar por virgula, dois pontos, ponto. Brain
v4624gdruzyy. - Filtrar pelo evento atual (campo Origem da Oportunidade + Detalhes da origem = nome do evento). Nunca disparar pra base inteira.
- Dedup: nao duplica lead, mantem o original, nunca regride. Se a pessoa ja tem deal, nao cria outro.
- Toques 5/6/7 so pra quem ainda esta no pipeline Prospeccao (7). Quem agendou migrou pro Educacional (6) e SAI automaticamente do disparo.
- Teste so vale fora da janela de 24h. Dentro da janela (lead respondeu nas ultimas 24h) o WhatsApp manda texto livre (nao template) e engana.
dialog_executeretornar success NAO garante entrega — conferir no chat.
SEGMENTACAO POR PERFIL (pitch A vs B)
Classificar pelo campo Cargo da pessoa (055b68e8b474363c8c4e125eab49788193109ad0):
- DECISOR (pitch A): cargo contem ceo, socio, diretor, propriet, founder, fundador, presidente, dono, empresar, cfo, coo, cto, cmo, head. Pitch fala do "proximo passo do negocio/empresa".
- FUNCIONARIO / nao-decisor (pitch B): o resto (analista, assistente, coordenador, tecnico, estudante, vendas, consultor, gerente). Pitch fala de "ser o profissional que domina IA e leva pra dentro da empresa".
Gerente entra em B (nao e dono — pitch A "empresario de verdade" soaria errado).
Personalizacao adicional: empresa quando valida (descartar lixo: ".", "n", "teste", "outros", "autonomo", "estudante", etc.), senao so nome.
TEXTOS-TEMPLATE DOS TOQUES
Placeholders: {Nome} (primeiro nome), {Empresa} (so se valida), {ZOOM}, {DIAG}, {EVENTO}. Todos LINHA UNICA, sem travessao. O template envelopa com "Ola. " no inicio e " Obrigado." no fim — o miolo e so o meio.
Toque 1 (T-12h): {Nome}, falta pouco pro {EVENTO}! E ao vivo e sem reprise, separa o horario que o conteudo vai direto ao ponto pra sua empresa. Salva o link e te vejo la 👉 {ZOOM}
Toque 2 (T-1h): {Nome}, comecamos em 1 hora! Deixa tudo pronto pra entrar ao vivo. Link do Zoom aqui 👉 {ZOOM}
Toque 3 (T0): {Nome}, comecamos agora! Entra que ja vamos abrir, microfone mutado e camera a teu criterio 👉 {ZOOM}
Toque 4 (T+1h, pitch): {Nome}, chegou a parte mais importante do {EVENTO}, o que vem agora muda como voce opera com IA. Nao sai! Se ainda nao entrou, corre 👉 {ZOOM}
Toque 5 (abertura sessao estrategica): Tenho um presente pra voce, {Nome}! Liberamos um diagnostico gratuito de IA individual pra sua empresa, 45 minutos com um consultor pra voce sair com um plano pratico. Vagas limitadas, agenda 👉 {DIAG}
Toque 6 (FUP 1, D+1 12h): {Nome}, nao quero que voce perca: o diagnostico gratuito de IA que liberamos ainda ta de pe, mas as vagas tao acabando. 45 minutos pra sair com um plano pratico pra sua empresa. Garante o seu 👉 {DIAG}
Toque 7 (FUP 2, D+2 12h): {Nome}, ultima chamada: hoje fechamos as vagas do diagnostico gratuito de IA. Nao deixa passar, sao 45 minutos que podem mudar o rumo da sua empresa 👉 {DIAG}
Toques de feriado/escassez tem variante por perfil (A decisor / B funcionario). Ver
scripts/disparar_toque.py(funcao de miolo por tipo+perfil). Escassez tem que ser REAL (nunca "nao reabre" se reabre — falar "se ocuparem, a proxima janela fica pra mais pra frente").
FILTRO POR EVENTO (CRM)
Cada evento tem uma origem/detalhe propria no Pipedrive. Puxar os deals do evento atual:
- Campo
Origem da Oportunidade(0945bdde00c8c57d1c0e52cd360cb76f058dc6e6) - Campo
Detalhes da origem da oportunidade(c35bea7247f83fcb9cdc24abef1e4e793ae79d7d) = nome do evento (ex: "O Imposto Invisivel do Empresario")
A skill recebe o nome/detalhe do evento e filtra so esses deals. Toques 5/6/7 cruzam tambem o pipeline_id == 7 (Prospeccao).
AGENDAMENTO (cron relativo ao horario do webinario)
A skill recebe a data/hora do webinario e calcula cada disparo:
- T-12h, T-1h, T0, T+1h: relativo ao inicio
- Toque 5: no momento do CTA (operador dispara ao vivo, ou agenda ~T+90min)
- FUP 1: D+1 as 12h | FUP 2: D+2 as 12h
Agendar via MCP scheduled-tasks (create_scheduled_task com fireAt ISO 8601 BRT -03:00) — um task por toque. Cada task roda o script scripts/disparar_toque.py com o tipo de toque. ATENCAO: scheduled-tasks roda enquanto o Claude Code esta aberto; se fechado, roda no proximo launch. Para horarios criticos (T0, T+1h durante o evento ao vivo), confirmar que a maquina estara ligada, ou disparar manualmente.
EXECUCAO DE UM TOQUE — MODO SEMI (padrao)
O modo de operacao definido com o Eric (04/06/2026) e SEMI: a skill monta o toque, mostra a copy + a lista de quem vai receber, e SO dispara apos aprovacao explicita (--confirmar). Sem --confirmar, roda em PREVIEW (nao dispara nada).
O script scripts/disparar_toque.py implementa a logica de 2 camadas:
# 1) PREVIEW (nao dispara) — mostra copy + contagem + exemplos:
python -X utf8 disparar_toque.py \
--inscritos "C:/caminho/invitees-export.csv" \
--evento "O Imposto Invisivel do Empresario" \
--toque 6 \
--zoom "https://us02web.zoom.us/j/..." \
--diag "https://expertintegrado.com.br/diagnostico"
# 2) Eric revisa a copy/lista. Se aprovar, MESMO comando + --confirmar:
python -X utf8 disparar_toque.py ... --confirmar
Parametros:
--inscritos(OBRIGATORIO): CSV export de inscritos do Calendly. E a fonte de verdade do publico (camada 1).--evento: texto do Detalhe da origem no Pipedrive (pra achar os deals).--toque1..7.--zoom/--diag: links.--delay(default 8s, anti-throttle).--confirmar: dispara de verdade.
Camada 1 (pertencimento): cruza os telefones do CSV de inscritos com os deals de origem do evento. So inscritos reais entram; leads antigos com origem parecida sao descartados.
Camada 2 (etapa): toques 6/7 (FUP) excluem quem ja agendou (stage 54 Apresentacao Agendada / 60 Realizada / 79 Reuniao agendada). Toques 1-5 vao pra todos os inscritos.
Personalizacao: cargo/empresa vem do CSV de inscricao; segmenta decisor (pitch A) vs funcionario (pitch B). Dedup por log proprio do toque.
Agendamento dos horarios (T-12h etc.) via MCP scheduled-tasks chamando este script em PREVIEW; o Eric aprova e roda com --confirmar. Para toques ao vivo (T0/pitch), disparo sob comando.
CHECKLIST DE EXECUCAO
[ ] Confirmar nome/detalhe do evento (filtro CRM)
[ ] Confirmar data/hora do webinario + links (Zoom, Diagnostico)
[ ] Validar copy de cada toque com o Eric (linha unica, sem travessao)
[ ] Piloto: 1 disparo no numero do Eric FORA da janela 24h (corporativo) pra validar template
[ ] Agendar os 7 toques via scheduled-tasks (fireAt relativo)
[ ] Toques 5/6/7: confirmar filtro pipeline Prospeccao
[ ] Apos cada toque: reportar OK / erros / pulados (ja agendaram)
ARMADILHAS
- Template rejeita \n — linha unica sempre. Erro 132018 nao aparece no dialog_execute (retorna success), so na entrega. Brain
rfn7klo8igyj. - Cooldown de 5min por chat no dialog_execute. Entre toques no mesmo numero, respeitar. A engine ja faz retry de cooldown.
- Janela de 24h mascara teste — testar so fora da janela.
- Travessao tem cara de IA — nunca usar. Brain
v4624gdruzyy. - Multi-evento: sempre filtrar pelo detalhe do evento atual; nunca a base inteira (senao atinge grupo de evento anterior).
- scheduled-tasks depende do app aberto — para toques ao vivo (T0/pitch), garantir maquina ligada ou disparo manual.
Detalhes da arquitetura e cadeia no Brain: nota g3jjtdbg0ksz.