Preskoči na vsebino
REST API

SMS in klici neposredno iz scenarija Make

Make pokliče REST API volai prek splošnega modula HTTP - iz scenarija tako pošljete SMS, sprožite klic prek glasovnega agenta, rezultat pa prejmete z webhookom.

1Ključ pripravite kot connection

V modulu HTTP > Make a request dodajte glavo Authorization z vrednostjo Bearer vk_TVUJ_KLIC (ključ najdete v portalu v razdelku AI asistent). Shranite ga kot ponovno uporabno povezavo, da ga vam ni treba prepisovati v vsak modul posebej.

2Pošljite SMS iz scenarija

Dodajte modul HTTP > Make a request: metoda POST, URL https://volai.cz/v1/messages, telo vrste Raw (JSON) s polji to in body - vrednosti lahko preslikate iz bundla prejšnjega modula (vrstica tabele, webhook), namesto da bi jih prepisovali ročno. Vklopite Parse response, da se priceHal (cena v halerjih za vse segmente) in segments iz odgovora takoj razčlenita v bundle za nadaljnje preslikovanje - brez tega dobite le surovo besedilo in bi morali dodati poseben modul Parse JSON. Pri besedilu z diakritičnimi znaki je segmentov več kot pri sporočilu samo z znaki ASCII.

json
{
  "to": "+420777123456",
  "body": "Objednavka je pripravena k vyzvednuti."
}

3Sprožite klic prek glasovnega agenta

Dodajte drugi modul HTTP > Make a request: POST https://volai.cz/v1/calls, telo Raw (JSON) s poljema to in agentId obstoječega glasovnega agenta - agent mora imeti dodeljeno lastno številko, sicer zahteva spodleti z napako agent_no_number. Polja to običajno ne izpolnjujete ročno, ampak ga preslikate iz bundla prejšnjega modula (na primer telefonsko številko iz vrstice Google Sheets) - kliknite polje in izberite spremenljivko s seznama. Tudi tu je uporaben Parse response: id sproženega klica razčleni neposredno v bundle, da ga je mogoče preslikati naprej brez posebnega modula Parse JSON. Modul klic le sproži - o dejanskem izidu (zaključen, brez odgovora, spodletel) izveste šele iz webhooka v naslednjem koraku.

json
{
  "to": "+420777123456",
  "agentId": "ag_kx91fa2b"
}

4Dogodke prejmite nazaj prek Custom webhook

Dodajte modul Webhooks > Custom webhook - Make vam ustvari URL in prejeto zahtevo takoj potrdi (s tem je izpolnjen pogoj hitrega odgovora 200 iz /docs/webhooky). Isti naslov shranite prek PUT /v1/webhook skupaj s seznamom dogodkov, ki vas zanimajo. Pozor: prazno polje events ne pomeni nobenega dogodka, ampak čisto vse - raje jih vedno naštejte. Odgovor vrne tudi secret - shranite ga takoj, GET /v1/webhook ga ne vrne več.

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"]}'

5Scenarij razvejite glede na vrsto dogodka

Polje event v telesu webhooka (call.completed, call.failed, call.no_answer, call.missed, message.sent, message.received) ločite z modulom Router ali filtrom na robu veje. Preverjanje podpisa Volai-Signature (HMAC-SHA256 nad {t}.{rawBody} z vašim secret) dodajte po natančni formuli na /docs/webhooky - pri občutljivem scenariju (plačila, vnos v računovodstvo) ga ne izpuščajte.

Kaj lahko z njim naredite

Iterator razpošlje SMS po seznamu stikov

Modul Iterator razgradi polje stikov (na primer iz Google Sheets ali polja JSON) na posamezne elemente, modul HTTP pa nato za vsakega posebej pokliče POST /v1/messages - običajno skupno obvestilo ali opomnik za celotno skupino strank naenkrat.

Filter na povezavi odloči, komu pokličete

Make omogoča postaviti pogoj neposredno na povezavo med moduloma - filter spusti naprej samo vrstice, ki pogoj izpolnjujejo (na primer da je termin jutri in stranka še ni potrdila), in šele te sprožijo modul HTTP za POST /v1/calls.

Error handler ujame spodletel klic

Modulu HTTP, ki kliče /v1/calls, dodajte pot error handler z direktivo Ignore - neuspeh enega klica (na primer neveljavna številka) tako zapišete v tabelo ali pošljete v Slack v ročni pregled, ne da bi se zrušil celoten scenarij.

Pogosta vprašanja

Ali za volai obstaja lastna aplikacija v tržnici Make?
Zaenkrat ne - dovolj sta splošna modula HTTP in Webhooks, ki ju ima Make vedno na voljo. Lastna aplikacija v Make je vprašanje programa Make Technology Partner Program, ki ga zaenkrat ne obravnavamo.
Koliko operacij porabi scenarij z dvema moduloma HTTP?
Vsak zagon modula se šteje kot ena operacija - scenarij, ki pokliče /v1/messages in nato /v1/calls, porabi približno dve do tri operacije na zagon, odvisno od tega, koliko modulov je vmes. Omejitev operacij določa vaš paket Make, ne volai.
Kako nastavim error handler nad modulom HTTP, da neuspeh enega klica ne ustavi celotnega scenarija?
Z desnim klikom na modul HTTP dodajte pot error handler. V njej izberite direktivo Ignore - scenarij napako prezre in teče naprej, kot da modul ne bi vrnil nobenega izhoda. Če nadaljnji moduli namesto manjkajočega izhoda potrebujejo nadomestno vrednost, uporabite Resume z lastnim nadomestnim izhodom. Po Break posezite le, kadar želite izvajanje takoj ustaviti in zagon nato ročno ali samodejno ponoviti.
Zakaj Custom webhook takoj vrne `Accepted`, še preden se scenarij konča?
Tako Custom webhook privzeto deluje - prejem potrdi s statusom 200 in besedilom Accepted takoj, scenarij pa nato teče v ozadju. Klicatelju (na primer volai) zadošča, da v nekaj sekundah dobi 200 - kar je izpolnjeno.
Zakaj modul HTTP po klicu POST /v1/calls takoj nadaljuje, čeprav se klic še ni končal?
POST /v1/calls klic le sproži in vrne njegov id - sinhrono, v trenutku. Ali se je klic dejansko vzpostavil, zaključil ali spodletel, izveste šele pozneje prek webhooka call.completed / call.failed / call.no_answer / call.missed. Scenarij zato ne rabi na nič čakati ali karkoli povpraševati - na ta rezultat se preprosto navežite z modulom Custom webhook, opisanim zgoraj.

Preizkusite takoj

Registrirajte se in prvih 50 kr je na naš račun.