Yes, it's allowed - folks do this all the time on Stack Overflow. Indeed, some of the top users on the site have used it to provide support for products they're affiliated with. When done right, it works really, really well for everyone involved...
...but when done wrong, it is an embarrassment to us all.
The critical factors to making this work are:
Product support, not customer support. If someone is trying to negotiate pricing or figure out why their account has been disabled, they need to speak to a service rep - these questions are both off-topic and too specific to the asker to answer publicly. By the same token, pushing folks to SO in lieu of hosting an actual discussion forum just serves to kill your user community and infuriate ours. Stack Exchange should be one resource among many.
Do not direct your customers to a Stack Exchange site when your staff has no intention of actually helping them when they ask questions. I probably don't need to give any examples here; this is just painful for everyone involved (except maybe the bean-counter who came up with the plan).
The product being supported must be on-topic! This should go without saying, but... Card games are off-topic for Arqade, office productivity apps are off-topic on Stack Overflow, and that bundleware AV program is off-topic on Server Fault.
Finally, it is critical that when employees show up to support their product, they adopt the community's norms. There's nothing special about this scenario; this should be expected of every new user. Someone emailed us the other day asking for advice on participating in good faith, and I offered him the following guidance - feel free to share with anyone you see struggling to fit in:
The Stack Exchange sites are designed with a ruthless focus on problem-solving. They work best when askers post specific problems they've encountered and answerers provide specific, detailed solutions to those problems. We're banking on the theory that problems are rarely unique to one person - if an answer proves useful to one, it will be useful to others. So far, this has been demonstrated to work quite well - as long as questions are clearly stated and answers provide sufficient detail, they are found and read by many others over their lifetime.
This ideal has significant implications for how our members write - and how they expect others to behave. On a traditional forum, the same questions tend to be asked and re-asked, day-in day-out, for years... For efficiency's sake, regulars tend to rely on terse answers that direct askers to a source of canonical information, to FAQs, and to long-form articles written with beginners in mind - writing detailed answers to each new question is simply not feasible. On Stack Exchange, even answers to very old questions can be quickly found by searching, so effort spent writing those answers is not wasted; new instances of the same question can be closed as a "duplicate" of an already-answered question, thus directing even more readers to the existing answers and further maximizing the return on investment for the writer. This being the case, members strive to encourage long-form answers that present complete solutions to the problem at hand, with links to other articles reserved purely for "further reading"; answers which consist primarily of links to other sources or which do not attempt to directly address the problem stated in the question are routinely ignored or even deleted.
That out of the way, here are some specific recommendations for answering:
- Look for questions with specific, clearly-stated problems. A problem that isn't specific is less likely to be directly useful by someone else; a problem that isn't clearly-stated is unlikely to be found by anyone else. You want your answer to be found and found useful - so focus on questions that'll allow it to be.
- Always solve the asker's problem. A good answer should at minimum allow the person whose question you're answering to solve his problem. Not all questions can be answered this way, but generally if you don't think you can write up a complete solution then you're better off looking for a different question.
- Answer for the ages. If you want folks to remember you, write with an eye toward answering not just the asker's problem but also the problems likely to be had by those finding the question in the future. In particular, always explain why the solution you're presenting is appropriate and how it works - this can enable others with very similar problems to learn how to solve them even when they aren't carbon-copies of the one you're addressing directly.
- Answer what you know. Chances are, you have quite a collection of knowledge obtained over the years in various roles - so look for questions that are lacking good answers where you can show off a bit.
- Answer what you're learning. If you're researching a new topic or area of interest, look for questions in that area and attempt to answer them - sometimes, having the framework for learning something fresh in your mind is exactly what is needed to effectively communicate a concept to someone else in roughly the same position.
Here are some common pitfalls:
- Avoid talking about your product / website / book / job too much. Folks are gonna read and remember you and your answers for their ability to solve a specific problem; if you're good at doing that, then they'll find themselves more interested in who you are, what you're working on, and how you managed to get so smart. Some folks show up and answer only questions where the answer can be "something I'm selling" - that's a bit of a turn-off, and they tend to face backlash from other members even when their answers are useful! By the same token, when you do find yourself answering a question where your work is relevant be sure to show, don't tell - the best way to avoid being seen as a snake-oil salesman is to demonstrate a solution rather than simply asserting the problem can be solved.
- Don't include links except to support what you've written. Links are not a substitute for including information in your answer itself, and links should always be directly relevant to a part of your answer. A good link might be, "for more information, see the documentation for this API"; a bad one looks more like "your answer can be found deep within this mile-long whitepaper". See also: Your answer is in another castle: when is an answer not an answer?
- Don't astroturf. The reddit guys kick-started their community by using sockpuppets to post fake comments, but this isn't reddit and most folks who try this fail miserably - trust me, it's almost always transparent and it looks really bad when someone calls you out for it.
- Don't have all your co-workers upvoting everything you write. It's natural to want to look at what your friends and colleagues are writing, but avoid the trap of upvoting all of it - again, this is way more obvious than you probably expect, and folks will call you out for it. Worse yet, it deprives you of the ability to gauge how well your writing is being received!
Most of the trouble I observe comes from plain old ignorance; folks not understanding what Stack Exchange is for, and... Well, perhaps not trying very hard to understand it. Occasionally, there are less admirable motives at work. Assume good faith and try to guide these folks in the right direction unless / until they demonstrate an unwillingness to do the right thing. Again, feel free to pass this answer on to anyone you observe struggling.