Abstract base class defining lead-loader plugin interface; enforces abstract pattern for data-import implementers.
from abc import ABC, abstractmethod
class LeadLoaderBase(ABC):
available_statuses = [
"NEW",
"UNQUALIFIED",
"ATTEMPTED_TO_CONTACT"
]
@abstractmethod
def fetch_records(self, status_filter="NEW"):
"""
Abstract method to fetch records. Must be implemented by subclasses.
Should return a list of records matching the status_filter.
"""
pass
@abstractmethod
def update_record(self, lead_id, status):
"""
Abstract method to update a record's status. Must be implemented by subclasses.
"""
pass
def fetch_new_leads(self):
"""
Get leads with status "NEW" by default.
"""
try:
return self.fetch_records(status_filter="NEW")
exce
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key