Bambaleo.fi

Puheluihin vastaava tekoälyajanvaraaja, joka yhdistää ElevenLabsin, n8n:n ja Google Calendarin ajanvarausta varten.

Näin rakennat puheluihin vastaavan tekoälyajanvaraajan (ElevenLabs + n8n + Google Calendar)

Tekoälyajanvaraaja vastaa puheluihin vuorokauden ympäri, ymmärtää asiakkaan pyynnöt ja varaa ajan suoraan kalenteristasi. Kun yhdistät ElevenLabs Conversational AI:n puhekäyttöliittymäksi ja n8n:n taustajärjestelmäksi, saat ketterän, kustannustehokkaan ja tuotantokelpoisen kokonaisuuden ilman erillistä ajanvarauspalvelua.

Arkkitehtuuri lyhyesti

Ratkaisun sydän on puhuva agentti, joka käyttää ElevenLabs Agents -alustaa. Se ohjaa asiakkaan puheen tekstiksi ja takaisin puheeksi, sekä kutsuu työkalua (webhook), jonka n8n käsittelee. n8n puolestaan lukee ja kirjoittaa Google Calendariin ja palauttaa puhelussa lausuttavan vastauksen.

Peruskomponentit ovat: 1) ElevenLabs-ääniagentti (puhelu ja dialogi), 2) n8n-työnkulku (Webhook, logiikka, Google Calendar), 3) mahdollinen Gmail/Meet-linkki sekä 4) tietoturva (esim. JWT tai Basic Auth webhookille).

Arkkitehtuurikaavio: puhelu → ElevenLabs-agentti → webhook → n8n → Google Calendar → puhevastauksen palautus (+ Meet/Gmail ja tietoturvakerros).
Korkean tason kaavio puhelusta kalenteriin ja takaisin.

ElevenLabs-agentin määrittely: ääni, prompt ja työkalut

Luo ElevenLabsissa uusi agentti ja kirjoita selkeä system prompt. Kerro agentille rooli (ajanvarausassistentti), tavoitteet (vapaat ajat, vahvistus, kesto) ja säännöt (ei muuta kuin ajanvaraus). Halutessasi ota käyttöön V3 Expressive -tila ja sopiva ääni; puhelukokemus paranee selvästi.

Määritä kaksi webhook-työkalua: get_availability ja create_appointment. Lähetä ne POST-pyyntönä n8n:n Webhook-osoitteeseen, lisää query-parametriksi tool (arvot: get_availability tai create_appointment) ja laita bodyyn tarvittavat kentät (esim. preferred_time, name, email, datetime). Pidä vastaukset lyhyinä ja luettavina ääneen.

  • Suositus: pyydä ensin asiakkaalta toiveaika tai anna 3–5 ehdotusta seuraaville 7–14 päivälle.
  • Kesto: määritä oletukseksi 30–60 min; tarvittaessa tukemaan palvelukohtaista kestoa.
  • Monikielisyys: lisää suomi ja englanti; agentti voi tunnistaa kielen automaattisesti.
ElevenLabs-agentin määrittely: ääni ja system prompt sekä kaksi webhook-työkalua (get_availability, create_appointment) POST-pyynnöllä n8n:ään.
Agentti kutsuu n8n‑webhookia ja lukee vastauksen puhelussa.

n8n-työnkulku: logiikka, kalenteri ja vastaus puheluun

n8n:ssä luot Webhook-triggerin (POST) ja vastaat aina Respond to Webhook -solmulla. Rungon voi toteuttaa reitittimellä (Switch), joka tunnistaa tool-parametrin mukaan mitä tehdään.

  • get_availability: jos asiakkaalla on preferred_time, muunna se tarkaksi aikaväliksi (esim. “tiistai klo 10–17”) AI LLM Chain -solmulla (esim. OpenAI GPT-4.1 Mini). Muussa tapauksessa hae koko seuraavan viikon ikkuna.
  • Kutsu Google Calendar → Get Free/Busy hakemaan varatut slotit. Laske vapaat slotit Code-solmulla (deterministinen ja virhevarma verrattuna LLM:ään) ja palauta 2–5 parasta ehdotusta.
  • Respond to Webhook (JSON): palauta lyhyt, puheystävällinen teksti (esim. “Vapaana tiistaina klo 10:00 ja 10:30. Kumpi sinulle sopisi paremmin?”). Poista erikoismerkit ja html, jotta puheääni on selkeää.
  • create_appointment: parsii name, email ja datetime. Luo tapahtuma Google Calendar → Create Event, lisää summary (esim. “Tapaaminen: Nimi”) ja description (tarkoitus, sähköposti). Salli Google Meet -linkki, jos käytettävissä.

Huolehdi aikavyöhykkeestä (UTC vs. Europe/Helsinki), AM/PM → 24h-muunnoksesta ja siitä, että ElevenLabsille palautettava viesti on lyhyt, selkeä ja ääneen luettava ilman turhaa JSON-muotoilua.

