HARNESS: CRM READ
Where did this quarter’s pipeline come from?
Every board asks the CMO this. Today the answer takes a week of CRM exports and an argument about attribution. This page shows the answer a read-only agent would prepare from Salesforce or HubSpot, tied to the letters of FOUND and DRONICS, so you walk in with a story you can defend.
- Lead
- Qualified
- Proposal
- Won
DemonstrationThe read-only rules, the audit log, the Salesforce and HubSpot mappers and the pipeline story calculator are written and tested in this repository. They run here only on example data for a company that does not exist. Not connected to any CRM.
Not built yetNot built. There is no sign-in, no MCP client and no API call to either system, and it has never run against a real account. Neither Salesforce nor HubSpot has reviewed, approved or partnered with us.
What changes for the CMO
What marketing used to do
At quarter end someone exports deals into a spreadsheet. Sales says a deal came from a cold call, marketing says the webinar, the partner team says the partner. The CMO takes a number to the board that three teams dispute, and deals with no source quietly go to whoever argues hardest.
What changes with agents
An agent can read the CRM every week with the same written rules. The rules are agreed once, before anyone sees the result, so the argument is about the rules and not about each deal. A gap shows up as a gap, with its reason, instead of being filled in.
What the agent will do
- Read deals from Salesforce or HubSpot with read-only permission.
- Work out open pipeline and won value by source and by letter, in code, the same way every time.
- List every deal it could not count, and why.
- Never change a record, fill in a missing source or send anything. The CMO decides what goes to the board.
THE EXAMPLE STORY
Example Company, 1 July to 30 September 2026
Example data, not a real company. Example Company is a made-up software firm in Pune. It keeps enterprise deals in Salesforce and inbound deals in HubSpot. Many companies use only one; the harness reads either.
- Open pipeline, as at 30 September
- ₹1.31 crore
- Won in the quarter
- ₹92 lakh
- Open pipeline tied to a letter
- 68%
- Records set aside
- 5
What the CMO could say to the board: of ₹1.31 crore open pipeline, ₹42 lakh came through referrals and resellers (DRONICS-R) and ₹35 lakh came through networks and alliances (DRONICS-N). ₹24.5 lakh has no source in the CRM, and we show it as unattributed rather than guess.
| Letter | Open pipeline | Won in the quarter | Sources counted |
|---|---|---|---|
| FOUND-F: Findable | ₹8,50,000 | ₹24,50,000 | Organic search, Visits from AI answers |
| DRONICS-D: Digital demand | ₹4,00,000 | ₹3,50,000 | Email, Paid search |
| DRONICS-R: Referrals and resellers | ₹42,00,000 | ₹28,00,000 | Partner referral, Reseller |
| DRONICS-N: Networks and alliances | ₹35,00,000 | ₹20,00,000 | Alliance partner, Marketplace |
Only four letters have a clear source rule in a CRM today. The other letters, such as Opinions or Community, shape deals that the CRM records under other sources. They are measured in other ways.
By source, as the CRM records it
Each source is tied to a letter only where the rule is clear. Where it is not, the row says why and has no letter.
| Source | Letter | Open | Won | Why this letter |
|---|---|---|---|---|
| Partner referral | DRONICS-R | ₹42,00,000 | ₹0 | A partner or referrer brought the deal: Referrals and resellers. |
| Marketplace | DRONICS-N | ₹35,00,000 | ₹0 | The buyer came through a cloud or software marketplace: Networks and alliances. |
| Reseller | DRONICS-R | ₹0 | ₹28,00,000 | A reseller brought the deal: Referrals and resellers. |
| Organic search | FOUND-F | ₹8,50,000 | ₹18,50,000 | The buyer found you by searching. That is the Findable letter. |
| No source recorded | None | ₹24,50,000 | ₹0 | The CRM holds no source for these deals. They are shown as unattributed, not guessed. |
| Alliance partner | DRONICS-N | ₹0 | ₹20,00,000 | A technology or alliance partner brought the deal: Networks and alliances. |
| Webinar | None | ₹12,00,000 | ₹0 | This source is not in the list the CMO agreed, so it has no channel or letter until a person adds it. |
| Events | None | ₹0 | ₹9,00,000 | Events serve several letters. The CMO decides which, case by case. |
| Offline or imported | None | ₹0 | ₹7,00,000 | Added by hand, imported or from an untracked source. No letter can be read from it. |
| Visits from AI answers | FOUND-F | ₹0 | ₹6,00,000 | An AI answer named you and linked to you. Being in the answer is the Findable letter. |
| Links from other websites | None | ₹5,00,000 | ₹0 | A link on another website. It may be press, a review site or a partner page. The CRM cannot tell which, so no letter is given. |
| Paid search | DRONICS-D | ₹4,00,000 | ₹0 | Paid demand: Digital demand. |
| DRONICS-D | ₹0 | ₹3,50,000 | Email campaigns sit in Digital demand. |
A note on HubSpot: its “Referrals” source means a link from another website, not a partner referral, so it is not counted under Referrals and resellers. In this example, partner deals sit in Salesforce. Lost deals (1, worth ₹15 lakh) are counted in the totals but not credited to any letter.
Set aside, with the reason
These records were not counted. Each needs a person to fix it in the CRM. The agent does not fix it for them.
| Deal | CRM | Reason |
|---|---|---|
| Example: shift planning, airport services | Salesforce | Amount is empty in Salesforce. Not counted; we do not estimate it. |
| Example: payroll renewal, cement maker | Salesforce | Stage "Verbal Yes" is not in the company's stage list. A person must add it; we do not guess from the name. |
| Example: onboarding for a call centre | HubSpot | Stage "987654321" in pipeline "default" is not in the pipeline list. A person must add it; we do not guess from the name. |
| Example: HR suite for an architecture firm | HubSpot | amount is empty in HubSpot. Not counted; we do not estimate it. |
| Example: payroll for an overseas office | HubSpot | In USD, and this story is in INR. No exchange rate is applied. |
What the agent was allowed to do
Every request goes through a permission check written in code, and every request is recorded, allowed or not. The record cannot be edited; a correction is a new line that points at the old one. In this example we added 2 requests that the rules must refuse, so you can see them refused.
| When (IST) | Who | Asked for | Result |
|---|---|---|---|
| 30 September 2026, 18:00 | Reader agent | salesforce:read:opportunity-stages | Allowed |
| 30 September 2026, 18:01 | Reader agent | salesforce:read:opportunities | Allowed |
| 30 September 2026, 18:02 | Reader agent | salesforce:read:accounts | Allowed |
| 30 September 2026, 18:03 | Reader agent | hubspot:read:pipelines | Allowed |
| 30 September 2026, 18:04 | Reader agent | hubspot:read:deals | Allowed |
| 30 September 2026, 18:05 | Reader agent | salesforce:write:opportunities | Refused: Write is never granted to a read harness. A person makes changes in their own tool. |
| 30 September 2026, 18:06 | Reader agent | hubspot:read:contacts | Refused: "hubspot:read:contacts" was not granted. Granted: hubspot:read:deals, hubspot:read:pipelines. |
What is built, and what is not
Built in this repository, tested on example data
The read-only permission rules, the record of requests, the mapping of Salesforce opportunities and HubSpot deals into one shape, and the calculator behind this page. The field names come from the two vendors’ own developer pages, which we read on 19 October 2026.
Not built yet
No live connection to Salesforce or HubSpot, no sign-in and no approval queue. It has never read a real company’s CRM. Neither vendor has reviewed, approved or partnered with Foundronics, and their names here describe the systems a marketer is likely to use. Which CRM source counts as which channel is agreed with each CMO before the first run.
Walk into the board meeting with a story you can defend.
The CRM harness is not built yet. Start with the free FOUND Score, or talk to us about your own systems.