Przejdź do głównej zawartości

Retencja – Zatrzymaj klientów, zanim odejdą: reaguj na każdą niezadowoloną odpowiedź e-mailem lub w HubSpot

Gdy klient wystawi niską ocenę w Twojej ankiecie Survio, natychmiast otrzymasz powiadomienie e-mailowe o wypełnieniu ankiety z całą odpowiedzią lub pojawi się zadanie kontaktu przy tym kliencie w HubSpot.

Napisane przez Success Team Survio

Który przypadek jest dla Ciebie?

Przypadek A – prosty dla każdego: każda niezadowolona odpowiedź z ankiety trafia bezpośrednio do Ciebie przez powiadomienie e-mailowe o wypełnieniu ankiety.

Przypadek B – dla zespołów korzystających z CRM: każdy niezadowolony klient automatycznie dostaje zadanie kontaktu w HubSpot, więc Twój zespół może się skontaktować tego samego dnia.

Kiedy klient jest niezadowolony, liczą się pierwsze godziny – wtedy możesz go jeszcze zatrzymać. Dzięki tej konfiguracji każda niska ocena w Twojej ankiecie Survio dochodzi do Ciebie w kilka sekund, z całą odpowiedzią i kontaktem klienta, więc możesz zadzwonić lub odpisać, póki to ma znaczenie.
​

Tak wygląda powiadomienie e-mailowe o wypełnieniu ankiety, które otrzymasz za każdą niezadowoloną odpowiedź w Przypadku A:
​

Unhappy customer e-mail in Gmail with the whole response


​

A tak wygląda zadanie kontaktu, które Twój zespół dostaje w HubSpot w Przypadku B:
​

Call unhappy customer task on a HubSpot contact with the whole response

Jak to działa. Survio wysyła każdą ukończoną odpowiedź na adres webhook. Narzędzie automatyzacji (w tym poradniku to n8n) odbiera ją, sprawdza, czy klient jest niezadowolony i – jeśli tak – wysyła powiadomienie e-mailowe o wypełnieniu ankiety lub tworzy zadanie w HubSpot. Zadowolone odpowiedzi są pomijane.

Pierwszy raz używasz webhooków w Survio? Zacznij od Webhooks: wysyłaj odpowiedzi do innych narzędzi w czasie rzeczywistym, a potem wróć tutaj.
​

Co zbudujesz

W obu przypadkach niezadowolona odpowiedź to: ocena 1 lub 2 na 5 lub odpowiedź Raczej niezadowolony albo Niezadowolony.

W skrócie

Przypadek A: powiadomienie e-mailowe o wypełnieniu ankiety do Ciebie

Przypadek B: zadanie w HubSpot

Efekt

Cała odpowiedź trafia na Twoją skrzynkę przez powiadomienie e-mailowe o wypełnieniu ankiety

Zadanie kontaktu na dziś przy kliencie w HubSpot, z całą odpowiedzią

Narzędzia

Survio, n8n, Gmail

Survio, n8n, HubSpot

Najlepsze dla

Właściciela, który sam obsługuje niezadowolonych klientów

Zespołu, który śledzi klientów w CRM

Zanim zaczniesz

  • Ankieta Survio na płatnym planie. Webhooki nie są dostępne w planie Free, a każdy plan pozwala na określoną liczbę webhooków na ankietę (zobacz artykuł o webhookach).

  • Konto n8n w chmurze lub samodzielne.

  • Przypadek A: konto Gmail do powiadomień. Przypadek B: konto HubSpot.

W tym poradniku korzystamy z krótkiej ankiety satysfakcji klienta: ocena gwiazdkowa, pytanie zamknięte „Ogólnie, jak bardzo jesteś zadowolony?”, pytanie „Jak zrobiłeś u nas zakupy tym razem?”, otwarty komentarz i opcjonalne pytanie o e-mail.
​

Krok 1 — Upewnij się, że wiesz, kto odpowiedział

Znajomość tego, kto odpowiedział, pozwala się skontaktować z klientem, ale nie jest to wymagane. Bez tego Przypadek A i tak wysyła każdą niezadowoloną odpowiedź, więc zobaczysz, co poszło nie tak – po prostu nie będziesz wiedzieć, kto ją napisał. Przypadek B wymaga e-maila klienta, ponieważ HubSpot przypisuje zadanie do kontaktu.

