Forward your Xcode Cloud build notifications to Discord with beautifully formatted embed messages.
![]()
- π± Product name - The app being built
- βοΈ Workflow name - Which workflow was triggered
- π’ Build number - The build identifier
- πΏ Branch/Tag - Shows the git reference with appropriate emoji (πΏ for branches, π·οΈ for tags)
- π¦ Repository name
- β±οΈ Duration - How long the build took (for completed builds)
- π€ Author - Who made the commit
- π Commit SHA - Short hash of the commit
- π¬ Commit message - The first line of the commit message
| Status | Color | Emoji |
|---|---|---|
| Succeeded | π’ Green | β |
| Failed | π΄ Red | β |
| Errored | π΄ Red | π₯ |
| Canceled | β« Gray | π« |
| Skipped | π‘ Yellow | βοΈ |
| Running | π΅ Blue | π |
| Pending | π΅ Cyan | β³ |
Fork this val to your own Val Town account.
Add the DISCORD_WEBHOOK_URL environment variable in your Val Town settings with your Discord webhook URL.
To get a Discord webhook URL:
- Go to your Discord server settings
- Navigate to Integrations β Webhooks
- Create a new webhook or use an existing one
- Copy the webhook URL
- Go to App Store Connect
- Select your app β Xcode Cloud β Settings β Webhooks
- Click the "+" button to add a new webhook
- Name it something like "Discord Notifications"
- Paste your Val's HTTP endpoint URL
- Save
Your endpoint URL will look like:
https://[username]--[file-id].web.val.run
Once configured, Xcode Cloud will automatically send webhook notifications to this endpoint whenever:
- A build is created
- A build starts running
- A build completes (success, failure, or other status)
The val will transform these into rich Discord embeds and post them to your configured channel.
Receives Xcode Cloud webhook payloads and forwards them to Discord.
Request Body: Xcode Cloud webhook JSON payload
Response:
200 OK-{"success": true}- Webhook forwarded successfully405 Method Not Allowed- Only POST requests are accepted500 Internal Server Error- Configuration error (e.g., missingDISCORD_WEBHOOK_URL)502 Bad Gateway- Failed to send to Discord
This entire project was created by Claude (Anthropic) using the Val Town MCP (Model Context Protocol) integration.
Please create a simple Val Town Val which receives a xcode cloud webhook (https://developer.apple.com/documentation/xcode/configuring-webhooks-in-xcode-cloud) and forwards this as a webhook request to discord, that way I get notification as if I would connect slack directly to the xcode cloud.
The discord webhook should be in a ENV Variable but is [REDACTED] if you want to test things
- Searched for Xcode Cloud webhook documentation to understand the payload structure
- Created a Val Town HTTP handler that:
- Receives POST requests from Xcode Cloud
- Parses the webhook payload
- Transforms it into a Discord embed format with colors, emojis, and structured fields
- Forwards it to the configured Discord webhook URL
- Added the Discord webhook URL as an encrypted environment variable
- Tested the integration with simulated payloads for:
- β Successful builds
- β Failed builds
- π Running builds
All done in a single conversation using Val Town's MCP tools!
MIT