diff --git a/erpnext/crm/doctype/lead/lead.js b/erpnext/crm/doctype/lead/lead.js
index 0bf2ab9..7f5f1a4 100644
--- a/erpnext/crm/doctype/lead/lead.js
+++ b/erpnext/crm/doctype/lead/lead.js
@@ -40,6 +40,9 @@
 			this.frm.add_custom_button(__("Opportunity"), this.make_opportunity, __("Create"));
 			this.frm.add_custom_button(__("Quotation"), this.make_quotation, __("Create"));
 			this.frm.add_custom_button(__("Prospect"), this.make_prospect, __("Create"));
+			this.frm.add_custom_button(__('Add to Prospect'), function() {
+				cur_frm.trigger('add_lead_to_prospect')
+			}, __('Action'));
 		}
 
 		if (!this.frm.is_new()) {
@@ -50,6 +53,34 @@
 		}
 	}
 
+	add_lead_to_prospect () {
+		frappe.prompt([
+			{
+				fieldname: 'prospect',
+				label: __('Prospect'),
+				fieldtype: 'Link',
+				options: 'Prospect',
+				reqd: 1
+			}
+		],
+		function(data) {
+			frappe.call({
+				method: 'erpnext.crm.doctype.lead.lead.add_lead_to_prospect',
+				args: {
+					'lead': cur_frm.doc.name,
+					'prospect': data.prospect
+				},
+				callback: function(r) {
+					if (!r.exc) {
+						cur_frm.reload_doc();
+					}
+				},
+				freeze: true,
+				freeze_message: __('...Adding Lead to Prospect')
+			})
+		}, __('Add Lead to Prospect'), __('Add'));
+	}
+
 	make_customer () {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.crm.doctype.lead.lead.make_customer",
@@ -72,10 +103,22 @@
 	}
 
 	make_prospect () {
-		frappe.model.open_mapped_doc({
-			method: "erpnext.crm.doctype.lead.lead.make_prospect",
-			frm: cur_frm
-		})
+		frappe.model.with_doctype("Prospect", function() {
+			let prospect = frappe.model.get_new_doc("Prospect");
+			prospect.company_name = cur_frm.doc.company_name;
+			prospect.no_of_employees = cur_frm.doc.no_of_employees;
+			prospect.industry = cur_frm.doc.industry;
+			prospect.market_segment = cur_frm.doc.market_segment;
+			prospect.territory = cur_frm.doc.territory;
+			prospect.fax = cur_frm.doc.fax;
+			prospect.website = cur_frm.doc.website;
+			prospect.prospect_owner = cur_frm.doc.lead_owner;
+
+			let lead_prospect_row = frappe.model.add_child(prospect, 'prospect_lead');
+			lead_prospect_row.lead = cur_frm.doc.name;
+
+			frappe.set_route("Form", "Prospect", prospect.name);
+		});
 	}
 
 	company_name () {
diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py
index 693fc6a..c6115ee 100644
--- a/erpnext/crm/doctype/lead/lead.py
+++ b/erpnext/crm/doctype/lead/lead.py
@@ -62,6 +62,7 @@
 
 	def on_update(self):
 		self.add_calendar_event()
+		self.update_prospects()
 
 	def before_insert(self):
 		self.contact_doc = self.create_contact()
@@ -88,6 +89,12 @@
 			"description": ('Contact ' + cstr(self.lead_name)) + (self.contact_by and ('. By : ' + cstr(self.contact_by)) or '')
 		}, force)
 
+	def update_prospects(self):
+		prospects = frappe.get_all('Prospect Lead', filters={'lead': self.name}, fields=['parent'])
+		for row in prospects:
+			prospect = frappe.get_doc('Prospect', row.parent)
+			prospect.save(ignore_permissions=True)
+
 	def check_email_id_is_unique(self):
 		if self.email_id:
 			# validate email is unique
@@ -262,15 +269,6 @@
 
 	return target_doc
 
