Wat je leert

Ontdek hoe je een aangepaste Zapier-webhook maakt om sms-toestemming naar Klaviyo te sturen. Je kunt de instructies in deze handleiding eenvoudig aanpassen om ook e-mailtoestemming te versturen.

De stappen hieronder helpen je om een Zap te maken met een webhook (ook wel een catch hook genoemd) die een actie voor een Python-script activeert. Het voorbeeld werkt de toestemming voor sms-marketing bij. Als je een e-mailadres in de aanvraag opneemt, wordt het profiel niet aangemeld voor e-mailmarketing.

Voor deze configuratie heb je een betaald Zapier-abonnement nodig met Webhooks by Zapier.

Over de integratie

Deze integratie wordt niet volledig ondersteund door Klaviyo, maar kan indien nodig als tijdelijke oplossing worden gebruikt. We raden aan deze integratie alleen te gebruiken als je ontwikkelaars in je team hebt die dit kunnen ondersteunen.

Deze handleiding gebruikt een Zapier-codeactie die een Python-script uitvoert wanneer de trigger wordt gedetecteerd. Met deze oplossing kun je velden koppelen aan de gegevenstypen die Klaviyo-eindpunten vereisen; specifiek de eindpunten Profielen aanmelden en Profielen afmelden.

Voordat je van start gaat

Stel sms in Klaviyo in met een verzendnummer voor het land van je testontvanger. Gebruik een echt mobiel nummer en e-mailadres waar jij controle over hebt: het testen van de codeactie wijzigt de toestemming in je Klaviyo account.

Zorg dat je een Klaviyo privé-API-sleutel hebt met lists:write-, profiles:write- en subscriptions:write -machtigingen. Bekijk hoe je de API-sleutels van je account beheert.

Als je account sms-leeftijdsverificatie gebruikt, breid je aanmeldingsverzoek dan uit met age_gated_date_of_birth voordat je dit voorbeeld gebruikt. In het onderstaande voorbeeld wordt geen geboortedatum verzameld of verstuurd.

Zapier-webhook instellen

Voor Zapier's huidige installatie-instructies kun je de handleidingen voor webhooktriggers en Python-codeacties raadplegen.

  1. Log in bij je Zapier-account.
  2. Selecteer op de hoofdpagina in Zapier +Maken en selecteer vervolgens Zap.
  3. Voer een naam in voor je nieuwe Zap (bijv. Klaviyo-webhook).
  4. Klik op de stap Trigger, zoek vervolgens naar Webhooks by Zapier en selecteer dit.
  1. Selecteer Catch Hook in het dropdownmenu Event.
  1. Klik op Doorgaan. Voor de platte testgegevens die in deze handleiding worden gebruikt, laat je Een onderliggende sleutel verwijderen leeg en klik je daarna opnieuw op Doorgaan.
  2. Selecteer het tabblad Test.
  3. Kopieer de webhook-URL die Zapier voor je aanbiedt om je verzoeken naartoe te sturen.
  1. Configureer de app die toestemming verzamelt, zodat deze toestemmingswijzigingen naar deze webhook-URL kan sturen, inclusief de velden email, phone_number en sms_consent die hieronder worden gebruikt. Volg de documentatie van die app om de uitgaande webhook in te stellen.
  2. Voordat je gaat testen, moet je testgegevens naar je webhook sturen. Bekijk onze handleiding Testgegevens naar Zapier sturen voor meer informatie. Zorg dat je telefoonnummers opmaakt in E.164-indeling, inclusief het +-teken en de landcode, wanneer je testgegevens verstuurt.
  3. Zodra je de testgegevens naar de webhook hebt gestuurd, klik je op Testtrigger (op het tabblad Test).
  1. Als de aanvraag is gelukt, zie je een succesbericht en worden de testgegevens onder het succesbericht ingevuld, vergelijkbaar met het onderstaande voorbeeld:
  1. Zodra je trigger werkt, klik je op Doorgaan met geselecteerde record.

Zapier-actie instellen

  1. Voeg een actiestap toe en zoek naar en selecteer Code by Zapier.
  1. Selecteer in het dropdownmenu Event Python uitvoeren.
  1. Klik op Doorgaan.

Stel veldtoewijzing in en maak scriptlogica

  1. Koppel in invoergegevens email, phone_number en sms_consent aan de bijbehorende velden in je testgegevens. Voer de sleutels precies in zoals weergegeven. Het veld name in de voorbeeldgegevens wordt niet gebruikt door dit script.

Invoergegevens

Testgegevens toegewezen

email

1. E-mail: <Test email>

phone_number

1. Telefoonnummer: <Test phone number>

sms_consent

1. Sms_consent: true

name

1. Naam: <Test name>

