Files
RangelDigital/rangeldigital/api.py
2025-02-13 02:06:07 -08:00

39 lines
1.4 KiB
Python

import frappe
@frappe.whitelist(allow_guest=True) # allow_guest=True if you want unauthenticated access
def lead_magnet(email,subject,content):
try:
# Check if a Lead with the given email exists
lead = frappe.db.get_value("Lead", {"email_id": email}, "name",)
if not lead:
# Create a new Lead if not found
lead_doc = frappe.get_doc({
"doctype": "Lead",
"first_name": "Unknown",
"email_id": email,
"status": "Open"
})
lead_doc.insert(ignore_permissions=True)
frappe.db.commit()
lead = lead_doc.name # Get the newly created lead name
# Create a Communication linked to the Lead
communication = frappe.get_doc({
"doctype": "Communication",
"subject": subject,
"content": content,
"sender": email,
"sent_or_received": "Received",
"reference_doctype": "Lead",
"reference_name": lead # Link to the existing or new lead
})
communication.insert(ignore_permissions=True)
frappe.db.commit()
return {"success": True, "message": "Lead and communication recorded successfully", "lead": lead}
except Exception as e:
frappe.log_error(f"Lead Creation Error: {str(e)}", "Lead API Error")
return {"success": False, "error": str(e)}