GitHub
Trigger Wexio flows from GitHub events (PRs, issues, pushes, deploys)
GitHub signs webhook bodies with HMAC-SHA256 in X-Hub-Signature-256 (hex-encoded, prefixed with sha256=). Wexio's GitHub preset configures exactly that.
Provider docs: Setting up webhooks in GitHub
Setup
1. Wexio connection
New connection → Inbound → GitHub preset. Prefills:
| Field | Value |
|---|---|
| Auth mode | GENERIC_HMAC_SHA256 |
| Signature header name | X-Hub-Signature-256 |
| Encoding | Hex |
| Prefix | sha256= |
2. Configure the GitHub webhook
On the GitHub repository (or organisation) → Settings → Webhooks → Add webhook.
| Field | Value |
|---|---|
| Payload URL | The Wexio endpoint URL |
| Content type | application/json |
| Secret | A strong secret you pick — paste the same value into Wexio's Signing secret field |
| Events | Pick individual events or "Send me everything" |
3. Contact resolution
GitHub events are typically not tied to messaging contacts. Common patterns:
- Static recipient — route every event to a specific ops contact. Use a flow variable lookup rather than contact resolution.
- Author email —
Email+$.sender.email(only works when the user's email is public in their GitHub profile).
4. Bind a flow
Add a Webhook Received trigger and branch on {{webhook.action}} or the event type (read from the X-GitHub-Event header — not in the body).
GitHub puts the event type in the X-GitHub-Event header, not the body. If you need to branch on event type, include it in the variable namespace by capturing X-GitHub-Event via a custom upstream (n8n proxy) — or use the action field in the body, which is available for most events.
Example — PR Merged → Team Slack
- GitHub event:
pull_request, action:closedwithmerged: true - Wexio connection resolves to a shared team contact
- Flow: Webhook Received → Condition on
{{webhook.pull_request.merged}} EQUALS true→ Text to a shared Telegram channel
Troubleshooting
| Symptom | Fix |
|---|---|
| Signature mismatch | Ensure the secret is exactly the same string in GitHub and Wexio |
IDENTIFIER_NOT_FOUND | GitHub events rarely carry a Wexio contact identifier — use a static-contact pattern instead |