Overview
package wittgenstein_crm_client
Wittgenstein CRM Client Library.
Provides a unified interface to interact with HubSpot, Salesforce, Pipedrive, and RD Station.
Classes
-
CRMClient — Abstract Base Class for CRM clients.
-
LeadRecord — Pydantic model representing a unified Lead in the CRM.
-
ContactRecord — Pydantic model representing a contact person in a CRM.
-
DealRecord — Pydantic model representing an opportunity/deal in a CRM.
-
StageTransition — Pydantic model representing a transition from one stage to another.
-
CRMActivity — Pydantic model representing a generic activity (note, call, meeting) in CRM.
-
EngagementEvent — Pydantic model representing tracking engagements (email opens, clicks, web visits).
wittgenstein_crm_client.CRMClient
mkapi_definition_mkapi class CRMClient()
Bases : ABC
Abstract Base Class for CRM clients.
Methods
-
get_lead — Fetch a single lead record by ID.
-
list_leads — List leads in a specific funnel stage.
-
update_stage — Update the funnel stage of a lead.
-
add_activity — Add an activity log to a lead.
-
create_task — Create a follow-up task inside the CRM.
-
create_contact — Create a contact record in the CRM, returning the contact ID.
-
enroll_sequence — Enroll a contact into an outreach sequence.
-
get_engagements — Fetch recent engagement events for a company.
wittgenstein_crm_client.CRMClient.get_lead
mkapi_definition_mkapi async method CRMClient.get_lead(self, lead_id: str) → LeadRecord
Fetch a single lead record by ID.
wittgenstein_crm_client.CRMClient.list_leads
mkapi_definition_mkapi async method CRMClient.list_leads(self, stage: FunnelStage, **filters) → List[LeadRecord]
List leads in a specific funnel stage.
wittgenstein_crm_client.CRMClient.update_stage
mkapi_definition_mkapi async method CRMClient.update_stage(self, lead_id: str, stage: FunnelStage, reason: str) → None
Update the funnel stage of a lead.
wittgenstein_crm_client.CRMClient.add_activity
mkapi_definition_mkapi async method CRMClient.add_activity(self, lead_id: str, activity: CRMActivity) → None
Add an activity log to a lead.
wittgenstein_crm_client.CRMClient.create_task
mkapi_definition_mkapi async method CRMClient.create_task(self, lead_id: str, assignee: str, briefing: str) → None
Create a follow-up task inside the CRM.
wittgenstein_crm_client.CRMClient.create_contact
mkapi_definition_mkapi async method CRMClient.create_contact(self, contact: ContactRecord) → str
Create a contact record in the CRM, returning the contact ID.
wittgenstein_crm_client.CRMClient.enroll_sequence
mkapi_definition_mkapi async method CRMClient.enroll_sequence(self, contact_id: str, sequence_id: str) → None
Enroll a contact into an outreach sequence.
wittgenstein_crm_client.CRMClient.get_engagements
mkapi_definition_mkapi async method CRMClient.get_engagements(self, company_id: str, since: datetime) → List[EngagementEvent]
Fetch recent engagement events for a company.
wittgenstein_crm_client.LeadRecord
mkapi_definition_mkapi class LeadRecord()
Bases : BaseModel
Pydantic model representing a unified Lead in the CRM.
wittgenstein_crm_client.ContactRecord
mkapi_definition_mkapi class ContactRecord()
Bases : BaseModel
Pydantic model representing a contact person in a CRM.
wittgenstein_crm_client.DealRecord
mkapi_definition_mkapi class DealRecord()
Bases : BaseModel
Pydantic model representing an opportunity/deal in a CRM.
wittgenstein_crm_client.FunnelStage
mkapi_definition_mkapi class FunnelStage()
Bases : str, Enum
wittgenstein_crm_client.StageTransition
mkapi_definition_mkapi class StageTransition()
Bases : BaseModel
Pydantic model representing a transition from one stage to another.
wittgenstein_crm_client.CRMActivity
mkapi_definition_mkapi class CRMActivity()
Bases : BaseModel
Pydantic model representing a generic activity (note, call, meeting) in CRM.
wittgenstein_crm_client.EngagementEvent
mkapi_definition_mkapi class EngagementEvent()
Bases : BaseModel
Pydantic model representing tracking engagements (email opens, clicks, web visits).