[2ff88f42] Full End-to-End integration: Webhooks, Auto-Enrichment, Notion-Sync, UI updates and new Connector Architecture

This commit is contained in:
2026-02-19 16:05:52 +00:00
parent 262add256f
commit 17346b3fcb
21 changed files with 1107 additions and 203 deletions

View File

@@ -93,6 +93,10 @@ class Contact(Base):
job_title = Column(String) # Visitenkarten-Titel
language = Column(String, default="De") # "De", "En"
# SuperOffice Mapping
so_contact_id = Column(Integer, nullable=True, index=True) # SuperOffice Contact ID (Company)
so_person_id = Column(Integer, nullable=True, unique=True, index=True) # SuperOffice Person ID
role = Column(String) # Operativer Entscheider, etc.
status = Column(String, default="") # Marketing Status
@@ -248,6 +252,30 @@ class ReportedMistake(Base):
company = relationship("Company", back_populates="reported_mistakes")
class MarketingMatrix(Base):
"""
Stores the static marketing texts for Industry x Role combinations.
Source: Notion (synced).
"""
__tablename__ = "marketing_matrix"
id = Column(Integer, primary_key=True, index=True)
# The combination keys
industry_id = Column(Integer, ForeignKey("industries.id"), nullable=False)
role_id = Column(Integer, ForeignKey("job_role_mappings.id"), nullable=False)
# The Content
subject = Column(Text, nullable=True)
intro = Column(Text, nullable=True)
social_proof = Column(Text, nullable=True)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
industry = relationship("Industry")
role = relationship("JobRoleMapping")
# ==============================================================================
# UTILS
# ==============================================================================