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
- Accedi al tuo account Brevo
- Vai su Account e Piano > Chiavi API
- Fai clic su Genera una nuova chiave API
- Denominala “Integrazione Tajo”
- Copia e conserva in modo sicuro la chiave
# Memorizza nelle variabili d'ambienteexport BREVO_API_KEY="xkeysib-your-api-key-here"export TAJO_WEBHOOK_SECRET="your-webhook-secret"Configura l’Integrazione Tajo
Nel tuo dashboard Tajo:
- Vai su Impostazioni > Integrazioni
- Seleziona Brevo dall’elenco
- Inserisci la tua chiave API Brevo
- 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 registrazioneasync 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'ordineasync 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
- Configura i Webhook per la sincronizzazione in tempo reale
- Crea Template Email per le campagne fedeltà
- Configura l’Automazione SMS per le notifiche urgenti
- Configura l’Analytics per monitorare le performance
Supporto e Risorse
- Supporto Integrazione: [email protected]
- Documentazione API Brevo: api.brevo.com
- Repository Codice di Esempio: github.com/tajo/brevo-integration
- Forum Community: community.tajo.com