SMS a hovory priamo zo scenára Make
Make zavolá REST API volai cez všeobecný modul HTTP - zo scenára tak odošlete SMS, spustíte hovor cez hlasového agenta a výsledok dostanete webhookom.
1Pripravte si kľúč ako connection
V module HTTP > Make a request pridajte hlavičku Authorization s hodnotou Bearer vk_TVUJ_KLIC (kľúč nájdete v portáli v sekcii AI asistent). Uložte ho ako opakovane použiteľné pripojenie, aby ste ho nemuseli prepisovať do každého modulu zvlášť.
2Pošlite SMS zo scenára
Pridajte modul HTTP > Make a request: metóda POST, URL https://volai.cz/v1/messages, telo typu Raw (JSON) s poľami to a body - hodnoty pokojne namapujte z bundlu predchádzajúceho modulu (riadok tabuľky, webhook) namiesto ručného prepisovania. Zapnite Parse response, aby sa priceHal (cena v halieroch za všetky segmenty) a segments z odpovede hneď rozložili do bundlu na ďalšie mapovanie - bez toho dostanete len surový text a museli by ste pridať osobitný modul Parse JSON. Pri texte s diakritikou vyjde segmentov viac než pri čisto ASCII správe.
{
"to": "+420777123456",
"body": "Objednavka je pripravena k vyzvednuti."
}3Spustite hovor cez hlasového agenta
Pridajte druhý modul HTTP > Make a request: POST https://volai.cz/v1/calls, telo Raw (JSON) s to a agentId existujúceho hlasového agenta - agent musí mať priradené vlastné číslo, inak požiadavka skončí chybou agent_no_number. Pole to zvyčajne nevypisujete ručne, ale namapujete z bundlu predchádzajúceho modulu (napríklad telefónne číslo z riadku Google Sheets) - kliknite do poľa a vyberte premennú z ponuky. Aj tu sa hodí Parse response: rozloží id spusteného hovoru hneď do bundlu, aby sa dalo namapovať ďalej bez osobitného modulu Parse JSON. Modul hovor iba spustí - o skutočnom výsledku (dokončil sa, nezdvihol sa, zlyhal) sa dozviete až z webhooku v ďalšom kroku.
{
"to": "+420777123456",
"agentId": "ag_kx91fa2b"
}4Prijmite udalosti späť cez Custom webhook
Pridajte modul Webhooks > Custom webhook - Make vám vygeneruje URL a prijatú požiadavku hneď potvrdí (spĺňa podmienku rýchlej odpovede 200 z /docs/webhooky). Rovnakú adresu uložte cez PUT /v1/webhook spolu so zoznamom udalostí, ktoré vás zaujímajú. Pozor: prázdne pole events neznamená žiadnu udalosť, ale úplne všetky - radšej ich vždy vymenujte. Odpoveď vráti aj secret - uložte si ho hneď, GET /v1/webhook ho už nevráti.
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"]}'5Rozvetvite scenár podľa typu udalosti
Pole event v tele webhooku (call.completed, call.failed, call.no_answer, call.missed, message.sent, message.received) rozlíšte modulom Router alebo filtrom na hrane vetvy. Overenie podpisu Volai-Signature (HMAC-SHA256 nad {t}.{rawBody} s vaším secret) doplňte podľa presného vzorca na /docs/webhooky - pri citlivom scenári (platby, zápis do účtovníctva) ho nevynechávajte.
Čo s tým urobíte
Iterator rozošle SMS naprieč zoznamom kontaktov
Modul Iterator rozloží pole kontaktov (napríklad z Google Sheets alebo z poľa JSON) na jednotlivé položky a modul HTTP potom pre každú zavolá POST /v1/messages osobitne - typicky hromadné oznámenie alebo pripomienka pre celú skupinu zákazníkov naraz.
Filter na spojnici rozhodne, komu sa má zavolať
Make vie podmienku umiestniť priamo na spojnicu medzi modulmi - filter pustí ďalej iba riadky, ktoré spĺňajú podmienku (napríklad termín je zajtra a zákazník ešte nepotvrdil), a až tie spustia modul HTTP na POST /v1/calls.
Error handler zachytí neúspešný hovor
Na modul HTTP, ktorý volá /v1/calls, pridajte error handler route so smerom Ignore - zlyhanie jedného hovoru (napríklad neplatné číslo) tak zapíšete do tabuľky alebo pošlete na Slack na ručnú kontrolu, bez toho, aby spadol celý scenár.
Časté otázky
- Existuje pre volai vlastná aplikácia v Make marketplace?
- Zatiaľ nie - stačia všeobecné moduly HTTP a Webhooks, ktoré má Make vždy k dispozícii. Vlastná aplikácia v Make je otázkou Make Technology Partner Programu, ktorý zatiaľ neriešime.
- Koľko operácií spotrebuje scenár s dvoma modulmi HTTP?
- Každé spustenie modulu sa počíta ako jedna operácia - scenár, ktorý zavolá
/v1/messagesa potom/v1/calls, spotrebuje rádovo dve až tri operácie na beh, podľa toho, koľko modulov stojí medzi nimi. Limit operácií určuje váš plán Make, nie volai. - Ako nastavím error handler nad modulom HTTP, aby zlyhanie jedného hovoru nezastavilo celý scenár?
- Kliknite pravým tlačidlom na modul HTTP a pridajte error handler route. Vo vnútri zvoľte direktívu Ignore - scenár chybu ignoruje a pokračuje ďalej, akoby modul nevrátil žiadny výstup. Ak ďalšie moduly potrebujú náhradnú hodnotu namiesto chýbajúceho výstupu, použite Resume s vlastným záložným výstupom. Po Break siahnite, len ak chcete beh hneď zastaviť a spustenie si potom ručne alebo automaticky zopakovať.
- Prečo Custom webhook vráti `Accepted` hneď, ešte než scenár dobehne?
- Tak Custom webhook modul funguje v predvolenom nastavení - potvrdí príjem stavom 200 a textom
Acceptedokamžite, scenár potom dobehne na pozadí. Volajúcemu (napríklad volai) stačí dostať 200 do pár sekúnd - to spĺňa. - Prečo modul HTTP po zavolaní POST /v1/calls hneď pokračuje ďalej, aj keď hovor ešte neskončil?
POST /v1/callshovor iba spustí a vráti jehoid- synchronne, behom chvíľky. Či sa hovor naozaj dovolal, dokončil, alebo zlyhal, sa dozviete až neskôr cez webhookcall.completed/call.failed/call.no_answer/call.missed. Scenár preto nemusí na nič čakať ani nič pollovať - stačí na tento výsledok nadviazať modulom Custom webhook opísaným vyššie.
Vyskúšajte to hneď
Zaregistrujte sa a prvých 50 kr je na nás.