---
title: "Utilizați ThunderPhone cu n8n"
description: "Instalați nodul ThunderPhone pentru n8n, conectați o cheie API de server și creați un flux de lucru care rulează de fiecare dată când se încheie un apel."
---

[n8n](https://n8n.io) este un instrument de automatizare a fluxurilor de lucru. Pachetul ThunderPhone
pentru n8n adaugă două noduri:

- **Declanșator ThunderPhone** pornește un flux de lucru când se încheie un apel (**Apel finalizat**) sau când se finalizează o rulare de evaluare a apelului (**Apel evaluat**).
- **ThunderPhone** efectuează apeluri inițiate, adaugă contacte în campanii și
  le pornește, obține apeluri cu transcrierea și înregistrarea lor și afișează
  agenții și numerele dumneavoastră de telefon.

Este un nod comunitar verificat, listat la
[ThunderPhone pe n8n](https://n8n.io/integrations/thunderphone/).

## Instalați nodul

În editorul n8n, faceți clic pe **+** pentru a deschide panoul de noduri și căutați
**ThunderPhone**. Este posibil ca proprietarul instanței să trebuiască să configureze nodurile verificate înainte
ca alți utilizatori să le poată adăuga.

Pe n8n auto-găzduit, puteți instala și după numele pachetului: deschideți
**Setări > Noduri comunitare** și instalați `n8n-nodes-thunderphone`. Verificați riscurile nodurilor comunitare și politica instanței dumneavoastră
înainte de instalare.

## Creați o cheie API de server

<Steps>
  <Step title="Deschideți fila Chei">
    În ThunderPhone, accesați **Organizație → Chei** și faceți clic pe **Creați cheie**.
  </Step>
  <Step title="Denumiți-o">
    Folosiți un nume care indică unde este utilizată cheia, cum ar fi „n8n”.
  </Step>
  <Step title="Copiați-o acum">
    Secretul complet `sk_live_...` este afișat o singură dată. Copiați-l înainte de a închide
    dialogul.
  </Step>
</Steps>

Doar un administrator sau proprietar poate crea cheia, iar ThunderPhone tratează solicitările
efectuate cu aceasta ca provenind de la acea persoană. Declanșatorul și operațiunile pentru campanii
necesită ca acea persoană să își păstreze rolul de administrator sau proprietar.
[Crearea unei chei API de server](/ro/guides/api-keys) explică rotația și revocarea.

## Adăugați acreditarea în n8n

1. În n8n, creați o acreditare de tip **API ThunderPhone**.
2. Lipiți cheia în **Cheie API**.
3. Salvați-o și rulați testul acreditării. Testul citește un apel din organizația dumneavoastră
   cu `GET /v1/calls?limit=1`.

## Creați primul flux de lucru

Acest flux de lucru adaugă un rând într-un Google Sheet de fiecare dată când se încheie un apel.

<Steps>
  <Step title="Adăugați declanșatorul">
    Adăugați **ThunderPhone Trigger**, selectați acreditarea API ThunderPhone și
    setați **Eveniment** la **Apel finalizat**.
  </Step>
  <Step title="Obțineți apelul">
    Adăugați un nod **ThunderPhone**. Setați **Resursă** la **Apel**, **Operațiune**
    la **Obține** și **ID apel** la expresia `{{ $json.data.call_id }}`.
    Rezultatul este [înregistrarea apelului](/api-reference/calls), împreună cu `transcripts`
    și `recording_url`, un link cu valabilitate scurtă care este `null` atunci când apelul nu are
    înregistrare.
  </Step>
  <Step title="Adăugați un rând">
    Adăugați un nod Google Sheets care adaugă un rând și mapați coloanele dorite
    din rezultatul Obține apelul (consultați tabelul de mai jos).
  </Step>
  <Step title="Activați fluxul de lucru">
    Salvați și activați. Declanșatorul își înregistrează URL-ul de producție ca punct
    final webhook în organizația dumneavoastră ThunderPhone. Dezactivarea fluxului de lucru
    șterge acel punct final.
  </Step>
  <Step title="Testați-l">
    Deschideți un agent în builder, faceți clic pe **Vorbiți** și încheiați apelul. Apelurile de
    test din builder sunt livrate ca `web.complete`, unul dintre cele două evenimente care stau la baza
    Apel finalizat, astfel încât fluxul de lucru rulează și apare un rând.
  </Step>
</Steps>

Coloane utile:

| Coloană | Expresie |
|---|---|
| ID apel | `{{ $json.call_id }}` |
| Direcție | `{{ $json.direction }}` |
| De la | `{{ $json.from_number }}` |
| Către | `{{ $json.to_number }}` |
| Început | `{{ $json.start_time }}` |
| Durată (s) | `{{ $json.duration_seconds }}` |
| Stare | `{{ $json.status }}` |
| Motivul încheierii | `{{ $json.end_reason }}` |
| Link către apel | `https://app.thunderphone.com/dashboard/call-history/{{ $json.call_id }}` |

Linkul către apel deschide apelul în tabloul de bord ThunderPhone pentru membrii
organizației dumneavoastră, împreună cu transcrierea și înregistrarea acestuia, astfel încât foaia de calcul nu
trebuie să conțină niciuna dintre ele.

Pentru a adăuga totuși transcrierea, mapați
`{{ $json.transcripts.filter(t => typeof t.content === 'string').map(t => t.role + ': ' + t.content).join('\n') }}`.
URL-ul înregistrării expiră, așadar stocați ID-ul apelului și rulați din nou Obține apelul atunci când
aveți nevoie de un link nou. Transcrierile, rezumatele și înregistrările apelurilor pot conține
informații personale sau medicale. Trimiteți-le numai către aplicațiile pe care organizația dumneavoastră
are voie să le utilizeze pentru aceste date, în baza unui BAA când sunt implicate informații medicale,
și păstrați doar câmpurile de care aveți nevoie.

<Note>
  ThunderPhone livrează evenimente cu `POST` la **URL-ul de producție** al
  declanșatorului, astfel încât instanța dumneavoastră n8n trebuie să fie accesibilă prin HTTPS de pe internet,
  iar fluxul de lucru trebuie să fie activ. Declanșatorul verifică HMAC-ul
  `X-ThunderPhone-Signature` pentru fiecare cerere și răspunde cu `401`
  la orice cerere nesemnată sau nevalidă.
</Note>

Declanșatorul produce evenimentul complet: `type`, `event_id` și `data`. Consultați
[`telephony.complete` / `web.complete`](/ro/webhooks/call-complete) și
[`call.graded`](/ro/webhooks/events) pentru fiecare câmp. Livrarea are loc cel puțin o dată,
iar `event_id` rămâne același pentru reîncercările unui eveniment, așadar verificați-l înainte
de un pas care nu trebuie repetat.

## Plasați apeluri externe în siguranță

**Plasați apel extern** (Resursa **Apel extern**, Operațiunea **Plasați**)
primește:

| Câmp | Semnificație |
|---|---|
| Numele sau ID-ul agentului | Un agent salvat. Lista derulantă afișează agenții dumneavoastră. |
| Numele sau ID-ul numărului de telefon | Numărul apelant. Lista derulantă afișează numai numerele activate pentru apeluri externe. |
| Numărul destinatarului | Destinația în format E.164, de exemplu `+14155552671`. |
| Variabile | Obiect JSON cu valori pentru substituenții din instrucțiunea agentului. |
| Cheie de idempotență | Un ID stabil din înregistrarea sau evenimentul din amonte. Obligatoriu. |

Asociați **Cheia de idempotență** cu un ID din elementul care a declanșat rularea, cum ar fi un
ID de înregistrare CRM sau `event_id` al declanșatorului. Nodul trimite
`n8n:<node ID>:<your value>`, astfel:

- O reîncercare automată sau **Reîncercați execuția** trimite aceeași cheie, iar
  ThunderPhone returnează apelul original cu `idempotent_replay: true`
  în loc să formeze din nou numărul.
- Două noduri ThunderPhone alimentate de aceeași înregistrare trimit chei diferite.
- O valoare necompletată eșuează înainte de trimiterea oricărei cereri.

Evitați marcajele temporale, valorile aleatorii și ID-urile de execuție sau de flux de lucru n8n. O valoare nouă
la reîncercare plasează un al doilea apel real. Întreaga cheie poate avea cel mult 128
de caractere. Reutilizarea unei chei cu un agent, număr sau variabile diferite eșuează
cu un conflict.

**Campanii.** **Adăugați contacte** (Resursa **Campanie**) adaugă contacte într-o
campanie în schiță. Primește un ID de campanie și o matrice JSON de contacte. Fiecare contact are nevoie de `phone_number`; celelalte chei
devin variabile ale apelului. Nodul eșuează atunci când toate contactele sunt respinse și setează
`partial_success: true` atunci când sunt respinse numai unele dintre ele. **Porniți** necesită bifarea casetei
care confirmă că respectiva campanie plasează apeluri reale și consumă credite ThunderPhone.
Consultați [Campanii externe](/ro/guides/outbound-campaigns).

Înainte ca un flux de lucru să înceapă apelurile:

- Dacă ThunderPhone solicită organizației dumneavoastră să confirme că apelurile sale externe
  respectă TCPA și alte legi privind apelurile, un administrator trebuie să înregistreze mai întâi
  confirmarea în tabloul de bord.
- Numărul apelant trebuie să fie activat pentru apeluri externe. Numerele aduse de la
  propriul operator sunt eligibile după verificare. Numerele ThunderPhone sunt inițial
  numai pentru apeluri primite și pot fi aprobate pentru utilizare externă: un administrator solicită acest lucru
  din pagina Numere de telefon. Consultați
  [Obțineți un număr de telefon](/ro/guides/get-a-phone-number).
- Organizația dumneavoastră este responsabilă de obținerea consimțământului pentru apelarea fiecărui număr
  și de respectarea legilor aplicabile privind apelurile. Consultați
  [Legi privind apelurile externe](/ro/guides/outbound-calling-laws).

## Exemple de fluxuri de lucru

- **Contacte CRM într-o campanie.** Adăugați contacte CRM într-o campanie ThunderPhone
  în schiță, apoi porniți campania după ce cineva aprobă lista.
- **Apel finalizat în înregistrarea clientului.** La finalizarea apelului, rulați Obțineți apelul
  și salvați transcrierea și linkul înregistrării în înregistrarea clientului corespunzătoare.
- **Scoruri mici pentru revizuire.** La evaluarea apelului, filtrați după
  `{{ $json.data.grade.score }}` și direcționați apelurile cu scor mic către o coadă de revizuire
  cu ID-ul apelului și detaliile evaluării. Un apel poate fi evaluat de mai multe ori,
  iar fiecare rulare de evaluare finalizată declanșează declanșatorul, deci păstrați numai cel mai recent
  `graded_at` pentru fiecare ID de apel.

Transcrierile, rezumatele și înregistrările apelurilor pot conține informații personale sau despre sănătate.
Trimiteți-le numai către aplicații pe care organizația dumneavoastră are dreptul să le utilizeze pentru
aceste date, în baza unui BAA atunci când sunt implicate informații despre sănătate, și păstrați numai
câmpurile de care aveți nevoie.

<Note>
  Trimiteți aceleași evenimente ale apelurilor către propriul server? Consultați
  [Puncte finale webhook](/ro/webhooks/endpoints).
  [Plasați apeluri externe](/ro/guides/place-outbound-calls) descrie API-ul din spatele
  Plasați apel extern.
</Note>
