Tworzenie, aktualizacja, usuwanie i listowanie webhooków konta przez API. Webhook reaguje na zdarzenie w module (utworzenie/edycja/usunięcie rekordu, akcje custom) i dostarcza je na zewnętrzny URL, do konektora albo uruchamia flow.
Autoryzacja: Authorization: Bearer TOKEN - token musi mieć uprawnienie webhooks
Content-Type: application/json; charset=utf-8
API Endpoints
| Metoda | Ścieżka | Opis |
|---|---|---|
| GET | /account/webhooks.json |
Lista webhooków konta |
| GET | /account/webhooks/:id.json |
Pojedynczy webhook |
| POST | /account/webhooks.json |
Utworzenie webhooka |
| PATCH | /account/webhooks/:id.json |
Aktualizacja webhooka |
| DELETE | /account/webhooks/:id.json |
Usunięcie webhooka |
Pola webhooka
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
source_type |
string | tak | Model źródłowy zdarzenia, np. "Helpdesk::Ticket", "Crm::Client", "Fiskator::Document". Lista dostępnych: pole source_type w formatce /account/webhooks/new
|
kind |
string | tak | Akcja/zdarzenie: "create", "update", "destroy" lub akcja custom modelu (lista zależy od source_type) |
target_kind |
string | nie | Sposób dostarczenia: "url" (domyślny - POST na zewnętrzny URL), "connector", "flow"
|
url |
string | dla target_kind: url
|
Zewnętrzny URL, na który poleci POST z payloadem rekordu (unikalny per zdarzenie) |
target_code |
string | dla connector / flow
|
Kod konektora (Connect::Connector) albo przepływu (Connect::Flow) |
api_token |
string | nie | Token dołączany do requestu POST (autoryzacja po stronie odbiorcy) |
active |
boolean | nie | Czy webhook jest aktywny (domyślnie true); nieaktywny nie wysyła zdarzeń |
Zasady:
-
urlmusi być unikalny w ramach (konto,kind,source_type) - duplikat zwróci błąd walidacji - przy
target_kind: connector/flowpoleurljest ignorowane (czyszczone), przyurl-target_code - payload POST to JSON rekordu (
as_jsonlubas_webhook_payloadmodelu), wysyłany asynchronicznie
Format requestu
POST - webhook na zewnętrzny URL
POST /account/webhooks.json
Authorization: Bearer TOKEN
Content-Type: application/json; charset=utf-8
{
"webhook": {
"source_type": "Helpdesk::Ticket",
"kind": "create",
"url": "https://example.com/hooks/ticket-created",
"api_token": "sekret-odbiorcy",
"active": true
}
}
POST - webhook uruchamiający flow
{
"webhook": {
"source_type": "Crm::Client",
"kind": "update",
"target_kind": "flow",
"target_code": "moj_flow",
"active": true
}
}
PATCH - wyłączenie webhooka
{
"webhook": {
"active": false
}
}
Błąd walidacji (422 Unprocessable Content)
{
"url": ["zostało już zajęte"]
}
Klucze to nazwy pól, wartości to tablice komunikatów błędów.
Powiązane
- common_api - wspólne zasady API (format, autoryzacja, odpowiedzi)
-
connector_flow_api - API przepływów (Connect::Flow), których kody podajesz w
target_code - account_crons_api - cykliczne akcje konta (uruchamianie flow wg harmonogramu zamiast po zdarzeniu)