Cómo enviar mensajes a desconocidos en Telegram (y por qué a veces falla)
Privacy settings, contactos compartidos, resolveUsername y los muros invisibles que rompen el cold outreach en Telegram.
Una de las preguntas más frecuentes cuando empiezas con Telegram marketing: "¿puedo enviar a alguien que no me conoce?". La respuesta corta es sí, pero con condiciones técnicas y de comportamiento que tienes que entender. Este post las cubre todas.
La regla básica: hace falta saber quién es
Para enviar a alguien en Telegram, tu cliente MTProto necesita un InputPeer válido. Hay tres formas de conseguirlo:
- Username: si la persona tiene
@username, lo resuelves conresolveUsername - Número de teléfono: si tienes el número y la persona lo tiene público, lo resuelves agregándolo a contactos
- ID numérico + access_hash: solo si ya interactuaste antes y lo tienes guardado
Sin uno de los tres, no puedes enviar. Punto.
Username: el camino más limpio
Si tienes una lista de @usernames (porque los obtuviste de tu CRM, un opt-in, un canal donde están), el envío es directo:
const peer = await client.getInputEntity("@cliente_potencial");
await client.invoke(new Api.messages.SendMessage({
peer,
message: "Hola, te escribimos porque...",
randomId: bigInt.randBetween("1", "9999999999"),
}));Limitaciones:
- Si la persona no tiene username (60% de cuentas en LatAm no lo tienen), este camino no aplica
- Si la persona bloqueó tu cuenta, falla con
USER_IS_BLOCKED - Si la persona configuró privacy "nadie puede agregarme", puedes enviar pero ellos tienen un toggle para silenciar mensajes de no-contactos
Número de teléfono: el más usado en cold outreach
El flujo en MTProto es:
- Importar contacto vía
contacts.ImportContactsconphoney un nombre - Si Telegram encuentra esa cuenta, te devuelve el
Userconaccess_hash - Ya puedes enviar mensajes a ese contacto
const resultado = await client.invoke(new Api.contacts.ImportContacts({
contacts: [new Api.InputPhoneContact({
clientId: bigInt.zero,
phone: "+5219991112222",
firstName: "Cliente",
lastName: "Potencial",
})],
}));
if (resultado.users.length > 0) {
const usuario = resultado.users[0];
// ya puedes enviarle
}Crítico: este flujo está sujeto a límites estrictos. No puedes importar 1000 contactos por hora sin que Telegram lo detecte como bot y te castigue. Ritmo seguro: ~50 importaciones por hora por cuenta.
Los muros invisibles
Muro 1: Phone number privacy
Como mencionamos arriba: si el usuario configuró "Quién puede ver mi número de teléfono" en "Nadie" o "Mis contactos", tu importación va a fallar para él. Tu campaña tendrá ese ~20-30% de "rebote silencioso" — no falla con error, simplemente no encuentra al usuario.
Muro 2: Block
Si el usuario bloqueó tu cuenta (manual o automáticamente por reportes spam previos), recibirás USER_IS_BLOCKED. Tu cuenta queda marcada ante Telegram. Repetir esto con muchas cuentas distintas es una señal anti-spam clarísima.
Muro 3: New account restriction
Una cuenta nueva (< 14 días) tiene restricciones automáticas:
- No puede enviar a más de 10-20 no-contactos por día
- Cualquier reporte spam la pone en revisión
- Telegram puede silenciar mensajes sin que el remitente lo sepa
Por eso el warming progresivo es obligatorio.
Muro 4: Privacy "puede escribirme"
Algunos usuarios configuran "Quién puede escribirme" en "Mis contactos solamente". Tu mensaje se entrega pero no se notifica al usuario. Lo verá si abre la app y mira la sección "mensajes archivados", lo cual la mayoría nunca hace.
Resultado: tu mensaje técnicamente "llegó" pero operativamente no existe para esa persona.
Muro 5: Soft-ban por patrón
Si tu cuenta envía mensajes idénticos a muchos desconocidos, Telegram detecta el patrón. Penalización progresiva:
- Nivel 1: tus mensajes a no-contactos quedan silenciados (el receptor no recibe notificación)
- Nivel 2: FloodWait de 24h-7 días
- Nivel 3: ban permanente de la cuenta
Para evitar esto: variaciones de texto (Spintax), ritmo humano, mensajes personalizados.
El camino correcto en producción
Una operación de cold outreach Telegram seria sigue este flujo:
1. Pre-validación de la lista
Antes de enviar nada, hacer un "mass-check" de tu lista:
- Para cada número:
contacts.ImportContacts→ ¿existe en Telegram? - Quita los números que no existen (no malgastes envíos)
- Quita los que no tienen username público y no aparecen por número
Resultado: una lista limpia de ~60-70% del total original. Eso es normal, no un error tuyo.
2. Segmentación por antigüedad de cuenta
Distribuye los envíos según las cuentas:
- Cuentas con < 7 días: máx 3 envíos/día a no-contactos (warming)
- Cuentas con 7-14 días: máx 15/día
- Cuentas con > 14 días: máx 50-70/día
Esto es lo que llamamos niveles progresivos.
3. Mensaje con variación
Usa Spintax:
{Hola|Hey|Saludos} {nombre}, {te escribo|te contacto} porque {vi tu perfil|encontré tu canal|me recomendaron tu marca}...
Cada mensaje se renderiza diferente. Telegram detecta repetición textual; con Spintax, los mensajes son únicos textualmente.
4. Ritmo con jitter
No envíes uno cada 5 segundos exactos. Usa 30-90 segundos aleatorios entre mensajes a no-contactos, con pausas más largas cada 10-15 mensajes (simulando "humano se distrajo").
5. Monitoring de respuestas
Si tu tasa de respuestas baja del 5% drásticamente, algo cambió:
- Telegram puede estar silenciando tus envíos
- Tus mensajes pueden estar entrando en spam folder
- La cuenta está en bandera
Pausa, investiga, ajusta.
Lo que NO debes hacer
- Enviar 1000 mensajes idénticos a una lista de desconocidos: ban garantizado en 24h
- Recibir reportes spam y seguir enviando: cuenta muerta
- Cambiar de cuenta cada hora: detectable como bot, aumenta riesgo del pool entero
- Comprar listas de números aleatorios: ~70% no estarán en Telegram, los demás reportarán
Cuándo SÍ es ético y efectivo
Cold outreach Telegram funciona muy bien cuando:
- El receptor tiene contexto previo (vio un anuncio, escaneó un QR, dejó número en un formulario, está en un grupo público relacionado)
- El mensaje es relevante y personal (no copy-paste genérico)
- Hay opt-out claro: "responde STOP si no quieres más mensajes"
- El ritmo es humano: 30-50 mensajes/día por cuenta máximo
En este escenario, conversion rates del 8-15% son normales en LatAm.
La pregunta real
No es "¿puedo enviar a desconocidos?" — sí, puedes. La pregunta real es "¿puedo enviar a desconocidos de forma escalable y sostenible?" — y la respuesta es sí, pero solo con la arquitectura correcta (resumen aquí).
Sin pool de cuentas, sin warming, sin Spintax, sin proxies — vas a quemar 5-10 cuentas por semana y tu costo por lead va a ser absurdo. Con todo eso, tienes un canal de adquisición competitivo.
Cómo lo resuelve Vega Punk
Vega Punk hace:
- Mass-check pre-campaña para limpiar listas (~$0.001/número)
- Pool de cuentas con niveles progresivos automáticos
- Spintax con preview y validación
- Ritmo con jitter humano y pausas estratégicas
- Monitoring de tasa de respuesta y health score por cuenta
Si quieres este nivel sin construir 9 meses, empieza aquí.
Conclusión
Enviar a desconocidos en Telegram es legal y técnicamente posible, pero requiere disciplina técnica. Las plataformas que prometen "5,000 mensajes al día sin restricciones" están mintiendo o están a punto de quemar tus cuentas.
La realidad es: con cuentas bien calentadas, listas limpias y ritmo humano, 50-70 mensajes/día por cuenta es lo sostenible. Multiplica por tu pool. Esa es tu capacidad real.