Volver al blogMTProto

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.

Robinson Silverio26 de mayo de 20267 min de lectura
Cómo enviar mensajes a desconocidos en Telegram (y por qué a veces falla)

Una de las preguntas más frecuentes cuando empiezas con Telegram marketing: "¿puedo enviar a alguien que no me conoce?". La respuesta corta es , 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:

  1. Username: si la persona tiene @username, lo resuelves con resolveUsername
  2. Número de teléfono: si tienes el número y la persona lo tiene público, lo resuelves agregándolo a contactos
  3. 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:

  1. Importar contacto vía contacts.ImportContacts con phone y un nombre
  2. Si Telegram encuentra esa cuenta, te devuelve el User con access_hash
  3. 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.

#telegram#cold outreach#mtproto#privacy