Integracja webhooków
Platforma monday.com umożliwia wysyłanie webhooków za pomocą naszych integracji. Możesz też utworzyć je za pomocą API. Możesz wysłać webhook za każdym razem, gdy na wybranej tablicy wystąpi określone zdarzenie. Czytaj dalej, aby dowiedzieć się więcej.
Czym jest webhook?
Webhook, nazywany również wywołaniem zwrotnym w sieci lub interfejsem API typu HTTP push, umożliwia aplikacji przekazywanie innym aplikacjom informacji w czasie rzeczywistym. Webhook dostarcza dane innym aplikacjom natychmiast po wystąpieniu zmiany. Oznacza to, że otrzymujesz dane od razu, w przeciwieństwie do typowych interfejsów API, które wymagają częstego wysyłania zapytań, aby pobierać dane w czasie rzeczywistym. Dzięki temu webhooki są znacznie wydajniejsze zarówno dla dostawcy, jak i odbiorcy.
Za każdym razem, gdy próbujesz utworzyć nowy webhook w monday.com, wyślemy do podanego przez Ciebie adresu URL wyzwanie JSON, aby sprawdzić, czy masz kontrolę nad tym punktem końcowym. Czytaj dalej, aby dowiedzieć się, jak Twoja aplikacja powinna na nie odpowiedzieć.
Jak utworzyć nowy webhook
Na tablicy kliknij przycisk Integracje (Integrations) po prawej stronie ekranu. Następnie kliknij kartę Utwórz (Create) i znajdź integrację Webhooks na stronie automatyzacji tablicy:

Następnie kliknij baner Webhooks i wybierz działanie, o którym chcesz otrzymywać natychmiastowe powiadomienia:

Po wybraniu działania podaj adres URL. Musi to być adres URL, który może odesłać wyzwanie JSON. Będzie on również odbiorcą kolejnych ładunków danych:

I gotowe! Gdy nastąpi ta zmiana, na przykład gdy do tablicy zostanie dodany nowy element, Twój punkt końcowy otrzyma ładunek danych dotyczący tej zmiany. Niżej znajdziesz przykładowe ładunki danych.
Dodaj opis, aby wyjaśnić, w jaki sposób korzystasz z integracji webhooków w swoim przepływie pracy. Dzięki temu każdy użytkownik tej integracji lepiej zrozumie jej cel i sposób, w jaki wpisuje się ona w przepływ pracy.
Jak zweryfikować adres URL webhooka
Podany adres URL powinien oczywiście być kontrolowany przez Twoją aplikację. Nasza platforma sprawdza to, wysyłając wyzwanie JSON do Twojego punktu końcowego. Aplikacja powinna odesłać to samo wyzwanie.
Wyślemy żądanie POST z treścią w formacie JSON zawierającą pole "challenge". To losowo wygenerowany token, który należy zwrócić w polu "challenge" treści odpowiedzi JSON na to żądanie.
Wyzwanie będzie wyglądać tak:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
Treść odpowiedzi powinna być identyczna z treścią żądania POST w formacie JSON:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
Oto prosty przykład odbiornika webhooków, który wyświetla dane webhooka i prawidłowo odpowiada na wyzwanie:
app.post("/", function(req, res) { console.log(JSON.stringify(req.body, 0, 2)); res.status(200).send(req.body);})
Jak będą wyglądać dane zdarzenia?
Każdy webhook wysłany do Twojego punktu końcowego będzie zawierać w treści pole event. To pole będzie zawierać ładunek danych ze szczegółami zdarzenia.
Poniżej znajdziesz kilka przykładów:
create_item - przykładowy ładunek danych:
{
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"pulseId": 1772099344,
"pulseName": "Create_item webhook",
"groupId": "topics",
"groupName": "Group Title",
"groupColor": "#579bfc",
"isTopGroup": true,
"columnValues": {},
"app": "monday",
"type": "create_pulse",
"triggerTime": "2021-10-11T09:07:28.210Z",
"subscriptionId": 73759690,
"triggerUuid": "b5ed2e17c530f43668de130142445cba"
}
Zmiana wartości kolumny (konkretnej lub dowolnej) - przykładowy ładunek danych
Zawiera poprzednią wartość, identyfikator kolumny i bieżącą wartość.
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"groupId": "topics",
"pulseId": 1771812728,
"pulseName": "Crate_item webhook",
"columnId": "date4",
"columnType": "date",
"columnTitle": "Date",
"value": {
"date": "2021-10-11",
"icon": null,
"time": null
},
"previousValue": null,
"changedAt": 1633943701.9457765,
"isTopGroup": true,
"app": "monday",
"type": "update_column_value",
"triggerTime": "2021-10-11T09:15:03.429Z",
"subscriptionId": 73760484,
"triggerUuid": "645fc8d8709d35718f1ae00ceded91e9"
}
create_update - przykładowy ładunek danych:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"pulseId": 1771812728,
"body": "<p>create_update webhook</p>",
"textBody": "create_update webhook",
"updateId": 1190616585,
"replyId": null,
"app": "monday",
"type": "create_update",
"triggerTime": "2021-10-11T09:18:57.368Z",
"subscriptionId": 73760983,
"triggerUuid": "6119292e27abcc571f90ea4177e94973"
}
Zmiana statusu - przykładowy ładunek danych:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"groupId": "topics",
"pulseId": 1772099344,
"pulseName": "Create_item webhook",
"columnId": "status",
"columnType": "color",
"columnTitle": "Status",
"value": {
"label": {
"index": 3,
"text": "Status change wbhook",
"style": {
"color": "#0086c0",
"border": "#3DB0DF",
"var_name": "blue-links"
}
},
"post_id": null
},
"previousValue": null,
"changedAt": 1633944017.473193,
"isTopGroup": true,
"app": "monday",
"type": "update_column_value",
"triggerTime": "2021-10-11T09:20:18.022Z",
"subscriptionId": 73761176,
"triggerUuid": "504b2eb76c80f672a18f892c0f700e41"
}
Webhooki dotyczące podelementów są niemal identyczne, ale ich ładunek danych zawiera również pole parent_item_id. Oto kilka przykładów:
create_subitem - przykładowy ładunek danych:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1772135370,
"pulseId": 1772139123,
"pulseName": "sub-item",
"groupId": "topics",
"groupName": "Subitems",
"groupColor": "#579bfc",
"isTopGroup": true,
"columnValues": {},
"app": "monday",
"type": "create_pulse",
"triggerTime": "2021-10-11T09:24:51.835Z",
"subscriptionId": 73761697,
"triggerUuid": "5c28578c66653a87b00a80aa4f7a6ce3",
"parentItemId": "1771812716",
"parentItemBoardId": "1771812698"
}
Dodatkowa pomoc
Jeśli potrzebujesz pomocy przy tworzeniu niestandardowych integracji, możesz skorzystać z usług certyfikowanych partnerów monday.com za pośrednictwem go-to-partners, naszego marketplace’u partnerów. Partnerzy oferują płatne usługi projektowania, konfiguracji i optymalizacji integracji, które pomogą Ci w pełni wykorzystać możliwości monday.com.