ইভেন্ট ক্যাটালগ

প্রতিটি webhook বডিতে একটি type ফিল্ড থাকে, যার মান এই পৃষ্ঠার ইভেন্ট টাইপগুলোর একটি। আপনি যখন কোনো এন্ডপয়েন্টে সাবস্ক্রাইব করেন, তখন events অ্যারেতে অবশ্যই আপনার চাওয়া ইভেন্ট টাইপগুলো থাকতে হবে (অথবা সবকিছুর জন্য সাবস্ক্রাইব করতে এটি খালি রাখতে হবে)।

দুটি ডেলিভারি শৈলী এই ইভেন্টগুলো বহন করে:

নিচের উদাহরণ পে-লোডগুলো তাদের ওয়্যার ক্রমে এন্ডপয়েন্ট এনভেলপ দেখায় (কীগুলো বর্ণানুক্রমে সাজানো: data, event_id, type); লিগ্যাসি ডেলিভারিগুলো event_id ছাড়া একই data বহন করে।

কল ইভেন্ট

telephony.incoming

একটি ইনবাউন্ড কল আপনার কোনো একটি ফোন নম্বরে পৌঁছালে পাঠানো হয়। এন্ডপয়েন্ট ডেলিভারিগুলো প্রতিটি ইনবাউন্ড কলের জন্য ফায়ার-অ্যান্ড-ফরগেট নোটিফিকেশন হিসেবে পাঠানো হয়, নম্বরটি এজেন্ট-কনফিগার করা হোক বা webhook-কনফিগার করা হোক। কোনো এজেন্ট বরাদ্দ না থাকা নম্বরগুলো লিগ্যাসি webhook-এ অতিরিক্তভাবে ব্লকিং কনফিগারেশন অনুরোধ পায় — সম্পূর্ণ অনুরোধ / প্রতিক্রিয়া স্কিমার জন্য telephony.incoming / web.incoming দেখুন।

{
  "data": {
    "call_id": 987654321,
    "from_number": "+14155550199",
    "to_number": "+15551234567"
  },
  "event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
  "type": "telephony.incoming"
}

telephony.complete

একটি ইনবাউন্ড বা আউটবাউন্ড টেলিফোনি কল শেষ হলে পাঠানো হয়। নন-ব্লকিং। ট্রান্সক্রিপ্ট, উপলভ্য থাকলে রেকর্ডিং URL, এবং বিলিং সারসংক্ষেপ অন্তর্ভুক্ত করে। পেলোড স্কিমার জন্য telephony.complete / web.complete দেখুন।

telephony.tool

একটি টেলিফোনি কল ফাংশন টুল আহ্বান করার পর পাঠানো হয়। নন-ব্লকিং অডিট নোটিফিকেশন — এই ইভেন্ট ডেলিভারির সময় টুলটি ইতিমধ্যে কার্যকর হয়ে গেছে; এটি আপনার নিজস্ব ফাংশন টুলগুলোকে কভার করে (বিল্ট-ইন, নলেজ-বেস, অ্যাপ-কানেকশন, বা MCP টুল নয়)।

{
  "data": {
    "arguments": { "date": "2026-04-21" },
    "call_id": 987654321,
    "from_number": "+14155550199",
    "response": {
      "response": { "available_slots": ["9:00 AM", "2:00 PM"] },
      "status": 200
    },
    "to_number": "+15551234567",
    "tool_name": "search_appointments"
  },
  "event_id": "1f0a7c3e-52d4-4a0e-8f4b-b1a6a1c0d9e2",
  "type": "telephony.tool"
}

