O que você vai aprender
Saiba como criar um webhook personalizado do Zapier para enviar consentimento por SMS para o Klaviyo. O senhor pode modificar facilmente as instruções deste guia para enviar também o consentimento por e-mail.
As etapas abaixo o ajudarão a criar um Zap usando um webhook (também chamado de catch hook) que aciona uma ação de script Python. O script envia uma chamada de API para o Klaviyo para inscrever e-mails e números de telefone em uma lista.
Esse recurso está disponível apenas para usuários com planos Premium Zapier.
Sobre a integração
Essa integração não é totalmente compatível com o Klaviyo, mas pode ser usada como uma solução alternativa, se necessário. Recomendamos usar essa integração somente se o senhor tiver desenvolvedores em sua equipe que possam dar suporte a ela.
Este guia usa uma ação de código do Zapier que executa um script Python quando o acionador é detectado. Com essa solução, o senhor pode mapear campos para os tipos de dados exigidos pelos endpoints do Klaviyo; especificamente, os endpoints Subscribe Prof iles e Unsubscribe Profiles.
Configurar o webhook do ZapierConfigurar o webhook do Zapier
- Faça login em sua conta do Zapier.
- Na página principal do Zapier, selecione +Create e, em seguida, selecione Zap.
- Digite um nome para seu novo Zap (por exemplo, Klaviyo Webhook).
- Procure por Webhook e selecione Webhooks by Zapier no menu Trigger.
- No menu seguinte, selecione Catch Hook nas opções do Trigger Event.
- Clique em Continue.
- Selecione a guia Teste.
- Copie o URL do webhook que o Zapier fornece para que você envie suas solicitações.
- Antes de testar, o senhor precisará enviar dados de teste para o webhook. Consulte nosso guia sobre Como enviar dados de teste para o Zapier para obter mais informações. Certifique-se de formatar corretamente os números de telefone ao enviar dados de teste.
- Depois de enviar os dados de teste para o webhook, clique em Test trigger (na guia Test ).
- Se a solicitação for bem-sucedida, o senhor verá uma mensagem de sucesso e os dados do teste serão preenchidos abaixo da mensagem de sucesso, como no exemplo abaixo:
- Quando o acionador estiver funcionando, clique em Continue with selected record (Continuar com o registro selecionado).
Configurar a ação do Zapier
- No menu Action (Ação), digite Code by Zapier na caixa de pesquisa e selecione a opção na lista.
- Clique em Choose an event (Escolher um evento) > Run Python.
- Clique em Continue.
Configurar o mapeamento de campos e criar lógica de script
- Configure o mapeamento de campo para correlacionar os dados de entrada na tabela abaixo com os dados de teste corretos que o senhor enviou anteriormente.
Dados de entrada Dados de teste mapeados E-mail
1. E-mail: <Test email> número de telefone
1. Número de telefone: <Número de telefone de teste> <Test phone number> sms_consent
1. Sms_consent: true nome
1. Nome: <Test name>
- Adicione um script como o que está abaixo à caixa de código:
solicitações de importação # Configuração da chamada de assinatura ou cancelamento de assinatura de sms if (input_data["sms_consent"] == "true" or input_data["sms_consent"] == "True" or input_data["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", "atributos": { "email": input_data["email"], "phone_number": input_data["phone_number"], "subscriptions": { "sms": { " marketing": { "consent": "SUBSCRIBED" } } } } } ] } }, "relacionamentos": { "list": { "data": { "type": "list", "id": "LIST_ID" } } } } } elif (input_data["sms_consent"] == "false" or input_data["sms_consent"] == "False" or input_data["sms_consent"] == "FALSE"):
url = "https://a.klaviyo.com/api/profile-subscription-bulk-delete-jobs/" payload = { "data": { "type": "profile-subscription-bulk-delete-job", "attributes": { "profiles": { "data": [ { "type": "profile", "atributos": { "email": input_data["email"], "phone_number": input_data["phone_number"], } } ] } }, "relacionamentos": { "list": { "data": { "type": "list", "id": "LIST_ID" } } } } }
headers = { "accept": "application/json", "revision": "2024-05-15", "content-type": "application/json", "Authorization": "Klaviyo-API-Key your-private-api-key" } response = requests.post(url, json=payload, headers=headers) # O Zapier requer um objeto "output". output = {"response text": response.text} - Substitua
your-private-api-key por
sua chave de API privada do Klaviyo.
Trate as chaves de API privadas como senhas - mantenha-as em um local seguro e nunca as exponha ao público.
- Substitua o
LIST_ID
(em ambos os locais) pelo ID da lista do Klaviyo para a qual deseja enviar os dados do Zapier. O senhor pode encontrar o ID da lista no Klaviyo navegando até Audience > Lists & segments > Settings. Se desejar inscrever imediatamente as pessoas sem uma confirmação (o que pode ser útil durante os testes), certifique-se de que sua lista esteja definida como single opt-in (encontrada na guia Consent (Consentimento ) nas configurações da lista). - Clique em Continue e, em seguida, clique em Test step (Etapa de teste).
- Se o teste for bem-sucedido, o senhor verá uma resposta sem erros, como a que está abaixo:
- O senhor também pode verificar se o teste foi bem-sucedido no Klaviyo navegando até sua lista e verificando se o perfil foi adicionado.
- Quando o teste for bem-sucedido, clique em Publish (Publicar ) para publicar o zap. Se o teste não for bem-sucedido, confira nossas dicas de solução de problemas para problemas comuns.
Dicas de solução de problemas
Os problemas comuns que o senhor pode encontrar ao configurar o webhook do Zapier são os seguintes. Se o senhor encontrar qualquer outro problema, pode entrar em contato com a Comunidade Klaviyo para obter mais orientações.
EOL durante a varredura de literal de stringEOL durante a varredura de literal de string
Se esse erro ocorrer, é porque está faltando uma aspa em uma das variáveis. Verifique a ID da lista e a chave privada da API para ter certeza de que estão entre aspas em ambos os lados.
SyntaxError: sintaxe inválidaSyntaxError: sintaxe inválida
Se o senhor encontrar esse erro, remova os comentários no código Python (qualquer linha que comece com um #
).