Veja primeiro
O que é preciso
- Um endereço que aceite um POST com JSON, que comece por
https://. A maioria das ferramentas de automação dá-lhe um (ver Exemplos). - Direitos de administrador no seu workspace do UAT Studio.
Conecte o seu webhook
Obtenha o endereço do seu fluxo
Crie primeiro o lado que recebe, na ferramenta que usa, e copie o endereço. Quer ver as mensagens antes de construir alguma coisa? Abra webhook.site: dá-lhe um endereço temporário e mostra tudo o que lhe é enviado. Use-o apenas com dados de teste.
Adicione o webhook no UAT Studio
Abra o seu workspace, clique em Connections, escolha Webhook em Add a connection e clique em Add. Depois preencha:
- Webhook address: o endereço do passo 1.
- Send automatically:
- Only when I click Send on an issue (o padrão): um administrador decide que ocorrências são enviadas.
- Every new issue and every status change, by itself: tudo é enviado de imediato.
Clique em Save settings. A escolha em Send automatically é guardada assim que a altera.

Adicione um segredo (opcional, recomendado)
Para que o seu fluxo saiba que uma mensagem vem mesmo do UAT Studio, invente um segredo longo e aleatório (pelo menos 8 caracteres, de preferência 32 ou mais), cole-o em Secret (optional) e clique em Store token. Cada mensagem passa então a levar o header:
Authorization: Bearer <o seu segredo>
Faça o seu fluxo recusar mensagens sem o header correto. O segredo é guardado cifrado e não pode ser lido de novo; cole um novo para o substituir.
Teste a integração
Clique em Test connection. O UAT Studio envia:
{ "event": "test", "message": "Test message from UAT Studio" }
Qualquer resposta de 200 a 299 conta como sucesso; verá The webhook answered 200. Garanta que o seu fluxo aceita o evento de teste, ou o ignora, sem erro.
Quando envia
| Evento | Quando |
|---|---|
issue.sent | Um administrador clica em Send to Webhook numa ocorrência. Sempre disponível enquanto a integração estiver On. |
issue.created | Um tester reporta uma nova ocorrência. Apenas com Send automatically em cada nova ocorrência. |
issue.status_changed | O estado de uma ocorrência muda, por exemplo para Ready for retest ou Closed. Apenas com Send automatically. Inclui from e to. |
test | Clica em Test connection. |
Uma ocorrência fundida noutra como duplicada não envia um novo issue.created.
O que envia
Um POST com Content-Type: application/json. Todos os eventos de ocorrências têm a mesma estrutura:
{
"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"
}
| Campo | Significado |
|---|---|
event | issue.sent, issue.created, issue.status_changed ou test. |
project | O projeto de UAT: id e nome. |
issue.key | O número no UAT Studio, como ISS-012. Use issue.id para reconhecer a mesma ocorrência em mensagens posteriores. |
issue.severity | Critical, High, Medium ou Low. issue.priority: High, Medium ou Low. |
issue.status | O estado no UAT Studio: New, In progress, Ready for retest, Closed ou Rejected. |
issue.ticket | O ticket associado do Jira ou do Azure DevOps, se existir; caso contrário null. |
test_case | O teste e o número do passo em que a ocorrência foi encontrada; null para uma ocorrência fora de um teste. Com issue.sent, também a action e o resultado expected do passo. |
reported_by | O nome do tester que a encontrou. |
from, to | Apenas com issue.status_changed: o estado antigo e o novo. |
url | As ocorrências do projeto no UAT Studio. Para abrir é preciso iniciar sessão. |
Os campos podem ser null e podemos acrescentar campos mais tarde, por isso faça o seu fluxo ignorar o que não conhece. Screenshots e arquivos nunca são enviados; ficam no UAT Studio.
Construir o lado que recebe
Power Automate
- Crie um Instant cloud flow com o trigger When an HTTP request is received, para Anyone.
- Em Request Body JSON Schema, clique em Use sample payload to generate schema e cole o exemplo acima.
- Adicione uma Condition sobre
event(por exemplo: is not equal totest) e depois as ações que quiser: uma tarefa no Planner, uma linha no Excel, um email, um item no SharePoint. - Guarde o fluxo. O trigger mostra agora o HTTP URL: esse é o endereço do webhook.
Nota: o trigger HTTP é um conector premium no Power Automate. Para publicar num canal do Teams não precisa dele: use a integração com o Microsoft Teams.
Zapier
Crie um Zap com o trigger Webhooks by Zapier › Catch Hook, copie o endereço, clique em Test connection no UAT Studio e depois envie uma ocorrência, para que o Zapier conheça os campos. Depois adicione a ação que quiser, como uma mensagem no Slack.
Make
Comece um cenário com Webhooks › Custom webhook, copie o endereço e clique em Redetermine data structure antes de enviar uma ocorrência do UAT Studio.
O seu próprio serviço
Aceite um POST com JSON, compare o header Authorization com o seu segredo, responda 200 rapidamente e faça o trabalho demorado depois. As mensagens não são reenviadas após uma falha, por isso guarde um log do que recebe.
Se algo falhar
| Vê | O que fazer |
|---|---|
| O webhook respondeu 401 ou 403 | O seu fluxo recusa a mensagem: verifique o segredo dos dois lados, ou se o fluxo pode ser chamado por qualquer pessoa. |
| O webhook respondeu 404 | O endereço está errado, ou o fluxo foi removido ou desativado. Copie o endereço de novo. |
| O webhook respondeu 400 ou 500 | O seu fluxo não aceita a mensagem. Muitas vezes não trata o evento test, ou um campo que é null. Veja o histórico de execuções do fluxo. |
| Não chega nada para novas ocorrências | Verifique se Send automatically está definido para cada nova ocorrência e se a integração está On. Depois envie uma ocorrência manualmente para ver a resposta do seu fluxo. |
| Sem botão Send to Webhook | Só os administradores o veem, e apenas quando a integração está On. |
| As integrações não fazem parte do seu plano | As integrações estão incluídas no Team, Business, Partner e Enterprise, e como módulo para o Project. O seu administrador pode mudar de plano em Plan & billing. |
Continua com dificuldades? Escreva para [email protected] com a mensagem que vê. Nunca nos envie o próprio segredo.
O que sai do UAT Studio
- As mensagens saem apenas por HTTPS.
- Contêm o texto da ocorrência, o teste e o nome do tester, nunca arquivos nem screenshots. Envie-as apenas para um serviço a que a sua organização confie essa informação.
- O segredo é guardado cifrado (AES-256), com a chave separada da base de dados. Ninguém o pode voltar a ler.
- Ponha a integração em Off ou remova-a, e nada mais é enviado.
