| Inhalt |
Lass uns ein kleines, lauffähiges CRM-Projekt mit Python bauen – ohne externe Abhängigkeiten (nur Standardbibliothek). Ich hab dir das Projekt direkt erstellt, mit Beispieldaten befüllt und eine Tabellen-Vorschau angezeigt.
Tabelle “CRM: Kunden (Vorschau)” herunterladen
Projekt “python_crm_tutorial_stdlib.zip” herunterladen
SQLite-DB (crm.db) und
saubere Tabellen: customers,
interactions, deals
CLI-Tool mit argparse:
Kein Framework nötig — reines Python
(sqlite3)
# Entpacken & ins Projekt wechseln
cd python_crm_tutorial_stdlib
# Seed (Tabellen + Demo-Daten)
python cli.py seed
# Kunden anzeigen
python cli.py customers list
# Kunde anlegen
python cli.py customers add --name "ACME GmbH" --email "info@acme.de" --phone "030123" --company "ACME GmbH"
# Interaktion anlegen
python cli.py interactions add --customer-id 1 --channel email --notes "Erstkontakt"
# Deal anlegen
python cli.py deals add --customer-id 1 --title "Projekt X" --amount 15000 --stage proposal
# Pipeline-Übersicht
python cli.py deals pipeline
python_crm_tutorial_stdlib/
├─ crm/
│ ├─ __init__.py
│ ├─ crm_db.py # DB-Verbindung & Schema (sqlite3)
│ └─ crm_ops.py # CRUD & Auswertungen (Pipeline)
├─ cli.py # CLI-Commands (argparse)
├─ crm.db # wird beim Seed erstellt
├─ README.md
└─ requirements.txt # leer (optional: pandas für Auswertungen)
pandas (Umsatz nach Monat,
aktive Pipeline etc.)Sag mir, was dir wichtiger ist (Reports, CSV, API, UI) – ich erweitere das Projekt im nächsten Schritt gezielt darum.
In dem kleinen Python-CRM, das du gerade bekommen hast, sind Interaktionen sehr einfach, aber flexibel aufgebaut.
Jede Interaktion gehört immer zu einem Kunden
(customer_id) und besteht aus:
channel)Im CLI-Tool sind derzeit vier Arten vorgesehen:
email – E-Mail-Kontakt (z. B. Angebot geschickt)call – Telefonatmeeting – persönliches Treffen oder Online-Meetingchat – Chatnachricht oder SupportkontaktBeispiel:
python cli.py interactions add --customer-id 2 --channel call --notes "Follow-up nach Angebotsversand"
Das speichert:
Kunde: ID 2
Kanal: call
Notiz: "Follow-up nach Angebotsversand"
Zeitpunkt: automatisch (UTC)
Wenn du magst, lässt sich das leicht anpassen:
social, onsite,
support_ticketWillst du, dass ich dir zeige, wie man das System erweitert, um z. B.
social oder support_ticket als neue
Interaktionstypen hinzufügt?
| Inhalt |