Czego się dowiesz?

Dowiedz się, jak utworzyć niestandardowy webhook Zapier, aby wysyłać zgodę na SMS do Klaviyo. Instrukcje zawarte w tym przewodniku możesz też łatwo zmodyfikować, aby wysyłać zgodę na e-mail.

Poniższe kroki pomogą Ci utworzyć Zap z webhookiem (nazywanym też catch hook), który uruchamia działanie skryptu Python. Ten przykład aktualizuje zgodę na marketing SMS-owy. Uwzględnienie adresu e-mail w żądaniu nie powoduje subskrybowania profilu na marketing e-mailowy.

Taka konfiguracja wymaga płatnego planu Zapier, który obejmuje Webhooki by Zapier.

Informacje o integracji

Ta integracja nie jest w pełni wspierana przez Klaviyo, ale w razie potrzeby możesz użyć jej jako obejścia. Zalecamy korzystać z tej integracji tylko wtedy, gdy masz w zespole programistów, którzy mogą ją wspierać.

W tym przewodniku używana jest akcja kodu Zapier, która uruchamia skrypt Python po wykryciu wyzwalacza. Dzięki temu rozwiązaniu możesz mapować pola na typy danych wymagane przez punkty końcowe Klaviyo; w szczególności punkty końcowe Subskrybuj profile i Wycofaj subskrypcję profili.

Kilka słów na początek

Skonfiguruj SMS w Klaviyo, używając numeru do wysyłki dla kraju twojego odbiorcy testowego. Użyj prawdziwego numeru telefonu komórkowego i adresu e-mail, do których masz dostęp: testowanie działania kodu zmienia zgodę na twoim koncie Klaviyo.

Upewnij się, że masz prywatny klucz API Klaviyo z uprawnieniami lists:write, profiles:write i subscriptions:write. Zobacz, jak zarządzać kluczami API swojego konta.

Jeśli twoje konto korzysta z weryfikacji wieku dla SMS, przed użyciem tego przykładu rozszerz prośbę o subskrybowanie, aby uwzględniała age_gated_date_of_birth. Poniższy przykład nie zbiera ani nie wysyła daty urodzenia.

Konfigurowanie webhooka Zapier

Aktualne instrukcje konfiguracji Zapiera znajdziesz w jego przewodnikach dotyczących wyzwalaczy webhook oraz akcji z kodem w Pythonie.

  1. Zaloguj się do swojego konta Zapier.
  2. Na stronie głównej w Zapier wybierz +Utwórz, a następnie wybierz Zap.
  3. Wprowadź nazwę nowego Zapa (np. Klaviyo Webhook).
  4. Kliknij krok Wyzwalacz, a następnie wyszukaj i wybierz Webhooki by Zapier.
  1. Z menu rozwijanego Event wybierz Catch Hook.
  1. Kliknij Kontynuuj. W przypadku płaskich danych testowych używanych w tym przewodniku pozostaw pole Wybierz klucz podrzędny puste, a następnie ponownie kliknij Kontynuuj.
  2. Wybierz kartę Test.
  3. Skopiuj URL webhooka, który Zapier udostępnia do wysyłania żądań.
  1. Skonfiguruj aplikację, która zbiera zgodę, aby wysyłała zmiany zgody na ten URL webhooka, w tym pola email, phone_number i sms_consent używane poniżej. Postępuj zgodnie z dokumentacją tej aplikacji, aby skonfigurować jej wychodzący webhook.
  2. Przed rozpoczęciem testowania musisz wysłać dane testowe do swojego webhooka. Więcej informacji znajdziesz w naszym przewodniku: Jak wysyłać dane testowe do Zapiera. Podczas wysyłania danych testowych upewnij się, że formatujesz numery telefonów w formacie E.164, wraz ze znakiem + i kodem kraju.
  3. Po przesłaniu danych testowych do webhooka kliknij Testuj wyzwalacz (na karcie Test).
  1. Jeśli żądanie się powiedzie, zobaczysz komunikat o powodzeniu, a dane testowe pojawią się poniżej komunikatu o powodzeniu, podobnie jak w poniższym przykładzie:
  1. Gdy wyzwalacz działa, kliknij Kontynuuj z wybranym rekordem.

Skonfiguruj działanie Zapier

  1. Dodaj krok działania, a potem wyszukaj i wybierz Code by Zapier.
  1. Z menu rozwijanego Zdarzenie wybierz Uruchom Python.
  1. Kliknij Kontynuuj.

Skonfiguruj mapowanie pól i utwórz logikę skryptu

  1. W sekcji Dane wejściowe przypisz email, phone_number i sms_consent do odpowiednich pól w danych testowych. Wpisz klucze dokładnie tak, jak pokazano. Pole name w przykładowych danych nie jest używane przez ten skrypt.

Dane wejściowe

Zmapowane dane testowe

email

1. E-mail: <Test email>

phone_number

1. Numer telefonu: <Test phone number>

sms_consent

1. Sms_consent: true

name

1. Nazwa: <Test name>

Wysyłaj true tylko w przypadku wyraźnej zgody na marketing SMS-owy. Wysyłaj false tylko w przypadku prośby o wycofać subskrypcję SMS: cofa zgodę na marketing SMS-owy na Twoim koncie i usuwa profil z wybranej listy. Nie używaj false w przypadku pustej lub nieznanej wartości zgody.

  1. Dodaj skrypt taki jak poniżej do pola kodu:
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. Zastąp your-private-api-key swoim prywatnym kluczem API Klaviyo.

