Webhook relays receive events from external services (Slack, Azure DevOps, Jira, etc.) and forward them to your GitHub repo as repository_dispatch events.
External Service → Webhook Relay → GitHub repository_dispatch → PO Agent workflow
The relay functions are lightweight HTTP handlers that:
repository_dispatch event to your GitHub reposlack/)Receives Slack app_mention events and dispatches slack-message events.
azure-devops/)Receives Azure DevOps work item comment webhooks and dispatches azure-devops-comment events.
Each relay can be deployed as:
See the individual relay directories for deployment instructions.
A relay just needs to POST to the GitHub API:
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/OWNER/REPO/dispatches" \
-d '{
"event_type": "my-custom-event",
"client_payload": {
"text": "the message",
"channel_id": "optional-for-slack",
"any_field": "passed through to the agent"
}
}'
The PO Agent action reads client_payload and passes all fields to the agent.