diff --git a/testrail_bot/control/celery_tasks/test_rail_api.py b/testrail_bot/control/celery_tasks/test_rail_api.py
index cc3bfdb..00d4dc6 100644
--- a/testrail_bot/control/celery_tasks/test_rail_api.py
+++ b/testrail_bot/control/celery_tasks/test_rail_api.py
@@ -70,10 +70,11 @@
                                 status_id: int = None,
                                 project_name: str = "Mirantis Cloud Platform",
                                 plan_name: str = None,
-                                run_name: str = None,
                                 created_after: str = None,
                                 created_before: str = None,
-                                created_by: int = None, **kwargs) -> \
+                                created_by: int = None,
+                                testrun_pattern: str = None,
+                                **kwargs) -> \
         Iterator[List[dict]]:
     limit_step = 100
     suite_id = api.cases.get_case(case_id=case_id)["suite_id"]
@@ -92,7 +93,7 @@
             entries = get_entries(plan["id"])
             for entry in entries:
                 for run in entry["runs"]:
-                    if run_name and run_name not in run["name"]:
+                    if testrun_pattern and testrun_pattern not in run["name"]:
                         continue
                     if suite_id and run["suite_id"] != suite_id:
                         continue
diff --git a/testrail_bot/control/celery_tasks/testrail_pipeline.py b/testrail_bot/control/celery_tasks/testrail_pipeline.py
index d9e8c44..67d5e18 100644
--- a/testrail_bot/control/celery_tasks/testrail_pipeline.py
+++ b/testrail_bot/control/celery_tasks/testrail_pipeline.py
@@ -91,11 +91,10 @@
         case_id: int,
         last_comment: str,
         plan_name: str,
-        test_pattern: str,
+        testrun_pattern: str,
         created_by_id: int,
         created_after: int,
         created_before: int,
