Sparrow Telegram conecta su bot y sus canales a una bandeja de entrada compartida por sus equipos: difunde a todos sus suscriptores sin límite de ventana, las consultas habituales se resuelven solas, y el historial sigue vinculado al contacto en su CRM.
Haga clic en un caso de uso para descubrir en detalle cómo Sparrow Telegram lo activa para su empresa.
Es la particularidad de Telegram: un canal difunde a todos sus suscriptores, con la frecuencia que usted decida, sin ventana de respuesta ni categoría de mensaje impuesta. La suscripción es expresa y la baja se hace con un gesto: habla, por tanto, a una audiencia que ha pedido leerle.
En Telegram, la automatización es nativa: su bot expone comandos —/catalogo, /pedido, /asesor— y un menú de botones. Seguimiento de pedido, disponibilidad, horarios: la mayor parte del volumen se resuelve sin agente, y el relevo pasa a una persona en cuanto hace falta.
Un suscriptor que escribe a su bot abre una conversación privada. Cae en la bandeja común, asignada, etiquetada y seguida, con el historial completo del contacto, y sin ventana de veinticuatro horas que vigilar.
Basta una petición HTTP para publicar en un canal o escribir a un suscriptor: confirmación de pedido, aviso de expedición, alerta de supervisión. Los mensajes entrantes se le devuelven por webhook.
Cada publicación lleva su número de visualizaciones y de clics, cada conversación su tiempo de primera respuesta y su desenlace. Ve así qué publicaciones hacen crecer el canal, cuáles provocan bajas y qué solicitudes merecerían un comando propio.
Un mismo canal, tres formatos que no sirven para lo mismo: el canal difunde sin retorno, el grupo hace conversar entre sí, el bot mantiene la conversación privada.
Novedades, promociones, anuncios: un mensaje a todos sus suscriptores, con la frecuencia que decida.
Sin límite de frecuenciaSeguimiento de pedido, disponibilidad, horarios: comandos y botones que responden en un segundo.
Disponible 24 hPreguntas, reclamaciones y asesoramiento atendidos por sus agentes desde una bandeja compartida.
Sin ventana de respuestaSus clientes o sus distribuidores conversan entre ellos, con su moderación y sus reglas.
Hasta 200 000 miembrosPedido registrado, paquete enviado, recogida disponible: lo dispara su aplicación.
Por APICatálogo, factura, manual, archivo comprimido: hasta 2 GB por archivo, sin servicio de alojamiento externo.
Archivos de hasta 2 GBUna pregunta a su audiencia, con un resultado inmediato, público o anónimo.
Resultado en directoSupervisión, incidencia, guardia: el canal interno que avisa a sus equipos antes que nadie.
Uso internoCódigo de un solo uso entregado en la conversación, para las cuentas ya vinculadas a su bot.
En cuenta vinculadaLa bandeja compartida, los canales, los bots y la API en una misma suscripción, sin ninguna herramienta adicional que conectar.
Un mensaje a todos sus suscriptores, sin límite de frecuencia ni ventana de respuesta. Publicación programada, fijada, modificable tras el envío, con contador de visualizaciones.
Comandos, teclados de botones y formularios guiados. Las consultas habituales se resuelven solas y el relevo pasa a un agente en cuanto hace falta.
Las conversaciones privadas en una sola pantalla, asignadas, etiquetadas y seguidas. Notas internas, menciones entre compañeros y transferencia sin perder el hilo.
Hasta 2 GB por documento: catálogo, factura, manual, archivo comprimido. Sin servicio de alojamiento aparte, sin enlaces que caducan.
Suscriptores, crecimiento, bajas, visualizaciones y clics por publicación. Exportación CSV, informe semanal, envío por API.
Sus aplicaciones publican y responden sin pasar por la interfaz. Token por aplicación, entorno de pruebas, ejemplos en los principales lenguajes.
No hay que instalar ninguna biblioteca propietaria. La API REST se llama desde cualquier lenguaje, y la bandeja compartida sigue disponible para los intercambios que llevan sus agentes.
POST /api/v1/login con sus credenciales devuelve un token
(api_token) que después coloca en la cabecera
Authorization: Bearer {api_token} de cada envío.
Una cuenta puede alojar varias aplicaciones, cada una con su token:
las estadísticas se mantienen separadas, aplicación por aplicación.
| Operación | Método | URL |
|---|---|---|
| Obtener un token | POST | https://app.sparrowmessage.com/api/v1/login |
| Enviar un mensaje | POST | https://app.sparrowmessage.com/api/v1/telegram/send/one |
| Recibir un mensaje | POST entrante | https://su-sitio.com/sparrow/webhook |
| Estado de un mensaje | POST | https://app.sparrowmessage.com/api/v1/telegram/status |
| Estado de una lista | POST | https://app.sparrowmessage.com/api/v1/telegram/status/bulk |
SEMS
Amplitude RR. HH.
1 — Obtener el token y enviar un mensaje.
<?php
$base = 'https://app.sparrowmessage.com/api/v1';
// — Authentification : le jeton est à conserver, pas à redemander à chaque envoi
$ch = curl_init("$base/login");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Accept: application/json', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'email' => 'vous@societe.ma',
'password' => 'votre-mot-de-passe',
]),
]);
$jeton = json_decode(curl_exec($ch), true)['api_token'];
curl_close($ch);
// — Envoi d'un message
$ch = curl_init("$base/telegram/send/one");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Content-Type: application/json',
"Authorization: Bearer $jeton",
],
CURLOPT_POSTFIELDS => json_encode([
'recipient' => '718294106203941',
'text' => 'Votre code de vérification est 385 214.',
// Facultatif : Sparrow y postera les changements de statut
'notifyurl' => 'https://votre-site.ma/sparrow/statut',
]),
]);
$reponse = json_decode(curl_exec($ch), true);
curl_close($ch);
// Toute réponse porte un champ code : OK ou KO
echo $reponse['code'] === 'OK' ? "Message envoyé\n" : "Échec : {$reponse['error']}\n";
Envío individual y después envío masivo.
import requests
base = 'https://app.sparrowmessage.com/api/v1'
# — Authentification
jeton = requests.post(f'{base}/login', json={
'email': 'vous@societe.ma',
'password': 'votre-mot-de-passe',
}).json()['api_token']
entetes = {'Authorization': f'Bearer {jeton}', 'Accept': 'application/json'}
# — Envoi d'un message
r = requests.post(f'{base}/telegram/send/one', headers=entetes, json={
'recipient': '718294106203941',
'text': 'Votre code de vérification est 385 214.',
'notifyurl': 'https://votre-site.ma/sparrow/statut',
}).json()
print('Message envoyé' if r['code'] == 'OK' else f"Échec : {r['error']}")
# — Envoi en masse : une seule requête, plusieurs destinataires
requests.post(f'{base}/telegram/send/bulk', headers=entetes, json={
'phones': ['718294106203941', '+2126YYYYYYYY'],
'text': 'Soldes : -20 % jusqu\'à dimanche. STOP au 36000',
})
# — Statut d'un envoi, à partir de l'identifiant renvoyé
statut = requests.post(f'{base}/telegram/status', headers=entetes, json={
'message_id': '8f21c4',
}).json()
print(statut['result'])
Node 18 o posterior: fetch es nativo.
const base = 'https://app.sparrowmessage.com/api/v1';
// — Authentification
const { api_token } = await fetch(`${base}/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
body: JSON.stringify({
email: 'vous@societe.ma',
password: 'votre-mot-de-passe',
}),
}).then(r => r.json());
const entetes = {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: `Bearer ${api_token}`,
};
// — Envoi d'un message
const reponse = await fetch(`${base}/telegram/send/one`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
phone: '718294106203941',
text: 'Votre code de vérification est 385 214.',
notifyurl: 'https://votre-site.ma/sparrow/statut',
}),
}).then(r => r.json());
console.log(reponse.code === 'OK' ? 'Message envoyé' : `Échec : ${reponse.error}`);
// — Envoi en masse
await fetch(`${base}/telegram/send/bulk`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
phones: ['718294106203941', '+2126YYYYYYYY'],
text: 'Soldes : -20 % jusqu\'à dimanche. STOP au 36000',
}),
});
.NET 6 o posterior.
using System.Net.Http.Json;
var http = new HttpClient { BaseAddress = new Uri("https://app.sparrowmessage.com/api/v1/") };
// — Authentification
var auth = await http.PostAsJsonAsync("login", new {
email = "vous@societe.ma",
password = "votre-mot-de-passe",
});
var jeton = (await auth.Content.ReadFromJsonAsync<Dictionary<string, string>>())["api_token"];
http.DefaultRequestHeaders.Authorization = new("Bearer", jeton);
// — Envoi d'un message
var envoi = await http.PostAsJsonAsync("sms/send/one", new {
phone = "718294106203941",
text = "Votre code de vérification est 385 214.",
notifyurl = "https://votre-site.ma/sparrow/statut",
});
var resultat = await envoi.Content.ReadFromJsonAsync<Dictionary<string, object>>();
Console.WriteLine(resultat["code"].ToString() == "OK" ? "Message envoyé" : $"Échec : {resultat["error"]}");
// — Envoi en masse
await http.PostAsJsonAsync("sms/send/bulk", new {
phones = new[] { "718294106203941", "+2126YYYYYYYY" },
text = "Soldes : -20 % jusqu'à dimanche. STOP au 36000",
});
Java 11 o posterior, cliente HTTP nativo.
import java.net.URI;
import java.net.http.*;
var client = HttpClient.newHttpClient();
var base = "https://app.sparrowmessage.com/api/v1";
// — Authentification
var auth = HttpRequest.newBuilder(URI.create(base + "/login"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{"email":"vous@societe.ma","password":"votre-mot-de-passe"}"""))
.build();
var jeton = extraire(client.send(auth, HttpResponse.BodyHandlers.ofString()).body(), "api_token");
// — Envoi d'un message
var envoi = HttpRequest.newBuilder(URI.create(base + "/telegram/send/one"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer " + jeton)
.POST(HttpRequest.BodyPublishers.ofString("""
{"recipient":"718294106203941",
"text":"Votre code de vérification est 385 214.",
"notifyurl":"https://votre-site.ma/sparrow/statut"}"""))
.build();
System.out.println(client.send(envoi, HttpResponse.BodyHandlers.ofString()).body());
Para copiar tal cual en un terminal.
# — 1. Obtenir le jeton
curl -X POST https://app.sparrowmessage.com/api/v1/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"vous@societe.ma","password":"votre-mot-de-passe"}'
# Réponse : {"code":"OK","api_token":"eyJ0eXAiOiJKV1Qi..."}
# — 2. Envoyer un message
curl -X POST https://app.sparrowmessage.com/api/v1/telegram/send/one \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"recipient":"718294106203941",
"text":"Votre code de vérification est 385 214.",
"notifyurl":"https://votre-site.ma/sparrow/statut"}'
# — 3. Recevoir les messages entrants
curl -X POST https://app.sparrowmessage.com/api/v1/telegram/send/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"phones":["718294106203941","+2126YYYYYYYY"],
"text":"Rappel : votre rendez-vous est demain a 14h30."}'
# — 4. Statut d'un envoi
curl -X POST https://app.sparrowmessage.com/api/v1/telegram/status \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"message_id":"8f21c4"}'
# — 5. Statut d'une liste
curl -X POST https://app.sparrowmessage.com/api/v1/telegram/status/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"messages_id":["8f21c4","8f21c5"]}'
Todas las respuestas llevan un campo code por valor de OK ou
KO. En caso de OK, result — o results
para las llamadas masivas — lleva el detalle; en caso de KO,
error indica el motivo.
Documentación completa y entorno de pruebas facilitados al abrir la cuenta.
Grandes cuentas, instituciones y administraciones, en Marruecos y en el extranjero. Las mismas organizaciones, sea cual sea el canal.

Comunicación con empleados, proveedores y clientes

Comunicación con clientes y empleados

Comunicación con clientes y empleados

Comunicación con proveedores

Comunicación con clientes y empleados

Comunicación con candidatos y empresas

Comunicación con miembros y socios

Comunicación con socios

Comunicación con socios y donantes

Comunicación con clientes

Notificaciones a clientes desde el CRM

Comunicación con clientes

Comunicación con candidatos y empresas

Comunicación con socios

Comunicación con clientes y socios

Comunicación con proveedores

Comunicación con estudiantes y socios

Comunicación con profesionales del turismo

Comunicación con clientes

Comunicación con socios

Comunicación con clientes y usuarios

Comunicación con estudiantes y administración

Comunicación con estudiantes y administración

Comunicación con clientes y puntos de venta

Comunicación con empleados

Comunicación con clientes y posibles clientes

Comunicación con clientes y posibles clientes

Comunicación con clientes

Comunicación con clientes

Comunicación con clientes

Notificaciones y relación con clientes

Notificaciones a clientes y proveedores

Notificaciones y campañas a clientes
Canal de novedades, seguimiento del pedido por el bot, asesoramiento en la conversación privada.
Avisos de cuenta, seguimiento de un expediente, envío de certificados y extractos adjuntos.
Canal de avisos a las familias, horarios, instrucciones y materiales de curso voluminosos.
Canal de nuevos inmuebles, planos y expedientes completos enviados en un solo archivo.
Aviso de entrega por el bot, franja confirmada con un botón, reclamación atendida en privado.
Menú del día en el canal, reserva por el bot, confirmación y recordatorio de la mesa.
Canal de información a los socios, grupo de debate, convocatorias y actas.
Canal interno de alertas de supervisión, guardia avisada la primera, registros adjuntos.
Telegram no se factura por mensaje como un SMS: el coste depende de la conversación, del número de agentes y de lo que usted automatice. Por eso elaboramos una propuesta a medida, tras una conversación de treinta minutos.
El número de conversaciones abiertas cada mes, y la parte que se resuelve sin intervención humana. Es el primer factor del coste.
Cuántas personas se conectan a la bandeja compartida y en qué horario. Un agente adicional se añade en cualquier momento.
Recorridos guiados, conexión a su catálogo, integración con CRM o ERP: la implantación se presupuesta una vez, la explotación después.
Descríbanos su volumen actual y sus solicitudes más frecuentes. Volvemos con una propuesta con cifras y un calendario de puesta en marcha, sin compromiso.
El canal difunde: usted publica, sus suscriptores leen, no responden. El grupo hace conversar: los miembros hablan entre ellos, hasta doscientas mil personas, bajo su moderación. El bot mantiene la conversación privada: un suscriptor le escribe, y él responde solo o pasa el relevo a un agente. La mayoría de las empresas usa los tres: el canal para anunciar, el bot para atender, el grupo para animar una comunidad.
No, y esa es la principal diferencia. Telegram no impone ni ventana de respuesta, ni categoría de mensaje, ni plantilla que aprobar. Puede escribir a un suscriptor que le escribió hace seis meses, y difundir en su canal con la frecuencia que estime útil. El único límite es el del sentido común comercial: un canal demasiado hablador pierde suscriptores, y la baja se hace con un gesto.
Sí, como con cualquier mensajería. Telegram está muy extendido en algunos países y entornos profesionales, mucho menos en otros: es un canal que se abre cuando su audiencia ya está allí, no que se impone. Miramos juntos lo que vale su base antes de aconsejárselo, y si la cuenta no sale, el SMS o WhatsApp sigue siendo el canal de primer recurso.
Un canal no se llena solo: se alimenta de sus otros puntos de contacto. Enlace en sus correos y sus SMS, código QR en tienda y en sus embalajes, botón en su sitio, mención en sus redes. Los primeros mil suscriptores llegan de ahí, no de Telegram.
Hasta 2 GB por archivo, algo que ningún otro canal de esta lista permite. Catálogo en alta definición, manual técnico, archivo de facturas, vídeo de demostración: el documento sale en la conversación, sin servicio de alojamiento aparte ni enlace que caduque a los siete días.
Sí, ese es precisamente el objeto de la bandeja compartida. Cada conversación se asigna a un agente, es visible para los demás y no puede recibir dos respuestas concurrentes. La transferencia se hace con un clic, con las notas internas, y el historial sigue vinculado al contacto sea cual sea el agente que haya respondido.
Sí, y es útil más a menudo de lo que se cree: un error de precio, una fecha equivocada o un enlace roto se corrigen en la publicación original, para todos los suscriptores a la vez. La eliminación también es posible, en ambos lados de la conversación.
Sí, mediante la API REST y los webhooks. Cada mensaje entrante puede enviarse a su sistema, y su sistema puede escribir en la conversación o publicar en el canal. Existen conectores para los CRM y las plataformas de comercio electrónico más extendidos; para una herramienta interna, la integración se hace por API en unos días.
Sí, con el historial completo vinculado al contacto: un cliente que vuelve seis meses después es reconocido, y el agente ve lo que se dijo. El plazo de conservación es configurable según su política de datos, y la exportación está disponible en todo momento.
En Marruecos, el tratamiento de datos personales se rige por la ley 09-08 y la CNDP: las conversaciones y la lista de suscriptores de su canal contienen datos personales y deben figurar en su declaración. Como Telegram no impone ventana ni categoría de mensaje, el límite lo marca el consentimiento: la suscripción al canal hace sus veces, y la baja debe seguir siendo inmediata. Suscripciones, retiradas de consentimiento y solicitudes de supresión se conservan y se pueden exportar. No somos juristas: haga validar su dispositivo y su declaración ante la CNDP por su asesoría.
El RGPD se aplica a las conversaciones de Telegram como a todo tratamiento de datos personales: base legal, información al cliente, plazo de conservación y derecho de supresión. Como Telegram no impone ventana ni categoría de mensaje, el límite lo marca el consentimiento: la suscripción al canal hace sus veces, y la baja debe seguir siendo inmediata. Suscripciones, retiradas de consentimiento y solicitudes de supresión se conservan y se pueden exportar, lo que alimenta su registro de tratamientos. No somos juristas: haga validar su dispositivo por su asesoría.
En Estados Unidos, la solicitud comercial por mensaje se rige por la CAN-SPAM Act para el correo y por la TCPA para el mensaje telefónico, ambas aplicadas por la FTC y la FCC; la mensajería se les asimila por analogía e impone la misma exigencia de consentimiento y de baja sencilla. Como Telegram no impone ventana ni categoría de mensaje, el límite lo marca el consentimiento: la suscripción al canal hace sus veces. Suscripciones y bajas se conservan y se pueden exportar. No somos juristas: haga validar su dispositivo por su asesoría antes de cualquier campaña.
El bot y el canal están en servicio en veinticuatro horas, y la bandeja compartida es utilizable de inmediato. Los comandos automatizados requieren de una a dos semanas según su complejidad: hay que inventariar las consultas frecuentes, redactar las respuestas y probarlas con casos reales antes de la apertura.
Su canal de Telegram operativo en 4 fases
De la creación del bot al primer envío en su canal, un recorrido marcado y un único interlocutor.
Plazo habitual: bot y canal en servicio en 24 h, primeros comandos automatizados en una o dos semanas según su complejidad.