response হলো কার্যকর হওয়া ফলাফল: সফল হলে {"status": <http status>, "response": <your endpoint's JSON>}, অথবা ব্যর্থ হলে {"status": <status>, "error": "<message>"}

web.incoming

telephony.incoming-এর ওয়েব-চ্যানেল সমতুল্য, যা একটি ওয়েব উইজেট সেশন বা বিল্ডার মাইক টেস্ট কল শুরু হলে পাঠানো হয়। প্রতিটি ওয়েব সেশনের জন্য এন্ডপয়েন্ট ডেলিভারিগুলো ফায়ার-অ্যান্ড-ফরগেট। mode="webhook"-এ পাবলিশেবল কী-গুলো লিগ্যাসি webhook-এ অতিরিক্তভাবে ব্লকিং কনফিগারেশন অনুরোধ পায় — সেই ব্লকিং অনুরোধের গঠন ভিন্ন (origin_domain, publishable_key_prefix; কোনো ফোন নম্বর নেই)। telephony.incoming / web.incoming দেখুন।

{
  "data": {
    "call_id": 987654322,
    "from_number": "web",
    "origin_domain": "https://example.com",
    "publishable_key_prefix": "pk_live_a1b2",
    "to_number": "+15551234567"
  },
  "event_id": "9a2b4c6d-8e0f-4a1b-9c2d-3e4f5a6b7c8d",
  "type": "web.incoming"
}

from_number সর্বদা আক্ষরিক "web"। webhook-মোড উইজেট সেশনের ক্ষেত্রে to_number খালি থাকে (কনফিগারেশনের পরে সেশনের এজেন্ট নম্বর বরাদ্দ করা হয়); বিল্ডার মাইক টেস্ট কলের ক্ষেত্রে origin_domain এবং publishable_key_prefix খালি থাকে।

web.complete

telephony.complete-এর ওয়েব-চ্যানেল সমতুল্য, যা ওয়েব উইজেট কল (direction: "web") এবং বিল্ডার মাইক টেস্ট কল (direction: "test") কভার করে। নন-ব্লকিং। telephony.complete-এর মতোই পেলোড গঠন, তবে origin_domain অতিরিক্ত থাকে এবং from_number হিসেবে "web" সেট করা থাকে।

web.tool

telephony.tool-এর ওয়েব-চ্যানেল সমতুল্য। data-এ from_number / to_number-এর পরিবর্তে origin_domain থাকে।


ভয়েস ইভেন্ট

কাস্টম ভয়েস তৈরি একটি অ্যাসিঙ্ক্রোনাস প্রক্রিয়া। এই নন-ব্লকিং ইভেন্টগুলো আপনাকে পোলিং করার পরিবর্তে একটি চূড়ান্ত ফলাফলে প্রতিক্রিয়া জানাতে দেয় ক্লোন বিস্তারিত এন্ডপয়েন্ট

voice.ready

কাস্টম ভয়েসের প্রক্রিয়াকরণ সম্পন্ন হলে এবং এটি কোনো এজেন্টে বরাদ্দ করা গেলে পাঠানো হয়।

{
  "data": {
    "voice": {
      "created_at": "2026-07-30T14:12:08.317Z",
      "display_name": "Support voice",
      "failure_reason": "",
      "gender": "female",
      "id": "cv_2f6f90b0e9a34ee8b39be7d1",
      "language": "en",
      "name": "custom:cv_2f6f90b0e9a34ee8b39be7d1",
      "status": "ready",
      "updated_at": "2026-07-30T14:13:31.605Z"
    }
  },
  "event_id": "2d5f0a61-e9b5-4a3c-b684-29d7d9e4b214",
  "type": "voice.ready"
}

voice.failed

কাস্টম ভয়েস প্রক্রিয়াকরণ স্থায়ী ব্যর্থতায় পৌঁছালে পাঠানো হয়।

{
  "data": {
    "reason": "audio sample could not be processed",
    "voice": {
      "created_at": "2026-07-30T14:12:08.317Z",
      "display_name": "Support voice",
      "failure_reason": "audio sample could not be processed",
      "gender": "female",
      "id": "cv_2f6f90b0e9a34ee8b39be7d1",
      "language": "en",
      "name": "custom:cv_2f6f90b0e9a34ee8b39be7d1",
      "status": "failed",
      "updated_at": "2026-07-30T14:13:31.605Z"
    }
  },
  "event_id": "3493e985-1a75-4f77-a10a-e74af440cd31",
  "type": "voice.failed"
}
ক্ষেত্রধরনবিবরণ
voice.idস্ট্রিংকাস্টম ভয়েসের পাবলিক আইডি
voice.nameস্ট্রিংcustom:<public_id> ফরম্যাটে এজেন্টের ভয়েস মান
voice.display_nameস্ট্রিংপ্রতিষ্ঠানের জন্য প্রদর্শিত ভয়েসের নাম
voice.languageস্ট্রিংক্লোনের একক ভাষা কোড
voice.genderস্ট্রিংmale, female, অথবা একটি খালি স্ট্রিং
voice.statusস্ট্রিংvoice.ready-এর জন্য ready; voice.failed-এর জন্য failed
voice.failure_reasonস্ট্রিংসফল হলে খালি; ব্যর্থ হলে প্রক্রিয়াকরণ ব্যর্থতার বিবরণ
voice.created_at, voice.updated_atটাইমস্ট্যাম্পISO 8601 টাইমস্ট্যাম্প
reasonস্ট্রিংব্যর্থতার বিবরণ; শুধু voice.failed-এ উপস্থিত

গুণমান ইভেন্ট

call.graded

কোনো কলের জন্য একটি AI গ্রেডিং রান সম্পন্ন হলে পাঠানো হয়। ব্লকিং নয়।

{
  "data": {
    "call_id": 987654321,
    "grade": {
      "call_outcome": "success",
      "created_at": "2026-04-20T18:25:11.002Z",
      "detected_issues": [],
      "graded_at": "2026-04-20T18:25:11.002Z",
      "grader_model": "heuristic-v1",
      "id": 5512,
      "score": 92,
      "status": "completed",
      "summary": "Caller asked about their policy and got a full answer…"
    }
  },
  "event_id": "7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
  "type": "call.graded"
}
ক্ষেত্রধরনবিবরণ
grade.idintegerগ্রেড id
grade.scoreinteger | null0–100
grade.call_outcomestringsuccess, failure, unknown, অথবা no_conversation
grade.summarystringএক অনুচ্ছেদের সারসংক্ষেপ
grade.detected_issuesarrayগ্রেডার দ্বারা পাওয়া সমস্যার স্ট্রিং
grade.statusstringসর্বদা completed — শুধু সম্পন্ন রানই পাঠায়
grade.grader_modelstringকোন গ্রেডার ফলাফল তৈরি করেছে (যেমন, heuristic-v1)
grade.graded_at, grade.created_attimestamp

issue.reported

একটি সমস্যা প্রতিবেদন তৈরি হলে পাঠানো হয় — হয় ড্যাশবোর্ড থেকে কোনো ব্যবহারকারী জমা দিলে (source: "user"), অথবা কল গ্রেডিংয়ের মাধ্যমে স্বয়ংক্রিয়ভাবে তৈরি হলে (source: "system")। ব্লকিং নয়।

{
  "data": {
    "call_id": 987654321,
    "issue_report": {
      "created_at": "2026-04-20T18:25:11.002Z",
      "description": "Five-second silence before responding to the main question.",
      "id": 4321,
      "severity": "warning",
      "source": "system",
      "status": "open",
      "title": "Agent paused too long"
    }
  },
  "event_id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
  "type": "issue.reported"
}
ক্ষেত্রধরনবিবরণ
issue_report.severitystringcritical, warning, অথবা info
issue_report.statusstringopen অথবা resolved
issue_report.sourcestringuser (ড্যাশবোর্ড থেকে জমা দেওয়া) অথবা system (গ্রেডিং দ্বারা তৈরি)

টেস্ট কল ইভেন্ট

test-call.completed

একটি টেস্ট-কল রান চূড়ান্ত স্ট্যাটাসে পৌঁছালে পাঠানো হয় — completed অথবা failed; এর মধ্যে সেই রানগুলিও অন্তর্ভুক্ত, যা চালুর সময় ব্যর্থ হয়েছে এবং কখনও কল তৈরি করেনি। ব্লকিং নয়। আপনার চ্যাট/বিজ্ঞপ্তি সিস্টেমের সঙ্গে ব্যাচ CI রান সংযুক্ত করতে উপযোগী।

{
  "data": {
    "test_call_run": {
      "call_id": 987654321,
      "completed_at": "2026-04-20T18:25:04.822Z",
      "error_message": "",
      "id": 7110,
      "status": "completed",
      "target_id": 12,
      "target_type": "agent"
    }
  },
  "event_id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "type": "test-call.completed"
}
ক্ষেত্রধরনবিবরণ
test_call_run.target_typestringagent অথবা phone_number
test_call_run.target_idintegerরানটি যে এজেন্ট id বা ফোন-নম্বর id-কে লক্ষ্য করেছে, target_type-এর সঙ্গে সামঞ্জস্যপূর্ণ
test_call_run.statusstringcompleted অথবা failed
test_call_run.call_idinteger | nullকল স্থাপনের আগে রান ব্যর্থ হলে null
test_call_run.error_messagestringসফল হলে খালি

সতর্কতা ইভেন্ট

alert.triggered

ডেভেলপার ওয়েবহুকে ডেলিভার করুন চ্যানেল সক্রিয় থাকা কোনো সতর্কতা নিয়ম তার থ্রেশহোল্ড অতিক্রম করলে পাঠানো হয়। নন-ব্লকিং। একটি নিয়ম একবার ফায়ার হয় এবং তারপর তার কুলডাউন মেনে চলে, তাই ধারাবাহিক লঙ্ঘন প্রতিটি কুলডাউন উইন্ডোতে একটি ইভেন্ট তৈরি করে।

{
  "data": {
    "comparator": "lt",
    "event_id": "b8e6a1d4-2c3f-4a5b-9c8d-7e6f5a4b3c2d",
    "fired_at": "2026-04-20T18:00:00+00:00",
    "metric": "success_rate",
    "metric_value": 71.4,
    "rule_id": "d2c3b4a5-6f7e-4d8c-9b0a-1c2d3e4f5a6b",
    "rule_name": "Success rate below 80%",
    "threshold": 80.0,
    "window_hours": 24
  },
  "event_id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
  "type": "alert.triggered"
}
ফিল্ডধরনবিবরণ
event_id (data-তে)UUIDসতর্কতার ফায়ারিং আইডি — এনভেলপের ডেলিভারি event_id থেকে আলাদা
rule_id, rule_nameUUID, স্ট্রিংযে নিয়মটি ফায়ার হয়েছে
metricস্ট্রিংsuccess_rate, failure_rate, avg_score, call_volume, অথবা suite_regression
comparatorস্ট্রিংlt, lte, gt, অথবা gte
metric_valueসংখ্যানিয়মটি ফায়ার হওয়ার সময় উইন্ডোজুড়ে মেট্রিকের মান
thresholdসংখ্যাকনফিগার করা থ্রেশহোল্ড
window_hoursপূর্ণসংখ্যাপেছনের মূল্যায়ন উইন্ডো
fired_atটাইমস্ট্যাম্প

নিয়ম, মেট্রিক, কুলডাউন এবং ইমেল / Slack চ্যানেল তৈরি করতে সতর্কতা নির্দেশিকা দেখুন।


সম্পর্কিত