KarmaFlow indexes every conversation, note, activity, contact, company, and deal in a per-tenant vector store. The same index powers global semantic search, "find similar" panels, AI-research fields, the smart-timeline "most relevant context" panel, and the deal-health and coaching workers.
This article covers the user-facing surfaces. All of these features degrade gracefully — if the vector store is unreachable, the affected panel returns an empty result with a soft-fail message and the rest of the page keeps working.
The search bar in the top nav (or Cmd+K / Ctrl+K) runs two queries in parallel and merges the results:
Results are deduped by (sourceType, sourceId) and ranked together so you can find "calls where the prospect mentioned HIPAA" without typing the exact phrase.
The Find similar panel on Contact, Company, and Deal detail pages calls the per-tenant vector index for neighbours of the same entity type, scored by cosine similarity over the embedded "record card." Useful for:
The Most relevant context panel on Contact and Deal detail pages surfaces the top semantically-relevant historical interactions for the record — not just the most recent ones. For an account exec opening a deal cold, this is the difference between "let me read the last 30 days of notes" and "here are the six conversations that matter."
Define a custom attribute as an AI-research field in CRM → Setup → Custom Fields and click Enrich on any record to auto-fill it from your own data plus optional web search, with cited sources. Full walkthrough in Enriching Records with AI.
Auto-tagging clusters Activities semantically and surfaces candidate tags (e.g. "pricing-objection", "HIPAA-question", "wants-multi-year") that you can one-click apply. Approved tags feed back into filters and lifecycle automations.
For tenants on the AI list-builder, the NL prompt box on the saved-views page accepts queries like "VPs of Engineering at Series B fintechs in NYC who opened email in the last 14 days." It compiles to a hybrid vector + structured-filter query and saves the result as a Saved View.
When a new form-fill or inbound email arrives, the triage service embeds the message, retrieves the closest closed-won contacts, and suggests the best owner (the rep who closed those deals) plus a lifecycle stage based on the closest cohort. Surfaces in the inbound row's detail panel.
The coaching surface for any call detail page (/internal/coaching/calls/:callId) compares the candidate call against semantically similar calls whose contact later closed a deal. Returns:
Powered by the same vector index, so coaching feedback is grounded in your tenant's own top-performer transcripts — no cross-tenant data leaks.
Every write to Note / Activity / Contact / Company / Deal triggers a fire-and-forget embed via the indexer plugin. Backfill jobs handle historical data on tenant onboarding. Embedding model and version are stored on every chunk so a model swap can re-embed in the background without breaking running queries.