Open in
Webhook એન્ડપોઇન્ટ્સ
દરેક એન્ડપોઇન્ટ માટેના સિક્રેટ્સ અને ઇવેન્ટ ફિલ્ટર્સ સાથે અનેક webhook URLs મેનેજ કરો.
એન્ડપોઇન્ટ-આધારિત webhook સિસ્ટમ તમને દરેક સંસ્થા માટે બહુવિધ ગંતવ્યો નોંધવાની મંજૂરી આપે છે, જેમાં દરેકનું પોતાનું secret, પોતાની સ્થિતિ અને ઇવેન્ટ પ્રકારોના ઉપસેટ માટેનું પોતાનું subscription હોય છે. તમામ નવી ઇન્ટિગ્રેશન્સ માટે આ ભલામણ કરેલ મોડેલ છે.
લેગસી સિંગલ-URL webhook સાથે સરખામણી કરો, જે backward compatibility માટે જાળવી રાખવામાં આવ્યું છે, પરંતુ દરેક સંસ્થા માટે માત્ર એક URL ને સપોર્ટ કરે છે.
એન્ડપોઇન્ટ્સ
| પદ્ધતિ | પાથ | જરૂરી ભૂમિકા | વર્ણન |
|---|---|---|---|
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 | એલિપ્સિસ સાથેના સાઇનિંગ સિક્રેટના પ્રથમ 4 અને છેલ્લા 4 અક્ષરો (a1b2…9f0e) — સંપૂર્ણ મૂલ્ય જાહેર કર્યા વિના તમે સ્થાનિક રીતે સાચવેલા સિક્રેટ સાથે સરખાવવા માટે પૂરતું |
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 | string | હા | 1–120 અક્ષરો |
url | string | હા | HTTPS URL (http માત્ર localhost / 127.0.0.1 માટે માન્ય છે) |
events | array | ના | ખાલી/છોડવામાં આવેલ હોય તો telephony.turn / web.turn સિવાયની તમામ ઇવેન્ટ્સનું સબ્સ્ક્રિપ્શન થાય છે; તેના માટે સ્પષ્ટ સબ્સ્ક્રિપ્શન જરૂરી છે. માન્ય ઇવેન્ટ પ્રકારોમાં સૂચિબદ્ધ મૂલ્યોનો ઉપયોગ કરવો આવશ્યક છે; ડુપ્લિકેટ્સ દૂર કરવામાં આવે છે |
agent_id | integer | null | ના | આ સંસ્થાના કોઈ એજન્ટ સુધી ડિલિવરી મર્યાદિત કરો; સંસ્થા-વ્યાપી એન્ડપોઇન્ટ માટે છોડો અથવા null નો ઉપયોગ કરો |
એન્ડપોઇન્ટ ઑબ્જેક્ટ સાથે 201 Created પરત કરે છે, તેમજ
કાચી સાઇનિંગ કી ધરાવતું વધારાનું ટોચના સ્તરનું secret ફીલ્ડ પણ પરત કરે છે — એક
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 | string | |
url | string | |
events | array | |
status | string | active અથવા disabled. સર્વરે failing તરીકે ચિહ્નિત કરેલા એન્ડપોઇન્ટને ફરી સક્રિય કરવા માટે active સેટ કરો |
agent_id | integer | null | એન્ડપોઇન્ટને મર્યાદિત કરવા એજન્ટ id સેટ કરો અથવા તેને સંસ્થા-વ્યાપી બનાવવા 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 તપાસો.
તે બંને વેબહૂક સિસ્ટમોના તાજેતરના પ્રયાસો દર્શાવે છે, જેમાં કૉલ id,
URL ઓરિજિન, HTTP સ્થિતિ, પ્રયાસોની સંખ્યા, મંજૂરીસૂચિબદ્ધ નિષ્ફળતા શ્રેણી અને આગામી
પુનઃપ્રયાસ સમય સામેલ છે. તે ક્યારેય ઇવેન્ટ પેલોડ, ટ્રાન્સક્રિપ્ટ, સંગ્રહિત ભૂલ લખાણ,
પ્રતિસાદ બોડી અથવા URL પાથ પરત કરતું નથી.
તમે આ જ તાજેતરનો ઇતિહાસ એજન્ટ્સ → એજન્ટ પસંદ કરો → વેબહૂક્સ → તાજેતરની ડિલિવરીઓ માં પણ જોઈ શકો છો. પંક્તિઓ એન્ડપોઇન્ટ લેબલ અને સૌથી તાજેતરના પ્રયાસ દ્વારા ઉપયોગમાં લેવાયેલ URL ઓરિજિન દર્શાવે છે. આ અપરિવર્તનીય ઓડિટ લોગને બદલે ઓપરેશનલ સ્થિતિ છે: એન્ડપોઇન્ટ કાઢી નાખવાથી તેની ડિલિવરી પંક્તિઓ પણ કાઢી નાખવામાં આવે છે.
n8n 404 માટે, પહેલાં ખાતરી કરો કે વર્કફ્લો સક્રિય છે, POST સ્વીકારે છે અને
ટેસ્ટ URLને બદલે પ્રોડક્શન વેબહૂક URL નો ઉપયોગ કરે છે. 401 અથવા 403
પ્રમાણીકરણ અથવા સિગ્નેચર માન્યતા તરફ સૂચવે છે; સમયસમાપ્તિ ગંતવ્ય વિલંબતા
અથવા ઉપલબ્ધતા તરફ સૂચવે છે; TLS ભૂલો પ્રમાણપત્ર ચેઇન, હોસ્ટનામ અથવા સમાપ્તિ તરફ સૂચવે છે.