Preskočiť na obsah
REST API

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.

json
{
  "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.

json
{
  "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.

bash
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/messages a 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 Accepted okamž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/calls hovor iba spustí a vráti jeho id - synchronne, behom chvíľky. Či sa hovor naozaj dovolal, dokončil, alebo zlyhal, sa dozviete až neskôr cez webhook call.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.