Sparrow Instagram relie votre compte professionnel à une boîte de réception partagée par vos équipes : messages directs, réponses aux stories et commentaires arrivent au même endroit, les demandes courantes trouvent leur réponse toutes seules, et l'historique reste attaché au contact dans votre CRM.
Cliquez sur un cas d'usage pour découvrir en détail comment Sparrow Instagram l'active pour votre entreprise.
Sur Instagram, une demande commerciale prend trois formes : un message direct, une réponse à une story, un commentaire sous une publication. Elles arrivent ici dans la même boîte, attribuées à un agent, étiquetées et suivies — avec l'historique complet du contact sous les yeux.
Une story bien vue produit des dizaines de réponses qui se perdent dans la boîte du téléphone. Ici, chacune ouvre une conversation identifiée avec la story qui l'a déclenchée. Même chose pour les commentaires : une réponse publique sous la publication, et un message privé pour poursuivre.
Sur Instagram, la vente se conclut souvent dans le message privé : le client demande une taille, un prix, une disponibilité, et attend une réponse immédiate. Vos agents envoient les visuels, vérifient le stock et transmettent un lien de paiement, sans changer d'outil.
Prix, tailles disponibles, délai de livraison, adresse de la boutique : ces questions forment l'essentiel du volume. Un parcours guidé y répond immédiatement et passe la main dès que la demande sort du cadre. Vos applications, elles, écrivent directement par API.
Chaque conversation porte son délai de première réponse, son origine — message, story, commentaire, publicité — et son issue. Vous voyez donc quelles publications produisent des demandes, quelles heures sont sous-couvertes et quelles questions mériteraient une réponse automatique.
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à, seul un agent humain peut reprendre la conversation, et pour une durée limitée.
Questions, réclamations et demandes de prix traitées par vos agents depuis une boîte partagée.
Fenêtre de 24 heuresChaque réaction à une story ouvre une conversation rattachée à la publication qui l'a déclenchée.
Story rattachéeUn commentaire reçoit une réponse publique et un message privé pour poursuivre.
Public et privéPrix, tailles, délais, adresse : un parcours guidé répond sans mobiliser personne.
Disponible 24 h/24Visuels, stock et lien de paiement transmis dans la conversation, jusqu'à la commande.
Catalogue intégréL'annonce ouvre un message privé au lieu d'une page de destination, et l'origine reste attachée au contact.
Origine de campagne conservéeUn client qui mentionne votre compte apparaît dans la boîte ; vous le remerciez ou repartagez.
Veille intégréeAu-delà des vingt-quatre heures, un agent peut reprendre la conversation pendant sept jours.
Étiquette agent humainAprès achat, une demande d'avis envoyée dans la fenêtre autorisée, sans relance intempestive.
Dans la fenêtre autoriséeLa boîte partagée, l'automatisation et l'API dans un même abonnement, sans outil supplémentaire à brancher.
Messages directs, réponses aux stories, mentions et commentaires dans un seul écran, attribués, étiquetés et suivis. Notes internes et transfert sans perte du fil.
Brise-glace, réponses rapides et réponses aux mots-clés d'un commentaire. Les demandes courantes se règlent seules et la main passe à un agent dès que c'est nécessaire.
Le profil Instagram, 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 signale quand la reprise par un agent humain devient nécessaire. Aucune règle Meta enfreinte par inadvertance.
Délai de première réponse, origine du contact, publications les plus génératrices de demandes. 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/instagram/send/one |
| Envoyer en masse | POST | https://app.sparrowmessage.com/api/v1/instagram/send/bulk |
| Statut d'un message | POST | https://app.sparrowmessage.com/api/v1/instagram/status |
| Statut d'une liste | POST | https://app.sparrowmessage.com/api/v1/instagram/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/instagram/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}/instagram/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}/instagram/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}/instagram/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}/instagram/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}/instagram/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 + "/instagram/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/instagram/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/instagram/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/instagram/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/instagram/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
Tailles disponibles, conseils produit, commande conclue dans la conversation.
Prix, stock, disponibilité en magasin, suivi de commande.
Réservation depuis une story, carte du jour, confirmation de la table.
Prise de rendez-vous, prestations et tarifs, rappel la veille.
Qualification des demandes issues des publications, prise de rendez-vous de visite.
Renseignements sur les programmes, dates de rentrée, inscriptions.
Horaires, abonnements, inscriptions aux cours et aux événements.
Commandes sur mesure, délais de fabrication, envoi de visuels.
Instagram 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.
Oui. La messagerie professionnelle d'Instagram n'est ouverte qu'aux comptes professionnels ou créateurs, rattachés à une page Facebook et à un compte Meta Business. Le passage se fait depuis les réglages de l'application et prend quelques minutes ; il ne change rien à vos publications ni à vos abonnés, et donne accès aux statistiques du compte.
Dès qu'un client vous écrit — message direct, réponse à une story ou commentaire — vous disposez de vingt-quatre heures pour lui répondre librement. Chaque nouveau message de sa part fait repartir le délai. Passé ce délai, l'échange libre s'arrête. La plateforme affiche le temps restant sur chaque conversation, vos agents n'ont donc pas à le calculer.
Instagram prévoit une reprise par un agent humain : si la demande n'a pas pu être traitée dans la fenêtre, une personne de votre équipe peut poursuivre la conversation pendant sept jours. Cette reprise sert à résoudre une demande en cours, pas à envoyer un message commercial. Pour de la promotion, il faut attendre que le client reprenne contact.
Oui, et rattachées à la story concernée : l'agent voit ce à quoi le client réagit avant de répondre. C'est ce qui fait la différence sur Instagram, où l'essentiel du volume commercial vient des stories plutôt que des messages spontanés. Les mentions de votre compte en story remontent également dans la boîte.
Oui. Un commentaire contenant un mot-clé que vous avez défini — « prix », « dispo », « lien » — déclenche une réponse publique sous la publication et un message privé pour poursuivre. C'est le mécanisme le plus efficace pour transformer l'audience d'une publication en conversations, sans que personne ait à surveiller les commentaires.
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 l'usage le plus courant. Vos agents envoient les visuels, vérifient le stock depuis votre catalogue et transmettent un lien de commande ou de paiement dans le message. La commande remonte ensuite dans votre système de gestion, avec l'origine 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. 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 Instagram contiennent des données personnelles et doivent figurer dans votre déclaration. S'y ajoutent les règles de Meta, qui limitent l'échange libre à vingt-quatre heures et réservent la reprise ultérieure à un agent humain, pour résoudre une demande en cours. 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 Instagram 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 limitent l'échange libre à vingt-quatre heures et réservent la reprise ultérieure à un agent humain, pour résoudre une demande en cours. 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 limitent l'échange libre à vingt-quatre heures et réservent la reprise ultérieure à un agent humain. Les désabonnements sont conservés et exportables. Nous ne sommes pas juristes : faites valider votre dispositif par votre conseil avant toute campagne.
Le compte est connecté 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 Instagram opérationnel en 4 phases
De la connexion de votre compte au premier parcours automatisé, un parcours balisé et un interlocuteur unique.
Délai courant : compte connecté sous 24 h, premiers parcours automatisés en service sous une à deux semaines selon leur complexité.