-@frappe.whitelist()
-def make_prospect(source_name, target_doc=None):
-	target_doc = get_mapped_doc("Lead", source_name,
-		{"Lead": {
-			"doctype": "Prospect",
-		}}, target_doc)
-
-	return target_doc
-
 def _set_missing_values(source, target):
 	address = frappe.get_all('Dynamic Link', {
 			'link_doctype': source.doctype,
@@ -363,12 +361,13 @@
 	for lead in leads:
 		frappe.db.set_value("Lead", lead.name, "status", "Open")
 
-def add_prospect_link_in_communication(communication, method):
-	if communication.get('reference_doctype') == "Lead":
-		links = frappe.get_all('Prospect Lead', filters={'lead': communication.get('reference_name')}, fields=['parent', 'parenttype'])
-
-		for link in links:
-			communication.append('timeline_links', {
-				'link_doctype': link['parenttype'],
-				'link_name': link['parent']
-			})
+@frappe.whitelist()
+def add_lead_to_prospect(lead, prospect):
+	prospect = frappe.get_doc('Prospect', prospect)
+	prospect.append('prospect_lead', {
+		'lead': lead
+	})
+	prospect.save(ignore_permissions=True)
+	frappe.msgprint(_('Lead {0} has been added to prospect {1}.').format(frappe.bold(lead), frappe.bold(prospect.name)),
+		title=_('Lead Added'), indicator='green')
+	
\ No newline at end of file
diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js
index bcfae11..80588ee 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.js
+++ b/erpnext/crm/doctype/opportunity/opportunity.js
@@ -12,6 +12,14 @@
 			'Supplier Quotation': 'Supplier Quotation'
 		};
 
+		frm.set_query("opportunity_from", function() {
+			return{
+				"filters": {
+					"name": ["in", ["Customer", "Lead", "Prospect"]],
+				}
+			}
+		});
+
 		if (frm.doc.opportunity_from && frm.doc.party_name){
 			frm.trigger('set_contact_link');
 		}
@@ -87,10 +95,18 @@
 					}, __('Create'));
 			}
 
-			frm.add_custom_button(__('Quotation'),
-				cur_frm.cscript.create_quotation, __('Create'));
+			if (frm.doc.opportunity_from != "Customer") {
+				frm.add_custom_button(__('Customer'),
+					function() {
+						frm.trigger("make_customer")
+					}, __('Create'));
+			}
 
-		}
+			frm.add_custom_button(__('Quotation'),
+				function() {
+					frm.trigger("create_quotation")
+				}, __('Create'));
+			}
 
 		if(!frm.doc.__islocal && frm.perm[0].write && frm.doc.docstatus==0) {
 			if(frm.doc.status==="Open") {
@@ -187,6 +203,13 @@
 			frm: cur_frm
 		})
 	}
+
+	make_customer() {
+		frappe.model.open_mapped_doc({
+			method: "erpnext.crm.doctype.opportunity.opportunity.make_customer",
+			frm: cur_frm
+		})
+	}
 };
 
 extend_cscript(cur_frm.cscript, new erpnext.crm.Opportunity({frm: cur_frm}));
diff --git a/erpnext/crm/doctype/opportunity/opportunity.json b/erpnext/crm/doctype/opportunity/opportunity.json
index e4b0e47..12a564a9 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.json
+++ b/erpnext/crm/doctype/opportunity/opportunity.json
@@ -78,13 +78,13 @@
   },
   {
    "fieldname": "opportunity_from",
-   "fieldtype": "Select",
+   "fieldtype": "Link",
    "in_list_view": 1,
    "in_standard_filter": 1,
    "label": "Opportunity From",
    "oldfieldname": "enquiry_from",
    "oldfieldtype": "Select",
-   "options": "\nLead\nProspect\nCustomer",
+   "options": "DocType",
    "print_hide": 1,
    "reqd": 1
   },
@@ -430,7 +430,7 @@
  "icon": "fa fa-info-sign",
  "idx": 195,
  "links": [],
- "modified": "2021-08-23 14:43:09.484227",
+ "modified": "2021-08-25 10:28:24.923543",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Opportunity",
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index 23ad98a..9e62031 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -266,6 +266,26 @@
 	return doclist
 
 @frappe.whitelist()
+def make_customer(source_name, target_doc=None):
+	def set_missing_values(source, target):
+		if source.opportunity_from == "Lead":
+			target.lead_name = source.party_name
+		if source.opportunity_from == "Prospect":
+			target.prospect = source.party_name
+
+	doclist = get_mapped_doc("Opportunity", source_name, {
+		"Opportunity": {
+			"doctype": "Customer",
+			"field_map": {
+				"currency": "default_currency",
+				"customer_name": "customer_name"
+			}
+		}
+	}, target_doc, set_missing_values)
+
+	return doclist
+
+@frappe.whitelist()
 def make_request_for_quotation(source_name, target_doc=None):
 	def update_item(obj, target, source_parent):
 		target.conversion_factor = 1.0
diff --git a/erpnext/crm/doctype/prospect/prospect.js b/erpnext/crm/doctype/prospect/prospect.js
index 793afcc..64256cf 100644
--- a/erpnext/crm/doctype/prospect/prospect.js
+++ b/erpnext/crm/doctype/prospect/prospect.js
@@ -19,21 +19,12 @@
 				})
 			}, __("Create"));
 		}
