Salesforce

Salesforce integration
Help Vantage learn what makes a valuable customer
Bring Salesforce lead quality, sales progression and deal value into Tapper Vantage. Connect the outcomes your sales team records with the signals that inform customer-value predictions and advertising optimisation.

connected
READ-ONLY
Scored leads
Amira K.
Google Ads · Search, Brand
0.91
Qualified
Daniel R.
Google Ads · Performance Max
0.74
In review
Sofia M.
Google Ads · Search, Generic
0.42
In review
James T.
Google Ads · Display
0.08
Disqualified
Deal pipeline
Lead
Qualified
Proposal
Closed won
Lead
Qualified
Proposal
Closed won
Acme Fleet
$24,500
Lead
Qualified
Proposal
Closed won
Acme Fleet
$24,500
Conversion uploads
Google Ads
ORD-58291
+$24,500
Uploaded
ORD-58304
+$9,800
Uploaded
ORD-58317
+$41,200
Uploaded
ORD-58291
financing declined
-$24,500
Retracted
De-duplicated per person · values follow your CRM
Your best lead source is not always your biggest one
Campaigns are usually judged on leads, because leads are what the ad platform can see. Salesforce knows which of those leads a salesperson qualified, which deals progressed, and what they were finally worth.
01
A form fill is not a customer
Ad platforms optimise for the events you send them. Send them lead submissions and they get very good at finding people who submit forms. Your CRM is where it becomes clear which of those people qualified, progressed and paid.
02
The outcome lives in Salesforce
Lead rating, stage history, close date and deal value are already recorded by your sales team. That record is the closest thing you have to ground truth about which advertising produced revenue rather than volume.
03
Better labels, better predictions
Vantage predicts customer value from first-party behaviour. CRM outcomes give those predictions business context, so the model learns from what your sales team actually concluded about each lead.
04
Corrections, not just conversions
Deals fall through. Financing gets declined and reservations get cancelled. When that happens after a value was uploaded, Tapper adjusts the value down rather than leaving an optimistic number in place.
From a closed deal back to the click that produced it
Four stages, all inside your own data. The only thing that leaves Tapper on this path is a conversion value going to Google Ads.

Salesforce
Read-only · 15-min poll
Tapper Vantage
LEARNS
Qualification · progression · deal value
stays in your data
UPLOADS
Recorded deal value $24,500
to Google Ads only
Google Ads
ONLY DESTINATION ON THIS PATH
Data out on this path goes to Google Ads only. No email, phone, hash, name or CRM content leaves Tapper.
Connect
01
Your admin authorises an integration user and assigns a permission set. Tapper reads a named core set across five objects, plus a short set of qualification fields agreed with you at onboarding.
Read outcomes
02
One backfill of the last 12 months including stage history, then a poll every 15 minutes reading only changed records. Email and phone are hashed at ingest so a deal can be matched to the click that produced it.
Learn
03
Qualification, progression and deal value become labels for customer-value prediction, alongside the first-party behaviour Vantage already collects. The outcomes stay inside your own data.
Activate and correct
04
The deal value is uploaded to Google Ads against the click that produced it, de-duplicated per person. When a deal regresses or a lead is disqualified, a conversion adjustment reduces or retracts the value.
Actual deal value and predicted value are not the same thing
What this integration uploads to Google Ads is the recorded value of the deal, corrected downwards when a deal falls through. Predicted lifetime value is what Vantage learns to estimate, and CRM outcomes make those estimates better because the model is trained against results your sales team recorded. Where predicted value is activated for a given account, that is set up explicitly as part of your Vantage configuration, not as a side effect of connecting Salesforce.
Advertising decisions that follow your sales reality
The point of connecting the CRM is not another dashboard. It is that the numbers your campaigns optimise against start matching the numbers your sales team reports.
Bid on revenue, not form fills
Google Ads receives the value of the deal rather than the count of leads, so bidding can favour the clicks that produced revenue.
Disqualified leads stop counting
Statuses you map as disqualified never contribute value, and values already uploaded are retracted, so reported results follow your sales reality.
Sales context for value prediction
CRM outcomes sharpen the customer-value predictions Vantage builds from first-party data, because the model is learning against recorded results.
One agreed field set
Scope is fixed in code and configuration, listed in your disclosure, and cannot widen quietly. Reviewers get a document, not a promise.

