Sparrow Messenger conecta su página de Facebook a una bandeja de entrada compartida por sus equipos: las consultas habituales se resuelven solas, las demás llegan a la persona adecuada, y todo el historial sigue vinculado al contacto en su CRM.
Haga clic en un caso de uso para descubrir en detalle cómo Sparrow Messenger lo activa para su empresa.
Los mensajes enviados a su página ya no llegan al teléfono de una sola persona. Caen en una bandeja común donde cada conversación se asigna, se etiqueta y se sigue, con el historial completo del contacto a la vista del agente.
Horarios, dirección, seguimiento de pedido, disponibilidad de un artículo: estas consultas forman la mayor parte del volumen y no aportan nada a sus equipos. Un recorrido guiado responde de inmediato, a cualquier hora, y pasa el relevo a un agente en cuanto la pregunta sale del marco.
Un anuncio de Facebook o Instagram que abre Messenger le da un contacto identificado desde el primer clic: sin formulario que rellenar, sin dirección de correo errónea. La conversación empieza donde termina el anuncio.
Basta una petición HTTP para publicar un mensaje en una conversación abierta: confirmación de pedido, aviso de expedición, recordatorio de cita. Los mensajes entrantes se le devuelven por webhook.
Cada conversación lleva su tiempo de primera respuesta, su tiempo de resolución, su agente y su etiqueta. Ve así dónde se concentra el volumen, qué horas están mal cubiertas y qué solicitudes merecerían automatizarse.
Un mismo canal, reglas que difieren: en las veinticuatro horas siguientes a un mensaje del cliente, usted escribe libremente; pasado ese plazo, solo un agente humano puede retomar la conversación, durante siete días, para resolver la solicitud en curso.
Preguntas, reclamaciones y peticiones de información, atendidas por sus agentes desde una bandeja compartida.
Ventana de 24 horasHorarios, dirección, seguimiento del pedido: un recorrido guiado responde sin ocupar a nadie.
Disponible 24 hEl anuncio abre una conversación en lugar de una página de destino, y el origen sigue vinculado al contacto.
Origen de campaña conservadoPedido registrado, paquete enviado, recogida disponible: lo dispara su aplicación.
Etiqueta posventaConfirmación, recordatorio la víspera, aplazamiento propuesto con un botón.
Etiqueta evento confirmadoCambio de contraseña, actualización de un expediente, caducidad de un documento.
Etiqueta cuentaEl cliente se suscribe a sus novedades con un clic y recibe sus mensajes con la frecuencia que ha aceptado.
Con suscripción expresaCatálogo recorrido en la conversación, carrito formado, pago cerrado mediante enlace.
Carruseles y botonesUn comentario bajo una publicación recibe una respuesta pública y un mensaje privado.
Público y privadoLa bandeja compartida, la automatización y la API en una misma suscripción, sin ninguna herramienta adicional que conectar.
Todas las conversaciones de la página en una sola pantalla, asignadas, etiquetadas y seguidas. Notas internas, menciones entre compañeros y transferencia sin perder el hilo.
Menú permanente, preguntas de inicio, respuestas rápidas y botones. Las consultas habituales se resuelven solas y el relevo pasa a un agente en cuanto hace falta.
El perfil de Messenger, 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 propone la etiqueta adecuada cuando la ventana está cerrada. Ninguna regla de Meta se infringe por descuido.
Tiempo de primera respuesta, tiempo de resolución, parte automatizada, origen del contacto. 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/messenger/send/one |
| Recibir un mensaje | POST entrante | https://su-sitio.com/sparrow/webhook |
| Estado de un mensaje | POST | https://app.sparrowmessage.com/api/v1/messenger/status |
| Estado de una lista | POST | https://app.sparrowmessage.com/api/v1/messenger/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/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";
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}/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 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}/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 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 + "/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());
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/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. Recevoir les messages entrants
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"]}'
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
Disponibilidad de un artículo, seguimiento del pedido, aviso de recogida en tienda.
Seguimiento de un expediente, reserva de cita en oficina, respuesta a las preguntas habituales.
Información sobre matrículas, fechas de inicio de curso, respuesta a las familias.
Calificación de las solicitudes, reserva de cita de visita, seguimiento de posibles clientes.
Seguimiento de paquete, franja de entrega, reclamación atendida en la conversación.
Reserva, menú del día, confirmación y recordatorio de la mesa.
Información a los socios, inscripciones a eventos, respuesta a las solicitudes.
Reserva de cita, recordatorio de consulta, respuesta a las cuestiones administrativas.
Messenger 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.
En cuanto un cliente escribe a su página, dispone de veinticuatro horas para responderle lo que quiera: texto, imagen, botón, carrusel. Cada nuevo mensaje suyo reinicia el plazo. Pasado ese plazo sin respuesta por su parte, el intercambio libre se detiene: solo algunas categorías de mensajes siguen permitidas. La plataforma muestra el tiempo restante en cada conversación, así que sus agentes no tienen que calcularlo.
Meta autoriza tres categorías de mensajes fuera de la ventana: la actualización tras la compra (pedido enviado, recogida disponible), la actualización de cuenta (cambio de contraseña, expediente actualizado) y el recordatorio de un evento que el cliente ha confirmado (cita, reserva). Estos mensajes no pueden ser promocionales. Para marketing hay que pasar por las notificaciones recurrentes, a las que el cliente se suscribe expresamente.
Sí. Messenger se apoya en una página: es ella la que recibe los mensajes y la que aparece como interlocutor. Si su página ya existe, la conexión lleva unos minutos. Si no, la creamos con usted durante la fase de definició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.
Es el ajuste más importante que hay que fijar al principio. La automatización trata lo repetitivo y verificable: horarios, seguimiento de pedido, disponibilidad. En cuanto una solicitud sale de ese marco, o el cliente pide un asesor, la conversación pasa a un agente con todo lo ya intercambiado. También recomendamos desactivar la automatización en las horas en que sus equipos están disponibles.
Un anuncio de Facebook o Instagram cuyo botón abre una conversación de Messenger en lugar de una página de destino. El contacto se identifica desde el primer clic, sin formulario ni dirección de correo que teclear, y el origen de campaña sigue vinculado a la conversación. Usted sabe qué anuncio produjo qué solicitud, y el comercial retoma la conversación donde la dejó el recorrido automatizado.
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.
No hay techo técnico por parte de la plataforma. El límite práctico depende de su plantilla y de la proporción de solicitudes automatizadas: un recorrido bien ajustado absorbe habitualmente dos tercios del volumen, lo que permite a un equipo pequeño sostener varios miles de conversaciones al mes.
En Marruecos, el tratamiento de datos personales se rige por la ley 09-08 y la CNDP: las conversaciones de Messenger contienen datos personales y deben figurar en su declaración. A ello se suman las reglas de Meta, que prohíben el mensaje promocional fuera de la ventana de veinticuatro horas y fuera de una notificación recurrente aceptada. Las suscripciones, 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 Messenger 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 prohíben el mensaje promocional fuera de la ventana de veinticuatro horas y fuera de una notificación recurrente aceptada. Las suscripciones, 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 prohíben el mensaje promocional fuera de la ventana de veinticuatro horas y fuera de una notificación recurrente aceptada. Las suscripciones y 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 página 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 Messenger operativo en 4 fases
De la conexión de su página al primer recorrido automatizado, un recorrido marcado y un único interlocutor.
Plazo habitual: página conectada en 24 h, primeros recorridos automatizados en servicio en una o dos semanas según su complejidad.