Chatwoot: todos tus mensajes en un solo lugar

Chatwoot centraliza WhatsApp, email, chat web y redes sociales en una sola bandeja de entrada. Así dejan de perderse conversaciones con clientes.

Tu equipo responde WhatsApps desde el móvil personal, emails desde el correo de empresa y mensajes de Instagram desde la app. Nadie sabe qué respondió quién, ni si ese cliente del martes ya tiene respuesta. Eso no es un problema de comunicación — es un problema de estructura, y tiene solución.

El caos de los canales

Hoy un cliente puede contactar con una empresa por WhatsApp, por el chat de la web, por email, por Instagram o por Facebook. Las PYMEs han ido abriendo canales porque era lo que tocaba, pero sin pensar en cómo gestionarlos todos a la vez, y el resultado es predecible: conversaciones sin responder, respuestas duplicadas, clientes que preguntan lo mismo dos veces porque nadie les contestó la primera, y un equipo que pierde tiempo saltando entre apps.

Qué es Chatwoot

Chatwoot es una plataforma de atención al cliente de código abierto que centraliza todos tus canales de comunicación en una sola bandeja de entrada compartida: WhatsApp, email, chat web, Facebook, Instagram, Telegram, SMS. El equipo los ve, los asigna y los responde desde una única interfaz, sin cambiar de app ni perder el hilo. Es la alternativa open source a Intercom o Zendesk, con plan gratuito y versión de pago desde 19 euros por agente al mes.

Cómo funciona en la práctica

La lógica es sencilla: conectas tus canales una vez y todos los mensajes entran en Chatwoot como conversaciones que se pueden asignar, etiquetar, priorizar y seguir. Si el cliente escribe por WhatsApp hoy y por email mañana, todo queda en el mismo hilo. Incluye respuestas rápidas con plantillas para las preguntas más habituales, automatizaciones para fuera de horario, notas internas para coordinar el equipo sin que el cliente las vea, e informes de rendimiento por canal y agente.

Los canales que puedes conectar

Chatwoot soporta de forma nativa email, chat en vivo, WhatsApp Business, Facebook Messenger, Instagram, Telegram, Twitter/X y SMS, además de API para canales propios si tienes desarrollo técnico. Para la mayoría de PYMEs, los cinco primeros ya cubren el 95% de cómo les contactan sus clientes.

Cuánto cuesta

El plan gratuito admite hasta 2 agentes y es suficiente para arrancar; el plan Startups cuesta 19 euros por agente al mes, Business sube a 39 euros y Enterprise a 99 euros para equipos grandes. La versión self-hosted es gratuita bajo licencia MIT — elimina el coste mensual por completo, pero requiere conocimientos técnicos para configurarla y mantenerla.

Lo que vemos desde IteraIA

Chatwoot no es una herramienta técnica, es una decisión de negocio: cuando los mensajes de clientes están repartidos entre cinco apps y tres móviles de empresa, no hay sistema que funcione independientemente de lo bien que quiera atender tu equipo. Su valor real aparece cuando se combina con automatizaciones — respuestas fuera de horario, asignación por tipo de consulta, notificaciones internas para mensajes urgentes — y eso es lo que convierte una bandeja de entrada en un sistema de atención que funciona sin que alguien tenga que estar pendiente todo el día.

(function(){const s=document.createElement('style');s.textContent='#ci-t{pointer-events:all;position:fixed;bottom:80px;left:24px;width:56px;height:56px;border-radius:50%;background:#1a1a1a;border: none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:9999;transition:transform .2s}#ci-t:hover{transform:scale(1.05)}#ci-t svg{width:24px;height:24px;fill:#fff}#ci-p{pointer-events:all;position:fixed;bottom:148px;left:24px;width:360px;height:500px;background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.15);display:none;flex-direction:column;z-index:9998;overflow:hidden}#ci-p.open{display:flex}#ci-h{background:#1a1a1a;color:#fff;padding:16px 20px;display:flex;align-items:center;gap:10px}.ci-dot{width:8px;height:8px;border-radius:50%;background:#4ade80}#ci-h span{font-size:14px;font-weight:600}#ci-h small{font-size:11px;color:#aaa;margin-left:auto}#ci-m{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ci-msg{max-width:85%;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.5}.ci-msg.bot{background:#f4f4f4;color:#1a1a1a;align-self:flex-start;border-bottom-left-radius:4px}.ci-msg.user{background:#1a1a1a;color:#fff;a lign-self:flex-end;border-bottom-right-radius:4px}.ci-msg.typing{color:#888;font-style:italic}#ci-ia{padding:12px 16px;border-top:1px solid #eee;display:flex;gap:8px}#ci-i{flex:1;border:1px solid #ddd;border-radius:8px;padding:8px 12px;font-size:14px;outline:none;resize:none;font-family:inherit}#ci-i:focus{border-color:#1a1a1a}#ci-s{background:#1a1a1a;color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer;font-size:14px;font-weight:600}#ci-s:disabled{opacity:.4;cursor:not-allowed}';document.head.appendChild(s);const h=document.createElement('div');h.innerHTML='
IteraIAAsistente virtual
Hola, soy el asistente de IteraIA. ¿En qué puedo ayudarte?
';document.body.appendChild(h);const W="https://iteraia-chatbot.joelruizd.workers.dev",t=document.getElementById("ci-t"),p=document.getElementById("ci-p"),m=document.getElementById("ci-m"),i=document.getElementById("ci-i"),s2=documen t.getElementById("ci-s");let hs=[];t.addEventListener("click",()=>{p.classList.toggle("open");if(p.classList.contains("open"))i.focus()});function add(txt,role){const d=document.createElement("div");d.className="ci-msg "+role;d.textContent=txt;m.appendChild(d);m.scrollTop=m.scrollHeight;return d}async function send(){const txt=i.value.trim();if(!txt)return;i.value="";s2.disabled=true;add(txt,"user");const ty=add("Escribiendo...","bot typing");try{const r=await fetch(W,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:txt,history:hs})});const data=await r.json();const rep=data.response||"Error.";ty.remove();add(rep,"bot");hs.push({role:"user",content:txt});hs.push({role:"assistant",content:rep});if(hs.length>20)hs=hs.slice(-20)}catch{ty.remove();add("Error de conexión.","bot")}s2.disabled=false;i.focus()}s2.addEventListener("click",send);i.addEventListener("keydown",e=>{if(e.key==="Enter"&&!e.shiftKey){e.preventDefault();send()}})})()