Sparrow Instagram conecta su cuenta profesional a una bandeja de entrada compartida por sus equipos: mensajes directos, respuestas a historias y comentarios llegan al mismo lugar, 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 Instagram lo activa para su empresa.
En Instagram, una consulta comercial toma tres formas: un mensaje directo, una respuesta a una historia, un comentario bajo una publicación. Aquí llegan a la misma bandeja, asignadas, etiquetadas y seguidas, con el historial completo del contacto.
Una historia bien vista produce decenas de respuestas que se pierden en la bandeja del teléfono. Aquí, cada una abre una conversación vinculada a la publicación que la originó.
En Instagram, la venta se cierra a menudo en el mensaje privado: el cliente pregunta una talla, un precio, una disponibilidad, y espera una respuesta inmediata. Sus agentes envían las imágenes, comprueban el stock y transmiten el enlace de pedido sin salir de la conversación.
Precio, tallas disponibles, plazo de entrega, dirección de la tienda: estas preguntas forman la mayor parte del volumen. Un recorrido guiado responde de inmediato y pasa el relevo en cuanto la consulta sale del marco.
Cada conversación lleva su tiempo de primera respuesta, su origen —mensaje, historia, comentario, anuncio— y su desenlace. Ve así qué publicaciones generan solicitudes, qué horas están mal cubiertas y qué preguntas merecerían una respuesta automática.
Un mismo canal, reglas que difieren: en las veinticuatro horas siguientes a un mensaje del cliente, usted escribe libremente; pasado ese plazo, solo algunas categorías de mensajes siguen permitidas. La plataforma muestra el tiempo restante y propone la etiqueta adecuada.
Preguntas, reclamaciones y solicitudes de precio atendidas por sus agentes desde una bandeja compartida.
Ventana de 24 horasCada reacción a una historia abre una conversación vinculada a la publicación que la originó.
Historia vinculadaUn comentario recibe una respuesta pública y un mensaje privado para continuar.
Público y privadoPrecio, tallas, plazos, dirección: un recorrido guiado responde sin ocupar a nadie.
Disponible 24 hImágenes, stock y enlace de pago transmitidos en la conversación, hasta el pedido.
Catálogo integradoEl anuncio abre un mensaje privado en lugar de una página de destino, y el origen sigue vinculado al contacto.
Origen de campaña conservadoUn cliente que menciona su cuenta aparece en la bandeja; usted le da las gracias o lo recomparte.
Vigilancia integradaPasadas las veinticuatro horas, un agente puede retomar la conversación durante siete días.
Etiqueta agente humanoTras la compra, una petición de opinión enviada dentro de la ventana permitida, sin insistencias.
Dentro de la ventana permitidaLa bandeja compartida, la automatización y la API en una misma suscripción, sin ninguna herramienta adicional que conectar.
Mensajes directos, respuestas a historias, menciones y comentarios en una sola pantalla, asignados, etiquetados y seguidos. Notas internas y transferencia sin perder el hilo.
Preguntas de inicio, respuestas rápidas y respuestas a palabras clave de un comentario. Las consultas habituales se resuelven solas y el relevo pasa a un agente en cuanto hace falta.
El perfil de Instagram, el historial de conversaciones y los datos de su CRM en la misma pantalla. El agente sabe con quién habla antes de responder.
La plataforma muestra el tiempo restante para responder libremente y avisa cuando el relevo por un agente humano se vuelve necesario. Ninguna regla de Meta se infringe por descuido.
Tiempo de primera respuesta, origen del contacto, publicaciones que más solicitudes generan. Exportación CSV, informe semanal, envío por API.
Sus aplicaciones envían y reciben mensajes 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/instagram/send/one |
| Recibir un mensaje | POST entrante | https://su-sitio.com/sparrow/webhook |
| Estado de un mensaje | POST | https://app.sparrowmessage.com/api/v1/instagram/status |
| Estado de una lista | POST | https://app.sparrowmessage.com/api/v1/instagram/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/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";
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}/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 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}/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 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 + "/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());
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/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. Recevoir les messages entrants
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"]}'
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
Tallas disponibles, asesoramiento de producto, pedido cerrado en la conversación.
Precio, stock, disponibilidad en tienda, seguimiento del pedido.
Reserva desde una historia, menú del día, confirmación de la mesa.
Reserva de cita, servicios y tarifas, recordatorio la víspera.
Calificación de las solicitudes surgidas de las publicaciones, reserva de cita de visita.
Información sobre los programas, fechas de inicio de curso, matrículas.
Horarios, abonos, inscripciones a clases y a eventos.
Pedidos a medida, plazos de fabricación, envío de imágenes.
Instagram 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.
Sí. La mensajería profesional de Instagram solo está abierta a las cuentas profesionales o de creador, vinculadas a una página de Facebook y a una cuenta de Meta Business. El cambio se hace desde los ajustes de la aplicación y no le hace perder ni sus publicaciones ni sus seguidores.
En cuanto un cliente le escribe —mensaje directo, respuesta a una historia o comentario—, dispone de veinticuatro horas para responderle libremente. Cada nuevo mensaje suyo reinicia el plazo. Pasado ese plazo, el intercambio libre se detiene. La plataforma muestra el tiempo restante en cada conversación, así que sus agentes no tienen que calcularlo.
Instagram contempla un relevo por parte de un agente humano: si la solicitud no ha podido atenderse dentro de la ventana, una persona de su equipo puede continuar la conversación durante siete días. Este relevo sirve para resolver una solicitud en curso, no para enviar un mensaje comercial. Para promoción, hay que esperar a que el cliente vuelva a escribir.
Sí, y vinculadas a la historia correspondiente: el agente ve a qué reacciona el cliente antes de responder. Eso marca la diferencia en Instagram, donde la mayor parte del volumen comercial procede de las historias.
Sí. Un comentario que contenga una palabra clave definida por usted —«precio», «disponible», «enlace»— desencadena una respuesta pública bajo la publicación y un mensaje privado para continuar. Es la manera más directa de convertir la interacción en conversación.
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 el uso más habitual. Sus agentes envían las imágenes, comprueban el stock desde su catálogo y transmiten un enlace de pedido o de pago en el mensaje. El pedido se vuelca después en su sistema de gestión, con el origen 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. 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 de Instagram contienen datos personales y deben figurar en su declaración. A ello se suman las reglas de Meta, que limitan el intercambio libre a veinticuatro horas y reservan la reanudación posterior a un agente humano, para resolver una solicitud en curso. Las retiradas de consentimiento y las 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 Instagram como a todo tratamiento de datos personales: base legal, información al cliente, plazo de conservación y derecho de supresión. A ello se suman las reglas de Meta, que limitan el intercambio libre a veinticuatro horas y reservan la reanudación posterior a un agente humano, para resolver una solicitud en curso. Las retiradas de consentimiento y las 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. A ello se suman las reglas de Meta, que limitan el intercambio libre a veinticuatro horas y reservan la reanudación posterior a un agente humano. Las bajas se conservan y se pueden exportar. No somos juristas: haga validar su dispositivo por su asesoría antes de cualquier campaña.
La cuenta queda conectada y la bandeja compartida utilizable en veinticuatro horas. Los recorridos 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 Instagram operativo en 4 fases
De la conexión de su cuenta al primer recorrido automatizado, un recorrido marcado y un único interlocutor.
Plazo habitual: cuenta conectada en 24 h, primeros recorridos automatizados en servicio en una o dos semanas según su complejidad.