---
title: "অন্তর্নির্মিত টুল"
description: "কল শেষ করতে, কলারদের কল ট্রান্সফার করতে, কীপ্যাড নেভিগেট করতে, হোল্ডে অপেক্ষা করতে, জ্ঞান অনুসন্ধান করতে, শব্দ চালাতে এবং ইমেল পাঠাতে ThunderPhone এজেন্টদের prompt দিন।"
---

অন্তর্নির্মিত টুল এজেন্টকে আপনার নিজস্ব API সংযুক্ত না করেই সাধারণ কল অ্যাকশন সম্পাদন করতে দেয়। বেশিরভাগ স্বয়ংক্রিয়ভাবে উপলভ্য; ইমেল, সাউন্ড এবং জ্ঞান অনুসন্ধান কেবল সংশ্লিষ্ট সেটিং বা উৎস কনফিগার করার পর দেখা যায়। এজেন্টকে তার prompt-এ বলুন কখন প্রতিটি অ্যাকশন ব্যবহার করতে হবে।

| টুল | এর জন্য ব্যবহার করুন | কীভাবে সক্রিয় করবেন | সমর্থিত কল |
| --- | --- | --- | --- |
| `end_call` | সম্পন্ন কথোপকথন শেষ করতে | সর্বদা উপলভ্য | ফোন, ব্রাউজার Talk, উইজেট, সিমুলেশন এবং Realtime |
| `transfer_call` | ফোন কলারকে রুট করতে | prompt-এ রাউটিং কনফিগার করুন | সাধারণ ফোন কল; `call_events`-সহ ইনলাইন Realtime কোল্ড ট্রান্সফার ব্যবহার করতে পারে। সংরক্ষিত-এজেন্ট Realtime-এ এটি নেই। |
| `send_keypad_input` | ফোন মেনুতে কী চাপতে | সাধারণ ফোন কলে সর্বদা উপলভ্য | ফোন কল; `call_events`-সহ ইনলাইন আউটবাউন্ড Realtime। সংরক্ষিত-এজেন্ট Realtime-এ এটি নেই। |
| `no_response` | স্বয়ংক্রিয় মেনু কথা বলার সময় শুনতে থাকতে | সর্বদা উপলভ্য | সব ধরনের কল |
| `wait_on_hold` | কারও ফিরে আসার জন্য নীরবে অপেক্ষা করতে | আউটবাউন্ড কলে অন্তর্ভুক্ত | আউটবাউন্ড ফোন এবং আউটবাউন্ড ইনলাইন Realtime সেশন |
| `search_knowledge_base` | সংযুক্ত উৎস থেকে উত্তর দিতে | এজেন্টের সঙ্গে জ্ঞান সংযুক্ত করুন | সংযুক্ত জ্ঞানসহ সংরক্ষিত-এজেন্ট কল |
| `play_sound` | কনফিগার করা নোটিফিকেশন সাউন্ড চালাতে | **উন্নত → টুল সাউন্ড** | সংরক্ষিত-এজেন্ট কল |
| `send_email` | একটি নির্দিষ্ট প্রাপককে ইমেল করতে | **উন্নত → ইমেল পাঠান** | সংরক্ষিত-এজেন্ট কল |

## `end_call`

prompt মডেলকে তা করতে বললে বর্তমান কল শেষ করে। এটি ডিফল্টভাবে উপলভ্য এবং এর কোনো এজেন্ট সেটিং নেই।

শর্ত এবং প্রয়োজনীয় বিদায়বার্তা prompt-এ লিখুন:

```text
When the caller confirms they need nothing else, say goodbye and end the call.
```

সাধারণ মডেল-সমাপ্ত কলের `end_reason: "ai_hangup"` থাকে। সময়কাল বা ব্যালেন্সের কারণে বন্ধ হলে পরিবর্তে আরও নির্দিষ্ট সমাপ্তির কারণ ব্যবহার হতে পারে।

## `transfer_call`

