> ## 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.

# Zoho CRM audit profile, Vortex IQ

> What the Vortex IQ Zoho CRM health audit checks: Zoho CRM: Deliverability, Automation Health & Revenue Attribution

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

Zoho CRM numbers mean little to a merchant unless deliverability is sound, automation is actually running, and the revenue email claims to drive is real. This audit answers: (1) is the OAuth token / data-centre healthy and the org readable, (2) is outbound email deliverability in safe bands (bounce / spam / unsubscribe), (3) are email campaigns and workflow rules (flows) live or quietly stalled, and (4) - the stickiness test - does Zoho's email-attributed revenue reconcile with the ecom sibling's actual order revenue, or is it over-/under-attributing and leaking through refunds?

## What this audit checks

### Authentication & access

* OAuth refresh token valid (auth on /crm/v5/org) and not revoked/expired
* API domain matches the org's data centre (.com / .eu / .in / .com.au / .jp / .ca)
* Granted scopes cover Contacts, Leads, Deals, Campaigns and Settings READ
* Org not over its daily API credit budget (reads not throttled to 429)

### Deliverability & sender health

* Bounce rate above 5% (sustained) over the trailing 30 days
* Spam-complaint rate above 0.3% (sender-reputation risk)
* Unsubscribe rate above 2% (content/targeting problem)
* Delivery rate below 95% (auth or list-hygiene rot - check SPF/DKIM)
* Open rate below 10% or click-to-open below 3% (engagement decay)

### Automation & campaign health

* Workflow rules (flows) paused-heavy: >50% of rules in paused/archived state
* Active workflow rule with last\_executed\_at >24h ago (trigger criteria broken)
* Campaigns stuck in Planning/Scheduled past their send window
* Campaign sent with zero opens after 24h (delivery or rendering failure)

### List & subscriber hygiene

* List/segment sprawl: many custom views with low active-member share (audience decay)
* Active subscriber base (Email\_Opt\_Out = false) shrinking >10% vs prior period
* Static lists not refreshed in >90 days (stale targeting)
* Custom-view segments returning zero members (broken filter criteria)

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

* Email-attributed revenue diverges materially from the ecom sibling's matched order revenue (over-/under-attribution)
* Refund rate on email-attributed orders climbing while sends rise - measured-but-leaking revenue
* Paying ecom customers (sibling shopify/bigcommerce/adobe) unsubscribed or bounced in Zoho CRM - deliverable revenue cut off
* Won Zoho deals with no matching ecom order within 7 days (revenue-recognition gap)

## Severity thresholds

| Signal                       | Warn | Critical |
| ---------------------------- | ---- | -------- |
| `bounce_rate_pct`            | 2    | 5        |
| `spam_complaint_rate_pct`    | 0.1  | 0.3      |
| `unsubscribe_rate_pct`       | 0.5  | 2        |
| `delivery_rate_pct`          | 98   | 95       |
| `open_rate_pct`              | 20   | 10       |
| `refund_rate_pct`            | 1    | 5        |
| `paused_workflow_share_pct`  | 40   | 60       |
| `active_subscriber_drop_pct` | 10   | 25       |

## Data sources

* `GET {api_domain}/crm/v5/org` - OAuth token + org/data-centre sanity
* `GET {api_domain}/crm/v5/Contacts` - Subscriber base, Email\_Opt\_Out counts, list/segment membership
* `GET {api_domain}/crm/v5/Deals` - Won-deal vs ecom-order reconciliation (revenue-recognition gap)
* `GET {api_domain}/crm/v5/Campaigns` - Campaign status, delivery/open/click/bounce/spam/unsub + attributed revenue
* `GET {api_domain}/crm/v5/actions/workflow_rules` - Workflow-rule (flow) status, trigger types, execution recency
* `GET {api_domain}/crm/v5/settings/custom_views` - List/segment inventory, member + active-member counts for hygiene checks
