diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
index 96e5bf9..9911d44 100644
--- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
+++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
@@ -75,22 +75,37 @@
 	def on_cancel(self):
 		self.db_set("status", "Cancelled")
 
+	def chain_callback(self, method):
+		frappe.enqueue(
+			"frappe.utils.background_jobs.run_doc_method",
+			doctype=self.doctype,
+			name=self.name,
+			doc_method=method,
+			queue="long",
+			enqueue_after_commit=True,
+		)
+
 	@frappe.whitelist()
 	def start_deletion_process(self):
 		self.delete_bins()
 		self.delete_lead_addresses()
 		self.reset_company_values()
+		self.delete_notifications()
+		self.initialize_doctypes_to_be_deleted_table()
+		self.delete_company_transactions()
+
+	def delete_notifications(self):
 		if not self.clear_notifications:
 			clear_notifications()
 			self.db_set("clear_notifications", 1)
-		self.initialize_doctypes_to_be_deleted_table()
-		self.delete_company_transactions()
+		self.chain_callback("initialize_doctypes_to_be_deleted_table")
 
 	def populate_doctypes_to_be_ignored_table(self):
 		doctypes_to_be_ignored_list = get_doctypes_to_be_ignored()
 		for doctype in doctypes_to_be_ignored_list:
 			self.append("doctypes_to_be_ignored", {"doctype_name": doctype})
 
+	@frappe.whitelist()
 	def delete_bins(self):
 		if not self.delete_bin_data:
 			frappe.db.sql(
@@ -99,6 +114,7 @@
 				self.company,
 			)
 			self.db_set("delete_bin_data", 1)
+		self.chain_callback(method="delete_lead_addresses")
 
 	def delete_lead_addresses(self):
 		"""Delete addresses to which leads are linked"""
@@ -139,6 +155,7 @@
 					)
 				)
 			self.db_set("delete_leads_and_addresses", 1)
+		self.chain_callback(method="reset_company_values")
 
 	def reset_company_values(self):
 		if not self.reset_company_default_values:
@@ -147,6 +164,7 @@
 			company_obj.sales_monthly_history = None
 			company_obj.save()
 			self.db_set("reset_company_default_values", 1)
+		self.chain_callback(method="delete_notifications")
 
 	def initialize_doctypes_to_be_deleted_table(self):
 		if not self.initialize_doctypes_table:
@@ -162,6 +180,7 @@
 						# Initialize
 						self.populate_doctypes_table(tables, docfield["parent"], docfield["fieldname"], 0)
 			self.db_set("initialize_doctypes_table", 1)
+		self.chain_callback(method="delete_company_transactions")
 
 	def delete_company_transactions(self):
 		if not self.delete_transactions:
@@ -194,6 +213,7 @@
 							if "#" in naming_series:
 								self.update_naming_series(naming_series, docfield.doctype_name)
 
+						self.chain_callback(method="delete_company_transactions")
 					else:
 						frappe.db.set_value(docfield.doctype, docfield.name, "done", 1)
 			self.db_set("delete_transactions", 1)