Verstuur true alleen bij een expliciete opt-in voor sms-marketing. Verstuur false alleen voor een sms-afmeldverzoek: hiermee wordt de toestemming voor sms-marketing in je account ingetrokken en wordt het profiel uit de geselecteerde lijst verwijderd. Gebruik false niet voor een lege of onbekende toestemmingswaarde.

  1. Voeg een script zoals hieronder toe aan het codevak:
python
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
}
  1. Vervang your-private-api-key door je privé-API-sleutel van Klaviyo.

Behandel privé-API-sleutels als wachtwoorden – bewaar ze op een veilige plek en maak ze nooit openbaar.

  1. Vervang LIST_ID op beide locaties door je lijst-ID van Klaviyo. Ga in Klaviyo naar Doelgroep > Lijsten & segmenten, open de lijst en selecteer Instellingen > Details om de lijst-ID te kopiëren.
  2. Controleer Instellingen > Toestemming > Opt-inproces voor die lijst. Als je je wilt aanmelden zonder een bevestiging, selecteer je Single opt-in en klik je op Opslaan. Met dubbele toestemming rond je een sms-bevestiging af die naar je testnummer is gestuurd voordat je het abonnement controleert.
  3. Klik op Doorgaan en klik vervolgens op Teststap.
  4. Controleer of de output status_code 202 weergeeft. Dit betekent dat Klaviyo het verzoek heeft geaccepteerd om het te verwerken; het bevestigt niet dat de toestemming al klaar is met updaten. Er wordt een lege response body verwacht.
  1. Controleer in Klaviyo of je testprofiel is toegevoegd aan de geselecteerde lijst, open vervolgens het profiel en bevestig dat het is aangemeld voor sms-marketing. Als er een bevestigingsbericht is verzonden, rond je eerst die bevestiging af.
  1. Test het afmeldpad met hetzelfde testprofiel: verstuur een nieuwe webhook-aanvraag met sms_consent ingesteld op false, selecteer die nieuwe triggerrecord in Zapier en test de codestap opnieuw. Controleer in Klaviyo of het profiel is afgemeld voor sms-marketing en is verwijderd uit de geselecteerde lijst.
  2. Als beide tests succesvol zijn, klik je op Publiceren om je Zap te publiceren. Als een test niet succesvol is, bekijk dan onze tips voor probleemoplossing voor veelvoorkomende problemen.

Pas het voorbeeld voor e-mailtoestemming aan

Voor een versie van deze Zap met alleen e-mail:

  1. Koppel een email_consent -invoer uit je bron en vervang sms_consent vervolgens door email_consent in het hele script. Gebruik true voor een expliciete e-mailmarketing-opt-in en false voor een verzoek om je af te melden voor e-mail.
  2. Vervang in beide requestpayloads de sleutel sms onder subscriptions door email. Behoud het email -veld van de ontvanger en verwijder het phone_number -veld uit beide payloads.
  3. Test beide paden voor e-mailtoestemming voordat je de e-mailversie van je Zap publiceert. Controleer de e-mailtoestemming op het profiel en rond eventuele bevestiging van e-mailopt-in af die tijdens de aanmelden-test is verzonden.

Tips voor probleemoplossing

De volgende problemen komen vaak voor bij het instellen van de Zapier-webhook. Als je andere problemen tegenkomt, kun je contact opnemen met de Klaviyo Community voor verdere begeleiding.

EOL tijdens het scannen van stringliteral

Als je deze fout ziet, ontbreekt er een aanhalingsteken rond een van je variabelen. Controleer de lijst-ID en private API-sleutel om te zorgen dat ze aan beide kanten tussen aanhalingstekens staan.

SyntaxError: ongeldige syntaxis

Als je deze fout ziet, controleer dan of de regeleinden, inspringing, aanhalingstekens en haakjes in de code overeenkomen met het voorbeeld. Met name de toewijzingen url en payload moeten op afzonderlijke regels staan. Regels die beginnen met # zijn geldige Python-opmerkingen en hoeven niet te worden verwijderd.

Extra hulpbronnen

Was dit artikel nuttig?
Gebruik dit formulier alleen voor feedback op artikelen. Meer informatie over hoe je contact opneemt met support.

Ontdek meer van Klaviyo

Community
Maak contact met collega's, partners en Klaviyo-experts om inspiratie op te doen, inzichten te delen en antwoorden te krijgen op al je vragen.
Partners
Huur een Klaviyo-gecertificeerde expert in om je te helpen met een specifieke taak of voor doorlopend marketingbeheer.
Support

Krijg ondersteuning via je account.

E-mailsupport (gratis proefperiodes en betaalde accounts) 24/7 beschikbaar

Chat-/virtuele assistentie
Beschikbaarheid varieert per locatie en type abonnement