-        run_name: str,
         text_filters: dict,
 ) -> Iterator[Tuple[Optional[dict], float, int]]:
     """
@@ -106,7 +105,7 @@
          being searched
         :param last_comment: The last comment associated with the failed test
         :param plan_name: The name of the test plan to search within
-        :param test_pattern: A pattern for filtering test runs
+        :param testrun_pattern: A pattern for filtering test runs
         :param created_by_id: The ID of the user who created the test plan
         :param created_after: The date (created_after) after which the test
         plan was created
@@ -129,13 +128,13 @@
         "created_before": int(dt.timestamp(end_lookup_date)),
         "created_after": int(dt.timestamp(start_lookup_date)),
         "plan_name": plan_name,
-        "run_name": run_name,
         "status_id": [StatusEnum.test_failed,
                       StatusEnum.failed,
                       StatusEnum.blocked,
                       StatusEnum.product_failed,
                       StatusEnum.wont_fix,
                       StatusEnum.retest],
+        "testrun_pattern": testrun_pattern
     }
 
     for n, results in enumerate(test_rail_api.get_result_history_for_case(
diff --git a/testrail_bot/control/forms.py b/testrail_bot/control/forms.py
index 76379ee..7a45622 100644
--- a/testrail_bot/control/forms.py
+++ b/testrail_bot/control/forms.py
@@ -18,7 +18,7 @@
             "project_name": "Name of the project",
             "plan_name": "Pattern for name of the Test Plan",
             "run_name": "Name of the run",
-            "test_pattern": "Pattern for name of the Test Run",
+            "testrun_pattern": "Pattern for name of the Test Run",
             "run_id": "ID of the run/plan",
             "created_by_id": "ID of the user that created Test Plan",
             "filter_func": "Custom filter function",
diff --git a/testrail_bot/control/migrations/0008_rename_test_pattern_testrailtestrun_testrun_pattern.py b/testrail_bot/control/migrations/0008_rename_test_pattern_testrailtestrun_testrun_pattern.py
new file mode 100644
index 0000000..ec350ca
--- /dev/null
+++ b/testrail_bot/control/migrations/0008_rename_test_pattern_testrailtestrun_testrun_pattern.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.2.7 on 2024-02-06 19:04
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('control', '0007_testrailtestrun_caching_tests_enabled'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='testrailtestrun',
+            old_name='test_pattern',
+            new_name='testrun_pattern',
+        ),
+    ]
diff --git a/testrail_bot/control/models.py b/testrail_bot/control/models.py
index 71fd861..46c5049 100644
--- a/testrail_bot/control/models.py
+++ b/testrail_bot/control/models.py
@@ -34,7 +34,7 @@
                                     default="Mirantis Cloud Platform")
     plan_name = models.CharField(max_length=300, default="[MCP2.0]OSCORE")
     run_name = models.CharField(max_length=300, blank=True)
-    test_pattern = models.CharField(max_length=300, blank=True)
+    testrun_pattern = models.CharField(max_length=300, blank=True)
     run_id = models.CharField(max_length=300)
     checked_tests = IntegerListField(default=list())
     caching_tests_enabled = models.BooleanField(default=False)
@@ -61,9 +61,8 @@
             "created_by_id": self.created_by_id,
             "created_after": self.created_after,
             "created_before": self.created_before,
-            "run_name": self.run_name,
+            "testrun_pattern": self.testrun_pattern,
             "plan_name": self.plan_name,
-            "test_pattern": self.test_pattern,
         }
 
 
diff --git a/testrail_bot/control/template_tags/custom_tags.py b/testrail_bot/control/template_tags/custom_tags.py
index 92e203a..cef6606 100644
--- a/testrail_bot/control/template_tags/custom_tags.py
+++ b/testrail_bot/control/template_tags/custom_tags.py
@@ -8,3 +8,8 @@
         return True
     except ValueError:
         return False
+
+
+@register.filter
+def split(string: str, sep=None):
+    return string.split(sep)
diff --git a/testrail_bot/control/templates/control/index.html b/testrail_bot/control/templates/control/index.html
index 64e3e99..8736ef9 100644
--- a/testrail_bot/control/templates/control/index.html
+++ b/testrail_bot/control/templates/control/index.html
@@ -6,7 +6,21 @@
 <div class="list-group">
     {% for run in runs %}
         <a href="{% url 'single_run' run.id  %}" class="list-group-item list-group-item-success">
-            Run <b>{{run.run_id}}</b> from <b>{{run.plan_name}}</b> plan in <b>{{run.project_name}}</b> project
+            <div class="px-3 mx-2 fw-bold rounded-pill float-sm-start
+            text-white bg-dark">
+                {{run.run_id}}
+            </div>
+            {% if run.run_name %}
+                {% for part in run.run_name|split %}
+                    {% if part in 'Run Plan from'  %}
+                        {{ part }}
+                    {% else %}
+                        <b>{{ part }}</b>
+                    {% endif %}
+                {% endfor %}
+            {% else %}
+                Run from {{run.plan_name}} plan in {{run.project_name}} project
+            {% endif %}
         </a>
     {% endfor %}
 </div>
diff --git a/testrail_bot/control/templates/control/update_run.html b/testrail_bot/control/templates/control/update_run.html
index 1ca8930..b11fbbf 100644
--- a/testrail_bot/control/templates/control/update_run.html
+++ b/testrail_bot/control/templates/control/update_run.html
@@ -57,7 +57,7 @@
           {% bootstrap_field form.plan_name size='sm' %}</div>
 
         <div class="col-xs-8">
-          {% bootstrap_field form.test_pattern  size='sm' %}</div>
+          {% bootstrap_field form.testrun_pattern  size='sm' %}</div>
 
         <div class="col-xs-8">
           {% bootstrap_field form.created_by_id  size='sm' %}</div>
@@ -77,7 +77,6 @@
                 <a href="https://mirantis.testrail.com/index.php?/tests/view/{{ test_id }}">{{ test_id }}</a>
             {% endfor %}
         </div>
-
       </div>
       <div class="p-3 mt-5 bg-light bg-gradient">
         <h5>Text filters</h5>
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
index 7a34327..bff73e0 100644
--- a/testrail_bot/control/views.py
+++ b/testrail_bot/control/views.py
@@ -84,18 +84,25 @@
 def submit_run(request, run_id):
     run = models.TestRailTestRun.objects.get(pk=run_id)
     is_testplan = test_rail_api.is_testplan(run.run_id)
-
     if is_testplan:
         testrail_run = test_rail_api.get_plan_by_id(run.run_id)
     else:
         testrail_run = test_rail_api.get_run_by_id(run.run_id)
-    run_name = 'Plan-' if is_testplan else "Run-"
     if not run.run_name:
-        run_name += testrail_run['name']
-    if run.test_pattern:
-        run_name += "-" + run.test_pattern
+        if is_testplan:
+            _name = f"Plan {testrail_run['name']}"
+        else:
+            parent_plan_id = testrail_run["plan_id"]
+            parent_plan_name = \
+                test_rail_api.get_plan_by_id(parent_plan_id)["name"]
+            _name = f"Run {testrail_run['name']} from {parent_plan_name}"
+        run.run_name = _name
+        run.save()
+
     report_name = "{}-run_id-{}-date-{}".format(
-        run_name, run.run_id, datetime.datetime.isoformat(datetime.datetime.now()))
+        run.run_name,
+        run.run_id,
+        datetime.datetime.isoformat(datetime.datetime.now()))
     path = os.path.join(models.fs.location, report_name)
     with open(path, "w"):
         pass
diff --git a/testrail_bot/testrail_bot/settings.py b/testrail_bot/testrail_bot/settings.py
index 240f9df..bc49975 100644
--- a/testrail_bot/testrail_bot/settings.py
+++ b/testrail_bot/testrail_bot/settings.py
@@ -162,4 +162,3 @@
 JIRA_PASSWORD = os.environ.get("JIRA_PASSWORD")
 JIRA_SERVER = os.environ.get("JIRA_SERVER",
                              default="https://mirantis.jira.com")
-
