CI Check Failures Alert You Instantly
The moment a check run fails (your tests, linting, security scans, whatever), Notis emails you with the exact failure reason and a link to the run logs so you can fix it immediately.
Trigger
Check Run Status / Conclusion Changed
Triggers when a specific GitHub check run changes its status or conclusion. Monitors a single check run for changes to: status (queued, in_progress, completed, etc.), conclusion (success, failure, neutral, cancelled, skipped, timed_out, action_required), started_at, and completed_at.
Action
Send Email
Sends an email via gmail api using the authenticated user's google profile display name, requiring `is html=true` if the body contains html and valid `s3key`, `mimetype`, `name` for any attachment.
Why this helps
Check run failures can slip past developers, especially in repos with high activity, leading to broken code merging and cascading production issues.
- Catch broken builds immediately before they break production
- Use email as a persistent signal, not a fleeting GitHub notification
- Quickly identify which tests or checks are failing without digging through GitHub
- Prevent accidental merges of broken code by surfacing failures prominently
Setup
Build it in a few focused steps.
- 1Connect GitHub and Gmail to Notis
- 2Create an automation: 'When a check run changes to failed status, send me an email with the check name, failure reason, and link to the logs'
- 3Select 'Check Run Status/Conclusion Changed' as your trigger
- 4Choose email as your notification destination
- 5Intentionally break a test or check to trigger a failure notification and confirm the email arrives
Questions about this workflow
Will I get an email for every single check failure?
By default, yes—so all failures are visible. You can filter to only critical checks if you get too many alerts.
Can the email include the failing test names?
Yes, the email includes the check run name, status, and a direct link to the logs where you can see which tests failed.
What if the same check fails multiple times in a row?
Each status change triggers a new email, so you'll get one for each failure. If that's too noisy, tell Notis to batch failures within an hour.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link GitHub to Gmail. A trigger fires from one place; an action lands in another.
GitHub triggers
Gmail actions
New Workflow Artifact Created
Triggers when a new workflow artifact is created in a GitHub repository. Monitors for newly created GitHub Actions workflow artifacts. Optionally filters by artifact name to restrict monitoring to specific artifacts.
Modify email labels
Adds and/or removes specified gmail labels for a message; ensure `message id` and all `label ids` are valid (use 'listlabels' for custom label ids).
Branch Changed
Triggers when a GitHub branch changes. Monitors a specific branch for: - New commits pushed (head commit SHA changes) - Protection status toggled (branch becomes protected or unprotected) - Protection settings changed, including: required status checks and their enforcement level, admin enforcement, required pull request reviews (dismiss stale reviews, code owner reviews, approving review count, last push approval), required linear history, force push allowance, deletion allowance, conversation resolution, branch locking, and fork syncing.
Create email draft
Creates a gmail email draft, supporting to/cc/bcc, subject, plain/html body (ensure `is html=true` for html), attachments, and threading.
New Branch Created
Triggers when a new branch is created in a GitHub repository. Detects newly created branches. Deleted branches do not fire events.
Create label
Creates a new label with a unique name in the specified user's gmail account.
Check Run Status / Conclusion Changed
Triggers when a specific GitHub check run changes its status or conclusion. Monitors a single check run for changes to: status (queued, in_progress, completed, etc.), conclusion (success, failure, neutral, cancelled, skipped, timed_out, action_required), started_at, and completed_at.
Delete Draft
Permanently deletes a specific gmail draft using its id; ensure the draft exists and the user has necessary permissions for the given `user id`.
Check Suite Status / Conclusion Changed
Triggers when a GitHub check suite changes its status or conclusion for a given ref. Monitors all check suites associated with a git reference (branch, tag, or commit SHA) for changes to status (queued, in_progress, completed, etc.) and conclusion (success, failure, neutral, cancelled, skipped, timed_out, action_required, startup_failure, stale). Optionally filters by GitHub App ID.
Delete message
Permanently deletes a specific email message by its id from a gmail mailbox; for `user id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access.
New Code Scanning Alert Created
Triggers when a new code scanning alert is created in a repository. Fires an event for each newly created code scanning alert detected in the configured repository. Alerts can be filtered by Git reference, scanning tool, state, and severity. The payload includes the alert number, rule details, tool information, state, severity, and the location of the most recent instance.
Fetch emails
Fetches a list of email messages from a gmail account, supporting filtering, pagination, and optional full content retrieval.
New Repository Collaborator Added
Triggers when a new collaborator is added to a GitHub repository. Monitors the full list of collaborators on a repository and fires an event for each newly added collaborator. The payload includes the collaborator's GitHub username, account ID, profile URL, avatar URL, permission flags (pull, triage, push, maintain, admin), and assigned role name.
Fetch message by message ID
Fetches a specific email message by its id, provided the `message id` exists and is accessible to the authenticated `user id`.
Commit Event
Triggered when a new commit is pushed to a repository.
Fetch Message by Thread ID
Retrieves messages from a gmail thread using its `thread id`, where the thread must be accessible by the specified `user id`.
Connect any two apps with Notis in the middle.
Not just GitHub and Gmail. Any combination from 985+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7 days free trial with 20$ free usage included.
No card. Works with personal or business Gmail.
