Salesforce and CRM
The commercial system of record before an order exists: accounts, contacts, pipeline, activity and service cases.
01 What it holds
The data inside it
The relationship as the commercial team understands it — which is frequently not how the ERP, the billing system or the customer themselves understand it.
Account, Contact, Lead, Opportunity, OpportunityLineItem, Quote, Case, Campaign, CampaignMember, Task / Event, and a large number of custom objects
02 Getting the data out
Extraction, and the keys that decide whether it joins
Bulk API for volume, REST for incremental, CDC or platform events for streaming. API limits are real and are the usual reason a naive nightly extract starts failing as the org grows.
The 15-character case-sensitive Id and its 18-character case-insensitive form both circulate; mixing them breaks joins in a way that is very hard to see. Account hierarchies are optional and usually incomplete.
03 What goes wrong
The failures that look like success
Each of these produces a number that is plausible, reconciles to something, and is wrong. They are worth reading before the first extract, not after the first dispute.
Duplicate accounts as standard
Most orgs carry significant duplication, so pipeline by customer, win rate and share of wallet are all computed on a base that does not exist.
Stage is an opinion, close date is a hope
Both are edited manually, so pipeline metrics measure behaviour as much as demand.
Custom objects hold the real process
The standard model rarely survives implementation. The meaningful fields are usually custom, and undocumented.
History is not kept by default
Field history tracking is limited and selective, so "what did the pipeline look like last quarter" often cannot be answered from the source at all.
04 Joins that matter
What this system is worth joining to
| Join to | What it lets you answer |
|---|---|
| ERP | opportunity to order to invoice, the only honest revenue attribution |
| Marketing automation | campaign spend against the pipeline it actually created |
| Billing or subscription | contracted value against invoiced value |
05 Metrics it feeds
The numbers that come out of it
06 Questions
Frequently asked
Why is CRM data so often wrong?
Because it is entered by people whose job is selling, in fields that do not change their commission. The fix is fewer required fields joined to systems that already know the answer, not more mandatory input.
Should the golden customer record live in CRM?
The resolved record should live in the platform and be published back to CRM. CRM is one opinion about a customer; billing, service and ERP hold others, and resolution needs all of them.
Connect this system without replacing it
SCIKIQ reads it in place, resolves the entities inside it and governs what the fields mean.