Greitoji pradžia (API)

Šiame vadove pateikiami keturi REST iškvietimai, kurių reikia, kad į pirmąjį telefono skambutį atsilieptų jūsų DI agentas.

1 veiksmas: gaukite API raktą

  1. Prisijunkite

    Atidarykite app.thunderphone.com.

  2. Eikite į Raktai

    Valdymo skydelyje eikite į Organizacija → Raktai.

  3. Sukurkite raktą

    Spustelėkite Sukurti raktą, suteikite jam pavadinimą ir nukopijuokite sk_live_... reikšmę. Neapdorotas raktas rodomas tik vieną kartą — nedelsdami išsaugokite jį savo paslapčių tvarkyklėje.

Šiame vadove pakeiskite sk_live_YOUR_API_KEY reikšme, kurią ką tik nukopijavote. Raktas automatiškai identifikuoja jūsų organizaciją, todėl URL adresuose niekada nereikia nurodyti organizacijos ID.

2 veiksmas: sukurkite agentą

Agentas apibrėžia, kaip DI tvarko pokalbius — raginimą, balsą, produkto pakopą, įrankius ir valdiklio tinkamumą.

curl -X POST https://api.thunderphone.com/v1/agents \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":   "Customer Support",
    "prompt": "You are a friendly support agent for Acme Corp. Help with orders, returns, and product info. Be concise and helpful.",
    "voice":  "john",
    "product": "spark"
  }'
import os, requests

agent = requests.post(
    "https://api.thunderphone.com/v1/agents",
    headers={"Authorization": f"Bearer {os.environ['THUNDERPHONE_API_KEY']}"},
    json={
        "name":   "Customer Support",
        "prompt": "You are a friendly support agent for Acme Corp. Help with orders, returns, and product info. Be concise and helpful.",
        "voice":  "john",
        "product": "spark",
    },
).json()
print("Agent id:", agent["id"])
const agent = await fetch("https://api.thunderphone.com/v1/agents", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.THUNDERPHONE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name:    "Customer Support",
    prompt:  "You are a friendly support agent for Acme Corp. Help with orders, returns, and product info. Be concise and helpful.",
    voice:   "john",
    product: "spark",
  }),
}).then((r) => r.json());
console.log("Agent id:", agent.id);

3 veiksmas: Užsakykite telefono numerį

Ši užklausa paprašo ThunderPhone demonstracinio numerių fondo numerio ir priskiria jūsų naujai sukurtą agentą įeinančių skambučių tvarkytoju. (Jei norite naudoti savo numerį iš VoIP teikėjo, žr. VoIP jungtys.)

# First provision
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"}'

# Then assign the agent you created in Step 2
curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/<id-from-previous> \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inbound_agent_id": 12}'
number = requests.post(
    "https://api.thunderphone.com/v1/phone-numbers",
    headers={"Authorization": f"Bearer {os.environ['THUNDERPHONE_API_KEY']}"},
    json={"area_code": "415"},
).json()
requests.patch(
    f"https://api.thunderphone.com/v1/phone-numbers/{number['id']}",
    headers={"Authorization": f"Bearer {os.environ['THUNDERPHONE_API_KEY']}"},
    json={"inbound_agent_id": agent["id"]},
)
print("Your ThunderPhone number:", number["number"])

Jūsų naujo numerio pradinis status="provisioning", o per kelias sekundes jis pasikeičia į active; kol uždarysite naršyklę, numeris bus paruoštas priimti skambučius.

4 veiksmas (nebūtinas): Sukonfigūruokite žiniatinklio kabliuką

Jei reikia įvykių realiuoju laiku (dinaminio skambučių nukreipimo, apdorojimo po skambučio), pridėkite žiniatinklio kabliuko galinį tašką. Prenumeruokite tik jums reikalingus įvykius.

curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label":  "Prod webhook",
    "url":    "https://your-server.com/thunderphone-webhook",
    "events": ["telephony.incoming", "telephony.complete"]
  }'

Atsakyme pateikiama vienkartinė secret reikšmė — nukopijuokite ją į savo paslapčių tvarkyklę. Naudokite šią paslaptį X-ThunderPhone-Signature antraštei gaunamose užklausose patikrinti (žr. Žiniatinklio kabliukų apžvalga).

5 veiksmas: Išbandykite agentą

Paskambinkite ką tik užsakytu numeriu. Agentas atsiliepia, prisistato ir laikosi jūsų nurodymo.

Peržiūrėkite skambutį jam pasibaigus:

curl https://api.thunderphone.com/v1/calls \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Atidarykite konkretų skambutį, kad gautumėte pokalbio išrašą ir įrašo URL:

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

Tolesni veiksmai