PURPOSE
Procedure for fully branding a firm's ProDeskCPA instance — firm logo, color scheme, custom portal domain, email-from domain, EL templates, brand DBA vs legal name. The output is a client-facing experience that looks like the firm's own product, not ProDeskCPA's.
WHEN TO USE
- New firm signup — branding is part of Setup Wizard
- Firm rebranding (new logo, color refresh, name change)
- Firm acquiring another firm (consolidating brand)
- Going from default Provectus theme to firm-specific theme
ROLES INVOLVED
- Primary owner: Firm OWNER or ADMIN
- Marketing/design lead (if firm has one): provides assets
- IT/web admin: handles DNS CNAME setup for custom portal domain
- Engagement Partner: confirms EL template language matches firm's standard
PREREQUISITES
- Firm logo file (PNG or SVG, ≥ 200×200px, transparent background recommended)
- Brand color hex codes (primary, accent, optional bg)
- Custom domain available (e.g. portal.firmname.com) — DNS access required for CNAME
- Email domain owned by firm if doing custom email-from
- Engagement letter language reviewed by firm's legal counsel (for non-default templates)
PROCEDURE
1. Settings → Firm Profile (M-036)
2. **Logo upload:** click Logo upload → drag PNG/SVG (size validated: must meet 200×200 minimum); preview shows where logo will appear (sidebar, email headers, client portal, ELs, signing pages)
3. **Color scheme:** in Branding & Colors panel:
- Choose from BRAND_PRESETS (Provectus default, Modern Blue, Elegant Black, Forest Green, Royal Burgundy, etc.) OR
- Enter custom hex codes for primaryColor, accentColor, optional bgColor
- Click "Live Preview" → applies changes to sidebar/buttons/email headers (preview both light and dark mode)
4. **Brand vs Legal name:** Settings → Firm Profile → fill BOTH:
- Legal name (e.g. "Smith & Co. CPAs LLC") — appears on engagement letters
- Brand name / DBA (e.g. "Smith CPAs") — appears in client-facing UI, emails, marketing
5. **Address + EIN + Phone + Email:** populate firm contact info
6. **Engagement Partner + Zelle email:** populate fields used by EL templates (auto-interpolated via {{ENGAGEMENT_PARTNER}}, {{ZELLE_EMAIL}})
7. **Custom portal domain (optional, paid plan):** Settings → Firm Profile → Custom Portal Domain → enter portal.firmname.com → system shows CNAME record to add
8. Add CNAME record in firm's DNS provider pointing to ProDeskCPA's white-label endpoint (per system instructions)
9. Verify DNS propagation (system has check button); SSL auto-issues via Vercel
10. **Custom email-from domain (optional, depends on white-label send decision A/B/C):** until decision made, outbound mail routes through noreply@prodeskcpa.com (deliverability working but bleeds the brand)
11. **EL templates:** Settings → Templates → Engagement Letters
12. 6 default templates load: Tax 1040 / Tax Business / Audit GAAS / Review SSARS / Compilation / Single Audit
13. Per template, customize body text, fee structure, terms; preserve {{LEGAL_NAME}}, {{ENGAGEMENT_PARTNER}}, {{CLIENT_NAME}}, {{ZELLE_EMAIL}} tokens for auto-fill
14. Use ⛶ Full View popup window to preview EL as client will see it; Edit mode shows amber warning bar to prevent accidental editing
15. Apply Changes → "Edited" badge appears; Reset to Template available if changes need rollback
16. **Mobile portal app branding (Phase 1):** firm-specific theming applied via JWT claim on per-firm shared App Store app
17. **Mobile portal app branding (Phase 2 enterprise):** dedicated EAS white-label build per firm — separate App Store listing — coordinate with ProDeskCPA team
DECISION POINTS
- Phase 1 (shared app + JWT theming) vs Phase 2 (per-firm EAS build): Phase 1 is default; Phase 2 is enterprise-tier feature requiring coordination
- Custom domain vs default subdomain: paid feature; for firms that want full white-label
- White-label email-from architecture (A: SMTP via firm IMAP / B: SendGrid subdomain auth / C: fake-FROM): UNRESOLVED at platform level; track this for resolution before going live with email white-label
- Brand vs Legal name conflict: if firm uses different legal entity name vs marketing name, populate both; ELs use Legal, UI uses Brand
- Light vs dark mode: changes affect both — preview both modes before committing
EDGE CASES
- Logo upload too small / wrong format: validation rejects; user re-uploads
- Color contrast issues (e.g. light blue on white = unreadable): no auto-validation; firm responsible for legibility — preview rigorously
- DNS CNAME setup mistakes: portal.firmname.com unreachable — debug via DNS verification tool; common error is wrong CNAME target
- Custom portal domain SSL renewal: Vercel auto-handles; if expires, alert is sent
- EL template includes {{token}} that doesn't exist in Firm Profile: token renders as literal text — review templates after Firm Profile changes
- Reset to Template loses custom edits permanently (no undo) — confirm before clicking
- Phase 2 per-firm EAS build coordinated with ProDeskCPA team — typical 2-4 week turnaround per firm
KPIS / QUALITY CHECKS
- Logo + colors set before first client invitation (no Provectus default visible to clients)
- All 6 EL templates reviewed by partner before first EL sent
- Custom portal domain verified + SSL valid (if applicable) before client onboarding
- Brand consistency: same logo + colors across web portal, mobile app, email headers, signing pages
RELATED MODULES & SOPS
- Modules: M-036 Settings · M-007 Client Portal · M-026 E-Sign · M-025 Email · M-040 Onboarding (EL phase)
- SOPs: SOP-010 (integration setup — predecessor) · SOP-001/002/003 (client onboarding flows that USE the EL templates) · SOP-009 (new staff — same Settings access)
NOTES
- Phase 1 = shared App Store app with per-firm JWT theming; Phase 2 = dedicated EAS build per firm — design intent has both
- White-label send architecture has 3 options (A/B/C) — deliverability impact is significant; choosing wrong option may cause emails to land in spam
- "Apply across the entire app" — Settings → Branding is the single source of truth for theming (sidebar, buttons, accents, portal, email headers)
- Phase 2 enterprise per-firm app building requires Expo EAS configuration + per-firm App Store submission; coordinate with ProDeskCPA team for timeline