---
title: "Tumia ThunderPhone pamoja na n8n"
description: "Sakinisha nodi ya ThunderPhone ya n8n, unganisha ufunguo wa API wa seva, na unda mtiririko wa kazi unaoendeshwa kila simu inapomalizika."
---

[n8n](https://n8n.io) ni zana ya otomatiki ya mtiririko wa kazi. Kifurushi cha ThunderPhone
cha n8n huongeza nodi mbili:

- **Kichochezi cha ThunderPhone** huanzisha mtiririko wa kazi simu inapomalizika (**Simu Imekamilika**) au utekelezaji wa ukadiriaji wa simu unapokamilika (**Simu Imekadiriwa**).
- **ThunderPhone** hupiga simu za kutoka, huongeza anwani kwenye kampeni na
  kuzianzisha, hupata simu pamoja na transkripti na rekodi zake, na huorodhesha
  ejenti na nambari zako za simu.

Ni nodi ya jumuiya iliyothibitishwa, iliyo katika
[ThunderPhone kwenye n8n](https://n8n.io/integrations/thunderphone/).

## Sakinisha nodi

Katika kihariri cha n8n, bofya **+** ili kufungua paneli ya nodi na utafute
**ThunderPhone**. Mmiliki wa instansi huenda akahitaji kusanidi nodi
zilizothibitishwa kabla ya watumiaji wengine kuziongeza.

Kwenye n8n inayojihudumia, unaweza pia kusakinisha kwa jina la kifurushi: fungua
**Mipangilio > Nodi za Jumuiya** na usakinishe `n8n-nodes-thunderphone`. Kagua hatari za nodi za jumuiya na sera ya instansi yako
kabla ya kusakinisha.

## Unda ufunguo wa API wa seva

<Steps>
  <Step title="Fungua kichupo cha Funguo">
    Katika ThunderPhone, nenda kwenye **Shirika → Funguo** na ubofye **Unda ufunguo**.
  </Step>
  <Step title="Ipe jina">
    Tumia jina linaloeleza ufunguo huo unatumika wapi, kama vile "n8n".
  </Step>
  <Step title="Nakili sasa">
    Siri kamili ya `sk_live_...` huonyeshwa mara moja. Inakili kabla hujafunga
    kisanduku cha mazungumzo.
  </Step>
</Steps>

Ni msimamizi au mmiliki pekee anayeweza kuunda ufunguo huo, na ThunderPhone huchukulia maombi
yanayotumwa kwa kuutumia kuwa yanatoka kwa mtu huyo. Kichochezi na shughuli za
kampeni zinahitaji mtu huyo kuendelea kuwa na jukumu la msimamizi au mmiliki.
[Unda ufunguo wa API wa seva](/sw/guides/api-keys) inaeleza ubadilishaji na ubatilishaji.

## Ongeza kitambulisho katika n8n

1. Katika n8n, unda kitambulisho cha aina **API ya ThunderPhone**.
2. Bandika ufunguo kwenye **Ufunguo wa API**.
3. Hifadhi na uendeshe jaribio la kitambulisho. Jaribio husoma simu moja kutoka kwenye
   shirika lako kwa `GET /v1/calls?limit=1`.

## Unda mtiririko wako wa kwanza wa kazi

Mtiririko huu wa kazi huongeza safu kwenye Google Sheet kila simu inapomalizika.

<Steps>
  <Step title="Ongeza kichochezi">
    Ongeza **Kichochezi cha ThunderPhone**, chagua kitambulisho chako cha API cha ThunderPhone, na
    weka **Tukio** kuwa **Simu Imekamilika**.
  </Step>
  <Step title="Pata simu">
    Ongeza nodi ya **ThunderPhone**. Weka **Rasilimali** kuwa **Simu**, **Operesheni**
    kuwa **Pata**, na **Kitambulisho cha Simu** kuwa usemi `{{ $json.data.call_id }}`.
    Tokeo ni [rekodi ya simu](/api-reference/calls) pamoja na `transcripts`
    na `recording_url`, kiungo cha muda mfupi ambacho huwa `null` wakati simu
    haina rekodi.
  </Step>
  <Step title="Ongeza safu">
    Ongeza nodi ya Google Sheets inayoongeza safu, kisha ramani safuwima unazotaka
    kutoka kwenye toleo la Pata Simu (tazama jedwali hapa chini).
  </Step>
  <Step title="Washa mtiririko wa kazi">
    Hifadhi na uwashe. Kichochezi husajili URL yake ya Production kama mwisho wa webhook
    katika shirika lako la ThunderPhone. Kuzima mtiririko wa kazi
    hufuta mwisho huo.
  </Step>
  <Step title="Ijaribu">
    Fungua ejenti katika builder, bofya **Ongea**, kisha maliza simu. Simu za majaribio za Builder
    huwasilishwa kama `web.complete`, mojawapo ya matukio mawili yanayounda
    Simu Imekamilika, hivyo mtiririko wa kazi huendeshwa na safu huonekana.
  </Step>
</Steps>

Safuwima muhimu:

| Safuwima | Usemi |
|---|---|
| Kitambulisho cha Simu | `{{ $json.call_id }}` |
| Mwelekeo | `{{ $json.direction }}` |
| Kutoka | `{{ $json.from_number }}` |
| Kwenda | `{{ $json.to_number }}` |
| Ilianza | `{{ $json.start_time }}` |
| Muda (s) | `{{ $json.duration_seconds }}` |
| Hali | `{{ $json.status }}` |
| Sababu ya kumaliza | `{{ $json.end_reason }}` |
| Kiungo cha simu | `https://app.thunderphone.com/dashboard/call-history/{{ $json.call_id }}` |

Kiungo cha simu hufungua simu kwenye dashibodi ya ThunderPhone kwa wanachama wa
shirika lako, pamoja na transkripti na rekodi yake, hivyo sheet haihitaji
kuhifadhi mojawapo ya hizo.

Ili kuongeza transkripti hata hivyo, ramani
`{{ $json.transcripts.filter(t => typeof t.content === 'string').map(t => t.role + ': ' + t.content).join('\n') }}`.
URL ya rekodi huisha muda wake, hivyo hifadhi kitambulisho cha simu na uendeshe Pata Simu tena
unapohitaji kiungo kipya. Transkripti, muhtasari na rekodi za simu zinaweza kuwa na
taarifa za kibinafsi au za afya. Zitume tu kwenye programu ambazo shirika lako
linaruhusiwa kutumia kwa data hiyo, chini ya BAA pale taarifa za afya
zinapohusika, na hifadhi sehemu unazohitaji pekee.

<Note>
  ThunderPhone huwasilisha matukio kwa `POST` kwenye **URL ya Production** ya
  kichochezi, hivyo instansi yako ya n8n lazima iweze kufikiwa kupitia HTTPS kutoka kwenye intaneti,
  na mtiririko wa kazi lazima uwe umewashwa. Kichochezi huthibitisha
  HMAC ya `X-ThunderPhone-Signature` kwenye kila ombi na kujibu `401` kwa
  chochote kisichotiwa saini au batili.
</Note>

Kichochezi hutoa tukio kamili: `type`, `event_id` na `data`. Tazama
[`telephony.complete` / `web.complete`](/sw/webhooks/call-complete) na
[`call.graded`](/sw/webhooks/events) kwa kila sehemu. Uwasilishaji hufanyika angalau mara moja,
na `event_id` hubaki sawa katika majaribio tena ya tukio moja, hivyo ikague kabla ya
hatua ambayo haipaswi kurudiwa.

## Piga simu za kutoka kwa usalama

**Piga Simu ya Kutoka** (Rasilimali **Outbound Call**, Operesheni **Place**)
inahitaji:

| Sehemu | Maana |
|---|---|
| Jina au Kitambulisho cha Ejenti | Ejenti iliyohifadhiwa. Orodha kunjuzi huonyesha ejenti wako. |
| Jina au Kitambulisho cha Nambari ya Simu | Nambari ya kupiga kutoka. Orodha kunjuzi huonyesha nambari zilizowezeshwa kwa simu za kutoka pekee. |
| Nambari ya Kwenda | Nambari lengwa katika muundo wa E.164, kwa mfano `+14155552671`. |
| Vigeu | Kitu cha JSON cha thamani za vishikizo katika prompt ya ejenti. |
| Ufunguo wa Idempotensia | Kitambulisho thabiti kutoka kwenye rekodi au tukio la chanzo. Kinahitajika. |

Weka **Ufunguo wa Idempotensia** kwenye kitambulisho kutoka kwa chochote
kilichosababisha utekelezaji, kama vile kitambulisho cha rekodi ya CRM au `event_id`
ya kichochezi. Nodi hutuma
`n8n:<node ID>:<your value>`, hivyo:

- Jaribio la kiotomatiki au **Rudia utekelezaji** hutuma ufunguo uleule, na
  ThunderPhone hurejesha simu ya awali yenye `idempotent_replay: true`
  badala ya kupiga tena.
- Nodi mbili za ThunderPhone zinazopokea rekodi ileile hutuma funguo tofauti.
- Thamani tupu hushindwa kabla ya ombi lolote kutumwa.

Epuka alama za muda, thamani za nasibu, na vitambulisho vya utekelezaji au mtiririko wa kazi wa n8n. Thamani mpya
wakati wa kujaribu tena hupiga simu halisi ya pili. Ufunguo wote unaweza kuwa na herufi zisizozidi 128.
Kutumia tena ufunguo wenye ejenti, nambari au vigeu tofauti hushindwa kwa mgongano.

**Kampeni.** **Ongeza Anwani** (Rasilimali **Campaign**) huongeza anwani kwenye
kampeni rasimu. Inahitaji Kitambulisho cha Kampeni na mkusanyiko wa JSON wa anwani. Kila anwani inahitaji `phone_number`; funguo nyingine
huwa vigeu vya simu. Nodi hushindwa wakati kila anwani inakataliwa na huweka
`partial_success: true` wakati baadhi tu zinakubaliwa. **Anza** huhitaji kisanduku cha kuteua
kinachothibitisha kuwa kampeni inapiga simu halisi na kutumia salio la ThunderPhone.
Tazama [Kampeni za kutoka](/sw/guides/outbound-campaigns).

Kabla ya mtiririko wa kazi kuanza kupiga simu:

- Ikiwa ThunderPhone inaomba shirika lako kuthibitisha kuwa simu zake za kutoka
  zinatii TCPA na sheria nyingine za kupiga simu, msimamizi lazima arekodi
  uthibitisho huo kwenye dashibodi kwanza.
- Nambari ya kupiga kutoka lazima iwezeshwe kwa simu za kutoka. Nambari unazoleta kutoka
  kwa mtoa huduma wako mwenyewe zinastahili baada ya kuthibitishwa. Nambari za ThunderPhone huanza
  zikiwa za simu zinazoingia pekee na zinaweza kuidhinishwa kwa matumizi ya kutoka: msimamizi huomba hilo
  kutoka kwenye ukurasa wa Nambari za Simu. Tazama
  [Pata nambari ya simu](/sw/guides/get-a-phone-number).
- Shirika lako lina wajibu wa kuwa na idhini ya kupiga kila nambari
  na kufuata sheria za kupiga simu zinazotumika. Tazama
  [Sheria za simu za kutoka](/sw/guides/outbound-calling-laws).

## Mitiririko ya kazi ya mfano

- **Anwani za CRM kwenda kwenye kampeni.** Ongeza anwani za CRM kwenye kampeni rasimu ya
  ThunderPhone, kisha anza kampeni baada ya mtu kuidhinisha orodha.
- **Simu iliyokamilika kwenda kwenye rekodi ya mteja.** Kwenye Simu Imekamilika, endesha Get Call
  na uhifadhi nakala ya mazungumzo na kiungo cha rekodi kwenye rekodi inayolingana ya mteja.
- **Alama za chini kwa ukaguzi.** Kwenye Simu Imepangiwa Alama, chuja kwa
  `{{ $json.data.grade.score }}` na elekeza simu zenye alama za chini kwenye foleni ya ukaguzi
  zikiwa na kitambulisho cha simu na maelezo ya alama. Simu inaweza kupangiwa alama zaidi ya mara moja,
  na kila utekelezaji wa upangaji alama unaokamilika huwasha kichochezi, hivyo hifadhi tu
  `graded_at` ya hivi karibuni kwa kila kitambulisho cha simu.

Nakala za mazungumzo ya simu, muhtasari na rekodi zinaweza kuwa na taarifa za kibinafsi au za afya.
Zitume tu kwa programu ambazo shirika lako linaruhusiwa kutumia kwa data hiyo, chini ya BAA
pale taarifa za afya zinahusika, na uhifadhi sehemu unazohitaji pekee.

<Note>
  Unatuma matukio yale yale ya simu kwenye seva yako mwenyewe badala yake? Tazama
  [Vituo vya webhook](/sw/webhooks/endpoints).
  [Piga simu za kutoka](/sw/guides/place-outbound-calls) inaeleza API iliyo nyuma ya
  Piga Simu ya Kutoka.
</Note>
