Both describe what the system needs to do, but at different levels.
Functional requirements — what the system does from a user/business perspective.
Examples:
- "When a sales rep marks an opportunity as Closed Won, the customer should automatically receive a welcome email."
- "Cases above $10K in potential refund must be routed to a manager for approval."
- "The dashboard must show pipeline by stage, refreshed every 15 minutes."
Functional requirements are business-language, observable, testable by an end user.
Technical requirements — how the system implements the functional behaviour.
Examples:
- "Email sent via Marketing Cloud transactional API; payload includes order details JSON."
- "Approval routing implemented via Apex trigger calling Approval Process; manager set via custom Lookup field."
- "Dashboard backed by Reporting Snapshot scheduled every 15 mins, captured to a custom object, displayed via standard Dashboard component."
Technical requirements are implementation-language, architecture-specific, testable by developers.
Non-functional requirements are a third category — properties of the system rather than features:
- "Page load time < 2 seconds for 95th percentile."
- "Support 5,000 concurrent users."
- "Compliance with SOC 2 Type II."
Senior consultants ensure all three are captured and traceable: each functional requirement maps to one or more technical requirements; non-functional requirements gate technical choices.
Common mistake: writing "technical-sounding" requirements ("use Lightning Web Component for the search bar") in the functional doc — pre-decides implementation, may not survive technical review.
