Guida all'Integrazione Tajo-Brevo

Questa guida completa ti accompagna nell’integrazione della tua piattaforma fedeltà Tajo con Brevo per creare potenti campagne di coinvolgimento automatizzate.

Panoramica

L’integrazione Tajo-Brevo ti consente di:

  • Sincronizzare i dati dei clienti in tempo reale tra le piattaforme
  • Automatizzare le campagne fedeltà basate sul comportamento dei clienti
  • Tracciare il coinvolgimento su email, SMS e WhatsApp
  • Segmentare i clienti per livello fedeltà e comportamento di acquisto
  • Attivare messaggi personalizzati per eventi fedeltà chiave

Prerequisiti

Prima di avviare l’integrazione, assicurati di avere:

  • Account Tajo con programma fedeltà configurato
  • Account Brevo con accesso API
  • Chiavi API valide per entrambe le piattaforme
  • Endpoint webhook configurati per la sincronizzazione in tempo reale
  • Certificato SSL per la trasmissione sicura dei dati

Passo 1: Configurazione dell’Autenticazione

Genera la Chiave API Brevo

  1. Accedi al tuo account Brevo
  2. Vai su Account e Piano > Chiavi API
  3. Fai clic su Genera una nuova chiave API
  4. Denominala “Integrazione Tajo”
  5. Copia e conserva in modo sicuro la chiave
Terminal window
# Memorizza nelle variabili d'ambiente
export BREVO_API_KEY="xkeysib-your-api-key-here"
export TAJO_WEBHOOK_SECRET="your-webhook-secret"

Configura l’Integrazione Tajo

Nel tuo dashboard Tajo:

  1. Vai su Impostazioni > Integrazioni
  2. Seleziona Brevo dall’elenco
  3. Inserisci la tua chiave API Brevo
  4. Configura le impostazioni di sincronizzazione
{
"brevo_api_key": "xkeysib-your-api-key-here",
"sync_frequency": "real-time",
"sync_contacts": true,
"sync_orders": true,
"sync_events": true,
"loyalty_attributes": [
"LOYALTY_POINTS",
"LOYALTY_TIER",
"TOTAL_SPENT",
"LAST_PURCHASE"
]
}

Passo 2: Sincronizzazione dei Dati dei Clienti

Configurazione Sincronizzazione Contatti

Configura la sincronizzazione automatica dei contatti per mantenere aggiornati i dati dei clienti:

// Sincronizza il cliente alla registrazione
async function syncCustomerToBrevo(customer) {
const brevoData = {
email: customer.email,
attributes: {
FIRSTNAME: customer.firstName,
LASTNAME: customer.lastName,
PHONE: customer.phone,
LOYALTY_ID: customer.loyaltyId,
LOYALTY_POINTS: customer.points,
LOYALTY_TIER: customer.tier,
SIGNUP_DATE: customer.createdAt,
TOTAL_SPENT: customer.totalSpent,
PREFERRED_CATEGORIES: customer.categories,
BIRTHDAY: customer.birthday
},
listIds: [getListForTier(customer.tier)]
};
const response = await fetch('https://api.brevo.com/v3/contacts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'api-key': process.env.BREVO_API_KEY
},
body: JSON.stringify(brevoData)
});
return response.json();
}

Sincronizzazione Evento Acquisto

Sincronizza automaticamente gli acquisti per attivare campagne fedeltà:

// Sincronizza il completamento dell'ordine
async function syncOrderToBrevo(order, customer) {
// Crea l'ordine in Brevo
const orderData = {
id: order.id,
email: customer.email,
products: order.items.map(item => ({
id: item.productId,
name: item.name,
quantity: item.quantity,
price: item.price,
category: item.category
})),
revenue: order.total,
date: order.createdAt
};
await fetch('https://api.brevo.com/v3/ecommerce/orders', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'api-key': process.env.BREVO_API_KEY
},
body: JSON.stringify(orderData)
});
// Crea evento fedeltà
const eventData = {
email: customer.email,
event: 'Purchase Completed',
properties: {
order_id: order.id,
amount: order.total,
points_earned: order.pointsEarned,
loyalty_tier: customer.tier,
tier_upgraded: order.tierUpgraded,
products: order.items.map(i => i.name).join(', ')
}
};
await fetch('https://api.brevo.com/v3/events', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'api-key': process.env.BREVO_API_KEY
},
body: JSON.stringify(eventData)
});
}

