diff --git a/migration/20.10/migrateSavedQueries.php b/migration/20.10/migrateSavedQueries.php
index f7d73775bd17f3a06a2e38209e0c2db1b9a4fda3..5f1bdd82dbfec0e49f385a9dc0150eec1b331bd1 100644
--- a/migration/20.10/migrateSavedQueries.php
+++ b/migration/20.10/migrateSavedQueries.php
@@ -12,8 +12,8 @@ foreach ($customs as $custom) {
     }
 
     $language = \SrcCore\models\CoreConfigModel::getLanguage();
-    if (file_exists("custom/{$customId}/src/core/lang/lang-{$language}.php")) {
-        require_once("custom/{$customId}/src/core/lang/lang-{$language}.php");
+    if (file_exists("custom/{$custom}/src/core/lang/lang-{$language}.php")) {
+        require_once("custom/{$custom}/src/core/lang/lang-{$language}.php");
     }
     require_once("src/core/lang/lang-{$language}.php");
 
@@ -40,29 +40,41 @@ foreach ($customs as $custom) {
         $savedQuery['query_txt'] = str_replace("'", '"', $savedQuery['query_txt']);
         $queryTxt = json_decode($savedQuery['query_txt'], true);
 
+        if (!is_array($queryTxt)) {
+            continue;
+        }
+
         foreach ($queryTxt as $key => $value) {
-            if ($key == 'subject' && !empty($value['fields']['subject'][0])) {
+            if ($key == 'subject') {
                 $query[] = ['identifier' => 'subject', 'values' => $value['fields']['subject'][0]];
-            } elseif ($key == 'chrono' && !empty($value['fields']['chrono'][0])) {
+            } elseif ($key == 'chrono') {
                 $query[] = ['identifier' => 'chrono', 'values' => $value['fields']['chrono'][0]];
-            } elseif ($key == 'barcode' && !empty($value['fields']['barcode'][0])) {
+            } elseif ($key == 'barcode') {
                 $query[] = ['identifier' => 'barcode', 'values' => $value['fields']['barcode'][0]];
             } elseif ($key == 'sender' && !empty($value['fields']['sender_id'][0])) {
                 $type = $value['fields']['sender_type'][0] == 'onlyContact' ? 'contact' : $value['fields']['sender_type'][0];
-                $query[] = ['identifier' => 'senders', 'values' => [['id' => $value['fields']['sender_id'][0], 'type' => $type, 'label' => '']]];
+                $label = getContactLabel($type, $value['fields']['sender_id'][0]);
+                if ($label == null) {
+                    continue;
+                }
+                $query[] = ['identifier' => 'senders', 'values' => [['id' => $value['fields']['sender_id'][0], 'type' => $type, 'label' => $label]]];
             } elseif ($key == 'recipient' && !empty($value['fields']['recipient_id'][0])) {
                 $type = $value['fields']['recipient_type'][0] == 'onlyContact' ? 'contact' : $value['fields']['recipient_type'][0];
-                $query[] = ['identifier' => 'recipients', 'values' => [['id' => $value['fields']['recipient_id'][0], 'type' => $type, 'label' => '']]];
+                $label = getContactLabel($type, $value['fields']['recipient_id'][0]);
+                if ($label == null) {
+                    continue;
+                }
+                $query[] = ['identifier' => 'recipients', 'values' => [['id' => $value['fields']['recipient_id'][0], 'type' => $type, 'label' => $label]]];
             } elseif ($key == 'signatory_name' && !empty($value['fields']['signatory_name_id'][0])) {
                 $user = \User\models\UserModel::getByLogin(['login' => $value['fields']['signatory_name_id'][0], 'select' => ['id', 'firstname', 'lastname']]);
                 if (!empty($user)) {
                     $query[] = ['identifier' => 'role_sign', 'values' => [['id' => $user['id'], 'type' => 'user', 'label' => "{$user['firstname']} {$user['lastname']}"]]];
                 }
-            } elseif ($key == 'fulltext' && !empty($value['fields']['fulltext'][0])) {
+            } elseif ($key == 'fulltext') {
                 $query[] = ['identifier' => 'fulltext', 'values' => $value['fields']['fulltext'][0]];
-            } elseif ($key == 'multifield' && !empty($value['fields']['multifield'][0])) {
+            } elseif ($key == 'multifield') {
                 $query[] = ['identifier' => 'searchTerm', 'values' => $value['fields']['multifield'][0]];
-            } elseif ($key == 'destinataire' && !empty($value['fields']['destinataire_chosen'])) {
+            } elseif ($key == 'destinataire') {
                 $allUsers = [];
                 foreach ($value['fields']['destinataire_chosen'] as $field) {
                     $user = \User\models\UserModel::getByLogin(['login' => $field, 'select' => ['id', 'firstname', 'lastname']]);
@@ -71,9 +83,9 @@ foreach ($customs as $custom) {
                     }
                 }
                 $query[] = ['identifier' => 'role_dest', 'values' => $allUsers];
-            } elseif ($key == 'category' && !empty($value['fields']['category'][0])) {
+            } elseif ($key == 'category') {
                 $query[] = ['identifier' => 'category', 'values' => [['id' => $value['fields']['category'][0], 'label' => \Resource\models\ResModel::getCategoryLabel(['categoryId' => $value['fields']['category'][0]])]]];
-            } elseif ($key == 'confidentiality' && !empty($value['fields']['confidentiality'][0])) {
+            } elseif ($key == 'confidentiality') {
                 $query[] = ['identifier' => 'confidentiality', 'values' => [['id' => $value['fields']['confidentiality'][0] == 'Y', 'label' => $value['fields']['confidentiality'][0] == 'Y' ? 'Oui' : 'Non']]];
             } elseif ($key == 'creation_date') {
                 $query[] = ['identifier' => 'creationDate', 'values' => ['start' => getFormattedDate($value['fields']['creation_date_from'][0]), 'end' => getFormattedDate($value['fields']['creation_date_to'][0])]];
@@ -85,21 +97,21 @@ foreach ($customs as $custom) {
                 $query[] = ['identifier' => 'departureDate', 'values' => ['start' => getFormattedDate($value['fields']['exp_date_from'][0]), 'end' => getFormattedDate($value['fields']['exp_date_to'][0])]];
             } elseif ($key == 'process_limit_date') {
                 $query[] = ['identifier' => 'processLimitDate', 'values' => ['start' => getFormattedDate($value['fields']['process_limit_date_from'][0]), 'end' => getFormattedDate($value['fields']['process_limit_date_to'][0])]];
-            } elseif ($key == 'destination_mu' && !empty($value['fields']['services_chosen'])) {
+            } elseif ($key == 'destination_mu') {
                 $allEntities = [];
                 foreach ($value['fields']['services_chosen'] as $field) {
-                    $entity = \Entity\models\EntityModel::getByEntityId(['entityId' => $field, 'select' => ['id']]);
-                    $allEntities[] = ['id' => $entity['id'], 'title' => '', 'label' => ''];
+                    $entity = \Entity\models\EntityModel::getByEntityId(['entityId' => $field, 'select' => ['id', 'entity_label']]);
+                    $allEntities[] = ['id' => $entity['id'], 'title' => $entity['entity_label'], 'label' => $entity['entity_label']];
                 }
                 $query[] = ['identifier' => 'destination', 'values' => $allEntities];
-            } elseif ($key == 'initiator_mu' && !empty($value['fields']['initiatorServices_chosen'])) {
+            } elseif ($key == 'initiator_mu') {
                 $allEntities = [];
                 foreach ($value['fields']['initiatorServices_chosen'] as $field) {
-                    $entity = \Entity\models\EntityModel::getByEntityId(['entityId' => $field, 'select' => ['id']]);
-                    $allEntities[] = ['id' => $entity['id'], 'title' => '', 'label' => ''];
+                    $entity = \Entity\models\EntityModel::getByEntityId(['entityId' => $field, 'select' => ['id', 'entity_label']]);
+                    $allEntities[] = ['id' => $entity['id'], 'title' => $entity['entity_label'], 'label' => $entity['entity_label']];
                 }
                 $query[] = ['identifier' => 'initiator', 'values' => $allEntities];
-            } elseif ($key == 'tag_mu' && !empty($value['fields']['tags_chosen'])) {
+            } elseif ($key == 'tag_mu') {
                 $allTags = [];
                 foreach ($value['fields']['tags_chosen'] as $field) {
                     $tag = \Tag\models\TagModel::getById(['id' => $field, 'select' => ['label', 'id']]);
@@ -108,7 +120,7 @@ foreach ($customs as $custom) {
                     }
                 }
                 $query[] = ['identifier' => 'tags', 'values' => $allTags];
-            } elseif ($key == 'status' && !empty($value['fields']['status_chosen'])) {
+            } elseif ($key == 'status') {
                 $allStatuses = [];
                 foreach ($value['fields']['status_chosen'] as $field) {
                     $status = \Status\models\StatusModel::getById(['select' => ['identifier', 'label_status'], 'id' => $field]);
@@ -122,25 +134,52 @@ foreach ($customs as $custom) {
                 if (!empty($user)) {
                     $query[] = ['identifier' => 'role_visa', 'values' => [['id' => $user['id'], 'type' => 'user', 'label' => "{$user['firstname']} {$user['lastname']}"]]];
                 }
-            } elseif ($key == 'numged' && !empty($value['fields']['numged'][0])) {
+            } elseif ($key == 'numged') {
                 $query[] = ['identifier' => 'resId', 'values' => ['start' => $value['fields']['numged'][0], 'end' => $value['fields']['numged'][0]]];
+            } elseif ($key == 'doc_notes') {
+                $query[] = ['identifier' => 'notes', 'values' => $value['fields']['doc_notes'][0]];
+            } elseif ($key == 'signatory_group' && !empty($value['fields']['signatory_group'][0])) {
+                $group = \Group\models\GroupModel::getByGroupId(['groupId' => $value['fields']['signatory_group'][0], 'select' => ['id', 'group_desc']]);
+                if (!empty($group)) {
+                    $query[] = ['identifier' => 'groupSign', 'values' => ['id' => $group['id'], 'label' => $group['group_desc'],'group' => '']];
+                }
+            } elseif ($key == 'closing_date') {
+                $query[] = ['identifier' => 'closingDate', 'values' => ['start' => getFormattedDate($value['fields']['closing_date_from'][0]), 'end' => getFormattedDate($value['fields']['closing_date_to'][0])]];
+            } elseif ($key == 'creation_date_pj') {
+                $query[] = ['identifier' => 'attachment_creationDate', 'values' => ['start' => getFormattedDate($value['fields']['creation_date_pj_from'][0]), 'end' => getFormattedDate($value['fields']['creation_date_pj_to'][0])]];
+            } elseif ($key == 'attachment_types') {
+                $types = \Attachment\models\AttachmentModel::getAttachmentsTypesByXML();
+                if (in_array($value['fields']['attachment_types'][0], array_keys($types))) {
+                    $query[] = ['identifier' => 'attachment_type', 'values' => ['id' => $value['fields']['attachment_types'][0], 'label' => $types[$value['fields']['attachment_types'][0]],'group' => '']];
+                }
+            } elseif ($key == 'doctype') {
+                $types = [];
+                foreach ($value['fields']['doctypes_chosen'] as $docType) {
+                    $type = \Doctype\models\DoctypeModel::getById(['id' => (int)$docType]);
+                    if (!empty($type)) {
+                        $types[] = ['id' => 101, 'label' => $type['description'], 'title' => $type['description'], 'disabled' => false, 'isTitle' => false, 'group' => ''];
+                    }
+                }
+                $query[] = ['identifier' => 'doctype', 'values' => $types];
             }
         }
 
         if (!empty($query)) {
             $user = \User\models\UserModel::getByLogin(['login' => $savedQuery['user_id'], 'select' => ['id']]);
 
-            \Search\models\SearchTemplateModel::create([
-                'user_id'       => !empty($user['id']) ? $user['id'] : $masterOwnerId,
-                'label'         => $savedQuery['query_name'],
-                'query'         => json_encode($query)
-            ]);
+            if (!empty($user['id'])) {
+                \Search\models\SearchTemplateModel::create([
+                    'user_id'       => $user['id'],
+                    'label'         => $savedQuery['query_name'],
+                    'query'         => json_encode($query)
+                ]);
 
-            $migrated++;
+                $migrated++;
+            }
         }
     }
 
-    printf("Migration recherches sauvegardés (CUSTOM {$custom}) : {$migrated} sauvegarde(s) trouvée(s) et migrée(s).\n");
+    printf("Migration recherches sauvegardées (CUSTOM {$custom}) : {$migrated} sauvegarde(s) trouvée(s) et migrée(s).\n");
 }
 
 function getFormattedDate(string $date)
@@ -153,3 +192,33 @@ function getFormattedDate(string $date)
 
     return $date->format('Y-m-d');
 }
+
+function getContactLabel(string $type, int $id) {
+    if ($type == 'contact') {
+        $contact = \Contact\models\ContactModel::getById(['id' => $id, 'select' => ['firstname', 'lastname', 'company']]);
+        if (empty($contact)) {
+            return null;
+        }
+        $formattedContact = \Contact\controllers\ContactController::getFormattedOnlyContact([
+            'contact' => [
+                'firstname' => $contact['firstname'],
+                'lastname'  => $contact['lastname'],
+                'company'   => $contact['company']
+            ]
+        ]);
+        return $formattedContact['idToDisplay'];
+    } elseif ($type == 'user') {
+        $user = \User\models\UserModel::getById(['id' => $id, 'select' => ['firstname', 'lastname']]);
+        if (empty($user)) {
+            return null;
+        }
+        return $user['firstname'] . ' ' . $user['lastname'];
+    } elseif ($type == 'entity') {
+        $entity = \Entity\models\EntityModel::getById(['id' => $id, 'select' => ['entity_label']]);
+        if (empty($entity)) {
+            return null;
+        }
+        return $entity['entity_label'];
+    }
+    return null;
+}