# 📘 INSTRUCTIVO NoaLink — todo en un lugar

> Guía única para acceder a todo lo armado. Si te perdés, leé solo esto.
> Última actualización: 12/07/2026

---

## 🚀 Acceso rápido (lo que usás el lunes)

| Qué | Link / Dato |
|-----|-------------|
| **Landing pública** | https://noalink.cookie-flow.net |
| **Panel online (demo para vender)** | **https://noalink-panel.vercel.app** |
| 🔑 Contraseña del panel online | **`noalink`** |
| 🎯 **Panel de prospectos (venta local)** | `cookie-ia\iniciar-panel-prospectos.cmd` → http://localhost:8085 |
| 🧪 **Panel de prospectos (modo demo)** | `cookie-ia\iniciar-panel-prospectos-demo.cmd` → http://localhost:8085 |
| 📝 Guion de demo | `cookie-ia\GUION-DEMO-NOALINK.md` |
| 💲 Propuesta/precio (one-pager) | `cookie-ia\propuesta-noalink.html` |
| 📋 Plan del negocio | `cookie-ia\PLAN-NOALINK-SERVICIO-2026-06-25.md` |
| 📊 Bitácora de venta + cerebros | `cookie-ia\ventas\` |

> **Para la reunión:** abrí el panel en el celular ya logueado, seguí el **guion de demo**, y al final mandá la **propuesta** por WhatsApp (abrila → Ctrl+P → Guardar como PDF).

---

## 🎭 Las caras del producto (importante)

NoaLink tiene **cuatro puntos de entrada** según para qué lo uses:

### 1. Landing pública — para CAPTAR 🟡
- Es lo que está en **https://noalink.cookie-flow.net**
- Muestra el producto, precio y CTA a odontólogos desconocidos.
- **Deploy por Cloudflare Worker** (no por Pages); ver sección "Deploy de la landing".

### 2. Panel online — para DEMO VIVA 🟠
- Es lo que está en **https://noalink-panel.vercel.app**
- Datos **ficticios** (14 pacientes inventados). Tiene un cartelito "datos de ejemplo".
- Sirve para mostrarle a un prospecto una agenda/calendario sin exponer pacientes reales.
- **Ya está online, no tenés que hacer nada.**

### 3. Panel de prospectos — para VENDER 🟣
- Corre **local en tu notebook**: `cookie-ia\iniciar-panel-prospectos.cmd` → http://localhost:8085
- Lee y actualiza `cookie-ia\data\prospects.db` (SQLite).
- Estados: "Sin contactar", "Contactado", "Demo agendada", "Rechazado", "Cliente".
- Registra qué guion de venta se usó (`[guion:clave fecha]` en notas) para medir variantes.
- Ver sección "Tareas comunes" para levantarlo.

### 4. Modo REAL — para OPERAR (Agus) 🟢
- Lee los pacientes y turnos **reales** de Noa (NocoDB + Google Calendar).
- Corre **en tu notebook** (los datos reales viven acá, no en la nube).
- Cómo arrancarlo:
  ```
  cd "C:\Users\guill\Proyectos Claude Code\cookie-ia\noalink-panel"
  npm run dev
  ```
  Después abrí: **http://localhost:3100**
  (Sin contraseña local — entra directo.)

---

## 🖥️ Qué tiene el panel (las pantallas)

| Pantalla | Qué muestra |
|----------|-------------|
| 📊 **Resumen** | KPIs + turnos de hoy + actividad + últimos mensajes |
| 📈 **Impacto** | **Horas ahorradas, tasa de entrega, tipos de mensaje** ← el que vende |
| 📅 **Agenda** | Turnos del día / semana (toggle), desde Google Calendar |
| 🦷 **Pacientes** | Buscador + último tratamiento de cada uno |
| 💬 **Mensajes** | Todo lo que NoaLink envió por WhatsApp |
| ⏳ **Lista de espera** | Pacientes esperando lugar |

---

## ⚠️ Deploy de la landing — Cloudflare Worker (importante, migrado el 08/07)

`https://noalink.cookie-flow.net` **NO se deploya desde este monorepo ni por Cloudflare Pages.** El código fuente de trabajo vive acá en `cookie-ia/landing/opcion-c-mobile-first.html`, pero para que un cambio llegue a producción hay que:
1. Copiar el archivo actualizado a `C:\Users\guill\noalink-landing\` (ahí se llama `index.html`, no `opcion-c-mobile-first.html`).
2. Desde `C:\Users\guill\noalink-landing\`, correr:
   ```
   npx wrangler deploy
   ```
   El Worker se llama `noalink-landing` y sirve los assets estáticos directamente (`wrangler.jsonc` con `"assets": { "directory": "." }`).
3. Commitear y pushear **ese** repo (`noalink-landing`, remoto propio) para tener trazabilidad.
4. Si después de deployar el sitio sigue viejo, puede ser caché de Cloudflare — pero primero verificar que el deploy haya corrido en el Worker correcto (`noalink-landing`), no en el proyecto Pages viejo (ya no se usa).

**Páginas legales (15/07, requisito verificación Meta):** `politica-privacidad.html`, `condiciones-servicio.html` y `eliminacion-datos.html` viven **directo en el repo de deploy** (`C:\Users\guill\noalink-landing\`), sin copia en el monorepo. URLs públicas: `https://noalink.cookie-flow.net/politica-privacidad` · `/condiciones-servicio` · `/eliminacion-datos`. El footer de `index.html` (y su fuente `cookie-ia/landing/opcion-c-mobile-first.html`) linkea a esas URLs — los modales legales viejos quedaron huérfanos en el HTML (podar cuando Apolo toque la landing).

