[object Object]

Every senior fulfiller I have ever shadowed has a single Outlook rule: “ServiceNow -> archive on receive.” The platform has trained them to ignore notifications because so many are duplicate, irrelevant, or fired by an automation that nobody remembers writing. The fix is a deduplication and digest layer — and it does not exist out of the box.

The pattern: queue then dispatch

Replace direct sys_email insertion with a queue table you control. A scheduled job dispatches with deduplication, batching, and digest logic.

Table: u_notification_queue
Columns:
  recipient (user)
  subject_key (string, used for dedup)
  source_table
  source_sys_id
  payload (json)
  queued_at
  dispatched_at
  collapsed_count (integer, default 1)

subject_key is the dedup key. Two messages with the same key within the dedup window collapse into one with collapsed_count incremented.

Dedup windows by message type

  • Assignment changed — 60 second window
  • Comment added — 5 minute window
  • State changed — 60 second window
  • Approval requested — never collapse

Tune per recipient role if you have heavy fulfillers vs light approvers.

The dispatch script

var Dispatcher = Class.create();
Dispatcher.prototype = {
  dispatch: function() {
    var ga = new GlideAggregate('u_notification_queue');
    ga.addNullQuery('dispatched_at');
    ga.addAggregate('COUNT');
    ga.addAggregate('MAX', 'queued_at');
    ga.groupBy('recipient');
    ga.groupBy('subject_key');
    ga.query();
    while (ga.next()) {
      // emit one email per (recipient, subject_key) bucket
    }
  },
  type: 'Dispatcher'
};

Daily digest for low-priority types

Comment notifications and watchlist updates should default to a daily digest, opt-in to immediate. The platform’s preference center supports this — most teams never wire it.

Quiet hours per user

Pull cmn_schedule for the user’s timezone and suppress non-critical notifications between 8pm and 7am local time. Critical (P1, on-call page) bypass.

Measure the impact

Track average notifications per fulfiller per day before and after. A typical reduction is 50-65%. The metric that actually matters is fulfiller satisfaction in the next pulse survey.

What to do this week

Audit the top 5 notification rules by send volume in the last 7 days. Pick the noisiest one and route it through a deduplication wrapper for a pilot group. Two weeks later, expand to the whole org with the win story attached.

[object Object]
Share