---
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 پر، آپ پیکیج کے نام سے بھی انسٹال کر سکتے ہیں: 
**Settings > Community Nodes** کھولیں اور `n8n-nodes-thunderphone` انسٹال کریں۔ انسٹال کرنے سے
پہلے کمیونٹی نوڈ کے خطرات اور اپنی انسٹینس پالیسی چیک کریں۔

## سرور API کلید بنائیں

<Steps>
  <Step title="کلیدوں کا ٹیب کھولیں">
    ThunderPhone میں، **Organization → Keys** پر جائیں اور **Create key** پر کلک کریں۔
  </Step>
  <Step title="اسے نام دیں">
    ایسا نام استعمال کریں جو بتائے کہ کلید کہاں موجود ہے، مثلاً "n8n"۔
  </Step>
  <Step title="ابھی کاپی کریں">
    مکمل `sk_live_...` راز صرف ایک بار دکھایا جاتا ہے۔ ڈائیلاگ بند کرنے سے پہلے
    اسے کاپی کریں۔
  </Step>
</Steps>

صرف ایک ایڈمن یا اونر کلید بنا سکتا ہے، اور ThunderPhone اس کے ذریعے کی گئی
درخواستوں کو اس شخص کی جانب سے تصور کرتا ہے۔ ٹرگر اور مہم کی کارروائیوں کے لیے
اس شخص کا ایڈمن یا اونر کردار برقرار رہنا ضروری ہے۔
[سرور API کلید بنائیں](/ur/guides/api-keys) میں روٹیشن اور منسوخی شامل ہیں۔

## n8n میں کریڈینشل شامل کریں

1. n8n میں **ThunderPhone API** قسم کا ایک کریڈینشل بنائیں۔
2. کلید کو **API Key** میں پیسٹ کریں۔
3. اسے محفوظ کریں اور کریڈینشل ٹیسٹ چلائیں۔ ٹیسٹ آپ کی تنظیم سے ایک کال
   `GET /v1/calls?limit=1` کے ذریعے پڑھتا ہے۔

## اپنا پہلا ورک فلو بنائیں

یہ ورک فلو ہر بار کال ختم ہونے پر Google Sheet میں ایک قطار شامل کرتا ہے۔

