
Tekunda Team

Tekunda Team

Short answer: retrieval quality decides whether RAG on Salesforce data works, not which model you pick. A frontier model given the wrong three records will answer confidently and wrongly, and swapping the model changes nothing. The three things that actually move the needle are what you treat as a chunk, how permissions are enforced during retrieval, and whether you measure retrieval separately from generation.
Because a CRM corpus breaks the assumptions that document RAG is built on.
Field-by-field chunking is the most common mistake we are asked to fix. A field value is not a retrievable unit of meaning. Assemble instead.
This is the requirement that separates an enterprise RAG system from a demo, and it has exactly one safe shape: filter before you retrieve, using the asking user's identity.
Three patterns, in descending order of how well they hold up.
Whatever store you use, identity has to propagate all the way through: session, retrieval, prompt, and the audit log. Never ask the language model to enforce access. It is a text predictor, not a policy engine, and a prompt instruction is not a security control.
Most teams cannot answer this, which is why they keep changing models. Separate the two failure modes: either the right record was not in the context, or it was there and the model ignored it. Only the second is a model problem.
Teams that add this harness usually discover their retrieval recall was somewhere around half, and that no model upgrade was ever going to fix it.
Native or external matters less than the retrieval contract. Data 360 supports vector search and retrievers over unstructured content such as knowledge articles, PDFs and transcripts (Salesforce Help), which keeps grounding close to the data and inside the platform's governance. An external vector store gives more control over chunking, hybrid ranking and cross-system corpora, which matters when the answer also lives in your ERP or your ticketing system.
Pick either, but write the contract down first: what is a chunk, what metadata every chunk carries, how identity is enforced, and what the golden set says good looks like. We build agentic RAG systems on this pattern across Salesforce and 70+ enterprise systems, and it is the contract, not the model, that we spend the most time on. More on how we work is at Tekunda.
Does a bigger model fix bad retrieval?
No. If the answering record never enters the context window, model size is irrelevant. Fix recall first, then compare models.
Should I fine-tune instead of doing RAG on CRM data?
Rarely. CRM data changes daily and access is per user, so a fine-tuned model would be both stale and unable to respect sharing. Fine-tuning is for behaviour and format, retrieval is for facts.
How do I stop the agent leaking records a user cannot see?
Filter candidates by the asking user's access before ranking, and log every retrieval with the identity that made it. Prompt instructions are not an access control.
How often should the index be refreshed?
Drive it from record change events rather than a nightly job. In a CRM corpus, a stale index produces answers that are wrong in a way users find hard to detect.