Tu pipeline ya genera copy y genera imágenes. El siguiente paso es la decisión más importante: ¿publicas o no?
El patrón "human-in-the-loop" es lo que separa un juguete de IA de una herramienta de producción real. El humano decide. La IA ejecuta. Y el canal más inmediato para esa decisión: WhatsApp.
La Arquitectura de Aprobación
IA genera copy + imagen → WhatsApp Preview (texto + imagen)
↓
Tú respondes:
┌──────┴──────┐
OK NO (+ feedback)
↓ ↓
Publica en Regenera con
IG/TikTok las correcciones
↓ ↓
WhatsApp: "✅ Vuelve a enviar
Publicado" preview
Tiempo total de revisión: 30 segundos. Abres WhatsApp, ves la imagen, lees el copy. Si te gusta, "OK". Si no, "NO, cambia el tono a más técnico". La IA entiende el feedback en lenguaje natural.
Opciones de Integración WhatsApp
Opción A: Evolution API (recomendada para self-hosted)
Evolution API es un gateway WhatsApp open-source que expone una API REST limpia:
# Docker
docker run -d -p 8080:8080 atendai/evolution-api
# Enviar mensaje de texto
POST http://localhost:8080/message/sendText/evolution
Headers: apikey: YOUR_API_KEY
Body: {
"number": "584140108660",
"text": "📱 *Nuevo post listo para revisión:*\n\n{ copy }\n\n¿OK o NO?"
}
# Enviar imagen
POST http://localhost:8080/message/sendMedia/evolution
Headers: apikey: YOUR_API_KEY
Body: {
"number": "584140108660",
"mediatype": "image",
"caption": "Preview del post",
"media": "https://tu-servidor/images/preview.png"
}
Opción B: Meta WhatsApp Cloud API (oficial)
Requiere un Meta Business Account verificado. Más burocrático pero más estable:
POST https://graph.facebook.com/v21.0/{phone_number_id}/messages
Headers: Authorization: Bearer {meta_token}
Body: {
"messaging_product": "whatsapp",
"to": "584140108660",
"type": "image",
"image": { "link": "https://tu-servidor/images/preview.png", "caption": "¿OK o NO?" }
}
Opción C: Webhook directo a OpenClaw (la que usamos en esta serie)
Si tu asistente de IA ya está conectado a WhatsApp vía OpenClaw, el webhook n8n envía el preview y OpenClaw escucha tu respuesta:
// n8n → OpenClaw webhook
POST https://ai.guayoyo.tech/plugins/webhooks/approval
Body: {
"action": "send_preview",
"recipient": "+584140108660",
"copy": "texto del post...",
"image_url": "https://...",
"brief_id": "post-2026-05-14-001"
}
El Circuito en n8n
Nodo 1: Enviar Preview por WhatsApp
// HTTP Request → Evolution API
const preview = {
number: "584140108660",
text: `📱 *Nuevo post para revisar*\n\n${$json.hook}\n\n${$json.body}\n\n${$json.hashtags}\n\n${$json.cta}\n\n---\nResponde *OK* para publicar o *NO* + feedback`,
delay: 500
};
// Si hay imagen, enviar primero la imagen y luego el texto
Nodo 2: Esperar Respuesta (Webhook)
n8n expone un Webhook node que espera la respuesta:
Webhook Node (POST /approval-response)
↓
IF node: ¿El texto contiene "OK"?
├─ Sí → Continuar a publicación
└─ No → Extraer feedback → Regenerar
Configuración del Webhook en n8n:
- Método: POST
- Path:
/approval-response - Response:
{ "status": "received" }
OpenClaw escucha tu WhatsApp y cuando respondes "OK" o "NO...", reenvía al webhook de n8n.
Nodo 3: Switch — OK o NO
const response = $input.first().json.body.toLowerCase();
if (response.includes("ok") && !response.includes("no ok")) {
return [{ action: "publish", data: $input.first().json }];
} else {
// Extraer feedback después de "NO"
const feedback = response.replace(/^no[,\s]*/i, "").trim();
return [{ action: "regenerate", feedback: feedback, data: $input.first().json }];
}
Nodo 4: Timeout — 30 Minutos
Si no respondes en 30 minutos, el flujo guarda un borrador y te avisa:
// n8n Wait node configurado a 30 minutos
// Si expira sin respuesta:
const draft = {
copy: $json.copy,
image_url: $json.image_url,
status: "draft_timeout",
timestamp: new Date().toISOString()
};
// Guardar en base de datos o Google Sheet
// Enviar WhatsApp: "⏰ El post de las 10am quedó en borrador. Revísalo cuando puedas."
Flujo Completo del Circuito
1. Agente genera copy + SD genera imagen
↓
2. WhatsApp Preview: "📱 Nuevo post para revisar"
↓
3. Webhook espera tu respuesta (timeout 30 min)
↓
┌────┴────┐
OK NO + feedback
↓ ↓
4a. Publicar 4b. Regenerar
IG/TikTok (volver al agente
↓ con el feedback)
5. WhatsApp: ↓
"✅ Listo" Nuevo preview
Por Qué WhatsApp y No un Dashboard
| Dashboard Web | |
|---|---|
| Requiere abrir navegador + login | Ya lo tienes abierto |
| Tienes que ir a buscarlo | Te llega solo |
| ~2-3 minutos por revisión | ~30 segundos por revisión |
| Solo en desktop | En cualquier lado |
La fricción mata la consistencia. Si publicar requiere 3 pasos extra, al tercer día dejas de hacerlo. Con WhatsApp, es un reflejo: ves, respondes, listo.
Seguridad: Solo Tú Apruebas
El webhook de aprobación solo acepta respuestas de tu número:
// En el webhook de OpenClaw
if (incoming.from !== "+584140108660") {
return { status: "ignored", reason: "not_authorized" };
}
Nadie más puede aprobar publicaciones. El circuito es humano, pero la seguridad es programática.
¿Listo para un pipeline de contenido donde tú decides y la IA ejecuta? En Guayoyo Tech construimos el circuito completo — desde la generación hasta la publicación, con tu aprobación en cada paso.
Top comments (0)