diff --git a/sql/structure.sql b/sql/structure.sql
index 7e64bba36c93c19324da2b060ebdd64778ef2a97..463970a9f080086afc6164344bae0d8efb4281ad 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -260,6 +260,7 @@ CREATE TABLE workflows
     note text DEFAULT NULL,
     process_date timestamp without time zone DEFAULT NULL,
     digital_signature_id text,
+    delegate INTEGER,
     CONSTRAINT workflow_pkey PRIMARY KEY (id)
 )
 WITH (OIDS=FALSE);
diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php
index 508468180ceb009b87724a0b2e49a11403b129a2..095f5208af62e75bda9f9d2e97d4ce3a3329c924 100755
--- a/src/app/document/controllers/DocumentController.php
+++ b/src/app/document/controllers/DocumentController.php
@@ -176,7 +176,7 @@ class DocumentController
             }
         }
 
-        $workflow = WorkflowModel::getByDocumentId(['select' => ['id', 'user_id', 'mode', 'process_date', 'signature_mode', 'status', 'note', 'signature_positions', 'date_positions'], 'documentId' => $args['id'], 'orderBy' => ['"order"']]);
+        $workflow = WorkflowModel::getByDocumentId(['select' => ['id', 'user_id', 'mode', 'process_date', 'signature_mode', 'status', 'note', 'signature_positions', 'date_positions', 'delegate'], 'documentId' => $args['id'], 'orderBy' => ['"order"']]);
         $currentFound = false;
         $currentId = null;
         foreach ($workflow as $value) {
@@ -197,6 +197,12 @@ class DocumentController
                 unset($workflowExternalInformations['informations']['yousignFileId'], $workflowExternalInformations['informations']['yousignProcedureId']);
             }
 
+            $noteCreator = null;
+            if (!empty($value['note'])) {
+                $noteCreatorId = !empty($value['delegate']) ? $value['delegate'] : $value['user_id'];
+                $noteCreator   = UserModel::getLabelledUserById(['id' => $noteCreatorId]);
+            }
+
             $formattedDocument['workflow'][] = [
                 'userId'                => $value['user_id'],
                 'userDisplay'           => $userLabel,
@@ -208,6 +214,7 @@ class DocumentController
                 'datePositions'         => json_decode($value['date_positions'], true),
                 'userSignatureModes'    => !empty($userSignaturesModes['signature_modes']) ? json_decode($userSignaturesModes['signature_modes'], true) : [],
                 'note'                  => $value['note'],
+                'noteCreator'           => $noteCreator,
                 'status'                => $value['status'],
                 'externalInformations'  => $workflowExternalInformations
             ];
@@ -1069,6 +1076,10 @@ class DocumentController
         $set = ['process_date' => 'CURRENT_TIMESTAMP', 'status' => $args['status']];
         if (!empty($args['note'])) {
             $set['note'] = $args['note'];
+            $currentWorkflow = WorkflowModel::getCurrentStep(['select' => ['user_id'], 'documentId' => $args['id']]);
+            if ($currentWorkflow['user_id'] != $GLOBALS['id']) {
+                $set['delegate'] = $GLOBALS['id'];
+            }
         }
         WorkflowModel::update([
             'set'   => $set,
diff --git a/src/frontend/app/document/document.component.html b/src/frontend/app/document/document.component.html
index c2f3726183b34b281b7f72cfbcd178e68773a146..3c866fa1be3217af2eb20c40cc1018fbeed9edad 100755
--- a/src/frontend/app/document/document.component.html
+++ b/src/frontend/app/document/document.component.html
@@ -74,7 +74,7 @@
             <ng-container *ngFor="let step of mainDocument.workflow">
                 <div *ngIf="step.note">
                     <div class="note-creator">
-                        {{step.userDisplay}} ({{step.processDate}}) :
+                        {{step.noteCreator}} ({{step.processDate}}) :
                     </div>
                     <div class="note-content">
                         {{step.note}}