-	},
 
-	make_customer () {
-		console.log("Make Customer");
-		frappe.model.open_mapped_doc({
-			method: "erpnext.crm.doctype.prospect.prospect.make_customer",
-			frm: cur_frm
-		})
-	},
-
-	make_opportunity () {
-		console.log("Make Opportunity");
-		// frappe.model.open_mapped_doc({
-		// 	method: "erpnext.crm.doctype.lead.lead.make_opportunity",
-		// 	frm: cur_frm
-		// })
+		if (!cur_frm.is_new()) {
+			frappe.contacts.render_address_and_contact(cur_frm);
+			cur_frm.trigger('render_contact_day_html');
+		} else {
+			frappe.contacts.clear_address_and_contact(cur_frm);
+		}
 	}
 });
diff --git a/erpnext/crm/doctype/prospect/prospect.py b/erpnext/crm/doctype/prospect/prospect.py
index bd278dc..dc165af 100644
--- a/erpnext/crm/doctype/prospect/prospect.py
+++ b/erpnext/crm/doctype/prospect/prospect.py
@@ -6,12 +6,23 @@
 from frappe.model.mapper import get_mapped_doc
 
 class Prospect(Document):
-	def after_save(self):
+	def validate(self):
+		self.update_lead_details()
+
+	def on_update(self):
 		self.link_with_lead_contact_and_address()
 	
 	def on_trash(self):
 		self.unlink_dynamic_links()
 
+	def update_lead_details(self):
+		for row in self.get('prospect_lead'):
+			lead = frappe.get_value('Lead', row.lead, ['lead_name', 'status', 'email_id', 'mobile_no'], as_dict=True)
+			row.lead_name = lead.lead_name
+			row.status = lead.status
+			row.email = lead.email_id
+			row.mobile_no = lead.mobile_no
+
 	def link_with_lead_contact_and_address(self):
 		for row in self.prospect_lead:
 			links = frappe.get_all('Dynamic Link', filters={'link_doctype': 'Lead', 'link_name': row.lead}, fields=['parent', 'parenttype'])
diff --git a/erpnext/crm/doctype/prospect_lead/prospect_lead.json b/erpnext/crm/doctype/prospect_lead/prospect_lead.json
index 1797712..3c160d9 100644
--- a/erpnext/crm/doctype/prospect_lead/prospect_lead.json
+++ b/erpnext/crm/doctype/prospect_lead/prospect_lead.json
@@ -21,45 +21,41 @@
    "reqd": 1
   },
   {
-   "fetch_from": "lead.lead_name",
-   "fetch_if_empty": 1,
    "fieldname": "lead_name",
    "fieldtype": "Data",
    "in_list_view": 1,
-   "label": "Lead Name"
+   "label": "Lead Name",
+   "read_only": 1
   },
   {
-   "fetch_from": "lead.status",
-   "fetch_if_empty": 1,
    "fieldname": "status",
    "fieldtype": "Select",
    "in_list_view": 1,
    "label": "Status",
-   "options": "Lead\nOpen\nReplied\nOpportunity\nQuotation\nLost Quotation\nInterested\nConverted\nDo Not Contact"
+   "options": "Lead\nOpen\nReplied\nOpportunity\nQuotation\nLost Quotation\nInterested\nConverted\nDo Not Contact",
+   "read_only": 1
   },
   {
-   "fetch_from": "lead.email_id",
-   "fetch_if_empty": 1,
    "fieldname": "email",
    "fieldtype": "Data",
    "in_list_view": 1,
    "label": "Email",
-   "options": "Email"
+   "options": "Email",
+   "read_only": 1
   },
   {
-   "fetch_from": "lead.mobile_no",
-   "fetch_if_empty": 1,
    "fieldname": "mobile_no",
    "fieldtype": "Data",
    "in_list_view": 1,
    "label": "Mobile No",
-   "options": "Phone"
+   "options": "Phone",
+   "read_only": 1
   }
  ],
  "index_web_pages_for_search": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-08-20 01:58:39.387874",
+ "modified": "2021-08-25 12:58:24.638054",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Prospect Lead",
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 8069a15..8f7c7db 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -249,9 +249,6 @@
 		"on_update": [
 			"erpnext.support.doctype.service_level_agreement.service_level_agreement.update_hold_time",
 			"erpnext.support.doctype.issue.issue.set_first_response_time"
-		],
-		"after_insert": [
-			"erpnext.crm.doctype.lead.lead.add_prospect_link_in_communication"
 		]
 	},
 	("Sales Taxes and Charges Template", 'Price List'): {