Passo 3: Configurazione Campagne Automatizzate

Campagna di Benvenuto per Nuovi Clienti

Crea una serie di benvenuto automatizzata per i nuovi membri fedeltà:

{
"campaign_name": "Serie di Benvenuto Fedeltà Tajo",
"trigger": {
"event": "Contact Created",
"conditions": {
"LOYALTY_ID": "exists",
"SIGNUP_DATE": "today"
}
},
"emails": [
{
"delay": "immediate",
"template_id": 101,
"subject": "Benvenuto nel Programma Fedeltà Tajo! Ecco il tuo bonus di {{params.welcome_bonus}} punti",
"params": {
"welcome_bonus": "500",
"loyalty_tier": "Bronze",
"next_tier_points": "1000"
}
},
{
"delay": "3 days",
"template_id": 102,
"subject": "Non dimenticare di usare i tuoi {{params.welcome_bonus}} punti bonus!"
},
{
"delay": "1 week",
"template_id": 103,
"subject": "Ecco come guadagnare punti più velocemente con Tajo"
}
]
}

Passo 4: Tracciamento degli Eventi Fedeltà

Implementazione del Tracciamento degli Eventi

class TajoBrevoEventTracker {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = 'https://api.brevo.com/v3';
}
async trackEvent(customerEmail, eventName, properties = {}) {
const eventData = {
email: customerEmail,
event: eventName,
properties: {
timestamp: new Date().toISOString(),
source: 'tajo_platform',
...properties
}
};
try {
const response = await fetch(`${this.baseUrl}/events`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'api-key': this.apiKey
},
body: JSON.stringify(eventData)
});
if (!response.ok) {
throw new Error(`Tracciamento evento fallito: ${response.statusText}`);
}
return await response.json();
} catch (error) {
console.error('Errore tracciamento evento Brevo:', error);
throw error;
}
}
async trackPurchase(customer, order) {
return this.trackEvent(customer.email, 'Purchase Completed', {
order_id: order.id,
order_total: order.total,
currency: order.currency,
points_earned: order.pointsEarned,
loyalty_tier: customer.tier,
items_count: order.items.length,
first_purchase: customer.orderCount === 1
});
}
}

Passo 5: Strategia di Segmentazione

Segmenti Clienti

const loyaltySegments = [
// Segmenti basati sul livello
{
name: "Membri Bronze",
conditions: { LOYALTY_TIER: "Bronze" },
campaigns: ["tier_upgrade_promotion", "engagement_boost"]
},
{
name: "Membri Gold",
conditions: { LOYALTY_TIER: "Gold" },
campaigns: ["vip_treatment", "exclusive_rewards"]
},
// Segmenti basati sul comportamento
{
name: "Grandi Spenditori",
conditions: { TOTAL_SPENT: ">1000" },
campaigns: ["luxury_catalog", "big_spender_rewards"]
},
{
name: "Clienti a Rischio",
conditions: { LAST_PURCHASE: ">90 days" },
campaigns: ["win_back", "special_incentives"]
}
];

Risoluzione dei Problemi

Limiti di Frequenza API

Brevo ha limiti di frequenza, implementa la logica di retry:

async function makeBrevoRequest(url, options, retries = 3) {
try {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After') || 60;
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
return makeBrevoRequest(url, options, retries - 1);
}
return response;
} catch (error) {
if (retries > 0) {
await new Promise(resolve => setTimeout(resolve, 5000));
return makeBrevoRequest(url, options, retries - 1);
}
throw error;
}
}

Passi Successivi

  1. Configura i Webhook per la sincronizzazione in tempo reale
  2. Crea Template Email per le campagne fedeltà
  3. Configura l’Automazione SMS per le notifiche urgenti
  4. Configura l’Analytics per monitorare le performance

Supporto e Risorse

Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.

Inizia gratis con Brevo