---
title: "ThunderPhone n8n सह वापरा"
description: "n8n साठी ThunderPhone नोड स्थापित करा, सर्व्हर API की जोडा आणि प्रत्येक कॉल संपल्यावर चालणारा वर्कफ्लो तयार करा."
---

[n8n](https://n8n.io) हे वर्कफ्लो ऑटोमेशन टूल आहे. n8n साठीचे ThunderPhone पॅकेज
दोन नोड्स जोडते:

- **ThunderPhone Trigger** कॉल संपल्यावर (**कॉल पूर्ण झाली**) किंवा कॉल
  ग्रेडिंग रन पूर्ण झाल्यावर (**कॉल ग्रेड झाली**) वर्कफ्लो सुरू करते.
- **ThunderPhone** बाहेर जाणारे कॉल करते, संपर्क मोहिमांमध्ये जोडते आणि
  त्या सुरू करते, ट्रान्स्क्रिप्ट आणि रेकॉर्डिंगसह कॉल मिळवते, तसेच तुमचे
  एजंट आणि फोन क्रमांक सूचीबद्ध करते.

हा एक सत्यापित कम्युनिटी नोड आहे, जो
[n8n वरील ThunderPhone](https://n8n.io/integrations/thunderphone/) येथे सूचीबद्ध आहे.

## नोड स्थापित करा

n8n एडिटरमध्ये, नोड्स पॅनेल उघडण्यासाठी **+** वर क्लिक करा आणि
**ThunderPhone** शोधा. इतर वापरकर्ते ते जोडण्यापूर्वी इंस्टन्स मालकाला
सत्यापित नोड्स सेट अप करावे लागू शकतात.

सेल्फ-होस्टेड n8n वर, तुम्ही पॅकेज नावानेही स्थापित करू शकता:
**सेटिंग्ज > कम्युनिटी नोड्स** उघडा आणि `n8n-nodes-thunderphone` स्थापित करा. स्थापित करण्यापूर्वी
कम्युनिटी नोडचे धोके आणि तुमच्या इंस्टन्सचे धोरण तपासा.

## सर्व्हर API की तयार करा

<Steps>
  <Step title="कीज टॅब उघडा">
    ThunderPhone मध्ये, **संस्था → कीज** वर जा आणि **की तयार करा** वर क्लिक करा.
  </Step>
  <Step title="तिला नाव द्या">
    की कुठे वापरली जाते हे दर्शवणारे नाव वापरा, उदाहरणार्थ "n8n".
  </Step>
  <Step title="आताच कॉपी करा">
    संपूर्ण `sk_live_...` सीक्रेट एकदाच दाखवले जाते. डायलॉग बंद करण्यापूर्वी
    ते कॉपी करा.
  </Step>
</Steps>

फक्त अॅडमिन किंवा मालक की तयार करू शकतो आणि ThunderPhone त्या कीद्वारे
केलेल्या विनंत्या त्या व्यक्तीकडून आल्या आहेत असे मानते. ट्रिगर आणि मोहीम
ऑपरेशन्ससाठी त्या व्यक्तीने अॅडमिन किंवा मालकाची भूमिका कायम ठेवणे आवश्यक आहे.
[सर्व्हर API की तयार करा](/mr/guides/api-keys) मध्ये रोटेशन आणि रद्दीकरण समाविष्ट आहे.

## n8n मध्ये क्रेडेन्शियल जोडा

1. n8n मध्ये **ThunderPhone API** प्रकारचे क्रेडेन्शियल तयार करा.
2. की **API की** मध्ये पेस्ट करा.
3. ते जतन करा आणि क्रेडेन्शियल चाचणी चालवा. चाचणी तुमच्या
   संस्थेतील एक कॉल `GET /v1/calls?limit=1` सह वाचते.

## तुमचा पहिला वर्कफ्लो तयार करा

हा वर्कफ्लो प्रत्येक कॉल संपल्यावर Google Sheet मध्ये एक रांग जोडतो.

<Steps>
  <Step title="ट्रिगर जोडा">
    **ThunderPhone Trigger** जोडा, तुमचे ThunderPhone API क्रेडेन्शियल निवडा आणि
    **Event** ला **Call Completed** वर सेट करा.
  </Step>
  <Step title="कॉल मिळवा">
    **ThunderPhone** नोड जोडा. **Resource** ला **Call**, **Operation**
    ला **Get** आणि **Call ID** ला `{{ $json.data.call_id }}` एक्सप्रेशनवर सेट करा.
    आउटपुटमध्ये [कॉल रेकॉर्ड](/api-reference/calls), तसेच `transcripts`
    आणि `recording_url` मिळतात. हा अल्पकालीन दुवा आहे आणि कॉलचे रेकॉर्डिंग नसल्यास तो `null` असतो.
  </Step>
  <Step title="रांग जोडा">
    रांग जोडणारा Google Sheets नोड जोडा आणि Get Call आउटपुटमधून तुम्हाला हवे असलेले
    कॉलम मॅप करा (खालील तक्ता पहा).
  </Step>
  <Step title="वर्कफ्लो सक्रिय करा">
    जतन करा आणि सक्रिय करा. ट्रिगर त्याचा Production URL तुमच्या ThunderPhone संस्थेमध्ये
    webhook एंडपॉइंट म्हणून नोंदवतो. वर्कफ्लो निष्क्रिय केल्याने तो एंडपॉइंट हटवला जातो.
  </Step>
  <Step title="त्याची चाचणी करा">
    बिल्डरमध्ये एजंट उघडा, **Talk** वर क्लिक करा आणि कॉल समाप्त करा. बिल्डरच्या
    चाचणी कॉल्स `web.complete` म्हणून वितरित होतात, जो Call Completed मागील दोन इव्हेंटपैकी एक आहे,
    त्यामुळे वर्कफ्लो चालतो आणि एक रांग दिसते.
  </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 ट्रिगरच्या **Production
  URL** वर `POST` वापरून इव्हेंट वितरित करते, त्यामुळे तुमचे n8n इंस्टन्स इंटरनेटवरून HTTPS द्वारे उपलब्ध
  असणे आवश्यक आहे आणि वर्कफ्लो सक्रिय असणे आवश्यक आहे. ट्रिगर प्रत्येक विनंतीवरील
  `X-ThunderPhone-Signature` HMAC सत्यापित करतो आणि स्वाक्षरी नसलेल्या किंवा अवैध कोणत्याही विनंतीला `401`
  उत्तर देतो.
</Note>

ट्रिगर संपूर्ण इव्हेंट आउटपुट करतो: `type`, `event_id` आणि `data`. प्रत्येक फील्डसाठी
[`telephony.complete` / `web.complete`](/mr/webhooks/call-complete) आणि
[`call.graded`](/mr/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 क्रेडिट्स खर्च करते याची पुष्टी करणारा चेकबॉक्स
निवडणे आवश्यक आहे. [आउटबाउंड कॅम्पेन](/mr/guides/outbound-campaigns) पहा.

वर्कफ्लो कॉल सुरू करण्यापूर्वी:

- ThunderPhone ने तुमच्या संस्थेला तिचे आउटबाउंड कॉल
  TCPA आणि इतर कॉलिंग कायद्यांचे पालन करतात याची पुष्टी करण्यास सांगितल्यास, प्रशासकाने
  प्रथम डॅशबोर्डमध्ये ती पुष्टी नोंदवणे आवश्यक आहे.
- कॉल ज्या नंबरवरून होतो तो नंबर आउटबाउंड कॉलसाठी सक्षम असणे आवश्यक आहे. तुम्ही
  तुमच्या स्वतःच्या कॅरियरकडून आणलेले नंबर पडताळणीनंतर पात्र ठरतात. ThunderPhone नंबर सुरुवातीला
  फक्त इनबाउंड असतात आणि आउटबाउंड वापरासाठी मंजूर केले जाऊ शकतात: प्रशासक फोन नंबर पेजवरून
  विनंती करतो. [फोन नंबर मिळवा](/mr/guides/get-a-phone-number) पहा.
- प्रत्येक नंबरवर कॉल करण्यासाठी संमती असणे आणि लागू असलेल्या कॉलिंग कायद्यांचे पालन करणे
  ही तुमच्या संस्थेची जबाबदारी आहे. [आउटबाउंड कॉलिंग कायदे](/mr/guides/outbound-calling-laws) पहा.

## उदाहरण वर्कफ्लो

- **CRM संपर्क कॅम्पेनमध्ये.** CRM संपर्क मसुदा ThunderPhone
  कॅम्पेनमध्ये जोडा, त्यानंतर कोणी सूची मंजूर केल्यावर कॅम्पेन सुरू करा.
- **पूर्ण झालेला कॉल ग्राहक रेकॉर्डमध्ये.** कॉल पूर्ण झाल्यावर, कॉल मिळवा चालवा
  आणि ट्रान्स्क्रिप्ट व रेकॉर्डिंग लिंक जुळणाऱ्या ग्राहक रेकॉर्डमध्ये सेव्ह करा.
- **कमी ग्रेड पुनरावलोकनासाठी.** कॉलचे मूल्यमापन झाल्यावर,
  `{{ $json.data.grade.score }}` वर फिल्टर करा आणि कमी स्कोअर असलेले कॉल कॉल ID व ग्रेड तपशीलांसह
  पुनरावलोकन रांगेकडे पाठवा. एका कॉलचे एकापेक्षा जास्त वेळा मूल्यमापन होऊ शकते,
  आणि प्रत्येक पूर्ण झालेला मूल्यमापन रन ट्रिगर चालवतो, त्यामुळे प्रत्येक कॉल ID साठी फक्त नवीनतम
  `graded_at` ठेवा.

कॉल ट्रान्स्क्रिप्ट, सारांश आणि रेकॉर्डिंगमध्ये वैयक्तिक किंवा आरोग्यविषयक
माहिती असू शकते. ती माहिती फक्त तुमच्या संस्थेला वापरण्याची परवानगी असलेल्या अॅप्सना पाठवा,
आरोग्यविषयक माहिती असल्यास BAA अंतर्गत पाठवा, आणि तुम्हाला आवश्यक असलेलीच फील्ड ठेवा.

<Note>
  त्याऐवजी समान कॉल इव्हेंट तुमच्या स्वतःच्या सर्व्हरवर पाठवत आहात? पहा
  [वेबहुक एंडपॉइंट्स](/mr/webhooks/endpoints).
  [आउटबाउंड कॉल करा](/mr/guides/place-outbound-calls) मध्ये
  आउटबाउंड कॉल करा यामागील API समाविष्ट आहे.
</Note>
