Czym są webhooki?
Webhook to żądanie HTTP, które Safina wysyła automatycznie na wybrany przez Ciebie adres URL za każdym razem, gdy wystąpi określone zdarzenie. Zamiast wielokrotnego sprawdzania Safiny w poszukiwaniu nowych danych (polling), otrzymujesz dane w momencie ich powstania.
W praktyce: Przychodzi połączenie. Safina odbiera, prowadzi rozmowę, tworzy podsumowanie. W ciągu kilku sekund Twój system otrzymuje żądanie HTTP ze wszystkimi istotnymi danymi: imię dzwoniącego, powód kontaktu, pilność, dane kontaktowe, punkty do realizacji.
Ty decydujesz, co się dzieje z danymi. Nowy kontakt w HubSpot? Wiadomość na Slacku do zespołu? Wiersz w Arkuszach Google? Zgłoszenie w systemie wsparcia? Wszystko możliwe bez ręcznej pracy.
Jakie dane wysyła Safina?
Każdy payload webhooka zawiera ustrukturyzowane dane z połączenia. Dokładna zawartość zależy od zdarzenia, ale typowe pola obejmują:
- Informacje o dzwoniącym: Imię, numer telefonu, e-mail (jeśli zarejestrowany), firma
- Szczegóły połączenia: Znacznik czasu, czas trwania, status (odebrano, nieodebrano, odrzucono)
- Podsumowanie: Powód kontaktu w 2-3 zdaniach, ustrukturyzowane
- Pilność: Wysoka, średnia, niska
- Punkty do realizacji: Konkretne następne kroki z rozmowy
- Pola branżowe: Numer nieruchomości, obszar prawny, ID klienta w zależności od szablonu
Przykładowy payload
{
"event": "call.ended",
"timestamp": "2026-01-28T14:32:00Z",
"call": {
"id": "call_abc123",
"status": "completed",
"duration_seconds": 142,
"caller": {
"phone": "+14155551234",
"name": "James Mitchell",
"company": "Mitchell & Associates"
},
"summary": "Inquiry about network installation for new office. 18 workstations, fiber connection available. Quote requested by end of week.",
"urgency": "medium",
"action_items": [
"Prepare quote for network installation",
"Call back by Friday"
],
"callback_requested": true,
"callback_time": "mornings"
}
}
Obsługiwane zdarzenia
Safina wysyła webhooki dla następujących zdarzeń:
| Zdarzenie | Opis |
|---|---|
call.received | Wykryto połączenie przychodzące |
call.answered | Safina odebrała połączenie |
call.ended | Rozmowa się zakończyła (zawiera podsumowanie) |
call.rejected | Połączenie zostało odrzucone |
summary.data_query_result | Wynik zapytania o dane z podsumowania |
Wybierasz, na jakie zdarzenia subskrybuje każdy webhook. Potrzebujesz tylko call.ended? Zasubskrybuj to jedno. Chcesz też wiedzieć, kiedy przychodzi połączenie? Dodaj call.received.
Uwierzytelnianie
Bezpieczeństwo jest ważne, szczególnie gdy przesyłane są dane z połączeń. Safina obsługuje trzy metody uwierzytelniania dla webhooków:
| Metoda | Opis | Kiedy używać |
|---|---|---|
| Bearer Token | Token wysyłany w nagłówku Authorization | Standard dla większości API |
| API Key | Klucz w nagłówku lub treści żądania | Kompatybilne z wieloma narzędziami firm trzecich |
| Brak | Bez tokenu uwierzytelniającego | Tylko do testów lub systemów wewnętrznych |
Możesz również zdefiniować niestandardowe nagłówki HTTP, jeśli Twój system ma specjalne wymagania.
Konfiguracja w 5 krokach
1. Utwórz webhook
Otwórz aplikację Safina i przejdź do Ustawienia > Webhooki > Nowy Webhook.
2. Wprowadź adres URL
Wpisz adres URL, na który Safina ma wysyłać dane. Może to być Twój własny serwer, instancja n8n, webhook Zapier lub scenariusz Make.
3. Wybierz uwierzytelnianie
Wybierz odpowiednią metodę: Bearer Token, API Key lub brak uwierzytelniania. Wprowadź swoje dane dostępowe.
4. Zasubskrybuj zdarzenia
Wybierz zdarzenia, które mają wyzwalać webhook. W większości przypadków call.ended jest wystarczające — daje pełne podsumowanie po każdej rozmowie.
5. Przetestuj
Kliknij “Wyślij test.” Safina wyśle testowy payload na Twój adres URL. Sprawdź, czy dane dotarły i są prawidłowo przetwarzane. Aktywuj webhook dopiero po pomyślnym teście.
Gotowe. Od teraz Safina automatycznie wysyła dane z połączeń do Twojego systemu za każdym razem, gdy wystąpi pasujące zdarzenie.
Szczegóły techniczne
- Metody HTTP: POST (domyślnie), GET, PUT, PATCH, DELETE
- Logika ponawiania: 3 automatyczne próby w przypadku błędu
- Timeout: 30 sekund (konfigurowalny)
- Niestandardowe nagłówki: Obsługiwane dowolne dodatkowe nagłówki HTTP
- Format: JSON
Przypadki użycia
Przekazuj dane z połączeń do CRM
Każde połączenie jest automatycznie logowane jako aktywność w HubSpot lub Pipedrive. Dane kontaktowe, powód rozmowy i następne kroki trafiają bezpośrednio do rekordu szansy sprzedaży lub kontaktu. Bez ręcznego wprowadzania danych.
Powiadamiaj zespół na Slacku
Pilne połączenia wyzwalają wiadomość na Slacku. Twój zespół natychmiast widzi, kto dzwonił i czego potrzebuje, bez otwierania aplikacji Safina.
Loguj połączenia w Arkuszach Google
Każde połączenie jest automatycznie dodawane jako nowy wiersz w arkuszu. Data, dzwoniący, powód, pilność — wszystko posortowane i filtrowalne. Idealne do raportowania i analiz.
Twórz własne automatyzacje
Przez platformy webhookowe jak Zapier, Make lub n8n możesz połączyć Safinę z ponad 5000 aplikacji. Automatyczne e-maile follow-up, wpisy kalendarza, tworzenie zgłoszeń — wszystko bez kodu.
Najczęściej zadawane pytania
Na jakie zdarzenia mogę subskrybować?
Safina obsługuje obecnie pięć zdarzeń: call.received, call.answered, call.ended, call.rejected i summary.data_query_result. Możesz dowolnie łączyć, które zdarzenia wyzwalają powiadomienie dla każdego webhooka.
Jakie metody uwierzytelniania są obsługiwane?
Trzy metody: Bearer Token (w nagłówku Authorization), API Key (w nagłówku lub treści) i brak uwierzytelniania. Możesz również zdefiniować niestandardowe nagłówki, jeśli Twój system odbiorczy tego wymaga.
Czy mogę filtrować zdarzenia?
Tak. Tworząc webhook, wybierasz dokładnie, jakie zdarzenia chcesz otrzymywać. Możesz też utworzyć wiele webhooków z różnymi subskrypcjami zdarzeń (na przykład jeden dla CRM, który otrzymuje tylko call.ended, i drugi dla Slacka, który otrzymuje też call.received).
Co się stanie, jeśli mój serwer będzie niedostępny?
Safina automatycznie ponawia dostarczenie do 3 razy. Jeśli wszystkie próby się nie powiodą, webhook jest oznaczany jako nieudany. Status możesz sprawdzić w aplikacji i ręcznie ponowić wysyłkę.
Czy mogę testować webhooki bez wykonywania prawdziwych połączeń?
Tak. Safina ma wbudowaną funkcję testową. Możesz w każdej chwili wysłać testowy payload na swój adres URL, aby sprawdzić, czy połączenie działa i Twój system prawidłowo przetwarza dane.
W jakim formacie wysyłane są dane?
JSON. Payload jest ustrukturyzowany i udokumentowany. Każde zdarzenie ma zdefiniowany schemat, dzięki czemu możesz niezawodnie parsować dane.