Last updated

Documentation Updates Summary

Based on Enterprise Customer Feedback Analysis

Date: February 12, 2026
Source: Enterprise customer conversations (Financial Services, Insurance, Consulting)


Executive Summary

Analyzed enterprise customer feedback and identified 7 high-impact documentation gaps that need addressing. Most critical customer issues were backend bugs (now fixed), but documentation needs updates to prevent future confusion.


🔴 HIGH PRIORITY Updates (Do First)

1. external_user_id vs user_id Clarification

What: Memory server now resolves user_id internally - developers should only use external_user_id

Files to Update:

  • guides/authentication.md - Add comprehensive section
  • quickstart/* - Update all examples
  • sdks/python.md - Update examples
  • sdks/typescript.md - Update examples

Key Points:

  • external_user_id = Your application's user identifier
  • Memory server handles internal user_id resolution automatically
  • Developers never need to manage user_id

2. Schema Prerequisites for Document Upload

What: Clarify that hierarchical chunking is AUTOMATIC, schemas are only for domain entities

Files to Update:

  • guides/document-processing.md - Add prerequisites section
  • guides/custom-schemas.md - Add "when to use schemas" section

Key Points:

  • Hierarchical document structure = automatic (no schema needed)
  • Chunk-to-chunk connections = automatic
  • Schemas = for domain-specific entities only (Customer, Product, etc.)
  • Use natural identifiers (name, email) not IDs for unstructured data

3. Memory Policies for Graph Control

What: Comprehensive guide on using memory policies, node constraints, edge constraints

Files to Create:

  • guides/graph-control.md - Memory policies overview (NEW)
  • guides/node-constraints.md - Node constraints reference (NEW)

Key Points:

  • mode: auto = LLM extracts entities
  • mode: manual = You provide exact structure (for database imports)
  • Node constraints = business rules on top of LLM extraction
  • Use unstructured identifiers for matching

4. Postgres/SQL to Papr Integration ⭐ NEW USE CASE

What: Major use case - connecting structured database data with unstructured context

Files to Create:

  • tutorials/postgres-to-papr.md - Comprehensive tutorial (NEW)

Files to Update:

  • overview/index.md - Add to "Three Input Paths"
  • overview/use-cases.md - Add prominent row at top
  • overview/structured-data.md - Enhance with connection use case

Key Points:

  • Import Postgres/SQL records as graph nodes
  • Automatically link with documents, conversations, support tickets
  • Real-world patterns: CRM + support, products + reviews, tickets + code
  • Sync strategies: bulk import, incremental, real-time CDC

Example Use Cases:

  • CRM data + support conversations
  • Product catalog + customer feedback
  • Transaction history + chat logs
  • Jira tickets + GitHub commits + Slack discussions

🟡 MEDIUM PRIORITY Updates

5. Search Response Serialization

What: How to convert SearchResponse Pydantic models to dict/JSON

Files to Update:

  • sdks/python.md - Add serialization section
  • sdks/typescript.md - Add serialization section

Key Points:

  • Use .model_dump() (Pydantic v2)
  • Document full SearchResponse structure
  • Common patterns for accessing nested data

6. Feedback Endpoints for Evaluation

What: How to use feedback to improve retrieval quality over time

Files to Create:

  • guides/feedback-and-evaluation.md - Comprehensive guide (NEW)

Key Points:

  • Feedback improves retrieval ranking, answer quality, graph search
  • Integration patterns: thumbs up/down, engagement signals, automated evals
  • Evaluation workflow examples

🟢 LOW PRIORITY Updates

7. rank_results Accuracy vs Speed

What: Clarify that rank_results=True is for best accuracy but adds latency

Files to Update:

  • guides/search-tuning.md - Add rank_results section

Key Points:

  • rank_results=True = best accuracy, more latency (200-500ms)
  • rank_results=False = faster speed, good accuracy
  • Default is False (optimized for speed)

Files to Create (7 New Files)

  1. guides/graph-control.md - Memory policies overview
  2. guides/node-constraints.md - Node constraints reference
  3. guides/feedback-and-evaluation.md - Feedback system guide
  4. tutorials/postgres-to-papr.md - Postgres integration tutorial

Files to Update (11 Existing Files)

  1. guides/authentication.md - external_user_id section
  2. guides/document-processing.md - Prerequisites + hierarchy clarification
  3. guides/custom-schemas.md - When to use schemas, unique identifiers
  4. sdks/python.md - Serialization + external_user_id examples
  5. sdks/typescript.md - Serialization + external_user_id examples
  6. guides/search-tuning.md - rank_results section
  7. quickstart/* - Update all examples to use external_user_id
  8. overview/index.md - Add structured data to input paths
  9. overview/use-cases.md - Add Postgres integration row
  10. overview/structured-data.md - Enhance with connection use case

Effort Estimate

PriorityTasksEstimated Time
🔴 HIGH4 major updates8-10 hours
🟡 MEDIUM2 updates3-4 hours
🟢 LOW1 update1 hour
TOTAL7 updates12-15 hours

Implementation Order

Week 1: High Priority

  1. Day 1-2: external_user_id clarification (authentication.md + all quickstarts)
  2. Day 2-3: Postgres/SQL integration tutorial (NEW)
  3. Day 3-4: Memory policies guide (graph-control.md + node-constraints.md)
  4. Day 4-5: Schema prerequisites (document-processing.md + custom-schemas.md)

Week 2: Medium Priority

  1. Day 1: Search response serialization (sdks/python.md + typescript.md)
  2. Day 2: Feedback endpoints guide (feedback-and-evaluation.md)

Week 3: Low Priority

  1. Day 1: rank_results documentation (search-tuning.md)

Success Metrics

After implementing these updates, we should see:

  1. Fewer support questions about user_id vs external_user_id
  2. Better schema adoption - developers understand when/how to use them
  3. More structured data integrations - Postgres use case is discoverable
  4. Higher feedback usage - developers know how to improve retrieval
  5. Faster onboarding - clear examples for common patterns

Key Takeaways

What We Fixed (No Docs Needed)

  • ✅ Namespace filtering bug
  • ✅ Search performance issues
  • ✅ Cold start latency
  • ✅ ACL auto-population bug
  • ✅ Groq fallback issue

What We Need to Document

  • 🔴 external_user_id is the primary developer-facing parameter
  • 🔴 Hierarchical chunking is automatic, schemas are for domain entities
  • 🔴 Memory policies control graph generation with fine-grained rules
  • 🔴 Postgres → Papr is a major use case that needs prominence
  • 🟡 Feedback endpoints improve retrieval quality
  • 🟡 Search response serialization patterns

What Makes Papr Unique

  • Connects structured + unstructured data - This is the killer feature
  • Automatic hierarchy - Developers don't manage document structure
  • Flexible policies - From auto extraction to exact control
  • Continuous improvement - Feedback loop for better retrieval

Next Steps

  1. Review this summary with team
  2. Prioritize which updates to tackle first
  3. Assign documentation writing tasks
  4. Track progress against 12-15 hour estimate
  5. Measure impact on support ticket volume

Questions? See full analysis: ENTERPRISE-FEEDBACK-ANALYSIS.md