Sparrow SMS invia le tue campagne, i tuoi codici monouso e le tue notifiche verso tutti gli operatori: mittente a tuo nome, instradamento diretto, ricevute di consegna in tempo reale e integrazione con il tuo sistema informativo.
Clicca su un caso d'uso per scoprire in dettaglio come Sparrow SMS lo attiva per la tua azienda.
L'SMS viene aperto quasi sempre, e quasi subito: è il canale del messaggio breve e datato — una promozione che finisce domenica, l'apertura di un negozio, un promemoria di saldo. Componi il testo, scegli il segmento e programmi l'ora di invio.
Verifica di un numero, convalida di un pagamento, conferma di un ordine: questi messaggi devono partire all'istante. Passano da una coda prioritaria, indipendente dalle campagne di marketing.
L'SMS non presuppone né un'app installata, né una connessione dati, né un account aperto: raggiunge un telefono base come uno smartphone. È ciò che ne fa il canale dei promemoria di appuntamento, degli avvisi di consegna e delle convocazioni.
Basta una richiesta HTTP per inviare un SMS: il tuo sito, il tuo ERP o il tuo gestionale chiama l'API e il messaggio parte. L'autenticazione avviene tramite token, e ogni applicazione può avere il suo perché le statistiche restino separate.
L'SMS restituisce una ricevuta dell'operatore: consegnato, non consegnato, e il motivo del rifiuto. Sai quindi con precisione quali numeri hanno ricevuto il messaggio, quali non sono validi e quali non sono attivi — di che ripulire la base invio dopo invio.
Uno stesso canale, messaggi che non obbediscono alle stesse regole: il promozionale si pianifica e riporta una dicitura STOP, il transazionale parte all'istante e non la riporta.
Offerte, saldi, aperture e operazioni a tempo, indirizzate a un segmento scelto.
Dicitura STOP obbligatoriaConferma d'ordine, avviso di pagamento, cambio di stato: attivato dalla tua applicazione.
Coda prioritariaCodice monouso per convalidare un accesso, un pagamento o una modifica dei recapiti.
Consegna in pochi secondiConsegna, incidente, interruzione del servizio, informazione urgente da diffondere ampiamente.
Senza app necessariaAppuntamento, scadenza di pagamento, scadenza di un documento: inviato il giorno prima o qualche ora prima.
Invio programmatoUno stesso messaggio inviato a un'intera lista, in un'unica richiesta o dall'interfaccia web.
Fino a diverse centinaia di migliaiaBenvenuto, compleanno, sollecito al terzo giorno: una sequenza si attiva su un evento e prosegue da sola.
Attivato da un eventoI tuoi destinatari fuori dal Marocco, raggiunti dagli stessi collegamenti con gli operatori e dalla stessa interfaccia.
Tariffa per destinazioneI tuoi destinatari rispondono, e le loro risposte tornano nella campagna d'origine o via webhook.
Risposte collegate alla campagnaLa piattaforma, l'instradamento con gli operatori e l'API in un unico abbonamento, senza strumenti aggiuntivi da collegare.
I tuoi messaggi compaiono sotto la tua ragione sociale anziché con un numero anonimo. Ci occupiamo noi della registrazione presso gli operatori.
Collegamenti diretti, senza rivendita a catena: è ciò che tiene il tempo di consegna a pochi secondi e il tasso di rifiuto al minimo.
Importa le tue liste da un file o dal tuo CRM, deduplica, segmenta e lascia che la piattaforma escluda i numeri non validi e i disiscritti.
Scegli data e ora, oppure lascia che un evento attivi l'invio: promemoria il giorno prima, sollecito al terzo giorno, messaggio di compleanno.
Ogni numero porta il suo stato — consegnato, in attesa, respinto — e il relativo motivo. Esportazione CSV, webhook e risposte in arrivo collegate alla campagna.
Una richiesta HTTP e il messaggio parte. Token per applicazione, invio singolo o massivo, esempi nei principali linguaggi.
Nessuna libreria proprietaria da installare. L'API REST si chiama da qualsiasi linguaggio, e l'interfaccia web resta disponibile per gli invii manuali.
POST /api/v1/login con le tue credenziali restituisce un token
(api_token) che poi inserisci nell'intestazione
Authorization: Bearer {api_token} di ogni invio.
Un account può ospitare più applicazioni, ciascuna con il suo token:
le statistiche restano separate, applicazione per applicazione.
| Operazione | Metodo | URL |
|---|---|---|
| Ottenere un token | POST | https://app.sparrowmessage.com/api/v1/login |
| Invia un SMS | POST | https://app.sparrowmessage.com/api/v1/sms/send/one |
| Invio massivo | POST | https://app.sparrowmessage.com/api/v1/sms/send/bulk |
| Stato di un SMS | POST | https://app.sparrowmessage.com/api/v1/sms/status |
| Stato di una lista | POST | https://app.sparrowmessage.com/api/v1/sms/status/bulk |
SEMS
Amplitude HR
1 — Ottenere il token, poi inviare un SMS.
<?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 SMS
$ch = curl_init("$base/sms/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([
'phone' => '+2126XXXXXXXX',
'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' ? "SMS envoyé\n" : "Échec : {$reponse['error']}\n";
Invio singolo, poi invio massivo.
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 SMS
r = requests.post(f'{base}/sms/send/one', headers=entetes, json={
'phone': '+2126XXXXXXXX',
'text': 'Votre code de vérification est 385 214.',
'notifyurl': 'https://votre-site.ma/sparrow/statut',
}).json()
print('SMS envoyé' if r['code'] == 'OK' else f"Échec : {r['error']}")
# — Envoi en masse : une seule requête, plusieurs destinataires
requests.post(f'{base}/sms/send/bulk', headers=entetes, json={
'phones': ['+2126XXXXXXXX', '+2126YYYYYYYY'],
'text': 'Soldes : -20 % jusqu\'à dimanche. STOP au 36000',
})
# — Statut d'un envoi, à partir de l'identifiant renvoyé
statut = requests.post(f'{base}/sms/status', headers=entetes, json={
'message_id': '8f21c4',
}).json()
print(statut['result'])
Node 18 o successivo: fetch è 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 SMS
const reponse = await fetch(`${base}/sms/send/one`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
phone: '+2126XXXXXXXX',
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' ? 'SMS envoyé' : `Échec : ${reponse.error}`);
// — Envoi en masse
await fetch(`${base}/sms/send/bulk`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
phones: ['+2126XXXXXXXX', '+2126YYYYYYYY'],
text: 'Soldes : -20 % jusqu\'à dimanche. STOP au 36000',
}),
});
.NET 6 o successivo.
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 SMS
var envoi = await http.PostAsJsonAsync("sms/send/one", new {
phone = "+2126XXXXXXXX",
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" ? "SMS envoyé" : $"Échec : {resultat["error"]}");
// — Envoi en masse
await http.PostAsJsonAsync("sms/send/bulk", new {
phones = new[] { "+2126XXXXXXXX", "+2126YYYYYYYY" },
text = "Soldes : -20 % jusqu'à dimanche. STOP au 36000",
});
Java 11 o successivo, client 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 SMS
var envoi = HttpRequest.newBuilder(URI.create(base + "/sms/send/one"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer " + jeton)
.POST(HttpRequest.BodyPublishers.ofString("""
{"phone":"+2126XXXXXXXX",
"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());
Da copiare così com'è in un terminale.
# — 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 SMS
curl -X POST https://app.sparrowmessage.com/api/v1/sms/send/one \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"phone":"+2126XXXXXXXX",
"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/sms/send/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"phones":["+2126XXXXXXXX","+2126YYYYYYYY"],
"text":"Rappel : votre rendez-vous est demain a 14h30."}'
# — 4. Statut d'un envoi
curl -X POST https://app.sparrowmessage.com/api/v1/sms/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/sms/status/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"messages_id":["8f21c4","8f21c5"]}'
Tutte le risposte hanno un campo code pari a OK ou
KO. In caso di OK, result — oppure results
per le chiamate massive — riporta il dettaglio; in caso di KO,
error ne indica il motivo.
Documentazione completa e ambiente di prova forniti all'apertura dell'account.
Grandi aziende, istituzioni e amministrazioni, in Marocco e all'estero. Le stesse organizzazioni, qualunque sia il canale.

Comunicazione a collaboratori, fornitori e clienti

Comunicazione a clienti e collaboratori

Comunicazione a clienti e collaboratori

Comunicazione ai fornitori

Comunicazione a clienti e collaboratori

Comunicazione a candidati e aziende

Comunicazione a membri e partner

Comunicazione ai soci

Comunicazione a partner e donatori

Comunicazione ai clienti

Notifiche ai clienti dal CRM

Comunicazione ai clienti

Comunicazione a candidati e aziende

Comunicazione ai soci

Comunicazione a clienti e partner

Comunicazione ai fornitori

Comunicazione a studenti e partner

Comunicazione agli operatori turistici

Comunicazione ai clienti

Comunicazione ai soci

Comunicazione a clienti e utenti

Comunicazione a studenti e amministrazione

Comunicazione a studenti e amministrazione

Comunicazione a clienti e punti vendita

Comunicazione ai collaboratori

Comunicazione a clienti e potenziali clienti

Comunicazione a clienti e potenziali clienti

Comunicazione ai clienti

Comunicazione ai clienti

Comunicazione ai clienti

Notifiche e relazione con i clienti

Notifiche a clienti e fornitori

Notifiche e campagne ai clienti
Promozioni a tempo, conferma d'ordine, avviso di ritiro in negozio.
Codici di convalida delle operazioni, avvisi di scadenza, allerte di sicurezza.
Convocazioni agli esami, risultati disponibili, informazione immediata ai genitori.
Conferma della visita, promemoria dell'appuntamento, sollecito dei potenziali clienti.
Avviso di spedizione, fascia di consegna, codice di ritiro del pacco.
Convocazioni alle assemblee, promemoria delle quote, informazioni urgenti.
Istruzioni ai team sul campo, reperibilità, allerte di produzione.
Promemoria di appuntamento, referti disponibili, campagne di prevenzione.
Nessun abbonamento: acquisti un volume di SMS, valido senza scadenza. Il prezzo unitario cala per scaglioni, e l'ordine minimo è di 1 000 SMS.
Per iniziare, provare un canale o coprire invii occasionali.
Per campagne regolari e notifiche quotidiane.
Oltre 50 000 SMS per invio o al mese.
Bonifico bancario a E-solution, Casablanca. Fattura marocchina con ICE, IVA applicabile.
Fatturato da E-SOLUTION TECHNOLOGIES LLC, New York — EIN 32-0781906. Utile se la tua contabilità lavora in dollari, ovunque tu sia.
Le coordinate bancarie e il link di pagamento sicuro ti vengono trasmessi con la fattura, mai pubblicati su questa pagina.
Prezzi al netto delle imposte, per il Marocco. Un SMS conta 160 caratteri; oltre, il messaggio viene diviso e ogni parte è conteggiata. Una conservazione dei log più lunga è possibile su richiesta.
Indica il tuo volume: il prezzo unitario si adegua allo scaglione raggiunto. Il preventivo riporta esattamente ciò che selezioni qui.
Ordine minimo: 1 000 SMS. I crediti non scadono.
Il mittente condiviso è incluso. Ogni nome mittente con il tuo marchio viene registrato presso gli operatori, fatturato una sola volta: 500 DH per nome, il primo compreso nell'offerta a partire da 10 001 SMS.
Il pacchetto di supporto è fatturato annualmente.
Stima indicativa al netto delle imposte, calcolata sulle nostre tariffe pubbliche.
Oltre gli scaglioni pubblici, costruiamo insieme a te un listino adatto ai tuoi volumi, alle tue destinazioni e alla tua stagionalità. Parliamone: rispondiamo entro 24 ore lavorative.
160 caratteri per un messaggio in alfabeto latino standard. Oltre, il messaggio viene diviso e ogni parte è conteggiata: 306 caratteri fanno due SMS, 459 ne fanno tre. I caratteri accentati passano, ma un'emoji o un carattere arabo fa passare il messaggio alla codifica Unicode, dove il limite scende a 70 caratteri. La piattaforma mostra il conteggio mentre scrivi.
Sì. Il nome mittente può avere fino a undici caratteri e sostituisce il numero di invio. Va registrato presso gli operatori, con un documento che attesti l'esistenza dell'azienda; ce ne occupiamo noi, e richiede qualche giorno lavorativo.
L'SMS transazionale risponde a un'azione del destinatario — un codice di verifica, una conferma d'ordine, un avviso di consegna. Parte all'istante, tramite una coda prioritaria, e non riporta la dicitura di disiscrizione. L'SMS marketing propone qualcosa che non è stato chiesto: richiede il consenso preventivo, la dicitura STOP e il rispetto degli orari consentiti.
Gli invii pubblicitari vanno riservati agli orari lavorativi ed evitati di notte, la mattina presto, la domenica e nei giorni festivi. Questa regola è tanto di buon senso commerciale quanto normativa: un messaggio ricevuto alle 23 produce soprattutto disiscrizioni. I messaggi di servizio, invece, non sono interessati.
Ogni campagna di marketing riporta una dicitura di disiscrizione. Il destinatario che risponde STOP viene rimosso automaticamente dalle tue liste, e la piattaforma lo esclude da tutti i tuoi invii pubblicitari successivi, senza alcun intervento da parte tua. Continua invece a ricevere i tuoi messaggi di servizio, che non rientrano nel consenso commerciale.
L'operatore restituisce una ricevuta negativa con il motivo: numero inesistente, telefono spento da troppo tempo, utente non attivo. Il messaggio non viene conteggiato due volte, e il numero è segnalato nel report della campagna. I tuoi invii successivi ripuliscono così la base man mano.
Sì, sulle campagne inviate da un numero di invio. Le risposte tornano nell'interfaccia, collegate alla campagna d'origine, e possono essere inoltrate al tuo sistema via webhook. È ciò che rende possibili le conferme di appuntamento tramite risposta, i sondaggi e i giochi via SMS.
No. I crediti acquistati restano disponibili senza scadenza. Il prezzo unitario è quello dello scaglione raggiunto al momento dell'ordine: ordinare in un'unica volta anziché in più piccole tranche costa quindi meno.
Sì, la copertura è internazionale. La tariffa dipende allora dalla destinazione, e alcuni paesi impongono regole proprie sul nome mittente o sulla registrazione preventiva delle campagne. Ti indichiamo il prezzo e i vincoli per destinazione prima di qualsiasi invio.
In Marocco il trattamento dei dati personali è regolato dalla legge 09-08 e dalla CNDP: l'archivio di numeri deve essere dichiarato e ogni invio pubblicitario presuppone il consenso preventivo del destinatario. La dicitura STOP compare in ogni campagna di marketing ed è applicata immediatamente; consensi, date di raccolta e richieste di cancellazione sono conservati ed esportabili come documentazione. Non siamo giuristi: fai validare il tuo impianto e la dichiarazione CNDP dal tuo consulente.
Il GDPR impone un consenso libero, specifico e informato prima di ogni invio pubblicitario, oltre a un mezzo semplice per revocarlo. La dicitura STOP compare in ogni campagna di marketing ed è applicata immediatamente; consensi, date di raccolta e richieste di cancellazione sono conservati ed esportabili, di che alimentare il tuo registro dei trattamenti. Non siamo giuristi: per le informative e la base giuridica dei tuoi invii, fai validare il tuo impianto dal tuo consulente.
Negli Stati Uniti l'SMS commerciale è regolato dal Telephone Consumer Protection Act, applicato dalla FCC, mentre le regole del CAN-SPAM Act disciplinano l'e-mail. Il TCPA richiede un consenso scritto esplicito prima di ogni messaggio pubblicitario, un mezzo di disiscrizione ricordato nei messaggi e il rispetto degli orari locali del destinatario. Vi si aggiungono le regole degli operatori, che subordinano l'uso di un numero alla registrazione della campagna. Le risposte STOP sono gestite automaticamente e conservate. Non siamo giuristi: poiché il TCPA apre un diritto di azione individuale, fai validare il tuo impianto dal tuo consulente prima di qualsiasi campagna.
L'account viene aperto entro 24 ore e i primi invii di prova possono partire subito con un mittente condiviso. Il tempo reale dipende dalla registrazione del tuo nome mittente presso gli operatori, che richiede qualche giorno lavorativo.
La tua piattaforma SMS operativa in 4 fasi
Dalla firma al primo invio, un percorso segnato e un unico referente.
Tempi correnti: account aperto entro 24 h, primo invio non appena gli operatori convalidano il nome mittente.