Inicio rápido: de cero a funcionando, sin saltarte ningún paso
La ruta por defecto es alojada en la nube: solo un teléfono y ~10 minutos — sin servidor, sin código. Cada paso te dice qué pantalla abrir y qué tocar, además de las trampas que la gente realmente encuentra.
🧾 Lista de verificación
- Telegram Premium — las funciones de Telegram Business en las que se apoya LingoDesk (relé de mensajes a un bot) son exclusivas de Premium. Sin Premium nada de esto funciona.
- Un teléfono — eso es todo lo que necesita el modo alojado en la nube (el predeterminado): haz los pasos 1–3 en tu teléfono, envíanos el token, listo.
- Solo para auto-alojamiento: Node.js ≥ 20 (o Docker), una API Key de Anthropic y un ordenador/servidor siempre encendido. El código es gratis y de código abierto en GitHub.
1Crea tu bot en BotFather
En Telegram, busca @BotFather (fíjate en la insignia azul de verificación) y ten esta conversación:
🤖 BotFather
/newbot
BotFatherAlright, a new bot. How are we going to call it? Please choose a name for your bot.
LingoDesk Assistant
BotFatherGood. Now let's choose a username for your bot. It must end in bot.
my_lingodesk_bot
BotFatherDone! Use this token to access the HTTP API:
8123456789:AAHfK3xxxxxxxxxxxxxxxxxxxxxxxxx
Keep your token secure and store it safely…
- El «nombre» es solo un nombre para mostrar; el «username» debe ser globalmente único y terminar en
bot — si está ocupado, prueba otro.
- Esa cadena
digits:letters de la última respuesta es tu BOT_TOKEN. Cópiala en un lugar seguro. Es en efecto la contraseña del bot — nunca la compartas.
1a. Activa el Secretary Mode (obligatorio; antes «Business Mode»)
⚠️ En mayo de 2026 Telegram renombró este interruptor a Secretary Mode; los clientes antiguos pueden seguir etiquetándolo como Business Mode — es lo mismo. Haz esto dentro del chat de @BotFather (no en la página de perfil de tu bot, ni en los ajustes de Telegram de tu teléfono). Dos interfaces — cualquiera sirve:
Interfaz ① Comandos clásicos — simplemente envía mensajes:
/mybots→
@my_lingodesk_bot→
Bot Settings→
Secretary Mode→
Turn on
Interfaz ② Nuevo panel de gestión — toca el botón azul Open junto al cuadro de mensajes de BotFather:
Open (panel)→
elige tu bot→
Settings→
Mode Settings→
activa el Secretary Mode
¿No lo encuentras? ① Tiene dos nombres: Secretary Mode en clientes nuevos, Business Mode en los antiguos — busca cualquiera de los dos; ② asegúrate de estar dentro de @BotFather, no en los ajustes de tu propio bot; ③ este interruptor no tiene nada que ver con Telegram Premium — Premium solo importa para la vinculación del lado de tu cuenta en el Paso 2; cualquiera puede activar este interruptor.
Sin el Secretary Mode, Telegram muestra un aviso emergente — «This bot doesn't support Telegram Business yet» — cuando intentas añadirlo en el Paso 2. Es el bloqueo más común de todos. Activa el interruptor: surte efecto al instante, no hace falta recrear el bot; simplemente vuelve a intentar añadirlo.
1b. Desactiva la Privacidad de grupo (obligatorio)
/mybots→
@my_lingodesk_bot→
Bot Settings→
Group Privacy→
Turn off
La privacidad está activada por defecto, y mientras lo está el bot no puede ver las respuestas que escribes en tu grupo de consola — el síntoma es «escribo en el tema y no pasa nada». Desactívala (BotFather debe decir Privacy mode is disabled).
2Vincula el bot en Telegram Business
En la app móvil de Telegram (este ajuste actualmente solo existe en móvil):
⚙️ Ajustes→
💼 Telegram Business→
🤖 Chatbots
En los clientes más nuevos este elemento se llama «Chat Automation» — etiqueta diferente, mismo acceso.
- Escribe el username de tu bot (p. ej.
my_lingodesk_bot) en el cuadro de búsqueda y selecciónalo.
- Permisos: activa «Reply to messages» — sin ello el bot puede leer pero nunca enviar en tu nombre.
- Para «qué chats», elige All 1:1 Chats; añade a la lista de Excluded Chats cualquier contacto privado que quieras mantener fuera del relé.
Una vez vinculado, cada mensaje privado que recibes se «reenvía en copia» silenciosamente al bot — el otro lado no nota nada, y tu propia experiencia de chat no cambia en absoluto.
3Crea tu grupo foro de consola
Este grupo es tu mesa de trabajo: un tema por contacto, con tarjetas de mensaje bilingües apareciendo dentro.
- Crea un grupo: Nuevo → Nuevo grupo, añade tu bot como único miembro (busca su username). Ponle el nombre que quieras, p. ej. «LingoDesk Console».
- Activa los temas (Topics): abre el grupo → toca el nombre para su perfil → Editar → activa Topics. El grupo se convierte en supergrupo y obtiene una lista de temas.
- Asciende el bot a administrador: perfil → Administradores → Añadir admin → tu bot → marca «Manage Topics» (deja el resto por defecto) → guardar.
El bot crea un tema automáticamente para cada contacto. Sin derechos de administrador + «Manage Topics» eso falla — el síntoma es «un cliente me escribió pero no aparece nada en el grupo».
El grupo solo os necesita a ti y al bot — ningún otro humano. Si añades a un colaborador, sus respuestas en un tema activan la traducción y el envío igual que las tuyas.
4Elige una: ☁️ Alojado en la nube o 💻 Auto-alojado
Todo lo del lado del teléfono está hecho. Ahora elige tu ruta — ¿sin servidor? Elige la A: nada que instalar.
☁️ Opción A · Alojado en la nube (recomendado: sin servidor, sin código, instantáneo)
- Envía un mensaje directo al bot oficial de activación @LingoDeskbot, manda
/start y luego pega el BOT_TOKEN del Paso 1 directamente en el chat.
- Activación automática instantánea: en cuanto el token se valida responde «🎉 Activado» (y borra el mensaje con tu token). El plan Gratis cubre 300 respuestas traducidas/mes; pásate a Pro (500 ⭐/mes) cuando quieras para ilimitado. El motor de traducción corre por nuestra cuenta — sin API keys que registrar.
- Sigue su respuesta para terminar la vinculación, luego envía
/bind en tu grupo de consola — el bot responde «✅ vinculado» y ya está. Salta al Paso 5 para probar. Envíale /status por mensaje directo cuando quieras, o /native en para fijar tu propio idioma.
¿Te preocupa entregar el token? Se almacena cifrado y solo se usa para retransmitir los chats que autorizaste en Telegram Business — y tú mantienes el control: revócalo cuando quieras en BotFather (/mybots → API Token → Revoke) y el token antiguo muere al instante.
💻 Opción B · Auto-alojado (tu propia máquina, tus propios datos)
Primero consigue una clave de traducción en console.anthropic.com → API Keys → Create Key (sk-ant-…; unos pocos dólares de crédito duran mucho tiempo a ~$0.001 por mensaje). Luego:
git clone https://github.com/sanxiaozi/lingodesk.git
cd lingodesk
npm install
cp .env.example .env # open .env — only BOT_TOKEN and ANTHROPIC_API_KEY are required
npm run db:push # initialize the database (first run only)
npm run dev
🚀 LingoDesk is up, bot = @my_lingodesk_bot
Una vez que veas el banner, envía /bind en tu grupo de consola para vincularlo (el ID del grupo y tu ID de usuario se detectan automáticamente — sin números que buscar). En un servidor, Docker es un solo comando: docker compose up -d — consulta el README de GitHub.
Un token de bot = una instancia en ejecución, a nivel global (409 Conflict = un proceso antiguo aún lo está reteniendo). Si te alojamos nosotros, no ejecutes además una instancia local.
5Chat de prueba
Desde una cuenta de Telegram distinta (una segunda cuenta o un amigo), envía un mensaje directo en un idioma extranjero a tu cuenta personal (¡no al bot!) — di, por ejemplo, «Hola, ¿cuánto cuesta?» en español. En segundos, en tu grupo de consola debería aparecer un tema nuevo con el nombre del remitente:
📋 Consola de LingoDesk · tema: @amigo_es
my_lingodesk_bot🆕 Contacto nuevo @amigo_es (es)
Original: Hola, ¿cuánto cuesta?
🌐 Hola, ¿cuánto cuesta?
─────
↳ Escribe aquí en tu idioma — sale en es, enviado como tú
El paquete A cuesta $100 e incluye todas las funciones.
my_lingodesk_bot📤 Vista previa de traducción (→es), enviada solo después de que confirmes:
El paquete A cuesta 100 dólares e incluye todas las funciones.
(Tu mensaje: El paquete A cuesta $100…)
[ ✅ Enviar al cliente ] [ ✏️ Cancelar ]
Toca «✅ Enviar al cliente» — el otro lado ve tu cuenta personal respondiendo en español fluido. Todo el ciclo ya está en marcha 🎉
- Las fotos, archivos y mensajes de voz que envían se reenvían al tema y se archivan automáticamente.
- ¿Idioma detectado incorrecto? Envía
/lang es en el tema para corregirlo; /help lista todos los comandos.
- Responder manualmente desde tu teléfono también está bien — el bot lo registra en el archivo del tema.
- Tú también puedes iniciar conversaciones — no hace falta esperarlos. Escribe a cualquiera desde tu cuenta real (aunque sea solo un «hola») y aparecen al instante en la consola con un tema creado; a partir de ahí, escribe aquí en tu idioma para seguir chateando con ellos.
🔧 Solución de problemas
Un cliente me escribió pero no aparece nada en el grupo de consola
Comprueba en orden: ① BotFather → Business Mode está activado (Paso 1a); ② Telegram Business → Chatbots tiene tu bot vinculado y ese chat está dentro del alcance (Paso 2); ③ el bot es administrador del grupo con «Manage Topics» (Paso 3); ④ el grupo de consola está vinculado — envía /bind en él; ⑤ auto-alojados: el proceso del bot sigue funcionando sin errores.
Aviso emergente al añadir el bot: «This bot doesn't support Telegram Business yet»
El Business Mode no está activado en BotFather (Paso 1a). Ve a @BotFather → /mybots → tu bot → Bot Settings → Business Mode → Turn on. Surte efecto al instante — no hace falta recrear el bot ni reenviar el token; simplemente vuelve a Telegram Business → Chatbots y añádelo de nuevo. Los usuarios alojados en la nube pueden enviar por mensaje directo /status a @LingoDeskbot para verificar este punto.
Envío /bind en el grupo y no pasa nada
① La Privacidad de grupo sigue activada (Paso 1b) — desactívala, luego quita y vuelve a añadir el bot; ② los temas (Topics) no están activados en el grupo; ③ usuarios alojados en la nube: asegúrate de que @LingoDeskbot respondió «Activado» (envíale /status para comprobarlo); ④ auto-alojados: asegúrate de que el proceso esté en ejecución.
¿Es seguro entregar mi BOT_TOKEN para el alojamiento en la nube?
El token se almacena cifrado y solo se usa para retransmitir los chats dentro del alcance que autorizaste en Telegram Business — y puedes excluir contactos privados (Paso 2). Tú mantienes el control: revócalo cuando quieras vía BotFather → /mybots → API Token → Revoke; el token antiguo muere al instante y el servicio se detiene. Para reanudar, simplemente envía el nuevo token a @LingoDeskbot.
Escribo en un tema y el bot no hace nada
Nueve de cada diez veces es la Privacidad de grupo, que sigue activada (Paso 1b). BotFather → Bot Settings → Group Privacy → Turn off, luego quita el bot del grupo y vuelve a añadirlo (el cambio solo se aplica tras volver a unirse), y asciéndelo a administrador de nuevo.
El arranque falla con 409 Conflict
Hay dos instancias funcionando con el mismo token. Encuentra y detén el proceso antiguo (Ctrl+C o pkill -f "tsx.*main.ts"), espera diez segundos y arranca de nuevo.
«Enviar al cliente» falla con un error genérico
Comprueba en orden de probabilidad: ① el permiso «Reply to messages» está desactivado (lo más común) — Ajustes → Telegram Business → Chat Automation (Chatbots) → tu bot → activa «Reply to messages»; sin ello el bot puede leer pero nunca enviar; ② el chat del cliente no está dentro del alcance de chats accesibles del bot (misma página); ③ el contacto no te ha escrito en más de 24 horas — Telegram bloquea los envíos iniciados por el bot; pídele que envíe cualquier cosa primero. Usuarios alojados en la nube: envía por mensaje directo /status a @LingoDeskbot — la línea del «permiso de respuesta» te da la respuesta directamente.
«Enviar al cliente» falla: contacto inactivo demasiado tiempo
Una restricción de Telegram: si una conversación ha estado inactiva demasiado tiempo, el bot no puede iniciar en tu nombre (BUSINESS_PEER_USAGE_MISSING). Pídele que envíe cualquier cosa para reactivarla, o responde manualmente desde tu teléfono esta vez.
El envío falla: conexión de negocio inválida
Ve a Ajustes → Telegram Business → Chatbots, quita y vuelve a añadir el bot — o simplemente espera el siguiente mensaje del cliente, que permite al bot capturar una conexión fresca automáticamente.
Idioma detectado incorrecto / quiero un idioma de destino diferente
El idioma se fija con el primer mensaje del contacto (para evitar oscilaciones con textos cortos). Envía /lang code en el tema de ese contacto para corregirlo, p. ej. /lang pt (portugués) o /lang ar (árabe).
Tras un reinicio, los botones antiguos de «Enviar / Cancelar» dejaron de funcionar
Las vistas previas pendientes viven en memoria y expiran al reiniciar (el botón te lo dirá). Simplemente vuelve a escribir tu respuesta en el tema. Los contactos y el historial de chat viven en la base de datos — no se pierde nada.
🎉 ¿Todo funcionando?
De ahora en adelante, los clientes escriben en el idioma que quieran — tú solo escribes en el tuyo. Si algo se rompe, repasa primero la lista de solución de problemas de arriba; si sigues atascado, escríbenos un correo con una captura del error del terminal.
✉️ [email protected]