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.
Natywny konektor volai do Make możesz zainstalować za pomocą zaproszenia. Umożliwia wysyłanie SMS-ów, rozpoczynanie połączeń i wiadomości głosowych, odczytywanie informacji, takich jak saldo, agenci i numery, oraz automatyczne uruchamianie przy zdarzeniach SMS i połączeń. Konektor nie jest jeszcze wymieniony w publicznym katalogu aplikacji Make. Poniżej nadal dostępna jest też ręczna konfiguracja przez HTTP i Webhooks.
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?
- Konektor volai do Make możesz zainstalować za pomocą zaproszenia. Obsługuje SMS-y, połączenia, wiadomości głosowe, operacje odczytu i automatyczne wyzwalacze zdarzeń SMS oraz połączeń. Konektor nie jest jeszcze wymieniony w publicznym katalogu aplikacji Make. Aby skonfigurować integrację ręcznie, wykonaj poniższe kroki z użyciem HTTP i Webhooks.
- 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?
- Prawym przyciskiem na moduł HTTP proszę dodać error handler i wybrać Ignore, scenariusz działa wtedy dalej. Resume dostarcza zastępczy wynik, Break zatrzymuje wykonanie.
- Dlaczego Custom webhook odpowiada od razu `Accepted`, jeszcze przed przejściem scenariusza?
- Tak działa ten moduł: potwierdza odbiór od razu statusem 200, a scenariusz kończy się w tle. Wywołującemu (na przykład volai) wystarczy otrzymać 200 w ciągu kilku sekund.
- 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 od razu zwraca jegoid. Wynik przychodzi później webhookiemcall.completed,call.failed,call.no_answerlubcall.missed.
Proszę wypróbować od razu
Proszę się zarejestrować, a pierwsze 10 zł salda dostają Państwo od nas.