diff --git a/xos/core/models/attic/xosbase_header.py b/xos/core/models/attic/xosbase_header.py
index 1840f5e..523dccd 100644
--- a/xos/core/models/attic/xosbase_header.py
+++ b/xos/core/models/attic/xosbase_header.py
@@ -242,22 +242,35 @@
 
         return fields
 
-    def push_redis_event(self):
+    def push_redis_event(self, deleted=False, pk=None):
         # Transmit update via Redis
         try:
             r = redis.Redis("redis")
-            # NOTE the redis event has been extended with model properties to facilitate the support of real time notification in the UI
-            # keep this monitored for performance reasons and eventually revert it back to fetch model properties via the REST API
+
             model = self.serialize_for_redis()
             bases = inspect.getmro(self.__class__)
-            # bases = [x for x in bases if issubclass(x, XOSBase)]
             class_names = ",".join([x.__name__ for x in bases])
+
             model['class_names'] = class_names
-            payload = json.dumps({'pk': self.pk, 'changed_fields': self.changed_fields, 'object': model}, default=date_handler)
+
+            if not pk:
+                pk = self.pk
+
+            json_dict = {
+                'pk': pk,
+                'changed_fields': self.changed_fields,
+                'object': model
+            }
+
+            if deleted:
+                json_dict['deleted'] = True
+                json_dict['object'] = {'id': pk}
+
+            payload = json.dumps(json_dict, default=date_handler)
             r.publish(self.__class__.__name__, payload)
         except ConnectionError:
             # Redis not running.
-            # TODO add log statement
+            log.error('Connection to Redis failed')
             pass
 
 # For cascading deletes, we need a Collector that doesn't do fastdelete,
diff --git a/xos/core/models/attic/xosbase_model.py b/xos/core/models/attic/xosbase_model.py
index 022ede0..0250d77 100644
--- a/xos/core/models/attic/xosbase_model.py
+++ b/xos/core/models/attic/xosbase_model.py
@@ -45,7 +45,9 @@
         pass
 
     if (purge):
+        pk = self.pk
         super(XOSBase, self).delete(*args, **kwds)
+        self.push_redis_event(deleted=True, pk=pk)
     else:
         if (not self.write_protect ):
             self.deleted = True
diff --git a/xos/core/models/core.xproto b/xos/core/models/core.xproto
index 894e2ca..bd4be4b 100644
--- a/xos/core/models/core.xproto
+++ b/xos/core/models/core.xproto
@@ -260,7 +260,8 @@
 
 
 message Diag (XOSBase) {
-     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the synchronizer", null = False, db_index = False];
+    option gui_hidden = True;
+    required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the synchronizer", null = False, db_index = False];
 }
 
 
