diff --git a/src/frontend/app/actions/actions.service.ts b/src/frontend/app/actions/actions.service.ts
index 446a12d83c598fe0d014e18c28172f4df95abaa3..dbb42cfcff22c4b4bb91b3b121f9a56b160c2805 100644
--- a/src/frontend/app/actions/actions.service.ts
+++ b/src/frontend/app/actions/actions.service.ts
@@ -25,6 +25,7 @@ import { SendShippingActionComponent } from './send-shipping-action/send-shippin
 import { redirectInitiatorEntityActionComponent } from './redirect-initiator-entity-action/redirect-initiator-entity-action.component';
 import { Router } from '@angular/router';
 import { SendSignatureBookActionComponent } from './send-signature-book-action/send-signature-book-action.component';
+import { ContinueVisaCircuitActionComponent } from './continue-visa-circuit-action/continue-visa-circuit-action.component';
 
 @Injectable()
 export class ActionsService {
@@ -553,6 +554,29 @@ export class ActionsService {
 
     sendSignatureBookAction(options: any = null) {
         const dialogRef = this.dialog.open(SendSignatureBookActionComponent, {
+            autoFocus: false,
+            disableClose: true,
+            data: this.setDatasActionToSend()
+        });
+        dialogRef.afterClosed().pipe(
+            tap((data: any) => {
+                this.unlockResourceAfterActionModal(data);
+            }),
+            filter((data: string) => data === 'success'),
+            tap((result: any) => {
+                this.endAction(result);
+            }),
+            finalize(() => this.loading = false),
+            catchError((err: any) => {
+                this.notify.handleErrors(err);
+                return of(false);
+            })
+        ).subscribe();
+    }
+
+    continueVisaCircuitAction(options: any = null) {
+        const dialogRef = this.dialog.open(ContinueVisaCircuitActionComponent, {
+            autoFocus: false,
             disableClose: true,
             data: this.setDatasActionToSend()
         });
diff --git a/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.html b/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..7fef51abd2751555822312bce74724b0b2003ab1
--- /dev/null
+++ b/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.html
@@ -0,0 +1,47 @@
+<h1 mat-dialog-title>{{data.action.label}}</h1>
+<div mat-dialog-content>
+    <div *ngIf="loading" class="loading" style="display:flex;height:100%;">
+        <mat-spinner style="margin:auto;"></mat-spinner>
+    </div>
+    <mat-sidenav-container autosize style="height:100%;">
+        <mat-sidenav-content style="background: white;padding:10px;">
+            <div>
+                {{lang.makeActionOn}}
+                <b *ngIf="data.resIds.length === 0" color="primary" class="highlight">{{lang.currentIndexingMail}}</b>
+                <b *ngIf="data.resIds.length == 1" color="primary" class="highlight">{{data.resource.chrono}}</b>
+                <b *ngIf="data.resIds.length > 1" color="primary" class="highlight">{{data.resIds.length}}
+                    {{lang.elements}}</b> ?
+            </div>
+            <div class="alert-message alert-message-info" *ngIf="data.resIds.length == 1 && appVisaWorkflow !== undefined && appVisaWorkflow.getNextVisaUser() !== ''" role="alert" style="margin-top: 30px;"
+                [innerHTML]="lang.sendToDocTo + ' <b>' + appVisaWorkflow.getNextVisaUser().labelToDisplay + '</b>'"></div>
+
+            <div class="alert-message alert-message-info" *ngIf="data.resIds.length == 1 && appVisaWorkflow !== undefined && appVisaWorkflow.getNextVisaUser() === ''" role="alert" style="margin-top: 30px;"
+                [innerHTML]="lang.endWorkflow"></div>
+
+            <div *ngIf="resourcesError.length > 0" class="alert-message alert-message-danger mailList" role="alert">
+                <p>
+                    {{lang.canNotMakeAction}} :
+                </p>
+                <ul>
+                    <li *ngFor="let ressource of resourcesError">
+                        <b>{{ressource.alt_identifier}}</b> : {{lang[ressource.reason]}}
+                    </li>
+                </ul>
+            </div>
+            <app-visa-workflow *ngIf="data.resIds.length == 1" [adminMode]="false" [resId]="data.resIds[0]" #appVisaWorkflow>
+            </app-visa-workflow>
+            <div style="padding-top: 10px;">
+                <app-note-editor #noteEditor [resIds]="data.resIds"></app-note-editor>
+            </div>
+        </mat-sidenav-content>
+        <mat-sidenav position='end' [opened]="data.resIds.length === 1 && noResourceToProcess" mode="side" style="overflow-x:hidden;"
+            autoFocus="false" [ngStyle]="{'width': '400px'}">
+            <app-attachments-list *ngIf="data.resIds.length === 1 && noResourceToProcess" [resId]="data.resIds[0]" (afterActionAttachment)="checkSignatureBook()"></app-attachments-list>
+        </mat-sidenav>
+    </mat-sidenav-container>
+</div>
+<div mat-dialog-actions class="actions">
+    <button mat-raised-button mat-button color="primary" [disabled]="loading || !isValidAction()"
+        (click)="onSubmit()">{{lang.validate}}</button>
+    <button mat-raised-button mat-button [disabled]="loading" [mat-dialog-close]="">{{lang.cancel}}</button>
+</div>
\ No newline at end of file
diff --git a/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.scss b/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..9424211bb4af9027d454165e7417bf86fb23c6eb
--- /dev/null
+++ b/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.scss
@@ -0,0 +1,128 @@
+@import '../../../css/vars.scss';
+
+.fullHeight {
+    height: 70vh;
+}
+
+.fullWidth {
+    width: 70vw;
+}
+
+.highlight {
+    font-size: 110%;
+}
+
+.loading {
+    display: flex;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background: #ffffffb3;
+    z-index: 2;
+    overflow: hidden;
+}
+
+.mailList {
+    ul {
+        font-size: 12px;
+        max-height: 100px;
+        overflow: auto;
+        padding-left: 25px;
+        padding-right: 5px;
+        padding-bottom: 10px;
+        margin-top: 10px;
+    }
+
+    p {
+        //font-size: 18px;
+        margin: 0;
+        text-decoration: underline;
+    }
+
+    b {
+        font-size: 120%;
+    }
+}
+
+.formType {
+    align-items: center;
+    display: flex;
+    margin: 10px;
+    border-radius: 4px;
+    border: solid 1px #ccc;
+    position: relative;
+    padding: 10px;
+
+    &-title {
+        white-space: pre;
+        overflow: hidden;
+        max-width: 85%;
+        text-overflow: ellipsis;
+        z-index: 1;
+        font-size: 10px;
+        font-weight: bold;
+        background: white;
+        position: absolute;
+        top: -7px;
+        left: 10px;
+        padding: 0px;
+        margin: 0px;
+        color: #135f7f;
+    }
+
+    ::ng-deep.mat-form-field-suffix {
+        color: $secondary;
+        font-size: 15px;
+        top: 0;
+    }
+
+    ::ng-deep.mat-form-field-wrapper {
+        padding: 0;
+    }
+}
+
+.priceContent {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+    width: 100%;
+
+    &-label {
+        text-align: right;
+        color: $primary;
+        flex: 1;
+        justify-content: flex-end;
+        display: flex;
+        padding-right: 10px;
+    }
+
+    .mat-form-field {
+        width: 90px !important;
+
+        input {
+            font-weight: bold;
+            user-select: none;
+        }
+    }
+}
+
+.priceInfo {
+    padding-right: 20px;
+    font-size: 10px;
+    opacity: 0.5;
+    width: 100%;
+}
+
+.pjList {
+    display: flex;
+    width: 100%;
+    overflow: auto;
+    flex-direction: column;
+    background: #666;
+
+    img {
+        margin: 10px;
+    }
+}
\ No newline at end of file
diff --git a/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.ts b/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..60131cc7c2b3d406d9f088b375e48ac0149c405f
--- /dev/null
+++ b/src/frontend/app/actions/continue-visa-circuit-action/continue-visa-circuit-action.component.ts
@@ -0,0 +1,84 @@
+import { Component, OnInit, Inject, ViewChild } from '@angular/core';
+import { LANG } from '../../translate.component';
+import { NotificationService } from '../../notification.service';
+import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { HttpClient } from '@angular/common/http';
+import { NoteEditorComponent } from '../../notes/note-editor.component';
+import { tap, finalize, catchError } from 'rxjs/operators';
+import { of } from 'rxjs';
+import { FunctionsService } from '../../../service/functions.service';
+import { VisaWorkflowComponent } from '../../visa/visa-workflow.component';
+
+@Component({
+    templateUrl: "continue-visa-circuit-action.component.html",
+    styleUrls: ['continue-visa-circuit-action.component.scss'],
+})
+export class ContinueVisaCircuitActionComponent implements OnInit {
+
+    lang: any = LANG;
+    loading: boolean = false;
+
+    resourcesWarnings: any[] = [];
+    resourcesError: any[] = [];
+
+    noResourceToProcess: boolean = null;
+
+    @ViewChild('noteEditor', { static: true }) noteEditor: NoteEditorComponent;
+    @ViewChild('appVisaWorkflow', { static: false }) appVisaWorkflow: VisaWorkflowComponent;
+
+    constructor(
+        public http: HttpClient, 
+        private notify: NotificationService, 
+        public dialogRef: MatDialogRef<ContinueVisaCircuitActionComponent>, 
+        @Inject(MAT_DIALOG_DATA) public data: any,
+        public functions: FunctionsService) { }
+
+    async ngOnInit(): Promise<void> {
+        this.loading = true;
+        await this.checkSignatureBook();
+        this.loading = false;
+    }
+
+    checkSignatureBook() {
+        this.resourcesError = [];
+        this.resourcesWarnings = [];
+
+        return new Promise((resolve, reject) => {
+            this.http.post('../../rest/resourcesList/users/' + this.data.userId + '/groups/' + this.data.groupId + '/baskets/' + this.data.basketId + '/actions/' + this.data.action.id + '/checkContinueVisaCircuit', { resources: this.data.resIds })
+            .subscribe((data: any) => {
+                console.log(data);
+                resolve(true);
+            }, (err: any) => {
+                this.notify.handleSoftErrors(err);
+            });
+        });
+    }
+
+    async onSubmit() {
+        const realResSelected: number[] = this.data.resIds.filter((resId: any) => this.resourcesError.map(resErr => resErr.res_id).indexOf(resId) === -1);
+        this.executeAction(realResSelected);
+    }
+
+    executeAction(realResSelected: number[]) {
+
+        this.http.put(this.data.processActionRoute, {resources : realResSelected, note : this.noteEditor.getNoteContent()}).pipe(
+            tap((data: any) => {
+                if (!data) {
+                    this.dialogRef.close('success');
+                }
+                if (data && data.errors != null) {
+                    this.notify.error(data.errors);
+                }
+            }),
+            finalize(() => this.loading = false),
+            catchError((err: any) => {
+                this.notify.handleErrors(err);
+                return of(false);
+            })
+        ).subscribe();
+    }
+
+    isValidAction() {
+        return true;
+    }
+}
diff --git a/src/frontend/app/actions/send-signature-book-action/send-signature-book-action.component.ts b/src/frontend/app/actions/send-signature-book-action/send-signature-book-action.component.ts
index 2e0bb00af9dcbf546af814c741a20d10d85d8475..e3aaa19e548e91b6cf53dc6069b378bcfbdfd375 100644
--- a/src/frontend/app/actions/send-signature-book-action/send-signature-book-action.component.ts
+++ b/src/frontend/app/actions/send-signature-book-action/send-signature-book-action.component.ts
@@ -26,19 +26,21 @@ export class SendSignatureBookActionComponent implements OnInit {
     @ViewChild('appVisaWorkflow', { static: false }) appVisaWorkflow: VisaWorkflowComponent;
 
     constructor(
-        public http: HttpClient, 
-        private notify: NotificationService, 
-        public dialogRef: MatDialogRef<SendSignatureBookActionComponent>, 
+        public http: HttpClient,
+        private notify: NotificationService,
+        public dialogRef: MatDialogRef<SendSignatureBookActionComponent>,
         @Inject(MAT_DIALOG_DATA) public data: any,
         public functions: FunctionsService) { }
 
     async ngOnInit(): Promise<void> {
-        this.loading = true;
-        await this.checkSignatureBook();
-        this.loading = false;
-        await this.appVisaWorkflow.loadWorkflow(this.data.resIds[0]);
-        if (this.appVisaWorkflow.emptyWorkflow()) {
-            this.appVisaWorkflow.loadDefaultWorkflow(this.data.resIds[0]);
+        if (this.data.resIds.length > 0) {
+            this.loading = true;
+            await this.checkSignatureBook();
+            this.loading = false;
+            await this.appVisaWorkflow.loadWorkflow(this.data.resIds[0]);
+            if (this.appVisaWorkflow.emptyWorkflow()) {
+                this.appVisaWorkflow.loadDefaultWorkflow(this.data.resIds[0]);
+            }
         }
     }
 
@@ -47,25 +49,31 @@ export class SendSignatureBookActionComponent implements OnInit {
 
         return new Promise((resolve, reject) => {
             this.http.post('../../rest/resourcesList/users/' + this.data.userId + '/groups/' + this.data.groupId + '/baskets/' + this.data.basketId + '/actions/' + this.data.action.id + '/checkSignatureBook', { resources: this.data.resIds })
-            .subscribe((data: any) => {                
-                if (!this.functions.empty(data.resourcesInformations.noAttachment)) {
-                    this.resourcesError = data.resourcesInformations.noAttachment;
-                }
-                this.noResourceToProcess = this.data.resIds.length === this.resourcesError.length;
-                resolve(true);
-            }, (err: any) => {
-                this.notify.handleSoftErrors(err);
-            });
+                .subscribe((data: any) => {
+                    if (!this.functions.empty(data.resourcesInformations.noAttachment)) {
+                        this.resourcesError = data.resourcesInformations.noAttachment;
+                    }
+                    this.noResourceToProcess = this.data.resIds.length === this.resourcesError.length;
+                    resolve(true);
+                }, (err: any) => {
+                    this.notify.handleSoftErrors(err);
+                });
         });
     }
 
     async onSubmit() {
         this.loading = true;
-        if ( this.data.resIds.length === 0) {
-            // this.indexDocumentAndExecuteAction();
+        if (this.data.resIds.length === 0) {
+            let res = await this.indexDocument();
+            if (res) {
+                res = await this.appVisaWorkflow.saveVisaWorkflow(this.data.resIds);
+            }
+            if (res) {
+                this.executeAction(this.data.resIds);
+            }
         } else {
             const realResSelected: number[] = this.data.resIds.filter((resId: any) => this.resourcesError.map(resErr => resErr.res_id).indexOf(resId) === -1);
-        
+
             const res = await this.appVisaWorkflow.saveVisaWorkflow(realResSelected);
 
             if (res) {
@@ -75,27 +83,25 @@ export class SendSignatureBookActionComponent implements OnInit {
         this.loading = false;
     }
 
-    /* indexDocumentAndExecuteAction() {
-        
-        this.http.post('../../rest/resources', this.data.resource).pipe(
-            tap((data: any) => {
-                this.data.resIds = [data.resId];
-            }),
-            exhaustMap(() => this.http.put(this.data.indexActionRoute, {resource : this.data.resIds[0], note : this.noteEditor.getNoteContent()})),
-            tap(() => {
-                this.dialogRef.close('success');
-            }),
-            finalize(() => this.loading = false),
-            catchError((err: any) => {
-                this.notify.handleErrors(err);
-                return of(false);
-            })
-        ).subscribe()
-    } */
+    indexDocument() {
+        return new Promise((resolve, reject) => {
+            this.http.post('../../rest/resources', this.data.resource).pipe(
+                tap((data: any) => {
+                    this.data.resIds = [data.resId];
+                    resolve(true);
+                }),
+                catchError((err: any) => {
+                    this.notify.handleErrors(err);
+                    resolve(false);
+                    return of(false);
+                })
+            ).subscribe();
+        });
+    }
 
     executeAction(realResSelected: number[]) {
 
-        this.http.put(this.data.processActionRoute, {resources : realResSelected, note : this.noteEditor.getNoteContent()}).pipe(
+        this.http.put(this.data.processActionRoute, { resources: realResSelected, note: this.noteEditor.getNoteContent() }).pipe(
             tap((data: any) => {
                 if (!data) {
                     this.dialogRef.close('success');
diff --git a/src/frontend/app/app.module.ts b/src/frontend/app/app.module.ts
index d33d36f3ac7ac9d8708695667e902d529d322d57..b2fcc3dcd1a862e2e12949191435ebedd89ea3c6 100755
--- a/src/frontend/app/app.module.ts
+++ b/src/frontend/app/app.module.ts
@@ -57,6 +57,7 @@ import { RedirectActionComponent }               from './actions/redirect-action
 import { SendShippingActionComponent }               from './actions/send-shipping-action/send-shipping-action.component';
 import { redirectInitiatorEntityActionComponent } from './actions/redirect-initiator-entity-action/redirect-initiator-entity-action.component';
 import { SendSignatureBookActionComponent }               from './actions/send-signature-book-action/send-signature-book-action.component';
+import { ContinueVisaCircuitActionComponent }               from './actions/continue-visa-circuit-action/continue-visa-circuit-action.component';
 
 import { FiltersListComponent }                 from './list/filters/filters-list.component';
 import { FiltersToolComponent }                 from './list/filters/filters-tool.component';
@@ -149,6 +150,7 @@ import { AddAvisModelModalComponent } from './avis/addAvisModel/add-avis-model-m
         SendShippingActionComponent,
         redirectInitiatorEntityActionComponent,
         SendSignatureBookActionComponent,
+        ContinueVisaCircuitActionComponent,
         ActionsListComponent,
         PrintSeparatorComponent,
         FolderPinnedComponent,
@@ -198,6 +200,7 @@ import { AddAvisModelModalComponent } from './avis/addAvisModel/add-avis-model-m
         UpdateDepartureDateActionComponent,
         SendExternalSignatoryBookActionComponent,
         SendExternalNoteBookActionComponent,
+        ContinueVisaCircuitActionComponent,
         ProcessActionComponent,
         RedirectActionComponent,
         SendShippingActionComponent,
diff --git a/src/frontend/app/avis/avis-workflow.component.ts b/src/frontend/app/avis/avis-workflow.component.ts
index 2af2852be81bdee928cae15009b4aa8f3fc8052c..f212d19468e497fd0d212048a4cab91cc7b195d4 100644
--- a/src/frontend/app/avis/avis-workflow.component.ts
+++ b/src/frontend/app/avis/avis-workflow.component.ts
@@ -249,8 +249,8 @@ export class AvisWorkflowComponent implements OnInit {
                         return of(false);
                     })
                 ).subscribe();
-            } else {
-                this.http.put(`../../rest/listinstances`, [{ resId: this.resId, listInstances: this.avisWorkflow.items }]).pipe(
+            } else {     
+                this.http.put(`../../rest/listinstances`, {resources: [{ resId: this.resId, listInstances: this.avisWorkflow.items }]} ).pipe(
                     tap((data: any) => {
                         this.avisWorkflowClone = JSON.parse(JSON.stringify(this.avisWorkflow.items));
                         this.notify.success(this.lang.avisWorkflowUpdated);
diff --git a/src/frontend/app/visa/visa-workflow.component.html b/src/frontend/app/visa/visa-workflow.component.html
index 4da43987eedbea8ba95405720c4497b7094e829e..dbabf5344ef934dce52374bf24de4288330ef2d9 100644
--- a/src/frontend/app/visa/visa-workflow.component.html
+++ b/src/frontend/app/visa/visa-workflow.component.html
@@ -54,6 +54,8 @@
             [cdkDragDisabled]="!adminMode || !functions.empty(diffusion.process_date)"
             [class.notDraggable]="!adminMode || !functions.empty(diffusion.process_date)"
             [class.notEditable]="!adminMode" [class.processed]="diffusion.process_date != null">
+            <mat-icon *ngIf="getCurrentVisaUser().item_id === diffusion.item_id" class="fa fa-chevron-right fa-2x" mat-list-icon color="accent">
+            </mat-icon>
             <mat-icon
                 [ngClass]="{'fa fa-user fa-2x': functions.empty(diffusion.picture),'avatar': !functions.empty(diffusion.picture)}"
                 mat-list-icon color="primary"
diff --git a/src/frontend/app/visa/visa-workflow.component.ts b/src/frontend/app/visa/visa-workflow.component.ts
index d582ec9f34835858fd1d0fd8665bf8d4fefd23d3..c0f98a9c35c840a56fd314744ee95d4b4b207775 100644
--- a/src/frontend/app/visa/visa-workflow.component.ts
+++ b/src/frontend/app/visa/visa-workflow.component.ts
@@ -177,11 +177,11 @@ export class VisaWorkflowComponent implements OnInit {
         if (!this.linkedToMaarchParapheur) {
             if (this.visaModelListNotLoaded) {
                 await this.loadVisaSignUsersList();
-    
+
                 await this.loadVisaModelListByResource();
-    
+
                 this.searchVisaSignUser.reset();
-    
+
                 this.visaModelListNotLoaded = false;
             }
         }
@@ -220,29 +220,29 @@ export class VisaWorkflowComponent implements OnInit {
         this.visaWorkflow.items = [];
         return new Promise((resolve, reject) => {
             this.http.get("../../rest/resources/" + resId + "/visaCircuit")
-            .subscribe((data: any) => {
-                data.forEach((element: any) => {
-                    this.visaWorkflow.items.push(
-                        {
-                            ...element,
-                            difflist_type: 'VISA_CIRCUIT'
-                        });
+                .subscribe((data: any) => {
+                    data.forEach((element: any) => {
+                        this.visaWorkflow.items.push(
+                            {
+                                ...element,
+                                difflist_type: 'VISA_CIRCUIT'
+                            });
+                    });
+                    this.visaWorkflowClone = JSON.parse(JSON.stringify(this.visaWorkflow.items))
+                    this.loading = false;
+                    resolve(true);
+                }, (err: any) => {
+                    this.notify.handleErrors(err);
                 });
-                this.visaWorkflowClone = JSON.parse(JSON.stringify(this.visaWorkflow.items))
-                this.loading = false;
-                resolve(true);
-            }, (err: any) => {
-                this.notify.handleErrors(err);
-            });
-        });  
+        });
     }
 
     loadDefaultWorkflow(resId: number) {
         this.loading = true;
         this.visaWorkflow.items = [];
-        this.http.get("../../rest/resources/" + resId + "/visaCircuit")
+        this.http.get("../../rest/resources/" + resId + "/defaultCircuit?circuit=visaCircuit")
             .subscribe((data: any) => {
-                data.forEach((element: any) => {
+                data.circuit.items.forEach((element: any) => {
                     this.visaWorkflow.items.push(
                         {
                             ...element,
@@ -299,6 +299,26 @@ export class VisaWorkflowComponent implements OnInit {
         return this.visaWorkflow.items;
     }
 
+    getCurrentVisaUser() {
+
+        const index = this.visaWorkflow.items.map((item: any) => item.listinstance_id).indexOf(this.getLastVisaUser().listinstance_id);
+
+        return !this.functions.empty(this.visaWorkflow.items[index + 1]) ? this.visaWorkflow.items[index + 1] : '';
+    }
+
+    getNextVisaUser() {
+
+        const index = this.visaWorkflow.items.map((item: any) => item.listinstance_id).indexOf(this.getLastVisaUser().listinstance_id);
+
+        return !this.functions.empty(this.visaWorkflow.items[index + 2]) ? this.visaWorkflow.items[index + 2] : '';
+    }
+
+    getLastVisaUser() {
+        let arrOnlyProcess = this.visaWorkflow.items.filter((item: any) => !this.functions.empty(item.process_date));
+
+        return !this.functions.empty(arrOnlyProcess[arrOnlyProcess.length - 1]) ? arrOnlyProcess[arrOnlyProcess.length - 1] : '';
+    }
+
     checkExternalSignatoryBook() {
         return this.visaWorkflow.items.filter((item: any) => this.functions.empty(item.externalId)).map((item: any) => item.labelToDisplay);
     }
@@ -320,11 +340,11 @@ export class VisaWorkflowComponent implements OnInit {
             } else if (this.isValidWorkflow()) {
                 const arrVisa = resIds.map(resId => {
                     return {
-                        resId : resId,
-                        listInstances : this.visaWorkflow.items
+                        resId: resId,
+                        listInstances: this.visaWorkflow.items
                     }
                 });
-                this.http.put(`../../rest/listinstances`, arrVisa).pipe(
+                this.http.put(`../../rest/circuits/visaCircuit`, { resources: arrVisa }).pipe(
                     tap((data: any) => {
                         this.visaWorkflowClone = JSON.parse(JSON.stringify(this.visaWorkflow.items));
                         this.notify.success(this.lang.visaWorkflowUpdated);
@@ -339,7 +359,7 @@ export class VisaWorkflowComponent implements OnInit {
                 this.notify.error(this.lang.signUserRequired);
                 resolve(false);
             }
-        });        
+        });
     }
 
     addItemToWorkflow(item: any, maarchParapheurMode = false) {
@@ -358,8 +378,8 @@ export class VisaWorkflowComponent implements OnInit {
                 this.getMaarchParapheurUserAvatar(item.externalId.maarchParapheur, this.visaWorkflow.items.length - 1);
             }
         } else if (item.type === 'user') {
-            
-            
+
+
             this.visaWorkflow.items.push({
                 item_id: item.id,
                 item_type: 'user',
@@ -387,7 +407,7 @@ export class VisaWorkflowComponent implements OnInit {
                                 item_entity: itemTemplate.descriptionToDisplay,
                                 difflist_type: 'VISA_CIRCUIT',
                                 signatory: false,
-                                requested_signature: false
+                                requested_signature: itemTemplate.item_mode === 'sign' ? true : false
                             }
                         })
                     );
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 4a843bf454e047c5d73a6f69b0f734b1c426fa19..e1a43a254932424f5667db5a749367bbbdca26e1 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1406,7 +1406,7 @@ export const LANG_EN = {
     "closeFullscreen" : "Disable fullscreen",
     "hasNoEntity": "Those mails do not have initiator entity",
     "destUserSetToDefault": "Assignee will be the assignee of the initiator entity template list",
-    "resetVisaWorkflow": "Processing date will be reset",
     "interruptVisaWorkflow": "The following users will not be able to target mail",
     "rejectVisaBack": "Document will be send to the previous user",
+    "sendToDocTo": "You will send this document to",
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 33a119c02619e7a4da5833a1eda86f2531673e5c..2afce0a05ee42d230a24378be22936f6dbc80a50 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1449,4 +1449,6 @@ export const LANG_FR = {
     "resetVisaWorkflow": "Les dates de visa et signature seront réinitialisées",
     "interruptVisaWorkflow": "Les utilisateurs suivants ne pourront pas viser le courrier",
     "rejectVisaBack": "Le courrier sera envoyé à la dernière personne ayant visé",
+    "sendToDocTo": "Vous allez transmettre ce document à",
+    "endWorkflow": "Vous allez terminer le circuit",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 849ef8e846a03fd314001a47a3f7e963eb65fdc6..812923c7e2436d65bf5fd840aee592b59f5650a2 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1434,4 +1434,6 @@ export const LANG_NL = {
     "resetVisaWorkflow": "Processing date will be reset", //_TO_TRANSLATE
     "interruptVisaWorkflow": "The following users will not be able to target mail", //_TO_TRANSLATE
     "rejectVisaBack": "Document will be send to the previous user", //_TO_TRANSLATE
+    "sendToDocTo": "You will send this document to", //_TO_TRANSLATE
+    "endWorkflow": "You will end this workflow", //_TO_TRANSLATE
 };