Files
RangelDigital/rangeldigital/utilities/lead/lead_api.py

32 lines
1.1 KiB
Python

import frappe
from frappe.utils import today
@frappe.whitelist()
def add_lead_to_campaign(lead_name, campaign_name, start_date=None):
if not frappe.db.exists("Lead", lead_name):
frappe.throw("Lead does not exist")
# Check if there's already a scheduled/in-progress campaign for this Lead with same name
existing = frappe.db.exists("Email Campaign", {
"recipient": lead_name,
"campaign_name": campaign_name,
"email_campaign_for": "Lead",
"status": ["in", ["Scheduled", "In Progress"]]
})
if existing:
frappe.throw("This Lead is already part of an Email Campaign with this name.")
doc = frappe.new_doc("Email Campaign")
doc.update({
"campaign_name": campaign_name,
"email_campaign_for": "Lead",
"recipient": lead_name,
"start_date": start_date or today(),
"sender": frappe.session.user # or replace with a specific default sender
})
doc.insert(ignore_permissions=True)
frappe.db.commit()
return {"status": "success", "message": "Email Campaign created"}