Notifications
Overview
Section titled “Overview”OrgGuard sends email notifications when policies evaluate assets and generate findings. Every notification is recorded in the Notification object (Notification__c) — what was sent, to whom, when, and whether delivery succeeded. This page covers reading that record, diagnosing failures, and configuring delivery behavior.
Each Notification__c record has a Notification Type of either Email or InApp — that’s the channel the record represents, not who it goes to. Routing (whether an alert goes to the asset’s owner, the admin group, or both) is decided by the originating policy’s Step 4 — Notification Settings toggles, not by a stored type:
- Notify Asset Owner (toggle) — when on, the asset’s assigned Owner (the Salesforce user’s email) is notified when their asset triggers a finding.
- Notify Admin Group (toggle) — when on, the address configured in the policy’s Admin Group Email field is notified.
Deduplication is per-policy (the Deduplication Window set on the policy wizard’s Step 4), so repeat alerts for the same finding are suppressed for N hours.
Email delivery is batched into a per-recipient digest. The Notification Scheduler runs hourly; each time it fires, OrgGuard groups the pending email notifications by recipient (up to 100 records per fire, oldest first) and sends one summary email per recipient — a finding count plus a severity breakdown and a View in OrgGuard link to the Notifications tab. It does not send one email per finding, and there is no acknowledge link in the email. The per-finding Notification__c records are still created one-per-finding (and so are the in-app bell alerts); only the email send is aggregated. Open the Notifications tab from the email to see each finding’s record.
What you’ll see
Section titled “What you’ll see”The Notifications tab shows a paginated table of Notification__c records, newest first. Each row represents one attempted delivery. The page has:
- A Status filter (All / Pending / Sent / Failed / Suppressed) above the table.
- A Refresh button in the card header.
- 25 rows per page with Previous / Next pagination controls below the table.
- A View button on each row that opens the full notification record.
Key fields on each record:
| Field | Meaning |
|---|---|
| Notification Type | Email or InApp — the delivery channel. Who receives it is set by the policy’s Step 4 toggles, not this field |
| Subject | The email subject line |
| Body Summary | A short excerpt of the email body |
| Recipient | The destination email address |
| Status | Pending, Sent, Failed, or Suppressed |
| Sent At | Timestamp of successful delivery (blank while Pending or Failed) |
| Finding | Lookup to the Finding__c record that triggered this alert |
| Error | Populated only when Status is Failed — contains the Apex or Messaging error text |
Notification__c is a normal custom object, so you can still build custom list views, report types, and filters using the standard Salesforce tools — navigate to Setup → Object Manager → Notification for list-view and reporting setup, or use Reports with a report type based on the Notification object. The tab itself is an OrgGuard app page rather than a raw object list view.
Common tasks
Section titled “Common tasks”Task: Verify a specific notification was sent
Section titled “Task: Verify a specific notification was sent”Who can do this: OrgGuard User (read access to Notification__c).
- Open the Notifications tab.
- Set the Status filter to Sent. Rows are ordered newest first, so recent deliveries are at the top; scan the Recipient column for the expected address (use Next to page through if needed).
- Expected result: one row per delivery attempt with Status =
Sentand a populated Sent At timestamp.
If no row exists for the expected recipient/time, either:
- The policy that should have fired had Notify Asset Owner / Notify Admin Group disabled, or
- Deduplication suppressed the send (the previous identical alert was within the dedupe window).
Task: Diagnose a failed delivery
Section titled “Task: Diagnose a failed delivery”- Open the Notifications tab.
- Set the Status filter to Failed.
- Click View on the failed row to open the record.
- Read the Error field — common causes are listed in Troubleshooting below.
- Fix the underlying cause (bad recipient address, email deliverability off, etc.).
- OrgGuard does not auto-retry failed sends. To re-send, acknowledge or suppress the source finding and re-open it to re-trigger policy evaluation on the next scan.
Task: Configure per-policy notification routing
Section titled “Task: Configure per-policy notification routing”Notifications are routed per policy, not globally. To change who gets alerted for a given policy’s findings:
- Open the Policies tab.
- Open the Actions menu on the relevant policy → Edit.
- Advance to Step 4 — Notification Settings.
- Adjust:
- Notify Asset Owner (toggle) — when on, sends to the asset’s assigned Owner (their user email).
- Notify Admin Group (toggle) — when on, reveals and sends to Admin Group Email.
- Deduplication Window (hours) — minimum hours between repeat sends for the same finding.
- Save the policy.
- Expected result: the next scan uses the new settings.
See Policies for the full wizard walkthrough.
Task: Raise the dedupe window to reduce alert fatigue
Section titled “Task: Raise the dedupe window to reduce alert fatigue”If recipients are complaining about repeat emails:
- Identify the offending policy — the recipient can tell you the Subject line; match it to a policy.
- Edit the policy; advance to Step 4.
- Raise Deduplication Window (hours) from the default
24to something larger (e.g.72). - Save.
- Expected result: the same finding won’t trigger repeat sends within the new window. The finding itself still updates.
Task: Confirm org-level email is enabled
Section titled “Task: Confirm org-level email is enabled”Before OrgGuard can send anything, Salesforce must allow outbound email:
- Open Setup → Email Administration → Deliverability.
- Set Access Level to All email.
- Save.
Sandboxes default to System email only — remember to re-enable after a refresh.
Task: Configure the sender address
Section titled “Task: Configure the sender address”Who can do this: OrgGuard Admin (read/edit on OrgGuard_Setup__c.OrgWide_Email_Address_Id__c).
By default, OrgGuard notifications are sent on behalf of whichever user owns the scheduled job — fragile and bad for deliverability. Override this with a verified Org-Wide Email Address (OWEA) for two reasons:
- Deliverability — messages from a domain you control can be DKIM-signed by Salesforce, which stops Gmail and Microsoft 365 from flagging alerts as unverified (“Be careful with this message — couldn’t verify this”).
- Continuity — without an OWEA, alerts stop the moment the scheduling user leaves the org or has their license deactivated. An OWEA decouples From-address from any individual.
Prerequisites: Salesforce admin access (to create the OWEA), DNS access for the OWEA’s domain (to set up DKIM later).
- Setup → Email → Organization-Wide Email Addresses — create a new address (e.g.
notifications@example.com) and click the verification link Salesforce mails you. - Open the OrgGuard Setup Wizard and advance to Step 5: Email Notifications (or revisit it if setup is complete).
- Pick the verified address from the Org-Wide Email Address dropdown.
- Click Send Test Email — OrgGuard sends a test message to your own login address using the same path as real notifications, so if it arrives in your inbox, real alerts will too.
- Advance through the wizard so the choice is saved (or click Save if you are revisiting).
- Expected result: subsequent
Notification__crecords send with the OWEA in the From line. Confirm in Gmail’s “Show original” —From:matches the OWEA andAuthentication-Resultsshows the DKIM/SPF state of your domain.
Status reference
Section titled “Status reference”Status__c | What it means | Typical cause |
|---|---|---|
| Pending | Queued but not yet sent | Transaction still in flight — usually visible for < 1 second |
| Sent | Messaging.sendEmail succeeded | Delivery is Salesforce’s problem from here; SMTP retries happen behind the scenes |
| Failed | Send attempt raised an exception | See Error field — deliverability off, invalid recipient, etc. |
| Suppressed | OrgGuard chose not to send | Dedupe window suppressed the send, or Recipient was blank |
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Fix |
|---|---|---|
Recipient swears no email arrived, but Status = Sent | Message reached SMTP; landed in spam or flagged as unverified by Gmail / Microsoft 365 | Ask recipient to check spam/junk. For a durable fix, configure an Org-Wide Email Address on a domain you control and pair it with DKIM signing — this stops mail providers from flagging alerts as impersonated. |
Status = Failed, Error mentions “Email deliverability” | Org Deliverability set to System email only or No access | Setup → Email → Deliverability → set to All email. |
Status = Failed, Error mentions “SINGLE_EMAIL_LIMIT_EXCEEDED” | Daily mass-email limit hit (5,000/day for most editions) | Reduce scan frequency, raise the dedupe window on noisy policies, or contact Salesforce about limits. |
Status = Failed, Error mentions “INVALID_EMAIL_ADDRESS” | The Admin Group Email on the policy is malformed | Fix the Admin Group Email on the policy. (Owner notifications use the assigned user’s Salesforce email, which is always well-formed.) |
| Admin group didn’t receive expected alert | Notify Admin Group toggle off, or Admin Group Email blank | Edit the policy; turn on the toggle and fill in the email. |
| Repeated digest emails across scheduler fires | Deduplication Window too low, or distinct policies each send (not deduped across policies) | Within a single scheduler fire each recipient gets one digest; repeats across fires mean the source findings re-triggered. Raise the dedupe window on the policy; if multiple policies fire on the same asset, consider consolidating into one policy. |
| No Notification record exists for a finding | The policy has both Notify toggles off | Edit the policy; enable at least one Notify toggle. |
| Error column is blank but delivery is stuck in Pending | Transaction failed and was rolled back before Sent At was written | OrgGuard Admin: find the corresponding entry in Diagnostic Logging for the scan run. Others: ask your admin to check the Diagnostic Log Viewer, or email support@orgguard.com with the Notification record’s name and timestamp. |
Does OrgGuard retry failed notifications automatically?
No. Failed Notification records stay in Failed status with the Error populated. To re-send, fix the cause and re-trigger the source finding (reopen → re-evaluated on next scan).
Can I customize the email template?
Not in OrgGuard Pro 1.0. The digest email is generated by OrgGuard’s EmailService; each Notification__c record’s Subject and Body Summary fields are set by NotificationDispatcher. Templated emails with branding are planned for a future release.
What stops OrgGuard from sending during deduplication — the finding or the notification?
The finding still updates and remains active — only the email send is suppressed. A Notification record with Status = Suppressed is created so you can see that dedupe triggered.
Why did one finding notify the owner and another notify the admin group?
Routing depends on the policy’s Step 4 toggles. A single policy can notify both the asset owner and the admin group for each finding, just one, or neither. This is a policy routing decision, not a stored Notification Type (which only records the channel — Email or InApp).
I got one email summarizing several findings instead of one email per finding — is that intentional?
Yes. Each Notification Scheduler fire sends one digest email per recipient: a count of findings needing attention, a severity breakdown, and a link to the Notifications tab. This prevents inbox floods when a scan surfaces many findings at once. Each finding still has its own Notification__c record — open the Notifications tab to review and act on them individually.
Is there a test-send feature? Yes. In Step 5: Email Notifications of the Setup Wizard, click Send Test Email — OrgGuard sends a delivery test to your own login address using the same sender path as real notifications. See Configure the sender address for the walkthrough. To exercise the full policy-to-notification path instead, create a throwaway asset with a known-expiring date, enable a test policy targeting it with a short dedupe window, run a scan, and verify the Notification record and delivery; delete the asset when done.
Can notifications trigger Slack / Teams / PagerDuty?
Not directly — OrgGuard sends email only. Bridge to other channels via Salesforce Flows on Notification__c insert (send to an external endpoint) or forwarding rules on the Admin Group inbox.
Can I delete a notification record?
No. Notification records are delivery evidence — deletion is blocked at the platform level regardless of permission set or profile. They are purged automatically by the data-retention policy. To reduce noise, suppress the source finding (set Status = Suppressed on the Finding__c record) or raise the Deduplication Window on the originating policy.
Related
Section titled “Related”- Policies — wizard Step 4 configures who, how, and how often
- Findings — the records that trigger notifications
- Diagnostic Logging — capture detailed error context when sends fail
- Scheduled Jobs — when scans run, which is when notifications fire
- Permission Sets — who can read and edit
Notification__c