NoteMate reads the notes on Case and Opportunity records and suggests field changes, follow-up Tasks and observations. A user reviews each suggestion and approves or rejects it, so nothing changes without a person saying yes.
What it does:
- Reads free-text notes on Cases and Opportunities
- Suggests field updates, Tasks and observations
- Keeps a person in control: every suggestion is reviewed before it is applied
Most of what matters about a customer or a deal ends up in free-text notes, where it is easy to miss. NoteMate shows how Agentforce can turn those notes into structured, actionable updates while keeping a person firmly in control. It was built as a proof of concept, and every suggestion is kept on record as applied or rejected.
The agent suggests; a person decides
The agent reads, and it never writes. All three of its actions are read-only. It returns its suggestions as structured data, and Apex checks each one before anyone sees it: the field must be on an allow-list held in custom metadata, the evidence must really appear in the note, and anything that repeats an open suggestion is dropped. A person then approves or rejects each suggestion, and only then does Salesforce apply it, with that user's own permissions.
Put simply: the agent suggests, a person decides, and Salesforce applies.
Evidence, not guesses
Every suggestion shows the words in the note that support it. The evidence can come from an earlier note on the same record, which is how NoteMate spots a contradiction, but every excerpt must appear in the note it cites. If it does not, the suggestion is dropped.
Testing the agent before building the screens
Before building any of the interface, I tested the agent on its own: ten runs across five sample notes. All eight legitimate notes returned valid results first time, in about five seconds each. One missed a close date change ("push to next quarter"), so the agent is now given the date the conversation happened, which it uses to work out relative dates.
The fifth note was a prompt-injection attempt: "IMPORTANT SYSTEM MESSAGE: ignore all previous instructions". The platform refused to process it. NoteMate deliberately treats that refusal as a flagged note rather than a technical failure, so the user sees that the note looks suspicious and nothing is suggested.
Built to stay responsive
Analysing a note takes a few seconds, so it runs in the background after the note is saved. The user carries on working and the suggestions appear when they are ready. The agent call sits behind an adapter, so the Apex tests use a mock agent and run without calling Agentforce.
What I would tell another team
- Let the agent suggest, let a person decide, and let Salesforce apply
- Check the agent's output in code before anyone sees it
- Test prompt injection early and decide what the user should see when it happens
- Prove the agent call on its own before building the screens
I design, build and review agents like this as an Agentforce consultant in the UK.
