Najpierw obejrzyj
Co będzie potrzebne
- Adres przyjmujący POST z JSON, zaczynający się od
https://. Większość narzędzi do automatyzacji go udostępnia (zob. Przykłady). - Uprawnienia administratora w przestrzeni roboczej UAT Studio.
Połączenie z webhookiem
Uzyskanie adresu przepływu
Najpierw utworzyć stronę odbierającą w używanym narzędziu i skopiować jej adres. Chcą Państwo zobaczyć wiadomości, zanim cokolwiek zbudują? Wystarczy otworzyć webhook.site: daje tymczasowy adres i pokazuje wszystko, co na niego wysłano. Należy używać go wyłącznie z danymi testowymi.
Dodanie webhooka w UAT Studio
Otworzyć przestrzeń roboczą, kliknąć Connections, wybrać Webhook w Add a connection i kliknąć Add. Następnie uzupełnić:
- Webhook address: adres z kroku 1.
- Send automatically:
- Only when I click Send on an issue (domyślnie): administrator decyduje, które zgłoszenia są wysyłane.
- Every new issue and every status change, by itself: wszystko jest wysyłane od razu.
Kliknąć Save settings. Wybór w Send automatically zapisuje się od razu po zmianie.

Dodanie sekretu (opcjonalnie, zalecane)
Aby przepływ wiedział, że wiadomość naprawdę pochodzi z UAT Studio, należy wymyślić długi losowy sekret (co najmniej 8 znaków, najlepiej 32 lub więcej), wkleić go w Secret (optional) i kliknąć Store token. Każda wiadomość zawiera wtedy nagłówek:
Authorization: Bearer <your secret>
Przepływ powinien odrzucać wiadomości bez właściwego nagłówka. Sekret jest przechowywany w postaci zaszyfrowanej i nie można go odczytać; aby go zastąpić, wystarczy wkleić nowy.
Test połączenia
Kliknąć Test connection. UAT Studio wysyła:
{ "event": "test", "message": "Test message from UAT Studio" }
Każda odpowiedź od 200 do 299 oznacza sukces; pojawi się The webhook answered 200. Należy upewnić się, że przepływ przyjmuje zdarzenie testowe lub je pomija, bez błędu.
Kiedy wysyła
| Zdarzenie | Kiedy |
|---|---|
issue.sent | Administrator klika Send to Webhook w zgłoszeniu. Zawsze dostępne, gdy połączenie jest On. |
issue.created | Tester zgłasza nowe zgłoszenie. Tylko gdy Send automatically jest ustawione na każde nowe zgłoszenie. |
issue.status_changed | Zmienia się status zgłoszenia, np. na Ready for retest lub Closed. Tylko z Send automatically. Zawiera from i to. |
test | Kliknięcie Test connection. |
Zgłoszenie scalone z innym jako duplikat nie wysyła nowego issue.created.
Co wysyła
POST z Content-Type: application/json. Wszystkie zdarzenia zgłoszeń mają tę samą postać:
{
"event": "issue.status_changed",
"project": { "id": "6b1f…", "name": "CRM UAT" },
"issue": {
"id": "a41c…",
"key": "ISS-012",
"title": "Save button greyed out",
"description": "After changing the phone number, Save stays grey.",
"severity": "High",
"priority": "High",
"status": "Ready for retest",
"assignee": "Dev team",
"ticket": "PORTAL-41",
"ticket_url": "https://acme.atlassian.net/browse/PORTAL-41"
},
"test_case": { "num": 4, "title": "Edit a contact", "step": 3 },
"reported_by": "Tess Tester",
"from": "In progress",
"to": "Ready for retest",
"url": "https://app.uat.studio/p/6b1f…/issues"
}
| Pole | Znaczenie |
|---|---|
event | issue.sent, issue.created, issue.status_changed lub test. |
project | Projekt UAT: id i nazwa. |
issue.key | Numer w UAT Studio, np. ISS-012. issue.id pozwala rozpoznać to samo zgłoszenie w późniejszych wiadomościach. |
issue.severity | Critical, High, Medium lub Low. issue.priority: High, Medium lub Low. |
issue.status | Status w UAT Studio: New, In progress, Ready for retest, Closed lub Rejected. |
issue.ticket | Powiązany ticket Jira lub Azure DevOps, jeśli istnieje; w przeciwnym razie null. |
test_case | Test i numer kroku, w którym znaleziono zgłoszenie; null dla zgłoszenia spoza testu. Przy issue.sent także action i expected (oczekiwany wynik) kroku. |
reported_by | Nazwisko testera, który je znalazł. |
from, to | Tylko przy issue.status_changed: stary i nowy status. |
url | Zgłoszenia projektu w UAT Studio. Otwarcie wymaga zalogowania. |
Pola mogą mieć wartość null, a w przyszłości możemy dodać nowe pola, dlatego przepływ powinien ignorować to, czego nie zna. Zrzuty ekranu i pliki nigdy nie są wysyłane; pozostają w UAT Studio.
Budowa strony odbierającej
Power Automate
- Utworzyć Instant cloud flow z wyzwalaczem When an HTTP request is received dla Anyone.
- W Request Body JSON Schema kliknąć Use sample payload to generate schema i wkleić powyższy przykład.
- Dodać Condition dla
event(np. is not equal totest), a potem wybrane akcje: zadanie w Planner, wiersz w Excelu, e-mail, element w SharePoint. - Zapisać przepływ. Wyzwalacz pokazuje teraz HTTP URL: to jest adres webhooka.
Uwaga: wyzwalacz HTTP jest w Power Automate łącznikiem premium. Do publikowania na kanale Teams nie jest potrzebny: wystarczy połączenie z Microsoft Teams.
Zapier
Utworzyć Zap z wyzwalaczem Webhooks by Zapier › Catch Hook, skopiować adres, kliknąć Test connection w UAT Studio, a potem wysłać jedno zgłoszenie, aby Zapier poznał pola. Następnie dodać wybraną akcję, np. wiadomość w Slacku.
Make
Rozpocząć scenariusz od Webhooks › Custom webhook, skopiować adres i kliknąć Redetermine data structure przed wysłaniem zgłoszenia z UAT Studio.
Własna usługa
Usługa powinna przyjmować POST z JSON, sprawdzać nagłówek Authorization z sekretem, szybko odpowiadać 200 i dopiero potem wykonywać czasochłonne operacje. Po błędzie wiadomości nie są wysyłane ponownie, dlatego warto rejestrować to, co przychodzi.
Gdy coś pójdzie nie tak
| Komunikat | Co zrobić |
|---|---|
| The webhook answered 401 or 403 | Przepływ odrzuca wiadomość: należy sprawdzić sekret po obu stronach lub to, czy przepływ może wywołać każdy. |
| The webhook answered 404 | Adres jest błędny albo przepływ został usunięty lub wyłączony. Należy skopiować adres ponownie. |
| The webhook answered 400 or 500 | Przepływ nie przyjmuje wiadomości. Często nie obsługuje zdarzenia test lub pola o wartości null. Należy przejrzeć historię uruchomień przepływu. |
| Nic nie przychodzi dla nowych zgłoszeń | Należy sprawdzić, czy Send automatically jest ustawione na każde nowe zgłoszenie i czy połączenie jest On. Następnie wysłać jedno zgłoszenie ręcznie, aby zobaczyć odpowiedź przepływu. |
| Brak przycisku Send to Webhook | Widzą go tylko administratorzy i tylko wtedy, gdy połączenie jest On. |
| Connections are not part of your plan | Połączenia są dostępne w planach Team, Business, Partner i Enterprise, a dla Project jako dodatek. Administrator może zmienić plan w Plan & billing. |
Nadal nie działa? Prosimy napisać na [email protected] i podać widoczny komunikat. Prosimy nigdy nie wysyłać nam samego sekretu.
Co opuszcza UAT Studio
- Wiadomości są wysyłane wyłącznie przez HTTPS.
- Zawierają treść zgłoszenia, test i nazwisko testera, nigdy pliki ani zrzuty ekranu. Należy wysyłać je tylko do usługi, której organizacja powierza takie informacje.
- Sekret jest przechowywany w postaci zaszyfrowanej (AES-256), a klucz oddzielnie od bazy danych. Nikt nie może go odczytać.
- Po przełączeniu połączenia na Off lub jego usunięciu nic nie jest już wysyłane.
