SMS-id ja kõned otse n8n töövoost
n8n kutsub volai REST API-t HTTP Request sõlme kaudu - ilma koodita saab töövoog saata SMS-i, käivitada häälagendi kaudu kõne ja saada tulemuse tagasi webhookina.
1Salvestage võti credentialina
Looge n8n-is uus HTTP Header Auth tüüpi credential: päise nimi Authorization, väärtus Bearer vk_TEIE_VOTI (võtme leiate portaalist jaotisest AI-assistent). Määrake see igale HTTP Request sõlmele, mis kutsub volai.cz/v1/* - sama võti kehtib SMS-ide, kõnede ja webhooki jaoks.
2Saatke töövoost SMS
Lisage HTTP Request sõlm: meetod POST, URL https://volai.cz/v1/messages, JSON-keha väljadega to ja body. Vastus sisaldab välja priceHal (hind haleritena, 1/100 CZK, sõnumi kõigi segmentide eest) ja segments - diakriitiliste märkidega tekst võtab rohkem segmente kui puhas ASCII-sõnum. Allolev näide jätab sõnumi teksti seetõttu meelega ilma diakriitiliste märkideta, et see mahuks ühte segmenti - diakriitikaga töötab see samamoodi, kulub lihtsalt rohkem segmente.
curl -X POST https://volai.cz/v1/messages \
-H "Authorization: Bearer vk_TEIE_VOTI" \
-H "Content-Type: application/json" \
-d '{"to": "+420777123456", "body": "Tellimus on valmis kaasa votmiseks."}'3Helistage kliendile oma agendi kaudu
Teine HTTP Request sõlm: POST https://volai.cz/v1/calls väljadega to ja olemasoleva häälagendi agentId (agendi saate luua portaalis või kaudu POST /v1/agents) - agendil peab olema määratud oma number, vastasel juhul lõpeb päring veaga agent_no_number. Päring ainult käivitab kõne ja tagastab selle id - tegelik tulemus (lõppes, ei vastatud, ebaõnnestus) selgub järgmise sammu webhookist.
curl -X POST https://volai.cz/v1/calls \
-H "Authorization: Bearer vk_TEIE_VOTI" \
-H "Content-Type: application/json" \
-d '{"to": "+420777123456", "agentId": "ag_kx91fa2b"}'4Seadistage webhook, et töövoog saaks vastuse
Lisage Webhook päästik (n8n genereerib URL-i) ja salvestage sama aadress kaudu PUT /v1/webhook koos teid huvitavate sündmuste loendiga. Ettevaatust: tühi massiiv events ei tähenda mitte ühtegi sündmust, vaid kõiki - loetlege soovitud sündmused seetõttu alati ise. Vastus tagastab ka secret - salvestage see kohe, GET /v1/webhook ei tagasta seda kunagi uuesti.
curl -X PUT https://volai.cz/v1/webhook \
-H "Authorization: Bearer vk_TEIE_VOTI" \
-H "Content-Type: application/json" \
-d '{"url": "https://teie-n8n.app.n8n.cloud/webhook/volai", "events": ["call.completed", "message.sent"]}'5Kontrollige allkirja, enne kui keha töötlete
Iga päring kannab päist Volai-Signature kujul t=<unix>,v1=<hex>. Arvutage Code sõlmes HMAC-SHA256 üle {t}.{rawBody} oma secret abil ja võrrelge seda v1-ga - töödelge keha alles siis, kui need klapivad. Lülitage Webhook sõlmes jaotises Add Options sisse valik Raw Body - ilma selleta parsib n8n keha kohe ja täpsed baidid, mille üle allkiri arvutati, lähevad kaotsi. Sisse lülitatuna saabub keha hoopis binaarandmetena (omadus data), mitte json.body sees - allolev kood loeb seda seetõttu getBinaryDataBuffer kaudu, mis töötab sõltumata sellest, kas n8n hoiab binaarandmeid mälus, kettal või S3-s. Sisseehitatud crypto moodulit saab Code sõlmes kasutada ainult self-hosted n8n-is, kus on lubatud NODE_FUNCTION_ALLOW_BUILTIN=crypto - n8n Cloud ei toeta moodulite importi üldse, nii et kontroll ei mahu seal ühte sõlme. Cloudis pikendage ahelat seetõttu sõlmega Extract From File (operatsioon Extract From Text File) - see teisendab binaarandmed tekstiks valitud väljal (nt rawBody) - ja alles seejärel arvutab sõlm Crypto (tegevus Hmac, tüüp SHA256, kodeering HEX, väärtuseks avaldis, mis liidab päisest pärit ajatempli väljaga rawBody, secret sisestatud Crypto credentiali kaudu, mitte tavalise tekstiväljana) räsi ilma koodita; võrdluse v1-ga lõpetab sõlm IF.
// Sisend Webhook-sõlmest, kus on sisse lülitatud valik Raw Body: header on "Volai-Signature"
// väärtus, nt "t=1756111640,v1=8f2ac1d4..."; toortekst
// saabub binaarandmetena (omaduse vaikenimi "data"), mitte json.body sees.
const header = $input.first().json.headers['volai-signature'];
// getBinaryDataBuffer töötab kõigis n8n binaarandmete salvestusrežiimides
// (vaikimisi mälus ning filesystem/S3) - otse lugemine
// $input.first().binary.data.data töötaks ainult mälurežiimis.
const rawBody = (await this.helpers.getBinaryDataBuffer(0, 'data')).toString('utf8');
// secret on väärtus sammust 4 (PUT /v1/webhook) - tootmises loe see
// n8n credentialist või keskkonnamuutujast, ära kirjuta seda kunagi otse koodi
const secret = 'whsec_asendage_oma';
const crypto = require('crypto'); // ainult self-hosted n8n, vt sammu teksti
const [tPart, v1Part] = header.split(',');
const t = tPart.replace('t=', '');
const v1 = v1Part.replace('v1=', '');
const expected = crypto
.createHmac('sha256', secret)
.update(`${t}.${rawBody}`)
.digest('hex');
if (expected !== v1) {
throw new Error('Vigane Volai-Signature allkiri');
}Mida sellega teha saab
Kinnitus-SMS pärast tellimust
Teie e-pood või broneerimissüsteem saadab uue tellimuse korral n8n-ile webhooki - töövoog saadab kohe kinnitus-SMS-i hinnangulise kättesaamisajaga.
Väljaminevad kõned ajastajast või tabelist
Rida Google Sheetsis, Airtable'is või CRM-is käivitab HTTP Request sõlme, mis helistab kliendile teie häälagendi kaudu - kohtumise meeldetuletus, tellimuse lõpetamise meeldetuletus, lühike küsitlus.
Kõne tulemuse kirjutamine tagasi süsteemi
Webhook call.completed toob kaasa kõne transkriptsiooni, kokkuvõtte ja agendi kogutud andmed (data) - töövoog kirjutab need CRM-i, tabelisse või saadab Slacki, ilma salvestist käsitsi kuulamata.
Korduma kippuvad küsimused
- Kas volai jaoks on ametlik n8n sõlm?
- Veel mitte - praegu piisab n8n-is alati saadaolevatest üldistest sõlmedest HTTP Request ja Webhook. Kontrollitud kogukonna sõlm peaks läbima n8n Creator Portali ülevaatuse - praegu me seda ei ette valmista.
- Kuidas ma tean, et webhooki saatis tõesti volai, mitte keegi võõras?
- Päise
Volai-Signaturejärgi - see on HMAC-SHA256 allkirisecret-iga, mille tagastab igaPUT /v1/webhook(salvestage see kohe,GETei tagasta seda enam). Täpne valem koos Pythoni ja TypeScripti näitega on lehel/docs/webhooky. - Mis juhtub, kui HTTP Request ületab ajalimiidi ja n8n kordab päringut?
- Lisage päis
Idempotency-Keymis tahes püsiva väärtusega (nt tellimuse ID). 24 tunni jooksul saate sama võtmega korduvale päringule tagasi täpselt sama vastuse - SMS-i ega kõnet ei saadeta teist korda. - Kui palju maksab automatiseerimine rohkem kui API käsitsi kutsumine?
- Mitte midagi - n8n-i eest lisatasu pole. Kehtivad samad hinnad nagu hinnakirjas: SMS 1,36 kr (≈ 0,06 EUR), väljaminev kõne 0,92 kr/min (≈ 0,04 EUR), häälagent lisaks 2,50 kr/min (≈ 0,10 EUR). Täpne hinnakiri on lehel
/cenik.
Proovige kohe järele
Registreeruge ja esimesed 50 kr on meie kingitus.