Marketing automation: Mailchimp, HubSpot, ActiveCampaign e Brevo
Sincronizza i Contatti del CRM con la tua lista/audience su Mailchimp, HubSpot, ActiveCampaign o Brevo e ricevi indietro iscrizioni e disiscrizioni (modello BYO, quindi l'account è tuo).
L'integrazione Marketing automation usa il TUO account Mailchimp, HubSpot, ActiveCampaign o Brevo (modello BYO: porti il tuo account). I Contatti del CRM vengono aggiunti/aggiornati nella tua lista/audience (sincronizzazione tramite email, idempotente), e gli eventi di iscrizione/disiscrizione tornano al CRM aggiornando lo stato marketing del Contatto. Non c'è costo, margine o intermediazione da parte nostra: i dati vanno direttamente al tuo account e tornano da esso.
L'integrazione parte inerte: non succede nulla finché non compili le credenziali e attivi. Tutti i segreti (API key, token, client secret) sono memorizzati cifrati nel CRM e non vengono mai mostrati di nuovo. Ogni piattaforma ha la propria scheda in Impostazioni → Integrazioni; l'URL del webhook è unico (/api/inbound/marketing/…) e il CRM riconosce la piattaforma dal token dell'URL.
Prerequisiti
- Un account Mailchimp, HubSpot o ActiveCampaign con accesso da amministratore per generare API key/token e creare webhook.
- Mailchimp: il server prefix (es. us21), l'Audience ID e una API key (Account → Extras → API keys).
- HubSpot: una private app (Impostazioni → Integrazioni → Private Apps) con gli scope crm.objects.contacts.read/write. ActiveCampaign: l'URL API e la API key (Impostazioni → Developer).
- Brevo (ex Sendinblue): una API key (SMTP & API → API Keys) e, se vuoi aggiungere contatti a una lista, l'ID numerico della lista (Contatti → Liste).
- In Sellio, accesso da amministratore per salvare le credenziali e attivare l'integrazione in Impostazioni → Integrazioni.
Cosa viene sincronizzato
- In uscita (CRM → provider): ogni Contatto con un'email viene inviato come membro/contatto della tua lista/audience. L'upsert è idempotente tramite email, quindi reinviare non duplica (Mailchimp usa l'hash MD5 dell'email; HubSpot fa upsert tramite idProperty=email; ActiveCampaign usa /contact/sync; Brevo usa POST /v3/contacts con updateEnabled). Nome, cognome e telefono vengono inclusi. Su Brevo scegli anche a quale attributo viene mappato ogni campo Sellio (mappatura dei campi).
- In Brevo puoi anche inviare ogni contatto alla LISTA corrispondente al suo gruppo di clienti, invece di mandare tutti alla stessa lista: indica quale campo del contatto contiene il gruppo e scrivi una regola per riga, nel formato gruppo = lista. Un gruppo senza regola finisce nella lista predefinita, così nessuno resta escluso per una configurazione mancante.
- In entrata (provider → CRM): quando qualcuno si iscrive o si disiscrive, il webhook aggiorna il Contatto corrispondente nel CRM (i campi marketing_status e email_opt_in sul record), associandolo tramite l'email. Se l'email non esiste nel CRM, l'evento viene ignorato (non viene creato nulla).
- In tempo reale: non appena crei o modifichi un Contatto nel CRM, viene sincronizzato automaticamente con ogni connettore marketing attivo (Mailchimp, ActiveCampaign, HubSpot e Brevo), senza attendere il batch. È best-effort e viene eseguito solo quando almeno un connettore è attivo.
- Il pulsante "Sincronizza contatti" sulla scheda invia i Contatti del CRM in blocco (best-effort, fino a 200 alla volta), utile per il primo caricamento o per rielaborare i tuoi contatti.
Mailchimp
- Apri Impostazioni → Integrazioni e trova la scheda "Marketing (Mailchimp)".
- Compila il server prefix (es. us21, la parte dopo il trattino nella tua API key e nell'indirizzo della dashboard), l'Audience ID (Audience → Settings → Audience ID) e la API key (Account → Extras → API keys). Clicca "Salva credenziali".
- Copia l'"URL webhook".
- In Mailchimp → Audience → Settings → Webhooks, crea un webhook che punti a quell'URL e seleziona gli eventi subscribe e unsubscribe. Mailchimp non firma i webhook: la sicurezza è affidata al token imprevedibile dell'URL, quindi trattalo come riservato.
- Torna al CRM e clicca "Attiva". Usa "Sincronizza contatti" per il primo invio in blocco.
HubSpot
- Nel CRM, trova la scheda "Marketing (HubSpot)".
- Crea una private app in Impostazioni → Integrazioni → Private Apps con gli scope crm.objects.contacts.read e .write; incolla l'Access token nel campo "Token app privata". Facoltativamente, inserisci il Client secret di un'app HubSpot per verificare la firma del webhook. Clicca "Salva credenziali".
- Copia l'"URL webhook".
- Configura un workflow webhook (o app webhook) in HubSpot che invii una POST (JSON) a quell'URL includendo l'email del contatto e lo stato marketing. Se hai inserito il Client secret, HubSpot firma ogni chiamata (X-HubSpot-Signature); altrimenti, il token dell'URL fa da protezione.
- Torna al CRM e clicca "Attiva".
ActiveCampaign
- Nel CRM, trova la scheda "Marketing (ActiveCampaign)".
- Compila l'URL API e la API key (entrambi in Impostazioni → Developer → API Access). Clicca "Salva credenziali".
- Copia l'"URL webhook".
- In ActiveCampaign → Settings → Manage Webhooks, crea un webhook che punti a quell'URL e seleziona gli eventi subscribe e unsubscribe. ActiveCampaign non firma i webhook: la sicurezza è affidata al token imprevedibile dell'URL, quindi trattalo come riservato.
- Torna al CRM e clicca "Attiva".
Brevo (ex Sendinblue)
- Nel CRM, trova la scheda "Marketing (Brevo)".
- Su Brevo, genera una API key in SMTP & API → API Keys (oppure tramite l'ingranaggio dell'account → SMTP & API). Copia la chiave.
- Torna su Sellio e incolla la chiave nel campo "API key". Se vuoi aggiungere contatti a una lista, inserisci l'ID numerico della lista (il numero compare nell'URL della lista sotto Contatti → Liste); lascialo vuoto per creare/aggiornare solo il contatto.
- In "Mappatura dei campi", collega ogni campo Contatto di Sellio all'attributo Brevo corrispondente (maiuscolo). I predefiniti sono FIRSTNAME, LASTNAME, SMS (telefono) e COMPANY (azienda). Lascia vuoto per usare il valore predefinito. Crea prima eventuali attributi personalizzati in Contatti → Impostazioni → Attributi contatto, altrimenti Brevo ignora un attributo che non esiste. Clicca "Salva credenziali".
- Copia l'"URL webhook".
- In Brevo → Impostazioni → Webhooks, crea un webhook Marketing che punti a quell'URL e seleziona l'evento di disiscrizione. Brevo non firma i webhook: la sicurezza è affidata al token imprevedibile dell'URL, quindi trattalo come riservato.
- Torna al CRM e clicca "Attiva". Usa "Sincronizza contatti" per il primo invio in blocco.
Tratta gli URL dei webhook e le credenziali come dati riservati. Dove Mailchimp/ActiveCampaign non firmano le chiamate, la sicurezza sta nel token imprevedibile dell'URL (lo stesso modello dei form del sito); su HubSpot, inserisci il Client secret per richiedere la firma. Se provi ad attivare senza le credenziali necessarie, l'integrazione resta inerte e non viene sincronizzato nulla finché tutto non è a posto.
Come testare
- In uscita: clicca "Sincronizza contatti" sulla scheda e verifica nella lista/audience del tuo provider che i Contatti con un'email siano apparsi (senza duplicare).
- In entrata: iscrivi/disiscrivi un'email di test già presente come Contatto nel CRM e conferma che i campi marketing_status ed email_opt_in del Contatto siano stati aggiornati.
- Reinvia lo stesso contatto e lo stesso evento e conferma che lo stato finale sia lo stesso (idempotenza).
Risoluzione dei problemi
- Mailchimp 401/errore server: il server prefix (es. us21) deve corrispondere a quello del tuo account; controlla anche l'Audience ID e la API key.
- HubSpot 401: il Private app token è sbagliato o manca degli scope crm.objects.contacts.read/write. Ricrea la private app con gli scope e reincolla il token.
- ActiveCampaign 401: controlla l'URL API e la API key (Impostazioni → Developer → API Access), entrambi dello stesso account.
- Brevo 401/403: la API key è sbagliata o è stata revocata. Generane una nuova in SMTP & API → API Keys e reincollala. Se un attributo non compare nel contatto Brevo, crealo prima in Contatti → Impostazioni → Attributi contatto (Brevo ignora gli attributi che non esistono). Se il contatto non entra nella lista, controlla l'ID numerico della lista.
- In entrata non aggiorna il Contatto: se l'email dell'evento non esiste nel CRM, non viene creato nulla (per progettazione). Registra prima il Contatto. Conferma che il webhook punti all'"URL webhook" e selezioni subscribe/unsubscribe.
- HubSpot: firma non valida: se hai inserito il Client secret, l'header X-HubSpot-Signature deve corrispondere. Altrimenti, rimuovi il segreto e affidati al token dell'URL.