Open in
Webhook എൻഡ്പോയിന്റുകൾ
ഓരോ എൻഡ്പോയിന്റിനും പ്രത്യേക സീക്രട്ടുകളും ഇവന്റ് ഫിൽട്ടറുകളും ഉപയോഗിച്ച് ഒന്നിലധികം webhook URL-ുകൾ നിയന്ത്രിക്കുക.
എൻഡ്പോയിന്റ് അധിഷ്ഠിത webhook സംവിധാനം ഓരോ ഓർഗനൈസേഷനും ഒന്നിലധികം ലക്ഷ്യസ്ഥാനങ്ങൾ രജിസ്റ്റർ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഓരോന്നിനും സ്വന്തം സീക്രട്ട്, സ്വന്തം സ്റ്റാറ്റസ്, ഇവന്റ് തരങ്ങളുടെ ഒരു ഉപസെറ്റിലേക്കുള്ള സ്വന്തം സബ്സ്ക്രിപ്ഷൻ എന്നിവ ഉണ്ടായിരിക്കും. എല്ലാ പുതിയ ഇന്റഗ്രേഷനുകൾക്കും ഇതാണ് ശുപാർശ ചെയ്യുന്ന മോഡൽ.
പിന്നോട്ടുള്ള അനുയോജ്യതയ്ക്കായി നിലനിർത്തിയിട്ടുള്ളതെങ്കിലും ഓരോ org-നും ഒരു URL മാത്രമേ പിന്തുണയ്ക്കുന്നുള്ളൂ എന്ന ലെഗസി സിംഗിൾ-URL webhook-മായി താരതമ്യം ചെയ്യുക.
എൻഡ്പോയിന്റുകൾ
| രീതി | പാത്ത് | ആവശ്യമായ റോൾ | വിവരണം |
|---|---|---|---|
GET | /v1/developer/webhook-endpoints | admin+ | എൻഡ്പോയിന്റുകൾ ലിസ്റ്റ് ചെയ്യുക |
POST | /v1/developer/webhook-endpoints | admin+ | ഒരു എൻഡ്പോയിന്റ് സൃഷ്ടിക്കുക |
PATCH | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | ലേബൽ / URL / ഇവന്റുകൾ / സ്റ്റാറ്റസ് അപ്ഡേറ്റ് ചെയ്യുക |
DELETE | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | ഒരു എൻഡ്പോയിന്റ് ഇല്ലാതാക്കുക |
POST | /v1/developer/webhook-endpoints/{endpoint_id}/test | admin+ | സൈൻ ചെയ്ത ടെസ്റ്റ് ഡെലിവറി അയയ്ക്കുക |
GET | /v1/developer/webhook-deliveries | admin+ | സമീപകാല എൻഡ്പോയിന്റ്, ലെഗസി ഡെലിവറി ഫലങ്ങൾ പരിശോധിക്കുക |
എൻഡ്പോയിന്റ് ഒബ്ജക്റ്റ്
{
"id": "c4d5e6f7-...",
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
"status": "active",
"agent_id": 42,
"agent_name": "Support Agent",
"secret_hint": "a1b2…9f0e",
"created_at": "2026-04-20T18:24:10.113Z",
"updated_at": "2026-04-20T18:24:10.113Z"
}| ഫീൽഡ് | തരം | വിവരണം |
|---|---|---|
id | UUID | എൻഡ്പോയിന്റ് id |
label | string | പ്രദർശന നാമം, 1–120 അക്ഷരങ്ങൾ |
url | string | HTTPS URL; ഡെവലപ്മെന്റിനായി http://localhost അനുവദനീയമാണ് |
events | string-ന്റെ array | സബ്സ്ക്രൈബ് ചെയ്ത ഇവന്റ് തരങ്ങൾ (സാധുവായ മൂല്യങ്ങൾ കാണുക). ശൂന്യ array വ്യക്തമായി മാത്രം തിരഞ്ഞെടുക്കാവുന്ന ഓരോ ടേണിലുമുള്ള ഇവന്റുകൾ (telephony.turn / web.turn) ഒഴികെയുള്ള എല്ലാ ഇവന്റുകളിലേക്കും സബ്സ്ക്രൈബ് ചെയ്യുന്നു |
status | string | active, disabled (മാനുവലായി താൽക്കാലികമായി നിർത്തിയത്), അല്ലെങ്കിൽ failing (ഒരു ഡെലിവറി ഒരൊറ്റ 2xx പോലും ലഭിക്കാതെ അതിന്റെ 24 മണിക്കൂർ റീട്രൈ ഷെഡ്യൂൾ പൂർത്തിയാക്കുമ്പോൾ സ്വയമേവ സജ്ജമാക്കുന്നത്) |
agent_id | integer | null | ഈ എൻഡ്പോയിന്റ് പരിമിതപ്പെടുത്തിയിട്ടുള്ള ഏജന്റ്; null എന്നാൽ ഓർഗനൈസേഷൻ-വ്യാപകം |
agent_name | string | null | പരിമിതപ്പെടുത്തിയ ഏജന്റിന്റെ പേര്, അല്ലെങ്കിൽ ഓർഗനൈസേഷൻ-വ്യാപക എൻഡ്പോയിന്റിനായി null |
secret_hint | string | എലിപ്സിസോടുകൂടിയ (a1b2…9f0e) സൈനിംഗ് സീക്രട്ടിന്റെ ആദ്യ 4-ഉം അവസാന 4-ഉം അക്ഷരങ്ങൾ — പൂർണ മൂല്യം വെളിപ്പെടുത്താതെ നിങ്ങൾ ലോക്കലായി സേവ് ചെയ്ത സീക്രട്ടുമായി താരതമ്യം ചെയ്യാൻ മതിയാകും |
created_at, updated_at | timestamp |
സാധുവായ ഇവന്റ് തരങ്ങൾ
events ഈ കൃത്യമായ സെറ്റിനെതിരെ പരിശോധിക്കുന്നു — ലിസ്റ്റിന് പുറത്തുള്ള മൂല്യങ്ങൾ
400 മടക്കിനൽകും. ഓരോ തരത്തിന്റെയും പേലോഡ് ഘടനയ്ക്കായി ഇവന്റ്സ് കാറ്റലോഗ്
കാണുക.
telephony.incoming,telephony.complete,telephony.tool,telephony.turnweb.incoming,web.complete,web.tool,web.turncall.graded,call.data_extractedcampaign.completedissue.reported,issue.escalatedtest-call.completedalert.triggered
issue.escalated-ന് ഏജന്റ് കോൺടെക്സ്റ്റ് ഇല്ല; ഇത് ഓർഗനൈസേഷൻ-വ്യാപക
എൻഡ്പോയിന്റുകളിലേക്ക് മാത്രം ഡെലിവർ ചെയ്യപ്പെടും.
voice.ready, voice.failed എന്നിവ വ്യക്തമായി തിരഞ്ഞെടുക്കാനാകില്ല. അവ ലഭിക്കാൻ,
events: [] ഉപയോഗിച്ച് ഒരു ഓർഗനൈസേഷൻ-വ്യാപക എൻഡ്പോയിന്റ് സൃഷ്ടിക്കുക. ശൂന്യ ഇവന്റ്
ലിസ്റ്റ്, വ്യക്തമായി തിരഞ്ഞെടുക്കേണ്ട telephony.turn, web.turn എന്നിവ ഒഴികെ
പിന്തുണയ്ക്കുന്ന എല്ലാ ഇവന്റുകളും സ്വീകരിക്കും.
എൻഡ്പോയിന്റ് സ്റ്റാറ്റസുകൾ
active— ഡെലിവറികൾ സാധാരണപോലെ നടക്കും.disabled—PATCHവഴി മാനുവലായി താൽക്കാലികമായി നിർത്തിയത്. അഭ്യർത്ഥനകളൊന്നും അയയ്ക്കില്ല. ഞങ്ങൾ ഒരിക്കലുംdisabledഎൻഡ്പോയിന്റിന്റെ സ്റ്റാറ്റസ് മാറ്റില്ല; അത് വീണ്ടുംactiveആക്കണമോ എന്നത് എല്ലായ്പ്പോഴും നിങ്ങളുടെ തീരുമാനമാണ്.failing— എൻഡ്പോയിന്റിലേക്കുള്ള ഒരു ഡെലിവറി ഒരിക്കലും 2xx ലഭിക്കാതെ അതിന്റെ മുഴുവൻ റീട്രൈ ഷെഡ്യൂൾ (24 മണിക്കൂറിൽ 8 ശ്രമങ്ങൾ) പൂർത്തിയാക്കുമ്പോൾ സ്വയമേവ സജ്ജമാക്കുന്നു. പരാജയപ്പെടുന്ന എൻഡ്പോയിന്റിന് പിന്നീട് ട്രാഫിക് ലഭിക്കില്ല. എൻഡ്പോയിന്റ് പരിഹരിച്ചുകഴിഞ്ഞാൽ,PATCHഉപയോഗിച്ച് അതിന്റെ സ്റ്റാറ്റസ് വീണ്ടുംactiveആക്കുക; ഇതുവരെ റീട്രൈ ഷെഡ്യൂൾ തീരാത്ത ഡെലിവറികൾ നിർത്തിയിടത്തുനിന്ന് പുനരാരംഭിക്കും.
എൻഡ്പോയിന്റുകൾ ലിസ്റ്റ് ചെയ്യുക
curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"എൻഡ്പോയിന്റ് ഒബ്ജക്റ്റുകളുടെ ഒരു array മടക്കിനൽകുന്നു.
ആ ഏജന്റിലേക്ക് പരിമിതപ്പെടുത്തിയ എൻഡ്പോയിന്റുകൾ മാത്രം മടക്കിനൽകാൻ ?agent_id=42 നൽകുക.
ഏജന്റ്-പരിമിതപ്പെടുത്തിയ എൻഡ്പോയിന്റുകൾ
ഓർഗനൈസേഷൻ-വ്യാപക എൻഡ്പോയിന്റുകൾ പൊരുത്തപ്പെടുന്ന എല്ലാ ഇവന്റുകളും സ്വീകരിക്കും. agent_id ഉള്ള
എൻഡ്പോയിന്റ് ആ ഏജന്റ് കൈകാര്യം ചെയ്യുന്ന കോളുകൾക്കായുള്ള പൊരുത്തപ്പെടുന്ന ഇവന്റുകൾ മാത്രം സ്വീകരിക്കും;
alert.triggered പോലുള്ള ഏജന്റ് കോൺടെക്സ്റ്റില്ലാത്ത ഇവന്റുകൾ അതിലെത്തില്ല. ഈ
എൻഡ്പോയിന്റുകൾ ഏജന്റ് ബിൽഡറിലെ വെബ്ഹുക്കുകൾ വിഭാഗത്തിൽനിന്നും സൃഷ്ടിക്കാനും
മാനേജ് ചെയ്യാനും കഴിയും.
ഒരു എൻഡ്പോയിന്റ് സൃഷ്ടിക്കുക
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"]
}'result = requests.post(
"https://api.thunderphone.com/v1/developer/webhook-endpoints",
headers={"Authorization": "Bearer sk_live_YOUR_API_KEY"},
json={
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
},
).json()
secret = result["secret"]
endpoint_id = result["id"]അഭ്യർത്ഥന ഫീൽഡുകൾ
| ഫീൽഡ് | തരം | ആവശ്യമാണ് | വിവരണം |
|---|---|---|---|
label | സ്ട്രിംഗ് | അതെ | 1–120 അക്ഷരങ്ങൾ |
url | സ്ട്രിംഗ് | അതെ | HTTPS URL (localhost / 127.0.0.1-ന് മാത്രം http അനുവദനീയം) |
events | അറേ | ഇല്ല | ശൂന്യമോ ഒഴിവാക്കിയതോ ആണെങ്കിൽ, വ്യക്തമായ സബ്സ്ക്രിപ്ഷൻ ആവശ്യമായ telephony.turn / web.turn ഒഴികെയുള്ള എല്ലാ ഇവന്റുകളിലേക്കും സബ്സ്ക്രൈബ് ചെയ്യും. സാധുവായ ഇവന്റ് തരങ്ങളിൽ ലിസ്റ്റ് ചെയ്ത മൂല്യങ്ങൾ ഉപയോഗിക്കണം; ഡ്യൂപ്ലിക്കേറ്റുകൾ നീക്കം ചെയ്യും |
agent_id | ഇന്റിജർ | null | ഇല്ല | ഈ ഓർഗനൈസേഷനിലെ ഒരു ഏജന്റിലേക്ക് ഡെലിവറി പരിമിതപ്പെടുത്തുക; ഓർഗനൈസേഷൻ-വ്യാപക എൻഡ്പോയിന്റിനായി ഒഴിവാക്കുക അല്ലെങ്കിൽ null ഉപയോഗിക്കുക |
എൻഡ്പോയിന്റ് ഒബ്ജക്റ്റിനൊപ്പം അധിക ടോപ്പ്-ലെവൽ secret ഫീൽഡോടുകൂടി 201 Created നൽകുന്നു — റോ സൈനിംഗ് കീ ഉൾക്കൊള്ളുന്ന 48-അക്ഷര ഹെക്സ് സ്ട്രിംഗ്:
{
"id": "c4d5e6f7-…",
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
"status": "active",
"secret_hint": "a1b2…9f0e",
"created_at": "2026-04-20T18:24:10.113Z",
"updated_at": "2026-04-20T18:24:10.113Z",
"secret": "a1b2c37e08d94f5b16a2c8d90e7f3a4b5c6d7e8f90a19f0e"
}ഒരു എൻഡ്പോയിന്റ് അപ്ഡേറ്റ് ചെയ്യുക
curl -X PATCH https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Production — Call + Grade events",
"events": ["telephony.incoming", "telephony.complete", "call.graded"]
}'| ഫീൽഡ് | തരം | വിവരണം |
|---|---|---|
label | സ്ട്രിംഗ് | |
url | സ്ട്രിംഗ് | |
events | അറേ | |
status | സ്ട്രിംഗ് | active അല്ലെങ്കിൽ disabled. സെർവർ failing ആയി അടയാളപ്പെടുത്തിയ എൻഡ്പോയിന്റ് വീണ്ടും പ്രവർത്തനക്ഷമമാക്കാൻ active സജ്ജമാക്കുക |
agent_id | ഇന്റിജർ | null | എൻഡ്പോയിന്റ് പരിമിതപ്പെടുത്താൻ ഏജന്റ് ഐഡി സജ്ജമാക്കുക, അല്ലെങ്കിൽ അത് ഓർഗനൈസേഷൻ-വ്യാപകമാക്കാൻ null ഉപയോഗിക്കുക |
അപ്ഡേറ്റ് ചെയ്ത എൻഡ്പോയിന്റ് ഒബ്ജക്റ്റിനൊപ്പം 200 OK നൽകുന്നു.
ഒരു ടെസ്റ്റ് ഡെലിവറി അയയ്ക്കുക
കാനോനിക്കൽ JSON സീരിയലൈസേഷൻ,
X-ThunderPhone-Signature, ഡെലിവറി രേഖപ്പെടുത്തൽ, റീട്രൈ കണക്കെടുപ്പ് എന്നിവ ഉൾപ്പെടുന്ന സാധാരണ
ഡെലിവറി പൈപ്പ്ലൈൻ ഉപയോഗിച്ച് ഒരു എൻഡ്പോയിന്റിലേക്ക് സിന്തറ്റിക് webhook.test ഇവന്റ് അയയ്ക്കുക.
തിരഞ്ഞെടുത്ത എൻഡ്പോയിന്റിന്റെ events ഫിൽട്ടർ പരിഗണിക്കാതെ ടെസ്റ്റ് അതിനെയാണ് ലക്ഷ്യമിടുന്നത്.
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"എൻഡ്പോയിന്റിന് ഇതുപോലുള്ള ഒരു എൻവലപ്പ് ലഭിക്കും:
{
"data": {
"message": "ThunderPhone webhook test",
"sent_at": "2026-07-17T20:12:34.567890+00:00"
},
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"type": "webhook.test"
}ലക്ഷ്യസ്ഥാനം ഒരു പിശക് നൽകിയാലും, ആദ്യ ശ്രമത്തിനുശേഷം API 200 OK നൽകും.
ഡെലിവറിയുടെ ഫലത്തിനായി success, status, response_code, error എന്നിവ പരിശോധിക്കുക:
{
"success": true,
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"event_type": "webhook.test",
"status": "delivered",
"response_code": 204,
"error": ""
}webhook.test സിന്തറ്റിക് ആണ്; എൻഡ്പോയിന്റിന്റെ events
സബ്സ്ക്രിപ്ഷനിൽ ഇത് ചേർക്കാനാകില്ല. ആദ്യ ശ്രമം പരാജയപ്പെട്ടാൽ, സാധാരണ ഇവന്റ് ഡെലിവറികൾക്കുള്ള
അതേ റീട്രൈ ഷെഡ്യൂൾ ഡെലിവറി പിന്തുടരും.
യഥാർത്ഥ ഇവന്റ് ഘടനയ്ക്കെതിരായി ഒരു ട്രിഗർ കോൺഫിഗർ ചെയ്യാൻ, ഓപ്ഷണലായ
event_type കൈമാറുക. ഡെലിവറി തുടർന്നും സിന്തറ്റിക് ആയിരിക്കും, അതിൽ "sample": true ഉണ്ടായിരിക്കും;
കോൾ-ബന്ധപ്പെട്ട സാമ്പിളുകൾ call_id: 0, agent_id: 0 എന്നിവ ഉപയോഗിക്കുന്നു.
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"event_type":"call.graded"}'സാധുവായ ഇവന്റ് തരങ്ങളിലെ ഏത് മൂല്യവും event_type സ്വീകരിക്കും.
ഇത് ഒഴിവാക്കിയാൽ സാധാരണ webhook.test സ്വഭാവം നിലനിർത്തും.
ഒരു എൻഡ്പോയിന്റ് ഇല്ലാതാക്കുക
curl -X DELETE https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"204 No Content നൽകുന്നു. URL-ലേക്കുള്ള ഡെലിവറി ഉടൻ നിർത്തും;
പുരോഗതിയിലുള്ള റീട്രൈകൾ ഉപേക്ഷിക്കപ്പെടും.
ഡെലിവറികൾ ഡീബഗ് ചെയ്യുക
ഒരു വെബ്ഹുക്ക് അയച്ചിട്ടില്ലെന്ന് നിഗമനത്തിലെത്തുന്നതിന് മുമ്പ്,
GET /v1/developer/webhook-deliveries പരിശോധിക്കുക.
കോൾ ഐഡി, URL ഉറവിടം, HTTP സ്റ്റാറ്റസ്, ശ്രമങ്ങളുടെ എണ്ണം, അനുവദനീയപ്പട്ടികയിലുള്ള പരാജയ വിഭാഗം, അടുത്ത
റീട്രൈ സമയം എന്നിവ ഉൾപ്പെടെ, രണ്ട് വെബ്ഹുക്ക് സിസ്റ്റങ്ങളിലെയും സമീപകാല ശ്രമങ്ങൾ ഇത് കാണിക്കുന്നു.
ഇവന്റ് പേലോഡ്, ട്രാൻസ്ക്രിപ്റ്റ്, സംഭരിച്ച പിശക് ടെക്സ്റ്റ്,
റെസ്പോൺസ് ബോഡി, അല്ലെങ്കിൽ URL പാത്ത് എന്നിവ ഇത് ഒരിക്കലും നൽകില്ല.
ഏജന്റുകൾ → ഒരു ഏജന്റ് തിരഞ്ഞെടുക്കുക → വെബ്ഹുക്കുകൾ → സമീപകാല ഡെലിവറികൾ എന്നിടത്തും ഇതേ സമീപകാല ചരിത്രം കാണാം. ഏറ്റവും പുതിയ ശ്രമം ഉപയോഗിച്ച എൻഡ്പോയിന്റ് ലേബലും URL ഉറവിടവും വരികൾ കാണിക്കുന്നു. ഇത് മാറ്റമില്ലാത്ത ഒരു ഓഡിറ്റ് ലോഗിനേക്കാൾ പ്രവർത്തനാവസ്ഥയാണ്: ഒരു എൻഡ്പോയിന്റ് ഇല്ലാതാക്കുമ്പോൾ അതിന്റെ ഡെലിവറി വരികളും ഇല്ലാതാകും.
n8n 404 ലഭിക്കുമ്പോൾ, ആദ്യം വർക്ക്ഫ്ലോ സജീവമാണെന്നും, അത് POST സ്വീകരിക്കുന്നുണ്ടെന്നും,
ടെസ്റ്റ് URL-ന് പകരം പ്രൊഡക്ഷൻ വെബ്ഹുക്ക് URL ഉപയോഗിക്കുന്നുണ്ടെന്നും സ്ഥിരീകരിക്കുക. 401 അല്ലെങ്കിൽ 403
ആധികാരികതയെയോ സിഗ്നേച്ചർ സാധൂകരണത്തെയോ സൂചിപ്പിക്കുന്നു; ടൈംഔട്ടുകൾ ലക്ഷ്യസ്ഥാനത്തിന്റെ ലേറ്റൻസിയെയോ
ലഭ്യതയെയോ സൂചിപ്പിക്കുന്നു; TLS പിശകുകൾ സർട്ടിഫിക്കറ്റ് ചെയിൻ, ഹോസ്റ്റ്നെയിം, അല്ലെങ്കിൽ കാലഹരണപ്പെടൽ എന്നിവയെ സൂചിപ്പിക്കുന്നു.