Så skickar du samtycke till Klaviyo via Zapier
Du kommer att lära dig
Lär dig hur du skapar en anpassad Zapier-webhook för att skicka sms-samtycke till Klaviyo. Du kan också enkelt ändra instruktionerna i den här guiden för att skicka e-postsamtycke.
Stegen nedan hjälper dig att skapa en Zap med en webhook (även kallad en catch hook) som utlöser en åtgärd med ett Python-skript. Exemplet uppdaterar samtycket för sms-marknadsföring. Att inkludera en e-postadress i begäran gör inte att profilen prenumererar på e-postmarknadsföring.
Den här konfigurationen kräver ett betalt Zapier-abonnemang som inkluderar Webhooks by Zapier.
Om integrationen
Den här integreringen stöds inte fullt ut av Klaviyo, men kan användas som en tillfällig lösning om det behövs. Vi rekommenderar att du bara använder den här integrationen om du har utvecklare i ditt team som kan ge stöd för den.
Den här guiden använder en Zapier-kodåtgärd som kör ett Python-skript när utlösaren upptäcks. Med den här lösningen kan du mappa fält till de datatyper som Klaviyo-slutpunkter kräver, närmare bestämt slutpunkterna Prenumerera profiler och Avsluta prenumeration för profiler.
Innan du börjar
Konfigurera sms i Klaviyo med ett sändningsnummer för landet där din testmottagare finns. Använd ett riktigt mobilnummer och en e-postadress som du kontrollerar: när du testar kodåtgärden ändras samtycket i ditt Klaviyo-konto.
Ha en privat API-nyckel för Klaviyo med behörigheterna lists:write, profiles:write och subscriptions:write. Se hur du hanterar ditt kontos API-nycklar.
Om ditt Konto använder sms-åldersverifiering ska du utöka begäran om att prenumerera så att den inkluderar age_gated_date_of_birth innan du använder det här exemplet. Exemplet nedan samlar inte in eller skickar ett födelsedatum.
Konfigurera Zapier-webhook
För Zapiers aktuella installationsinstruktioner, se deras guider till webhook-utlösare och Python-kodåtgärder.
- Logga in på ditt Zapier-konto.
- På huvudsidan i Zapier väljer du +Skapa och väljer sedan Zap.
- Ange ett namn för din nya Zap (t.ex. Klaviyo-webhook).
- Klicka på steget Utlösare och sök sedan efter och välj Webhooks by Zapier.

- I rullgardinsmenyn Händelse väljer du Catch Hook.

- Klicka på Fortsätt. För de platta testdata som används i den här guiden lämnar du Pick Off A Child Key tomt och klickar sedan på Continue igen.
- Välj fliken Test.
- Kopiera webhook-URL:en som Zapier tillhandahåller så att du kan skicka dina förfrågningar till den.

- Konfigurera appen som samlar in samtycke så att den skickar samtyckesändringar till denna webhook-URL, inklusive fälten
email,phone_numberochsms_consentsom används nedan. Följ appens dokumentation för att konfigurera dess utgående webhook. - Innan du testar behöver du skicka testdata till din webhook. Se vår guide om hur du skickar testdata till Zapier för mer information. Se till att formatera telefonnummer i E.164-format, inklusive +-tecknet och landskod, när du skickar testdata.
- När du har skickat testdata till webhooken klickar du på Testa utlösare (på fliken Test).

- Om begäran lyckas ser du ett bekräftelsemeddelande och testdata fylls i under bekräftelsemeddelandet, liknande exemplet nedan:

- När din trigger fungerar klickar du på Fortsätt med vald post.
Konfigurera Zapier-åtgärd
- Lägg till ett åtgärdssteg och sök sedan efter och välj Code by Zapier.

- I listrutan Händelse väljer du Kör Python.

- Klicka på Fortsätt.
Ställ in fältmappning och skapa skriptlogik
- I Input Data mappar du
email,phone_numberochsms_consenttill motsvarande fält i dina testdata. Ange nycklarna exakt som de visas. Fältetnamei exempeldata används inte av det här skriptet.