Odpowiedzi w Survio są anonimowe, dopóki nie zbierzesz kontaktu. Skorzystaj z jednej lub kilku metod:

  • Opcjonalne pytanie o e-mail na końcu ankiety, na przykład „Podaj swój e-mail, jeśli chcesz, żebyśmy się z Tobą skontaktowali”. Wybierz typ pytania Odpowiedź e-mail.

  • Niestandardowe parametry URL z własnymi danymi klienta. Przejdź do Zbieranie odpowiedzi → Niestandardowe parametry URL, utwórz parametry takie jak email i order-id, wpisz ich wartości do linku, który wysyłasz każdemu klientowi, na przykład w mailu potwierdzającym zamówienie. Nazwy parametrów nie mogą zawierać podkreślników. Zobacz Niestandardowe parametry URL.

  • Zaproszenie e-mail z Survio. Wyślij ankietę klientom z Zaproszenia e-mail Survio, a każda odpowiedź będzie powiązana z adresem, na który ją wysłałeś(-aś). Zobacz Zaproszenie e-mail.

E-mail answer question in the Survio survey editor
URL parameters email and order-id in Survio
Survey link with the email and order-id parameters


​

Krok 2 — Utwórz webhook w n8n

  1. W n8n utwórz nowy workflow i dodaj node Webhook jako trigger.

  2. Ustaw HTTP Method na POST.

  3. Przejdź do zakładki Production URL i skopiuj adres.

  4. Kliknij Publish. Production URL zacznie odbierać zgłoszenia dopiero po opublikowaniu workflow.

n8n Webhook node with HTTP Method POST and the Production URL tab
Published button in the n8n editor

Używaj Production URL zamiast Test URL. Test URL czeka tylko podczas otwartej edycji w trybie testowym, więc Survio nie wyśle danych, kiedy edytor jest zamknięty. Survio ponawia próby przez ok. dzień, a po 5 dniach niepowodzeń wyłącza webhook.

Krok 3 — Podłącz ankietę w Survio

  1. Otwórz swoją ankietę i przejdź do Zbieranie odpowiedzi.

  2. W menu po lewej, pod Automatyzacje i Integracje, wybierz Webhooks i kliknij + Dodaj webhook.

  3. Wklej Production URL z n8n do pola Webhook URL i kliknij Zapisz webhook. Webhook jest aktywowany natychmiast.

Add a webhook dialog in Survio with the n8n Production URL filled in
Saved webhook in Survio, switched on


​

Krok 4 — Wyślij odpowiedź testową i znajdź id pytań

  1. Otwórz ankietę swoim zwykłym linkiem i wypełnij ją do końca, zaznaczając niską ocenę. Survio wysyła tylko kompletne odpowiedzi.

  2. W n8n otwórz zakładkę Executions. Powiadomienie pojawi się po kilku sekundach.

  3. Otwórz wykonanie, kliknij node Webhook, rozwiń body, potem data, potem answers. Każda odpowiedź pokaże swoje question.id, label pytania i answer.

  4. Zanotuj id pytań: o ocenę, zadowolenie i e-mail. Możesz kliknąć Pin, by oprzeć kolejne kroki na tej odpowiedzi.

Executions tab in n8n with successful runs
Webhook node output in n8n: body, data, answers

Skąd pochodzi e-mail klienta. data.email jest wypełnione tylko, gdy wysyłasz ankietę przez Zaproszenie e-mail. E-mail z pytania trafia do odpowiedzi, a z parametru URL do data.parameters. Gotowe workflow sprawdzają wszystkie trzy.

Przypadek A — Otrzymuj powiadomienie e-mailowe o wypełnieniu ankiety za każdą niezadowoloną odpowiedź

Za webhookiem są dwa kroki: Niezadowolony? przepuszcza tylko niezadowolone odpowiedzi, a Przekaż odpowiedź przesyła je do Ciebie powiadomieniem e-mailowym o wypełnieniu ankiety.

Niezadowolony?

  1. Dodaj node If po node Webhook i nazwij go Niezadowolony?.

  2. Ustaw trzy warunki połączone przez LUB – wystarczy, że spełniony zostanie jeden:

Wartość

Warunek

Porównaj z

{{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer ?? 99 }}

Liczba: mniejsza lub równa

2

{{ $json.body.data.answers.find(a => a.question.id === 90403151)?.answer?.labels?.[0] ?? "" }}

Tekst: równy

Raczej niezadowolony

{{ $json.body.data.answers.find(a => a.question.id === 90403151)?.answer?.labels?.[0] ?? "" }}

Tekst: równy

Niezadowolony

Wstaw swoje id pytań (90403153 = ocena, 90403151 = zadowolenie). Część ?? 99 sprawia, że brak oceny traktujemy jako zadowolenie.

If node Unhappy? with three conditions combined with OR

Teksty odpowiedzi muszą się zgadzać co do litery. Skopiuj opcje dokładnie jak w ankiecie. Jeśli masz kilka wersji językowych, odpowiedź będzie w języku użytym przez respondenta, więc sprawdź odpowiedzi testowe dla każdej wersji i uwzględnij to w warunkach.

