---
title: "Käsittele saapuvia puheluita (API)"
description: "Alusta loppuun: määritä agentti, liitä se puhelinnumeroon, vastaanota puhelu ja tarkastele transkriptiota."
---

<Note>
  Rakennatko ensimmäistä agenttiasi käsin? Hallintapaneeli ohjaa sinut täsmälleen
  tämän työnkulun läpi — rakenna agentti, lisää numero, simuloi, tarkista — opastetun
  ohjatun toiminnon avulla. Aloita
  [hallintapaneelin pikaoppaasta](/fi/quickstart-dashboard).
</Note>

Kanoninen "vastaa puheluun tekoälyn avulla" -työnkulku suoraan päätteeltäsi.
Sinä:

1. Luot agentin kehotteella ja äänellä.
2. Otat käyttöön (tai tuot) puhelinnumeron ja määrität agentin sen
   saapuvien puheluiden käsittelijäksi.
3. Soitat numeroon. Tarkastelet puhelulokia, transkriptiota ja tallennetta.

API-kutsuja yhteensä: neljä. Kokonaisaika: alle viisi minuuttia.

## 1. Luo agentti

Agentti yhdistää kehotteen, äänen ja puhelua ohjaavan tuotetason.
Voit myös määrittää agentille puhelurajoituksia, kuten `max_call_duration_seconds`
ja `ring_duration_seconds`. Agentit tukevat myös `intro_clip`-asetusta
ja `intro_ring_count`-asetusta valmiiksi tallennetun aloituksen ja enintään kahden
soittoäänen toistamiseen ennen kuin agentti puhuu. Uudet agentit tarvitsevat myös
aikavyöhykkeen. Jos agenttisi on monikielinen, voit määrittää `language_switching`-asetuksen
hallinnoidaksesi sitä, kysyykö se ennen kielen vaihtamista vai seuraako soittajan kieltä.
Katso kaikki määrityskentät kohdasta [Agentit](/api-reference/agents); vähimmäisvaatimukset ovat:

```bash
curl -X POST https://api.thunderphone.com/v1/agents \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":    "Acme Support",
    "prompt":  "You are a friendly support agent for Acme. Help callers with orders and returns. Keep answers short.",
    "voice":   "john",
    "product": "spark"
  }'
```

Tallenna palautettu `id` — tarvitset sitä vaiheessa 2.