Indata | Testdata mappad |
| 1. E-post: <Test email> |
| 1. Telefonnummer: <Test phone number> |
| 1. Sms_consent: true |
| 1. Namn: <Test name> |
Skicka true endast vid ett uttryckligt samtycke till sms-marknadsföring. Skicka false endast för en begäran om att avsluta prenumeration via sms: det återkallar samtycke till sms-marknadsföring för hela ditt Konto och tar bort profilen från den valda listan. Använd inte false för ett tomt eller okänt samtyckesvärde.
- Lägg till ett skript som det nedan i kodrutan:
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
}- Ersätt
your-private-api-keymed din privata API-nyckel för Klaviyo.
Behandla privata API-nycklar som lösenord – förvara dem på en säker plats och exponera dem aldrig för allmänheten.
- Ersätt
LIST_IDpå båda ställena med ditt Klaviyo-list-ID. I Klaviyo går du till Publik > Listor och segment, öppnar listan och väljer Inställningar > Information för att kopiera List-ID. - Granska Inställningar > Samtycke > Opt-in-process för den listan. Om du vill prenumerera utan en bekräftelse väljer du Enkel opt-in och klickar på Spara. Med dubbel opt-in slutför du alla sms-bekräftelser som skickas till ditt testnummer innan du kontrollerar prenumerationen.
- Klicka på Fortsätt och klicka sedan på Testa steg.
- Kontrollera att utdata visar
status_code202. Det här betyder att Klaviyo godkände begäran för behandling; det bekräftar inte att samtycket har uppdaterats klart. En tom svarstext förväntas.

- I Klaviyo kontrollerar du att din testprofil har lagts till i den valda listan. Öppna sedan profilen och bekräfta att den prenumererar på sms-marknadsföring. Om ett bekräftelsemeddelande skickades slutför du den bekräftelsen först.

- Testa flödet för att avsluta prenumeration med samma testprofil: skicka en ny webhook-begäran med
sms_consentinställt påfalse, välj den nya utlösarposten i Zapier och testa kodsteget igen. Bekräfta i Klaviyo att profilen har avslutat prenumerationen på sms-marknadsföring och har tagits bort från den valda listan. - När båda testerna har lyckats klickar du på Publicera för att publicera din Zap. Om ett test inte lyckas kan du läsa våra felsökningstips för vanliga problem.
Anpassa exemplet för samtycke till e-post
För en version av den här Zap-en som bara innehåller e-post:
- Mappa en
email_consent-indata från din källa och ersätt sedansms_consentmedemail_consenti hela skriptet. Användtrueför ett uttryckligt samtycke till e-postmarknadsföring ochfalseför en begäran om att avsluta prenumeration via e-post. - I båda begärandenyttolasterna ersätter du nyckeln
smsundersubscriptionsmedemail. Behåll mottagarens fältemailoch ta bort fältetphone_numberfrån båda nyttolasterna. - Testa båda vägarna för e-postsamtycke innan du publicerar e-postversionen av din Zap. Kontrollera e-postsamtycke på profilen och slutför eventuell bekräftelse för e-postopt-in som skickas under testet av prenumerera.
Felsökningsguide
Följande är vanliga problem som du kan råka ut för när du konfigurerar Zapier-webhooken. Om du stöter på andra problem kan du vända dig till Klaviyo Community för ytterligare vägledning.
EOL vid genomsökning av strängliteral
Om du ser det här felet saknar du ett citationstecken runt en av dina variabler. Kontrollera list-ID:t och den privata API-nyckeln så att de omges av citationstecken på båda sidor.
SyntaxError: ogiltig syntax
Om du ser det här felet ska du kontrollera att kodens radbrytningar, indrag, citattecken och hakparenteser matchar exemplet. Särskilt tilldelningarna url och payload måste vara på separata rader. Rader som börjar med # är giltiga Python-kommentarer och behöver inte tas bort.
Ytterligare resurser
- Så här hanterar du ditt kontos API-nyckel
Ta reda på hur du får tillgång till och hanterar dina API-nycklar för ditt Klaviyo-konto.
- Så skickar du testdata till Zapier
Lär dig hur du skickar testdata till Zapier via en POST-begäran när du skapar en webhook för att skicka samtycke för e-post och sms till Klaviyo.