What you'll have at the end
A configured email alert channel in NightOwl that sends through SendGrid with a 100/day free quota and 5-20 second delivery on quiet sends. New issues, resolved issues, missed scheduled tasks, and queue failures land in your inbox.
END STATE
[ SCREENSHOT PENDING ]
Inbox with a NightOwl alert email delivered via SendGrid, titled 'New issue: AppointmentController::store — TypeError', showing issue summary, fingerprint, count, and a 'View in dashboard' button.
Why SendGrid's free tier works for NightOwl
Three properties make SendGrid a credible free-tier choice — even if not the most generous:
- 100 emails/day forever — enough for most Laravel alert volumes since NightOwl groups exceptions by fingerprint (one
issue.newalert per new fingerprint, not per occurrence). - Industry-standard brand — for compliance, audit, or contractual contexts that ask "what's your transactional provider?", SendGrid is universally recognized.
- Mature deliverability tooling — Activity Feed, suppression lists, bounce handling, and event webhooks all work on the free tier.
Three catches worth knowing up front:
- Free-tier IP pool deliverability has been uneven post-Twilio. Reports of corporate Outlook and Gmail-for-Business inboxes flagging SendGrid free-tier mail are common since 2022. Domain authentication helps significantly. This is SendGrid's free tier, not NightOwl — verify in SendGrid's Activity Feed where you'll see "Delivered" vs. "Bounced" vs. "Deferred" per recipient.
- 100/day cap is tight. A noisy app can blow through this fast. Hitting the cap returns HTTP 401/429 on the SMTP transaction. NightOwl retries, but sustained overrun stalls alerts.
- The literal-string-`apikey`-as-username convention surprises everyone. If you use your account email as the username (the obvious choice), auth fails. Use the literal four-character string.
Step 1 — Sign up for SendGrid free
Head to sendgrid.com/free and create an account. The free 100/day tier doesn't require a credit card. SendGrid's onboarding asks for company details — answer honestly; their anti-abuse heuristics tune on the responses, and accounts that look like throwaways sometimes get held for manual review.
STEP 01
[ SCREENSHOT PENDING ]
SendGrid signup form filled with email and password, and the dashboard onboarding screen showing the 100 free emails/day badge.
Step 2 — Verify a sender
In the SendGrid dashboard, go to Settings → Sender Authentication. You have two options:
- Single Sender Verification — fastest. Enter the email address you want NightOwl alerts to come from, click the link in the validation email. Done in a minute.
- Domain Authentication — better. Add CNAME records to your DNS to authenticate the whole domain. Unlocks branded sending and significantly better deliverability. 5 minutes plus DNS propagation.
Start with Single Sender if you just want a working test alert. Plan to do Domain Authentication before going to production — SendGrid's deliverability gap between unauthenticated and authenticated domains is meaningful.
STEP 02
[ SCREENSHOT PENDING ]
SendGrid Settings → Sender Authentication page showing one verified single sender ('alerts@yourdomain.com — verified') and an option to authenticate the domain below.
Step 3 — Create an API key with Mail Send permission
Go to Settings → API Keys → Create API Key. Name it "NightOwl". For permissions, pick Full Access (simplest) or Restricted Access with Mail Send explicitly enabled (more secure).
SendGrid shows the key once, prefixed SG.. Copy it. If you lose it, generate another and revoke the old.
STEP 03
[ SCREENSHOT PENDING ]
SendGrid API Keys page with a new key 'SG.abc123...xyz' shown in a copy-button modal, and a 'Done' button below.
Step 4 — Open the NightOwl email channel form
Sign in to the NightOwl dashboard. Pick your application, then go to Settings → Issues. Scroll to the Email section and click Configure SMTP (or Add another if you already have an email channel).
STEP 04
[ SCREENSHOT PENDING ]
NightOwl Settings → Issues tab with the Email section showing a 'Configure SMTP' button (empty state) or 'Add another' button (with existing channels).
Step 5 — Fill in SendGrid's SMTP settings
Plug these values into the NightOwl email channel form:
| Field | Value |
|---|---|
| Channel Name | On-call Email |
| Host | smtp.sendgrid.net |
| Port | 587 |
| Encryption | TLS |
| Username | apikey |
| Password | <SG.... API key from Step 3> |
| From Address | <the verified sender from Step 2> |
| From Name | NightOwl Alerts |
| To Addresses | team@yourdomain.com |
The Username is literally the four-letter string apikey — not your email, not your account name. This is SendGrid's convention; the API key is what authenticates.
The From Address must be a verified sender (or any address on an authenticated domain).
STEP 05
[ SCREENSHOT PENDING ]
NightOwl email channel form filled with SendGrid SMTP settings: smtp.sendgrid.net:587, TLS, username 'apikey', password masked SG.xxx, verified From address.
Step 6 — Test, then subscribe to alert events
Save the channel and click Send Test. NightOwl fires a synthetic alert through SendGrid. Quiet sends arrive in 5-20 seconds. Cross-check SendGrid's Activity → Activity Feed — every send shows there with "Processed → Delivered → (Open)" timestamps.
Then tick which of the four issue-lifecycle events fire emails:
- issue.new — a new exception fingerprint appears (always on)
- issue.reopened — a previously-resolved issue fires again (recommended on)
- issue.resolved — issue triaged closed (optional)
- issue.ignored — issue muted (optional)
For solo triage, leave all four on. For team triage, just issue.new + issue.reopened avoids duplicate notifications. With SendGrid's tight 100/day cap, leaving lifecycle events off is also a way to conserve quota for what matters most.
STEP 06
[ SCREENSHOT PENDING ]
NightOwl alert channel events panel with checkboxes for issue.new, issue.reopened, issue.resolved, issue.ignored — all four ticked. SendGrid Activity Feed visible alongside showing the test send as 'Delivered'.
When to upgrade to SendGrid Essentials
Three signals it's time to leave the free tier:
- You hit 100/day during a real incident — Essentials at $19.95/mo lifts to 50,000/month with no daily cap.
- Deliverability to enterprise mailboxes is uneven — Essentials and Pro get progressively better IP pools; Pro+ unlocks dedicated IP for sender reputation isolation.
- Compliance needs longer log retention — free tier keeps Activity Feed for 3 days; paid tiers go to 30+ days.
SendGrid vs Resend vs Brevo vs Gmail
All four work as NightOwl alert channels. Quick decision matrix:
- SendGrid — strongest brand for compliance, smallest free tier (100/day), uneven free-tier deliverability since the Twilio acquisition.
- Resend — fastest delivery, branded sender, 3,000/month. Best when you control DNS.
- Brevo — biggest free quota (300/day), no domain required to start, EU infrastructure.
- Gmail SMTP — zero-config, 500/day, but slow during incident bursts.
PREFER A WEBHOOK?
Slack and Discord channels are zero-config alternatives
NightOwl ships native Slack and Discord channels. Paste a webhook URL, done — no SMTP, no daily caps, instant delivery.
Email is good as a fallback when chat is down, but it doesn't have to be your primary channel.