মডেল দ্বারা দেওয়া একটি নির্দিষ্ট নম্বরে ফোন কলারকে ট্রান্সফার করে। কোল্ড ট্রান্সফার তাৎক্ষণিক। স্ক্রিন করা ওয়ার্ম ট্রান্সফার পক্ষগুলোকে সংযুক্ত করার আগে ব্যক্তিগতভাবে গন্তব্যে কল করে। ওয়ার্ম ট্রান্সফারের জন্য একটি যাচাইকৃত আমদানি করা VoIP নম্বর প্রয়োজন, যা আউটবাউন্ড কল করতে পারে।

গন্তব্য নম্বর এবং সঠিক রাউটিং শর্ত prompt-এ দিন:

```text
If the caller asks for billing, transfer them to +15551234567.
```

সফল কোল্ড ট্রান্সফারের `end_reason: "ai_transfer"` থাকে; সম্পন্ন ওয়ার্ম হ্যান্ডঅফের `end_reason: "ai_warm_transfer"` থাকে। ব্যর্থ ওয়ার্ম প্রচেষ্টা নিয়ন্ত্রণ এজেন্টের কাছে ফেরত দেয়, তাই কলটির পরবর্তী সমাপ্তি তার সমাপ্তির কারণ নির্ধারণ করে। ফোন-বহির্ভূত সেশনে ট্রান্সফার অনুরোধ পরিবর্তে সেশন শেষ করে।

ড্যাশবোর্ড ও API সেটআপ, রাউটিং, স্ক্রিনিং, ব্যর্থতা পরিচালনা, সীমা এবং পরীক্ষার জন্য [কল ট্রান্সফার](/bn/guides/call-transfers) দেখুন।

## `send_keypad_input`

ফোন লাইনে DTMF (ফোন কীপ্যাড) ডিজিট `0`–`9`, `*`, এবং `#` পাঠায়। মডেল এটি ব্যবহার করে IVR নেভিগেট করতে, অর্থাৎ সেই স্বয়ংক্রিয় মেনু যা কলারদের কী চাপতে বলে। এটি ডিফল্টভাবে উপলভ্য এবং এর কোনো এজেন্ট সেটিং নেই।

মডেলকে বলুন এটি কোন মেনুগুলো নেভিগেট করতে পারে এবং অনুরোধ করা মানগুলো কোথা থেকে আসে। মেনু বিকল্প অনুমান করতে বলবেন না:

```text
Follow the phone menu for account status. Press a key only after the menu
states what that key does. Enter the account number supplied by the caller.
```

প্ল্যাটফর্ম অসমর্থিত অক্ষর সরিয়ে দেয় এবং বৈধ ডিজিটগুলো ক্রমানুসারে পাঠায়। কোনো বৈধ ডিজিট অবশিষ্ট না থাকলে বা কল কীপ্যাড ইনপুট পাঠাতে না পারলে, ব্যর্থতা এজেন্টের কাছে ফেরত দেওয়া হয় যাতে এটি পুনরুদ্ধার করতে পারে।

## `no_response`

স্বয়ংক্রিয় সিস্টেম এখনও কথা বললে বা শুনতে থাকতে বললে এজেন্টকে নীরব রাখে। এটি কোনো লাইভ ব্যক্তির অভিবাদন, প্রশ্ন বা প্রকৃত হোল্ড কিউয়ের জন্য নয়। এটি ডিফল্টভাবে উপলভ্য এবং এর কোনো এজেন্ট সেটিং নেই।

সাধারণত অন্তর্নির্মিত বিবরণই যথেষ্ট। IVR-নির্ভর কলের জন্য prompt-এ সীমারেখাটি জোরদার করুন:

```text
Stay silent while a phone menu is still speaking. Answer a live person as soon
as they address you.
```

এই অ্যাকশন কল শেষ করে না।

## `wait_on_hold`

একজন বহির্গামী এজেন্টকে কোনো ব্যক্তি ফিরে আসা পর্যন্ত নীরব হোল্ড অবস্থায় রাখে।
অন্য পক্ষ স্পষ্টভাবে এজেন্টকে হোল্ডে রাখার কথা বলার পরেই মডেল এটি ব্যবহার করে।
এটি বহির্গামী কলে স্বয়ংক্রিয়ভাবে উপলভ্য এবং এর কোনো ড্যাশবোর্ড সেটিং নেই।