Traktuj prywatne klucze API jak hasła - przechowuj je w bezpiecznym miejscu i nigdy nie ujawniaj ich publicznie.

  1. Zastąp LIST_ID w obu miejscach identyfikatorem Twojej listy w Klaviyo. W Klaviyo przejdź do Odbiorcy > Listy i segmenty, otwórz listę i wybierz Ustawienia > Szczegóły, aby skopiować Identyfikator listy.
  2. Sprawdź Ustawienia > Zgoda > Proces opt-in dla tej listy. Aby subskrybować bez potwierdzenia, wybierz Pojedyncza zgoda opt-in i kliknij Zapisz. W przypadku podwójnej zgody opt-in dokończ dowolne potwierdzenie SMS wysłane na Twój numer testowy, zanim sprawdzisz subskrypcję.
  3. Kliknij Kontynuuj, a następnie kliknij Testuj krok.
  4. Sprawdź, czy w danych wyjściowych wyświetla się status_code 202. Oznacza to, że Klaviyo zaakceptowało żądanie do przetworzenia; nie potwierdza to, że aktualizacja zgody została już zakończona. Oczekiwana jest pusta treść odpowiedzi.
  1. W Klaviyo sprawdź, czy twój profil testowy został dodany do wybranej listy, a następnie otwórz profil i potwierdź, że subskrybuje marketing SMS-owy. Jeśli wysłano wiadomość potwierdzającą, najpierw dokończ to potwierdzenie.
  1. Przetestuj ścieżkę wycofać subskrypcję na tym samym profilu testowym: wyślij nowe żądanie webhook z ustawioną wartością sms_consent na false, wybierz ten nowy rekord wyzwalacza w Zapier i ponownie przetestuj krok kodu. Potwierdź w Klaviyo, że profil wycofał subskrypcję marketingu SMS-owego i został usunięty z wybranej listy.
  2. Gdy oba testy zakończą się powodzeniem, kliknij Opublikuj, aby opublikować Zapa. Jeśli test nie zakończy się powodzeniem, zapoznaj się z naszymi wskazówkami dotyczącymi rozwiązywania problemów dotyczącymi typowych kwestii.

Dostosuj przykład dotyczący zgody na e-mail

Aby wyświetlić wersję tego Zapa tylko do e-maili:

  1. Zmapuj dane wejściowe email_consent ze swojego źródła, a następnie w całym skrypcie zamień sms_consent na email_consent. Użyj true dla wyraźnej zgody na marketing e-mailowy, a false dla prośby o wycofać subskrypcję e-mail.
  2. W obu ładunkach żądania zastąp klucz sms w subscriptions na email. Zachowaj pole email odbiorcy i usuń pole phone_number z obu ładunków.
  3. Przetestuj obie ścieżki uzyskiwania zgody na e-mail, zanim opublikujesz wersję e-mailową swojego Zapa. Sprawdź zgodę na e‑maile na profilu i dokończ każde potwierdzenie zapisu na e‑maile wysłane podczas testu subskrybowania.

Wskazówki dotyczące rozwiązywania problemów

Poniżej znajdują się typowe problemy, na które możesz natrafić podczas konfigurowania webhooka Zapier. Jeśli napotkasz jakiekolwiek inne problemy, możesz skontaktować się ze Społecznością Klaviyo, aby uzyskać dodatkowe wskazówki.

EOL podczas skanowania literału łańcuchowego

Jeśli widzisz ten błąd, brakuje cudzysłowu wokół jednej ze zmiennych. Sprawdź identyfikator listy i prywatny klucz API, aby upewnić się, że z obu stron są ujęte w cudzysłowy.

SyntaxError: nieprawidłowa składnia

Jeśli widzisz ten błąd, sprawdź, czy podziały wierszy, wcięcia, cudzysłowy i nawiasy w kodzie są zgodne z przykładem. W szczególności przypisania url i payload muszą znajdować się w osobnych wierszach. Wiersze zaczynające się od # są prawidłowymi komentarzami w Pythonie i nie trzeba ich usuwać.

Dodatkowe źródła

Czy ten artykuł był pomocny?
Ten formularz służy tylko do przesyłania opinii na temat artykułów. Dowiedz się, jak skontaktować się z zespołem ds. pomocy.

Dowiedz się od Klaviyo więcej

Społeczność
Nawiązuj kontakty z osobami na podobnych stanowiskach, partnerami oraz ekspertami i ekspertkami Klaviyo – inspirujcie się nawzajem, wymieniajcie spostrzeżeniami i pomagajcie szukać odpowiedzi na nurtujące Was pytania.
Partnerzy
Zatrudnij certyfikowanego eksperta Klaviyo, który pomoże Ci w konkretnym zadaniu lub w ciągłym zarządzaniu marketingiem.
Pomoc

Uzyskaj wsparcie za pośrednictwem konta.

E-mail do zespołu ds. pomocy (konta w bezpłatnym okresie próbnym oraz konta płatne) Całodobowa dostępność

Czat/wirtualna pomoc
Dostępność różni się w–zależności od lokalizacji i typu planu.