Brief detalhado da primeira landing page conversacional do SlimSoda. Script spine + LLM texture. 9 áudios gravados com voz feminina. Cada nó vem com: explicação em PT-BR do framework, quando usar, áudio verbatim (EN), texto verbatim (EN), e técnicas de conversão aplicadas.
Os 11 nós, ramificações por estado, e onde o LLM acorda. Cinema mode auto-avança se o user não digitar.
Tabela com todos os 11 nós, framework, função e personalização. Use como índice rápido.
| # | Nó | Framework | Função | Personalização |
|---|---|---|---|---|
| 1 | start | Hook + Rapport | Apresentar Dana, gerar confiança | Estático |
| 2-5 | q1-q4 | Qualifying script | Coletar state (age, frustration, glp1, weight) | 4 botões cada, salva state |
| 6 | personalized_hook | Objection pre-empting + callback | Conectar com a dor específica | 4 variants (text only) |
| 7 | confession | Vulnerability + credibility | História dos 20 anos errada | Estático |
| 8 | mechanism | Educação + "sound about right?" | Explicar 3 ingredientes + ordem | 4 variants (áudio + text) |
| 9 | reciprocity | Reciprocidade pura | "Dei a receita de graça, tenta a versão certa" | Estático |
| 10 | testimonial | Social proof + relatability | Voz real de mulher real | 3 variants (áudio + text + image) by age |
| 11 | proof_sisters | Proof + identity reinforcement | Rachel 41 lbs, "você não desistiu" | Estático |
| 12 | loss_aversion | Loss aversion + micro-commitment | "Daqui 6 meses..." | 4 variants (áudio + text) |
| 13 | future_pace | Future-pace + identity | Visualizar o "depois" | Estático |
| 14 | ask_anything | LLM intervention | Deixar user perguntar (bounded) | LLM bounded (max 2 turns) |
| 15 | offer | Stack + urgency + identity | $24.99 CTA, 60-day guarantee | State-based callback + age note |
| 16 | end | Loop/close | Start over ou sair | Estático |
<strong> e <em> pra escaneabilidadeDepois de cada áudio/mensagem da Dana, um timer de 9 segundos (10s em qualifying Qs) começa. Se o user não digitar nada, o script auto-avança pro próximo nó. Se o user digitar ou focar no input, o timer cancela e o user assume controle.
Por quê: quick replies visíveis matam a imersão. Sem menu, parece conversa real. O user pode pausar a qualquer momento digitando.
Quando o user digita free text, a mensagem vai pro OpenRouter (modelo nvidia/nemotron-3-super-120b-a12b:free, default). O LLM recebe state completo (age, frustration, glp1, weight, step) + 12 técnicas de conversão + 1-3 sentences max. Máx 2 turns/sessão (depois, volta pro script).
Por quê: pure LLM perde foco da sequência. Script garante que o lead segue a jornada comercial. LLM é texture pra inputs inesperados.
state.agestate.frustrationstate.glp1state.weightstate.frustration == "eat_less_gain" → texto "comer pouco e ganhar peso"state.frustration == "food_noise" → texto "barulho constante / fome"state.frustration == "hormones" → texto "menopausa / hormonal"state.frustration == "after_kids" → texto "pós-gravidez / 3 filhos"state.age == "55-70" → Linda 63 (22 lbs, Asheville NC)state.age == "70+" → Diane 71 (tentou injeções, recuperou peso)state.age == "45-55" → Marlene 67 (botão da calça)state.age == "30-45" → Marlene 67 (closest match)Cada técnica está mapeada pro nó onde ela brilha. Não são empilhadas — são usadas 1-3 por mensagem pra não parecer spam.
"I'm the formulator behind all those viral baking soda videos" — credibilidade imediata.
"I'm going to tell you something I've never said publicly" — vulnerabilidade cria confiança.
"I was wrong about something for twenty years" — admitir erro passado = credibilidade.
"ninety-three percent" / "DPP-4 enzyme" / "60 days" — números específicos > claims vagos.
"Sound about right?" / "Sound fair so far?" — perguntas retóricas que elicitam "sim".
"I gave away the recipe for free. The celebrities made billions." — deu primeiro, agora pede.
"The first morning, you can feel the bloat release" — experiência física > conceito abstrato.
Voz real de mulher real (Linda 63, Marlene 67, Diane 71) — relatability.
"22 pounds" / "fifteen years" / "three months" — números específicos superam claims.
"I gave my sister Rachel the same formula. She lost 41 pounds." — Dana testou na própria família.
"If you're still reading this, you're not ready to give up. You're just ready to do it right."
"Six months from now, you'll either be free of this — or still looking for the answer."
"Most women I hear from wish they had started sooner." — fear of missing out temporal.
Botão "I don't want to wait" — pequeno commitment verbal antes da oferta.
"Picture yourself 90 days from now. The food noise is gone."
"That's what this is — not just a tub. A return to yourself."
"You're in the photo with your kids again." — visualização emocional específica.
"You've probably tried cutting calories, even tried the celebrity capsule. None of it worked."
"For you, at 55-70, with the food noise you told me about..." — referenciar respostas anteriores.
"60-day empty-tub money-back — use the whole tub, no questions."
"2 tubs ($119.98) + free shipping ($9.99) + 60-day guarantee = $129.97 → $24.99"
"$1,000/month for the shots vs $24.99 once for the powder" — comparação reduz preço percebido.
"⏰ Launch price — when the free-tub run is gone, it goes to $59.99/tub" — escassez com motivo.
"You're the kind of woman who takes action when she sees something real."
"YES — SEND MY 2 TUBS ($24.99) →" — comando claro, sem dúvida.
Todos os eventos disparados pela página, valores e onde eles caem.
1619587959397761 · Supabase URL: tkbivipqiewkfnhktmqq.supabase.co
| Evento | Quando dispara | Valor | Vai pro |
|---|---|---|---|
| PageView | Load da página | — | Meta + Supabase |
| ViewContent | Chat abre | $5.00 | Meta + Supabase |
| ChatReply | User clica quick reply (custom) | $10.00 | Meta + Supabase |
| ChatFreeText | User digita livre | $8.00 | Meta + Supabase |
| AudioPlay | Audio começa a tocar | $2.00 | Meta + Supabase |
| OfferView | Offer card aparece | $24.99 | Meta (AddToCart) + Supabase |
| InitiateCheckout | User clica no CTA "$24.99" | $24.99 | Meta + Supabase + CAPI |
/api/chat-llm.js → OpenRouter (free model)OPENROUTER_API_KEY — pro LLM acordarOPENROUTER_MODEL — default nemotron-3-super-120b:freeMETA_ACCESS_TOKEN — pro CAPI (precisa appeal primeiro)META_TEST_CODE — opcional, ex: TEST89908chat-x1/ ├── index.html (47KB, 11 nós, 25+ técnicas, cinema mode) ├── audio/ (17 arquivos .mp3) │ ├── dana-intro.mp3 (estático, 10s) │ ├── dana-confession.mp3 (estático, 12s) │ ├── dana-mechanism.mp3 (fallback, 12s) │ ├── dana-mechanism-eatless.mp3 (variant 1, 9s) ⭐ │ ├── dana-mechanism-foodnoise.mp3 (variant 2, 9s) ⭐ │ ├── dana-mechanism-hormones.mp3 (variant 3, 8s) ⭐ │ ├── dana-mechanism-kids.mp3 (variant 4, 9s) ⭐ │ ├── dana-reciprocity.mp3 (estático, 10s) │ ├── dana-loss-aversion.mp3 (fallback, 7s) │ ├── dana-loss-aversion-eatless.mp3 (variant 1, 8s) ⭐ │ ├── dana-loss-aversion-foodnoise.mp3 (variant 2, 8s) ⭐ │ ├── dana-loss-aversion-hormones.mp3 (variant 3, 8s) ⭐ │ ├── dana-loss-aversion-kids.mp3 (variant 4, 8s) ⭐ │ ├── dana-cta.mp3 (estático, 10s) │ ├── testimonial-linda.mp3 (age 55-70, 12s) │ ├── testimonial-marlene.mp3 (age 30-55, 10s) │ └── testimonial-diane.mp3 (age 70+, 12s) └── images/ (11 webp: Dana, sisters, testimonials, product) api/ ├── chat-llm.js (8KB, OpenRouter integration, 12+ techniques in system prompt) └── track-capi.js (3KB, Meta Conversions API, optional)
OPENROUTER_API_KEY no Vercel (user já tem a chave)