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

# Ecom Customers Absent from D365 Customer Master, Microsoft Dynamics 365

> Ecom Customers Absent from D365 Customer Master: ecom customers with active orders who have no D365 record, so revenue cannot post. How to read it, why it matters, and how to act on it.

**Card class:** [Cross-Channel](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> A count of ecom customers with active orders who have no record in the D365 customer master. Until they are promoted, their orders cannot be billed and revenue cannot post.

## At a glance

> The headline count of commerce customers with at least one active, non-cancelled order who do not yet exist in the D365 customer master. A commerce order cannot become a D365 Sales Order, a free-text invoice, or GL revenue until the customer exists as a master record. Every customer in this count represents revenue that is committed on the commerce side but structurally blocked from posting in D365. It is the customer-level twin of the order-level [Commerce Orders Without Business Central Sales Order](/nerve-centre/kpi-cards/microsoft-dynamics/commerce-orders-without-business-central-sales-order) card: fix the customer here and the blocked orders there clear in the same sync.

|                    |                                                                                                                                                                                                                                                                                                                       |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts** | A distinct count of commerce customers (Shopify, BigCommerce, Adobe Commerce) with one or more active orders in the trailing window who have no matching D365 Customer record on the field-mapped key (typically email, external customer ID, or VAT/tax ID). Cancelled orders and quote-only customers are excluded. |
| **Currency**       | This is a count, so it is currency-agnostic. Each underlying customer carries the blocked order value in commerce-platform currency plus the Reporting Currency equivalent in the drill-down.                                                                                                                         |
| **Multi-Company**  | Each absent customer carries the *expected* D365 legal entity from the field map (by ship-to country, platform tag, or per-customer override). If the mapping is ambiguous, the customer is flagged so onboarding knows which entity to create the record in.                                                         |
| **Time window**    | `7D` (customers with active orders in the trailing 7 days)                                                                                                                                                                                                                                                            |
| **Alert trigger**  | `>10 with active orders absent` (more than 10 customers with active orders and no D365 record fires the alert)                                                                                                                                                                                                        |
| **Roles**          | owner, finance, marketing, operations                                                                                                                                                                                                                                                                                 |

## Calculation

Calculated automatically from your Microsoft Dynamics 365 data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A US wholesale distributor on Finance & Operations plus BigCommerce B2B and Shopify Plus DTC, two legal entities (US Trade Inc, USD, and CA Trade ULC, CAD). The 7-day window covers 06 Apr 26 to 12 Apr 26.

| Metric                                                       | Value    |
| ------------------------------------------------------------ | -------- |
| Ecom customers absent from D365 master (this card)           | 17       |
| Of which B2B (BigCommerce / Adobe)                           | 6        |
| Of which DTC (Shopify)                                       | 11       |
| Blocked order value behind the absent customers (7d)         | \$61,200 |
| Largest single blocked customer (Wholesale-X)                | \$18,400 |
| Customers also present in Dataverse but not promoted to D365 | 4        |

Four things to notice:

1. **17 customers exceed the alert threshold of 10.** The alert fired, and the drill-down ranks the 17 by blocked order value so onboarding works the biggest revenue first. The top customer alone, Wholesale-X, is holding \$18,400 of orders that cannot be invoiced because there is no customer to invoice.
2. **The split between B2B and DTC drives different actions.** The 6 B2B customers need manual onboarding (credit check, tax-ID validation, payment terms), so they sit with the AR team. The 11 DTC customers are usually auto-creatable: the standard sync flow can promote them with default settings, so they should clear on the next connector run unless a field is failing validation.
3. **4 of these customers already exist in Dataverse but were never promoted to D365.** That is a different failure mode: the record made it into the Common Data Service / Dataverse layer (perhaps from Dynamics 365 Sales) but the dual-write or promotion step into the F\&O customer master never completed. Those four belong on the [Customers in Dataverse Not Promoted to D365](/nerve-centre/kpi-cards/microsoft-dynamics/customers-in-dataverse-not-promoted-to-d365) card, and this card cross-references them so onboarding does not create a duplicate.
4. **The non-cross-channel sibling counts the same population from the D365 side.** The [Ecom Customers Absent from D365](/nerve-centre/kpi-cards/microsoft-dynamics/ecom-customers-absent-from-d365) card frames the gap as a connector-health metric; this cross-channel version frames it as revenue at risk by attaching the blocked order value. Both should agree on the headcount; if they diverge, the field-map key differs between them and onboarding should reconcile.

## Sibling cards merchants should reference together

This card is the customer-level entry point into the ecom-to-ERP onboarding cluster. Pair it with these to close each gap.

| Card                                                                                                                                                    | Why pair it with Ecom Customers Absent from D365 Customer Master                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| [Ecom Customers Absent from D365](/nerve-centre/kpi-cards/microsoft-dynamics/ecom-customers-absent-from-d365)                                           | The non-cross-channel twin. Same population framed as connector health rather than revenue at risk; headcounts should agree.          |
| [Customers in Dataverse Not Promoted to D365](/nerve-centre/kpi-cards/microsoft-dynamics/customers-in-dataverse-not-promoted-to-d365)                   | The subset that reached Dataverse but never completed dual-write into the F\&O master. A different fix from a true greenfield create. |
| [Commerce Orders Without Business Central Sales Order](/nerve-centre/kpi-cards/microsoft-dynamics/commerce-orders-without-business-central-sales-order) | The order-level consequence. Promote the customer here and the matching blocked orders there clear.                                   |
| [Ecom Orders Missing Matching D365 Free-Text Invoice](/nerve-centre/kpi-cards/microsoft-dynamics/commerce-orders-without-business-central-sales-order)  | The downstream billing gap once the customer exists but the invoice still has not posted.                                             |
| [Active Customers](/nerve-centre/kpi-cards/microsoft-dynamics/msd-active-customers)                                                                     | The successfully-mapped complement: customers who do exist in D365 and are transacting.                                               |
| [Power Automate Flow Failures (Ecom Integration)](/nerve-centre/kpi-cards/microsoft-dynamics/power-automate-flow-failures-ecom-integration)             | When the auto-create flow is failing, this card explains why DTC customers are not clearing on their own.                             |

## Reconciling against Microsoft Dynamics 365

**Where to look in Business Central / Finance & Operations:**

> **Finance & Operations: Accounts receivable > Customers > All customers** (search for the commerce email or external ID, expect no match)
> **Finance & Operations: Data management > Dual-write > Customers** (check whether the record stalled mid-promotion)
> **Business Central: Sales > Customers** filtered to the commerce external ID (no match = absent)
> **Business Central: AL Extension connector logs** (customer-create failures and validation errors)

No native D365 screen lists "commerce customers who do not exist here yet", because D365 cannot enumerate records it does not hold. The customer master only knows who is in it. This card builds the missing set by reading the commerce platforms and subtracting the customers already present in D365.

**Why our number may legitimately differ:**

| Reason                       | Direction              | Why                                                                                                                                                                                                                      |
| ---------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Field-map key choice**     | Either                 | If the field map joins on email but a customer was created in D365 under a different email (a buyer vs an AP contact), they show as absent here even though a record exists. Confirm the join key.                       |
| **Sync timing**              | Card more inclusive    | A customer whose order is \< 15 minutes old may still be in `Awaiting Sync`; the auto-create flow has not run yet. The card counts them; a manual export run after the sync would not.                                   |
| **Dataverse staging**        | Card vs Dataverse view | A customer in Dataverse but not promoted to the F\&O master counts as absent here. The Dataverse customer list would show them as present, which is why those rows are cross-referenced to the dedicated promotion card. |
| **Multi-entity expectation** | Either                 | A customer may exist in one legal entity but the field map expects them in another. They show absent for the expected entity even though a record exists elsewhere.                                                      |
| **Quote-only customers**     | Card lower             | A commerce customer with only quotes and no active orders is excluded by definition, so a manual list of all commerce contacts will be larger than this count.                                                           |

**Cross-connector reconciliation:**

The blocked order value behind these absent customers is the slice of commerce revenue that cannot reach the GL. Those same orders count toward [shopify.total\_revenue](/nerve-centre/kpi-cards/shopify/total-revenue), [bigcommerce.total\_revenue](/nerve-centre/kpi-cards/bigcommerce/total-revenue), and [adobe\_commerce.total\_revenue](/nerve-centre/kpi-cards/adobe-commerce/total-revenue) on the commerce side, where revenue is recognised at checkout, but they are absent from D365 GL revenue until the customer is promoted and the orders post. The persistent gap between commerce headline revenue and D365 booked revenue is, in part, this card and its order-level siblings.

## Known limitations / merchant FAQs

**A DTC customer just ordered for the first time. Will they always show as absent?**
Briefly. Most DTC sync flows auto-create a D365 customer record with default settings on the next connector run, so a Shopify shopper usually clears within minutes. They only persist here if a required field (tax group, posting group, currency) fails validation. B2B customers stay absent until a human onboards them.

**What is the difference between this card and the non-cross-channel version?**
Same underlying population, different lens. The non-cross-channel [Ecom Customers Absent from D365](/nerve-centre/kpi-cards/microsoft-dynamics/ecom-customers-absent-from-d365) card frames the gap as connector health (is the sync working?). This cross-channel card frames it as revenue at risk by attaching the blocked order value and the expected legal entity. The headcounts should match.

**Why is a customer "in Dataverse but not promoted" different?**
Because the fix is different. A greenfield customer needs creating from scratch. A Dataverse customer already exists in the Common Data Service layer and just needs the dual-write or promotion flow to complete into the F\&O master. Creating them again would make a duplicate. Those rows are routed to [Customers in Dataverse Not Promoted to D365](/nerve-centre/kpi-cards/microsoft-dynamics/customers-in-dataverse-not-promoted-to-d365).

**Can Vortex IQ create the D365 customer for me?**
For low-risk DTC cases, the auto-create flow can promote them on a schedule. B2B always requires human review for credit, tax, and terms. Vortex IQ flags the gap and can trigger the flow; it does not silently write B2B masters into D365.

**Why does the count use a 7-day window?**
Because the card is about customers actively transacting now. A 7-day window keeps the focus on live revenue at risk rather than a long tail of dormant accounts. The underlying drill-down can be widened during onboarding cleanups.

**Multi-entity: which legal entity should the customer be created in?**
The field map decides, usually by ship-to country, platform tag, or a per-customer override. Each absent customer carries the expected entity so onboarding creates the record in the right place and the orders post against the correct company.

**What is the most common reason a DTC auto-create fails?**
A missing posting group, VAT/tax group, or currency code that the customer template does not default. The order line item not existing in the D365 item table also blocks it. The [Power Automate Flow Failures](/nerve-centre/kpi-cards/microsoft-dynamics/power-automate-flow-failures-ecom-integration) card surfaces the specific failure.

**Can I export the list?**
Yes, ranked by blocked order value descending, with the expected legal entity and the field-map join status per customer. It is the onboarding team's daily worklist.

***

### Tracked live in Vortex IQ Nerve Centre

*Ecom Customers Absent from D365 Customer Master* is one of hundreds of KPI pulses Vortex IQ tracks across Microsoft Dynamics 365 and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
