Variabili del messaggio
Utilizza le variabili per personalizzare i messaggi a cascata con contenuti dinamici come nomi, URL e valori personalizzati.
Panoramica
Le variabili consentono:
- Personalizzazione: inserisci i nomi dei destinatari, i numeri di conto
- URL dinamici: includi collegamenti univoci per ciascun destinatario
- Abbreviazione URL: accorcia automaticamente gli URL lunghi
- Riutilizzabilità del modello: un modello, tanti messaggi personalizzati
Tipi di variabili
| Digitare | Sintassi | Scopo | Esempio |
|---|---|---|---|
nome |
%nome=id% |
Variabili di testo | Nomi, codici, importi |
| "url" | %url=id% |
URL completi | Link, URL di monitoraggio |
url_breve |
%short_url=id% |
URL abbreviati | Collegamenti compatti |
Sintassi della variabile
Le variabili utilizzano il formato: %type=id%
- type: tipo di variabile (
name,url,short_url) - id: Identificatore univoco (intero)
Esempi
Utilizzo delle variabili
Passaggio 1: carica i valori delle variabili
Prima di inviare messaggi, carica i valori delle variabili nell'API:
Punto finale:
Richiesta: CODICE_BLOCCO_2
Passaggio 2: invia un messaggio con variabili
Utilizza gli ID variabili caricati nel tuo messaggio:
{
"id": "msg-001",
"fromName": "YourStore",
"toPhone": "+380XXXXXXXXX",
"messageType": "transaction",
"text": "Hello %name=1%! Your verification code is %name=2%. Visit: %short_url=4%"
}
Risultato:
Esempio completo
Carica variabili
CODICE_BLOCCO_5
Invia messaggio
CODICE_BLOCCO_6
Messaggio consegnato: CODICE_BLOCCO_7
Casi d'uso
Conferma dell'ordine
// Variables
{
"variables": [
{"id": 1, "type": "name", "value": "John"},
{"id": 2, "type": "name", "value": "12345"},
{"id": 3, "type": "name", "value": "$99.99"},
{"id": 4, "type": "url", "value": "https://store.com/order/12345"}
]
}
// Message
{
"text": "Hi %name=1%! Order #%name=2% for %name=3% confirmed. Details: %url=4%"
}
// Result
"Hi John! Order #12345 for $99.99 confirmed. Details: https://store.com/order/12345"
Reimpostazione della password
// Variables
{
"variables": [
{"id": 1, "type": "name", "value": "Mike"},
{"id": 2, "type": "short_url", "value": "https://app.example.com/reset?token=abc123def456"}
]
}
// Message
{
"text": "Hi %name=1%, reset your password: %short_url=2% (valid 30 min)"
}
// Result
"Hi Mike, reset your password: https://sho.rt/xyz789 (valid 30 min)"
Campagna promozionale
// Variables
{
"variables": [
{"id": 1, "type": "name", "value": "VIP20"},
{"id": 2, "type": "short_url", "value": "https://store.com/sale?utm_source=sms&utm_campaign=summer"}
]
}
// Message
{
"text": "Summer Sale! Use code %name=1% for 20% off: %short_url=2%"
}
// Result
"Summer Sale! Use code VIP20 for 20% off: https://sho.rt/abc"
Verifica dell'account
// Variables
{
"variables": [
{"id": 1, "type": "name", "value": "789456"},
{"id": 2, "type": "name", "value": "10"}
]
}
// Message
{
"text": "Your verification code: %name=1%. Valid for %name=2% minutes."
}
// Result
"Your verification code: 789456. Valid for 10 minutes."
Esempi di implementazione
Pitone
CODICE_BLOCCO_12
JavaScript (Node.js)
const axios = require('axios');
class CascadeVariables {
constructor(apiKey) {
this.baseUrl = 'https://restapi.smsbat.com';
this.headers = {
'Content-Type': 'application/json',
'X-Authorization-Key': apiKey
};
}
async uploadVariables(variables) {
const response = await axios.post(
`${this.baseUrl}/api/items`,
{ variables },
{ headers: this.headers }
);
return response.data;
}
async sendWithVariables({ id, fromName, toPhone, messageType, text, variables }) {
// Upload variables first
await this.uploadVariables(variables);
// Send message
const response = await axios.post(
`${this.baseUrl}/api/CascadeMessage/send_message/async`,
[{
id,
fromName,
toPhone,
messageType,
text
}],
{ headers: this.headers }
);
return response.data[0];
}
}
// Usage
const cascade = new CascadeVariables('your-api-key');
const result = await cascade.sendWithVariables({
id: 'order-notification',
fromName: 'YourStore',
toPhone: '+380XXXXXXXXX',
messageType: 'transaction',
text: 'Hi %name=1%! Order %name=2% shipped. Track: %url=3%',
variables: [
{ id: 1, type: 'name', value: 'John' },
{ id: 2, type: 'name', value: 'ORD-12345' },
{ id: 3, type: 'url', value: 'https://example.com/track/ORD-12345' }
]
});
console.log('Message sent:', result.messageId);
PHP
CODICE_BLOCCO_14
Migliori pratiche
ID variabili
- ✅ Utilizza ID sequenziali (1, 2, 3, ...)
- ✅ Riutilizza gli ID per messaggi collettivi con le stesse variabili
- ✅ Mappatura degli ID variabili dei documenti
- ❌Non utilizzare ID casuali
- ❌Non saltare i numeri identificativi
Valori variabili
- ✅ Convalida i valori prima del caricamento
- ✅ Gestisci correttamente i caratteri speciali
- ✅Test con casi limite
- ❌ Non includere HTML nelle variabili dei nomi
- ❌Non superare limiti di lunghezza ragionevoli
Variabili URL
- ✅ Utilizza
short_urlper gli URL lunghi - ✅Includi parametri di tracciamento
- ✅ Utilizza HTTPS
- ❌ Non utilizzare URL dall'aspetto sospetto
- ❌ Non includere dati sensibili negli URL
Prestazioni
- Carica le variabili una volta, invia più messaggi
- Caricamenti variabili in batch
- Memorizza nella cache le variabili comunemente utilizzate
- Pulisci periodicamente le vecchie variabili
Modelli avanzati
Personalizzazione in blocco
CODICE_BLOCCO_15
Sistema di modelli
class MessageTemplate {
constructor(template) {
this.template = template;
this.varIdCounter = 1;
}
create(data) {
const variables = [];
let text = this.template;
// Replace placeholders with variable syntax
Object.entries(data).forEach(([key, value]) => {
const varId = this.varIdCounter++;
variables.push({
id: varId,
type: this.getVarType(value),
value: value
});
text = text.replace(`{{${key}}}`, `%${this.getVarType(value)}=${varId}%`);
});
return { text, variables };
}
getVarType(value) {
if (value.startsWith('http')) return 'url';
return 'name';
}
}
// Usage
const template = new MessageTemplate(
'Hi {{name}}! Order {{orderId}} shipped. Track: {{trackUrl}}'
);
const { text, variables } = template.create({
name: 'John',
orderId: 'ORD-123',
trackUrl: 'https://example.com/track/ORD-123'
});
await sendWithVariables({ text, variables });
Risoluzione dei problemi
Variabili non sostituite
- Verificare che le variabili siano state caricate prima dell'invio
- Controlla le corrispondenze dell'ID variabile nel testo e caricalo
- Assicurarsi che la sintassi corretta:
%type=id% - Convalida che il tipo di variabile corrisponda al valore
Accorciamento URL non riuscito
- Verificare che l'URL sia valido e accessibile
- Verifica che l'URL inizi con http:// o https://
- Assicurati che l'URL non sia già abbreviato
- Prova a utilizzare
urlinvece dishort_url
Limite variabile superato
- Contattare l'assistenza per i limiti variabili
- Riutilizzare gli ID variabili quando possibile
- Pulisci le vecchie variabili
- Ottimizza l'utilizzo variabile
Passaggi successivi
- Invia messaggi - Invia messaggi a cascata
- Tipi di messaggio - Esplora i tipi di messaggio
- API SMSBAT - Ulteriori informazioni sull'API SMSBAT