# Demo dataset blueprint — synthetic seed records

Concrete, **fully synthetic** seed data for the Acme Catering catering CRM demo in the Acme Catering demo org
(`<your-org>` / CX26). Nothing here is a real Acme Catering customer, contact, or figure.

**Frame:** in this demo org, **Acme Catering is the company using D365 Sales**. The Accounts are
**Acme Catering's catering customers**. Users are Acme Catering CSMs.

**Before creating anything:** describe the target tables. Logical names, option-set values, and
required fields must come from the live org, never from this file. This file specifies *what* to
create; the org tells you *how*.

---

## Geography

Acme Catering is headquartered in Chicago. Anchor the dataset in **Chicago metro**, with a secondary
cluster for national-account and multi-location scenarios. Keep addresses plausible but generic.

---

## Demo users (CSMs)

Map to real enabled users in the demo org — do **not** create licensed users. Read the org's
`systemuser` list first and pick 3–4, then assign these personas to them.

| Persona | Role | Used in |
|---|---|---|
| **CSM A** | Catering Sales Manager — Chicago North territory | S1, S2, S3, S5 |
| **CSM B** | Catering Sales Manager — Chicago South / Suburbs | S3, S4, S5 |
| **CSM C** | Catering Sales Rep — National Accounts | S4, S5 |
| **Leader** | Director of Catering — manager of the above | S3 approvals, S5 |

Record the actual GUID↔persona mapping in the run output so the presenter knows who to log in as.

---

## Scenario 1 — Lead-to-Customer Lifecycle

### Leads
| Name | Company | Source | Owner | Purpose |
|---|---|---|---|---|
| Marcy Ellison | **Harborline Logistics** | Web form | CSM A (auto-assigned) | The hero lead — worked live |
| Dennis Prakash | **Harborline Logistics Inc.** | Phone | CSM A | **Near-duplicate** — trips detection on create |
| Renee Watts | **Lakeshore Dental Partners** | Web form | CSM B | Second lead so the queue isn't a single row |
| Tomas Kirby | **Vantage Point Advisors** | Referral | CSM A | Qualified, ready to convert |

- Include a **held-back lead** to create *live* during the demo (manual creation proof point).
- Populate lead fields: est. headcount, event date, delivery vs pickup, budget.

### Opportunity / Quote path (from Tomas Kirby / Vantage Point Advisors)
- Opportunity: **"Vantage Point Advisors — Quarterly Partner Lunches"**, est. value ~$18,500
- Quote with **line items** drawn from catering products (below), showing a **volume discount**
- Quote revision #2 to prove revision handling

### Activities (spread across the above)
- 2 completed phone calls, 1 completed email, 1 completed appointment
- 2 open tasks — one **overdue**, one **due today**
- Enable audit history on lead/account/opportunity

---

## Scenario 2 — Olo Integration and Ownership Preservation

### The worked lead
- Lead: **Priya Raman — Northline Health Group (Downtown Clinic)**
- Owner: **CSM A**. Source: Web form. Created ~14 days before demo day
- History: 3 completed activities, 1 open follow-up task — proves it was genuinely worked

### The inbound Olo order
- Simulated Olo order matching on **email + phone**
- Order value ~$1,240, delivery, ~40 headcount
- Must carry an **external order ID** and **source = Olo** so attribution is visible post-conversion

### The multi-match exception (customer explicitly asks about this)
Create **two** plausible matches for a second inbound order:
- **Contact:** Priya Raman @ northlinehealth.example — Downtown Clinic
- **Contact:** P. Raman @ northlinehealth.example — Northline Health Group (parent)

Same domain, similar name, different account. This is the "what happens if multiple records match"
moment. Do not resolve it in the data — the ambiguity *is* the demo.

### Post-conversion state
- Account created from lead retains **CSM A as owner**
- **Source attribution preserved** (original web-form source, not overwritten by Olo)
- Order history visible on the account timeline

---

## Scenario 3 — Ownership Change and Sales Credit Governance

### The contested account
- **Account: Cardinal Ridge Corporate Center** — a multi-tenant office campus, high catering volume
- Current owner: **CSM A**
- Claimant: **CSM B**

### Make the dispute genuinely arguable
| Actor | Activity to seed |
|---|---|
| CSM A | 4 activities over the prior 90 days — original relationship, first order |
| CSM B | 5 activities in the last 30 days — including the meetings that led to the recent sale |

### The recent sale (the crux)
- Closed-won opportunity: **"Cardinal Ridge — Q3 All-Hands Catering"**, ~$22,400
- **Close date: 6 days before the ownership-change request** — the "order placed before approval" case

### The request
- Ownership change request record: CSM B requesting transfer, with justification text
- Approval chain: **Level 1 = Director of Catering**, **Level 2 = VP** — status **Pending**
- Audit/approval history populated with prior decisions on other accounts, so the history view isn't empty

### Supporting
- 2 previously-resolved ownership changes on other accounts (one approved, one rejected) to make the
  ownership/dispute report meaningful

---

## Scenario 4 — Hierarchy, Duplicates, Data Governance

### The healthcare hierarchy (3 levels — answers "how many levels are supported")

