diff --git a/composer.lock b/composer.lock
index 29fc9f4dd..6b26b3396 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4108,16 +4108,16 @@
         },
         {
             "name": "olcs/olcs-transfer",
-            "version": "v6.0.1",
+            "version": "v6.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/dvsa/olcs-transfer.git",
-                "reference": "43132a1630e82c8c2231c37b03178ebb1aa2663f"
+                "reference": "ff4249e741de87991c0b999513e754e96de1446b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/dvsa/olcs-transfer/zipball/43132a1630e82c8c2231c37b03178ebb1aa2663f",
-                "reference": "43132a1630e82c8c2231c37b03178ebb1aa2663f",
+                "url": "https://api.github.com/repos/dvsa/olcs-transfer/zipball/ff4249e741de87991c0b999513e754e96de1446b",
+                "reference": "ff4249e741de87991c0b999513e754e96de1446b",
                 "shasum": ""
             },
             "require": {
@@ -4158,9 +4158,9 @@
             "notification-url": "https://packagist.org/downloads/",
             "description": "OLCS Transfer",
             "support": {
-                "source": "https://github.com/dvsa/olcs-transfer/tree/v6.0.1"
+                "source": "https://github.com/dvsa/olcs-transfer/tree/v6.1.0"
             },
-            "time": "2024-02-22T14:58:13+00:00"
+            "time": "2024-02-22T15:22:13+00:00"
         },
         {
             "name": "olcs/olcs-utils",
diff --git a/module/Olcs/config/module.config.php b/module/Olcs/config/module.config.php
index eb30f7230..46b310152 100644
--- a/module/Olcs/config/module.config.php
+++ b/module/Olcs/config/module.config.php
@@ -1081,6 +1081,13 @@
                     'id' => 'dashboard-messaging',
                     'label' => 'dashboard-nav-messaging',
                     'route' => 'conversations',
+                    'pages' => array(
+                        array(
+                            'id' => 'messaging-create-conversation',
+                            'label' => 'New Conversation',
+                            'route' => 'conversations/new',
+                        ),
+                    ),
                 ),
             ),
         ),
diff --git a/module/Olcs/src/Controller/ConversationsController.php b/module/Olcs/src/Controller/ConversationsController.php
index 9ea7e4665..43f9e86fe 100644
--- a/module/Olcs/src/Controller/ConversationsController.php
+++ b/module/Olcs/src/Controller/ConversationsController.php
@@ -17,6 +17,7 @@
 use Dvsa\Olcs\Transfer\Query\Messaging\Conversations\ByOrganisation as ByOrganisationQuery;
 use Dvsa\Olcs\Utils\Translation\NiTextTranslation;
 use Laminas\Http\Response;
+use Laminas\Navigation\Navigation;
 use Laminas\View\Model\ViewModel;
 use LmcRbacMvc\Service\AuthorizationService;
 use Olcs\Form\Model\Form\Message\Reply as ReplyForm;
@@ -34,17 +35,20 @@ class ConversationsController extends AbstractController implements ToggleAwareI
     protected FlashMessengerHelperService $flashMessengerHelper;
     protected TableFactory $tableFactory;
     protected FormHelperService $formHelperService;
+    protected Navigation $navigationService;
 
     public function __construct(
         NiTextTranslation $niTextTranslationUtil,
         AuthorizationService $authService,
         FlashMessengerHelperService $flashMessengerHelper,
         TableFactory $tableFactory,
-        FormHelperService $formHelperService
+        FormHelperService $formHelperService,
+        Navigation $navigationService
     ) {
         $this->flashMessengerHelper = $flashMessengerHelper;
         $this->tableFactory = $tableFactory;
         $this->formHelperService = $formHelperService;
+        $this->navigationService = $navigationService;
 
         parent::__construct($niTextTranslationUtil, $authService);
     }
