Salesforce opportunity stages
One SOQL query per page over the opportunity history rows that entered your stage inside the window, and four fields on each: the row's id, the opportunity's id, the stage and the moment. Never the name, never the account, never the amount.
Access
- Kind
- Sign in on the vendor's page; nothing typed here
- What to give
- Connected app, client credentials
- Why that one
- A connected app's consumer key and secret, running as an integration user who can read opportunities. This source writes no spend: it reports what the spend produced.
What it attributes on its own
- From the source
- opportunities reaching the stage you name, at the moment each did · the opportunity's id and the stage · a link to the opportunity itself
- Needs a rule or a trace
- which opportunities an agent worked — Salesforce records no such thing, so cost per stage reached is a floor on the cost per agent-assisted one · the stage that counts and the workflow, which you tell us · the amount, the account and the name, which are not read
The addresses it calls
- https://login.salesforce.com
Only these. A call anywhere else is refused before it leaves, and every call is logged.
Connecting it
- Create a connected app with client credentials. Setup → App Manager → New Connected App. Enable OAuth Settings, tick Enable Client Credentials Flow, and choose an integration user to run as. Give that user read on Opportunity and nothing more. Open ↗
- Copy the consumer key and secret. Manage Consumer Details on the app, after the org's verification prompt.
- Name the stage and the workflow. The stage exactly as your org spells it, and the workflow whose spend these are the return on.
- Paste them and click Test and connect. Valistry reads the last seven days of stage changes, reports how many opportunities reached your stage, then fills thirty.
Salesforce does not know which opportunities an agent worked. Where your agent writes the opportunity id into a trace, we can join deal to spend exactly instead of by workflow, and the cost per stage reached stops being a floor.