Appearance
Launch QA Checklist
Use this checklist before launching Growstack CRM in production or after upgrading to a new version.
Pre-Launch
Infrastructure
- [ ] PHP 8.2+ with required extensions
- [ ] Database backup completed
- [ ] SSL/HTTPS configured
- [ ] Cron job configured:
* * * * * php artisan schedule:run - [ ] Queue worker running (if using queued notifications)
- [ ] File permissions set (storage, bootstrap/cache writable)
Deployment
- [ ]
php artisan migrate --forcecompleted - [ ] CRM seeders run (Module, LeadSource, Pipeline, Permissions, Notifications)
- [ ]
php artisan crm:migrate-legacy-datarun (upgrades only) - [ ]
npm run buildcompleted - [ ]
php artisan optimize:clearrun - [ ]
.env—APP_NAME=CRM - [ ] Logo and favicon uploaded in Settings → General
- [ ] Demo data removed from production (
CrmDemoSeedernot run on prod)
CRM Core Features
Contacts & Accounts
- [ ] Create contact manually
- [ ] Edit contact details
- [ ] Create account and link contacts
- [ ] Contact 360° view loads related records
- [ ] Log activity (note, call) on contact — appears in timeline
Leads
- [ ] Create lead from admin
- [ ] Submit contact form on frontend → lead appears in admin
- [ ] Submit service inquiry → lead created
- [ ] Submit quote request → contact and lead linked
- [ ] Filter leads by status and source
- [ ] Assign lead to sales rep → notification sent
Lead Conversion
- [ ] Convert lead → contact created with correct data
- [ ] Convert lead → deal created in default pipeline
- [ ] Lead status changes to "Converted"
- [ ] Converted lead links visible on lead show page
Deals & Pipeline
- [ ] Create deal manually
- [ ] Pipeline Board (Kanban) loads with stage columns
- [ ] Drag deal between stages — stage updates
- [ ] Move deal to Won — status and metrics update
- [ ] Move deal to Lost — status updates
- [ ] Deal won notification sent to team
Dashboard & Reports
- [ ] CRM dashboard loads at
/admin/crm - [ ] KPI widgets show correct counts
- [ ] Pipeline funnel chart renders
- [ ] Lead sources chart renders
- [ ] Reports page loads at
/admin/crm/reports - [ ] CSV export downloads correctly
Permissions & Roles
- [ ] Admin role has all CRM permissions
- [ ] Sales Manager can view/edit but not delete
- [ ] Sales Rep sees only own records (if configured)
- [ ] User without CRM permissions cannot access
/admin/crm - [ ] CRM menu hidden when module disabled
API & Integrations
- [ ] Create Sanctum API token
- [ ]
GET /api/crm/contactsreturns data with token - [ ]
POST /api/crm/leadscreates lead - [ ]
POST /api/crm/leads/{id}/convertconverts lead - [ ]
POST /api/public/leadscreates lead (no auth) - [ ] Rate limiting works on public endpoint (10/min)
- [ ] Inbound webhook creates lead (
POST /api/public/webhooks/leads) - [ ] Outbound webhook fires on deal won (if
CRM_WEBHOOK_URLset) - [ ] CSV import contacts works
- [ ] CSV export contacts/leads/deals works
Module Integration
- [ ] Quote linked to contact on Contact 360° view
- [ ] Ticket linked to contact on Contact 360° view
- [ ] Appointment linked to contact on Contact 360° view
- [ ] Order linked to contact (if e-commerce enabled)
- [ ]
php artisan crm:migrate-legacy-datalinks existing data (upgrades)
Client Portal
- [ ] Public homepage shows CRM landing (not e-commerce widgets)
- [ ]
/loginand/registerwork - [ ] Client dashboard shows only enabled modules
- [ ] Disabled module routes return 404 (e.g.,
/productswhen products disabled) - [ ] Client can view tickets, appointments, quotes
Notifications & Scheduler
- [ ]
lead_assignednotification delivered - [ ]
deal_stage_changednotification delivered - [ ]
deal_wonnotification delivered - [ ]
php artisan crm:send-activity-remindersruns without errors - [ ] Activity due notification sent for overdue tasks
Module Toggle
- [ ] Disable CRM module → menu hidden, routes return 404
- [ ] Re-enable CRM module → menu and routes restored
- [ ] Re-enable CMS module (e.g., Blog) → blog accessible again
Launch Day
- [ ] Deploy code to production
- [ ] Run migrations
- [ ] Run legacy data migration (if upgrading)
- [ ] Clear all caches
- [ ] Verify admin login → CRM dashboard
- [ ] Verify contact form → lead creation
- [ ] Smoke test 3 API endpoints
- [ ] Monitor error logs for 48 hours
Post-Launch
- [ ] Gather team feedback on Kanban and Contact 360°
- [ ] Review lead capture sources in reports
- [ ] Plan v2.1: email integration, duplicate merge, advanced reports
Related Documentation
Last updated: June 2026