Sparrow Messenger relie votre page Facebook à une boîte de réception partagée par vos équipes : les demandes courantes trouvent leur réponse toutes seules, les autres arrivent chez la bonne personne, et tout l'historique reste attaché au contact dans votre CRM.
Cliquez sur un cas d'usage pour découvrir en détail comment Sparrow Messenger l'active pour votre entreprise.
Les messages envoyés à votre page n'arrivent plus dans le téléphone d'une seule personne. Ils tombent dans une boîte commune où chaque conversation est attribuée, étiquetée et suivie — avec l'historique complet du contact sous les yeux de l'agent.
Horaires, adresse, suivi de commande, disponibilité d'un article : ces demandes forment l'essentiel du volume et n'apportent rien à vos équipes. Un parcours guidé y répond immédiatement, à toute heure, et passe la main à un agent dès que la question sort du cadre.
Une publicité Facebook ou Instagram qui ouvre Messenger vous donne un contact identifié dès le premier clic : pas de formulaire à remplir, pas d'adresse mail erronée. La conversation démarre sur le produit vu dans l'annonce, et vous savez de quelle campagne elle provient.
Une requête HTTP suffit pour poster un message dans une conversation ouverte : confirmation de commande, avis d'expédition, rappel de rendez-vous. Les messages entrants vous sont renvoyés par webhook, ce qui permet à votre application de répondre elle-même.
Chaque conversation porte son délai de première réponse, son temps de résolution, son agent et son étiquette. Vous voyez donc où le volume se concentre, quelles heures sont sous-couvertes et quelles demandes mériteraient d'être automatisées.
Un même canal, des règles qui diffèrent : dans les vingt-quatre heures qui suivent un message du client, vous écrivez librement ; au-delà, seules certaines catégories de messages restent autorisées par Meta.
Questions, réclamations et demandes d'information, traitées par vos agents depuis une boîte partagée.
Fenêtre de 24 heuresHoraires, adresse, suivi de commande : un parcours guidé répond sans mobiliser personne.
Disponible 24 h/24L'annonce ouvre une conversation au lieu d'une page de destination, et l'origine reste attachée au contact.
Origine de campagne conservéeCommande enregistrée, colis expédié, retrait disponible : déclenché par votre application.
Étiquette post-achatConfirmation, rappel la veille, report proposé en un bouton.
Étiquette événement confirméChangement de mot de passe, mise à jour d'un dossier, expiration d'un document.
Étiquette compteLe client s'abonne à vos nouveautés en un clic, et reçoit vos messages selon la fréquence qu'il a acceptée.
Sur abonnement expliciteCatalogue parcouru dans la conversation, panier constitué, paiement conclu par lien.
Carrousels et boutonsUn commentaire sous une publication reçoit une réponse publique et un message privé.
Public et privéLa boîte partagée, l'automatisation et l'API dans un même abonnement, sans outil supplémentaire à brancher.
Toutes les conversations de la page dans un seul écran, attribuées, étiquetées et suivies. Notes internes, mentions entre collègues et transfert sans perte du fil.
Menu persistant, brise-glace, réponses rapides et boutons. Les demandes courantes se règlent seules et la main passe à un agent dès que c'est nécessaire.
Le profil Messenger, l'historique des conversations et les données de votre CRM sur le même écran. L'agent sait à qui il parle avant de répondre.
La plateforme affiche le temps restant pour répondre librement et propose l'étiquette adaptée quand la fenêtre est fermée. Aucune règle Meta enfreinte par inadvertance.
Délai de première réponse, temps de résolution, part automatisée, origine du contact. Export CSV, rapport hebdomadaire, remontée par API.
Vos applications envoient et reçoivent des messages 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/messenger/send/one |
| Envoyer en masse | POST | https://app.sparrowmessage.com/api/v1/messenger/send/bulk |
| Statut d'un message | POST | https://app.sparrowmessage.com/api/v1/messenger/status |
| Statut d'une liste | POST | https://app.sparrowmessage.com/api/v1/messenger/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/messenger/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}/messenger/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}/messenger/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}/messenger/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}/messenger/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}/messenger/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 + "/messenger/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/messenger/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. Envoyer en masse
curl -X POST https://app.sparrowmessage.com/api/v1/messenger/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/messenger/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/messenger/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
Disponibilité d'un article, suivi de commande, avis de retrait en magasin.
Suivi d'un dossier, prise de rendez-vous en agence, réponse aux questions courantes.
Renseignements sur les inscriptions, dates de rentrée, réponse aux familles.
Qualification des demandes, prise de rendez-vous de visite, relance des prospects.
Suivi de colis, créneau de livraison, réclamation traitée dans la conversation.
Réservation, carte du jour, confirmation et rappel de la table.
Renseignements aux adhérents, inscriptions aux événements, réponses aux demandes.
Prise de rendez-vous, rappel de consultation, réponse aux questions administratives.
Messenger 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.
Dès qu'un client écrit à votre page, vous disposez de vingt-quatre heures pour lui répondre ce que vous voulez : texte, image, bouton, carrousel. Chaque nouveau message de sa part fait repartir le délai. Passé ce délai sans réponse de sa part, l'échange libre s'arrête : seules certaines catégories de messages restent autorisées. La plateforme affiche le temps restant sur chaque conversation, vos agents n'ont donc pas à le calculer.
Meta autorise trois catégories de messages hors fenêtre : la mise à jour après achat (commande expédiée, retrait disponible), la mise à jour de compte (changement de mot de passe, dossier mis à jour) et le rappel d'un événement que le client a confirmé (rendez-vous, réservation). Ces messages ne peuvent pas être promotionnels. Pour du marketing, il faut passer par les notifications récurrentes, auxquelles le client s'abonne explicitement.
Oui. Messenger est adossé à une page : c'est elle qui reçoit les messages et qui apparaît comme interlocuteur. Si votre page existe déjà, la connexion prend quelques minutes. Sinon, nous la créons avec vous. Un compte Meta Business est également nécessaire pour rattacher la page et les accès.
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.
C'est le réglage le plus important à poser au départ. L'automatisation traite ce qui est répétitif et vérifiable : horaires, suivi de commande, disponibilité. Dès qu'une demande sort de ce cadre, ou que le client demande un conseiller, la conversation bascule vers un agent avec tout ce qui a déjà été échangé. Nous conseillons aussi de couper l'automatisation aux heures où vos équipes sont disponibles.
Une annonce Facebook ou Instagram dont le bouton ouvre une conversation Messenger au lieu d'une page de destination. Le contact est identifié dès le premier clic, sans formulaire ni adresse mail à saisir, et l'origine de campagne reste attachée à la conversation. Vous savez donc quelle annonce a produit quelle demande, et le commercial reprend la discussion là où le parcours automatisé l'a laissée.
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. 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.
Il n'y a pas de plafond technique côté plateforme. La limite pratique tient à votre effectif et à la part de demandes automatisées : un parcours bien réglé absorbe couramment les deux tiers du volume, ce qui permet à une petite équipe de tenir plusieurs milliers de conversations par mois.
Au Maroc, le traitement des données personnelles relève de la loi 09-08 et de la CNDP : les conversations Messenger contiennent des données personnelles et doivent figurer dans votre déclaration. S'y ajoutent les règles de Meta, qui interdisent le message promotionnel hors fenêtre de vingt-quatre heures et hors notification récurrente acceptée. Les abonnements, les retraits de consentement et les 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 Messenger comme à tout traitement de données personnelles : base légale, information du client, durée de conservation et droit à l'effacement. S'y ajoutent les règles de Meta, qui interdisent le message promotionnel hors fenêtre de vingt-quatre heures et hors notification récurrente acceptée. Les abonnements, les retraits de consentement et les 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. S'y ajoutent les règles de Meta, qui interdisent le message promotionnel hors fenêtre de vingt-quatre heures et hors notification récurrente acceptée. Les abonnements et les désabonnements sont conservés et exportables. Nous ne sommes pas juristes : faites valider votre dispositif par votre conseil avant toute campagne.
La page est connectée et la boîte partagée utilisable sous vingt-quatre heures. Les parcours automatisés 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 Messenger opérationnel en 4 phases
De la connexion de votre page au premier parcours automatisé, un parcours balisé et un interlocuteur unique.
Délai courant : page connectée sous 24 h, premiers parcours automatisés en service sous une à deux semaines selon leur complexité.