Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

Our business-focused web app helps small vendors manage food deliveries to small or large companies. I'm looking for UX ideas for the part of the app where users enter contact information for delivery locations. Some delivery locations have multiple contacts. If all contacts were equivalent, then a good UX solution is here: Layout for adding one or more contacts to a record.

But in our case, contacts have roles. One contact may be a "send bills to" contact, another may be a "accepts deliveries", another may be a "handles security/access", etc. There are 7-10 roles. Furthermore, contacts can play multiple roles: the "send bills to" contact might also be the "business decision maker" contact.

So I'm looking for advice in creating a web form UX that can:

  • allow entry of multiple contacts, each playing 1+ roles
  • restrict roles to only one contact-- you can't send a bill to 2 different people!
  • avoid duplicate data entry in the case where a contact shares an address, phone number, email address, and/or fax number with the "main" contact info for the business
  • avoid making the "only one contact" case more complicated, given that 80%+ of businesses will have one contact to handle everything.
  • make the multiple-contact case simple enough that even low-tech office workers can figure it out.

BTW, our current "Edit Customer" form looks like this:

Customer Name:  ______________
Address:        ______________
City:           ______________
... more contact fields here: phone, email, fax, etc.
Payment Terms:  XXXXXX  [change]
Notes:          [text field]
... a few more non-contact fields here

[Save]  [Cancel]

To support multiple contacts, the 80% case (only one "general" contact needed) seems easy: show a similar form as today, but with an add more button. Like this:

Customer Name:  ______________

Contact: 
   Contact Name:   ______________
   Address:        ______________
   City:           ______________
   ... more contact fields here: phone, email, fax, etc.

   [add another contact]

Payment Terms:  XXXXXX  [change button]
Notes:          [text field]
... a few more non-contact fields here

I'm stuck on what should happen when a user clicks the add another contact button. Got ideas? Are there apps you know that solve this problem well?

share|improve this question
    
Duplication of data entry can easily be avoided by keeping the general details with the customer as they are now and providing an option with each contact to "use general contact information" (show it!) or to "enter specific contact details". It is similar to using the billing address for delivery as well or shipping somewhere else as many e-commerce sites allow. –  Marjan Venema Jul 19 '13 at 8:58
    
Is it necessary to have all the roles filled for every transaction? Can the roles be sorted in some logical order, which has sense for the users or/and reflects delivery process? –  Alexey Kolchenko Jul 19 '13 at 10:21
    
@MarjanVenema - what makes it easy in the billing vs. shipping case is that it's a binary state: either re-use the other address/phone or don't. In my case, it's much more common that some parts will be shared and others won't, e.g. address but not phone, or phone but not email. –  Justin Grant Jul 19 '13 at 19:04
    
@AlexeyKolchenko - great questions. The "general" contact takes all roles by default. Secondary contacts will typically take 1-2 roles only, e.g. a CFO may get the "send bills to" role and the "business decisionmaker" role. –  Justin Grant Jul 19 '13 at 19:06
    
So give them the option per part. –  Marjan Venema Jul 19 '13 at 19:23

2 Answers 2

up vote 1 down vote accepted

You can try this solution. The idea is user doesn't set explicitly the roles for the primary contact, it has all roles assigned implicitly. So if there are no secondary contacts user does no actions concerning the roles setting.

For each secondary contacts user defines the roles explicitly. Finally system defines primary contact's role by substracting all the roles which was pointed for secondary contacts.

enter image description here

enter image description here

enter image description here

One of advantages is a possibility to observe a list of contacts and their assigned roles.

share|improve this answer
    
great answer. I definitely like the idea of graying out "taken" roles, and setting the primary's role implicitly. thanks! –  Justin Grant Jul 22 '13 at 20:54

enter image description here

You might want to consider this option

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.