Come inviare il consenso a Klaviyo tramite Zapier
Cosa imparerai
Scopri come creare un webhook Zapier personalizzato per inviare il consenso agli SMS a Klaviyo. Puoi modificare facilmente le istruzioni di questa guida anche per inviare il consenso alle e-mail.
I passaggi di seguito ti aiuteranno a creare uno Zap utilizzando un webhook (chiamato anche catch hook) che attiva un'azione di script Python. L'esempio aggiorna il consenso al marketing via SMS. Includere un indirizzo e-mail nella richiesta non iscrive il profilo al marketing via e-mail.
Questa configurazione richiede un piano Zapier a pagamento che include Webhook di Zapier.
Informazioni sull’integrazione
Questa integrazione non è supportata completamente da Klaviyo, ma può essere usata come soluzione alternativa se necessario. Ti consigliamo di usare questa integrazione solo se nel tuo team ci sono sviluppatori in grado di supportarla.
Questa guida utilizza un’azione di codice Zapier che esegue uno script Python quando viene rilevato l’attivatore. Con questa soluzione, puoi mappare i campi ai tipi di dati richiesti dagli endpoint di Klaviyo; in particolare, gli endpoint Iscrivi profili e Annullare l’iscrizione ai profili.
Prima di iniziare
Configura gli SMS in Klaviyo con un numero mittente per il Paese del destinatario del test. Usa un numero di cellulare e un indirizzo e-mail reali che controlli: testare l'azione del codice modifica il consenso nel tuo account Klaviyo.
Assicurati di avere una chiave API privata Klaviyo con le autorizzazioni lists:write, profiles:write e subscriptions:write. Vedi come gestire le chiavi API del tuo account.
Se il tuo account utilizza il filtro dell’età per gli SMS, estendi la richiesta di iscrizione per includere age_gated_date_of_birth prima di utilizzare questo esempio. L’esempio seguente non raccoglie né invia una data di nascita.
Imposta il webhook Zapier
Per le istruzioni di configurazione attuali di Zapier, consulta le sue guide agli attivatori webhook e alle azioni di codice Python.
- Accedi al tuo account Zapier.
- Dalla pagina principale di Zapier, seleziona +Crea, quindi seleziona Zap.
- Inserisci un nome per il tuo nuovo Zap (ad es. Klaviyo Webhook).
- Fai clic sul passaggio Trigger, poi cerca e seleziona Webhooks by Zapier.

- Dal menu a discesa Evento, seleziona Catch Hook.

- Clicca su Continua. Per i dati di test flat utilizzati in questa guida, lascia vuoto Pick Off A Child Key, quindi fai clic di nuovo su Continue.
- Seleziona la scheda Test.
- Copia l'URL del webhook che Zapier ti fornisce per inviare le tue richieste.

- Configura l’app che raccoglie il consenso in modo che invii le modifiche al consenso a questo URL del webhook, inclusi i campi
email,phone_numberesms_consentusati di seguito. Segui la documentazione di quell’app per configurare il webhook in uscita. - Prima di eseguire il test, dovrai inviare dati di test al tuo webhook. Per maggiori informazioni, consulta la nostra guida Come inviare dati di test a Zapier. Quando invii dati di test, assicurati di formattare i numeri di telefono nel formato E.164, includendo il segno + e il prefisso internazionale.
- Dopo aver inviato i dati di test al webhook, fai clic su Attiva trigger di test (nella scheda Test).

- Se la richiesta va a buon fine, vedrai un messaggio di conferma e i dati di test verranno visualizzati sotto il messaggio di conferma, come nell'esempio seguente:

- Una volta che l’attivatore funziona, fai clic su Continua con il record selezionato.
Imposta un'azione Zapier
- Aggiungi un passaggio di azione, poi cerca e seleziona Code by Zapier.

- Dal menu a discesa Evento, seleziona Esegui Python.

- Clicca su Continua.
Configura la mappatura dei campi e crea la logica dello script
- In Dati di input, associa
email,phone_numberesms_consentai campi corrispondenti nei tuoi dati di test. Inserisci le chiavi esattamente come mostrato. Il camponamenei dati di esempio non viene utilizzato da questo script.