Przekaż odpowiedź

  1. Dodaj node Gmail do wyjścia true node Niezadowolony?, nazwij go Przekaż odpowiedź i wybierz Wiadomość oraz Wyślij.

  2. Połącz konto Gmail i wpisz swój adres w polu Do.

  3. Ustaw Tytuł na Niezadowolony klient: {{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer ?? "?" }}/5.

  4. Dla Typu maila wybierz HTML. W Wiadomości umieść całą odpowiedź. Gotowy workflow wylistuje każde pytanie, odpowiedź, czas, zamówienie i kontakt.

  5. W Opcjach wyłącz Append n8n Attribution.

Gmail node Forward the response with To, Subject and Message

Wyjście „false” zostaw puste: zadowolone odpowiedzi kończą tam swój proces. Kliknij ponownie Publish – zmiany zaczynają działać, gdy workflow zostanie opublikowany.

n8n workflow: Survio Webhook, Unhappy?, Forward the response


​

Przypadek B — Twórz zadania kontaktu w HubSpot

Tutaj niezadowolona odpowiedź staje się zadaniem kontaktu na dzisiaj, przypisanym do klienta w HubSpot, z całą odpowiedzią w treści. HubSpot wymaga e-maila, by znaleźć kontakt, więc ta opcja najlepiej sprawdza się z Zaproszeniami e-mail Survio lub parametrem email z Kroku 1.
​

Zaczynasz od tego samego node Niezadowolony? co w Przypadku A, potem dodajesz kolejne trzy kroki na wyjściu true.
​

Przygotuj zadanie

Dodaj node Edit Fields (Set) o nazwie Przygotuj zadanie z poniższymi polami typu String. Wstaw własne id pytań, a strefę czasową zamień na swoją.

Nazwa pola

Wartość

E-mail

{{ $json.body.data.email || $json.body.data.parameters?.email || $json.body.data.answers.find(a => a.question.id === 90403187)?.answer || "" }}

Temat

Zadzwoń do niezadowolonego klienta: {{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer }}/5, zamówienie {{ $json.body.data.parameters?.['order-id'] }}

Treść

Ocena, zadowolenie, kanał, komentarz, zamówienie i czas – rozdziel <br>, żeby każdy element był w osobnej linii w HubSpot (patrz gotowy workflow)

Znajdź lub utwórz kontakt

Dodaj node HubSpot o nazwie Znajdź lub utwórz kontakt, wybierz zasób Kontakt i operację Utwórz lub zaktualizuj, połącz konto HubSpot i ustaw E-mail na {{ $json['E-mail'] }}. Istniejący klient zostanie wyszukany po mailu, a jeśli to nowy kontakt – zostanie utworzony.
​

Utwórz zadanie kontaktu

  1. Dodaj kolejny node HubSpot o nazwie Utwórz zadanie kontaktu i wybierz zasób Engagement, operację Utwórz i typ Zadanie.

  2. Ustaw Data wykonania na {{ $now.endOf('day').toISO() }}, więc zadanie będzie na dziś.

  3. Uzupełnij Treść {{ $('Przygotuj zadanie').item.json.Treść }}, Dla typu obiektu Kontakt, Status Nie rozpoczęte oraz Temat {{ $('Przygotuj zadanie').item.json.Temat }}.

  4. W Engagement Properties → Associations ustaw Contact IDs na {{ $json.vid }}. Opcjonalnie możesz wprowadzić Owner ID odpowiedzialnej osoby; bez niej zadanie nie ma właściciela i przypiszesz je w HubSpot.

HubSpot node Create call task: type Task, due date, subject, body and associations

Kliknij ponownie Publish.

n8n workflow: Survio Webhook, Unhappy?, Prepare task, Find or create contact, Create call task

Kontakt może zostać automatycznie powiązany z firmą. Jeśli HubSpot znajdzie firmę z tą samą domeną e-mail, przypisze do niej ten kontakt i może ustawić właściciela. Zadanie trafia do Owner ID, jeśli go wpiszesz.

Pobierz gotowy workflow

