Akcje i narzędzia
Zakładka Akcje to miejsce, w którym zarządzasz wszystkim, co Twój agent może robić poza rozmową — narzędziami, które agent wywołuje podczas rozmowy na żywo, hakami wstępnego pobierania działającymi przed rozpoczęciem połączenia oraz akcjami po rozmowie uruchamianymi po jej zakończeniu. Zmienne pobierania (pola danych, które agent wyodrębnia z każdej rozmowy) żyją w tej samej zakładce.
Wszystkie narzędzia, akcje oraz nowy hak wstępnego pobierania są dostępne w każdym planie, w tym Free.
Trzy fazy
Każdy wpis w zakładce Akcje należy do jednej z trzech faz cyklu życia. Lista rozwijana Dodaj narzędzie grupuje je, aby było jasne, kiedy każde z nich się uruchamia:
| Faza | Kiedy | Przykłady |
|---|---|---|
| Wstępne pobieranie | Zanim agent się przywita | Wyszukaj dzwoniącego w Twoim CRM po telefonie, pobierz najnowsze zamówienie, pobierz spersonalizowane powitanie z Twojego backendu |
| Rozmowa na żywo | Podczas rozmowy, wyzwalane przez AI we właściwym momencie | Przekieruj połączenie do człowieka, sprawdź dostępność w kalendarzu, przekaż do innego agenta, odpytaj zewnętrzne API o dane |
| Po rozmowie | Po zakończeniu połączenia | Wyślij e-mail z podsumowaniem, uruchom potwierdzenie SMS, prześlij dane połączenia do Twojego CRM |
Lista rozwijana otwiera się z Wstępnym pobieraniem na górze, ponieważ każda inna faza ma już mnóstwo opcji — nowy wpis wstępnego pobierania jest tym, czego najprawdopodobniej szukasz.
Wstępne pobieranie
Haki wstępnego pobierania pozwalają Twojemu agentowi rozpocząć połączenie, już wiedząc, kto dzwoni. Działają równolegle z konfiguracją połączenia i wstrzykują odpowiedź do systemowego promptu agenta, zanim padnie pierwsze słowo.
Kiedy tego używać
- Rozpoznaj powracającego klienta po numerze telefonu i przywitaj go po imieniu
- Pobierz otwarte zamówienie dzwoniącego, ostatnią wizytę lub poziom członkostwa
- Wczytaj wstępnie kontekst biznesowy zależny od tego, na którą linię zadzwoniono
- Wstrzyknij notatki z CRM, aby agent znał etap i historię leada
Jak to działa
- Platforma ustala numer telefonu dzwoniącego (z SIP dla połączeń przychodzących, z celu wybierania dla wychodzących).
- Każda aktywna akcja Wstępnego pobierania uruchamia się równolegle z twardym limitem czasu 1,5 s na żądanie i budżetem 2 s na całość.
- Udane odpowiedzi są łączone w systemowy prompt agenta jako nazwane bloki — agent odczytuje je już w swojej pierwszej turze.
- Błędy są ciche — wolny lub uszkodzony endpoint nigdy nie blokuje powitania. Agent po prostu zaczyna mówić bez tego bloku.
Konfiguracja
| Pole | Opis |
|---|---|
| Nazwa | Wymagane. Wewnętrzna etykieta i nazwa bloku w prompcie — trzymaj ją krótką i opisową (np. crm_lookup, vip_check). |
| URL API | Wymagane. Endpoint do pobrania. Obsługuje symbole zastępcze {phone}, {direction}, {agent_id}, {user_id}, {call_id}. |
| Metoda HTTP | GET jest domyślną i najlepszą opcją. POST / PUT / PATCH / DELETE również działają. |
| Nagłówki | Opcjonalne. Statyczne lub szablonowane (symbole zastępcze działają też tutaj). |
| Parametry zapytania | Opcjonalne. Wstępnie wypełniane wartością phone={phone} dla nowych akcji wstępnego pobierania. |
Dostępne zmienne
Te tokeny są podstawiane w URL, nagłówkach oraz parametrach zapytania/body w czasie żądania:
| Zmienna | Źródło | Przykładowa wartość |
|---|---|---|
{phone} | Telefon dzwoniącego (E.164) — dla połączeń wychodzących numer docelowy | +431234567890 |
{direction} | inbound lub outbound | inbound |
{agent_id} | Wewnętrzne ID agenta | 65f1a2b3c4... |
{user_id} | ID właściciela workspace'u | 65e0b1c2d3... |
{call_id} | ID połączenia (pozwala Twojemu backendowi skorelować późniejsze dane po rozmowie) | 65f1f2c4d5... |
Nieznane symbole zastępcze są pozostawiane dosłownie — złe szablonowanie nigdy nie zawiesza połączenia.
Co trafia do promptu
Jeśli Twój endpoint pod https://crm.example.com/lookup?phone={phone} zwraca:
{ "name": "Sarah Johnson", "tier": "Gold", "open_orders": 1 }
Do systemowego promptu agenta dołączany jest blok owinięty w XML nazwany według akcji:
<call_context>
<block name="crm_lookup">
{ "name": "Sarah Johnson", "tier": "Gold", "open_orders": 1 }
</block>
</call_context>
Nie musisz mówić agentowi, jak tego użyć — LLM naturalnie wychwytuje kontekst. Opcjonalnie wspomnij o wstępnym pobieraniu w swoim systemowym prompcie: "If <call_context> contains a customer name, greet them by name."
Ważne ograniczenia
- Tylko połączenia telefoniczne. Wstępne pobieranie nie działa dla połączeń z widgetu (webowych) — nie ma numeru telefonu do szablonowania.
- Limit 8 KB na treść odpowiedzi — wszystko dłuższe jest obcinane przed wstrzyknięciem. Limit chroni Twój budżet tokenów promptu i ogranicza zasięg złośliwego endpointu.
- Brak oceny
condition— wstępne pobieranie zawsze uruchamia się, gdy jest aktywne. Nie ma jeszcze transkrypcji, względem której można by oceniać.
Użyj GET z endpointem wyszukiwania kluczowanym po telefonie. Trzymaj odpowiedzi małe i ustrukturyzowane (obiekt JSON z 3-5 polami). Agent nie potrzebuje Twojego pełnego rekordu klienta — tylko te fragmenty, które zmieniają rozmowę.
Narzędzia rozmowy na żywo
Te działają podczas rozmowy. AI decyduje, kiedy wywołać każde narzędzie, na podstawie jego opisu i bieżącego dialogu.
Dostępne narzędzia
| Narzędzie | Cel | Kiedy używać |
|---|---|---|
| Przekierowanie połączeń | Przekaż człowiekowi-operatorowi | Klient prosi o osobę, złożone problemy |
| Google Calendar | Sprawdzaj dostępność i rezerwuj wizyty | Klient chce zaplanować spotkanie |
| Outlook Calendar | To samo, przez Microsoft Outlook | Klient chce zaplanować spotkanie |
| Narzędzie API RAG | Pobieraj dane na żywo z zewnętrznego API | Potrzebne informacje w czasie rzeczywistym (zamówienia, stany, stan konta) |
| Przekazanie do agenta | Przekaż do innego agenta głosowego | Dzwoniący potrzebuje innego działu lub specjalisty |
| HubSpot CRM | Odczyt/zapis kontaktów i transakcji w HubSpot | Logowanie połączenia do HubSpot, wyszukiwanie leada |
| Serwery MCP | Udostępnij narzędzia z dowolnego z Twoich zarejestrowanych serwerów MCP | Prowadzisz serwer narzędzi zgodny z MCP i chcesz, aby agent używał jego narzędzi w trakcie rozmowy |
Przekierowanie połączeń
Przekazuj połączenia człowiekowi, gdy spełnione są określone warunki.
| Ustawienie | Opis | Przykład |
|---|---|---|
| Nazwa | Wymagane. Nazwa osoby lub działu | "Kierownik Sprzedaży" |
| Numer przekierowania | Domyślny numer telefonu do przekazania | "+49 123 456 789" |
| Warunek wyzwalający | Kiedy agent powinien przekazać | "Klient prosi o menedżera lub problemu nie da się rozwiązać" |
| Warunkowe numery kierowania | Mapowanie warunek-do-numeru dla kierowania | {"billing": "+49 111 222", "technical": "+49 333 444"} |
Jak to działa:
- Podczas rozmowy AI ocenia Warunek wyzwalający.
- Jeśli ustawiono warunkowe numery kierowania, pasujący warunek określa, na który numer zadzwonić.
- W przeciwnym razie używany jest Numer przekierowania.
- Agent informuje dzwoniącego o przekazaniu.
- Połączenie jest przekierowywane — jeśli nikt nie odbiera, wraca do agenta.
Możesz dodać wiele narzędzi Przekierowania połączeń dla różnych działów — jedno dla „Sprzedaży" i drugie dla „Wsparcia technicznego" z różnymi warunkami i numerami.
Google Calendar
Podłącz swój Google Calendar, aby agent mógł sprawdzać dostępność i rezerwować wizyty podczas rozmów.
Konfiguracja:
- Przejdź do Integracja → Kalendarze i najpierw podłącz swoje konto Google.
- Dodaj narzędzie Google Calendar w zakładce Akcje agenta.
- Wybierz kalendarz do użycia.
- Skonfiguruj swoje ustawienia dostępności.
| Ustawienie | Opis | Domyślnie |
|---|---|---|
| Kalendarz | Wymagane. Który kalendarz używać | Twój główny kalendarz |
| Strefa czasowa | Strefa czasowa dla wizyt (format IANA) | Wykrywana automatycznie |
| Godzina rozpoczęcia pracy | Początek godzin pracy | 9:00 |
| Godzina zakończenia pracy | Koniec godzin pracy | 18:00 |
| Długość slotu | Długość wizyty w minutach | 30 |
| Dni robocze | Dostępne dni tygodnia | Poniedziałek–Piątek |
| Bufor między wizytami | Bufor między wizytami (0–60 min) | 0 |
Obsługiwane długości slotów: 15, 30, 45, 60, 75, 90, 105, 120 minut.
Skonfiguruj dokładnie swoje godziny i dni pracy — agent będzie oferował tylko sloty czasowe w ramach Twojej skonfigurowanej dostępności.
Outlook Calendar
Podłącz swój Outlook Calendar do rezerwacji wizyt podczas rozmów. Działa tak samo jak Google Calendar.
Konfiguracja:
- Przejdź do Integracja → Kalendarze i najpierw podłącz swoje konto Outlook.
- Dodaj narzędzie Outlook Calendar w zakładce Akcje agenta.
- Wybierz kalendarz do użycia.
- Skonfiguruj swoje ustawienia dostępności.
Ustawienia są identyczne jak w Google Calendar (strefa czasowa, godziny pracy, długość slotu, dni robocze, bufor).
Przekazanie do agenta
Przekaż połączenie do innego agenta głosowego na Twoim koncie. Przydatne, gdy masz wyspecjalizowanych agentów dla różnych działów.
| Ustawienie | Opis |
|---|---|
| Agent docelowy | Wymagane. Wybierz, do którego agenta przekazać |
| Warunek wyzwalający | Kiedy przekazać (np. „Dzwoniący pyta o wsparcie techniczne") |
Przykład: Agent recepcji przekazuje dzwoniących do agenta sprzedaży, gdy pytają o ceny, lub do agenta wsparcia, gdy mają problem techniczny.
HubSpot CRM
Odczytuj i zapisuj w swoim HubSpot CRM podczas rozmowy. Pozwala agentowi logować interakcje, wyszukiwać kontakt po telefonie lub przesyłać aktualizacje transakcji bez potrzeby skryptowania wywołań API.
Konfiguracja:
- Przejdź do strony Integracje i podłącz swoje konto HubSpot.
- Dodaj narzędzie HubSpot CRM w zakładce Akcje agenta.
- Wybierz, którego pipeline'u i których właściwości agent może dotykać.
Po dodaniu narzędzia AI może dopasować dzwoniącego do kontaktu HubSpot po telefonie, pobrać etap transakcji i aktualizować pola — wszystko z rozmowy na żywo.
Serwery MCP
Udostępnij narzędzia z dowolnego serwera zgodnego z MCP, który podłączyłeś do Hanc.AI. Jeden agent może korzystać z wielu serwerów MCP; jeden serwer MCP może obsługiwać wielu agentów.
Konfiguracja:
- Podłącz swój serwer(y) MCP raz w Integracja → Serwery MCP. Zobacz dedykowaną stronę Serwery MCP, aby poznać pełne kroki rejestracji.
- Dodaj wpis Serwery MCP do zakładki Akcje tego agenta — jest pogrupowany pod Rozmowa na żywo na liście rozwijanej Dodaj akcję.
- Włącz, które z Twoich zarejestrowanych połączeń ten agent powinien mieć dostępne.
- Dodaj krótką instrukcję „Kiedy tego używać", aby agent wiedział, kiedy sięgnąć po te narzędzia.
Agent ponownie odkrywa zestaw narzędzi z każdego włączonego serwera MCP na początku każdej rozmowy, więc zmiany wprowadzone po stronie serwera pojawiają się automatycznie przy następnym połączeniu. Narzędzia są przemianowywane z etykietą połączenia jako prefiksem, aby podobnie nazwane narzędzia z różnych serwerów się nie kolidowały.
Narzędzie API RAG
Podłącz do zewnętrznych API, aby pobierać informacje w czasie rzeczywistym podczas rozmów — wyszukuj zamówienia, sprawdzaj stany magazynowe, weryfikuj konta lub uzyskuj dostęp do dowolnych danych dostępnych przez API.
| Ustawienie | Opis | Przykład |
|---|---|---|
| Nazwa | Wymagane. Nazwa narzędzia | "Wyszukiwanie zamówień" |
| Opis / Kiedy używać | Wymagane. Kiedy odpytać API | "Klient pyta o status zamówienia" |
| URL API | Wymagane. Endpoint API. Może zawierać tokeny {placeholder}, które zostaną podstawione wartościami ze Schematu parametrów body (patrz niżej). | "https://api.yourshop.com/orders/{order_id}" |
| Metoda HTTP | Wymagane. Metoda HTTP | GET, POST, PUT, DELETE, PATCH |
| Wiadomość ładowania | Co agent mówi, czekając | "Zaraz to sprawdzę..." |
| Limit czasu | Maksymalny czas oczekiwania (ms) | 5000 (domyślnie) |
| Nagłówki | Statyczne nagłówki HTTP wysyłane z każdym żądaniem | {"Authorization": "Bearer KEY"} |
| Parametry zapytania | Statyczne parametry ciągu zapytania dodawane do każdego żądania | {"apiVersion": "v2"} |
| Schemat parametrów body | Wymagane. Schemat JSON opisujący argumenty, które AI powinno wyodrębnić z rozmowy i przekazać do narzędzia. Zobacz Pisanie Schematu parametrów body. | Obiekt Schematu JSON |
Zawsze ustawiaj Wiadomość ładowania — cisza podczas wywołań API sprawia wrażenie zepsutego dla dzwoniącego.
Stary checkbox „Uruchom na początku połączenia" w Narzędziu API RAG został zastąpiony dedykowanym wpisem Wstępne pobieranie. Użyj Wstępnego pobierania, gdy chcesz danych przed rozpoczęciem rozmowy; użyj Narzędzia API RAG, gdy agent powinien zdecydować podczas rozmowy, czy pobrać.
Pisanie Schematu parametrów body
Wbrew nazwie, Schemat parametrów body nie jest surowym body żądania. Jest to Schemat JSON opisujący, co AI powinno wyodrębnić z rozmowy i przekazać do Twojego narzędzia. W zależności od metody HTTP i szablonu URL, te wartości trafiają do URL, ciągu zapytania lub body JSON:
| Metoda HTTP | Gdzie trafiają wyodrębnione wartości |
|---|---|
URL zawiera {name} | Pasująca wartość jest podstawiana do URL |
GET, DELETE | Pozostałe wartości są dołączane do URL jako ?key=value |
POST, PUT, PATCH | Pozostałe wartości są wysyłane jako body JSON |
Minimalna struktura
{
"type": "object",
"properties": {
"param_name": {
"type": "string",
"description": "What this value is and how the AI should pick it"
}
},
"required": ["param_name"]
}
Główny type to zawsze "object". properties wymienia każdy argument. required oznacza, które z nich AI musi zawsze podać — jeśli klient jeszcze tego nie powiedział, AI zapyta przed wywołaniem narzędzia.
Odniesienie do pól
| Pole | Cel |
|---|---|
type | Typ JSON wartości: "string", "number", "integer", "boolean", "array", "object" |
description | Najważniejsze. Mówi AI, co oznacza wartość, jakiego formatu użyć i kiedy ją podać. Dodawaj przykłady, kiedy tylko to możliwe. |
enum | Ogranicza wartość do jednej z ustalonej listy. AI zmapuje naturalną mowę na najbliższą opcję (np. "the blue one" → "blue"). |
minimum, maximum | Granice liczbowe. AI odrzuci/ograniczy wartości spoza zakresu. |
default | Wartość używana, gdy AI nie przekaże tego pola. Nie jest wymagana, ale dokumentuje wartość domyślną. |
format | Wskazówka walidacji, np. "email", "date" (YYYY-MM-DD), "uri". |
Przykłady
Wyszukiwanie produktu (tylko słowo kluczowe):
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Product search keyword — e.g. \"phone\", \"laptop\", \"Apple\", \"Samsung\""
}
},
"required": ["query"]
}
Używane z URL https://dummyjson.com/products/search?q={query}&limit=5 i GET: wartość query trafia do symbolu zastępczego w URL. Nic nie trafia do body.
Wyszukiwanie zamówienia po ID:
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order ID the customer is asking about, usually 6 to 10 digits. Ask the customer if not provided."
}
},
"required": ["order_id"]
}
Używane z URL https://api.example.com/orders/{order_id} i GET.
Rezerwacja z wieloma wymaganymi polami:
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "Product ID returned by a previous search_products call."
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "How many items to reserve. Default 1."
},
"delivery_method": {
"type": "string",
"enum": ["pickup", "home_delivery", "locker"],
"description": "How the customer wants to receive the item."
},
"customer_email": {
"type": "string",
"format": "email",
"description": "Customer's email for order confirmation. Ask if not provided."
}
},
"required": ["product_id", "delivery_method", "customer_email"]
}
Używane z POST https://api.example.com/reservations: cztery wartości trafiają do body JSON. AI zapyta klienta o brakujące pola required przed wywołaniem narzędzia.
Narzędzie bez parametrów:
{
"type": "object",
"properties": {}
}
Użyj tego, gdy endpoint jest w pełni statyczny (np. GET /store/hours) i AI nie musi niczego przekazywać.
Najlepsze praktyki dla agentów głosowych
- Trzymaj schemat płaski. Zagnieżdżone obiekty i tablice działają, ale AI może się pomylić, mówiąc przez telefon. Preferuj maksymalnie 3–5 pól najwyższego poziomu.
- Zawsze napisz
descriptiondla każdego pola. Dołącz przykłady (e.g. "phone", "laptop") — przykłady prowadzą AI bardziej niezawodnie niż abstrakcyjne definicje. - Używaj
enum, gdy tylko masz ustaloną listę wartości. Usuwa to ryzyko, że AI wymyśli wartości lub wyśle"Electronics"zamiast"electronics". - Oznaczaj pole jako
requiredtylko, jeśli narzędzie nie może bez niego działać. Wszystko inne jest opcjonalne, a AI pominie to, gdy klient tego nie wspomniał — bez niezręcznych dodatkowych pytań. - Używaj nazw
snake_casei dokładnie dopasowuj wszelkie tokeny{placeholder}w URL. - Dokumentuj zachowanie dla brakujących wartości w
description— np."Omit if no budget limit","Default 5".
Akcje wiadomości na żywo
(v2.4) Wyślij SMS na żywo i Wyślij email na żywo pozwalają agentowi wysłać SMS lub e-mail w trakcie rozmowy, gdy nadal rozmawia z dzwoniącym — nie tylko po zakończeniu połączenia jak ich odpowiedniki po rozmowie. Użyj ich, aby wysłać link, potwierdzenie rezerwacji, kod lub podsumowanie, na które dzwoniący może zareagować przed rozłączeniem.
AI uruchamia te akcje samodzielnie, w danym momencie, na podstawie opisu akcji i rozmowy — tak samo, jak decyduje o wywołaniu dowolnego innego narzędzia na żywo.
| Akcja | Uruchamia się | Wysyła do |
|---|---|---|
| Wyślij SMS na żywo | Podczas rozmowy | Numeru telefonu dzwoniącego |
| Wyślij email na żywo | Podczas rozmowy | E-maila dzwoniącego |
Limit wysyłek na połączenie
Każdy kanał jest ograniczony do 3 wysyłek na kanał na połączenie. Agent może wysłać do trzech SMS-ów na żywo oraz do trzech e-maili na żywo w jednym połączeniu; czwarta wysyłka na danym kanale jest odrzucana. Zapobiega to zasypywaniu dzwoniącego przez gadatliwą lub zapętloną rozmowę.
Macierz odmów
Wysyłka na żywo jest odrzucana (a agent dostaje informację, dlaczego, aby mógł się z gracją zregenerować), gdy:
| Warunek | Rezultat |
|---|---|
| Nieprawidłowy lub brakujący e-mail (dla Wyślij email na żywo) | Odrzucone — agent prosi dzwoniącego o potwierdzenie e-maila |
| Nieprawidłowy lub brakujący telefon (dla Wyślij SMS na żywo) | Odrzucone — agent prosi dzwoniącego o potwierdzenie numeru |
| Treść ponad 160 znaków | Odrzucone — wiadomość jest zbyt długa, aby wysłać ją w obecnej postaci |
| Osiągnięto limit kanału (już 3 wysyłki w tym połączeniu) | Odrzucone — brak dalszych wysyłek na tym kanale |
Ponieważ agent otrzymuje z powrotem przyczynę odmowy, może naprawić problem w rozmowie („Czy mógłby Pan przeliterować ten e-mail?") i spróbować ponownie, zamiast po cichu zawodzić.
Logowanie do osi czasu CRM
Każda wysyłka na żywo jest logowana do osi czasu CRM kontaktu, więc wiadomość, którą agent wysłał w trakcie rozmowy, pojawia się obok rekordu połączenia — możesz zobaczyć dokładnie, co zostało wysłane, na który kanał i kiedy.
Inteligentne łączenie formularza z kanałem
Gdy dzwoniący z sieci prześle formularz widgetu tylko z częścią danych kontaktowych, agent używa tylko kanału, który faktycznie ma:
- Dzwoniący przesyła tylko e-mail → agent uruchamia Wyślij email na żywo (nigdy SMS).
- Dzwoniący przesyła tylko telefon → agent uruchamia Wyślij SMS na żywo (nigdy e-mail).
- Dzwoniący przesyła oba → agent może użyć dowolnego kanału, gdy rozmowa tego wymaga.
Oznacza to, że agent nigdy nie próbuje wysłać SMS-a do dzwoniącego, który podał tylko e-mail, ani e-maila do tego, który podał tylko numer — dostępne dane formularza decydują, która akcja na żywo jest w grze.
Akcje po rozmowie
Akcje po rozmowie uruchamiają się po zakończeniu połączenia i wygenerowaniu przez łańcuch analizy podsumowania, sentymentu i wyodrębnionych zmiennych. Konsumują dane połączenia — nie rozmawiają z klientem.
Dostępne akcje
| Akcja | Cel |
|---|---|
| Wyślij email | Wyślij ustrukturyzowane podsumowanie e-mailem do zespołu lub klienta |
| Wyślij SMS | Potwierdzenie tekstowe do dzwoniącego |
| Wyślij WhatsApp | Wiadomość lub szablon WhatsApp (działa wewnątrz i poza 24-godzinnym oknem) |
| Wywołanie API | Prześlij pełne dane połączenia do zewnętrznego API (CRM, webhook, Twoja hurtownia danych) |
Wyślij email
| Ustawienie | Opis |
|---|---|
| Nazwa | Wymagane. Identyfikator akcji |
| Temat | Wymagane. Temat e-maila |
| Treść wiadomości | Wymagane. Treść e-maila — może zawierać zmienne pobierania |
| Warunek wyzwalający | Kiedy wysłać (puste = zawsze) |
| Odbiorcy | Wymagane. Adresy e-mail, które zawsze otrzymują e-mail |
| Odbiorcy warunkowi | Mapowanie warunek-do-odbiorcy |
Używanie zmiennych w e-mailu:
New lead from phone call:
Name: {{customer_name}}
Email: {{customer_email}}
Interested in: {{selected_plan}}
Notes: {{call_notes}}
Wyślij SMS
| Ustawienie | Opis |
|---|---|
| Nazwa | Wymagane. Identyfikator akcji |
| Nazwa nadawcy | Wyświetlana nazwa nadawcy |
| Wiadomość | Wymagane. Treść SMS (może zawierać zmienne) |
| Warunek wyzwalający | Kiedy wysłać |
| Odbiorcy | Wymagane. Numery telefonów, które zawsze otrzymują SMS |
| Odbiorcy warunkowi | Mapowanie warunek-do-numeru |
Wyślij WhatsApp
Wiadomości WhatsApp w HANC używają wstępnie zatwierdzonych szablonów z centralnego konta Twilio Content — nie wklejasz Template SID ręcznie. Edytor akcji pokazuje listę rozwijaną każdego szablonu, który jest obecnie aktywny i zatwierdzony, a Ty wybierasz jeden. Symbole zastępcze wewnątrz szablonu ({{1}}, {{2}}, …) są następnie wypełniane inline ze zmiennych połączenia lub statycznego tekstu, który mapujesz w edytorze.
| Ustawienie | Opis |
|---|---|
| Nazwa | Wymagane. Identyfikator akcji |
| Warunek wyzwalający | Kiedy wysłać |
| Odbiorcy | Wymagane. Numery telefonów, które zawsze otrzymują wiadomość |
| Odbiorcy warunkowi | Mapowanie warunek-do-numeru |
| Szablon | Wymagane. Selektor rozwijany wstępnie zatwierdzonych szablonów WhatsApp zsynchronizowanych z centralnego konta Twilio Content. Każdy wpis pokazuje nazwę szablonu, język i podgląd treści, więc wiesz, który wybrać. |
| Zmienne szablonu | Dla wybranego szablonu edytor wymienia każdy symbol zastępczy ({{1}}, {{2}}, …) i pozwala zmapować go na zmienną połączenia (patrz niżej) lub statyczny ciąg. |
Dostępne zmienne połączenia, które możesz zmapować na symbole zastępcze szablonu:
| Zmienna | Opis |
|---|---|
{{call_from}} | Numer telefonu dzwoniącego |
{{call_to}} | Numer, na który zadzwoniono |
{{call_summary}} | Wygenerowane przez AI podsumowanie połączenia |
{{call_sentiment}} | Sentyment (pozytywny/neutralny/negatywny) |
{{call_task_achieved}} | Czy zadanie połączenia zostało osiągnięte |
{{call_transcription}} | Pełna transkrypcja połączenia |
WhatsApp wymaga, aby każda wiadomość zainicjowana przez firmę poza 24-godzinnym oknem obsługi klienta używała wstępnie zatwierdzonego szablonu. HANC synchronizuje listę zatwierdzonych szablonów ze współdzielonego konta Twilio Content, więc lista rozwijana zawsze pokazuje dokładnie to, co kwalifikuje się do wysłania w danej chwili — nie możesz przypadkowo wybrać wersji roboczej, odrzuconego szablonu ani nieistniejącego SID. Aby dodać nowy szablon, skontaktuj się ze wsparciem; po zatwierdzeniu przez WhatsApp pojawia się on automatycznie na liście rozwijanej.
Wywołanie API
Akcja Wywołanie API po rozmowie to Twój ogólny webhook do reszty Twojego stosu. Wybierz metodę, ustaw URL, a my wyślemy całe dane połączenia — Twój endpoint otrzymuje ustrukturyzowany obiekt JSON opisujący, co się wydarzyło.
| Ustawienie | Opis |
|---|---|
| Nazwa | Wymagane. Identyfikator akcji |
| Warunek wyzwalający | Kiedy uruchomić (puste = każde połączenie). Oceniane przez LLM względem transkrypcji. |
| URL API | Wymagane. Adres URL endpointu API |
| Metoda HTTP | Wymagane. GET, POST, PUT, DELETE, PATCH |
| Nagłówki | Opcjonalne nagłówki żądania |
| Parametry zapytania | Opcjonalne parametry ciągu zapytania |
Co otrzymuje Twój endpoint
Dla POST / PUT / PATCH Twój endpoint otrzymuje obiekt JSON w body żądania. Twoje skonfigurowane parametry body są łączone z pełnymi danymi połączenia:
{
"call_from": "+431234567890",
"call_to": "+439876543210",
"direction": "inbound",
"call_type": "phone",
"call_status": "ended",
"start_timestamp": 1730000000000,
"end_timestamp": 1730000187000,
"duration": 187000,
"transcription": [
{ "speaker": "agent", "content": "Hello…", "timestamp": 1730000001000 },
{ "speaker": "user", "content": "Hi…", "timestamp": 1730000003000 }
],
"call_summary": "Customer asked about pricing…",
"task_achieved": true,
"sentiment": { "sentiment": "positive", "explanation": "…" },
"custom_analysis_data": {
"name": "John",
"email": "john@example.com"
},
"collected_data": { /* in-call form submissions */ },
"transfer_history": [ /* if any agent transfer happened */ ],
"recording_url": "https://…",
"disconnection_reason": "user_hangup",
"is_anonymous": false,
"is_simulation": false,
"created_at": 1730000000000,
"updated_at": 1730000187000
}
Dla GET / DELETE te same pola są spłaszczane do ciągu zapytania — ale wartości zagnieżdżone takie jak transcription, sentiment i custom_analysis_data są pomijane (URL-e nie mogą sensownie przenosić danych ustrukturyzowanych). Użyj POST/PUT/PATCH, jeśli potrzebujesz transkryptu.
Każde żądanie otrzymuje również nagłówek X-Correlation-Id do śledzenia i wygasa po 30 sekundach.
- Wstępne pobieranie szablonuje
{phone}itd. do URL/nagłówków/zapytania/body. Zwraca do promptu, przed połączeniem. - Wywołanie API po rozmowie wysyła całe dane połączenia w body lub zapytaniu. Bez szablonowania URL — Twój endpoint otrzymuje statyczny URL + dynamiczne body.
Zmienne pobierania
Zmienne pobierania to niestandardowe pola danych, które AI automatycznie wyodrębnia z rozmów. Na przykład agent może przechwycić imię dzwoniącego, e-mail, numer telefonu lub dowolne inne informacje, które zdefiniujesz.
Zmienne domyślne
Każdy nowy agent jest tworzony z dwiema domyślnymi zmiennymi pobierania:
| Zmienna | Typ | Opis |
|---|---|---|
| Adres e-mail dzwoniącego | ||
| Phone | Phone | Numer telefonu dzwoniącego |
Są one domyślnie włączone i pokazywane w formularzu widgetu połączeń. Możesz je edytować lub usunąć oraz dodać własne niestandardowe zmienne.
Typy zmiennych
| Typ | Zastosowanie | Przykład |
|---|---|---|
| Tekst | Imiona, adresy, notatki, dowolny tekst | Imię klienta, adres dostawy |
| Liczba | Ilości, budżety, ID | Ilość w zamówieniu, kwota budżetu |
| Adresy e-mail z walidacją | E-mail klienta | |
| Phone | Numery telefonów z walidacją | Numer telefonu klienta |
| Selektor | Wybór z predefiniowanych opcji | Preferowany plan (Basic/Pro/Enterprise) |
| Checkbox | Zgoda lub potwierdzenie tak/nie | „Wyrażam zgodę na otrzymywanie e-maili marketingowych" |
Konfigurowanie zmiennej
| Pole | Opis | Przykład |
|---|---|---|
| Nazwa zmiennej | Wymagane. Identyfikator zmiennej | customer_email |
| Instrukcje dla AI | Wymagane. Instrukcje dla AI, kiedy i jak wyodrębnić tę wartość | "Adres e-mail klienta. Zapytaj, jeśli nie podano." |
| Przykładowy format | (Opcjonalne) Przykład oczekiwanego formatu | "john@example.com" |
| Opcje (dla Selektora) | (Tylko Selektor) Lista dozwolonych opcji | ["Basic", "Pro", "Enterprise"] |
| Pokaż w formularzu | Czy wyświetlić to pole w formularzu widgetu połączeń | Domyślnie włączone |
Pokaż w formularzu
Gdy Pokaż w formularzu jest włączone, zmienna pojawia się jako widoczne pole wejściowe w widgecie webowym przed i podczas połączenia. Pozwala to dzwoniącym bezpośrednio wpisać swoje informacje, oprócz wyodrębniania ich przez AI z rozmowy.
AI naturalnie zapyta o brakujące informacje podczas rozmowy. Ustaw jasny opis, taki jak „Adres e-mail klienta, zapytaj uprzejmie, jeśli nie podano", a agent się tym zajmie.
Dodawanie narzędzi i akcji
- Przejdź do zakładki Akcje swojego agenta.
- Kliknij Dodaj narzędzie.
- Wybierz właściwą fazę z listy rozwijanej — Wstępne pobieranie, Rozmowa na żywo lub Po rozmowie.
- Skonfiguruj ustawienia.
- Zapisz — zmiany obowiązują przy następnym połączeniu.
Wszystkie wpisy są wymienione razem w tabeli Akcje. Kliknij dowolny wiersz, aby edytować, lub użyj ikony kosza, aby usunąć.
Powiązane
- Przegląd agentów głosowych
- Inżynieria promptów — Odwołuj się do narzędzi w swoim prompcie
- Baza wiedzy — Źródła informacji
- Integracje — Systemy zewnętrzne, z którymi mogą rozmawiać Twoje narzędzia