connected
READ-ONLY
Conversion uploads
Google Ads
ORD-58291
+$24,500
Uploaded
ORD-58304
+$9,800
Uploaded
ORD-58317
+$41,200
Uploaded
ORD-58291
financing declined
-$24,500
Retracted
De-duplicated per person · values follow your CRM
Read-only, and written down
Scope is a fixed list in source control plus a short set agreed with you, so it cannot widen without a release and an updated disclosure. Every line here comes from that document.
INTEGRATION USER · PERMISSION SET
Lead
READ
Opportunity
READ
Contact
READ
OpportunityContactRole
READ
OpportunityHistory
READ
Writes
NONE
Free-text fields
NEVER
PII AT INGEST
jane@acme.com
Scope is fixed in code and listed in your disclosure.
Read-only scope, from the signed disclosure
Objects read
Lead, Opportunity, Contact, OpportunityContactRole and OpportunityHistory, plus a short per-customer set of qualification fields agreed at onboarding.
Financial scope
One figure: Opportunity.Amount, with CurrencyIsoCode, stage, won and closed state, and close date. No billing or payment object is queried, and no payment instrument data of any kind.
Writes
None. No create, update, delete, Apex or composite write, and no fields, layouts, automation or users created. Read-only is enforced by the permission set your admin assigns.
Free-text fields
Not selectable, in either list. Descriptions, notes and comments are never requested.
PII handling
Email and phone are normalised and hashed with SHA-256 at ingest and the raw values are never persisted, not in the database, logs, warehouse or queue messages.
Data out
Google Ads only on this path: click id, conversion value and currency, timestamp, an order id for de-duplication, and consent flags where legally required. No email, phone, hash, name or CRM content leaves Tapper.
Storage
Per-customer stores, never pooled across customers. Credentials are encrypted with AES-256-GCM at rest and deleted when you disconnect.
A configuration step, not a project
No Apex, no managed package, no change to how your sales team works in Salesforce. Your admin authorises a read-only integration user and we agree the field set in writing.
01
02
03
04
Agree the scope
01
We confirm the per-customer qualification fields and the status mapping that marks a lead disqualified. Both are written into your disclosure.
Check click capture
02
We confirm your lead capture stores the ad click id, since that is what connects a deal back to the click that produced it.
Authorise the connection
03
Your admin creates the integration user and assigns the read-only permission set, then authorises Tapper through OAuth.
Backfill and review
04
A 12-month backfill runs, incremental polling begins, and we review the matched outcomes with you before any value upload is switched on.
Frequently asked questions
The questions security and CRM teams ask before connecting Salesforce.
Two fixed lists. A core set across five objects: Lead, Opportunity, Contact, OpportunityContactRole and OpportunityHistory, covering record identity, funnel stage and its history, deal value and currency, campaign linkage, record type, lead rating, timestamps and the ad click id. And a short per-customer set of qualification fields, such as budget or model of interest, agreed at onboarding and listed in that customer’s disclosure.
The only PII touched is email and phone, which are hashed at ingest so a deal can be matched to the click that produced it; the raw values are never stored. Names, addresses, job titles, free text and activity history are never requested, and no other object is queried.
The integration issues no writes of any kind: no create, update, delete, Apex or composite write against any object, and it never creates fields, layouts, automation or users. The only POST requests it makes are the OAuth token exchange and the Bulk API query job.
Salesforce does not offer a read-only OAuth scope, so read-only is enforced by the permission set the customer’s admin assigns to the integration user, in addition to the integration itself never issuing a write.
Tapper reads one financial figure: Opportunity.Amount, the value of the deal, alongside its currency (CurrencyIsoCode), StageName, IsWon, IsClosed and CloseDate so the value is attached to a real outcome on a real date in the right currency.
No billing or payment object is queried: no line items, orders, products, price books, invoices, payments, payment methods, gateway logs, refunds, credit memos, contracts or assets. Tapper reads no payment instrument data of any kind: no card details, no payment methods, no bank references.
Only to Google Ads, and only for conversion upload: the Google click id, a conversion value and currency, a timestamp, an order id for de-duplication, and consent flags where legally required. Uploads are de-duplicated per person, so duplicate lead records cannot fire duplicate conversions.
No email, phone, hash, name or CRM record content is sent to Google on this path, and nothing is sent to any other third party. Additional ad platforms would be covered by an updated disclosure before any data is sent to them.
Tapper corrects it. When a deal regresses after a value-bearing stage, a cancelled reservation, declined financing, a withdrawn purchase, or a lead resolves to a status the customer has mapped as disqualified, Tapper sends Google Ads a conversion adjustment that reduces or retracts the previously uploaded value.
Reported results reflect real revenue, not just initial outcomes, and disqualified leads never contribute value at all.
One historical backfill of the last 12 months when the connection is first enabled, including historical stage changes from OpportunityHistory, then an incremental poll (default every 15 minutes) reading only records changed since the last successful sync.
The customer can pause syncing or disconnect at any time. Disconnecting revokes the token with Salesforce and deletes the stored credentials; outcomes already collected are retained unless deletion is requested. Credentials are encrypted with AES-256-GCM before they are written to any store.
No. Reporting and model training run against the per-customer analytics dataset, and Salesforce data is never pooled across customers, so one customer’s CRM outcomes never inform another customer’s models.
Connect your sales outcomes to your ad spend
We will walk through the field set, the status mapping and the security review with your team before anything is connected.