SMS-y i połączenia prosto ze scenariusza Make
Make wywołuje REST API volai przez ogólny moduł HTTP - ze scenariusza wysyłają Państwo SMS-y, uruchamiają połączenia przez agenta głosowego i odbierają wynik przez webhook.
1Przygotowanie klucza jako połączenia
W module HTTP > Make a request dodajcie Państwo nagłówek Authorization o wartości Bearer vk_TVUJ_KLIC (klucz znajdą Państwo w portalu w sekcji Asystent AI). Zapiszcie go jako połączenie wielokrotnego użytku, aby nie wpisywać go ręcznie w każdym module.
2Wysyłanie SMS-a ze scenariusza
Dodajcie moduł HTTP > Make a request: metoda POST, URL https://volai.cz/v1/messages, body typu Raw (JSON) z polami to i body - wartości najlepiej mapować z bundla poprzedniego modułu (wiersz tabeli, webhook), zamiast wpisywać je ręcznie. Włączcie Parse response, aby priceHal (cena w halerzach za wszystkie segmenty) i segments z odpowiedzi były od razu dostępne w bundlu do dalszego mapowania - bez tej opcji otrzymają Państwo tylko surowy tekst i musieliby dodać osobny moduł Parse JSON. Tekst ze znakami specjalnymi tworzy więcej segmentów niż wiadomość w czystym ASCII.
{
"to": "+420777123456",
"body": "Państwa zamówienie jest gotowe do odbioru."
}3Uruchomienie połączenia przez agenta głosowego
Dodajcie drugi moduł HTTP > Make a request: POST https://volai.cz/v1/calls, body Raw (JSON) z to i agentId istniejącego agenta głosowego - agent musi mieć przypisany własny numer, w przeciwnym razie żądanie zakończy się błędem agent_no_number. Pole to zwykle nie wpisuje się ręcznie, lecz mapuje z bundla poprzedniego modułu (na przykład numer telefonu z wiersza Google Sheets) - kliknijcie w pole i wybierzcie zmienną z menu. Także tutaj warto włączyć Parse response: umieszcza id uruchomionego połączenia od razu w bundlu, dzięki czemu można je dalej mapować bez osobnego modułu Parse JSON. Moduł tylko uruchamia połączenie - faktyczny wynik (zakończone, nieodebrane, nieudane) poznają Państwo dopiero z webhooka w następnym kroku.
{
"to": "+420777123456",
"agentId": "ag_kx91fa2b"
}4Odbieranie zdarzeń zwrotnie przez Custom webhook
Dodajcie moduł Webhooks > Custom webhook - Make wygeneruje URL i natychmiast potwierdzi przychodzące żądanie (spełnia to warunek szybkiej odpowiedzi 200 z /docs/webhooky). Ten sam adres zapiszcie przez PUT /v1/webhook razem z listą zdarzeń, które Państwa interesują. Uwaga: puste pole events nie oznacza braku zdarzeń, lecz wszystkie - dlatego zawsze wymieniajcie potrzebne pojedynczo. Odpowiedź zawiera także secret - zapiszcie go od razu, GET /v1/webhook już go nie zwróci.
curl -X PUT https://volai.cz/v1/webhook \
-H "Authorization: Bearer vk_TVUJ_KLIC" \
-H "Content-Type: application/json" \
-d '{"url": "https://hook.eu2.make.com/xxxxxxxx", "events": ["call.completed", "message.sent"]}'5Rozgałęzienie scenariusza według typu zdarzenia
Rozróżniajcie pole event w body webhooka (call.completed, call.failed, call.no_answer, call.missed, message.sent, message.received) za pomocą modułu Router lub filtra na krawędzi gałęzi. Dodajcie weryfikację podpisu Volai-Signature (HMAC-SHA256 z {t}.{rawBody} przy użyciu Państwa secret) według dokładnego wzoru z /docs/webhooky - w scenariuszu wrażliwym (płatności, księgowość) nie pomijajcie jej.
Co Państwo z tym zrobią
Iterator wysyła SMS-y do całej listy kontaktów
Moduł Iterator rozbija tablicę kontaktów (na przykład z Google Sheets lub tablicy JSON) na pojedyncze wpisy, a moduł HTTP wywołuje następnie dla każdego z osobna POST /v1/messages - typowo zbiorowe powiadomienie lub przypomnienie dla całej grupy klientów naraz.
Filtr na połączeniu decyduje, do kogo zadzwonić
Make pozwala nałożyć warunek bezpośrednio na połączenie między dwoma modułami - filtr przepuszcza tylko wiersze spełniające warunek (na przykład: termin jest jutro, a klient jeszcze nie potwierdził) i dopiero one uruchamiają moduł HTTP dla POST /v1/calls.
Error Handler przechwytuje nieudane połączenie
Dodajcie do modułu HTTP wywołującego /v1/calls trasę Error Handler z dyrektywą Ignore - niepowodzenie pojedynczego połączenia (na przykład z powodu nieprawidłowego numeru) zapiszą Państwo w tabeli albo wyślą do ręcznego sprawdzenia na Slacka, bez przerywania całego scenariusza.
Często zadawane pytania
- Czy volai ma własną aplikację w marketplace Make?
- Jeszcze nie - wystarczą ogólne moduły HTTP i Webhooks, które Make zawsze udostępnia. Własna aplikacja w Make zależy od Make Technology Partner Program, którego obecnie nie realizujemy.
- Ile operacji zużywa scenariusz z dwoma modułami HTTP?
- Każde wykonanie modułu liczy się jako jedna operacja - scenariusz wywołujący
/v1/messages, a potem/v1/calls, zużywa na jedno uruchomienie około dwóch do trzech operacji, zależnie od liczby modułów pomiędzy. Limit operacji wyznacza Państwa taryfa Make, nie volai. - Jak ustawić nad modułem HTTP Error Handler, aby niepowodzenie połączenia nie zatrzymywało całego scenariusza?
- Kliknijcie Państwo prawym przyciskiem myszy moduł HTTP i dodajcie trasę Error Handler. Wybierzcie w niej dyrektywę Ignore - scenariusz zignoruje błąd i będzie działał dalej, jakby moduł nie zwrócił żadnego wyniku. Jeśli kolejne moduły potrzebują wartości zastępczej w miejsce brakującego wyniku, użyjcie Resume z własnym wynikiem zastępczym. Po Break sięgajcie tylko wtedy, gdy chcą Państwo natychmiast zatrzymać przebieg i powtórzyć wykonanie później, ręcznie lub automatycznie.
- Dlaczego Custom webhook odpowiada od razu `Accepted`, jeszcze przed przejściem scenariusza?
- Tak domyślnie działa moduł Custom webhook - natychmiast potwierdza odbiór statusem 200 i tekstem
Accepted, a scenariusz działa dalej w tle. Wywołującemu (na przykład volai) wystarczy otrzymać 200 w ciągu kilku sekund - to jest spełnione. - Dlaczego moduł HTTP po POST /v1/calls od razu działa dalej, choć połączenie jeszcze się nie zakończyło?
POST /v1/callstylko uruchamia połączenie i zwraca jegoid- synchronicznie, w ułamku sekundy. Czy połączenie faktycznie doszło do skutku, zostało zakończone czy nie powiodło się, dowiedzą się Państwo dopiero później z webhookacall.completed/call.failed/call.no_answer/call.missed. Scenariusz nie musi więc na nic czekać ani o nic dopytywać - do tego wyniku wystarczy podpiąć opisany wyżej moduł Custom webhook.
Proszę wypróbować od razu
Proszę się zarejestrować, a pierwsze 50 kr salda dostają Państwo od nas.