Dati di input | Dati di test mappati |
| 1. E-mail: <Test email> |
| 1. Numero di telefono: <Test phone number> |
| 1. Sms_consent: true |
| 1. Nome: <Test name> |
Invia true solo in caso di consenso esplicito al marketing via SMS. Invia false solo in caso di richiesta di annullare l'iscrizione agli SMS: revoca il consenso al marketing via SMS su tutto l'account e rimuove il profilo dall'elenco selezionato. Non usare false per un valore di consenso vuoto o sconosciuto.
- Aggiungi uno script come quello qui sotto nella casella del codice:
import requests
sms_consent = str(input_data.get("sms_consent", "")).strip().lower()
if sms_consent not in ("true", "false"):
raise ValueError("sms_consent must be true or false")
# Configure the SMS marketing subscribe or unsubscribe request.
if sms_consent == "true":
url = "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs/"
payload = {
"data": {
"type": "profile-subscription-bulk-create-job",
"attributes": {
"profiles": {
"data": [{
"type": "profile",
"attributes": {
"email": input_data["email"],
"phone_number": input_data["phone_number"],
"subscriptions": {
"sms": {"marketing": {"consent": "SUBSCRIBED"}}
}
}
}]
}
},
"relationships": {
"list": {"data": {"type": "list", "id": "LIST_ID"}}
}
}
}
else:
url = "https://a.klaviyo.com/api/profile-subscription-bulk-delete-jobs/"
payload = {
"data": {
"type": "profile-subscription-bulk-delete-job",
"attributes": {
"profiles": {
"data": [{
"type": "profile",
"attributes": {
"email": input_data["email"],
"phone_number": input_data["phone_number"],
"subscriptions": {
"sms": {"marketing": {"consent": "UNSUBSCRIBED"}}
}
}
}]
}
},
"relationships": {
"list": {"data": {"type": "list", "id": "LIST_ID"}}
}
}
}
headers = {
"accept": "application/json",
"revision": "2026-07-15",
"content-type": "application/json",
"Authorization": "Klaviyo-API-Key your-private-api-key"
}
response = requests.post(url, json=payload, headers=headers, timeout=10)
response.raise_for_status()
# Zapier requires an output object.
output = {
"status_code": response.status_code,
"response text": response.text
}- Sostituisci
your-private-api-keycon la tua chiave API privata di Klaviyo.
Tratta le chiavi API private come password: conservale in un luogo sicuro e non rivelarle mai al pubblico.
- Sostituisci
LIST_IDin entrambe le posizioni con l'ID del tuo elenco Klaviyo. In Klaviyo, vai a pubblico > elenchi e segmenti, apri l'elenco e seleziona impostazioni > dettagli per copiare l'ID elenco. - Controlla Impostazioni > Consenso > Processo di opt-in per quell’elenco. Per iscriverti senza una conferma, seleziona Opt-in singolo e fai clic su Salva. Con doppio opt-in, completa qualsiasi conferma SMS inviata al tuo numero di test prima di verificare l’iscrizione.
- Clicca su Continua, quindi clicca su Test del passaggio.
- Verifica che l'output mostri
status_code202. Ciò significa che Klaviyo ha accettato la richiesta per l'elaborazione; non conferma che il consenso abbia terminato l'aggiornamento. È previsto un corpo della risposta vuoto.

- In Klaviyo, verifica che il tuo profilo di test sia stato aggiunto all’elenco selezionato, poi apri il profilo e conferma che sia iscritto al marketing via SMS. Se è stato inviato un messaggio di conferma, completa prima quella conferma.

- Testa il percorso di annullare l'iscrizione con lo stesso profilo di test: invia una nuova richiesta webhook con
sms_consentimpostato sufalse, seleziona quel nuovo record di attivazione in Zapier e testa di nuovo il passaggio del codice. Verifica in Klaviyo che il profilo abbia annullato l'iscrizione al marketing via SMS e sia stato rimosso dall'elenco selezionato. - Una volta che entrambi i test hanno esito positivo, fai clic su Pubblica per pubblicare lo Zap. Se un test non ha esito positivo, consulta i nostri consigli per la risoluzione dei problemi per i problemi comuni.
Adatta l'esempio per il consenso all'e-mail
Per una versione solo e-mail di questo Zap:
- Associa un input
email_consentdalla tua origine, quindi sostituiscisms_consentconemail_consentin tutto lo script. Usatrueper un consenso esplicito al marketing via e-mail efalseper una richiesta di annullare l'iscrizione alle e-mail. - In entrambi i payload della richiesta, sostituisci la chiave
smsinsubscriptionsconemail. Mantieni il campoemaildel destinatario e rimuovi il campophone_numberda entrambi i payload. - Testa entrambi i percorsi di consenso all’e-mail prima di pubblicare la versione e-mail del tuo Zap. Controlla il consenso all’e-mail nel profilo e completa eventuali conferme di opt-in e-mail inviate durante il test di iscrizione.
Suggerimenti per la risoluzione dei problemi
Di seguito sono riportati alcuni problemi comuni che potresti riscontrare durante la configurazione del webhook Zapier. Se riscontri altri problemi, puoi contattare la Klaviyo Community per ulteriore supporto.
EOL durante la scansione del letterale della stringa
Se visualizzi questo errore, manca una virgoletta attorno a una delle tue variabili. Controlla l'ID dell'elenco e la chiave API privata per assicurarti che siano racchiusi tra virgolette su entrambi i lati.
SyntaxError: sintassi non valida
Se vedi questo errore, verifica che le interruzioni di riga, i rientri, le virgolette e le parentesi del codice corrispondano all’esempio. In particolare, le assegnazioni url e payload devono essere su righe separate. Le righe che iniziano con # sono commenti Python validi e non devono essere rimosse.
Risorse aggiuntive
- Come gestire le chiavi API del tuo account
Scopri come accedere alle tue chiavi API e come gestirle per il tuo account Klaviyo.
- Come inviare dati di test a Zapier
Scopri come inviare dati di test a Zapier tramite una richiesta POST quando crei un webhook per inviare il consenso a e-mail e SMS a Klaviyo.