@@ -150,6 +154,8 @@ private function mapFormDataToCommand(\Laminas\Form\Form $form): Create
     /** @return ViewModel|Response */
     public function viewAction()
     {
+        $this->navigationService->findBy('id', 'dashboard-messaging')->setActive();
+
         $params = [
             'page'         => $this->params()->fromQuery('page', 1),
             'limit'        => $this->params()->fromQuery('limit', 10),
diff --git a/module/Olcs/src/Controller/Factory/ConversationsControllerFactory.php b/module/Olcs/src/Controller/Factory/ConversationsControllerFactory.php
index c4f4a45b3..ed687c40b 100644
--- a/module/Olcs/src/Controller/Factory/ConversationsControllerFactory.php
+++ b/module/Olcs/src/Controller/Factory/ConversationsControllerFactory.php
@@ -8,6 +8,7 @@
 use Common\Service\Helper\FormHelperService;
 use Common\Service\Table\TableFactory;
 use Dvsa\Olcs\Utils\Translation\NiTextTranslation;
+use Laminas\Navigation\Navigation;
 use Psr\Container\ContainerInterface;
 use Laminas\ServiceManager\Factory\FactoryInterface;
 use LmcRbacMvc\Service\AuthorizationService;
@@ -25,6 +26,7 @@ public function __invoke(
         $flashMessengerHelper = $container->get(FlashMessengerHelperService::class);
         $tableFactory = $container->get(TableFactory::class);
         $formHelperService = $container->get(FormHelperService::class);
+        $navigationService = $container->get(Navigation::class);
 
         return new ConversationsController(
             $niTextTranslationUtil,
@@ -32,6 +34,7 @@ public function __invoke(
             $flashMessengerHelper,
             $tableFactory,
             $formHelperService,
+            $navigationService
         );
     }
 }
diff --git a/module/Olcs/src/Controller/Listener/Navigation.php b/module/Olcs/src/Controller/Listener/Navigation.php
index 30286423e..93eea7f79 100644
--- a/module/Olcs/src/Controller/Listener/Navigation.php
+++ b/module/Olcs/src/Controller/Listener/Navigation.php
@@ -5,6 +5,7 @@
 use Common\FeatureToggle;
 use Common\Rbac\User as RbacUser;
 use Common\Service\Cqrs\Query\QuerySender;
+use Dvsa\Olcs\Transfer\Query\Messaging\Messages\UnreadCountByOrganisationAndUser;
 use Laminas\EventManager\EventManagerInterface;
 use Laminas\EventManager\ListenerAggregateInterface;
 use Laminas\EventManager\ListenerAggregateTrait;
@@ -168,6 +169,8 @@ private function toggleMessagesTab(bool $shouldShowMessagesTab): void
     {
         $this->navigation->findBy('id', 'dashboard-messaging')
             ->setVisible($shouldShowMessagesTab);
+
+        $this->addUnreadMessagingCount();
     }
 
     private function shouldShowMessagesTab(): bool
@@ -201,4 +204,26 @@ public function setGovUkReferers(array $govUkReferers): void
     {
         $this->govUkReferers = $govUkReferers;
     }
+
+    public function getUnreadMessageCount(): int
+    {
+        $userOrganisationId = $this->identity->getUserData()['organisationUsers'][0]['organisation']['id'];
+
+        $unreadByOrganisation = $this->querySender->send(
+            UnreadCountByOrganisationAndUser::create(
+                [
+                    'organisation' => $userOrganisationId,
+                    'user' => $this->identity->getId(),
+                ]
+            )
+        );
+
+        return($unreadByOrganisation->getResult()['count'] ?? 0);
+    }
+
+    public function addUnreadMessagingCount(){
+        $this->navigation->findBy('id', 'dashboard-licences-applications')
+            ->findBy('id','dashboard-messaging')
+            ->set('unreadMessageCount', $this->getUnreadMessageCount());
+    }
 }
diff --git a/module/Olcs/src/Service/Data/MessagingAppOrLicNo.php b/module/Olcs/src/Service/Data/MessagingAppOrLicNo.php
index 1c9a24a49..bb648f2b0 100644
--- a/module/Olcs/src/Service/Data/MessagingAppOrLicNo.php
+++ b/module/Olcs/src/Service/Data/MessagingAppOrLicNo.php
@@ -63,8 +63,7 @@ public function formatDataForGroups(array $data): array
 
     private function prefixArrayKey(array &$array, string $prefix): void
     {
-        foreach ($array as $k => $v)
-        {
+        foreach ($array as $k => $v) {
             $array[$prefix . $k] = $v;
             unset($array[$k]);
         }
diff --git a/module/Olcs/view/partials/tabs-nav.phtml b/module/Olcs/view/partials/tabs-nav.phtml
index 3cd74166f..920939d4e 100644
--- a/module/Olcs/view/partials/tabs-nav.phtml
+++ b/module/Olcs/view/partials/tabs-nav.phtml
@@ -7,6 +7,15 @@
         <?php echo $this->escapeHtml($this->translate($page->getLabel())); ?>
         <?php echo $page->get('count') ? '('.$page->get('count').')' : '';?>
         </a>
+        <?php if ($page->id == "dashboard-messaging" && $page->get('unreadMessageCount') > 0): ?>
+          <div class="notification-count">
+            <span class="notification-count__number">
+            <?php
+            echo $page->get('unreadMessageCount');
+            ?>
+            </span>
+          </div>
+        <?php endif; ?>
       </li>
     <?php endif; ?>
   <?php endforeach; ?>
diff --git a/test/Olcs/src/Controller/ConversationsControllerTest.php b/test/Olcs/src/Controller/ConversationsControllerTest.php
index 34da9f68f..87bc2d90f 100644
--- a/test/Olcs/src/Controller/ConversationsControllerTest.php
+++ b/test/Olcs/src/Controller/ConversationsControllerTest.php
@@ -17,6 +17,7 @@
 use Laminas\Http\Response as HttpResponse;
 use Laminas\Mvc\Controller\Plugin\Params;
 use Dvsa\Olcs\Transfer\Command\Messaging\Message\Create as CreateMessageCommand;
+use Laminas\Navigation\Navigation;
 use Laminas\View\Model\ViewModel;
 use Mockery as m;
 use Mockery\Adapter\Phpunit\MockeryTestCase as TestCase;
@@ -36,6 +37,7 @@ public function setUp(): void
         $this->mockFlashMessengerHelper = m::mock(FlashMessengerHelperService::class)->makePartial();
         $this->mockTableFactory = m::mock(TableFactory::class)->makePartial();
         $this->mockFormHelperService = m::mock(FormHelperService::class)->makePartial();
+        $this->mockNavigation = m::mock(Navigation::class)->shouldIgnoreMissing();
         $this->mockForm = m::mock(Form::class);
         $this->mockParams = m::mock(Params::class);
 
@@ -49,6 +51,7 @@ public function setUp(): void
         $this->setMockedProperties($reflectionClass, 'flashMessengerHelper', $this->mockFlashMessengerHelper);
         $this->setMockedProperties($reflectionClass, 'tableFactory', $this->mockTableFactory);
         $this->setMockedProperties($reflectionClass, 'formHelperService', $this->mockFormHelperService);
+        $this->setMockedProperties($reflectionClass, 'navigationService', $this->mockNavigation);
 
         $this->mockFormHelperService->shouldReceive('createForm')
                                     ->once()
@@ -120,6 +123,10 @@ public function testViewAction(): void
                                )
                                ->andReturn($table);
 
+        $this->mockNavigation
+            ->shouldReceive('findBy->setActive')
+            ->once();
+
         $view = $this->sut->viewAction();
         $this->assertInstanceOf(ViewModel::class, $view);
         $this->assertEquals($table, $view->getVariable('table'));
diff --git a/test/Olcs/src/Controller/Listener/NavigationTest.php b/test/Olcs/src/Controller/Listener/NavigationTest.php
index 0a5b4fa59..865dace7d 100644
--- a/test/Olcs/src/Controller/Listener/NavigationTest.php
+++ b/test/Olcs/src/Controller/Listener/NavigationTest.php
@@ -4,6 +4,7 @@
 
 use Common\Rbac\User as RbacUser;
 use Common\Service\Cqrs\Query\QuerySender;
+use Laminas\Navigation\Page\AbstractPage;
 use Olcs\Controller\Listener\Navigation as NavigationListener;
 use Mockery as m;
 use Laminas\Http\Header\Referer as HttpReferer;
@@ -11,6 +12,7 @@
 use Laminas\Navigation\Navigation;
 use Laminas\Navigation\Page\Uri;
 use Laminas\Mvc\MvcEvent;
+use Common\Service\Cqrs\Response as CqrsResponse;
 
 /**
  * Class NavigationToggleTest
@@ -34,6 +36,7 @@ public function setUp(): void
     {
         $this->mockNavigation = m::mock(Navigation::class);
         $this->mockQuerySender = m::mock(QuerySender::class);
+        $this->mockResponse = m::mock(CqrsResponse::class);
         $this->mockIdentity = m::mock(RbacUser::class);
         $this->sut = new NavigationListener($this->mockNavigation, $this->mockQuerySender, $this->mockIdentity);
 
@@ -42,6 +45,10 @@ public function setUp(): void
 
         $this->dashboardMessagingKey = 'dashboard-messaging';
         $this->dashboardMessagingPage = new Uri();
+
+        $this->dashboardMenuKey = 'dashboard-licences-applications';
+        $this->mockDashboardMenu = m::mock(AbstractPage::class);
+
         $this->messagingToggle = 'messaging';
     }
 
@@ -60,13 +67,14 @@ public function testOnDispatchWithNoReferalAnonymousUser()
         $this->mockIdentity->shouldReceive('isAnonymous')->once()->withNoArgs()->andReturn(true);
 
         $this->mockIdentity->expects('getUserData')
-            ->once()
+            ->twice()
             ->andReturn([
                 'hasOrganisationSubmittedLicenceApplication' => false,
                 'organisationUsers' => [
                     0 => [
                         'organisation' => [
-                            'isMessagingDisabled' => false
+                            'isMessagingDisabled' => false,
+                            'id' => 1,
                         ]
                     ]
                 ]
@@ -76,16 +84,39 @@ public function testOnDispatchWithNoReferalAnonymousUser()
 
         $this->mockNavigation
             ->shouldReceive('findBy')
-            ->with('id', $this->dashboardPermitsKey)
             ->twice()
+            ->with('id', $this->dashboardPermitsKey)
             ->andReturn($this->dashboardPermitsPage);
 
         $this->mockNavigation
             ->shouldReceive('findBy')
-            ->with('id', $this->dashboardMessagingKey)
             ->twice()
+            ->with('id', $this->dashboardMessagingKey)
+            ->andReturn($this->dashboardMessagingPage);
+
+        $this->mockNavigation
+            ->shouldReceive('findBy')
+            ->with('id', $this->dashboardMenuKey)
+            ->once()
+            ->andReturn($this->mockDashboardMenu);
+
+        $this->mockDashboardMenu
+            ->shouldReceive('findBy')
+            ->with('id', $this->dashboardMessagingKey)
+            ->once()
             ->andReturn($this->dashboardMessagingPage);
 
+        $this->mockIdentity->shouldReceive('getId')
+            ->once()
+            ->andReturn(1);
+
+        $this->mockQuerySender->shouldReceive('send')
+            ->once()
+            ->andReturn($this->mockResponse);
+
+        $this->mockResponse->shouldReceive('getResult')
+            ->once();
+
         $request = m::mock(HttpRequest::class);
         $request->shouldReceive('getHeader')->once()->with('referer')->andReturn(false);
 
@@ -114,14 +145,15 @@ public function testOnDispatchWithNoReferal($eligibleForPermits)
         $this->mockIdentity->shouldReceive('isAnonymous')->once()->withNoArgs()->andReturn(false);
 
         $this->mockIdentity->expects('getUserData')
-            ->twice()
+            ->times(3)
             ->andReturn([
                 'eligibleForPermits' => $eligibleForPermits,
                 'hasOrganisationSubmittedLicenceApplication' => false,
                 'organisationUsers' => [
                     0 => [
                         'organisation' => [
-                            'isMessagingDisabled' => false
+                            'isMessagingDisabled' => false,
+                            'id' => 1,
                         ]
                     ]
                 ]
@@ -129,17 +161,7 @@ public function testOnDispatchWithNoReferal($eligibleForPermits)
 
         $this->mockQuerySender->shouldReceive('featuresEnabled')->with([$this->messagingToggle])->once();
 
-        $this->mockNavigation
-            ->shouldReceive('findBy')
-            ->with('id', $this->dashboardPermitsKey)
-            ->twice()
-            ->andReturn($this->dashboardPermitsPage);
-
-        $this->mockNavigation
-            ->shouldReceive('findBy')
-            ->with('id', $this->dashboardMessagingKey)
-            ->once()
-            ->andReturn($this->dashboardMessagingPage);
+        $this->navigationExpectations();
 
         $request = m::mock(HttpRequest::class);
         $request->shouldReceive('getHeader')->once()->with('referer')->andReturn(false);
@@ -176,13 +198,14 @@ public function testOnDispatchWithGovUkReferalMatch()
         $request->shouldReceive('getHeader')->once()->with('referer')->andReturn($referer);
 
         $this->mockIdentity->expects('getUserData')
-            ->once()
+            ->twice()
             ->andReturn([
                 'hasOrganisationSubmittedLicenceApplication' => false,
                 'organisationUsers' => [
                     0 => [
                         'organisation' => [
-                            'isMessagingDisabled' => false
+                            'isMessagingDisabled' => false,
+                            'id' => 1,
                         ]
                     ]
                 ]
@@ -190,17 +213,7 @@ public function testOnDispatchWithGovUkReferalMatch()
 
         $this->mockQuerySender->shouldReceive('featuresEnabled')->once()->with([$this->messagingToggle]);
 
-        $this->mockNavigation
-            ->shouldReceive('findBy')
-            ->twice()
-            ->with('id', $this->dashboardPermitsKey)
-            ->andReturn($this->dashboardPermitsPage);
-
-        $this->mockNavigation
-            ->shouldReceive('findBy')
-            ->with('id', $this->dashboardMessagingKey)
-            ->once()
-            ->andReturn($this->dashboardMessagingPage);
+        $this->navigationExpectations();
 
         /** @var \Laminas\Mvc\MvcEvent | m\MockInterface $mockEvent */
         $mockEvent = m::mock(\Laminas\Mvc\MvcEvent::class);
@@ -222,30 +235,21 @@ public function testOnDispatchWithNoGovUkReferal($eligibleForPermits)
             ->andReturn(false);
 
         $this->mockIdentity->expects('getUserData')
-            ->twice()
+            ->times(3)
             ->andReturn([
                 'eligibleForPermits' => $eligibleForPermits,
                 'hasOrganisationSubmittedLicenceApplication' => false,
                 'organisationUsers' => [
                     0 => [
                         'organisation' => [
-                            'isMessagingDisabled' => false
+                            'isMessagingDisabled' => false,
+                            'id' => 1,
                         ]
                     ]
                 ]
             ]);
 
-        $this->mockNavigation
-            ->shouldReceive('findBy')
-            ->twice()
-            ->with('id', $this->dashboardPermitsKey)
-            ->andReturn($this->dashboardPermitsPage);
-
-        $this->mockNavigation
-            ->shouldReceive('findBy')
-            ->once()
-            ->with('id', $this->dashboardMessagingKey)
-            ->andReturn($this->dashboardMessagingPage);
+        $this->navigationExpectations();
 
         //mock the http referer - this will be checked against our list of gov.uk referers (and won't match)
         $referer = m::mock(HttpReferer::class);
@@ -274,4 +278,42 @@ public function dpDispatchWithoutMatchedReferer()
             [false],
         ];
     }
+
+    public function navigationExpectations(){
+        $this->mockNavigation
+            ->shouldReceive('findBy')
+            ->twice()
+            ->with('id', $this->dashboardPermitsKey)
+            ->andReturn($this->dashboardPermitsPage);
+
+        $this->mockNavigation
+            ->shouldReceive('findBy')
+            ->once()
+            ->with('id', $this->dashboardMessagingKey)
+            ->andReturn($this->dashboardMessagingPage);
+
+        $this->mockNavigation
+            ->shouldReceive('findBy')
+            ->with('id', $this->dashboardMenuKey)
+            ->once()
+            ->andReturn($this->mockDashboardMenu);
+
+        $this->mockDashboardMenu
+            ->shouldReceive('findBy')
+            ->with('id', $this->dashboardMessagingKey)
+            ->once()
+            ->andReturn($this->dashboardMessagingPage);
+
+        $this->mockIdentity->shouldReceive('getId')
+            ->once()
+            ->andReturn(1);
+
+        $this->mockQuerySender->shouldReceive('send')
+            ->once()
+            ->andReturn($this->mockResponse);
+
+        $this->mockResponse->shouldReceive('getResult')
+            ->once();
+    }
+
 }