Sparrow Telegram relie votre bot et vos canaux à une boîte de réception partagée par vos équipes : vous diffusez à tous vos abonnés sans limite de fenêtre, les demandes courantes se règlent seules, et chaque conversation privée reste attachée au contact dans votre CRM.
Cliquez sur un cas d'usage pour découvrir en détail comment Sparrow Telegram l'active pour votre entreprise.
C'est la particularité de Telegram : un canal diffuse à tous ses abonnés, aussi souvent que vous le décidez, sans fenêtre de réponse ni catégorie de message imposée. L'abonnement est explicite et le désabonnement se fait en un geste — vous parlez donc à une audience qui a demandé à vous lire.
Sur Telegram, l'automatisation est native : votre bot expose des commandes — /catalogue, /commande, /conseiller — et un menu de boutons. Suivi de commande, disponibilité, horaires : la réponse arrive en une seconde, à toute heure, et la main passe à un agent dès que la demande sort du cadre.
Un abonné qui écrit à votre bot ouvre une conversation privée. Elle tombe dans la boîte commune, attribuée, étiquetée et suivie, avec l'historique complet du contact — et sans fenêtre de vingt-quatre heures qui viendrait couper l'échange.
Une requête HTTP suffit pour publier sur un canal ou écrire à un abonné : confirmation de commande, avis d'expédition, alerte de supervision. Les messages entrants vous sont renvoyés par webhook, ce qui permet à votre application de répondre elle-même.
Chaque publication porte son nombre de vues et de clics, chaque conversation son délai de première réponse et son issue. Vous voyez donc quelles publications font grandir le canal, lesquelles font partir des abonnés, et quelles demandes mériteraient une commande dédiée.
Un même canal, trois formats qui ne servent pas la même chose : le canal diffuse sans retour, le groupe fait discuter entre eux, le bot tient la conversation privée.
Nouveautés, promotions, annonces : un message à tous vos abonnés, aussi souvent que vous le décidez.
Sans limite de fréquenceSuivi de commande, disponibilité, horaires : des commandes et des boutons qui répondent en une seconde.
Disponible 24 h/24Questions, réclamations et conseils traités par vos agents depuis une boîte partagée.
Sans fenêtre de réponseVos clients ou vos revendeurs échangent entre eux, avec votre modération et vos règles.
Jusqu'à 200 000 membresCommande enregistrée, colis expédié, retrait disponible : déclenché par votre application.
Par APICatalogue, facture, notice, archive : jusqu'à 2 Go par fichier, sans service de dépôt externe.
Fichiers jusqu'à 2 GoUne question à votre audience, un résultat immédiat et public ou anonyme.
Résultat en directSupervision, incident, astreinte : le canal interne qui prévient vos équipes en premier.
Usage interneCode à usage unique remis dans la conversation, pour les comptes déjà liés à votre bot.
Sur compte liéLa boîte partagée, les canaux, les bots et l'API dans un même abonnement, sans outil supplémentaire à brancher.
Un message à tous vos abonnés, sans limite de fréquence ni fenêtre de réponse. Publication programmée, épinglée, modifiable après envoi, avec compteur de vues.
Commandes, claviers de boutons et formulaires guidés. Les demandes courantes se règlent seules et la main passe à un agent dès que c'est nécessaire.
Les conversations privées dans un seul écran, attribuées, étiquetées et suivies. Notes internes, mentions entre collègues et transfert sans perte du fil.
Jusqu'à 2 Go par document : catalogue, facture, notice, archive. Pas de service de dépôt à côté, pas de lien qui expire.
Abonnés, croissance, départs, vues et clics par publication. Export CSV, rapport hebdomadaire, remontée par API.
Vos applications publient et répondent sans passer par l'interface. Jeton par application, environnement de test, exemples dans les principaux langages.
Aucune bibliothèque propriétaire à installer. L'API REST s'appelle depuis n'importe quel langage, et la boîte partagée reste disponible pour les échanges tenus par vos agents.
POST /api/v1/login avec vos identifiants renvoie un jeton
(api_token) que vous placez ensuite dans l'en-tête
Authorization: Bearer {api_token} de chaque envoi.
Un compte peut porter plusieurs applications, chacune avec son jeton :
les statistiques restent séparées, application par application.
| Opération | Méthode | URL |
|---|---|---|
| Obtenir un jeton | POST | https://app.sparrowmessage.com/api/v1/login |
| Envoyer un message | POST | https://app.sparrowmessage.com/api/v1/telegram/send/one |
| Recevoir un message | POST entrant | https://votre-site.ma/sparrow/webhook |
| Statut d'un message | POST | https://app.sparrowmessage.com/api/v1/telegram/status |
| Statut d'une liste | POST | https://app.sparrowmessage.com/api/v1/telegram/status/bulk |
SEMS
Amplitude RH
1 — Obtenir le jeton, puis envoyer un message.
<?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' => '[email protected]',
'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";
Envoi unitaire, puis envoi en masse.
import requests
base = 'https://app.sparrowmessage.com/api/v1'
# — Authentification
jeton = requests.post(f'{base}/login', json={
'email': '[email protected]',
'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 ou plus récent : fetch est natif.
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: '[email protected]',
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 ou plus récent.
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 = "[email protected]",
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 ou plus récent, client HTTP natif.
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":"[email protected]","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());
À copier tel quel dans 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":"[email protected]","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"]}'
Toutes les réponses portent un champ code valant OK ou
KO. En cas d'OK, result — ou results
pour les appels en masse — porte le détail ; en cas de KO,
error en donne la raison.
Documentation complète et bac à sable fournis à l'ouverture du compte.
Des organisations qui joignent chaque mois leurs clients, leurs fournisseurs, leurs collaborateurs et leurs adhérents.

Communication collaborateurs, fournisseurs et clients

Communication clients et collaborateurs

Communication fournisseurs

Communication clients

Communication clients

Communication adhérents

Communication adhérents

Communication clients et collaborateurs

Communication membres et partenaires

Communication candidats et entreprises

Communication clients et partenaires

Communication partenaires et donateurs

Communication candidats et entreprises

Communication clients et collaborateurs

Communication étudiants et partenaires

Communication clients

Communication professionnels du tourisme

Communication fournisseurs
Canal de nouveautés, suivi de commande par le bot, conseil dans la conversation privée.
Alertes de compte, suivi d'un dossier, envoi d'attestations et de relevés en pièce jointe.
Canal d'annonces aux familles, emplois du temps, notices et supports de cours volumineux.
Canal des nouveaux biens, plans et dossiers complets envoyés en un fichier.
Avis de livraison par le bot, créneau confirmé en un bouton, réclamation traitée en privé.
Carte du jour sur le canal, réservation par le bot, confirmation et rappel de la table.
Canal d'information aux adhérents, groupe de discussion, convocations et comptes rendus.
Canal interne d'alertes de supervision, astreinte prévenue en premier, journaux joints.
Telegram ne se facture pas au message comme un SMS : le coût dépend de la conversation, du nombre d'agents et de ce que vous automatisez. Nous établissons donc une proposition sur mesure, après un échange de trente minutes.
Le nombre de conversations ouvertes chaque mois, et la part qui se règle sans intervention humaine. C'est le premier déterminant du coût.
Combien de personnes se connectent à la boîte partagée, et selon quels horaires. Un agent supplémentaire s'ajoute à tout moment.
Parcours guidés, connexion à votre catalogue, intégration CRM ou ERP : la mise en place se chiffre une fois, l'exploitation ensuite.
Décrivez-nous votre volume actuel et vos demandes les plus fréquentes. Nous revenons vers vous avec une proposition chiffrée et un calendrier de mise en route, sans engagement.
Le canal diffuse : vous publiez, vos abonnés lisent, ils ne répondent pas. Le groupe fait discuter : les membres se parlent entre eux, jusqu'à deux cent mille personnes, sous votre modération. Le bot tient la conversation privée : un abonné lui écrit, il répond seul ou passe la main à un agent. La plupart des entreprises utilisent les trois — le canal pour annoncer, le bot pour servir, le groupe pour animer une communauté.
Non, et c'est la principale différence. Telegram n'impose ni fenêtre de réponse, ni catégorie de message, ni modèle à faire approuver. Vous pouvez écrire à un abonné qui vous a écrit il y a six mois, et diffuser sur votre canal aussi souvent que vous l'estimez utile. La seule limite est celle du bon sens commercial : un canal trop bavard perd ses abonnés, et le désabonnement se fait en un geste.
Oui, comme pour toute messagerie. Telegram est très répandu dans certains pays et milieux professionnels, beaucoup moins dans d'autres : c'est un canal à ouvrir quand votre audience y est déjà, pas à imposer. Nous regardons ensemble ce que vaut votre base avant de vous le conseiller — et si le compte n'y est pas, le SMS ou WhatsApp reste le canal de premier recours.
Un canal ne se remplit pas tout seul : il se nourrit de vos autres points de contact. Lien dans vos e-mails et vos SMS, QR code en boutique et sur vos emballages, bouton sur votre site, mention dans vos publications sociales. Un canal public est aussi trouvable dans la recherche Telegram. Nous mettons ces relais en place avec vous à la phase quatre.
Jusqu'à 2 Go par fichier, ce qu'aucun autre canal de cette liste ne permet. Catalogue en haute définition, notice technique, archive de factures, vidéo de démonstration : le document part dans la conversation, sans service de dépôt à côté ni lien qui expire au bout de sept jours.
Oui, c'est précisément l'objet de la boîte partagée. Chaque conversation est attribuée à un agent, visible des autres, et ne peut pas recevoir deux réponses concurrentes. Le transfert se fait en un clic, avec les notes internes, et l'historique reste attaché au contact quel que soit l'agent qui a répondu.
Oui, et c'est utile plus souvent qu'on ne le croit : une erreur de prix, une date fausse, un lien cassé se corrigent dans la publication d'origine, pour tous les abonnés à la fois. La suppression est également possible, des deux côtés de la conversation.
Oui, par l'API REST et les webhooks. Chaque message entrant peut être poussé vers votre système, et votre système peut écrire dans la conversation ou publier sur le canal. Des connecteurs existent pour les CRM et les plateformes e-commerce les plus répandus ; pour un outil interne, l'intégration se fait par API en quelques jours.
Oui, avec l'historique complet attaché au contact : un client qui revient six mois plus tard est reconnu, et l'agent voit ce qui s'est dit. La durée de conservation est paramétrable selon votre politique de données, et l'export est disponible à tout moment.
Au Maroc, le traitement des données personnelles relève de la loi 09-08 et de la CNDP : les conversations et la liste des abonnés de votre canal contiennent des données personnelles et doivent figurer dans votre déclaration. Telegram n'imposant pas de fenêtre ni de catégorie de message, c'est le consentement qui fait la limite : l'abonnement au canal en tient lieu, et le désabonnement doit rester immédiat. Abonnements, retraits de consentement et demandes de suppression sont conservés et exportables. Nous ne sommes pas juristes : faites valider votre dispositif et votre déclaration CNDP par votre conseil.
Le RGPD s'applique aux conversations Telegram comme à tout traitement de données personnelles : base légale, information du client, durée de conservation et droit à l'effacement. Telegram n'imposant pas de fenêtre ni de catégorie de message, c'est le consentement qui fait la limite : l'abonnement au canal en tient lieu, et le désabonnement doit rester immédiat. Abonnements, retraits de consentement et demandes de suppression sont conservés et exportables, de quoi alimenter votre registre des traitements. Nous ne sommes pas juristes : faites valider votre dispositif par votre conseil.
Aux États-Unis, la sollicitation commerciale par message relève du CAN-SPAM Act pour l'e-mail et du TCPA pour le message téléphonique, tous deux appliqués par la FTC et la FCC ; la messagerie s'y rattache par analogie et impose la même exigence de consentement et de désabonnement simple. Telegram n'imposant pas de fenêtre ni de catégorie de message, c'est le consentement qui fait la limite : l'abonnement au canal en tient lieu. Abonnements et désabonnements sont conservés et exportables. Nous ne sommes pas juristes : faites valider votre dispositif par votre conseil avant toute campagne.
Le bot et le canal sont en service sous vingt-quatre heures, et la boîte partagée utilisable immédiatement. Les commandes automatisées demandent une à deux semaines selon leur complexité : il faut recenser les demandes fréquentes, écrire les réponses, puis les éprouver sur des cas réels avant l'ouverture.
Votre canal Telegram opérationnel en 4 phases
De la création du bot au premier envoi sur votre canal, un parcours balisé et un interlocuteur unique.
Délai courant : bot et canal en service sous 24 h, premières commandes automatisées sous une à deux semaines selon leur complexité.