# How To Persist Analyses In The Database Use the dedicated MCP tool **`save_analysis`** to store results explicitly from Claude Desktop. ## Quick Instructions ### Step 1 – Ask Claude To Analyze A Conversation Provide the full transcript and request: 1. Sentiment analysis 2. Risk detection 3. Recommended action Example prompt: ``` Here is Ruben's conversation: [full transcript...] Please analyze this conversation and store the result in the database with customer_id "RUBEN". ``` ### Step 2 – `save_analysis` Handles Persistence After the analysis, instruct Claude to call the tool: ``` Use the save_analysis tool with: - customer_id: "RUBEN" - messages: [all conversation lines] - sentiment_score: [0-100 score] - trend: [RISING | DECLINING | STABLE] - predicted_action: [CHURN | RESOLUTION | ESCALATION] - confidence: [0.0-1.0] ``` ## Full Workflow ### Option A – One Prompt ``` Do the following: 1. Analyze this customer conversation: [transcript...] 2. Save the results with customer_id "RUBEN" using save_analysis. Return sentiment, trend, recommended action, and confidence. ``` ### Option B – Two Prompts Prompt 1 – Analysis: ``` Analyze this conversation and give me: - sentiment_score - trend - predicted_action - confidence ``` Prompt 2 – Persistence: ``` Great. Now store those results: - customer_id: "RUBEN" - messages: [conversation lines] - sentiment_score: 48 - trend: DECLINING - predicted_action: CHURN - confidence: 0.85 Call the save_analysis tool. ``` ## Verify The Entry ### Option 1 – CLI ```powershell python tools/view_customer_profile.py RUBEN ``` ### Option 2 – VS Code SQLite Extension 1. Open `data/sentiment_analysis.db` 2. Inspect the `conversations` table 3. Filter by `customer_id = RUBEN` ### Option 3 – HTML Report ```powershell python tools/generate_report.py # open data/reporte_clientes.html ``` ### Option 4 – Claude Query ``` Ask get_customer_history for customer RUBEN. ``` Claude will read from SQLite and return the profile, history, and alerts. ## `save_analysis` Parameters | Field | Type | Required | Notes | | --- | --- | --- | --- | | customer_id | string | Yes | Unique identifier, e.g., `RUBEN`, `ACME_CORP_001` | | messages | array | Yes | Raw message list | | sentiment_score | number | Yes | 0–100 normalized score | | trend | string | Yes | `RISING`, `DECLINING`, `STABLE` | | predicted_action | string | Yes | `CHURN`, `RESOLUTION`, `ESCALATION` | | confidence | number | Yes | 0.0–1.0 | | risk_level | string | No | `LOW`, `MEDIUM`, `HIGH` | | context_type | string | No | `customer`, `employee`, `email`, etc. | ## Example – Ruben ### Prompt ``` Analyze this conversation for customer Ruben: Customer: Hi, I need help with my account Support: Sure, what's happening? Customer: I've waited a week and nobody answers Support: Sorry, checking immediately Customer: I no longer trust this service; I'm switching providers Support: Apologies for the delay Customer: Too late, the decision is final Save the analysis in the database with customer_id "RUBEN" using save_analysis. ``` ### Expected Flow 1. Claude analyzes the transcript. 2. Sentiment, trend, and action are computed. 3. Claude invokes `save_analysis` with the payload. 4. SQLite stores the record under `data/sentiment_analysis.db`. ### Quick Check ```powershell python tools/view_customer_profile.py RUBEN ``` ## FAQ **Does the save happen automatically?** Yes. When Claude calls `save_analysis`, the entry is written immediately. **What if I forget the customer_id?** The tool rejects the call. Always provide a customer identifier. **Can I store multiple analyses for the same customer?** Yes. Each call creates a new timestamped record. **Where are the rows stored?** `data/sentiment_analysis.db`, table `conversations`. **How do I review the data later?** Use `get_customer_history`, `tools/view_customer_profile.py`, or inspect the database directly.