<Tip>
  Valitse `spark` yksinkertaisiin kysymyksiin ja vastauksiin pienimmillä kustannuksilla
  ja `bolt`, kun nopeus on tärkeintä. Päivitä tasoon `storm-base-with-ack`, kun kehotteesi
  tarvitsee syvempää päättelyä ja voi sietää puolen sekunnin täytettä mallin
  ajatellessa. Katso
  [tuotetasot](/api-reference/agents#product-tiers-at-a-glance).
</Tip>

## 2. Hanki puhelinnumero

Jos tarvitset vain numeron, johon soittaa, hanki ThunderPhone-numero
ThunderPhonen numerovarannosta:

```bash
curl -X POST https://api.thunderphone.com/v1/phone-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_code": "415"}'
```

Vastaus sisältää `id`:n ja `number`:n E.164-muodossa. ThunderPhone-
numerot alkavat tilassa `status="provisioning"` ja muuttuvat tilaan `active` muutamassa
sekunnissa — kyselyllä
[`GET /v1/phone-numbers/{id}`](/api-reference/phone-numbers#retrieve-a-phone-number)
voit seurata muutosta tarvittaessa.

<Note>
  ThunderPhone-numerot ovat aluksi vain saapuvia puheluita varten. Organisaation ylläpitäjä voi pyytää
  lähteviä puheluita Puhelinnumerot-sivulta. ThunderPhone tarkistaa jokaisen
  pyynnön manuaalisesti; hyväksynnän jälkeen numeroilla voi soittaa puheluita ja toteuttaa
  kampanjoita. Asiakkaan VoIP-numerot pysyvät ennallaan.
</Note>

## 3. Määritä agentti

Liitä vaiheen 1 agentti numeron saapuvien puheluiden suuntaan:

```bash
curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/{phone_id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inbound_agent_id": 12}'
```

Siinä kaikki — numero on käytössä. Kun lähtevät puhelut on hyväksytty organisaatiollesi,
voit asettaa samassa PATCH-pyynnössä myös `outbound_agent_id`:n. Sitä ennen
API hylkää tämän määrityksen virheellä `400`.

Jos ohjaat saapuvat puhelut määrityswebhookin kautta kiinteän
`inbound_agent_id`-arvon sijaan, webhook voi nyt palauttaa puhelukohtaisen `timezone`-arvon
yhdessä `agent_id`- ja `variables`-arvojen kanssa.

## 4. Vastaa puheluun

Soita numeroon puhelimestasi. Agentti vastaa, esittelee itsensä
kehotteesi mukaisesti ja keskustelu alkaa.

Puhelun aikana se näkyy pyynnön
[`GET /v1/calls`](/api-reference/calls#list-calls) tuloksissa tilalla
`status="in_progress"`. Kun puhelu päättyy, tietue päivittyy kentillä
`end_reason`, `duration_seconds`, `billable_minutes` sekä (lopulta)
tallenteen URL-osoitteella ja tekoälyarviolla.

Saapuvat puhelut lasketaan mukaan organisaatiosi
[samanaikaisten puheluiden rajaan](/api-reference/introduction#call-limits) (oletuksena 20
käynnissä olevaa puhelua, jaettu lähtevien, verkko- ja testipuheluiden
kanssa). Rajan saavuttamisen jälkeen saapuva puhelu hylätään ja katkaistaan ennen kuin agentti
vastaa, siitä ei laskuteta, ja se tallennetaan epäonnistuneeksi puheluksi
lopetussyynä `concurrent_call_limit_reached`. Lähetä sähköpostia osoitteeseen support@thunderphone.com, jos
tarvitset suuremman rajan.

## 5. Tarkista tulokset

Hae viimeisimpien puheluiden luettelo:

```bash
curl 'https://api.thunderphone.com/v1/calls?limit=5' \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Hae puhelutallenne:

```bash
curl https://api.thunderphone.com/v1/calls/{call_id}/transcript \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Ja tallenteen URL (lyhytkestoinen, allekirjoitettu):

```bash
curl https://api.thunderphone.com/v1/calls/{call_id}/audio \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Jos tilasit
[`telephony.complete`-webhookin](/fi/webhooks/events),
saat samat tiedot POST-pyyntönä palvelimellesi — katso
[call.complete](/fi/webhooks/call-complete).

Jos agentillasi on määritetty poimintakenttiä, valmiin puhelun tietosisältö voi
sisältää myös jäsenneltyjä poimittuja tietoja.

---

## Seuraavat vaiheet

<CardGroup cols={2}>
  <Card title="Dynaaminen puhelukohtainen määritys" icon="bolt" href="/fi/guides/dynamic-call-config">
    Valitse eri agentti kullekin soittajalle puhelinnumeron tai webhookin
    mukautetun logiikan perusteella.
  </Card>
  <Card title="Lisää työkalujen integraatioita" icon="screwdriver-wrench" href="/fi/guides/build-tool-integration">
    Anna agentin kutsua API-rajapintojasi kesken keskustelun.
  </Card>
  <Card title="Siirrä puheluita" icon="phone-arrow-right" href="/fi/guides/call-transfers">
    Ohjaa soittajat suoraan eteenpäin tai tarkista kohde ennen yhdistämistä.
  </Card>
  <Card title="Vastaanota call.complete-webhookeja" icon="bolt" href="/fi/webhooks/call-complete">
    Suoratoista jokainen päättynyt puhelu CRM- tai analytiikkaputkeesi.
  </Card>
  <Card title="Tekoälyarviointi ja ongelmaraportit" icon="chart-line" href="/api-reference/calls#ai-call-grading">
    Pisteytä jokainen puhelu automaattisesti ja ohjaa merkityt puhelut tarkistettaviksi.
  </Card>
</CardGroup>
