diff --git a/sql/structure.sql b/sql/structure.sql
index f8def1fef7e56badd73cac5353f413b06f620362..e0ea8535263c60c41632ba0cd6929d8ddb574efb 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -125,7 +125,7 @@ CREATE TABLE history
   object_type CHARACTER VARYING(128) NOT NULL,
   object_id  CHARACTER VARYING(32) NOT NULL,
   type CHARACTER VARYING(64) NOT NULL,
-  user_id INTEGER NOT NULL,
+  "user" text NOT NULL,
   date TIMESTAMP without TIME ZONE NOT NULL,
   message text NOT NULL,
   data jsonb NOT NULL DEFAULT '{}',
diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php
index 82ab0c896c8749dce6133c8897d0ee4c9f8b2a41..e665e77b9c15b4bcc364e692c8a017aeee8060e1 100755
--- a/src/app/document/controllers/DocumentController.php
+++ b/src/app/document/controllers/DocumentController.php
@@ -156,10 +156,9 @@ class DocumentController
                 $date = new \DateTime($document['process_date']);
                 $value['process_date'] = $date->format('d-m-Y H:i');
             }
-            $user = UserModel::getById(['select' => ['id', 'firstname', 'lastname'], 'id' => $value['user_id']]);
             $formattedDocument['workflow'][] = [
-                'userId'        => $user['id'],
-                'userDisplay'   => "{$user['firstname']} {$user['lastname']}",
+                'userId'        => $value['user_id'],
+                'userDisplay'   => UserModel::getLabelledUserById(['id' => $value['user_id']]),
                 'mode'          => $value['mode'],
                 'processDate'   => $value['process_date'],
                 'current'       => !$currentFound && empty($value['process_date'])
diff --git a/src/app/history/controllers/HistoryController.php b/src/app/history/controllers/HistoryController.php
index d88b181d2ce7a570ccb60daaf0a854e65fa1ad3b..2eb0660db175dae144bb345a1ff2542226dbf901 100755
--- a/src/app/history/controllers/HistoryController.php
+++ b/src/app/history/controllers/HistoryController.php
@@ -38,7 +38,7 @@ class HistoryController
             'object_type'   => $args['objectType'],
             'object_id'     => $args['objectId'],
             'type'          => $args['type'],
-            'user_id'       => $GLOBALS['id'],
+            'user'          => UserModel::getLabelledUserById(['id' => $GLOBALS['id']]),
             'message'       => $args['message'],
             'data'          => empty($args['data']) ? '{}' : json_encode($args['data']),
             'ip'            => empty($_SERVER['REMOTE_ADDR']) ? 'script' : $_SERVER['REMOTE_ADDR']
@@ -59,7 +59,7 @@ class HistoryController
         }
 
         $history = HistoryModel::get([
-            'select'    => ['code', 'type', 'user_id', 'date', 'message', 'data'],
+            'select'    => ['code', 'type', '"user"', 'date', 'message', 'data'],
             'where'     => ["(object_type = ? AND object_id = ?) OR (data->>'mainDocumentId' = ?)"],
             'data'      => ['main_documents', $args['id'], $args['id']],
             'orderBy'   => ['date']
@@ -76,13 +76,12 @@ class HistoryController
         }
 
         foreach ($history as $value) {
-            $user = UserModel::getById(['select' => ['login'], 'id' => $value['user_id']]);
             $date = new \DateTime($value['date']);
 
             $formattedHistory[] = [
                 'code'          => $value['code'],
                 'type'          => $value['type'],
-                'userLogin'     => $user['login'],
+                'user'          => $value['user'],
                 'date'          => $date->format('d-m-Y H:i'),
                 'message'       => preg_replace($langKeys, $langValues, $value['message']),
                 'data'          => json_decode($value['data'], true)
diff --git a/src/app/history/models/HistoryModel.php b/src/app/history/models/HistoryModel.php
index 949d2a0fcdbb4c8d651b5bf0b10f4d9fb42d3066..ba27183800f728b463e57d24d1fb0b1f3b3abafa 100755
--- a/src/app/history/models/HistoryModel.php
+++ b/src/app/history/models/HistoryModel.php
@@ -40,9 +40,8 @@ class HistoryModel
 
     public static function create(array $args)
     {
-        ValidatorModel::notEmpty($args, ['code', 'object_type', 'object_id', 'type', 'user_id', 'message', 'data', 'ip']);
-        ValidatorModel::stringType($args, ['code', 'objectType', 'type', 'message', 'data', 'ip']);
-        ValidatorModel::intVal($args, ['user_id']);
+        ValidatorModel::notEmpty($args, ['code', 'object_type', 'object_id', 'type', 'user', 'message', 'data', 'ip']);
+        ValidatorModel::stringType($args, ['code', 'object_type', 'type', 'user', 'message', 'data', 'ip']);
 
         DatabaseModel::insert([
             'table'         => 'history',
@@ -51,7 +50,7 @@ class HistoryModel
                 'object_type'   => $args['object_type'],
                 'object_id'     => $args['object_id'],
                 'type'          => $args['type'],
-                'user_id'       => $args['user_id'],
+                '"user"'        => $args['user'],
                 'date'          => 'CURRENT_TIMESTAMP',
                 'message'       => $args['message'],
                 'data'          => $args['data'],