Procedimiento completo
-
1
Crear una instancia aislada para el cliente
- Usar la versión MASTER aprobada como base. No reutilizar datos ni credenciales de otro cliente.
- Cada cliente debe tener su propio dominio, MySQL, bot de Telegram, Kommo, Pixel/CAPI, números de WhatsApp, OCR y logs.
- Mantener config.php y db.php fuera de
public_html.
-
2
Crear dominio / subdominio y subir el sistema
- Crear el dominio del cliente y apuntarlo al hosting correspondiente.
- Subir
public_html/ al dominio y dejar config.php, db.php y database/ un nivel por encima.
- Usar PHP 8.x y confirmar extensiones pdo_mysql, curl, json y gd.
-
3
Crear e importar la base MySQL
- Crear base + usuario + contraseña exclusivos para el cliente.
- En phpMyAdmin importar
database/schema.sql. No importar db.php.
- Confirmar las tablas principales:
clients, visits, events, processed_keys, ocr_logs y whatsapp_numbers.
-
4
Completar config.php — única personalización del cliente
- Identidad: PROJECT_NAME, PROJECT_DOMAIN, INSTANCE_CODE, DB_CLIENT_CODE, país y moneda.
- Meta: Pixel ID, Access Token CAPI y pixels extra si corresponde.
- Kommo: subdominio, token, pipeline y estado Convertido.
- Telegram: bot token, webhook secret y chat autorizado.
- OCR: OCR.Space key y actualización automática de Presupuesto.
- MySQL: host, puerto, DB, usuario y contraseña.
- Durante la instalación dejar
GEO_FAIL_CLOSED = false. No pasarlo a true hasta verificar correctamente la detección de país.
- Para la landing rápida:
WHATSAPP_AUTO_REDIRECT = true y WHATSAPP_REDIRECT_DELAY_MS = 250.
-
5
Configurar Telegram y probar el bot
- Si hace falta registrar el webhook, subir temporalmente
telegram_webhook_setup.php y abrir el link Setup Telegram del generador.
- El resultado esperado es
ok: true y que la URL del webhook termine en /telegram_bot.php.
- En Telegram probar
/estado y /numeros.
- Cuando termine la instalación, eliminar telegram_webhook_setup.php.
-
6
Crear los dos webhooks de Kommo
- Mensaje entrante recibido → usar el link “Webhook Kommo · Mensaje”:
/ocr_webhook.php?key=...
- El estado del lead cambiado → usar el link “Webhook Kommo · Purchase”:
/webhook.php?key=...
- No hace falta crear un webhook distinto para cada línea de WhatsApp: ambos pertenecen a la instancia completa del cliente.
-
7
Agregar números de WhatsApp a la rotación
- Desde el bot:
/agregar 549XXXXXXXXXX.
- Después ejecutar
/numeros y comprobar que figuren todas las líneas activas.
- La cantidad de líneas debe quedar sincronizada entre numeros.json y MySQL.
-
8
Ejecutar System Check
- Abrir el link System Check generado arriba.
- Debe mostrar
db.ok = true, Pixel configurado, Kommo/Telegram/OCR configurados, archivos escribibles y al menos 1 WhatsApp.
- Comprobar que
json_count y sql_count coincidan. Con números cargados, el objetivo es ok: true.
- Nota: System Check valida configuración/DB/archivos; las APIs y eventos reales se confirman en las pruebas siguientes.
-
9
Prueba 1 — Landing, rotación y ViewContent
- Abrir la Landing desde Argentina y comprobar que carga rápido y deriva a WhatsApp.
- Repetir varias entradas y confirmar que los números activos rotan.
- El mensaje de WhatsApp debe incluir el código de visita de 5 caracteres.
- En MySQL, revisar
visits: debe existir una visita nueva con código, número asignado, URL, IP/UA y tracking disponible.
- En
events deben aparecer ViewContent y el evento de intención/click de WhatsApp correspondiente.
- En iPhone, iOS/Meta puede mostrar el cartel oficial de WhatsApp “Abrir aplicación”; eso ya pertenece a WhatsApp y no a la landing.
SQL rápido
SELECT * FROM visits ORDER BY id DESC LIMIT 10;
-
10
Prueba 2 — Mensaje real → Lead + Contact
- Desde el WhatsApp del cliente, enviar el mensaje real que contiene el código generado por la landing.
- En Kommo comprobar que el lead/chat quedó asociado correctamente.
- En
visits debe completarse kommo_lead_id, lead_event_id, contact_event_id y sus fechas.
- En
events deben aparecer Lead y Contact. Meta CAPI debe responder correctamente.
SQL rápido
SELECT * FROM events ORDER BY id DESC LIMIT 20;
-
11
Prueba 3 — Comprobante / OCR
- Enviar una foto real del comprobante desde el WhatsApp del cliente. No subirla manualmente desde Kommo.
- Abrir Logs OCR desde el generador. El webhook debe detectar
attachments_found: 1.
- Verificar la secuencia: descarga del adjunto → OCR.Space → monto detectado → actualización de Presupuesto.
- Confirmar en Kommo que el campo Presupuesto quedó con el importe correcto.
- Si falla, revisar también la tabla
ocr_logs en MySQL antes de modificar código.
-
12
Prueba 4 — Convertido → Purchase
- Con el Presupuesto correcto, mover el lead de prueba al estado Convertido configurado.
- En
events debe aparecer Purchase con el mismo lead/código, moneda configurada y value = Presupuesto real.
- Comprobar que Meta/CAPI acepte el evento y que volver a mover/repetir el estado no duplique Purchase.
-
13
Cierre de instalación y habilitación de campañas
- Eliminar archivos temporales como
telegram_webhook_setup.php y test_db.php si existieran.
- Usar una SECRET_KEY fuerte y no dejar credenciales dentro de
public_html.
- Ejecutar un último System Check y confirmar nuevamente números activos.
- Mantener
GEO_FAIL_CLOSED = false si todavía no fue validado el header de país. Activarlo solo cuando la detección AR esté comprobada.
- Recién después de pasar ViewContent → WhatsApp → Lead/Contact → OCR → Purchase, habilitar tráfico pago.
Checklist antes de campañas
✓ DB importada y conectada
✓ System Check OK
✓ Rotación WhatsApp OK
✓ ViewContent recibido
✓ Lead + Contact recibidos
✓ OCR actualiza Presupuesto
✓ Purchase con monto real
✓ Helpers temporales eliminados