---
title: "n8n સાથે ThunderPhone વાપરો"
description: "n8n માટે ThunderPhone નોડ ઇન્સ્ટોલ કરો, સર્વર API કી કનેક્ટ કરો અને દરેક કૉલ સમાપ્ત થાય ત્યારે ચાલે એવો વર્કફ્લો બનાવો."
---

[n8n](https://n8n.io) એક વર્કફ્લો ઑટોમેશન ટૂલ છે. n8n માટેનું ThunderPhone પેકેજ
બે નોડ ઉમેરે છે:

- **ThunderPhone ટ્રિગર** કૉલ સમાપ્ત થાય ત્યારે (**કૉલ પૂર્ણ**)
  અથવા કૉલ ગ્રેડિંગ રન પૂર્ણ થાય ત્યારે (**કૉલ ગ્રેડેડ**) વર્કફ્લો શરૂ કરે છે.
- **ThunderPhone** આઉટબાઉન્ડ કૉલ કરે છે, સંપર્કોને કેમ્પેઇનમાં ઉમેરે છે અને
  તેને શરૂ કરે છે, ટ્રાન્સક્રિપ્ટ અને રેકોર્ડિંગ સાથે કૉલ મેળવે છે, અને તમારા
  એજન્ટ્સ તથા ફોન નંબરોની સૂચિ આપે છે.

તે ચકાસાયેલ કમ્યુનિટી નોડ છે, જે
[n8n પર ThunderPhone](https://n8n.io/integrations/thunderphone/) પર સૂચિબદ્ધ છે.

## નોડ ઇન્સ્ટૉલ કરો

n8n એડિટરમાં, નોડ્સ પેનલ ખોલવા માટે **+** પર ક્લિક કરો અને
**ThunderPhone** શોધો. અન્ય વપરાશકર્તાઓ તેને ઉમેરી શકે તે પહેલાં ઇન્સ્ટન્સના
માલિકે ચકાસાયેલા નોડ્સ સેટ અપ કરવાની જરૂર પડી શકે છે.

સેલ્ફ-હોસ્ટેડ n8n પર, તમે પેકેજના નામથી પણ ઇન્સ્ટૉલ કરી શકો છો:
**Settings > Community Nodes** ખોલો અને `n8n-nodes-thunderphone` ઇન્સ્ટૉલ કરો. ઇન્સ્ટૉલ કરતા
પહેલાં કમ્યુનિટી-નોડના જોખમો અને તમારી ઇન્સ્ટન્સ નીતિ તપાસો.

## સર્વર API કી બનાવો

<Steps>
  <Step title="Keys ટૅબ ખોલો">
    ThunderPhone માં, **Organization → Keys** પર જાઓ અને **Create key** પર ક્લિક કરો.
  </Step>
  <Step title="તેને નામ આપો">
    કી ક્યાં રાખેલી છે તે દર્શાવતું નામ વાપરો, જેમ કે "n8n".
  </Step>
  <Step title="હમણાં જ કૉપી કરો">
    સંપૂર્ણ `sk_live_...` સિક્રેટ એક જ વાર દેખાય છે. ડાયલૉગ બંધ કરો તે પહેલાં
    તેને કૉપી કરો.
  </Step>
</Steps>

ફક્ત એડમિન અથવા માલિક જ કી બનાવી શકે છે, અને ThunderPhone તેની સાથે કરવામાં આવેલી
વિનંતીઓને તે વ્યક્તિ તરફથી આવેલી માને છે. ટ્રિગર અને કેમ્પેઇન
ઑપરેશન્સ માટે તે વ્યક્તિએ એડમિન અથવા માલિકની ભૂમિકા જાળવી રાખવી જરૂરી છે.
[સર્વર API કી બનાવો](/gu/guides/api-keys) માં રોટેશન અને રદબાતલ વિશે માહિતી છે.

## n8n માં ક્રેડેન્શિયલ ઉમેરો

1. n8n માં, **ThunderPhone API** પ્રકારનું ક્રેડેન્શિયલ બનાવો.
2. કીને **API Key** માં પેસ્ટ કરો.
3. તેને સેવ કરો અને ક્રેડેન્શિયલ ટેસ્ટ ચલાવો. ટેસ્ટ તમારી સંસ્થામાંથી એક કૉલ
   `GET /v1/calls?limit=1` વડે વાંચે છે.

## પ્રથમ વર્કફ્લો બનાવો

દરેક વખત કૉલ પૂર્ણ થાય ત્યારે આ વર્કફ્લો Google Sheets માં એક પંક્તિ ઉમેરે છે.

<Steps>
  <Step title="ટ્રિગર ઉમેરો">
    **ThunderPhone Trigger** ઉમેરો, તમારી ThunderPhone API ઓળખપત્ર પસંદ કરો અને
    **ઇવેન્ટ** ને **કૉલ પૂર્ણ થયું** પર સેટ કરો.
  </Step>
  <Step title="કૉલ મેળવો">
    **ThunderPhone** નોડ ઉમેરો. **રિસોર્સ** ને **કૉલ**, **ઓપરેશન**
    ને **મેળવો**, અને **કૉલ ID** ને `{{ $json.data.call_id }}` એક્સપ્રેશન પર સેટ કરો.
    આઉટપુટમાં [કૉલ રેકોર્ડ](/api-reference/calls) ઉપરાંત `transcripts`
    અને `recording_url` મળે છે, જે ટૂંકા સમય માટે માન્ય લિંક છે અને કૉલમાં
    રેકોર્ડિંગ ન હોય ત્યારે `null` હોય છે.
  </Step>
  <Step title="પંક્તિ ઉમેરો">
    પંક્તિ ઉમેરતો Google Sheets નોડ ઉમેરો અને તમને જોઈતા કૉલમને
    Get Call આઉટપુટમાંથી મેપ કરો (નીચેનું ટેબલ જુઓ).
  </Step>
  <Step title="વર્કફ્લો સક્રિય કરો">
    સાચવો અને સક્રિય કરો. ટ્રિગર તેની પ્રોડક્શન URL ને તમારી ThunderPhone સંસ્થામાં
    વેબહૂક એન્ડપોઇન્ટ તરીકે નોંધે છે. વર્કફ્લો નિષ્ક્રિય કરવાથી તે એન્ડપોઇન્ટ
    કાઢી નાખવામાં આવે છે.
  </Step>
  <Step title="તેનું પરીક્ષણ કરો">
    બિલ્ડરમાં એજન્ટ ખોલો, **વાત કરો** પર ક્લિક કરો અને કૉલ સમાપ્ત કરો. બિલ્ડર
    પરીક્ષણ કૉલ `web.complete` તરીકે મોકલવામાં આવે છે, જે કૉલ પૂર્ણ થયા પાછળની
    બે ઇવેન્ટમાંથી એક છે, તેથી વર્કફ્લો ચાલે છે અને એક પંક્તિ દેખાય છે.
  </Step>
</Steps>

ઉપયોગી કૉલમ:

| કૉલમ | એક્સપ્રેશન |
|---|---|
| કૉલ ID | `{{ $json.call_id }}` |
| દિશા | `{{ $json.direction }}` |
| તરફથી | `{{ $json.from_number }}` |
| તરફ | `{{ $json.to_number }}` |
| શરૂ થયું | `{{ $json.start_time }}` |
| સમયગાળો (સે.) | `{{ $json.duration_seconds }}` |
| સ્થિતિ | `{{ $json.status }}` |
| સમાપ્તિનું કારણ | `{{ $json.end_reason }}` |
| કૉલ લિંક | `https://app.thunderphone.com/dashboard/call-history/{{ $json.call_id }}` |

કૉલ લિંક તમારી સંસ્થાના સભ્યો માટે ThunderPhone ડૅશબોર્ડમાં કૉલને તેના
ટ્રાન્સક્રિપ્ટ અને રેકોર્ડિંગ સાથે ખોલે છે, તેથી શીટમાં તેમાંથી કોઈપણ રાખવાની
જરૂર નથી.

છતાં ટ્રાન્સક્રિપ્ટ ઉમેરવા માટે,
`{{ $json.transcripts.filter(t => typeof t.content === 'string').map(t => t.role + ': ' + t.content).join('\n') }}` મેપ કરો.
રેકોર્ડિંગ URL ની સમયમર્યાદા સમાપ્ત થાય છે, તેથી કૉલ ID સંગ્રહો અને નવી લિંકની
જરૂર પડે ત્યારે Get Call ફરી ચલાવો. કૉલ ટ્રાન્સક્રિપ્ટ, સારાંશો અને રેકોર્ડિંગમાં
વ્યક્તિગત અથવા આરોગ્ય સંબંધિત માહિતી હોઈ શકે છે. તે ફક્ત એવી એપ્સને મોકલો જેનો
ઉપયોગ તમારી સંસ્થાને તે ડેટા માટે કરવાની મંજૂરી હોય, આરોગ્ય માહિતી સામેલ હોય ત્યારે
BAA હેઠળ, અને તમને જરૂરી હોય તેવા ફીલ્ડ્સ જ રાખો.

<Note>
  ThunderPhone ટ્રિગરની **પ્રોડક્શન
  URL** પર `POST` દ્વારા ઇવેન્ટ્સ મોકલે છે, તેથી તમારું n8n ઇન્સ્ટન્સ ઇન્ટરનેટ પરથી
  HTTPS દ્વારા પહોંચી શકાય તેવું હોવું આવશ્યક છે અને વર્કફ્લો સક્રિય હોવો જોઈએ. ટ્રિગર
  દરેક વિનંતી પર `X-ThunderPhone-Signature` HMAC ચકાસે છે અને સહી વિનાની અથવા અમાન્ય
  કોઈપણ વસ્તુને `401` જવાબ આપે છે.
</Note>

ટ્રિગર સંપૂર્ણ ઇવેન્ટ આઉટપુટ કરે છે: `type`, `event_id` અને `data`. દરેક ફીલ્ડ માટે
[`telephony.complete` / `web.complete`](/gu/webhooks/call-complete) અને
[`call.graded`](/gu/webhooks/events) જુઓ. ડિલિવરી ઓછામાં ઓછી એક વખત થાય છે,
અને એક ઇવેન્ટના ફરી પ્રયાસોમાં `event_id` એકસરખું રહે છે, તેથી પુનરાવર્તિત ન થવો જોઈએ
તેવા પગલા પહેલાં તેને તપાસો.

## આઉટબાઉન્ડ કૉલ સુરક્ષિત રીતે કરો

**આઉટબાઉન્ડ કૉલ કરો** (રિસોર્સ **આઉટબાઉન્ડ કૉલ**, ઓપરેશન **કરો**)
આ લે છે:

| ફીલ્ડ | અર્થ |
|---|---|
| એજન્ટનું નામ અથવા ID | સાચવેલ એજન્ટ. ડ્રોપડાઉનમાં તમારા એજન્ટ્સની સૂચિ દેખાય છે. |
| ફોન નંબરનું નામ અથવા ID | પ્રેષક નંબર. ડ્રોપડાઉનમાં માત્ર આઉટબાઉન્ડ કૉલ માટે સક્ષમ નંબરોની સૂચિ દેખાય છે. |
| કયા નંબર પર | E.164 ફોર્મેટમાં ગંતવ્ય નંબર, દા.ત. `+14155552671`. |
| વેરિએબલ્સ | એજન્ટ promptમાં પ્લેસહોલ્ડર્સ માટે મૂલ્યોનો JSON ઑબ્જેક્ટ. |
| આઇડેમ્પોટન્સી કી | અપસ્ટ્રીમ રેકોર્ડ અથવા ઇવેન્ટમાંથી મળતી સ્થિર ID. આવશ્યક. |

**આઇડેમ્પોટન્સી કી**ને રન શરૂ કરનાર વસ્તુની ID સાથે મેપ કરો, જેમ કે
CRM રેકોર્ડ ID અથવા ટ્રિગરનું `event_id`. નોડ
`n8n:<node ID>:<your value>` મોકલે છે, તેથી:

- સ્વચાલિત રીટ્રાય અથવા **એક્ઝિક્યુશન ફરી પ્રયાસ કરો** એ જ કી મોકલે છે, અને
  ThunderPhone ફરી ડાયલ કરવાને બદલે `idempotent_replay: true` સાથે મૂળ કૉલ પરત કરે છે.
- એક જ રેકોર્ડથી ફીડ થતા બે ThunderPhone નોડ્સ અલગ કીઓ મોકલે છે.
- ખાલી મૂલ્ય કોઈપણ વિનંતી મોકલાય તે પહેલાં નિષ્ફળ જાય છે.

ટાઇમસ્ટેમ્પ, રેન્ડમ મૂલ્યો અને n8n એક્ઝિક્યુશન અથવા વર્કફ્લો ID ટાળો. રીટ્રાય વખતે નવું
મૂલ્ય બીજી વાસ્તવિક કૉલ કરે છે. સમગ્ર કી મહત્તમ 128
અક્ષરોની હોઈ શકે છે. અલગ એજન્ટ, નંબર અથવા વેરિએબલ્સ સાથે કીનો ફરી ઉપયોગ કરવાથી
કૉન્ફ્લિક્ટ સાથે નિષ્ફળતા થાય છે.

**કેમ્પેઇન્સ.** **કોન્ટેક્ટ્સ ઉમેરો** (રિસોર્સ **કેમ્પેઇન**) ડ્રાફ્ટ કેમ્પેઇનમાં કોન્ટેક્ટ્સ ઉમેરે છે. તે કેમ્પેઇન ID અને કોન્ટેક્ટ્સનો JSON એરે લે છે. દરેક કોન્ટેક્ટ માટે `phone_number` જરૂરી છે; અન્ય કીઓ
કૉલ વેરિએબલ્સ બને છે. જ્યારે દરેક કોન્ટેક્ટ નકારવામાં આવે ત્યારે નોડ નિષ્ફળ જાય છે અને
માત્ર કેટલાક નકારાય ત્યારે `partial_success: true` સેટ કરે છે. **શરૂ કરો** માટે કેમ્પેઇન વાસ્તવિક કૉલ કરે છે અને ThunderPhone
ક્રેડિટ્સ ખર્ચે છે તેની પુષ્ટિ કરતો ચેકબૉક્સ જરૂરી છે. [આઉટબાઉન્ડ કેમ્પેઇન્સ](/gu/guides/outbound-campaigns) જુઓ.

વર્કફ્લો કૉલ શરૂ કરે તે પહેલાં:

- જો ThunderPhone તમારી સંસ્થાને તેના આઉટબાઉન્ડ કૉલ TCPA અને અન્ય કૉલિંગ કાયદાઓનું
  પાલન કરે છે તેની પુષ્ટિ કરવા કહે, તો એડમિને પહેલા ડેશબોર્ડમાં તે
  પુષ્ટિ નોંધવી આવશ્યક છે.
- પ્રેષક નંબર આઉટબાઉન્ડ કૉલ માટે સક્ષમ હોવો આવશ્યક છે. તમે તમારા પોતાના કેરિયર પાસેથી
  લાવતા નંબરો વેરિફાઇ થયા પછી પાત્ર બને છે. ThunderPhone નંબરો શરૂઆતમાં
  માત્ર ઇનબાઉન્ડ હોય છે અને આઉટબાઉન્ડ ઉપયોગ માટે મંજૂર થઈ શકે છે: એડમિન ફોન નંબર્સ પેજ પરથી તેની વિનંતી કરે છે. જુઓ
  [ફોન નંબર મેળવો](/gu/guides/get-a-phone-number).
- તમારી સંસ્થા પાસે દરેક નંબર પર કૉલ કરવા માટે સંમતિ હોવી અને લાગુ પડતા
  કૉલિંગ કાયદાઓનું પાલન કરવું તેની જવાબદારી તમારી છે. જુઓ
  [આઉટબાઉન્ડ કૉલિંગ કાયદાઓ](/gu/guides/outbound-calling-laws).

## ઉદાહરણ વર્કફ્લોઝ

- **CRM કોન્ટેક્ટ્સને કેમ્પેઇનમાં ઉમેરો.** CRM કોન્ટેક્ટ્સને ડ્રાફ્ટ ThunderPhone
  કેમ્પેઇનમાં ઉમેરો, પછી કોઈ વ્યક્તિ સૂચિને મંજૂરી આપે ત્યારે કેમ્પેઇન શરૂ કરો.
- **પૂર્ણ થયેલ કૉલને ગ્રાહક રેકોર્ડમાં ઉમેરો.** કૉલ પૂર્ણ થાય ત્યારે, કૉલ મેળવો ચલાવો
  અને ટ્રાન્સક્રિપ્ટ તથા રેકોર્ડિંગ લિંકને મેળ ખાતા ગ્રાહક રેકોર્ડમાં સાચવો.
- **ઓછા ગ્રેડ્સને સમીક્ષા માટે મોકલો.** કૉલ ગ્રેડ થાય ત્યારે,
  `{{ $json.data.grade.score }}` પર ફિલ્ટર કરો અને ઓછા સ્કોરવાળા કૉલ્સને કૉલ ID અને ગ્રેડ વિગતો સાથે
  સમીક્ષા ક્યૂમાં મોકલો. કૉલને એકથી વધુ વાર ગ્રેડ કરી શકાય છે,
  અને દરેક પૂર્ણ થયેલ ગ્રેડિંગ રન ટ્રિગર ચલાવે છે, તેથી દરેક કૉલ ID માટે માત્ર નવીનતમ
  `graded_at` રાખો.

કૉલ ટ્રાન્સક્રિપ્ટ્સ, સારાંશો અને રેકોર્ડિંગ્સમાં વ્યક્તિગત અથવા આરોગ્ય સંબંધિત
માહિતી હોઈ શકે છે. તે ફક્ત એવી એપ્સને મોકલો જેનો તમારી સંસ્થાને આ ડેટા માટે ઉપયોગ કરવાની મંજૂરી હોય,
આરોગ્ય માહિતી સામેલ હોય ત્યાં BAA હેઠળ, અને ફક્ત જરૂરી ફીલ્ડ્સ જ રાખો.

<Note>
  તેના બદલે સમાન કૉલ ઇવેન્ટ્સ તમારા પોતાના સર્વરને મોકલી રહ્યા છો? જુઓ
  [Webhook એન્ડપોઇન્ટ્સ](/gu/webhooks/endpoints).
  [આઉટબાઉન્ડ કૉલ કરો](/gu/guides/place-outbound-calls) આઉટબાઉન્ડ કૉલ કરો પાછળનું API આવરી લે છે.
</Note>
