Security

It can't show you what you couldn't open yourself.

That isn't a policy the assistant is asked to follow. It is the platform enforcing it, on every query, before a single row reaches the model. This page is the whole story, including the parts we would rather you heard from us.

What leaves the org

Two parties. No third.

The API key lives in an External Credential your admin creates in your own org. Every callout goes from your org to your own account with your model vendor. We are not a subprocessor; the retention and training terms are the ones in the contract you already hold.

Your Salesforce org

OrgGenius runs here, as a managed package.

  • Every query WITH USER_MODE
  • Masking applied before anything is sent
  • Audit log written here
  • Key held in an External Credential
your key · your contract

Your model vendor

Anthropic, OpenAI or Azure OpenAI — your account.

  • Receives the question and masked tool results
  • Returns text or a tool call
  • Your retention terms apply

OrgGenius servers

There aren't any in the path. No index, no cache, no copy, no telemetry. The only thing that reaches us is what you choose to email.

What is sent on every request

SentContains your data?
The system promptNo. Ships as a static resource, identical in every org.
Tool definitions — names, descriptions, parameter schemasNo. Metadata, not records.
The user's questionYes — whatever they typed.
Tool resultsYes. The records the query returned, field by field, after masking. Only a tool the model actually calls sends records.
Conversation history for the current questionYes — the above again, on each turn up to the turn cap.

A question answered without retrieval sends no CRM data at all. A question that retrieves nothing sends nothing. Every tool's exact field list is documented — ask for the data-flow report.

Permissions

Agents don't use the UI. Neither does this one — which is the point.

Salesforce is API-first. Every page and every Flow sits on top of an API surface an authenticated user can reach directly, and an AI agent reads that API and does whatever it allows. Anything enforced only in the UI is invisible to it.

OrgGenius is built on the opposite premise. All 90 tools go through one code path that runs WITH USER_MODE, so the enforcement is the sharing model itself — object permissions, field-level security and record sharing, applied by the platform on every query. There is no service account, no privileged mode, and no way to phrase a question that reaches a record its asker cannot open.

And because the assistant can read the permission model, it is also how an admin finds the gap first: “who can see this, and why?” is a question it answers in one pass.

OrgGenius · utility bar
The OrgGenius panel answering: the access check says Sam Rivera can read the opportunity — his profile grants nothing, the Sales Extended permission set grants read, and the per-record check returns Read — with the records cited below.
Live from a development org with fictional users and records — asked after the fix was applied. It doesn’t invent a reason: it checks, names the profile, the permission set and the per-record result, and says he can read it.

Masking

Permissions decide which records. Masking decides which values.

They are different questions. A user may be entitled to see a card number in Salesforce and you may still not want it sent to a model vendor. Masking is configured per org, point-and-click, in three layers:

  • Named fieldsContact.SSN__c, or a bare field name to catch it on every object
  • Patterns — a library for national ID, card number, email and phone, plus your own regular expressions
  • Blocked terms — codenames, for the deal nobody outside the room should be able to name

A try-it box tests a rule before it is saved. When a value is withheld the assistant is told it was withheld, so it says the value is masked rather than pretending the data does not exist. Your own people still see everything they are entitled to — masking is about what crosses the boundary, not about hiding data from your team.

Honest limit: masking covers text values and files read as text. It cannot see inside a PDF or an image. Switch the attached-file tool off if that matters in your org.

OrgGenius · utility bar
The assistant asked for an account's full detail including the account number. It reports the account, says the account number was not in the result and that the phone field is withheld from the assistant by this org, and shows the account card without either value.
What a masked value looks like from the asking side: the assistant says the field is withheld by the org — it never claims the data does not exist.
OrgGenius Settings · What leaves the org
The masking settings: two masked fields, pattern library with payment cards and phone numbers ticked, a blocked term, and the try-it box showing a pasted sentence with the card number, codename and phone number replaced by [redacted].
“Try it before you save it”: paste something shaped like your data and see exactly what would leave. Both layers ship empty — only you know which of your fields are sensitive.

Injection defence

CRM free-text fields are user-controlled input flowing into a tool-calling model. Every result is scanned in Apex — deterministically, not by asking the model to notice — for text addressed to the assistant rather than about the business. Findings ride beside the rows, are reported to the person by record name, and are never obeyed. The eval suite gates this at 100%.

OrgGenius Settings · Overview
The OrgGenius settings Overview: tool and action counts, masking rules, and the security story read live from the org.
Settings → Overview, read live from a development org — its packaged tools plus the ones built there, the masking rules, and the security story in the order a reviewer asks. Counts on this page drift ahead of this site; they move most weeks.

The posture, live

Walk your security team down this list.

The settings Overview reads the org's actual state — how many tools, whether actions are on, what is masked, who holds which permission set, how many audit entries exist and how long they are kept. It is written in the order a reviewer asks the questions.

Seven permission sets, layered

User · Admin · User Support · Actions · Email Customers · Knowledge · Agent Builder. Every capability beyond asking needs its own permission on top. A help desk can see why somebody is locked out without also surveying the org's whole permission model.

Everything is on the record

Every question, every tool call and every proposed action — including the declined ones — is written to an audit object inside your org. Retention is a setting; a nightly job deletes past the window and empties the Recycle Bin, so the deletion is real rather than a fifteen-day reprieve.

Tested

Gates, not scores.

The model is nondeterministic, so one clean run is a sample, not evidence. The evaluation harness runs 97 questions in buckets with hard acceptance gates, and the number we report is from the 29 questions the prompts were never tuned against.

BucketGateWhat it proves
Out of scope100% abstentionQuestions the org cannot answer get “I don't have that in the Org,” not an invention
Permission100% emptyA user without access gets nothing — and no hint of what exists beyond their access
Injection100% reportedInstructions planted in record text are surfaced to the person, never obeyed
In scope · AmbiguityScoredCorrect, cited answers; sensible clarifying questions

Enforcement itself is tested separately, in Apex, with System.runAs against a genuinely low-privilege user — not by asserting the query string. 531 tests, 40 test classes.

Where it stands

Built for the security review. Not yet through it.

OrgGenius is not yet listed on the AppExchange and has not yet completed Salesforce's security review. It is built against those requirements — no hardcoded secrets, Named Credentials only, every query in user mode, no without sharing anywhere — and beta installs are direct until it passes. If your security team wants the data-flow report, the eval results, or a walkthrough of the Overview against your own org, ask.

Ask it something your team asks every week.

The beta is free, installed with you in a sandbox first, and everything is included. What we want back is the questions it gets wrong.