Notification Rules Engine
Stop Fighting GitHub Notifications
GitHub Actions notifications are success-or-failure, that's it. With Pipie's Lua-powered rules, filter by branch, workflow, PR status, and 30+ other conditions.
main | Workflow: CI | Duration: 3m 42s
enhancement, ui
Sound Familiar?
Questions You Shouldn't Have to Ask
Every day, developers interrupt each other with questions that should have obvious answers.
"Has anyone reviewed that PR?"
You submitted it 3 hours ago. Now you're pinging people on Slack.
"Has the deploy finished?"
Refreshing GitHub Actions every 2 minutes waiting for the workflow to complete.
"When was that PR merged?"
Digging through GitHub history to find when a feature actually shipped.
"Did the workflow pass?"
You pushed 20 minutes ago but didn't hear anything. Is that good or bad?
"Who's working on that fix?"
No visibility into what's in progress across your repositories.
"Is the hotfix live yet?"
Stakeholders asking. You don't know. Time to check GitHub again.
With Pipie, you never have to ask.
The right people get notified at the right time. PR ready for review? The reviewer knows. Workflow failed? On-call knows. Feature merged? The team knows.
GitHub Notifications Are Too Limited
GitHub's native Slack app is read-only. Actions only notifies on success or failure. Here's what you're missing:
GitHub Native
- Actions notifications: success or failure only
- Can't filter by branch or workflow name
- No routing to different channels
- GitHub Slack app is read-only
Pipie Rules Engine
- Lua conditions with 30+ variables
- Filter by branch, PR status, workflow
- Global rules across all repositories
- Route events to the right channel automatically
Try It Now
Write Rules in Plain Lua
Type mr.
or pipeline.
to see autocomplete suggestions
This rule notifies when GitHub Actions passes on a PR targeting main
Example Conditions
pipeline.status == "success" and mr.provider == "github"
Notify when GitHub Actions workflow completes successfully
mr.status == "open" and not mr.draft and mr.approvals == 0
Alert when a non-draft PR needs its first review
pipeline.ref == "main" and pipeline.status == "success"
Notify when code is deployed to production
mr.provider == "github" and mr.repository.name == "acme/frontend"
Filter to specific GitHub repository
GitHub vs Pipie: Feature Comparison
See what you're missing with native GitHub notifications
| Feature | GitHub Native | Pipie |
|---|---|---|
| Custom conditions | Basic event types only | Lua expressions with 30+ variables |
| Channel routing | One channel per workflow | Route by condition |
| Filter by branch | ❌ No | ✅ mr.target_branch == "main" |
| Filter by author | ❌ No | ✅ mr.author == "alice" |
| Filter by workflow status | ❌ Success/failure only | ✅ pipeline.status == "success" |
| Cross-repo rules | ❌ Per-repository | ✅ Global rules |
| Duplicate prevention | ❌ No | ✅ Fire-once per PR |
Powerful Features
Everything You Need for Smart Notifications
Lua Conditions
Write expressive conditions like
pipeline.status == "success"
Actions Support
Filter GitHub Actions workflows by status, branch, and more
Multi-Platform
Same rules work for both GitHub and GitLab repositories
Dynamic Routing
Use Lua to route events to different channels based on branch, author, or status
Global Rules
One rule applies to all repositories - no per-repo config
Fire-Once
No duplicate notifications - each PR/workflow only triggers once
Real-World Use Cases
See how teams use notification rules to stay focused
Actions Success
Notify #frontend when CI passes on main branch
pipeline.status == "success" and pipeline.ref == "main"
Workflow Failures
Alert #oncall when production deployments fail
pipeline.status == "failed" and pipeline.ref == "main"
PR Reviews
Ping #code-review when PRs are ready for review
mr.status == "open" and not mr.draft and mr.approvals == 0
Repository Filter
Only notify for specific GitHub repositories
mr.provider == "github" and mr.repository.name == "acme/frontend"
Dynamic Channel Routing with Lua
Route notifications to different channels based on event data. Use Lua expressions to compute the destination channel at runtime.
- Route by target branch (main → #releases, develop → #dev)
- Route by workflow status (failed → #oncall, success → #builds)
-
Route to team channels by author (
#team-$author)
Route by branch:
mr.target_branch == "main" and "#prod-alerts" or "#dev-alerts"
Route by workflow status:
pipeline.status == "failed" and "#oncall" or "#builds"
Actions Alerts
Know When Workflows Fail
Get notified immediately when GitHub Actions workflows fail on important branches. Route critical failures to dedicated channels so engineers respond faster.
pipeline.status == "failed" and pipeline.ref == "main"
main
📦 Repository: acme/frontend
🔗 <https://github.com/acme/frontend/actions/runs/12345|View Workflow Run>
Ready to Fix Your GitHub Notifications?
Stop fighting with GitHub's limited notification settings. Start getting the alerts you actually need.
Pricing
Pricing that grows with you
Choose an affordable plan that's packed with the best features for streamlining your GitHub workflow.
Pro Plan
Perfect for growing teams that need smart notifications and reviewer matching.
$30 /month
Start Trial- Up to 15 contributors
- Merge request tracking
- Pipeline notifications
- $1.50 per extra contributor
Business Plus Plan
Advanced features for large teams with complex workflows and compliance needs.
$150 /month
Start Trial- Up to 100 contributors
- Priority support
- Merge request tracking
- Pipeline notifications
- Team collaboration tools
- $1 per extra contributor
Self-Hosted
Deploy on your own infrastructure with complete data control.
Custom
Contact Us- Deploy on your servers
- Complete data sovereignty
- Custom SLAs available
- Unlimited contributors
Explore More Pipie Features
Discover the complete CI/CD observability platform