The problem is, as soon as you have multiple people involved in a communication chain, details get lost, and feedback loops become
really extensive because of all the latency involved - and CSRs
hate to be paper pushers. The worst case is in large organizations when bug reports to a vendor have to go through the company's purchasing department... because that's
three transitions where information is delayed, misrepresented and lost: user => purchasing dept, purchasing dept => vendor CSR, vendor CSR => vendor developer. In the worst case, add another step for vendor developer => outsourcing company rep and outsourcing company rep => outsourcing company developer.
Each communication step, unless it's a critical bug that warrants putting everyone in a shared call, adds anything from two to sixteen hours worth of latency, leading to feedback taking days or weeks.
I have found to like the model of:
1. Customer contacts a project manager / support rep (depending on the organization - the former will be prevalent in the agency world, the latter in the classic SaaS/old-school software world), to inform them about a bug.
2. CSR/PM does an initial triage: can they reproduce the bug, is it an already known bug? If it is a valid and new bug, the known-to-that-point details get passed to a developer.
3. Developer contacts the customer for further information and direct troubleshooting, and involves other departments (ops, dba) as needed on their own
4. In case of higher effort bugs / feature requests, developer coordinates with PM for bureaucracy (creating tickets, test cases, ...)
5. Bug gets fixed, tested, and deployed
6. CSR/PM contacts customer and asks them for re-testing on their end.