```text
If a person explicitly puts you on hold, wait silently. When they return,
continue from the question you were discussing.
```

IVR-এর "অনুগ্রহ করে অপেক্ষা করুন" বার্তার জন্য এজেন্টকে এটি ব্যবহার করতে বলবেন না। ডিফল্টভাবে হোল্ড সর্বোচ্চ
15 মিনিট স্থায়ী হয়। সাধারণ বহির্গামী কলের জন্য, `POST /v1/call`
একটি ধনাত্মক পূর্ণসংখ্যার `max_hold_seconds` গ্রহণ করে; ইনলাইন Realtime-এ
`max_hold_seconds` 10–900 সেকেন্ডে সীমাবদ্ধ। ব্যক্তি
ফিরে এলে, এজেন্ট কলের শেষ হওয়ার কারণ পরিবর্তন না করেই আবার শুরু করে। সীমা
শেষ হলে, প্ল্যাটফর্ম `end_reason: "ai_hangup"` দিয়ে কল শেষ করে।

## `search_knowledge_base`

এজেন্টের সঙ্গে সংযুক্ত ডকুমেন্ট খুঁজে প্রাসঙ্গিক অংশ ফেরত দেয়। এটি সক্রিয় করতে
একটি নলেজ বেস বা পৃথক নলেজ ডকুমেন্ট সংযুক্ত করুন, তারপর মডেলকে জানান কোন
উত্তরগুলো অবশ্যই ওই উৎসগুলো থেকে আসতে হবে:

```text
Search the knowledge base before answering policy questions. If the first
search is inconclusive, try once more with different key terms.
```

অনুসন্ধান ব্যর্থ হলে, ফলাফল এজেন্টের কাছে ফেরত দেওয়া হয়। ড্যাশবোর্ড ও API সেটআপের জন্য
[নলেজ বেস](/bn/guides/knowledge-base) দেখুন।

## `play_sound`

একই টার্নে যেকোনো কথনের পরে এজেন্টের কনফিগার করা বিজ্ঞপ্তির শব্দ বাজায়।
ড্যাশবোর্ডে **উন্নত → টুলের শব্দ**-এ **ঝংকার**, **টুনটুন**,
বা **বিপ** সেট করুন, তারপর এজেন্ট ডিপ্লয় করুন। **কোনোটিই নয়** টুলটি সরিয়ে দেয়।

[Agents API](/api-reference/agents)-এর মাধ্যমে, `play_sound_asset`-এ
`"chime"`, `"ding"`, বা `"beep"` সেট করুন, তারপর ডিপ্লয় করুন। টুলটি নিষ্ক্রিয় করতে
এটি `""`-এ সেট করুন।

```text
After confirming that an appointment was saved, say "You're all set" and play
the notification sound.
```

প্লেব্যাক ব্যর্থতা এজেন্টের কাছে ফেরত দেওয়া হয় এবং কল শেষ করে না।

## `send_email`

এজেন্টের মালিক কনফিগার করা একজন প্রাপকের কাছে একটি প্লেইন-টেক্সট ইমেইল পাঠায়।
মডেল বিষয় ও বডি সরবরাহ করে। এটি কখনোই প্রাপকের প্যারামিটার দেখে না
এবং ঠিকানা বেছে নিতে বা পরিবর্তন করতে পারে না।

ড্যাশবোর্ডে **উন্নত → ইমেইল পাঠান** সক্রিয় করুন, একটি প্রাপকের ঠিকানা সংরক্ষণ করুন,
তারপর এজেন্ট ডিপ্লয় করুন। [Agents API](/api-reference/agents)-এর মাধ্যমে, উভয়
`send_email_enabled: true` এবং একটি খালি নয় এমন `send_email_recipient` সেট করুন, তারপর ডিপ্লয় করুন।
prompt-এ ট্রিগার ও প্রয়োজনীয় বিষয়বস্তু নির্ধারণ করুন:

