Fejlesztők
Webhookok
Fogadjon aláírt HTTPS-értesítéseket, amikor hívások véget érnek, üzeneteket vesznek fel, időpontok, rendelések és foglalások módosulnak, vagy egy kampány befejeződik, és ellenőrizze, hogy mindegyik valóban a Ringhumtól érkezett-e.
5 perc olvasás Frissítve: 24 szeptember 2026
Ezen az oldalon
Egy webhook egy HTTPS-kérést küld a szerverének abban a pillanatban, amikor valami történik a munkaterületén. Használjon webhookokat az API lekérdezgetése helyett: amikor egy hívás véget ér, azonnal megkapja az összefoglalót, az eredményt, a gyűjtött adatokat és az átiratot. Minden kézbesítés alá van írva egy titkos kulccsal, amelyet csak Ön és a Ringhum ismer, így szervere elutasíthat mindent, ami nem a Ringhumtól érkezett.
Végpont hozzáadása
Csak a munkaterület Tulajdonosa és az Adminok adhatnak hozzá, tesztelhetnek és távolíthatnak el végpontokat.
- Nyissa meg a Fejlesztők menüpontot az oldalsávon.
- A Webhookok kártyán kattintson a Végpont hozzáadása gombra.
- Adja meg a Végpont URL-je mezőt.
https://-sel kell kezdődnie. - Az Események alatt jelölje be a kívánt eseményeket. A
call.endedbe van jelölve Ön helyett. - Kattintson a Végpont hozzáadása gombra.
- Másolja ki az aláírási titkot a zöld dobozból (
whsec_-vel kezdődik), és tárolja szerverén. Kattintson a Kész gombra.
Fontos: Az aláírási titok csak egyszer jelenik meg. Ha elveszíti, távolítsa el a végpontot, és adja hozzá újra egy új titok megszerzéséhez.
Annyi végpontot adhat hozzá, amennyire szüksége van. A webhookok a munkaterület minden asszisztensére kiterjednek. A végpontokat az API-n keresztül is kezelheti, a POST /webhooks és egy write jogkörű kulcs használatával.
Események
| Esemény | Mikor kerül elküldésre |
|---|---|
call.started |
Egy hívást fogadott egy asszisztens |
call.ended |
Egy hívás véget ért, és összefoglalásra került (tartalmazza az átiratot és összefoglalót) |
call.transferred |
Egy hívást emberhez irányítottak át |
message.taken |
Az asszisztens üzenetet vett fel |
appointment.booked |
Az asszisztens időpontot foglalt |
appointment.rescheduled |
Egy időpontot új időpontra helyeztek |
appointment.cancelled |
Egy időpontot lemondtak |
order.created |
Egy rendelést adtak le (asszisztens által, kézzel vagy az API-n keresztül) |
order.updated |
Egy rendelés új státuszba került |
order.cancelled |
Egy rendelést lemondtak |
reservation.created |
Egy szobát lefoglaltak (asszisztens által, kézzel vagy az API-n keresztül) |
reservation.updated |
Egy foglalás új státuszba került (megerősítve, bejelentkezve, kijelentkezve, meg nem jelent) |
reservation.cancelled |
Egy foglalást lemondtak |
campaign.completed |
Egy kimenő kampány befejezte listája hívását |
test.ping |
Megnyomta a Teszt küldése gombot |
Hogyan néz ki egy kézbesítés
Minden kézbesítés egy POST egy JSON-törzzsel és ezekkel a fejlécekkel:
POST https://example.com/hooks/ringhum
Content-Type: application/json
User-Agent: Ringhum-Webhooks/1.0
X-Ringhum-Event: call.ended
X-Ringhum-Timestamp: 1789250000
X-Ringhum-Signature: v1=5f1a…
{
"id": "evt_8f2k…",
"type": "call.ended",
"created_at": "2026-09-24T14:03:11+00:00",
"data": {
"call_id": 4812,
"direction": "inbound",
"from": "+14155550132",
"to": "+14155550100",
"assistant_id": 3,
"status": "completed",
"outcome": "message_taken",
"sentiment": "neutral",
"duration_seconds": 94,
"summary": "Caller asked for a quote for a kitchen repair…",
"extracted": { "name": "Dana Lee", "reason": "Quote" },
"transcript": [
{ "role": "assistant", "content": "Hello, you've reached…" },
{ "role": "user", "content": "Hi, I'd like a quote…" }
]
}
}
A data objektum az eseménytől függ:
call.endedésmessage.taken: a fenti hívásmezők.call.startedéscall.transferred:call_id,direction,from,to,assistant_id,statusésstarted_at.appointment.*:appointment_id,title,status,starts_at,ends_at,timezone,customer(name, phone, email),contact_id,service,staff,call_idésnotes.order.*:order_id,number,status,fulfillment,customer,address,itemsaz opciókkal és árakkal,currency,subtotal,fee,total,source,call_id, és lemondásoknálcancel_reason.reservation.*:reservation_id,number,status,room,check_in,check_out,nights,adults,children,guest,currency,nightly,totaléssource.campaign.completed:campaign_id,nameés a kampány előrehaladási számai.
Megjegyzés: Amikor az asszisztens egy hívás során időpontot foglal, kétszer is megkaphatja az
appointment.bookedeseményt. Az egyik a foglalás létrejöttekor kerül elküldésre, az időpontmezőkkel. A másik a hívás összefoglalása után, a hívásmezőkkel. Ellenőrizze, hogy adataappointment_id-t vagycall_id-t tartalmaz-e, és használja azidmezőt, hogy elkerülje egy kézbesítés kétszeri feldolgozását.
Az aláírás ellenőrzése
Az aláírás az időbélyeg, egy pont és a nyers kéréstörzs HMAC-SHA256 hasítéka, a végpontja aláírási titkával kulcsolva. v1= prefixszel kerül elküldésre, majd a hexa digest.
- Olvassa el a nyers törzset pontosan úgy, ahogy érkezett, minden JSON-elemzés előtt.
- Építse fel a
{X-Ringhum-Timestamp}.{nyers törzs}sztringet. - Számítsa ki a HMAC-SHA256-ot titkos kulcsával, és fűzze elé a
v1=prefixet. - Hasonlítsa össze az
X-Ringhum-Signatureértékkel, állandó idejű összehasonlítással. - Utasítsa el a kérést, ha az időbélyeg több mint öt perccel régebbi, hogy blokkolja az ismételt kéréseket.
Node.js:
const crypto = require('crypto');
function isValid(req, rawBody, secret) {
const ts = req.header('X-Ringhum-Timestamp');
const sig = req.header('X-Ringhum-Signature') || '';
const expected = 'v1=' + crypto.createHmac('sha256', secret).update(`${ts}.${rawBody}`).digest('hex');
const fresh = Math.abs(Date.now() / 1000 - Number(ts)) < 300;
return fresh && sig.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
}
PHP:
$ts = $_SERVER['HTTP_X_RINGHUM_TIMESTAMP'] ?? '';
$sig = $_SERVER['HTTP_X_RINGHUM_SIGNATURE'] ?? '';
$expected = 'v1=' . hash_hmac('sha256', $ts . '.' . file_get_contents('php://input'), $secret);
if (! hash_equals($expected, $sig) || abs(time() - (int) $ts) > 300) {
http_response_code(400);
exit;
}
Válaszok, időtúllépések és újrapróbálkozások
- Válaszoljon bármely
2xxstátusszal a kézbesítés megerősítéséhez. A lassú munkát a válasz után végezze. - A Ringhum legfeljebb 10 másodpercet vár a válaszára.
- Ha a végpontja nem válaszol
2xx-szel, a kézbesítést összesen legfeljebb 3-szor próbáljuk meg: azonnal, majd kb. 10 másodperc múlva újra, és egy utolsó alkalommal kb. 60 másodperccel később. Ezután eldobjuk. - A kézbesítések nem feltétlenül sorrendben érkeznek. Használja a
created_atmezőt és adata-ban lévő azonosítókat a sorba rendezéshez.
A Webhookok táblázat mutatja minden végpont legutóbbi HTTP-állapotát és mikor küldtük el. Egy sikertelen végpont aktív marad; a Ringhum nem kapcsolja ki Ön helyett.
Tesztelés, szüneteltetés és eltávolítás
- A Teszt küldése azonnal elküld egy
test.pingeseményt, és egy üzenet mutatja a végpontja által visszaadott HTTP-állapotot. - Az Aktív kapcsoló szünetelteti egy végpontot. A szünet alatt történő események nem kerülnek később elküldésre.
- Az Eltávolítás törli a végpontot és titkos kulcsát.
Gyakori kérdések
Mi a különbség a Zapier, Make és n8n alkalmazásoktól az Integrációk alatt? Azok a kapcsolatok az Integrációk oldalt és annak hat eseménytípusát használják. A törzsük {"event", "workspace", "sent_at", "data"}, és amikor titkos kulcsot állít be, az aláírásfejléc X-Ringhum-Signature: sha256=…, ami magának a törzsnek a HMAC-SHA256 hasítéka. Az itt leírt fejlesztői webhookok több eseményt fednek le, és a v1= aláírást használják egy időbélyeggel. Lásd: Az elküldött adatok kiválasztása.
A végpontom 2xx-et ad vissza, de a kódom nem lát semmit. Ellenőrizze, hogy az esemény be van-e jelölve annál a végpontnál, hogy a végpont aktív-e, és hogy a tűzfala engedélyezi-e az internetről érkező kéréseket.
Miért hiúsul meg az aláírás-ellenőrzés? Leggyakrabban a törzset elemezték és újrakódolták a hasítás előtt. Hasítsa a nyers bájtokat pontosan úgy, ahogy érkeztek.
← Előző
API-kulcsok és jogkörök
Következő →
Kösse össze a Ringhumot a Claude-dal és más AI-eszközökkel (MCP)
Kapcsolódó cikkek
API-kulcsok és jogkörök
Hozzon létre és vonjon vissza API-kulcsokat a Fejlesztők oldalon, válasszon olvasási vagy írási hozzáférést, és ismerje meg a Ringhum REST API alapjait - alap URL, hitelesítés, lapozás, hibák és sebességkorlátok.
Kösse össze a Ringhumot a Claude-dal és más AI-eszközökkel (MCP)
Adja hozzá a Ringhumot összekötőként a Claude-ban, a ChatGPT-ben, a Cursorban, a VS Code-ban és más, a Model Context Protocolt támogató AI-alkalmazásokban, válasszon csak olvasási vagy olvasási és módosítási hozzáférést, és válasszon le egy alkalmazást.
Az elküldött adatok kiválasztása
Válassza ki, mely hívásokat, postaláda-elemeket, időpontokat és rendeléseket kapja meg minden csatlakoztatott alkalmazás, és korlátozza a hívásfrissítéseket azokra a hívásokra, amelyeknél valakinek intézkednie kell.
Alkalmazás csatlakoztatása
Hogyan csatlakoztathatja a Slacket, a CRM-jét, ügyfélszolgálatát, feladatkezelő eszközét, táblázatát, üzletét vagy naptárát a Ringhumhoz, milyen kapcsolattípust használ mindegyik, és hogyan ellenőrizheti, hogy működik.
Továbbra sem boldogul?
Írjon a(z) [email protected] címre, vagy küldjön nekünk üzenetet. A Team és Scale csomagok elsőbbségi támogatást kapnak.