n8n-työnkulku: Webhook (POST) → Switch (tool) → Get Free/Busy / Create Event → Code (vapaat slotit) → Respond to Webhook; aikavyöhykkeet huomioitu.
Työnkulku hakee vapaat ajat ja luo tapahtumat.

Keskustelurunko ja validointi puhelussa

Agentin tulee kerätä nimi ja sähköpostiosoite selkeästi ja varmistaa ne takaisinlukemalla. Aikalauseet (”huomenna klo 15”, ”ensi tiistaina aamupäivällä”) normalisoidaan ennen kalenterikyselyä.

  • Vakiokysymykset: toivepäivä ja -aika, keston vahvistus, nimi ja sähköposti, lyhyt kuvaus tarpeesta.
  • Vahvistus: “Vahvistan ajan tiistai 28.10. klo 10:00, lähetän kutsun osoitteeseen etunimi.sukunimi@example.com. Sopiiko tämä?”
  • Poikkeamat: jos toivetta ei löydy, tarjoa 2–3 lähintä vaihtoehtoa samalle päivälle tai seuraavalle.

Puhelinnumero ja käyttöönotto

Voit ohjata liikenteen selaimesta tai liittää puhelinnumeron (esim. Twilio) ElevenLabsiin. Testaa agenttia ensin Preview/Test-tilassa, ja julkaise vasta kun kalenterivirrat, aikavyöhykkeet ja vartioinnit (”end call” väärinkäytöksissä) ovat kunnossa.

  • LLM-valinta: puhekeskusteluun low-latency ElevenLabs-malli; työkalukutsuissa usein GPT-4.1 tuottaa luotettavamman analyysin.
  • Widget: upota verkkosivulle ja kerää liidejä myös aukioloaikojen ulkopuolella.

Tietoturva ja tietosuoja käytäntöön

Suojaa n8n:n Webhook Basic Auth-, HMAC-header– tai JWT-tarkistuksella. Rajoita puhelumäärät, ja harkitse Zero retention -tilaa tai rajoitettua tallennusta, jos käsittelet arkaluontoista tietoa.

  • GDPR: ilmoita tallennuksesta ja käsittelytarkoituksesta; pidä lokit minimissä.
  • PII-hallinta: käytä valmiita kenttiä (name, email) ja vältä vapaamuotoisen tekstin turhaa tallentamista.

Kampaamo-esimerkki: 45 min hiustenleikkaus ja puskurit

Kampaamo haluaa tarjota ajanvarauksen puhelimitse 24/7. Agentti tunnistaa asiakkaan haluavan palvelun “leikkaus 45 min”, lisää 15 min puskurin ja ehdottaa ensimmäiset vapaat ajat aukioloaikojen puitteissa.

  • Asiakas: “Onko huomenna iltapäivällä aikoja?” Agentti: “Vapaat ajat ovat klo 14:30 ja 15:45. Kumpi sinulle sopisi paremmin?”
  • Vahvistus: kalenteriin “Leikkaus – Etunimi Sukunimi”.
  • Sähköpostivahvistus: Aika vahvistettu perjantaina klo 14:30 (muistutus 24 h ennen).
Kampaamon päiväaikataulu: 45 min leikkaus + 15 min puskuri; vapaat ajat korostettuina klo 14:30 ja 15:45.
Agentti ehdottaa ensimmäiset vapaat ajat aukiolojen puitteissa.

Vianetsintä ja parhaat käytännöt

Aikavyöhykevirheet ja päivämäärämuunnokset ovat yleisin kompastuskivi. Pidä LLM-ketju erillään ajanparsinnasta ja validioi tulos ennen kalenterikutsua.

  • Ei otsikkoa kalenterissa: lisää summary ja description dynaamisesti n8n:ssä.
  • Test vs. Production URL: käytä oikein ElevenLabsin työkaluissa; testissä aja työnkulku manuaalisesti ennen soittoa.
  • Vastaus viipyy: käytä Respond to Webhook -solmua ja palauta lyhyt puheystävällinen teksti.
  • Kielimuunnos: ota tunnistus päälle vain tarvittaessa, jotta latenssi pysyy pienenä.

Laajennukset: CRM, jälkiviestit ja tietopohja

Lisää Make.com tai n8n-integraatio CRM:ään (esim. HubSpot), lähetä “uusi varaus” -sähköposti vastaanotolle ja automaattinen muistutus asiakkaalle. ElevenLabsin Knowledge Base vastaa usein kysyttyihin ilman, että prompti paisuu.

  • Jälkisoitto/siirto ihmiselle: määritä poikkeustilanteet ja reititä puhelu.
  • Raportointi: kerää konversiot (“ehdotukset annettu”, “varaus vahvistettu”) ja optimoi prompti.

 

Hyödyllinen? Jaa eteenpäin.

Kommentoi

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *