Install
$ agentstack add skill-pranavnagrecha-awesomesalesforceskills-chatter-notification-tuning ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Chatter Notification Tuning
Activate this skill when an admin needs to reduce Chatter feed noise, lower email volume, or rebalance the notification surface across Chatter feed posts, Custom Notifications (bell), and email alerts. The skill is about governance of the notification channel — not authoring new automation.
Before Starting
Gather this context before proposing changes:
- Where the noise comes from. Three sources, three different fixes:
- Automated feed posts — Flow
Post to Chatteractions, Process Builder posts, ApexFeedIteminserts, automated@mentionsin feed. Look in Setup → Object Manager → relevant object → Feed Tracking, plus search Flows for "Post to Chatter" actions and Apex forFeedIteminserts. - Group activity emails — Member-driven posts in Chatter groups. Per-group
Email Frequencycontrols digest vs per-post. - Follower / record-followed emails — Triggered when a user follows a record (manual or auto-follow), tied to Feed Tracking changes.
- Who's complaining. A single noisy executive often drives a full-org tuning project; a quieter pattern is "everyone deletes the digest unread." Both need different responses.
- Do you have Custom Notifications (Notification Builder)? Available since Summer '20. The bell-icon channel is generally a better fit than feed posts for targeted, transient notifications. If the answer is "we never used it," the most-leveraged tuning is migrating high-volume automated feed posts to Custom Notifications.
- License constraints. Chatter Free / Chatter External users have a smaller subset of email-notification controls. Customer Community + Customer Community Plus follow Experience Cloud notification mechanics, not the standard Chatter set.
Core Concepts
Concept 1 — Three control surfaces, layered
Chatter notifications layer like a CSS cascade. Each surface can override the layer above it:
- Org-level Chatter Settings (Setup → Chatter Settings + Setup → Email Settings → Chatter Email Settings).
EnableChatter,EnableEmailNotifications,EnableMyChatterMessages.- Sets the default on for new users and the global ceiling — disabling at this level overrides everything below.
- Group-level Email Frequency on each
CollaborationGrouprecord.
- Values:
Daily,Weekly,Each post,Limited,Never.Limitedsends emails only for posts that @mention the user or are in the user's first-degree-followed records. - Group owners and admins can change this; non-owner users can only change their own per-group preference under My Settings.
- User-level Email Settings (My Settings → Email → Email Notifications).
- Per-user opt-out of bookmark replies, comments on followed posts, group digest choices. The user's settings always override the org default once they touch the page.
The cascade explains why an org-level "turn off chatter emails" doesn't always work — existing users who once saved their Email Notifications page now have a per-user record that pins them on.
Concept 2 — Feed Tracking is what makes records noisy, not Chatter
Feed Tracking on an object/field generates a FeedItem every time a tracked field changes on a record that someone follows. Two failure modes:
- Tracking too many fields. Tracking
LastModifiedDateonAccountwill generate aFeedItemon every save — usually unwanted. Recommended: track only fields tied to qualitative state (Stage, Owner, Status), never timestamps or rollup fields. - Auto-follow is on. Setup → Chatter Settings → "Allow Coworker Invitations" + per-object Auto-Follow rules cause users to silently accumulate followed records. The user later sees floods of automated activity in their feed and has no idea where the follows came from. Audit auto-follow rules early.
To kill noise at the source: prune Feed Tracking to ≤5 fields per object, and disable auto-follow on objects that are mass-edited (Lead, Case).
Concept 3 — Custom Notifications (bell) vs Chatter feed posts
Decision tree for "I want to tell users something happened":
| Goal | Use | |---|---| | Targeted, transient alert ("your case was reassigned") | Custom Notification (bell). Disappears when read. Optional desktop / mobile push. | | Durable record of an event ("approval rejected on Opp #4567") | Chatter FeedItem with Visibility = InternalUsers. Preserves audit trail. | | Broadcast announcement ("system maintenance Sunday") | Custom Notification with broad recipient list, NOT a feed post on user records. | | Process telemetry ("flow completed successfully") | NEITHER. Use Email Alert or a dashboard. Chatter is not a logging channel. |
The most-leveraged tuning move in a noisy org is auditing Flow / Apex FeedItem inserts and migrating the transient-alert ones to Custom Notifications. A single Flow that posts a "Stage moved to Closed Won" feed item on every opportunity may produce thousands of FeedItem rows per day; Custom Notifications target the same recipients without the storage and feed-pollution cost.
Concept 4 — Limited digest is underused
Most orgs default group email frequency to Each post or Daily. The Limited setting is the smartest default for collaboration groups:
- Sends emails only for posts that @mention the recipient OR posts that comment on a thread the recipient already participated in.
- Cuts email volume by 80–95% in active groups while preserving the "this involves me" signal.
For broadcast groups (announcements, all-hands), Daily digest is appropriate. For project-specific or interest groups, Limited is almost always the right default.
Recommended Workflow
- Inventory the noise sources. Run the bundled
scripts/check_chatter_notification_tuning.pyagainst your retrieved metadata to enumerate Flows that post to Chatter, Apex classes that insertFeedItem, and objects with Feed Tracking on more than 5 fields. - Audit Feed Tracking per object. For each object reported by the checker, open Setup → Object Manager → Feed Tracking. Remove timestamp / rollup / formula fields from the tracking list. Aim for ≤5 qualitative fields per object.
- Migrate transient automated feed posts to Custom Notifications. Replace each
FeedItem-inserting Flow / Apex with a Custom Notification action. Delete or deactivate the original after a 2-week parallel-run window. - Set group email frequency defaults. For each
CollaborationGroup, decide betweenDaily,Limited, andNeverbased on group purpose. Communicate the change to group owners with the rationale. - Audit auto-follow rules. Setup → Chatter Settings → User Auto-Follow defaults + any per-object follow automation. Disable auto-follow on mass-edited objects. Existing follows can be cleaned with a one-time
EntitySubscriptionpurge. - Reset user-level Email Notifications stuck-on state. For users who saved their settings before the org-level change, only they can re-save their Email Notifications page. Communicate the action with a step-by-step screenshot in the change announcement.
- Re-measure. Two weeks after the change, re-run the checker and pull
FeedItemcount +EntitySubscriptioncount by date to confirm the curve.
Related Skills
apex/apex-custom-notifications-from-apex— Custom Notification API patterns, recipient targeting, target page navigationapex/apex-connect-api-chatter— programmatic feed manipulation via Connect APIadmin/email-deliverability-strategy— broader email volume management beyond Chatter
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: PranavNagrecha
- Source: PranavNagrecha/AwesomeSalesforceSkills
- License: Apache-2.0
- Homepage: https://pypi.org/project/sfskills-mcp/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.