```text
When the caller asks to leave a message, collect their name, callback number,
and message. Read the details back for confirmation, then email them.
```

একটি কল সর্বোচ্চ তিনটি ইমেইলের চেষ্টা করতে পারে। প্রতিটি বিষয় 300
অক্ষরে এবং প্রতিটি বডি 20,000 অক্ষরে সীমাবদ্ধ। অনুপস্থিত কনফিগারেশন, অবৈধ
বিষয়বস্তু, প্রতি-কল সীমা এবং ডেলিভারি ব্যর্থতা এজেন্টের কাছে ফেরত দেওয়া হয়।
ডেলিভারি ব্যর্থ হলেও তিনটি চেষ্টার একটি ব্যবহার হয়।

বিস্তৃতভাবে ডিপ্লয় করার আগে নিয়ন্ত্রিত প্রাপকের সঙ্গে পরীক্ষা করুন। ব্রাউজার টক এবং
সিমুলেশন বাস্তব ইমেইল পাঠায়; কোনো ড্রাই-রান মোড নেই।

## সামঞ্জস্যতা সংক্রান্ত নোট

**উন্নত → বাধাহীন প্রকাশনা** সেটিং এবং পুরোনো
`speak_uninterruptible_enabled` ফিল্ড সামঞ্জস্যতার জন্য রয়ে গেছে, কিন্তু এগুলো সক্রিয়
করলে কোনো প্রভাব পড়ে না। সেটিংটি বন্ধ রাখুন; কোনো prompt এই টুল সক্রিয় করতে পারে না।

প্রয়োজনীয় কল-শুরুর প্রকাশনার জন্য **সম্মতি ঘোষণা** ব্যবহার করুন। এটি সাধারণ
কথোপকথনের আগে হুবহু বাজে এবং বাধাগ্রস্ত করা যায় না। [কল রেকর্ডিং সম্মতি আইন](/bn/guides/recording-consent-laws) দেখুন।

## অন্তর্নির্মিত টুল পরীক্ষা ও পর্যবেক্ষণ করুন

prompting, নলেজ অনুসন্ধান, শব্দ এবং ইমেইল পরীক্ষা করতে ব্রাউজার টক বা একটি সিমুলেশন ব্যবহার করুন।
এই পরিবেশগুলো ফোন-নেটওয়ার্কের আচরণ পুনরুৎপাদন করতে পারে না। বহির্গামী ফোন কলে
কীপ্যাড নেভিগেশন ও হোল্ড পরীক্ষা করুন, এবং উপযুক্ত আমদানি করা VoIP নম্বর ব্যবহার করে বাস্তব কলে
একটি সম্পূর্ণ উষ্ণ হ্যান্ডঅফ পরীক্ষা করুন। Realtime সমর্থন উপরের টেবিলে দেখানো অনুযায়ী
সীমিত।

## কল, মূল্য নির্ধারণ এবং ওয়েবহুক

অন্তর্নির্মিত অ্যাকশনের জন্য প্রতি ব্যবহারে কোনো টুল ফি নেই। স্বাভাবিক কল এবং প্রোভাইডার চার্জ
তবুও প্রযোজ্য; দেখুন [মূল্য নির্ধারণ](/bn/guides/pricing)। তাদের কল এবং ফলাফল
সম্পন্ন ট্রান্সক্রিপ্টে দেখা যেতে পারে, তবে তারা `telephony.tool` বা `web.tool` ইমিট করে না।
এই ইভেন্টগুলো [ব্যবহারকারী-সংজ্ঞায়িত ফাংশন](/bn/tools/overview)-এর জন্য। শুধুমাত্র সফলভাবে
সম্পন্ন হ্যাংআপ বা ট্রান্সফার কলের `end_reason` পরিবর্তন করে; অন্যান্য ব্যর্থতা এজেন্টের কাছে ফেরত পাঠানো হয়।
কল রেকর্ডের জন্য [সমাপ্তি ওয়েবহুক](/bn/webhooks/call-complete) দেখুন।
