Complete reference for practising Playwright test automation on the SalesCRM application — 8 modules, full CRUD, search, filters, modals and SLA tracking.
SalesCRM is a single-page CRM practice application with 8 fully functional modules. Navigation is sidebar-based — clicking each nav item switches the visible tab without a page reload. All data is persisted in localStorage under the key crm_v2, so state survives refreshes within the same browser.
| Module | Navigation | Key Functionality |
|---|---|---|
| Dashboard | Default tab on load | KPI stats, pipeline funnel, recent activity, quick actions |
| Contacts & Accounts | Sidebar → Contacts & Accounts | Add/edit/delete contacts, view account cards |
| Lead Management | Sidebar → Lead Management | Capture leads, score/rate, funnel view, convert to contact |
| Sales Pipeline | Sidebar → Sales Pipeline | Kanban board, 5 stages, opportunity cards, metrics |
| Activities & Tasks | Sidebar → Activities & Tasks | Schedule calls/meetings/emails/tasks, mark complete |
| Communications | Sidebar → Communications | Inbound/outbound interaction log, view details |
| Marketing Campaigns | Sidebar → Marketing Campaigns | Campaign cards with open/click/conversion metrics |
| Support & Tickets | Sidebar → Support & Tickets | Priority/SLA-tracked support tickets, edit and resolve |
The Dashboard is the default landing tab. It aggregates KPI metrics across all modules and provides quick access to common actions.
The Contacts tab displays 8 seeded contacts linked to 6 seeded accounts. Both entities support search, full CRUD, and linked data.
The Lead Management tab shows a conversion funnel and a registry of 6 seeded leads with scoring, rating, and status tracking.
The Pipeline tab provides a Kanban board with 5 stages and 4 revenue metric cards. Opportunities can be clicked to edit and then re-staged.
The Activities tab logs all scheduled and completed tasks — calls, meetings, emails, and generic tasks — with priority and overdue indicators.
The Communications tab is a read-only interaction log showing all email and call records linked to contacts with direction and status tracking.
The Campaigns tab shows 3 seeded campaign cards with email delivery metrics — sent, delivered, open rate, and click rate — plus full CRUD operations.
The Support tab manages customer support tickets with priority-based SLA deadlines, status tracking, and resolution workflows.
Happy Path
Open the app → Verify all 5 KPI stat cards show non-zero values loaded from seed data
Contacts tab → Add Contact → Fill all fields → Save → Verify new row appears in the table
Click edit icon on Sarah Johnson → Change phone number → Save → Verify updated value in table
Click eye icon on any contact → Verify all fields shown in modal → Close with × button
Leads tab → Capture Lead → Fill form with score 85, rating Hot → Save → Verify row and funnel count
Click convert icon on a Qualified lead → Confirm → Verify success toast → Check Contacts tab for new entry
Pipeline tab → Verify 5 columns load with appropriate opportunity cards in each
Click an opportunity card → Change stage from Prospect to Qualification → Save → Verify card moves column
Pipeline tab → New Opportunity → Fill all fields → Save → Verify card appears in the chosen stage column
Activities tab → Schedule Activity → Type: Call → Fill subject, contact, date, time → Save → Verify row
Click the check icon on a Scheduled activity → Verify status badge changes to Completed
Communications tab → Click eye icon on any row → Verify modal shows type, subject, contact, and timestamp
Campaigns tab → New Campaign → Fill name, type Active, dates, budget → Save → Verify card in grid
Support tab → Open Ticket → Fill subject with High priority → Save → Then resolve it → Verify stat cards update
Create a Critical ticket → Verify the SLA deadline shown is approximately 4 hours from now
Negative / Edge Cases
Add Contact modal → Leave Email blank → Click Save → Verify validation toast without closing modal
Enter score 150 in Capture Lead → Click Save → Verify toast "Score must be between 0 and 100"
New Opportunity modal → Leave Name blank → Save → Verify validation toast and modal stays open
Schedule Activity → Leave Subject blank → Click Save → Verify required-field toast
New Campaign → Leave Name empty → Click Save → Verify validation prevents save
Click trash icon on a contact → Dismiss the confirm dialog → Verify contact still exists in table
Click trash icon on a lead → Dismiss → Verify lead remains → Confirm → Verify lead removed and funnel updates
Activities tab → Search for "xyz999" → Verify all rows hidden (empty table)
Campaigns tab → Filter to Draft → Verify only Draft campaigns visible → Switch to All → All reappear
Open any modal → Press Escape key → Verify modal closes without saving
Open any modal → Click the dark backdrop outside the modal box → Verify modal closes
Add a contact → Refresh the page → Navigate to Contacts → Verify the new contact still exists
Click each of the 8 sidebar nav items → Verify the clicked item gets the active highlight and the correct tab renders
Closed Won metric → Create an opportunity in Closed Won stage → Verify the Closed Won metric on the pipeline tab increases
Support tab → Filter by Critical → Verify only Critical tickets shown → Change to All → All tickets return
SalesCRM — Playwright Practice App | Open App