```
Northline Health Group                      (L1 · parent · owner: CSM C)
├── Northline Medical Center – Chicago       (L2 · owner: CSM C)
│   ├── Northline MC – Cardiology Pavilion   (L3 · owner: CSM C)
│   └── Northline MC – Outpatient Surgery    (L3 · owner: CSM A)   ← different owner
├── Northline Health – Oak Park Clinic       (L2 · owner: CSM B)   ← different owner
└── Northline Health – Naperville Campus     (L2 · owner: CSM C)
```

This directly proves **"can ownership differ by location" = yes**, and shows **3 levels**.

### Contacts (spread across facilities)
- Dr. Alan Whitfield — Chief of Staff, Northline Medical Center
- Gina Alvarez — Practice Administrator, Oak Park Clinic
- Marcus Bell — Facilities Manager, Naperville Campus
- Priya Raman — Downtown Clinic (links back to Scenario 2)

### Duplicate pairs — each created via a **different channel**, with conflicting values

**Pair 1 — channel conflict**
| | Record A | Record B |
|---|---|---|
| Name | Northline Health – Oak Park Clinic | Northline Oak Park Clinic |
| Source | Web form | ezCater |
| Created | 14 months ago | 3 weeks ago |
| Phone | 312-555-0142 | *(blank)* |
| Address | Full address | Partial |
| History | 6 orders | 1 order |

→ Older record has history, newer has cleaner naming. **Survivor rules visibly matter.**

**Pair 2 — Olo-generated**
| | Record A | Record B |
|---|---|---|
| Name | Naperville Campus – Northline | Northline Health – Naperville Campus |
| Source | Olo | Manual |
| Email | shared domain | shared domain |
| Owner | CSM C | CSM B |

→ Merging changes ownership. Forces the ownership-on-merge conversation.

**Pair 3 — contact-level duplicate**
- Two contact records for **Gina Alvarez** with different emails (work vs personal) and different
  loyalty IDs — exercises the **email / phone / device ID / loyalty ID** identity-resolution keys.

### Validation case
- One account (**"Beacon Street Medical"**) missing required fields — industry, billing address,
  primary contact — to demo required-data validation.

---

## Scenario 5 — CSM Productivity and Leadership Visibility

### CSM A's day (the "morning of" view)
- **8 open tasks**: 3 overdue, 3 due today, 2 due this week
- 2 appointments on demo day
- 3 Outlook-captured email activities (proves activity capture)
- 1 manually logged phone call

### Lapsing accounts (must actually be lapsed)
| Account | Last activity | Prior value |
|---|---|---|
| **Greenfield Academy** | 118 days ago | $9,200 |
| **Halstead & Boyle LLP** | 147 days ago | $14,600 |
| **Riverbend Manufacturing** | 201 days ago | $31,000 |

High prior value + long silence = a compelling win-back alert.

### Pipeline breadth (for credible dashboards)
- **18–25 opportunities** spread across all stages
- Distributed across **CSM A / B / C** so ownership reporting has shape
- Close dates spread across the current and next two quarters
- Mixed values: several $2–8K, several $10–25K, 2–3 at $40K+ (national accounts)

### Closed-won history (for revenue trend charts)
- **6+ months** of closed-won opportunities, **8–15 per month**, varied values
- Include a visible **seasonal lift** — holiday catering — so the trend line tells a story
- Mix **first-party vs ezCater-sourced** so the first-party conversion narrative is chartable

### Leadership view needs
- Opportunities tagged by **source** (web, Olo, ezCater, referral, campaign)
- Accounts tagged by **segment** (corporate, national, healthcare, education, SMB)
- Enough closed-lost with **loss reasons** for win/loss reporting

---

## Catering products (for quote and order line items)

Build a small, realistic catering catalogue. Per-person pricing where natural.

| Product | Unit | Price |
|---|---|---|
| Original Sandwich Box Lunch | per person | $14.50 |
| Skinny Sandwich Box Lunch | per person | $12.75 |
| Sandwich Party Platter (serves 10) | each | $89.00 |
| Salad Party Platter (serves 10) | each | $79.00 |
| Soup Bar (serves 10) | each | $65.00 |
| Cookie Tray (24 ct) | each | $32.00 |
| Beverage Service — Bottled | per person | $2.75 |
| Boxed Lunch — Gluten-Friendly | per person | $15.25 |
| Delivery & Setup Fee | each | $25.00 |

Add a **volume discount tier** (e.g. 10% at 50+ people) so quote pricing rules are demonstrable.

---

## Data hygiene rules

1. **All dates relative to demo day.** Recompute if the demo moves. "Overdue" must be truly overdue.
2. **Synthetic contact details only** — use `.example` domains and `555-01xx` phone numbers.
3. **No real Acme Catering customers, contacts, or financials.** Not from the RFP, not from email, not
   from the working doc.
4. **Realistic but round-ish values.** Avoid figures that look like real contract values.
5. **Name records for findability** — the presenter has 15 minutes per scenario.
6. **Leave the intended mess in.** Duplicates and ambiguity are the demo in Scenarios 1, 2, and 4.
7. **Reuse before creating.** Query the org first; the CX26 org ships with sample accounts
   (Fabrikam, Trey Research, Northwind Traders, Coffee Lab APJ) that are *not* catering-relevant —
   prefer purpose-built records over bending those, but do not delete them.
