Designing a contact form

Arseni Mourzenko
Founder and lead developer
November 3, 2020
Tags: rant 34 interaction-design 8

Re­cent­ly, a col­league asked me how I would re­design a con­tact form on a web­site. An e-com­merce site he was work­ing on had a “ba­sic” (as he claimed) form where you had to pro­vide:

The stake­hold­ers were com­plain­ing that:

One of the stake­hold­ers sug­gest­ed to put some ar­ti­fi­cial in­tel­li­gence in or­der to un­der­stand what the ques­tion is about, and to pro­vide, when pos­si­ble, an au­to­mat­ic an­swer from a pool of pre­de­fined an­swers. The user is al­lowed to con­tact an ac­tu­al hu­man only when the new sys­tem is un­able to pro­vide the an­swer. So for in­stance if the user asks “How do I can­cel my or­der GT-85409?” which can also be rephrased as “Hi. I made an or­der a few min­utes ago, but I changed my mind. How do I can­cel it?” the sys­tem should au­to­mat­i­cal­ly re­ply with the in­struc­tions about the or­der can­cel­la­tion, the can­cel­la­tion pol­i­cy, and the con­di­tions.

This ap­proach is to­tal­ly wrong, and shows a com­plete mis­un­der­stand­ing of the ac­tu­al prob­lem.

The first ques­tion the busi­ness need to an­swer is who's the cus­tomer. Is it the guy who buys the prod­uct, or the per­sons from the sup­port? I bet it's the guy who pays the mon­ey. The busi­ness should fo­cus on re­spond­ing to the needs of the cus­tomer. Here, the busi­ness is com­plete­ly dis­re­gard­ing the cus­tomer it­self.

Imag­ine the same sit­u­a­tion in a su­per­mar­ket. You come to buy what­ev­er you need to buy there, for in­stance a new wash­ing ma­chine. You're un­sure about the ship­ment cost. You catch a per­son who seems to work there, but in­stead of an­swer­ing, the per­son tells you to fill a form first. Then, he tells, the form will be processed by a com­put­er, and maybe then, he might an­swer your ques­tion, but not be­fore. Would you hap­pi­ly do what he says, or call the se­cu­ri­ty to tell them that there is a crazy guy walk­ing in the su­per­mar­ket, dis­guised as the staff? Why would your re­ac­tion be any dif­fer­ent when you're shop­ping on­line?

The rai­son d'être of a busi­ness is to serve its cus­tomers. Not to make their life mis­er­able to make a sup­port per­son hap­pi­er, or to sat­is­fy the sick need of a stake­hold­er to put what­ev­er fan­cy tech­no­log­i­cal stuff is there at a giv­en mo­ment. Cus­tomers don't care if you're do­ing ma­chine learn­ing or big data or mi­croser­vices, nor does he care about par­a­digm shifts, cloud com­put­ing, dig­i­tal con­ver­gence, or oth­er crap. Nor does he care about the hap­pi­ness of a sup­port guy. By show­ing that you care more about those things that you're car­ing about the cus­tomer, you're do­ing a bad job.

Back to the form it­self, mar­ket­ing guys love col­lect­ing data. They want ab­solute­ly to know who their cus­tomers are, where are they from, are they mar­ried, and how many pets they have. This is all very in­ter­est­ing, but here again, it doesn't bring any val­ue to the cus­tomer to have to spend ten min­utes fill­ing a form.

Cat­e­gories are an­oth­er thing which is ab­solute­ly wrong. I shouldn't have to scroll through all the op­tions in or­der to con­tact a com­pa­ny. An ar­gu­ment I hear the most when try­ing to ex­plain that it makes no sense to force the cus­tomers to choose be­tween the cat­e­gories is that “it makes it eas­i­er to redi­rect the ques­tion/re­mark to a cor­rect de­part­ment.” I'm sor­ry, but I don't see why I, as a cus­tomer, have to do the work that should be done by the per­son­nel, just to make the life of the per­son­nel eas­i­er. Once, a per­son even re­spond­ed that “the per­son­nel doesn't al­ways know where to redi­rect a giv­en ques­tion/re­mark.” I re­al­ly don't see why I'm sup­posed to have a bet­ter un­der­stand­ing of the or­ga­ni­za­tion of a com­pa­ny, than the per­sons who ac­tu­al­ly work in this com­pa­ny. An­oth­er per­son gave a dif­fer­ent rea­son: “well, ac­tu­al­ly, some­times we don't know how to clas­si­fy a ques­tion/re­mark, be­cause it doesn't fit the cas­es.” Right, let's talk about the cas­es.

A few days ago, I was ex­pect­ing a ship­ment to ar­rive. The track­ing showed that the ship­ment is about to come, and then, it showed that it was de­liv­ered, even if no­body came. A few min­utes lat­er, I re­ceived an email ask­ing me to pro­vide my feed­back about the de­liv­ery man. When I gave 1/5 stars, I got the ques­tion why was my rat­ing so low, with sev­er­al choic­es. Was he im­po­lite? Or was the par­cel dam­aged? Or was he late? Fol­lowed an­oth­er three or four rea­sons, all as­sum­ing that the par­cel was de­liv­ered. Es­sen­tial­ly, I was forced to check a wrong case, be­cause the com­pa­ny nev­er as­sumed that their de­liv­ery guys don't both­er to come.

With con­tact forms, the same prob­lem hap­pens all the time. You have some­thing to say, and then you waste your time try­ing to find a cat­e­go­ry which would be the least ir­rel­e­vant. What for? How putting some­thing ir­rel­e­vant would help the sup­port guys? Or how should it make me hap­py and will­ing to con­tin­ue deal­ing with the com­pa­ny?

The idea of ar­ti­fi­cial in­tel­li­gence pre­vent­ing the cus­tomer to get any sup­port is be­yond stu­pid­i­ty. Es­sen­tial­ly, the per­son has to guess how to trick the sys­tem in or­der to get to the real per­son. While it could be fun for a hack­er to do, it is much less fun for a cus­tomer, who usu­al­ly has oth­er things to do. The sup­port shouldn't be con­di­tioned by the mer­it of be­ing able to hack a sys­tem. Don't do that.

Any con­tact form should con­tain two and only two fields:

Any ad­di­tion­al field is just show­ing to the cus­tomer that you don't care about him.