LeadLoaderBase (lead_loader_base.py)

sales-outreach-automation-langgraph · integration

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