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).

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.

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.

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).

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.

