feat(b2b-assistant): Implement Step 7 (Customer Journey) with tactical focus on Buying Center, Deal-Breakers, and Assets. Add restart functionality for individual steps.
This commit is contained in:
@@ -150,6 +150,22 @@ Fuehre fuer jede **[Rolle]** innerhalb der **[Fokus-Branche: {{focus_industry}}]
|
||||
Erstelle ONLY die finale Markdown-Tabelle.
|
||||
* **Table Columns:** *Fokus-Branche | Rolle | Kernbotschaft (2-3 sentences) | {{channels}}*.
|
||||
* **Requirement:** Your response must start with the heading \"## Schritt 6: Botschaften\" and contain ONLY die vollstaendige Markdown-Tabelle.""",
|
||||
"""# Aufgabe
|
||||
Fuehre **Schritt 7 - Customer Journey & Buying Center** durch.
|
||||
|
||||
# Kontext: Validierte Ergebnisse aus vorherigen Schritten
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Fokus
|
||||
Beziehe dich auf die **Fokus-Branche: {{focus_industry}}**.
|
||||
|
||||
# Anweisungen fuer Schritt 7
|
||||
* Analysiere die Kaufreise ("Journey") vom ersten Trigger bis zum Vertrag.
|
||||
* Identifiziere fuer jede Phase die **Dynamik im Buying Center**: Wer treibt an (Champion), wer bremst oder prueft (Gatekeeper/Evaluator), wer entscheidet (Decider)?
|
||||
* Gehe besonders auf **technische und organisatorische Barrieren** ein (z.B. IT-Sicherheit, Schnittstellen wie Aufzugssteuerung, Prozessintegration).
|
||||
* Definiere **konkrete Assets**, die die jeweilige Rolle in dieser Phase benoetigt, um Einwaende zu entkraeften oder interne Mitstreiter zu ueberzeugen (z.B. "API-Dokumentation fuer Aufzugsbauer", "ROI-Rechner fuer CFO", "Sicherheits-Whitepaper").
|
||||
* **Output:** Erstelle eine Markdown-Tabelle mit exakt diesen Spalten: *Phase | Rolle | Funktion (Buying Center) | Zentrale Frage / Beduerfnis | Moeglicher Deal-Breaker | Benoetigtes Asset / Format*.
|
||||
* **Format-Anforderung:** Antworte NUR mit den Ergebnissen fuer diesen einen Schritt. Deine Antwort muss mit der Ueberschrift \"## Schritt 7: Customer Journey\" beginnen."""
|
||||
]
|
||||
|
||||
SYSTEM_PROMPT_EN = """# System Role
|
||||
@@ -256,7 +272,23 @@ For each **[Role]** within the **[Focus Industry: {{focus_industry}}]**, perform
|
||||
# Output Format
|
||||
Create ONLY the final Markdown table.
|
||||
* **Table Columns:** *Focus Industry | Role | Core Message (2-3 sentences) | {{channels}}*.
|
||||
* **Requirement:** Your response must start with the heading \"## Step 6: Messages\" and contain ONLY the complete Markdown table."""
|
||||
* **Requirement:** Your response must start with the heading \"## Step 6: Messages\" and contain ONLY the complete Markdown table.""",
|
||||
"""# Task
|
||||
Perform **Step 7 - Customer Journey & Buying Center**.
|
||||
|
||||
# Context: Validated results from previous steps
|
||||
{{previous_steps_data}}
|
||||
|
||||
# Focus
|
||||
Refer to the **Focus Industry: {{focus_industry}}**.
|
||||
|
||||
# Instructions for Step 7
|
||||
* Analyze the purchase journey ("Journey") from the first trigger to the contract.
|
||||
* Identify the **Buying Center dynamics** for each phase: Who drives it (Champion), who slows it down or audits (Gatekeeper/Evaluator), who decides (Decider)?
|
||||
* Focus specifically on **technical and organizational barriers** (e.g., IT security, interfaces like elevator control, process integration).
|
||||
* Define **concrete assets** that each role needs in this phase to invalidate objections or convince internal stakeholders (e.g., "API documentation for elevator manufacturers", "ROI calculator for CFO", "Security Whitepaper").
|
||||
* **Output:** Create a Markdown table with exactly these columns: *Phase | Role | Function (Buying Center) | Key Question / Need | Potential Deal-Breaker | Needed Asset / Format*.
|
||||
* **Format Requirement:** Respond ONLY with the results for this single step. Your response must start with the heading \"## Step 7: Customer Journey\"."""
|
||||
]
|
||||
|
||||
PROMPTS = {
|
||||
@@ -270,6 +302,7 @@ PROMPTS = {
|
||||
'painPoints': 'Schritt 4: Painpoints je Rolle (WARUM)',
|
||||
'gains': 'Schritt 5: Gains & Nutzen je Rolle (WARUM wechseln)',
|
||||
'messages': 'Schritt 6: Marketingbotschaften je Segment & Rolle (WIE sprechen)',
|
||||
'customerJourney': 'Schritt 7: Customer Journey & Buying Center',
|
||||
},
|
||||
'SUMMARY_TITLE': 'Kurzresuemee:',
|
||||
'SUMMARY_TEXT_FOR_STEP1': [
|
||||
@@ -287,6 +320,7 @@ PROMPTS = {
|
||||
'painPoints': 'Step 4: Pain Points per Role (WHY)',
|
||||
'gains': 'Step 5: Gains & Benefits per Role (WHY switch)',
|
||||
'messages': 'Step 6: Marketing Messages per Segment & Role (HOW to speak)',
|
||||
'customerJourney': 'Step 7: Customer Journey & Buying Center',
|
||||
},
|
||||
'SUMMARY_TITLE': 'Summary:',
|
||||
'SUMMARY_TEXT_FOR_STEP1': [
|
||||
@@ -432,7 +466,7 @@ def format_context_for_prompt(analysis_data, language):
|
||||
context = ""
|
||||
current_prompts = PROMPTS[language]
|
||||
step_titles = current_prompts['STEP_TITLES']
|
||||
step_keys = ['offer', 'targetGroups', 'personas', 'painPoints', 'gains', 'messages']
|
||||
step_keys = ['offer', 'targetGroups', 'personas', 'painPoints', 'gains', 'messages', 'customerJourney']
|
||||
for i, step_key in enumerate(step_keys):
|
||||
step_data = analysis_data.get(step_key)
|
||||
if step_data:
|
||||
@@ -530,7 +564,7 @@ def next_step(language, context_file, generation_step, channels, focus_industry=
|
||||
# Log the full response
|
||||
save_detailed_log(f"step{generation_step}", "response", response_text)
|
||||
|
||||
step_key = ['offer', 'targetGroups', 'personas', 'painPoints', 'gains', 'messages'][generation_step - 1]
|
||||
step_key = ['offer', 'targetGroups', 'personas', 'painPoints', 'gains', 'messages', 'customerJourney'][generation_step - 1]
|
||||
expected_title = current_prompts['STEP_TITLES'][step_key]
|
||||
title_match = re.search(rf'## {re.escape(expected_title)}\s*', response_text, re.IGNORECASE)
|
||||
content = response_text[title_match.end():].strip() if title_match else response_text
|
||||
|
||||
Reference in New Issue
Block a user