Zamiast budować krok 2 i swoją wersję od zera, zacznij od workflow poniżej. Pobierz plik dla swojego przypadku z załączników tego artykułu: survio-unhappy-responses-to-gmail.json dla Przypadku A lub survio-unhappy-responses-to-hubspot-tasks.json dla Przypadku B. Dalej:

  1. W n8n utwórz pusty workflow. Kliknij menu (trzy kropki) obok jego nazwy i wybierz Importuj, potem Z pliku. Wskaż pobrany plik.

  2. Otwórz Niezadowolony? i wstaw własne id pytań.

  3. Przypadek A: otwórz Przekaż odpowiedź, połącz konto Gmail, wpisz swój adres oraz zamień id pytań i strefę czasową.

  4. Przypadek B: otwórz Przygotuj zadanie i zamień id pytań oraz strefę czasową. Połącz konto HubSpot w Znajdź lub utwórz kontakt i Utwórz zadanie kontaktu, a w tym drugim możesz dodać Owner ID odpowiadającego.

  5. Otwórz Webhook Survio, skopiuj Production URL do Survio (Krok 3) i kliknij Publish.

n8n workflow menu with Import and From file


​

Przetestuj całość end-to-end

  1. Prześlij odpowiedź z oceną 2. W Przypadku A powiadomienie e-mailowe o wypełnieniu ankiety dojdzie w kilka sekund, w Przypadku B zadanie pojawi się przy kontakcie w HubSpot.

  2. Prześlij odpowiedź z oceną 5 i odpowiedzią Bardzo zadowolony. Nic się nie wydarzy.

  3. Wejdź w zakładkę Executions w n8n. Obydwie dostawy się tam pojawią; zadowolona zakończy się na Niezadowolony?.

Rozwiązywanie problemów

Objaw

Przyczyna

Rozwiązanie

Nic nie pojawia się w n8n

W Survio podany jest Test URL lub workflow nie jest opublikowany

Skopiuj Production URL do Survio i kliknij Publish

Survio nie zapisuje webhooka z własnego n8n

n8n pokazuje lokalny adres, nie publiczny

Ustaw w n8n WEBHOOK_URL na publiczny adres https i skopiuj URL ponownie

„Nasłuchiwanie na zdarzenie testowe” nie pokazuje nic, choć ankieta została wysłana

Survio wysyła na Production URL; nasłuchiwanie dotyczy Test URL

Sprawdź zakładkę Executions

Ostatnia zmiana nic nie zmienia

Workflow jest opublikowany, ale zmiana nie (przycisk Publish z kropką)

Kliknij jeszcze raz Publish

Każda odpowiedź wysyła powiadomienie e-mailowe o wypełnieniu ankiety

Node Gmail podłączony do wyjścia false, lub warunki połączone przez AND

Podłącz Gmail do wyjścia true i warunki ustaw na LUB

Niska ocena nie wysyła powiadomienia e-mailowego o wypełnieniu ankiety

Błędne id pytania lub inne sformułowanie odpowiedzi

Sprawdź id i teksty w odpowiedziach testowych w zakładce Executions

W powiadomieniu e-mailowym o wypełnieniu ankiety brak kontaktu

Ankieta nie została wysłana przez Zaproszenie e-mail Survio, brak parametru email, klient pominął pytanie o e-mail

Wyślij ankietę przez Zaproszenie e-mail, dodaj Niestandardowe parametry URL lub wyświetl pytanie o e-mail

Znajdź lub utwórz kontakt nie działa w Przypadku B

Brakuje e-maila klienta, więc HubSpot nie utworzy/kontaktu

Wyślij ankietę przez Zaproszenie e-mail lub link z e-mailem w parametrze

Zadanie w HubSpot jest w jednej linii

Treść zawiera zwykłe znaki nowej linii

Oddziel linie przez <br>

Survio wyłączyło webhook

Webhook nie działał przez 5 dni

Usuń przyczynę i włącz webhook ponownie w Survio

Warto wiedzieć

  • Survio wysyła tylko kompletne odpowiedzi, każdą osobno, niemal natychmiast. Ankieta przerwana w połowie nie jest przesyłana.

  • Nic nie jest wysyłane wstecznie: nie dotyczy odpowiedzi sprzed uruchomienia webhooka ani w czasie jego wyłączenia.

  • Nieudana wysyłka jest ponawiana do 8 razy przez ok. 27 godzin, każda próba czeka do 30 sekund.

  • Jeśli przez 5 dni z rzędu dostarczanie się nie powiedzie, Survio wyłącza webhook – musisz go włączyć ponownie.

  • Wstrzymanie webhooka zachowuje slot; usunięcie jest trwałe.

  • Survio nie prowadzi historii dostaw w aplikacji. Twój log to zakładka Executions w n8n.

  • Wysyłanie odpowiedzi do webhooków nie zużywa dodatkowych odpowiedzi z Twojego planu.

Wolisz, żebyśmy zrobili to za Ciebie? Na stronie Webhooks w Survio kliknij Uzyskaj pomoc eksperta, napisz, co chcesz osiągnąć, a nasz zespół przygotuje, przetestuje i przekaże gotowy webhook.

Czy to odpowiedziało na twoje pytanie?