## 🔧 Tareas comunes (cómo hago para…)

### Levantar el panel de prospectos (venta local)
1. Doble clic en `cookie-ia\iniciar-panel-prospectos.cmd` o abrí terminal en `C:\Users\guill\Proyectos Claude Code\cookie-ia\` y corrés:
   ```
   npm start
   ```
2. Se abre automáticamente **http://localhost:8085**.
3. El panel lee y escribe `cookie-ia\data\prospects.db`.

### Levantar el panel de prospectos en modo demo (pruebas sin tocar la DB real)
1. Doble clic en `cookie-ia\iniciar-panel-prospectos-demo.cmd`.
2. Se abre automáticamente **http://localhost:8085** con un badge 🧪 **DEMO** arriba.
3. El backend usa `cookie-ia\data\prospects.demo.db` con 12 prospectos de prueba; cualquier cambio que hagas afecta solo esa base demo.
4. El scraping de Apify está **bloqueado** en modo demo para no gastar créditos reales.
5. Para detalles de los endpoints: `cookie-ia\scripts\server-prospects.js`.

### Cambiar la contraseña del panel online
1. `cd "C:\Users\guill\Proyectos Claude Code\cookie-ia\noalink-panel"`
2. Borrar la vieja y poner la nueva:
   ```
   npx vercel env rm PANEL_PASSWORD production --scope cookie-ia --token=TU_TOKEN
   echo NUEVA_PASS | npx vercel env add PANEL_PASSWORD production --scope cookie-ia --token=TU_TOKEN
   npx vercel deploy --prod --yes --scope cookie-ia --token=TU_TOKEN
   ```
> Pedile a Orion que lo haga, es más fácil.

### Publicar un cambio del panel (redeploy)
```
cd "C:\Users\guill\Proyectos Claude Code\cookie-ia\noalink-panel"
npx vercel deploy --prod --yes --scope cookie-ia --token=TU_TOKEN
```

### Apagar el modo demo y mostrar datos reales online
No conviene (los datos reales viven en tu notebook). Para Agus, usá el **modo real local**.

---

## ⏳ Pendientes (cuando quieras, con Orion)

| Pendiente | Qué falta |
|-----------|-----------|
| 🌐 **Dominio propio** `panel.noalink.cookie-flow.net` | Acceso a tu Cloudflare (token DNS o pegar un CNAME). |
| 🦷 **Ficha de paciente individual** | Clic en paciente → su historial. |
| 🖨️ **Exportar/imprimir agenda del día** | Botón para la secretaria. |
| 🔐 **Rotar token de Vercel** | Quedó en el chat; rotarlo en vercel.com/account/tokens (higiene). |
| 🧪 **Modo demo/sandbox del panel de prospectos** | Opción para no tocar `prospects.db` en pruebas (diferida). |

---

## 📂 Mapa de archivos

```
cookie-ia\
├── INSTRUCTIVO-NOALINK.md          ← este archivo
├── GUION-DEMO-NOALINK.md           ← libreto de venta
├── propuesta-noalink.html          ← one-pager precio (imprimible)
├── PLAN-NOALINK-SERVICIO-2026-06-25.md ← plan del negocio
├── iniciar-panel-prospectos.cmd    ← launcher venta local
├── iniciar-panel-prospectos-demo.cmd ← launcher modo demo (sin tocar DB real)
├── noalink-panel\                  ← el panel demo online (Next.js)
│   ├── app\                        ← pantallas
│   ├── components\                 ← Logo, KPIs, gráficos, etc.
│   ├── lib\                        ← datos (nocodb, calendar, demo, impacto)
│   └── .env.local                  ← config local (NO se sube a git)
├── panel-prospectos\               ← panel de venta local (HTML/JS)
│   └── index.html
├── scripts\
│   ├── server-prospects.js        ← backend del panel de prospectos
│   └── init-demo-db.js            ← genera prospectos.demo.db
├── data\
│   └── prospects.db                 ← SQLite de prospectos (NO se sube a git)
└── ventas\                         ← bitácora de venta + cerebros
    ├── estrategia.md
    ├── cerebros-noalink.md
    └── generar-variantes.js
```

---

## ❓ Si algo no anda

1. **El panel online no abre** → revisá https://noalink-panel.vercel.app (esperá unos segundos, Vercel "despierta" el server).
2. **El local no abre** → ¿corriste `npm run dev`? ¿Entraste a `http://localhost:3100` (no 3000)?
3. **Cualquier otra cosa** → pedile a Orion (este Claude). Está todo documentado en su memoria.
