1501 lines
92 KiB
Markdown
1501 lines
92 KiB
Markdown
# Dealspace — Onboarding Flow Specification
|
||
|
||
**Version:** 0.1 — 2026-02-28
|
||
**Status:** Pre-implementation specification
|
||
|
||
---
|
||
|
||
## 1. Account Creation (IB Admin)
|
||
|
||
### 1.1 Registration Form
|
||
|
||
**URL:** `https://app.muskepo.com/register`
|
||
|
||
**Form Fields:**
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Create Your Account │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ Organization Name [Goldman Sachs ] │
|
||
│ Your Name [Sarah Mitchell ] │
|
||
│ Work Email [sarah.mitchell@gs.com ] │
|
||
│ Password [•••••••••••••• ] │
|
||
│ Confirm Password [•••••••••••••• ] │
|
||
│ │
|
||
│ □ I agree to the Terms of Service and Privacy Policy │
|
||
│ │
|
||
│ [ Create Account ] │
|
||
│ │
|
||
│ Already have an account? Sign in │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Validation:**
|
||
- Email must be corporate domain (no gmail.com, yahoo.com, etc.) — soft warning, not hard block
|
||
- Password: 12+ characters, at least one uppercase, one number, one special
|
||
- Organization name: required, 2–100 characters
|
||
|
||
**Data Created:**
|
||
```sql
|
||
-- User record (pending verification)
|
||
INSERT INTO users (id, email, name, password_hash, org_name, status, created_at)
|
||
VALUES ('usr_abc123', 'sarah.mitchell@gs.com', 'Sarah Mitchell', '$argon2id$...',
|
||
'Goldman Sachs', 'pending_verification', 1709136000000);
|
||
```
|
||
|
||
### 1.2 Email Verification Flow
|
||
|
||
**Email sent immediately after form submission:**
|
||
|
||
```
|
||
Subject: Verify your Dealspace account
|
||
|
||
Hi Sarah,
|
||
|
||
Click below to verify your email and activate your Dealspace account:
|
||
|
||
[Verify Email Address]
|
||
https://app.muskepo.com/verify?token=abc123def456
|
||
|
||
This link expires in 24 hours.
|
||
|
||
If you didn't create this account, you can safely ignore this email.
|
||
|
||
—
|
||
The Dealspace Team
|
||
```
|
||
|
||
**On click:**
|
||
1. Token validated (single-use, 24h expiry)
|
||
2. User status → `pending_mfa`
|
||
3. Redirect to `/setup/mfa`
|
||
|
||
### 1.3 MFA Setup (Mandatory for IB Admin)
|
||
|
||
**URL:** `https://app.muskepo.com/setup/mfa`
|
||
|
||
**Step-by-step flow:**
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Set Up Two-Factor Authentication │
|
||
│ │
|
||
│ Step 1 of 3: Install Authenticator App │
|
||
│ ───────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ Download one of these apps on your phone: │
|
||
│ │
|
||
│ • Google Authenticator (iOS / Android) │
|
||
│ • Microsoft Authenticator (iOS / Android) │
|
||
│ • 1Password, Authy, or any TOTP app │
|
||
│ │
|
||
│ Already have one? [Continue →] │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Set Up Two-Factor Authentication │
|
||
│ │
|
||
│ Step 2 of 3: Scan QR Code │
|
||
│ ───────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ ┌───────────────┐ │
|
||
│ │ [QR CODE] │ │
|
||
│ │ │ │
|
||
│ └───────────────┘ │
|
||
│ │
|
||
│ Can't scan? Enter this code manually: │
|
||
│ JBSWY3DPEHPK3PXP (tap to copy) │
|
||
│ │
|
||
│ [Continue →] │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Set Up Two-Factor Authentication │
|
||
│ │
|
||
│ Step 3 of 3: Verify Setup │
|
||
│ ───────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ Enter the 6-digit code from your authenticator app: │
|
||
│ │
|
||
│ [ 4 ] [ 7 ] [ 2 ] [ 9 ] [ 1 ] [ 5 ] │
|
||
│ │
|
||
│ [ Verify & Complete Setup ] │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**On successful verification:**
|
||
1. TOTP secret stored (encrypted) in user record
|
||
2. Recovery codes generated (10 codes, 8 characters each)
|
||
3. User status → `active`
|
||
4. Show recovery codes screen:
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Save Your Recovery Codes │
|
||
│ │
|
||
│ Store these in a safe place. You'll need them if you │
|
||
│ lose access to your authenticator app. │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────┐ │
|
||
│ │ 1. XKCD-7843 6. BEEF-2947 │ │
|
||
│ │ 2. PASS-9126 7. DORK-5182 │ │
|
||
│ │ 3. MOON-4521 8. JAZZ-7394 │ │
|
||
│ │ 4. TREE-8734 9. FORK-6215 │ │
|
||
│ │ 5. WAVE-3069 10. LAMP-9847 │ │
|
||
│ └─────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [Download as PDF] [Copy to clipboard] │
|
||
│ │
|
||
│ □ I have saved my recovery codes │
|
||
│ │
|
||
│ [ Continue to Dealspace ] │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 1.4 First Login Experience
|
||
|
||
**URL:** `https://app.muskepo.com/app`
|
||
|
||
User lands on an empty dashboard with a prominent call to action:
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE Goldman Sachs | Sarah Mitchell ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ │
|
||
│ ┌──────────────────────────┐ │
|
||
│ │ 📁 │ │
|
||
│ │ │ │
|
||
│ │ No projects yet │ │
|
||
│ │ │ │
|
||
│ │ Create your first │ │
|
||
│ │ deal to get started │ │
|
||
│ │ │ │
|
||
│ │ [+ Create Project] │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────┘ │
|
||
│ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 2. First Project Setup Wizard
|
||
|
||
Clicking "Create Project" launches a 5-step wizard. Each step is a focused screen. Progress bar at top.
|
||
|
||
### 2.1 Step 1: Project Name + Deal Type
|
||
|
||
**URL:** `https://app.muskepo.com/app/projects/new/basics`
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Create Project Step 1 of 5 ━━━○○○○ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Project Name │
|
||
│ [TechCorp Acquisition - Project Phoenix ] │
|
||
│ │
|
||
│ Deal Type │
|
||
│ ┌───────────────────┐ ┌───────────────────┐ │
|
||
│ │ ○ Sell-side │ │ ○ Buy-side │ │
|
||
│ │ M&A Advisory │ │ M&A Advisory │ │
|
||
│ └───────────────────┘ └───────────────────┘ │
|
||
│ ┌───────────────────┐ ┌───────────────────┐ │
|
||
│ │ ○ Merger │ │ ○ Other │ │
|
||
│ │ │ │ │ │
|
||
│ └───────────────────┘ └───────────────────┘ │
|
||
│ │
|
||
│ Code Name (optional, shown to buyers instead of project name) │
|
||
│ [Project Phoenix ] │
|
||
│ │
|
||
│ [Cancel] [Next: Workstreams] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Data Created (in memory, not persisted until Step 5):**
|
||
```json
|
||
{
|
||
"name": "TechCorp Acquisition - Project Phoenix",
|
||
"deal_type": "sell_side",
|
||
"code_name": "Project Phoenix",
|
||
"workstreams": [],
|
||
"team": [],
|
||
"seller_contacts": []
|
||
}
|
||
```
|
||
|
||
### 2.2 Step 2: Configure Workstreams
|
||
|
||
**URL:** `https://app.muskepo.com/app/projects/new/workstreams`
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Create Project Step 2 of 5 ━━━━○○○ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Configure Workstreams │
|
||
│ │
|
||
│ These are the areas your deal will cover. You can add, remove, or │
|
||
│ rename them. Each workstream has its own access controls. │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||
│ │ ☑ Finance [Edit name] [Remove] │ │
|
||
│ │ ☑ Legal [Edit name] [Remove] │ │
|
||
│ │ ☑ IT [Edit name] [Remove] │ │
|
||
│ │ ☑ HR [Edit name] [Remove] │ │
|
||
│ │ ☑ Operations [Edit name] [Remove] │ │
|
||
│ │ ☐ Tax [Edit name] [Remove] │ │
|
||
│ │ ☐ Commercial [Edit name] [Remove] │ │
|
||
│ │ ☐ Environmental [Edit name] [Remove] │ │
|
||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [+ Add Custom Workstream] │
|
||
│ │
|
||
│ [Back] [Next: Invite Team] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Default workstreams (pre-checked):**
|
||
- Finance
|
||
- Legal
|
||
- IT
|
||
- HR
|
||
- Operations
|
||
|
||
**Additional suggestions (unchecked):**
|
||
- Tax
|
||
- Commercial
|
||
- Environmental
|
||
- Regulatory
|
||
- Insurance
|
||
|
||
**Custom workstream modal:**
|
||
```
|
||
┌────────────────────────────────────┐
|
||
│ Add Workstream │
|
||
│ │
|
||
│ Name: [IP & Patents ] │
|
||
│ │
|
||
│ [Cancel] [Add Workstream] │
|
||
└────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.3 Step 3: Invite IB Team Members
|
||
|
||
**URL:** `https://app.muskepo.com/app/projects/new/team`
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Create Project Step 3 of 5 ━━━━━○○ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Invite Your Team │
|
||
│ Add team members and assign them to workstreams. │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ Email Name Role Workstreams │ │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ mike@gs.com Mike Chen ib_member Finance, Tax │ │
|
||
│ │ [Edit] [Remove] │ │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ jen@gs.com Jen Park ib_member Legal │ │
|
||
│ │ [Edit] [Remove] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [+ Add Team Member] │
|
||
│ │
|
||
│ ────────────────────────────────────────────────────────────────────── │
|
||
│ Or paste multiple emails (one per line): │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ alex@gs.com │ │
|
||
│ │ david@gs.com │ │
|
||
│ │ lisa@gs.com │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ [Parse & Add] │
|
||
│ │
|
||
│ [Back] [Next: Invite Seller] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Add team member modal:**
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Add Team Member │
|
||
│ │
|
||
│ Email Address │
|
||
│ [mike.chen@gs.com ] │
|
||
│ │
|
||
│ Full Name │
|
||
│ [Mike Chen ] │
|
||
│ │
|
||
│ Role │
|
||
│ ○ IB Admin (full access, can manage project) │
|
||
│ ● IB Member (manage requests + vet answers in workstreams) │
|
||
│ │
|
||
│ Workstream Access │
|
||
│ ☑ Finance │
|
||
│ ☐ Legal │
|
||
│ ☐ IT │
|
||
│ ☐ HR │
|
||
│ ☐ Operations │
|
||
│ ☑ Tax │
|
||
│ │
|
||
│ [Cancel] [Add to Team] │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.4 Step 4: Invite Seller Contacts
|
||
|
||
**URL:** `https://app.muskepo.com/app/projects/new/seller`
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Create Project Step 4 of 5 ━━━━━━○ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Invite Seller Team │
|
||
│ Add the sell-side company's contacts. They'll receive access invites. │
|
||
│ │
|
||
│ Seller Organization Name │
|
||
│ [TechCorp Inc. ] │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ Email Name Title Role │ │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ john.smith@techcorp. John Smith CFO seller_ │ │
|
||
│ │ com admin │ │
|
||
│ │ [Edit] [Remove] │ │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ mary.johnson@techcorp Mary Johnson Controller seller_ │ │
|
||
│ │ .com member │ │
|
||
│ │ [Edit] [Remove] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [+ Add Seller Contact] │
|
||
│ │
|
||
│ ⓘ Seller Admin can manage their team and see all workstreams. │
|
||
│ ⓘ Seller Members only see assigned workstreams. │
|
||
│ │
|
||
│ [Back] [Next: Review & Launch] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Add seller contact modal:**
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Add Seller Contact │
|
||
│ │
|
||
│ Email Address │
|
||
│ [john.smith@techcorp.com ] │
|
||
│ │
|
||
│ Full Name │
|
||
│ [John Smith ] │
|
||
│ │
|
||
│ Title │
|
||
│ [CFO ] │
|
||
│ │
|
||
│ Role │
|
||
│ ● Seller Admin (manage seller team, all workstreams) │
|
||
│ ○ Seller Member (answer requests in assigned workstreams) │
|
||
│ │
|
||
│ Workstream Access (for Seller Member only) │
|
||
│ ☑ Finance │
|
||
│ ☐ Legal │
|
||
│ ... │
|
||
│ │
|
||
│ [Cancel] [Add Contact] │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.5 Step 5: Review & Launch
|
||
|
||
**URL:** `https://app.muskepo.com/app/projects/new/review`
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Create Project Step 5 of 5 ━━━━━━━ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Review & Launch │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ PROJECT DETAILS │ │
|
||
│ │ Name: TechCorp Acquisition - Project Phoenix │ │
|
||
│ │ Code Name: Project Phoenix (shown to buyers) │ │
|
||
│ │ Type: Sell-side M&A Advisory [Edit] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ WORKSTREAMS (5) │ │
|
||
│ │ Finance · Legal · IT · HR · Operations [Edit] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ YOUR TEAM (3 invites will be sent) │ │
|
||
│ │ • Mike Chen (mike@gs.com) — IB Member, Finance + Tax │ │
|
||
│ │ • Jen Park (jen@gs.com) — IB Member, Legal │ │
|
||
│ │ • Alex Wong (alex@gs.com) — IB Member, IT [Edit] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ SELLER TEAM (2 invites will be sent) │ │
|
||
│ │ • John Smith (john.smith@techcorp.com) — Seller Admin │ │
|
||
│ │ • Mary Johnson (mary.johnson@techcorp.com) — Seller Member │ │
|
||
│ │ [Edit] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ⓘ 5 invitation emails will be sent when you launch. │
|
||
│ │
|
||
│ [Back] [Launch Project →] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.6 Data Created on Launch
|
||
|
||
**Database operations (single transaction):**
|
||
|
||
```sql
|
||
-- Project entry
|
||
INSERT INTO entries (entry_id, project_id, parent_id, type, depth, search_key, summary, data, stage)
|
||
VALUES ('prj_abc123', 'prj_abc123', '', 'project', 0, 'techcorp-acquisition',
|
||
'TechCorp Acquisition - Project Phoenix',
|
||
PACK('{"name":"...","code_name":"...","deal_type":"sell_side","seller_org":"TechCorp Inc."}'),
|
||
'pre_dataroom');
|
||
|
||
-- Workstream entries (5x)
|
||
INSERT INTO entries (entry_id, project_id, parent_id, type, depth, search_key, summary, data, stage)
|
||
VALUES
|
||
('ws_fin', 'prj_abc123', 'prj_abc123', 'workstream', 1, 'finance', 'Finance', PACK('{}'), 'pre_dataroom'),
|
||
('ws_leg', 'prj_abc123', 'prj_abc123', 'workstream', 1, 'legal', 'Legal', PACK('{}'), 'pre_dataroom'),
|
||
('ws_it', 'prj_abc123', 'prj_abc123', 'workstream', 1, 'it', 'IT', PACK('{}'), 'pre_dataroom'),
|
||
('ws_hr', 'prj_abc123', 'prj_abc123', 'workstream', 1, 'hr', 'HR', PACK('{}'), 'pre_dataroom'),
|
||
('ws_ops', 'prj_abc123', 'prj_abc123', 'workstream', 1, 'operations', 'Operations', PACK('{}'), 'pre_dataroom');
|
||
|
||
-- Access records (for creating IB admin)
|
||
INSERT INTO access (id, project_id, workstream_id, user_id, role, ops, granted_by, granted_at)
|
||
VALUES ('acc_001', 'prj_abc123', NULL, 'usr_sarah', 'ib_admin', 'rwdm', 'usr_sarah', 1709136000000);
|
||
|
||
-- Pending invitations (stored until accepted)
|
||
INSERT INTO invitations (id, project_id, email, name, role, workstream_ids, invited_by, expires_at)
|
||
VALUES
|
||
('inv_001', 'prj_abc123', 'mike@gs.com', 'Mike Chen', 'ib_member', '["ws_fin"]', 'usr_sarah', ...),
|
||
('inv_002', 'prj_abc123', 'jen@gs.com', 'Jen Park', 'ib_member', '["ws_leg"]', 'usr_sarah', ...),
|
||
('inv_003', 'prj_abc123', 'john.smith@techcorp.com', 'John Smith', 'seller_admin', NULL, 'usr_sarah', ...),
|
||
('inv_004', 'prj_abc123', 'mary.johnson@techcorp.com', 'Mary Johnson', 'seller_member', '["ws_fin"]', 'usr_sarah', ...);
|
||
```
|
||
|
||
### 2.7 Emails Sent on Launch
|
||
|
||
**To IB team members (3x):**
|
||
See [Section 6.1 — IB Team Invite Email](#61-ib-team-invite-email)
|
||
|
||
**To Seller contacts (2x):**
|
||
See [Section 6.2 — Seller Invite Email](#62-seller-invite-email)
|
||
|
||
### 2.8 Post-Launch Screen
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE [TechCorp Acquisition ▼] Goldman Sachs | Sarah ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ Finance | Legal | IT | HR | Operations │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ✓ Project Created │
|
||
│ │
|
||
│ 5 invitations sent. Here's what happens next: │
|
||
│ │
|
||
│ 1. Your team accepts their invitations │
|
||
│ 2. Seller contacts accept and set up their accounts │
|
||
│ 3. Create your first request list to start the due diligence │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ Ready to start? │ │
|
||
│ │ │ │
|
||
│ │ [+ Create Request List] [View Team Status] │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Invite Flow (Seller Side)
|
||
|
||
### 3.1 Seller Invite Email
|
||
|
||
**The actual email the Seller CFO receives:**
|
||
|
||
```
|
||
From: TechCorp Acquisition via Dealspace <noreply@muskepo.com>
|
||
Reply-To: sarah.mitchell@gs.com
|
||
To: john.smith@techcorp.com
|
||
Subject: You've been invited to Project Phoenix
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi John,
|
||
|
||
Sarah Mitchell from Goldman Sachs has invited you to join the
|
||
due diligence process for Project Phoenix.
|
||
|
||
You've been assigned as Seller Admin, which means you can:
|
||
• See all requests from the deal team
|
||
• Assign tasks to your colleagues
|
||
• Manage your team's access and responses
|
||
|
||
[Accept Invitation]
|
||
https://app.muskepo.com/invite/abc123def456
|
||
|
||
This invitation expires in 7 days. If you have questions, reply
|
||
to this email to reach Sarah directly.
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
What is Dealspace?
|
||
Dealspace is a secure platform for managing M&A due diligence.
|
||
All documents are encrypted and watermarked. You control what
|
||
gets shared and when.
|
||
|
||
Questions? Contact support@muskepo.com
|
||
```
|
||
|
||
### 3.2 Invitation Landing Page
|
||
|
||
**URL:** `https://app.muskepo.com/invite/abc123def456`
|
||
|
||
**For new users (no existing account):**
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ ┌───────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ You're invited to │ │
|
||
│ │ PROJECT PHOENIX │ │
|
||
│ │ │ │
|
||
│ │ Goldman Sachs has invited you to participate in this deal. │ │
|
||
│ │ │ │
|
||
│ │ Your Role: Seller Admin │ │
|
||
│ │ Organization: TechCorp Inc. │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ Create Your Account │
|
||
│ │
|
||
│ Email (pre-filled, read-only) │
|
||
│ [john.smith@techcorp.com ] │
|
||
│ │
|
||
│ Your Name │
|
||
│ [John Smith ] │
|
||
│ │
|
||
│ Create Password │
|
||
│ [•••••••••••• ] │
|
||
│ 12+ characters, including uppercase, number, and special character │
|
||
│ │
|
||
│ Confirm Password │
|
||
│ [•••••••••••• ] │
|
||
│ │
|
||
│ □ I agree to the Terms of Service and Privacy Policy │
|
||
│ │
|
||
│ [ Create Account & Join Project ] │
|
||
│ │
|
||
│ Already have an account? Sign in │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.3 MFA Setup (Seller)
|
||
|
||
**For seller_admin: strongly recommended (shown after account creation)**
|
||
**For seller_member: optional (can skip)**
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ Secure Your Account │
|
||
│ │
|
||
│ Two-factor authentication adds an extra layer of security. │
|
||
│ Goldman Sachs recommends enabling this for all deal participants. │
|
||
│ │
|
||
│ [Set Up Two-Factor Authentication] │
|
||
│ │
|
||
│ [Skip for now — I'll do this later] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.4 First Login: Seller Task Inbox
|
||
|
||
**URL:** `https://app.muskepo.com/app` (after accepting invite)
|
||
|
||
On first login, the Seller Admin sees their task inbox — which is likely empty until the IB team creates request lists.
|
||
|
||
**Empty state (no requests yet):**
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE [Project Phoenix ▼] TechCorp | John ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ MY TASKS [All Workstreams ▼] │
|
||
│ │
|
||
│ ┌──────────────────────────┐ │
|
||
│ │ ✓ │ │
|
||
│ │ │ │
|
||
│ │ No tasks yet │ │
|
||
│ │ │ │
|
||
│ │ Goldman Sachs hasn't │ │
|
||
│ │ sent any requests yet. │ │
|
||
│ │ We'll notify you when │ │
|
||
│ │ they do. │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────┘ │
|
||
│ │
|
||
│ ────────────────────────────────────────────────────────────────────── │
|
||
│ While you wait, you can: │
|
||
│ • [Invite your team members] │
|
||
│ • [Set up your profile] │
|
||
│ • [Review the quick start guide] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**When requests exist (typical first login):**
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE [Project Phoenix ▼] TechCorp | John ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ MY TASKS [Filter ▼] [Sort: Due Date ▼] 🔍 │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ You have 12 new requests │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ FINANCE (8) │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ ⚡ FIN-001 Audited financial statements FY2023-2024 │ │
|
||
│ │ Due: Mar 15 • High Priority • Assigned to: You [→] │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ FIN-002 Revenue breakdown by product line │ │
|
||
│ │ Due: Mar 18 • Normal • Assigned to: You [→] │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ FIN-003 Accounts receivable aging report │ │
|
||
│ │ Due: Mar 18 • Normal • Assigned to: Mary Johnson [→] │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ [Show 5 more...] │
|
||
│ │
|
||
│ LEGAL (4) │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ LEG-001 Material contracts list │ │
|
||
│ │ Due: Mar 20 • High Priority • Assigned to: You [→] │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ [Show 3 more...] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 4. First Request List
|
||
|
||
### 4.1 Creating a Request List
|
||
|
||
**IB member navigates to a workstream and clicks "New Request List"**
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE [TechCorp Acquisition ▼] Goldman Sachs | Mike ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ Finance | Legal | IT | HR | Operations │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ FINANCE — Request Lists │
|
||
│ │
|
||
│ [+ New Request List] [Import from Excel] │
|
||
│ │
|
||
│ (No request lists yet) │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 4.2 New Request List Modal
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Create Request List │
|
||
│ │
|
||
│ List Name │
|
||
│ [Initial Finance DD Requests ] │
|
||
│ │
|
||
│ Description (optional) │
|
||
│ [First round of financial due diligence requests for Project Phoenix ] │
|
||
│ │
|
||
│ Default Due Date │
|
||
│ [2026-03-15 ] (can be overridden per request) │
|
||
│ │
|
||
│ Default Assignee │
|
||
│ [John Smith (Seller Admin) ▼ ] (can be overridden per request) │
|
||
│ │
|
||
│ ────────────────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ How would you like to add requests? │
|
||
│ │
|
||
│ ○ Add requests manually (one at a time) │
|
||
│ ● Import from Excel template │
|
||
│ [Download Template] │
|
||
│ │
|
||
│ [Cancel] [Create List] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 4.3 Excel Import Template
|
||
|
||
**File: `dealspace-request-template.xlsx`**
|
||
|
||
| Column | Header | Required | Description | Valid Values |
|
||
|--------|--------|----------|-------------|--------------|
|
||
| A | ref | No | Reference number (auto-generated if blank) | e.g., FIN-001 |
|
||
| B | title | Yes | Request title | Max 200 chars |
|
||
| C | description | No | Detailed description | Max 5000 chars |
|
||
| D | priority | No | Priority level | high, normal, low (default: normal) |
|
||
| E | due_date | No | Due date | YYYY-MM-DD (default: list default) |
|
||
| F | assigned_to | No | Assignee email | Must be valid seller email |
|
||
|
||
**Sample template content:**
|
||
|
||
```
|
||
ref title description priority due_date assigned_to
|
||
FIN-001 Audited financial statements FY2023-2024 Complete audited financials for the last two fiscal... high 2026-03-15 john.smith@techcorp.com
|
||
FIN-002 Revenue breakdown by product line Monthly revenue by product line for last 24 months normal 2026-03-18 john.smith@techcorp.com
|
||
FIN-003 Accounts receivable aging report Current AR aging as of latest month-end normal 2026-03-18 mary.johnson@techcorp.com
|
||
FIN-004 Accounts payable aging report Current AP aging as of latest month-end normal 2026-03-18 mary.johnson@techcorp.com
|
||
FIN-005 Cash flow projections FY2025-2027 3-year projected cash flows high 2026-03-20 john.smith@techcorp.com
|
||
FIN-006 Bank statements (all accounts) Last 12 months of bank statements for all accounts normal 2026-03-22
|
||
FIN-007 Debt schedule Current debt obligations with terms and covenants high 2026-03-18 john.smith@techcorp.com
|
||
FIN-008 Capital expenditure history CapEx by category for last 3 years normal 2026-03-25 mary.johnson@techcorp.com
|
||
```
|
||
|
||
### 4.4 Import Preview Screen
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ Import Requests — Preview │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ✓ 8 requests parsed successfully │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ Ref Title Priority Due To │ │
|
||
│ ├─────────────────────────────────────────────────────────────────────┤ │
|
||
│ │ FIN-001 Audited financial statements... ⚡ High Mar 15 JS │ │
|
||
│ │ FIN-002 Revenue breakdown by product... — Mar 18 JS │ │
|
||
│ │ FIN-003 Accounts receivable aging... — Mar 18 MJ │ │
|
||
│ │ FIN-004 Accounts payable aging... — Mar 18 MJ │ │
|
||
│ │ FIN-005 Cash flow projections... ⚡ High Mar 20 JS │ │
|
||
│ │ FIN-006 Bank statements (all accounts) — Mar 22 — │ │
|
||
│ │ FIN-007 Debt schedule ⚡ High Mar 18 JS │ │
|
||
│ │ FIN-008 Capital expenditure history — Mar 25 MJ │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ⚠ 1 request has no assignee (FIN-006) — will be assigned to John Smith │
|
||
│ │
|
||
│ □ Send notification emails to assignees now │
|
||
│ □ Send a single summary email per assignee (instead of per-request) │
|
||
│ │
|
||
│ [Cancel] [Back to Edit] [Import 8 Requests →] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 4.5 Notifications Fired
|
||
|
||
**On import with "Send notification emails" checked:**
|
||
|
||
1. **John Smith receives:** "You have 6 new requests in Project Phoenix"
|
||
2. **Mary Johnson receives:** "You have 2 new requests in Project Phoenix"
|
||
|
||
See [Section 6.3 — New Tasks Notification](#63-new-tasks-notification) for email copy.
|
||
|
||
---
|
||
|
||
## 5. The "Aha Moment"
|
||
|
||
### 5.1 For the Investment Bank
|
||
|
||
**The moment:** When the first answer comes back with documents attached, automatically indexed and searchable, and they click "Approve" to publish it to the data room — all in 3 clicks.
|
||
|
||
**The comparison:** In the old workflow, this would involve:
|
||
1. Receiving email with attachment
|
||
2. Downloading attachment
|
||
3. Opening VDR
|
||
4. Navigating to correct folder
|
||
5. Uploading document
|
||
6. Renaming to match convention
|
||
7. Setting permissions
|
||
8. Updating tracking spreadsheet
|
||
9. Emailing confirmation
|
||
|
||
**Design toward this:**
|
||
- Answer review screen shows document preview inline
|
||
- One-click approve → "Published to Data Room" confirmation
|
||
- Activity feed shows real-time: "FIN-001 answered → vetted → published"
|
||
- Buyer count badge: "3 buyers can now see this"
|
||
|
||
### 5.2 For the Seller
|
||
|
||
**The moment:** When they upload their first answer and immediately see exactly what the bank is waiting on — a clear task list with priorities, due dates, and progress tracking, instead of hunting through email threads.
|
||
|
||
**The comparison:** In the old workflow:
|
||
1. Receive request list via email (usually PDF or Word)
|
||
2. Print it out / copy to spreadsheet
|
||
3. Manually track who's doing what
|
||
4. Hunt through email for clarifications
|
||
5. Reply-all with attachments
|
||
6. No visibility into whether IB received/reviewed
|
||
|
||
**Design toward this:**
|
||
- Clear task inbox with filters (by workstream, priority, due date, assignee)
|
||
- Progress bar per workstream: "Finance: 3/12 complete"
|
||
- Real-time status: "Submitted → Under Review → Approved ✓"
|
||
- Comments thread inline — no email back-and-forth
|
||
- Mobile-friendly for on-the-go approvals
|
||
|
||
### 5.3 For the Buyer
|
||
|
||
**The moment:** When they submit a question and the AI matches it to an existing answer instantly — no waiting, no IB intermediary, just immediate access to relevant documents.
|
||
|
||
**Design toward this:**
|
||
- Search bar prominent in data room
|
||
- "Ask a question" that triggers AI matching
|
||
- Instant match: "This might answer your question" with preview
|
||
- If no match: "Your question has been submitted" with expected response time
|
||
- Broadcast notification: "New answer matches your previous question"
|
||
|
||
---
|
||
|
||
## 6. Email Templates
|
||
|
||
### 6.1 IB Team Invite Email
|
||
|
||
```
|
||
From: Dealspace <noreply@muskepo.com>
|
||
Reply-To: sarah.mitchell@gs.com
|
||
To: mike.chen@gs.com
|
||
Subject: Join Project Phoenix on Dealspace
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi Mike,
|
||
|
||
Sarah Mitchell has invited you to join the deal team for
|
||
Project Phoenix on Dealspace.
|
||
|
||
Your Role: IB Member
|
||
Workstreams: Finance, Tax
|
||
|
||
[Accept Invitation]
|
||
https://app.muskepo.com/invite/xyz789
|
||
|
||
This invitation expires in 7 days.
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Dealspace is Goldman Sachs' secure platform for managing M&A
|
||
due diligence. If you have questions about this invitation,
|
||
contact Sarah directly.
|
||
```
|
||
|
||
### 6.2 Seller Invite Email
|
||
|
||
```
|
||
From: Project Phoenix via Dealspace <noreply@muskepo.com>
|
||
Reply-To: sarah.mitchell@gs.com
|
||
To: john.smith@techcorp.com
|
||
Subject: You've been invited to Project Phoenix
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi John,
|
||
|
||
Sarah Mitchell from Goldman Sachs has invited you to join the
|
||
due diligence process for Project Phoenix.
|
||
|
||
You've been assigned as Seller Admin, which means you can:
|
||
• View and respond to all due diligence requests
|
||
• Assign tasks to your colleagues
|
||
• Track your team's progress across all workstreams
|
||
|
||
[Accept Invitation]
|
||
https://app.muskepo.com/invite/abc123
|
||
|
||
This invitation expires in 7 days. If you have questions,
|
||
reply to this email to reach Sarah directly.
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
What is Dealspace?
|
||
|
||
Dealspace is a secure platform for managing M&A due diligence.
|
||
All documents are encrypted and dynamically watermarked. You
|
||
maintain full control over what gets shared and when.
|
||
|
||
Need help? Contact support@muskepo.com
|
||
```
|
||
|
||
### 6.3 New Tasks Notification
|
||
|
||
```
|
||
From: Project Phoenix via Dealspace <noreply@muskepo.com>
|
||
To: john.smith@techcorp.com
|
||
Subject: You have 6 new requests in Project Phoenix
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi John,
|
||
|
||
Goldman Sachs has sent you 6 new requests for Project Phoenix.
|
||
|
||
HIGH PRIORITY (3):
|
||
• FIN-001: Audited financial statements FY2023-2024 — Due Mar 15
|
||
• FIN-005: Cash flow projections FY2025-2027 — Due Mar 20
|
||
• FIN-007: Debt schedule — Due Mar 18
|
||
|
||
NORMAL PRIORITY (3):
|
||
• FIN-002: Revenue breakdown by product line — Due Mar 18
|
||
• FIN-006: Bank statements (all accounts) — Due Mar 22
|
||
• Plus 1 more
|
||
|
||
[View Your Tasks]
|
||
https://app.muskepo.com/app/tasks
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
You're receiving this because you're assigned to requests in
|
||
Project Phoenix. Manage notification preferences in your settings.
|
||
```
|
||
|
||
### 6.4 Answer Submitted — Needs Vetting
|
||
|
||
```
|
||
From: Project Phoenix via Dealspace <noreply@muskepo.com>
|
||
To: mike.chen@gs.com
|
||
Subject: [Action Required] Answer submitted: FIN-001 Audited financials
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi Mike,
|
||
|
||
John Smith from TechCorp has submitted an answer that needs
|
||
your review.
|
||
|
||
REQUEST: FIN-001 — Audited financial statements FY2023-2024
|
||
SUBMITTED: 2 files attached
|
||
• TechCorp_Audited_Financials_2023.pdf (2.4 MB)
|
||
• TechCorp_Audited_Financials_2024.pdf (2.8 MB)
|
||
|
||
COMMENT FROM SELLER:
|
||
"Attached are the audited financials for FY2023 and FY2024.
|
||
The 2024 audit was completed last month. Let me know if you
|
||
need the management letters as well."
|
||
|
||
[Review & Approve]
|
||
https://app.muskepo.com/app/review/ans_xyz123
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Once approved, this answer will be published to the data room
|
||
and visible to all authorized buyers.
|
||
```
|
||
|
||
### 6.5 Answer Approved / Rejected (Seller Notification)
|
||
|
||
**Approved:**
|
||
```
|
||
From: Project Phoenix via Dealspace <noreply@muskepo.com>
|
||
To: john.smith@techcorp.com
|
||
Subject: ✓ Answer approved: FIN-001 Audited financials
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi John,
|
||
|
||
Your answer to FIN-001 has been approved and published to
|
||
the data room.
|
||
|
||
REQUEST: FIN-001 — Audited financial statements FY2023-2024
|
||
STATUS: ✓ Published to Data Room
|
||
APPROVED BY: Mike Chen (Goldman Sachs)
|
||
|
||
[View in Data Room]
|
||
https://app.muskepo.com/app/dataroom/ans_xyz123
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
```
|
||
|
||
**Rejected:**
|
||
```
|
||
From: Project Phoenix via Dealspace <noreply@muskepo.com>
|
||
To: john.smith@techcorp.com
|
||
Subject: ⚠ Revision requested: FIN-001 Audited financials
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Hi John,
|
||
|
||
Your answer to FIN-001 requires revision before it can be
|
||
published.
|
||
|
||
REQUEST: FIN-001 — Audited financial statements FY2023-2024
|
||
STATUS: Revision Requested
|
||
|
||
FEEDBACK FROM MIKE CHEN:
|
||
"The 2024 financials are draft — we need the final audited
|
||
version with the auditor's opinion letter. Please also include
|
||
the management representation letters for both years."
|
||
|
||
[Update Your Answer]
|
||
https://app.muskepo.com/app/tasks/req_001
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
Reply to this request directly in Dealspace to keep the
|
||
conversation in one place.
|
||
```
|
||
|
||
### 6.6 New Answer Available in Data Room (Buyer Notification)
|
||
|
||
```
|
||
From: Project Phoenix via Dealspace <noreply@muskepo.com>
|
||
To: analyst@buyside-pe.com
|
||
Subject: New document available: Audited Financials
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
A new document matching your interests is now available in the
|
||
Project Phoenix data room.
|
||
|
||
DOCUMENT: Audited Financial Statements FY2023-2024
|
||
CATEGORY: Finance
|
||
ADDED: February 28, 2026
|
||
|
||
This document may be relevant to your previous question about
|
||
"historical financial performance."
|
||
|
||
[View in Data Room]
|
||
https://app.muskepo.com/app/dataroom/ans_xyz123
|
||
|
||
───────────────────────────────────────────────────────────────────────
|
||
|
||
You're receiving this because you requested information about
|
||
financial statements. Manage notification preferences in settings.
|
||
```
|
||
|
||
---
|
||
|
||
## 7. Empty States
|
||
|
||
### 7.1 IB Admin — No Projects
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE Goldman Sachs | Sarah Mitchell ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ │
|
||
│ ┌──────────────────────────┐ │
|
||
│ │ 📁 │ │
|
||
│ │ │ │
|
||
│ │ No projects yet │ │
|
||
│ │ │ │
|
||
│ │ Dealspace helps you │ │
|
||
│ │ run M&A due diligence │ │
|
||
│ │ 10x faster. │ │
|
||
│ │ │ │
|
||
│ │ [+ Create Your First │ │
|
||
│ │ Project] │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────┘ │
|
||
│ │
|
||
│ ────────────────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ Or explore with sample data: │
|
||
│ [Load Demo Project] — See how a typical deal flows │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 7.2 Seller Member — Empty Task Inbox
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE [Project Phoenix ▼] TechCorp | Mary ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ MY TASKS │
|
||
│ │
|
||
│ ┌──────────────────────────┐ │
|
||
│ │ ✓ │ │
|
||
│ │ │ │
|
||
│ │ You're all caught up! │ │
|
||
│ │ │ │
|
||
│ │ No tasks assigned to │ │
|
||
│ │ you right now. │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────┘ │
|
||
│ │
|
||
│ ────────────────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ Your completed tasks (3): │
|
||
│ • FIN-003: Accounts receivable aging — Approved ✓ │
|
||
│ • FIN-004: Accounts payable aging — Approved ✓ │
|
||
│ • FIN-008: Capital expenditure history — Under Review │
|
||
│ │
|
||
│ [View Completed Tasks] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 7.3 Buyer — Empty Data Room
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ DEALSPACE [Project Phoenix ▼] Blackstone | James ▼ │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ Data Room | My Questions │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ DATA ROOM 🔍 Search documents... │
|
||
│ │
|
||
│ ┌──────────────────────────┐ │
|
||
│ │ 📂 │ │
|
||
│ │ │ │
|
||
│ │ Data room is being │ │
|
||
│ │ prepared │ │
|
||
│ │ │ │
|
||
│ │ The sell-side team is │ │
|
||
│ │ gathering documents. │ │
|
||
│ │ We'll notify you when │ │
|
||
│ │ materials are ready. │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────┘ │
|
||
│ │
|
||
│ ────────────────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ In the meantime: │
|
||
│ [Submit Questions] — Tell us what you're looking for │
|
||
│ [View Deal Summary] — Overview of Project Phoenix │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 8. Demo Data
|
||
|
||
### 8.1 Seed Script Concept
|
||
|
||
```go
|
||
// cmd/seed/main.go
|
||
// Run: go run ./cmd/seed --demo
|
||
|
||
package main
|
||
|
||
func seedDemoProject(db *sql.DB) {
|
||
// 1. Create organizations
|
||
gsOrg := createOrg("Goldman Sachs", "gs.com")
|
||
techCorpOrg := createOrg("TechCorp Inc.", "techcorp.com")
|
||
blackstoneOrg := createOrg("Blackstone", "blackstone.com")
|
||
baincapOrg := createOrg("Bain Capital", "baincapital.com")
|
||
|
||
// 2. Create users
|
||
// Goldman Sachs (IB)
|
||
sarahIB := createUser("sarah.mitchell@gs.com", "Sarah Mitchell", gsOrg, "ib_admin")
|
||
mikeIB := createUser("mike.chen@gs.com", "Mike Chen", gsOrg, "ib_member")
|
||
jenIB := createUser("jen.park@gs.com", "Jen Park", gsOrg, "ib_member")
|
||
alexIB := createUser("alex.wong@gs.com", "Alex Wong", gsOrg, "ib_member")
|
||
|
||
// TechCorp (Seller)
|
||
johnSeller := createUser("john.smith@techcorp.com", "John Smith", techCorpOrg, "seller_admin")
|
||
marySeller := createUser("mary.johnson@techcorp.com", "Mary Johnson", techCorpOrg, "seller_member")
|
||
tomSeller := createUser("tom.wilson@techcorp.com", "Tom Wilson", techCorpOrg, "seller_member")
|
||
lisaSeller := createUser("lisa.chen@techcorp.com", "Lisa Chen", techCorpOrg, "seller_member")
|
||
|
||
// Buyers
|
||
jamesBuyer := createUser("james.lee@blackstone.com", "James Lee", blackstoneOrg, "buyer_admin")
|
||
emilaBuyer := createUser("emily.davis@baincapital.com", "Emily Davis", baincapOrg, "buyer_admin")
|
||
|
||
// 3. Create project
|
||
project := createProject(ProjectInput{
|
||
Name: "TechCorp Acquisition - Project Phoenix",
|
||
CodeName: "Project Phoenix",
|
||
DealType: "sell_side",
|
||
SellerOrg: techCorpOrg,
|
||
CreatedBy: sarahIB,
|
||
})
|
||
|
||
// 4. Create workstreams
|
||
financeWS := createWorkstream(project, "Finance", "finance")
|
||
legalWS := createWorkstream(project, "Legal", "legal")
|
||
itWS := createWorkstream(project, "IT", "it")
|
||
|
||
// 5. Assign access
|
||
// IB team
|
||
grantAccess(sarahIB, project, nil, "ib_admin")
|
||
grantAccess(mikeIB, project, financeWS, "ib_member")
|
||
grantAccess(jenIB, project, legalWS, "ib_member")
|
||
grantAccess(alexIB, project, itWS, "ib_member")
|
||
|
||
// Seller team
|
||
grantAccess(johnSeller, project, nil, "seller_admin")
|
||
grantAccess(marySeller, project, financeWS, "seller_member")
|
||
grantAccess(tomSeller, project, legalWS, "seller_member")
|
||
grantAccess(lisaSeller, project, itWS, "seller_member")
|
||
|
||
// Buyers (data room only)
|
||
grantAccess(jamesBuyer, project, nil, "buyer_admin")
|
||
grantAccess(emilaBuyer, project, nil, "buyer_admin")
|
||
|
||
// 6. Create Finance request list
|
||
financeRL := createRequestList(RequestListInput{
|
||
Name: "Initial Finance DD",
|
||
Workstream: financeWS,
|
||
CreatedBy: mikeIB,
|
||
DefaultDue: time.Now().Add(14 * 24 * time.Hour),
|
||
})
|
||
|
||
// Finance requests (mix of statuses for realism)
|
||
createRequest(financeRL, RequestInput{
|
||
Ref: "FIN-001",
|
||
Title: "Audited financial statements FY2023-2024",
|
||
Priority: "high",
|
||
AssignedTo: johnSeller,
|
||
Status: "published", // Already in data room
|
||
})
|
||
createRequest(financeRL, RequestInput{
|
||
Ref: "FIN-002",
|
||
Title: "Revenue breakdown by product line",
|
||
Priority: "normal",
|
||
AssignedTo: marySeller,
|
||
Status: "vetted", // Approved, pending publish
|
||
})
|
||
createRequest(financeRL, RequestInput{
|
||
Ref: "FIN-003",
|
||
Title: "Accounts receivable aging report",
|
||
Priority: "normal",
|
||
AssignedTo: marySeller,
|
||
Status: "submitted", // Awaiting IB review
|
||
})
|
||
createRequest(financeRL, RequestInput{
|
||
Ref: "FIN-004",
|
||
Title: "Accounts payable aging report",
|
||
Priority: "normal",
|
||
AssignedTo: marySeller,
|
||
Status: "assigned", // Seller working on it
|
||
})
|
||
createRequest(financeRL, RequestInput{
|
||
Ref: "FIN-005",
|
||
Title: "Cash flow projections FY2025-2027",
|
||
Priority: "high",
|
||
AssignedTo: johnSeller,
|
||
Status: "open", // Not started
|
||
})
|
||
|
||
// 7. Create Legal request list
|
||
legalRL := createRequestList(RequestListInput{
|
||
Name: "Legal DD - Contracts & IP",
|
||
Workstream: legalWS,
|
||
CreatedBy: jenIB,
|
||
})
|
||
|
||
createRequest(legalRL, RequestInput{
|
||
Ref: "LEG-001",
|
||
Title: "Material contracts list",
|
||
Priority: "high",
|
||
AssignedTo: tomSeller,
|
||
Status: "submitted",
|
||
})
|
||
createRequest(legalRL, RequestInput{
|
||
Ref: "LEG-002",
|
||
Title: "Customer contracts (top 10 by revenue)",
|
||
Priority: "high",
|
||
AssignedTo: tomSeller,
|
||
Status: "assigned",
|
||
})
|
||
createRequest(legalRL, RequestInput{
|
||
Ref: "LEG-003",
|
||
Title: "IP portfolio summary",
|
||
Priority: "normal",
|
||
AssignedTo: tomSeller,
|
||
Status: "open",
|
||
})
|
||
createRequest(legalRL, RequestInput{
|
||
Ref: "LEG-004",
|
||
Title: "Pending litigation summary",
|
||
Priority: "high",
|
||
AssignedTo: tomSeller,
|
||
Status: "open",
|
||
})
|
||
|
||
// 8. Create IT request list
|
||
itRL := createRequestList(RequestListInput{
|
||
Name: "IT Infrastructure & Security",
|
||
Workstream: itWS,
|
||
CreatedBy: alexIB,
|
||
})
|
||
|
||
createRequest(itRL, RequestInput{
|
||
Ref: "IT-001",
|
||
Title: "System architecture diagram",
|
||
Priority: "high",
|
||
AssignedTo: lisaSeller,
|
||
Status: "published",
|
||
})
|
||
createRequest(itRL, RequestInput{
|
||
Ref: "IT-002",
|
||
Title: "Cloud infrastructure costs",
|
||
Priority: "normal",
|
||
AssignedTo: lisaSeller,
|
||
Status: "submitted",
|
||
})
|
||
createRequest(itRL, RequestInput{
|
||
Ref: "IT-003",
|
||
Title: "Security audit report (SOC2)",
|
||
Priority: "high",
|
||
AssignedTo: lisaSeller,
|
||
Status: "assigned",
|
||
})
|
||
|
||
// 9. Create sample answers for published requests
|
||
createAnswer(AnswerInput{
|
||
RequestRef: "FIN-001",
|
||
Title: "Audited Financial Statements FY2023-2024",
|
||
Files: []string{"TechCorp_Audited_FY2023.pdf", "TechCorp_Audited_FY2024.pdf"},
|
||
SubmittedBy: johnSeller,
|
||
ApprovedBy: mikeIB,
|
||
Status: "published",
|
||
})
|
||
|
||
createAnswer(AnswerInput{
|
||
RequestRef: "IT-001",
|
||
Title: "TechCorp System Architecture",
|
||
Files: []string{"TechCorp_Architecture_2026.pdf"},
|
||
SubmittedBy: lisaSeller,
|
||
ApprovedBy: alexIB,
|
||
Status: "published",
|
||
})
|
||
|
||
// 10. Create sample buyer questions
|
||
createBuyerQuestion(BuyerQuestionInput{
|
||
Workstream: financeWS,
|
||
AskedBy: jamesBuyer,
|
||
Question: "Can you provide customer concentration analysis?",
|
||
Status: "pending", // No match, routed to IB
|
||
})
|
||
|
||
createBuyerQuestion(BuyerQuestionInput{
|
||
Workstream: itWS,
|
||
AskedBy: emilaBuyer,
|
||
Question: "What's the tech stack?",
|
||
Status: "matched", // AI matched to IT-001
|
||
MatchedTo: "IT-001",
|
||
})
|
||
|
||
// 11. Create activity events for timeline
|
||
createEvent(project, "Sarah Mitchell created Project Phoenix", sarahIB, -7*24*time.Hour)
|
||
createEvent(project, "Initial Finance DD requests sent to TechCorp (12 items)", mikeIB, -6*24*time.Hour)
|
||
createEvent(project, "John Smith accepted invitation", johnSeller, -5*24*time.Hour)
|
||
createEvent(project, "FIN-001 submitted by John Smith", johnSeller, -3*24*time.Hour)
|
||
createEvent(project, "FIN-001 approved and published to data room", mikeIB, -2*24*time.Hour)
|
||
createEvent(project, "Blackstone joined as buyer", jamesBuyer, -1*24*time.Hour)
|
||
createEvent(project, "Bain Capital joined as buyer", emilaBuyer, -12*time.Hour)
|
||
}
|
||
```
|
||
|
||
### 8.2 Demo Login Credentials
|
||
|
||
| Role | Email | Password | What they see |
|
||
|------|-------|----------|---------------|
|
||
| IB Admin | sarah.mitchell@gs.com | Demo2026! | Full project dashboard, all workstreams |
|
||
| IB Member | mike.chen@gs.com | Demo2026! | Finance workstream, vetting queue |
|
||
| Seller Admin | john.smith@techcorp.com | Demo2026! | Task inbox with 12 requests |
|
||
| Seller Member | mary.johnson@techcorp.com | Demo2026! | Task inbox with 4 Finance requests |
|
||
| Buyer Admin | james.lee@blackstone.com | Demo2026! | Data room with 2 published docs |
|
||
|
||
### 8.3 Demo Scenario Flow
|
||
|
||
**For a live demo, walk through this sequence:**
|
||
|
||
1. **Login as Sarah (IB Admin)** — Show project overview, team status, request progress
|
||
2. **Switch to Mike (IB Member)** — Show vetting queue, approve FIN-003, publish to data room
|
||
3. **Switch to John (Seller Admin)** — Show task inbox, respond to FIN-004
|
||
4. **Switch to James (Buyer)** — Show data room, new document notification, ask a question
|
||
5. **Back to Mike** — Show buyer question routed, AI match suggestion
|
||
|
||
**Demo data realism:**
|
||
- Mix of statuses (open → assigned → submitted → vetted → published)
|
||
- Some high-priority items
|
||
- Some overdue items (creates urgency)
|
||
- Comment threads on submitted items
|
||
- Activity timeline with realistic timestamps
|
||
|
||
---
|
||
|
||
## 9. Implementation Notes
|
||
|
||
### 9.1 API Endpoints Required
|
||
|
||
```
|
||
POST /api/register — Account creation
|
||
POST /api/verify — Email verification
|
||
POST /api/mfa/setup — Start MFA enrollment
|
||
POST /api/mfa/verify — Complete MFA enrollment
|
||
POST /api/login — Authenticate
|
||
POST /api/invitations/accept — Accept invitation
|
||
POST /api/projects — Create project (wizard)
|
||
POST /api/projects/:id/invites — Send invitations
|
||
POST /api/projects/:id/requests/import — Excel import
|
||
GET /api/tasks — My task inbox
|
||
PATCH /api/requests/:id — Update request status
|
||
POST /api/answers — Submit answer
|
||
PATCH /api/answers/:id/approve — Approve answer
|
||
PATCH /api/answers/:id/reject — Reject answer
|
||
```
|
||
|
||
### 9.2 Email Service
|
||
|
||
- Use SendGrid or AWS SES
|
||
- All emails from: `noreply@muskepo.com`
|
||
- Reply-To: set to inviting user's email
|
||
- Unsubscribe links required (CAN-SPAM compliance)
|
||
- Track open/click rates for onboarding optimization
|
||
|
||
### 9.3 Metrics to Track
|
||
|
||
**Onboarding funnel:**
|
||
- Registration → Email Verified (%)
|
||
- Email Verified → MFA Complete (%)
|
||
- MFA Complete → First Project Created (%)
|
||
- First Project → First Request List (%)
|
||
- First Request → First Seller Response (time)
|
||
|
||
**Activation:**
|
||
- Time to first request list created
|
||
- Time to first seller login
|
||
- Time to first answer submitted
|
||
- Time to first data room publication
|
||
|
||
---
|
||
|
||
*This document defines the complete first-run experience. Implementation should follow these flows exactly — deviations require spec update first.*
|