Fly.io Deploy Notifications in Slack & Microsoft Teams
Alex Morgan · Principal Engineer
Alex Morgan is a principal engineer at SyncRivo, focused on platform architecture, reliability engineering, and the infrastructure powering real-time messaging interoperability. LinkedIn
April 10, 2026 · 9 min read
Fly.io is CLI-first with no built-in webhook delivery system for deployment events — no Slack integration, no Teams integration. Route Fly.io deploy results and Machine health events to Slack, Teams, Webex, Google Chat, and Zoom simultaneously via GitHub Actions and SyncRivo.
Fly.io Deployment Events SyncRivo Routes
SyncRivo receives Fly.io deployment events via GitHub Actions steps or external health monitoring webhooks and routes them to Slack, Teams, Webex, Google Chat, or Zoom — simultaneously, with environment-based targeting.
Deploy Succeeded
Fly deploy completed successfully via CI/CD pipeline — routed to the engineering Slack channel and, for production deployments, the engineering releases Teams channel simultaneously.
Deploy Failed
Fly deploy returned a non-zero exit code — build failed, image push failed, health check timed out — routed to the on-call Slack channel and the engineering leads Teams channel simultaneously.
Machine Health Failed
Fly Machine health check failure detected via external monitoring — routed to the on-call Slack channel and the infrastructure Teams channel.
Machine Restarted
Fly Machine restarted due to health failure or OOM kill — surfaces application-level instability, routed to the platform engineering Slack channel and infrastructure Teams channel.
Rollback Triggered
Fly deploy rollback executed after health check failure — routed to both Slack and Teams to notify all stakeholders of the revert.
Preview/Branch Deploy
Deployments triggered from non-main branches via GitHub Actions — high-frequency, developer-focused. Typically routed to Slack only; Teams routing reserved for production events.
Route Fly.io Deploys to Teams in 5 Steps (20 Minutes)
No changes to fly.toml. Add notification steps to your GitHub Actions deployment workflow.
- 1
Create a SyncRivo inbound endpoint
In SyncRivo, create a new inbound endpoint for Fly.io deployment events. Copy the unique HTTPS endpoint URL — this is the webhook destination you'll call from GitHub Actions.
- 2
Add notification steps to your GitHub Actions workflow
In your .github/workflows/deploy.yml, after the `flyctl deploy` step, add a curl run step to POST to your SyncRivo endpoint. Include: app name, environment (production/staging/preview), commit SHA, branch name, actor, and deploy result (success/failure). Use GitHub's `if: success()` and `if: failure()` conditions to differentiate.
- 3
Connect Slack and Teams in SyncRivo
In SyncRivo, authorize your Slack workspace via OAuth2 app install and your Microsoft Teams tenant via Microsoft Graph API admin consent. Map destination channels — which Slack channels and Teams channels receive Fly.io deployment events.
- 4
Configure routing rules by environment and severity
In SyncRivo, set routing rules: Deploy succeeded (Production) → Slack #deploys + Teams Engineering Releases simultaneously. Deploy failed (any environment) → Slack #on-call + Teams Engineering Leads simultaneously. Preview/branch deploys → Slack only.
- 5
Test the workflow and go live
Trigger a test deployment via GitHub Actions. Verify the notification arrives in both your Slack channel and Teams channel within seconds. For machine health monitoring, configure your external uptime checker to POST to SyncRivo when your Fly app's health endpoint returns a non-200 response.
Routing Matrix: Event × Environment × Platform
| Event | Environment | Slack | Teams |
|---|---|---|---|
| Deploy Succeeded | Production | ✓ #deploys | ✓ Engineering Releases |
| Deploy Succeeded | Staging | ✓ #deploys | — |
| Deploy Succeeded | Preview/Branch | ✓ #fly-devs | — |
| Deploy Failed | Any | ✓ #on-call | ✓ Engineering Leads |
| Rollback Triggered | Any | ✓ #on-call | ✓ Engineering Leads |
| Machine Health Failed | Any | ✓ #on-call | ✓ Infrastructure |
| Machine Restarted | Any | ✓ #platform-eng | ✓ Infrastructure |
Native Fly.io Notifications vs. SyncRivo
| Capability | Native Fly.io | With SyncRivo |
|---|---|---|
| Notify Slack | ✗ No native Slack integration or ChatOps app | ✓ Via SyncRivo step in GitHub Actions or health monitoring webhook |
| Notify Microsoft Teams | ✗ No native Teams integration or notification option | ✓ Full Teams channel delivery via SyncRivo routing |
| Notify Webex / Google Chat / Zoom | ✗ Not available natively | ✓ All 5 platforms from a single SyncRivo endpoint |
| Single deploy event → Slack AND Teams simultaneously | ✗ No built-in webhook delivery system | ✓ One SyncRivo endpoint, fan-out to all platforms |
| Production deploys → Teams, preview → Slack only | ✗ No platform-side routing rules | ✓ Per-environment platform targeting via routing rules |
| Deploy failure → on-call Slack + engineering leads Teams | ✗ No built-in notification system | ✓ Severity-driven routing rules in SyncRivo |
| Zero code changes to fly.toml | ✓ fly.toml is unchanged | ✓ Changes are in GitHub Actions workflow only |
| Works with multi-region Fly deployments | — | ✓ Route per-region events with region tag in payload |
Fly.io Teams Integration — Frequently Asked Questions
Does Fly.io have a Microsoft Teams integration?+
How do I send Fly.io deploy notifications to Microsoft Teams?+
What Fly.io events can SyncRivo route to messaging platforms?+
How does Fly.io compare to Railway and Render for notifications?+
Can I route Fly.io machine health failures to Microsoft Teams?+
Does SyncRivo work with Fly.io multi-region deployments?+
Related PaaS Integration Guides
Railway → Slack & Teams
Railway has built-in webhook delivery — configure DEPLOY_SUCCESS, DEPLOY_FAILURE, and SERVICE_CRASHED events directly from the Railway dashboard.
Render → Slack & Teams
Render has native webhook delivery — route Deploy Started, Deploy Live, Deploy Failed, and Service Suspended events to all platforms.
Heroku → Slack & Teams
Heroku has webhook-based deploy notifications. Route api:release, api:build, and api:dyno events to Teams and Slack simultaneously.
Vercel → Slack & Teams
Vercel has native Slack integration but no Teams. Route deploy webhooks via SyncRivo to both platforms.
Netlify → Slack & Teams
Netlify has native Slack deploy notifications but no Teams integration. Same SyncRivo webhook pattern.
Route Fly.io Deploys to Teams Today
Free to start. No changes to fly.toml. Add SyncRivo notification steps to your GitHub Actions workflow and route deploy results to Slack, Teams, Webex, Google Chat, and Zoom simultaneously.
Ready to connect? Slack ↔ Teams connection setup →