> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce audit profile, Vortex IQ

> What the Vortex IQ Salesforce health audit checks: Salesforce: Deliverability, Journey Health, List Hygiene & Revenue-at-Risk

**[Nerve Centre KPIs](/nerve-centre/kpi-cards/salesforce) · [Audit Profile](/nerve-centre/kpi-cards/salesforce/audit) · [Sentiment Settings](/nerve-centre/kpi-cards/salesforce/sentiment)**

Salesforce CRM + Marketing Cloud data means little to a merchant unless the engagement layer is healthy and joined to realised revenue. This audit answers: (1) is the connected-app token healthy and scoped, (2) is the email/engagement layer keeping deliverability within reputation thresholds, (3) are journeys/automations live where they should be and list health holding, and (4) when attributed revenue diverges from ecom orders, where is revenue leaking between Salesforce and the commerce siblings?

## What this audit checks

### Authentication & access

* OAuth refresh token valid (auth probe on /services/oauth2/userinfo) and not revoked
* instance\_url resolves to the correct per-org host
* Connected-app scopes cover api + refresh\_token + offline\_access
* Environment (sandbox vs production) matches the configured login host

### Deliverability & sender reputation

* Bounce rate above 5% (sustained) - sender reputation at risk
* Spam complaint rate above 0.3% - deliverability degradation
* Delivery rate below 95% - inbox-provider rejection rising
* Unsubscribe rate above 2% - list fatigue or off-target content
* Deliverability decay trend > 2σ vs 30-day baseline before a major campaign

### Journey & automation health

* Welcome journey not Published (should be live)
* Abandoned-cart-equivalent journey not Published
* Journeys stuck in Draft > 30 days (launch tech debt)
* Published journey with stale enrollment\_count\_30d = 0 (trigger criteria broken)

### List & subscriber hygiene

* Active reachable subscribers shrinking > 10% vs prior period while send volume holds
* Fewer than 3 segments - limited segmentation
* Lists with no growth and rising unsubscribe = cold audiences to sunset
* Opted-out contacts still receiving sends (consent breach)

### Cross-channel: revenue-at-risk (the killer area)

* Email send attributedRevenue diverges materially from the commerce sibling's order revenue for the same utm\_source (attribution drift)
* Opportunity closed-won with no matching ecom order within 7d from the same contact (revenue-recognition gap)
* Repeat ecom customers (top decile per commerce sibling) with no open Salesforce opportunity (missed expansion signal)
* Paying ecom customers flagged HasOptedOutOfEmail or absent from Salesforce contacts (sync gap)

## Severity thresholds

| Signal             | Warn | Critical |
| ------------------ | ---- | -------- |
| `bounce_rate`      | 2    | 5        |
| `spam_rate`        | 0.1  | 0.3      |
| `unsubscribe_rate` | 0.5  | 2        |
| `delivery_rate`    | 95   | 92       |
| `open_rate`        | 10   | 5        |

## Data sources

* `GET https://login.salesforce.com/services/oauth2/userinfo` - Auth + org identity sanity
* `GET https://yourorg.my.salesforce.com/services/data/v60.0/sobjects/Contact` - Contact inventory + opt-out state
* `GET https://yourorg.my.salesforce.com/services/data/v60.0/sobjects/Opportunity` - Opportunity pipeline for revenue-recognition join
* `GET https://yourorg.my.salesforce.com/services/data/v60.0/query` - SOQL for derived counts (segments, lifecycle, closed-won)
* `GET https://rest.marketingcloudapis.com/messaging/v1/messageDefinitionSends` - Send stats: sent/delivered/opens/clicks/bounces/unsubscribes/spam/attributedRevenue
* `GET https://rest.marketingcloudapis.com/interaction/v1/interactions` - Journey inventory + status + trigger types + enrollment
* `GET https://rest.marketingcloudapis.com/contacts/v1/lists` - List/segment inventory + subscriber counts for list health
