docs: add deep-dive analysis of notion verticals and check script [2ff88f42]
This commit is contained in:
239
ANALYSIS_AND_PROPOSAL.md
Normal file
239
ANALYSIS_AND_PROPOSAL.md
Normal file
@@ -0,0 +1,239 @@
|
||||
# Deep-Dive Analyse: Pains & Gains vs. Product Reality
|
||||
**Status:** In Bearbeitung
|
||||
**Basis:** Transkript (`transkript_verticals1.txt`) + Notion Ist-Stand + Logik-Check "Product Fit"
|
||||
|
||||
---
|
||||
|
||||
## 1. Automotive - Dealer (Autohäuser)
|
||||
* **Primary Product:** Security Roboter
|
||||
* **Secondary Product:** Cleaning Outdoor Roboter (Sweeper)
|
||||
|
||||
### Analyse (Chain of Thought)
|
||||
* **Ist-Zustand Fehler:** "Doppel-Nutzen: Tagsüber Reinigung, nachts Bestreifung" bei Gains. Das ist technisch falsch. Ein Wachroboter hat keine Besen, eine Kehrmaschine keine Überwachungskameras (in der Regel).
|
||||
* **Transcript Check:** "Teile-Diebstahl (Katalysatoren/Räder)", "Vandalismus", "Imageverlust (Laub/Dreck)". Christian sagt: "Sicherheit ist wichtiger als sauberer Hof".
|
||||
* **Logik:**
|
||||
* *Security:* Löst Diebstahl/Vandalismus. Ersetzt/Ergänzt Wachdienst.
|
||||
* *Sweeper:* Löst "dreckigen Hof" (Imageproblem bei Premium-Autos).
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Security]
|
||||
- Teile-Diebstahl: Organisierte Banden demontieren nachts Katalysatoren und Räder – enormer Schaden und Versicherungsstress.
|
||||
- Vandalismus: Zerkratzte Neuwagen auf dem Außenhof mindern den Verkaufswert drastisch.
|
||||
- Personalkosten: Lückenlose menschliche Nachtbewachung ist für viele Standorte wirtschaftlich kaum darstellbar.
|
||||
|
||||
[Secondary Product: Cleaning Outdoor]
|
||||
- Image-Verlust: Ein verschmutzter Außenbereich (Laub, Müll) passt nicht zum Premium-Anspruch der ausgestellten Fahrzeuge.
|
||||
- Manueller Aufwand: Verkaufspersonal oder teure Hausmeisterdienste binden Zeit mit unproduktivem Fegen.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Security]
|
||||
- Abschreckung & Intervention: Permanente Roboter-Präsenz wirkt präventiv; bei Alarm schaltet sich sofort eine Leitstelle auf.
|
||||
- Asset-Schutz: Reduktion von Versicherungsschäden und Selbstbehalten durch lückenlose Dokumentation.
|
||||
|
||||
[Secondary Product: Cleaning Outdoor]
|
||||
- Premium-Präsentation: Der Hof ist bereits morgens bei Kundenöffnung makellos sauber.
|
||||
- Automatisierung: Täglich gereinigte Flächen ohne manuellen Eingriff.
|
||||
|
||||
---
|
||||
|
||||
## 2. Industry - Manufacturing (Produktion)
|
||||
* **Primary Product:** Cleaning Indoor (Wet Surface)
|
||||
* **Secondary Product:** Transport Roboter
|
||||
|
||||
### Analyse (Chain of Thought)
|
||||
* **Ist-Zustand Fehler:** Die aktuellen Pains ("Such- und Holzeiten", "Materialfluss") beziehen sich zu 100% auf *Transport*, obwohl *Cleaning* das Primary Product ist.
|
||||
* **Transcript Check:** Alex warnt explizit vor "Öl und Chemie" ("Wie Hundekacke"). Roboter schmieren das nur breit. Fokus muss auf *Staub*, *Prozesssicherheit* und *Mitarbeiterentlastung* liegen. Alex: "Betriebskosten senken", "Produktivität steigern".
|
||||
* **Logik:**
|
||||
* *Cleaning:* Darf nicht in Ölspuren fahren. Aber: Große Hallen verstauben. Staplerverkehr erzeugt Abrieb. Rutschgefahr für Mitarbeiter.
|
||||
* *Transport:* "Facharbeiter rennt C-Teilen hinterher". Das ist der klassische Pain.
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Prozess-Sicherheit: Staub und Abrieb auf Fahrwegen gefährden empfindliche Sensorik (z.B. von FTS) und die Produktqualität.
|
||||
- Arbeitssicherheit: Rutschgefahr durch feine Staubschichten oder ausgelaufene (nicht-chemische) Flüssigkeiten erhöht das Unfallrisiko.
|
||||
- Ressourcen-Verschwendung: Hochbezahlte Fachkräfte müssen Maschinen stoppen, um ihr Umfeld zu reinigen.
|
||||
|
||||
[Secondary Product: Transport]
|
||||
- Intransparenz & Suchzeiten: Facharbeiter unterbrechen die Wertschöpfung für unproduktive Materialbeschaffung ("C-Teile holen").
|
||||
- Mikrostillstände: Fehlendes Material an der Linie stoppt den Takt.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Konstante Bodenqualität: Definierte Sauberkeitsstandards (Audit-Ready) rund um die Uhr.
|
||||
- Unfallschutz: Reduktion von Arbeitsunfällen durch rutschfreie Verkehrswege.
|
||||
|
||||
[Secondary Product: Transport]
|
||||
- Just-in-Time Logistik: Automatisierter Nachschub hält die Fachkraft wertschöpfend an der Maschine.
|
||||
- Fluss-Optimierung: Stabilisierung der Taktzeiten und OEE durch verlässliche Materialflüsse.
|
||||
|
||||
---
|
||||
|
||||
## 3. Healthcare - Hospital (Krankenhaus)
|
||||
* **Primary Product:** Cleaning Indoor (Wet Surface)
|
||||
* **Secondary Product:** Service Roboter (Transport)
|
||||
|
||||
### Analyse (Chain of Thought)
|
||||
* **Ist-Zustand Fehler:** Vermischung. "Fachpflegekräfte... logistische Routinetätigkeiten" steht bei Cleaning. Das ist falsch.
|
||||
* **Transcript Check:** "Hände weg vom Bett" ist das Transport-Thema (Essen/Wäsche). "Hygienerisiko/Kreuzkontamination" ist das Cleaning-Thema. Alex: "Validierbare Reinigung".
|
||||
* **Logik:**
|
||||
* *Cleaning:* Muss Keime reduzieren, 24/7 laufen, dokumentieren.
|
||||
* *Service/Transport:* Muss Schwestern entlasten (Schrittzähler reduzieren).
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Hygienerisiko & Kreuzkontamination: Manuelle Reinigung ist oft fehleranfällig und variiert stark in der Qualität (Gefahr für Patienten).
|
||||
- Dokumentationspflicht: Der Nachweis RKI-konformer Reinigung bindet wertvolle Zeit und ist bei Personalmangel lückenhaft.
|
||||
- Personalnot: Fehlende Reinigungskräfte führen zu gesperrten Bereichen oder sinkendem Hygienelevel.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Berufsfremde Tätigkeiten: Pflegekräfte verbringen bis zu 30% der Schichtzeit mit Hol- und Bringdiensten (Essen, Wäsche, Labor).
|
||||
- Physische Überlastung: Lange Laufwege in großen Kliniken erhöhen die Erschöpfung des Fachpersonals.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Validierbare Hygiene: Robotergarantierte, protokollierte Desinfektionsleistung – audit-sicher auf Knopfdruck.
|
||||
- 24/7 Verfügbarkeit: Konstantes Hygienelevel auch nachts und am Wochenende, unabhängig vom Dienstplan.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Zeit für Patienten: Rückgewinnung von ca. 2,5 Stunden Fachkraft-Kapazität pro Schicht für die Pflege.
|
||||
- Mitarbeiterzufriedenheit: Reduktion der Laufwege ("Schrittzähler") entlastet das Team spürbar.
|
||||
|
||||
---
|
||||
|
||||
## 4. Logistics - Warehouse (Lagerhalle)
|
||||
* **Primary Product:** Cleaning Outdoor Roboter (Sweeper) -> *Korrektur: Sollte hier "Cleaning Indoor (Sweeper)" gemeint sein?*
|
||||
* **Logik-Check:** Im Warehouse fährt man selten mit einer Straßenkehrmaschine. Aber: Man nutzt *Aufsitz-Kehrmaschinen* (Sweeper) für den Innenbereich (Palettenspäne, Staub). "Wet Surface" ist im Lager oft zweitrangig (außer Lebensmittel), da Wasser + Kartonage = schlecht.
|
||||
* **Annahme:** Wir mappen "Sweeper" hier auf *Indoor Dry Cleaning*.
|
||||
* **Transcript Check:** Alex: "Im Warehouse sehe ich eher die Kehrmaschine als Erstes... Verschmutzung ist eine andere... Paletten Dinger."
|
||||
* **Secondary Product:** Cleaning Indoor (Wet Surface) -> Alex: "Anspruch an Nassreinigung im ersten Schritt nicht so hoch."
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Cleaning (Sweeper/Dry)]
|
||||
- Grobschmutz & Palettenreste: Holzspäne und Verpackungsreste gefährden Reifen von Flurförderzeugen und blockieren Lichtschranken.
|
||||
- Staubbelastung: Aufgewirbelter Staub legt sich auf Waren und Verpackungen (Reklamationsgrund) und schadet der Gesundheit.
|
||||
- Manuelle Bindung: Mitarbeiter müssen große Flächen manuell kehren, statt zu kommissionieren.
|
||||
|
||||
[Secondary Product: Cleaning (Wet)]
|
||||
- Hartnäckige Verschmutzungen: Eingefahrene Spuren, die durch reines Kehren nicht lösbar sind.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Cleaning (Sweeper/Dry)]
|
||||
- Anlagenschutz: Sauberer Boden verhindert Störungen an Fördertechnik und Sensoren durch Staub/Teile.
|
||||
- Staubfreie Ware: Produkte verlassen das Lager in sauberem Zustand (Qualitätsanspruch).
|
||||
|
||||
[Secondary Product: Cleaning (Wet)]
|
||||
- Grundsauberkeit: Gelegentliche Nassreinigung für Tiefenhygiene in Fahrgassen.
|
||||
|
||||
---
|
||||
|
||||
## 5. Retail - Food (Supermarkt/LEH)
|
||||
* **Primary Product:** Cleaning Indoor (Wet)
|
||||
* **Secondary Product:** Service Roboter
|
||||
|
||||
### Analyse
|
||||
* **Transcript Check:** "Kaufland/Aldi... große Flächen". "Reinigungskosten steigen". "Sichtbare Reinigungsmaschinen blockieren Kundenwege".
|
||||
* **Pain:** Dreckige Böden (Milch/Joghurt ausgelaufen) = Rutschgefahr + Ekel. Personal ist knapp (Regalauffüller).
|
||||
* **Logik:**
|
||||
* *Cleaning:* Muss "Spot Cleaning" können (Malheur wegmachen) und Flächenleistung bringen.
|
||||
* *Service:* Promotion? Oder "Wo ist die H-Milch?"
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- "Malheur-Management": Zerbrochene Gläser oder ausgelaufene Flüssigkeiten (Haverien) bilden sofortige Rutschfallen und binden Personal.
|
||||
- Optischer Eindruck: Grauschleier und verschmutzte Böden senken das Frische-Empfinden der Kunden massiv.
|
||||
- Personal-Engpass: Marktpersonal soll Regale füllen und kassieren, nicht mit der Scheuersaugmaschine fahren.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Fehlende Beratung: Kunden finden Produkte nicht und brechen den Kauf ab, da kein Personal greifbar ist.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Sofortige Sicherheit: Roboter beseitigt Rutschgefahren autonom und schnell.
|
||||
- Frische-Optik: Permanent glänzende Böden ("Lobby-Effekt") unterstreichen die Qualität der Lebensmittel.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Umsatz-Boost: Roboter führt Kunden direkt zum gesuchten Produkt oder bewirbt Aktionen aktiv am POS.
|
||||
|
||||
---
|
||||
|
||||
## 6. Hospitality - Gastronomy
|
||||
* **Primary Product:** Cleaning Indoor (Wet)
|
||||
* **Secondary Product:** Service Roboter
|
||||
* **Achtung:** Im Transkript wurde diskutiert, dies evtl. zu tauschen ("L'Osteria... Service Robotik"). Aber Alex sagt auch: "Reinigungsrobotik als erstes".
|
||||
* **Entscheidung:** Wir lassen Cleaning als Primary, aber schärfen Service als starken Secondary.
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Klebrige Böden: Verschüttete Getränke und Speisereste wirken unhygienisch und stören das Ambiente.
|
||||
- Randzeiten-Problem: Nach Schließung ist es schwer, Personal für die Grundreinigung zu finden (Nachtzuschläge).
|
||||
|
||||
[Secondary Product: Service]
|
||||
- "Teller-Taxi": Servicekräfte verbringen 80% der Zeit mit Laufen (Küche <-> Gast) statt mit Verkaufen/Betreuung.
|
||||
- Personalmangel: Zu wenig Kellner führen zu langen Wartezeiten, kalten Speisen und genervten Gästen.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Cleaning Indoor]
|
||||
- Makelloses Ambiente: Sauberer Boden als Visitenkarte des Restaurants.
|
||||
- Zuverlässigkeit: Die Grundreinigung findet jede Nacht garantiert statt.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Mehr Umsatz am Gast: Servicekraft hat Zeit für Empfehlungen (Wein, Dessert) und Upselling.
|
||||
- Entlastung: Roboter übernimmt das schwere Tragen (Tabletts), Personal bleibt im Gastraum präsent.
|
||||
|
||||
---
|
||||
|
||||
## 7. Leisure - Outdoor Park (Freizeitparks)
|
||||
* **Primary Product:** Cleaning Outdoor (Sweeper)
|
||||
* **Secondary Product:** Service Roboter
|
||||
|
||||
### Analyse
|
||||
* **Transcript Check:** "Kilometerlange Wege", "Grobschmutz (Laub, Müll)". Alex: "Große Kehrmaschine (VIGGO 100)".
|
||||
* **Logik:** Es geht um Ästhetik ("Heile Welt") und Sicherheit (kein Müll).
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Cleaning Outdoor]
|
||||
- Immersion-Breaker: Müll und Laub auf den Wegen stören die perfekte Illusion ("Heile Welt") des Parks.
|
||||
- Enorme Flächen: Kilometerlange Wegenetze binden ganze Kolonnen von Reinigungskräften.
|
||||
- Sicherheit: Rutschgefahr durch nasses Laub oder Abfall.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Versorgungslücken: An abgelegenen Attraktionen fehlt oft Gastronomie-Angebot.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Cleaning Outdoor]
|
||||
- Perfekte Inszenierung: Unsichtbare Reinigung in den frühen Morgenstunden sichert das perfekte Erlebnis bei Parköffnung.
|
||||
- Effizienz: Ein Roboter schafft die Flächenleistung mehrerer manueller Kehrer.
|
||||
|
||||
[Secondary Product: Service]
|
||||
- Mobiler Verkauf: Roboter bringen Getränke/Eis direkt zu den Warteschlangen (Zusatzumsatz).
|
||||
|
||||
---
|
||||
|
||||
## 8. Energy - Grid & Utilities (Energieversorger)
|
||||
* **Primary Product:** Security Roboter
|
||||
* **Secondary Product:** -
|
||||
|
||||
### Analyse
|
||||
* **Logik:** KRITIS-Infrastruktur. Abgelegen. Kupferdiebstahl.
|
||||
* **Pain:** Man kann nicht überall sein. Zäune werden durchschnitten.
|
||||
|
||||
### PROPOSAL
|
||||
**Pains:**
|
||||
[Primary Product: Security]
|
||||
- Sabotage & Diebstahl: Kupferdiebstahl in Umspannwerken verursacht Millionenschäden und Versorgungsausfälle.
|
||||
- Reaktionszeit: Entlegene Standorte sind für Interventionskräfte oft zu spät erreichbar.
|
||||
- Sicherheitsrisiko Mensch: Alleinarbeit bei Kontrollgängen in Hochspannungsbereichen ist gefährlich.
|
||||
|
||||
**Gains:**
|
||||
[Primary Product: Security]
|
||||
- First Responder Maschine: Roboter ist bereits vor Ort, verifiziert Alarm und schreckt Täter ab.
|
||||
- KRITIS-Compliance: Lückenlose, manipulationssichere Dokumentation aller Vorfälle für Behörden.
|
||||
- Arbeitsschutz: Roboter übernimmt gefährliche Routinekontrollen (z.B. Thermografie an Trafos).
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
import os
|
||||
import requests
|
||||
import json
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Load environment variables
|
||||
load_dotenv()
|
||||
|
||||
NOTION_API_KEY = os.getenv("NOTION_API_KEY")
|
||||
NOTION_DB_VERTICALS = "2ec88f4285448014ab38ea664b4c2b81"
|
||||
NOTION_DB_PRODUCTS = "2ec88f42854480f0b154f7a07342eb58"
|
||||
|
||||
if not NOTION_API_KEY:
|
||||
print("Error: NOTION_API_KEY not found.")
|
||||
exit(1)
|
||||
|
||||
headers = {
|
||||
"Authorization": f"Bearer {NOTION_API_KEY}",
|
||||
"Notion-Version": "2022-06-28",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
def fetch_all_pages(db_id):
|
||||
pages = []
|
||||
has_more = True
|
||||
start_cursor = None
|
||||
|
||||
while has_more:
|
||||
url = f"https://api.notion.com/v1/databases/{db_id}/query"
|
||||
payload = {"page_size": 100}
|
||||
if start_cursor:
|
||||
payload["start_cursor"] = start_cursor
|
||||
|
||||
response = requests.post(url, headers=headers, json=payload)
|
||||
if response.status_code != 200:
|
||||
print(f"Error fetching DB {db_id}: {response.status_code} - {response.text}")
|
||||
break
|
||||
|
||||
data = response.json()
|
||||
pages.extend(data.get("results", []))
|
||||
has_more = data.get("has_more", False)
|
||||
start_cursor = data.get("next_cursor")
|
||||
|
||||
return pages
|
||||
|
||||
def get_property_text(page, prop_name):
|
||||
props = page.get("properties", {})
|
||||
prop = props.get(prop_name)
|
||||
if not prop:
|
||||
return ""
|
||||
|
||||
prop_type = prop.get("type")
|
||||
|
||||
if prop_type == "title":
|
||||
return "".join([t["plain_text"] for t in prop.get("title", [])])
|
||||
elif prop_type == "rich_text":
|
||||
return "".join([t["plain_text"] for t in prop.get("rich_text", [])])
|
||||
elif prop_type == "select":
|
||||
select = prop.get("select")
|
||||
return select.get("name") if select else ""
|
||||
elif prop_type == "multi_select":
|
||||
return ", ".join([s["name"] for s in prop.get("multi_select", [])])
|
||||
elif prop_type == "relation":
|
||||
return [r["id"] for r in prop.get("relation", [])]
|
||||
else:
|
||||
return f"[Type: {prop_type}]"
|
||||
|
||||
def main():
|
||||
print("--- 1. Fetching Product Categories ---")
|
||||
product_pages = fetch_all_pages(NOTION_DB_PRODUCTS)
|
||||
product_map = {}
|
||||
for p in product_pages:
|
||||
p_id = p["id"]
|
||||
# Product Category name is likely the title property
|
||||
# Let's find the title property key dynamically
|
||||
title_key = next((k for k, v in p["properties"].items() if v["id"] == "title"), "Name")
|
||||
name = get_property_text(p, title_key)
|
||||
product_map[p_id] = name
|
||||
# print(f"Product: {name} ({p_id})")
|
||||
|
||||
print(f"Loaded {len(product_map)} products.")
|
||||
|
||||
print("\n--- 2. Fetching Verticals ---")
|
||||
vertical_pages = fetch_all_pages(NOTION_DB_VERTICALS)
|
||||
|
||||
print("\n--- 3. Analysis ---")
|
||||
for v in vertical_pages:
|
||||
# Determine Title Key (Vertical Name)
|
||||
title_key = next((k for k, v in v["properties"].items() if v["id"] == "title"), "Vertical")
|
||||
vertical_name = get_property_text(v, title_key)
|
||||
|
||||
# Primary Product
|
||||
pp_ids = get_property_text(v, "Primary Product Category")
|
||||
pp_names = [product_map.get(pid, f"Unknown ({pid})") for pid in pp_ids] if isinstance(pp_ids, list) else []
|
||||
|
||||
# Secondary Product
|
||||
sp_ids = get_property_text(v, "Secondary Product")
|
||||
sp_names = [product_map.get(pid, f"Unknown ({pid})") for pid in sp_ids] if isinstance(sp_ids, list) else []
|
||||
|
||||
# Pains & Gains
|
||||
pains = get_property_text(v, "Pains")
|
||||
gains = get_property_text(v, "Gains")
|
||||
|
||||
print(f"\n### {vertical_name}")
|
||||
print(f"**Primary Product:** {', '.join(pp_names)}")
|
||||
print(f"**Secondary Product:** {', '.join(sp_names)}")
|
||||
print(f"**Pains:**\n{pains.strip()}")
|
||||
print(f"**Gains:**\n{gains.strip()}")
|
||||
print("-" * 40)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user