diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index d711e1f..b94f0b2 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -604,4 +604,4 @@
 erpnext.patches.v11_1.delete_scheduling_tool
 erpnext.patches.v12_0.make_custom_fields_for_bank_remittance
 execute:frappe.delete_doc_if_exists("Page", "support-analytics")
-erpnext.patches.v12_0.set_priority_for_issue
+erpnext.patches.v12_0.set_priority_for_support
diff --git a/erpnext/patches/v12_0/set_priority_for_issue.py b/erpnext/patches/v12_0/set_priority_for_issue.py
deleted file mode 100644
index bedf5c3..0000000
--- a/erpnext/patches/v12_0/set_priority_for_issue.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import frappe
-
-def execute():
-	frappe.reload_doc("support", "doctype", "issue_priority")
-
-	priorities = frappe.get_meta("Issue").get_field("priority").options.split("\n")
-
-	for priority in priorities:
-		frappe.get_doc({
-			"doctype": "Issue Priority",
-			"name":priority
-		}).insert(ignore_permissions=True)
-
-	frappe.reload_doc("support", "doctype", "issue")
-
-	for issue in frappe.get_list("Issue", fields=["name", "priority"]):
-		frappe.db.set_value("Issue", issue.name, "priority", issue.priority)
\ No newline at end of file
diff --git a/erpnext/patches/v12_0/set_priority_for_support.py b/erpnext/patches/v12_0/set_priority_for_support.py
new file mode 100644
index 0000000..48338a8
--- /dev/null
+++ b/erpnext/patches/v12_0/set_priority_for_support.py
@@ -0,0 +1,47 @@
+import frappe
+
+def execute():
+	frappe.reload_doc("support", "doctype", "issue_priority")
+
+	priorities = frappe.get_meta("Issue").get_field("priority").options.split("\n")
+
+	for priority in priorities:
+		frappe.get_doc({
+			"doctype": "Issue Priority",
+			"name":priority
+		}).insert(ignore_permissions=True)
+
+	frappe.reload_doc("support", "doctype", "issue")
+	frappe.reload_doc("support", "doctype", "service_level")
+	frappe.reload_doc("support", "doctype", "service_level_agreement")
+
+	for issue in frappe.get_list("Issue", fields=["name", "priority"]):
+		frappe.db.set_value("Issue", issue.name, "priority", issue.priority)
+
+	for service_level in frappe.get_list("Service Level", fields=["name", "priority", "response_time", "response_time_period",
+		"resolution_time", "resolution_time_period"]):
+
+		doc = frappe.get_doc("Service Level", service_level.name)
+		doc.update("priorities": [{
+			"priority": service_level.priority,
+			"default_priority": 1,
+			"response_time": service_level.response_time,
+			"response_time_period": service_level.response_time_period,
+			"resolution_time": service_level.resolution_time,
+			"resolution_time_period": service_level.resolution_time_period
+		}])
+		doc.save(ignore_permissions=True)
+
+	for service_level_agreement in frappe.get_list("Service Level Agreement", fields=["name", "priority", "response_time", "response_time_period",
+		"resolution_time", "resolution_time_period"]):
+
+		doc = frappe.get_doc("Service Level", service_level_agreement.name)
+		doc.update("priorities": [{
+			"priority": service_level_agreement.priority,
+			"default_priority": 1,
+			"response_time": service_level_agreement.response_time,
+			"response_time_period": service_level_agreement.response_time_period,
+			"resolution_time": service_level_agreement.resolution_time,
+			"resolution_time_period": service_level_agreement.resolution_time_period
+		}])
+		doc.save(ignore_permissions=True)
\ No newline at end of file