<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 تنظیم میں
    webhook endpoint کے طور پر رجسٹر کرتا ہے۔ ورک فلو کو غیر فعال کرنے سے
    وہ endpoint حذف ہو جاتا ہے۔
  </Step>
  <Step title="اس کی جانچ کریں">
    بلڈر میں ایک ایجنٹ کھولیں، **بات کریں** پر کلک کریں، اور کال ختم کریں۔ بلڈر کی
    ٹیسٹ کالز `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 ڈیش بورڈ میں کال کو اس کے
ٹرانسکرپٹ اور ریکارڈنگ کے ساتھ کھولتا ہے، اس لیے Sheet میں ان میں سے کسی کو
رکھنے کی ضرورت نہیں۔

بہر حال ٹرانسکرپٹ شامل کرنے کے لیے،
`{{ $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`](/ur/webhooks/call-complete) اور
[`call.graded`](/ur/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 اجرا یا ورک فلو IDs سے گریز کریں۔ دوبارہ کوشش پر
نئی قدر ایک دوسری حقیقی کال کرتی ہے۔ پوری کلید زیادہ سے زیادہ 128
حروف کی ہو سکتی ہے۔ مختلف ایجنٹ، نمبر یا متغیرات کے ساتھ ایک کلید دوبارہ استعمال کرنے پر
تصادم کی وجہ سے ناکامی ہوتی ہے۔

**مہمات۔** **رابطے شامل کریں** (وسیلہ **مہم**) رابطوں کو
ڈرافٹ مہم میں شامل کرتا ہے۔ اس کے لیے مہم ID اور رابطوں کی JSON ارے درکار ہوتی ہے۔ ہر رابطے کے لیے `phone_number` ضروری ہے؛ دیگر کلیدیں
کال کے متغیرات بن جاتی ہیں۔ جب ہر رابطہ مسترد ہو تو نوڈ ناکام ہوتا ہے اور
جب صرف کچھ رابطے مسترد ہوں تو `partial_success: true` سیٹ کرتا ہے۔ **شروع کریں** کے لیے اس چیک باکس کی
تصدیق ضروری ہے کہ مہم حقیقی کالیں کرے گی اور ThunderPhone کریڈٹس خرچ کرے گی۔
[آؤٹ باؤنڈ مہمات](/ur/guides/outbound-campaigns) دیکھیں۔

ورک فلو کے کالیں شروع کرنے سے پہلے:

- اگر ThunderPhone آپ کی تنظیم سے تصدیق مانگے کہ اس کی آؤٹ باؤنڈ کالیں
  TCPA اور کالنگ کے دیگر قوانین کی پیروی کرتی ہیں، تو ایک ایڈمن کو پہلے
  ڈیش بورڈ میں یہ تصدیق ریکارڈ کرنی ہوگی۔
- کال کرنے والا نمبر آؤٹ باؤنڈ کالوں کے لیے فعال ہونا ضروری ہے۔ آپ اپنے
  کیریئر سے لائے ہوئے نمبرز تصدیق کے بعد اہل ہو جاتے ہیں۔ ThunderPhone نمبرز ابتدا میں
  صرف اِن باؤنڈ ہوتے ہیں اور آؤٹ باؤنڈ استعمال کے لیے منظور کیے جا سکتے ہیں: ایک ایڈمن
  فون نمبرز کے صفحے سے اس کی درخواست کرتا ہے۔
  [فون نمبر حاصل کریں](/ur/guides/get-a-phone-number) دیکھیں۔
- آپ کی تنظیم ہر نمبر پر کال کرنے کی رضامندی حاصل کرنے اور لاگو
  کالنگ قوانین کی پیروی کی ذمہ دار ہے۔
  [آؤٹ باؤنڈ کالنگ کے قوانین](/ur/guides/outbound-calling-laws) دیکھیں۔

## مثال ورک فلوز

- **CRM رابطوں کو مہم میں شامل کریں۔** CRM رابطوں کو ایک ڈرافٹ ThunderPhone
  مہم میں شامل کریں، پھر کسی فرد کے فہرست منظور کرنے کے بعد مہم شروع کریں۔
- **مکمل شدہ کال کو کسٹمر ریکارڈ میں شامل کریں۔** کال مکمل ہونے پر، کال حاصل کریں
  چلائیں اور ٹرانسکرپٹ اور ریکارڈنگ لنک کو متعلقہ کسٹمر ریکارڈ میں محفوظ کریں۔
- **کم گریڈز کو جائزے کے لیے بھیجیں۔** کال گریڈ ہونے پر،
  `{{ $json.data.grade.score }}` پر فلٹر کریں اور کم اسکور والی کالوں کو کال ID اور
  گریڈ کی تفصیلات کے ساتھ جائزہ قطار میں بھیجیں۔ ایک کال کو ایک سے زیادہ بار گریڈ کیا جا سکتا ہے،
  اور ہر مکمل گریڈنگ رن ٹرگر کو چلاتا ہے، اس لیے ہر کال ID کے لیے صرف تازہ ترین
  `graded_at` رکھیں۔

کال ٹرانسکرپٹس، خلاصوں اور ریکارڈنگز میں ذاتی یا صحت سے متعلق
معلومات شامل ہو سکتی ہیں۔ انہیں صرف ان ایپس کو بھیجیں جنہیں آپ کی تنظیم کو اس ڈیٹا کے لیے
استعمال کرنے کی اجازت ہے، جہاں صحت کی معلومات شامل ہوں وہاں BAA کے تحت، اور صرف
وہی فیلڈز رکھیں جن کی آپ کو ضرورت ہے۔

<Note>
  اس کے بجائے کال کے یہی ایونٹس اپنے سرور پر بھیج رہے ہیں؟ دیکھیں
  [ویب ہک اینڈ پوائنٹس](/ur/webhooks/endpoints)۔
  [آؤٹ باؤنڈ کالیں کریں](/ur/guides/place-outbound-calls) میں
  آؤٹ باؤنڈ کال کریں کے پس پشت API شامل ہے۔
</Note>
