---
title: "Koristite ThunderPhone s n8n"
description: "Instalirajte čvor ThunderPhone za n8n, povežite API ključ poslužitelja i izradite radni tijek koji se pokreće svaki put kada poziv završi."
---

[n8n](https://n8n.io) je alat za automatizaciju radnih tijekova. Paket ThunderPhone
za n8n dodaje dva čvora:

- **ThunderPhone Trigger** pokreće radni tijek kada poziv završi (**Call
  Completed**) ili kada se dovrši ocjenjivanje poziva (**Call Graded**).
- **ThunderPhone** upućuje odlazne pozive, dodaje kontakte u kampanje i
  pokreće ih, dohvaća pozive s njihovim prijepisom i snimkom te prikazuje vaše
  agente i telefonske brojeve.

To je verificirani čvor zajednice, naveden na stranici
[ThunderPhone na n8n-u](https://n8n.io/integrations/thunderphone/).

## Instalirajte čvor

U uređivaču n8n kliknite **+** da biste otvorili ploču čvorova i potražite
**ThunderPhone**. Vlasnik instance možda će morati postaviti verificirane čvorove prije
nego što ih drugi korisnici mogu dodati.

Na samostalno hostiranom n8n-u možete instalirati i prema nazivu paketa: otvorite
**Settings > Community Nodes** i instalirajte `n8n-nodes-thunderphone`. Provjerite rizike čvorova zajednice i pravila svoje instance
prije instalacije.

## Izradite API ključ poslužitelja

<Steps>
  <Step title="Otvorite karticu Keys">
    U ThunderPhoneu idite na **Organization → Keys** i kliknite **Create key**.
  </Step>
  <Step title="Imenujte ga">
    Upotrijebite naziv koji označava gdje se ključ koristi, primjerice „n8n”.
  </Step>
  <Step title="Kopirajte ga odmah">
    Cijela tajna `sk_live_...` prikazuje se samo jednom. Kopirajte je prije nego što zatvorite
    dijaloški okvir.
  </Step>
</Steps>

Samo administrator ili vlasnik može izraditi ključ, a ThunderPhone zahtjeve
upućene s njim smatra zahtjevima te osobe. Okidač i radnje za kampanje
zahtijevaju da ta osoba zadrži ulogu administratora ili vlasnika.
[Vodič za izradu API ključa poslužitelja](/hr/guides/api-keys) obuhvaća rotaciju i opoziv.

## Dodajte vjerodajnicu u n8n

1. U n8n-u izradite vjerodajnicu vrste **ThunderPhone API**.
2. Zalijepite ključ u **API Key**.
3. Spremite je i pokrenite test vjerodajnice. Test čita jedan poziv iz vaše
   organizacije putem `GET /v1/calls?limit=1`.

## Izradite prvi tijek rada

Ovaj tijek rada dodaje redak u Google tablicu svaki put kada poziv završi.

<Steps>
  <Step title="Dodajte okidač">
    Dodajte **ThunderPhone Trigger**, odaberite svoje vjerodajnice za ThunderPhone API i
    postavite **Događaj** na **Poziv dovršen**.
  </Step>
  <Step title="Dohvatite poziv">
    Dodajte čvor **ThunderPhone**. Postavite **Resurs** na **Poziv**, **Operacija**
    na **Dohvati**, a **ID poziva** na izraz `{{ $json.data.call_id }}`.
    Izlaz je [zapis poziva](/api-reference/calls) uz `transcripts`
    i `recording_url`, kratkotrajnu poveznicu koja je `null` kada poziv nema
    snimku.
  </Step>
  <Step title="Dodajte redak">
    Dodajte čvor Google Sheets koji dodaje redak i mapirajte željene stupce
    iz izlaza Dohvati poziv (pogledajte tablicu u nastavku).
  </Step>
  <Step title="Aktivirajte tijek rada">
    Spremite i aktivirajte. Okidač registrira svoj produkcijski URL kao krajnju točku
    webhooka u vašoj organizaciji ThunderPhone. Deaktiviranjem tijeka rada
    briše se ta krajnja točka.
  </Step>
  <Step title="Testirajte">
    Otvorite agenta u alatu za izradu, kliknite **Razgovarajte** i završite poziv. Testni
    pozivi iz alata za izradu isporučuju se kao `web.complete`, jedan od dva događaja
    koji stoje iza događaja Poziv dovršen, pa se tijek rada pokreće i pojavljuje se redak.
  </Step>
</Steps>

Korisni stupci:

| Stupac | Izraz |
|---|---|
| ID poziva | `{{ $json.call_id }}` |
| Smjer | `{{ $json.direction }}` |
| Od | `{{ $json.from_number }}` |
| Za | `{{ $json.to_number }}` |
| Početak | `{{ $json.start_time }}` |
| Trajanje (s) | `{{ $json.duration_seconds }}` |
| Status | `{{ $json.status }}` |
| Razlog završetka | `{{ $json.end_reason }}` |
| Poveznica na poziv | `https://app.thunderphone.com/dashboard/call-history/{{ $json.call_id }}` |

Poveznica na poziv otvara poziv u nadzornoj ploči ThunderPhone za članove
vaše organizacije, zajedno s prijepisom i snimkom, pa ih tablica ne mora
sadržavati.

Ako ipak želite dodati prijepis, mapirajte
`{{ $json.transcripts.filter(t => typeof t.content === 'string').map(t => t.role + ': ' + t.content).join('\n') }}`.
URL snimke istječe, stoga spremite ID poziva i ponovno pokrenite Dohvati poziv kada
vam je potrebna nova poveznica. Prijepisi, sažeci i snimke poziva mogu sadržavati
osobne ili zdravstvene podatke. Šaljite ih samo aplikacijama koje vaša organizacija
smije upotrebljavati za te podatke, u skladu s BAA ugovorom kada je riječ o
zdravstvenim informacijama, i zadržite samo potrebna polja.

<Note>
  ThunderPhone isporučuje događaje putem `POST` na **produkcijski
  URL** okidača, stoga vaša instanca n8n mora biti dostupna putem HTTPS-a s interneta,
  a tijek rada mora biti aktivan. Okidač provjerava
  HMAC `X-ThunderPhone-Signature` pri svakom zahtjevu i odgovara s `401`
  na sve što nije potpisano ili nije valjano.
</Note>

Okidač ispisuje cjelokupan događaj: `type`, `event_id` i `data`. Pogledajte
[`telephony.complete` / `web.complete`](/hr/webhooks/call-complete) i
[`call.graded`](/hr/webhooks/events) za sva polja. Isporuka se obavlja najmanje jednom,
a `event_id` ostaje isti pri ponovnim pokušajima jednog događaja, stoga ga provjerite prije
koraka koji se ne smije ponoviti.

## Sigurno upućujte odlazne pozive

**Upućivanje odlaznog poziva** (resurs **Odlazni poziv**, radnja **Upućivanje**)
prima:

| Polje | Značenje |
|---|---|
| Naziv ili ID agenta | Spremljeni agent. Padajući izbornik prikazuje vaše agente. |
| Naziv ili ID telefonskog broja | Broj s kojeg se upućuje poziv. Padajući izbornik prikazuje samo brojeve omogućene za odlazne pozive. |
| Broj primatelja | Odredište u formatu E.164, npr. `+14155552671`. |
| Varijable | JSON objekt vrijednosti za rezervirana mjesta u upitu agenta. |
| Ključ idempotentnosti | Stabilni ID iz nadređenog zapisa ili događaja. Obavezno. |

Povežite **Ključ idempotentnosti** s ID-jem iz onoga što je pokrenulo izvršavanje, primjerice
ID-jem CRM zapisa ili `event_id` okidača. Čvor šalje
`n8n:<node ID>:<your value>`, stoga:

- Automatski ponovni pokušaj ili **Ponovi izvršavanje** šalje isti ključ, a
  ThunderPhone vraća izvorni poziv s `idempotent_replay: true`
  umjesto da ponovno bira broj.
- Dva ThunderPhone čvora koja primaju isti zapis šalju različite ključeve.
- Prazna vrijednost ne uspijeva prije slanja bilo kakvog zahtjeva.

Izbjegavajte vremenske oznake, nasumične vrijednosti te ID-jeve izvršavanja ili tijeka rada n8n. Nova
vrijednost pri ponovnom pokušaju upućuje drugi stvarni poziv. Cijeli ključ može imati najviše 128
znakova. Ponovna upotreba ključa s drugim agentom, brojem ili varijablama ne uspijeva
zbog sukoba.

**Kampanje.** **Dodavanje kontakata** (resurs **Kampanja**) dodaje kontakte u
nacrt kampanje. Prima ID kampanje i JSON polje kontakata. Svaki kontakt treba `phone_number`; ostali ključevi
postaju varijable poziva. Čvor ne uspijeva kada je svaki kontakt odbijen i postavlja
`partial_success: true` kada su odbijeni samo neki. **Pokretanje** zahtijeva potvrdni okvir
koji potvrđuje da kampanja upućuje stvarne pozive i troši ThunderPhone
kredite. Pogledajte [Odlazne kampanje](/hr/guides/outbound-campaigns).

Prije nego što tijek rada počne upućivati pozive:

- Ako ThunderPhone zatraži od vaše organizacije da potvrdi da njezini odlazni pozivi
  slijede TCPA i druge zakone o pozivima, administrator prvo mora zabilježiti tu
  potvrdu u nadzornoj ploči.
- Broj s kojeg se upućuje poziv mora biti omogućen za odlazne pozive. Brojevi koje prenesete od
  vlastitog operatera ispunjavaju uvjete nakon provjere. ThunderPhone brojevi u početku su
  samo za dolazne pozive i mogu biti odobreni za odlaznu upotrebu: administrator to zatraži
  na stranici Telefonski brojevi. Pogledajte
  [Dobivanje telefonskog broja](/hr/guides/get-a-phone-number).
- Vaša organizacija odgovorna je za pribavljanje pristanka za pozivanje svakog broja
  i za poštovanje primjenjivih zakona o pozivima. Pogledajte
  [Zakoni o odlaznim pozivima](/hr/guides/outbound-calling-laws).

## Primjeri tijekova rada

- **CRM kontakti u kampanju.** Dodajte CRM kontakte u nacrt ThunderPhone
  kampanje, a zatim pokrenite kampanju kada netko odobri popis.
- **Dovršeni poziv u zapis klijenta.** Pri dovršetku poziva pokrenite Dohvati poziv
  i spremite prijepis i poveznicu na snimku u odgovarajući zapis klijenta.
- **Niske ocjene na pregled.** Pri ocjenjivanju poziva filtrirajte prema
  `{{ $json.data.grade.score }}` i usmjerite pozive s niskim ocjenama u red za pregled
  s ID-jem poziva i pojedinostima ocjene. Poziv se može ocijeniti više puta,
  a svako dovršeno ocjenjivanje aktivira okidač, stoga zadržite samo najnoviji
  `graded_at` za svaki ID poziva.

Prijepisi poziva, sažeci i snimke mogu sadržavati osobne ili zdravstvene
podatke. Šaljite ih samo aplikacijama koje vaša organizacija smije koristiti za
te podatke, uz BAA kada su uključeni zdravstveni podaci, i zadržite samo
polja koja su vam potrebna.

<Note>
  Umjesto toga šaljete iste događaje poziva na vlastiti poslužitelj? Pogledajte
  [Webhook krajnje točke](/hr/webhooks/endpoints).
  [Upućivanje odlaznih poziva](/hr/guides/place-outbound-calls) obuhvaća API koji stoji iza
  Upućivanja odlaznog poziva.
</Note>
