diff --git a/rest/index.php b/rest/index.php
index 4b64ff4b637ad4d5d423cbff2ffb131b4b1b08cd..2e5a34793e73c333926567f48a16be5c78e05de2 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -80,7 +80,7 @@ $app->get('/autocomplete/correspondents', \SrcCore\controllers\AutoCompleteContr
 $app->get('/autocomplete/contacts/groups', \SrcCore\controllers\AutoCompleteController::class . ':getContactsForGroups');
 $app->get('/autocomplete/contacts/company', \SrcCore\controllers\AutoCompleteController::class . ':getContactsCompany');
 $app->get('/autocomplete/users/administration', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForAdministration');
-$app->get('/autocomplete/users/visa', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForVisa');
+$app->get('/autocomplete/users/circuit', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForCircuit');
 $app->get('/autocomplete/entities', \SrcCore\controllers\AutoCompleteController::class . ':getEntities');
 $app->get('/autocomplete/statuses', \SrcCore\controllers\AutoCompleteController::class . ':getStatuses');
 $app->get('/autocomplete/banAddresses', \SrcCore\controllers\AutoCompleteController::class . ':getBanAddresses');
@@ -345,6 +345,7 @@ $app->get('/resources/{resId}/templates', \Template\controllers\TemplateControll
 $app->get('/resources/{resId}/listInstance', \Entity\controllers\ListInstanceController::class . ':getByResId');
 $app->get('/resources/{resId}/visaCircuit', \Entity\controllers\ListInstanceController::class . ':getVisaCircuitByResId');
 $app->get('/resources/{resId}/opinionCircuit', \Entity\controllers\ListInstanceController::class . ':getOpinionCircuitByResId');
+$app->get('/resources/{resId}/availableCircuits', \Entity\controllers\ListTemplateController::class . ':getAvailableCircuitsByResId');
 $app->get('/res/{resId}/acknowledgementReceipt/{id}', \AcknowledgementReceipt\controllers\AcknowledgementReceiptController::class . ':getAcknowledgementReceipt');
 $app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus');
 $app->post('/res/list', \Resource\controllers\ResController::class . ':getList');
diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php
index 308bef72ac0120890b295cefd74b2126c46a0b87..170bfb81fa558cb8d217c684b88658b4d68c936b 100755
--- a/src/app/contact/controllers/ContactController.php
+++ b/src/app/contact/controllers/ContactController.php
@@ -34,24 +34,6 @@ use User\models\UserModel;
 
 class ContactController
 {
-    const MAPPING_FIELDS2 = [
-        'civility'              => 'civility',
-        'firstname'             => 'firstname',
-        'lastname'              => 'lastname',
-        'company'               => 'company',
-        'department'            => 'department',
-        'function'              => 'function',
-        'address_number'        => 'addressNumber',
-        'address_street'        => 'addressStreet',
-        'address_additional1'   => 'addressAdditional1',
-        'address_additional2'   => 'addressAdditional2',
-        'address_postcode'      => 'addressPostcode',
-        'address_town'          => 'addressTown',
-        'address_country'       => 'addressCountry',
-        'email'                 => 'email',
-        'phone'                 => 'phone',
-        'notes'                 => 'notes'
-    ];
     const MAPPING_FIELDS = [
         'civility'              => 'civility',
         'firstname'             => 'firstname',
diff --git a/src/app/entity/controllers/ListTemplateController.php b/src/app/entity/controllers/ListTemplateController.php
index 1a32cd819863f08d8c520e41b39fa5773ca8d999..f99b2b7864d3a93b0470b6f3156acaa75ed6806f 100755
--- a/src/app/entity/controllers/ListTemplateController.php
+++ b/src/app/entity/controllers/ListTemplateController.php
@@ -18,6 +18,7 @@ use Entity\models\EntityModel;
 use Entity\models\ListTemplateModel;
 use Group\controllers\PrivilegeController;
 use History\controllers\HistoryController;
+use Resource\models\ResModel;
 use Respect\Validation\Validator;
 use Slim\Http\Request;
 use Slim\Http\Response;
@@ -504,6 +505,41 @@ class ListTemplateController
         return $response->withJson(['roles' => array_values($roles)]);
     }
 
+    public function getAvailableCircuitsByResId(Request $request, Response $response, array $args)
+    {
+        $queryParams = $request->getQueryParams();
+
+        if (!Validator::stringType()->notEmpty()->validate($queryParams['circuit'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Query params circuit is empty']);
+        }
+
+        $circuit = $queryParams['circuit'] == 'opinion' ? 'AVIS_CIRCUIT' : 'VISA_CIRCUIT';
+        $resource = ResModel::getById(['resId' => $args['resId'], 'select' => ['destination']]);
+
+        $where = ['object_type = ?'];
+        $data = [$circuit];
+        if (!empty($resource['destination'])) {
+            $where[] = '(object_id = ? OR object_id like ?)';
+            $data[] = $resource['destination'];
+            $data[] = "{$circuit}_%";
+            $orderBy = ["object_id='{$resource['destination']}' DESC", 'title'];
+        } else {
+            $where[] = 'object_id like ?';
+            $data[] = "{$circuit}_%";
+            $orderBy = ['title'];
+        }
+
+        $circuits = [];
+        $listTemplates = ListTemplateModel::get(['select' => ['*'], 'where' => $where, 'data' => $data, 'orderBy' => $orderBy]);
+        foreach ($listTemplates as $value) {
+            $circuits[$value['object_id']] = ['id' => $value['id'], 'title' => $value['title']];
+        }
+
+        $circuits = array_values($circuits);
+
+        return $response->withJson(['circuits' => $circuits]);
+    }
+
     private static function checkItems(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['items']);
diff --git a/src/app/entity/models/ListTemplateModelAbstract.php b/src/app/entity/models/ListTemplateModelAbstract.php
index 8e7a5dba1cab7ec6226b6f6a2ebfc68a1184722c..17ea6fd0aa2fe0092c177fec08ed95239dc7b7cf 100755
--- a/src/app/entity/models/ListTemplateModelAbstract.php
+++ b/src/app/entity/models/ListTemplateModelAbstract.php
@@ -19,15 +19,16 @@ use SrcCore\models\DatabaseModel;
 
 abstract class ListTemplateModelAbstract
 {
-    public static function get(array $aArgs = [])
+    public static function get(array $args = [])
     {
-        ValidatorModel::arrayType($aArgs, ['select', 'where', 'data']);
+        ValidatorModel::arrayType($args, ['select', 'where', 'data']);
 
         $aListTemplates = DatabaseModel::select([
-            'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
+            'select'    => empty($args['select']) ? ['*'] : $args['select'],
             'table'     => ['listmodels'],
-            'where'     => $aArgs['where'],
-            'data'      => $aArgs['data']
+            'where'     => $args['where'],
+            'data'      => $args['data'],
+            'order_by'  => empty($args['orderBy']) ? [] : $args['orderBy']
         ]);
 
         return $aListTemplates;
diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php
index 77996c96c3d38f8a90489922b57c68fbca536f0b..6ff31de499d5a91834618e5c87b328797fe3ca17 100755
--- a/src/core/controllers/AutoCompleteController.php
+++ b/src/core/controllers/AutoCompleteController.php
@@ -392,12 +392,17 @@ class AutoCompleteController
         return $response->withJson($data);
     }
 
-    public static function getUsersForVisa(Request $request, Response $response)
+    public static function getUsersForCircuit(Request $request, Response $response)
     {
-        $data = $request->getQueryParams();
-        $check = Validator::stringType()->notEmpty()->validate($data['search']);
-        if (!$check) {
-            return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
+        $queryParams = $request->getQueryParams();
+
+        if (!Validator::stringType()->notEmpty()->validate($queryParams['search'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Query params search is empty']);
+        }
+
+        $services = ['visa_documents', 'sign_document'];
+        if (!empty($queryParams['circuit']) && $queryParams['circuit'] == 'opinion') {
+            $services = ['avis_documents'];
         }
 
         $excludedUsers = ['superadmin'];
@@ -406,7 +411,7 @@ class AutoCompleteController
         $fields = AutoCompleteController::getUnsensitiveFieldsForRequest(['fields' => $fields]);
 
         $requestData = AutoCompleteController::getDataForRequest([
-            'search'        => $data['search'],
+            'search'        => $queryParams['search'],
             'fields'        => $fields,
             'where'         => [
                 'usergroups.group_id = usergroups_services.group_id',
@@ -416,7 +421,7 @@ class AutoCompleteController
                 'users.user_id not in (?)',
                 'users.status not in (?)'
             ],
-            'data'          => [['visa_documents', 'sign_document'], $excludedUsers, ['DEL', 'SPD']],
+            'data'          => [$services, $excludedUsers, ['DEL', 'SPD']],
             'fieldsNumber'  => 2,
         ]);
 
diff --git a/src/frontend/app/administration/entity/entities-administration.component.html b/src/frontend/app/administration/entity/entities-administration.component.html
index cda8cf59d2557dbab2b9ce98a428a500a3a2a86d..b71154838d372013c8dcdadc044240bb71ee426a 100755
--- a/src/frontend/app/administration/entity/entities-administration.component.html
+++ b/src/frontend/app/administration/entity/entities-administration.component.html
@@ -247,7 +247,7 @@
                     <mat-tab label="{{lang.visaWorkflow}}" *ngIf="!creationMode">
                         <div class="row" style="margin:0px;" id="visaCircuitContent">
                             <div class="col-md-12">
-                                <plugin-autocomplete [labelPlaceholder]="lang.addVisaSignUser" [labelList]="lang.availableUsers" [routeDatas]="['/rest/autocomplete/users/visa']" [targetSearchKey]="'idToDisplay'" [subInfoKey]="'descriptionToDisplay'" (triggerEvent)="addElemListModelVisa($event)"></plugin-autocomplete>
+                                <plugin-autocomplete [labelPlaceholder]="lang.addVisaSignUser" [labelList]="lang.availableUsers" [routeDatas]="['/rest/autocomplete/users/circuit']" [targetSearchKey]="'idToDisplay'" [subInfoKey]="'descriptionToDisplay'" (triggerEvent)="addElemListModelVisa($event)"></plugin-autocomplete>
                                 <mat-list>
                                     <span dnd-sortable-container [dropZones]="['boxers-zone']" [sortableData]="currentEntity.visaTemplate">
                                         <mat-list-item disableRipple="true" *ngFor="let template of currentEntity.visaTemplate; let i = index" title="{{lang.move}}"