diff --git a/docker/activemq/conf/activemq.xml b/docker/activemq/conf/activemq.xml
index 7afa1e028d80d20133ea3e3ccb43df275e3508b5..dce6591d4a2c02f6b53cc9c0cb7ee055da4a74c7 100644
--- a/docker/activemq/conf/activemq.xml
+++ b/docker/activemq/conf/activemq.xml
@@ -91,6 +91,14 @@
                                     maximumRedeliveryDelay="-1"
                                     useExponentialBackOff="true"
                             />
+                            <redeliveryPolicy
+                                    queue="np.mattermost"
+                                    maximumRedeliveries="6"
+                                    initialRedeliveryDelay="10000"
+                                    backOffMultiplier="3"
+                                    maximumRedeliveryDelay="-1"
+                                    useExponentialBackOff="true"
+                            />
                         </redeliveryPolicyEntries>
                     </redeliveryPolicyMap>
                 </redeliveryPolicyMap>
@@ -152,6 +160,11 @@
                     <individualDeadLetterStrategy queuePrefix="" queueSuffix=".dlq" useQueueForQueueMessages="true"/>
                   </deadLetterStrategy>
                 </policyEntry>
+                 <policyEntry queue="np.mattermost">
+                  <deadLetterStrategy>
+                    <individualDeadLetterStrategy queuePrefix="" queueSuffix=".dlq" useQueueForQueueMessages="true"/>
+                  </deadLetterStrategy>
+                </policyEntry>
               </policyEntries>
             </policyMap>
         </destinationPolicy>
diff --git a/notifications_routing/preferences.py b/notifications_routing/preferences.py
index 009a969a38087460f7f6e15b64d7e0caf77d79b1..64dd9c41ae5520b90521f043fdc857c8f1af51e7 100644
--- a/notifications_routing/preferences.py
+++ b/notifications_routing/preferences.py
@@ -121,15 +121,14 @@ def apply_user_preferences(
             continue
 
         if preference.method == "LIVE":
-            email = user[data_source.EMAIL]
             for device in preference.devices:
-                send_to_device(publisher, message, email, device)
+                send_to_device(publisher, message, device)
             continue
 
         logging.error("Invalid delivery method: %s", preference.method)
 
 
-def send_to_device(publisher: megabus.Publisher, message: Dict, email: str, device):
+def send_to_device(publisher: megabus.Publisher, message: Dict, device):
     """Specific implementation of send to device.
 
     :param publisher: Publisher object used to publish messages
@@ -139,7 +138,7 @@ def send_to_device(publisher: megabus.Publisher, message: Dict, email: str, devi
     """
     logging.debug("Device target: %s", device.name)
     if device.type == "MAIL":
-        send_live_email(publisher, message, email)
+        send_live_email(publisher, message, device.token)
         return
 
     if device.type == "BROWSER":
@@ -157,6 +156,9 @@ def send_to_device(publisher: megabus.Publisher, message: Dict, email: str, devi
         if device.subType == "WINDOWS":
             send_live_webpush(publisher, message, device.token, encoding="aesgcm")
             return
+        if device.subType == "MATTERMOST":
+            send_live_mattermost(publisher, message, device.token)
+            return
 
         # if device.subType == "LINUX":
         #     send_live_webpush(publisher, message, device.token)
@@ -243,3 +245,15 @@ def send_live_safaripush(publisher: Publisher, message: Dict, devicetoken: str):
     logging.debug("Sending to safaripush:\n\tsummary: %s\n\ttoken: %s", message[OutputMessageKeys.SUMMARY], devicetoken)
     message = convert_notification_push_to_json_string(message, devicetoken)
     publisher.send(message, extension="safaripush", ttl=Config.TTL, headers={"persistent": "true"})
+
+
+def send_live_mattermost(publisher: Publisher, message: Dict, devicetoken: str, **kwargs):
+    """Send live Mattermost notification.
+
+    :param publisher: Publisher object used to publish messages
+    :param message: message object
+    :param devicetoken: mattermost identifier
+    """
+    logging.debug("Sending to Mattermost:\n\tsummary: %s\n\ttoken: %s", message[OutputMessageKeys.SUMMARY], devicetoken)
+    message = convert_notification_push_to_json_string(message, devicetoken)
+    publisher.send(message, extension="mattermost", ttl=Config.TTL, headers={"persistent": "true"})