I have a child record called customers.

So when I create a new Customer, it's a form with a few text fields and one dropdown tree structure that lists all possible Companies that a new Customer might belong to.

Sometimes, when creating a new Customer midway through the form, the user realizes they need to create a new Company.

Creating a new Company is a form that requires at least filling up 3 fields in a new form.

How do I elegantly design the user flow?

In the first place, the only form to create new Customer is a modal dialog popup.

My options are:

  1. have a link next to the Companies dropdown that says or Create New Company and this link opens a new tab to the standard Create new Company form. When the user is done, they need to go back to the previous tab and then press refresh so that the dropdown will load the new Company
  2. have a link next to the Companies dropdown that says or Create New Company and this link opens a modal on top of the original modal. This new modal is to create new Company and when they press submit for new Company the old modal comes back with the dropdown preselecting the newly created company.
  3. inside this modal for creating new Customer, I have 2 horizontal tabs. 1 for creating new Customer and 1 for creating new Company. The dropdown is always polling the server side for Companies thus ensuring the dropdown is always up-to-date.
  4. Others?

The frequency of adding new Company will be high at first. As time goes by, the frequency will drop.

Let's assume high frequency.

  • I don't suppose that it's acceptable for clients to not have a company? And, do you normally add multiple clients for a same company or just one? That could be a clue to optimising the interaction flow, for instance if you have several clients per company, create them without company, and either: when you create a company, allow to add it to "companyless clients", or have a special view for those "companyless clients" that allows batch-selecting them and create a company for them. Likewise you could use some intelligence to guess the company of a client being created and avoid users scrolling? Dec 30, 2015 at 10:48

5 Answers 5


I would go with the second option. It's unobtrusive and flexible. And it doesn't nessesary have to be a modal dialog, it can be integrated directly into the form so that you the user don't loose their flow. ui example

  • Plus it's easy to add a link to a "Advanced / Full version" creation form if you later have additional forms that are not mandatory! Dec 30, 2015 at 10:49

I think this would largely depend on how often new companies are going to be added.

If the frequency of adding new company is low

I would go for first option and simply say 'Add Company' rather than 'Create New Company' since this Company would already exists in the real world and you are simply adding it in your system.

If the frequency of adding new company is high

Add another option 'Add Company' in the drop-down which will be differently highlighted (with a different background color) to indicate that this has a different action from other options in the list.

  • The frequency will be high at first. As time goes by, the frequency will drop. In that case, let's assume high frequency. In that case, what happens when you click on the Add Company option in the dropdown? Redirect? Open another modal? Show extra fields in current modal tab?
    – Kim Stacks
    Dec 24, 2015 at 10:35
  • @KimStacks In that case you can first design for high-frequency and in subsequent versions try to phase your app towards option-1 Dec 24, 2015 at 10:39
  • Then what would u recommend for high frequency?
    – Kim Stacks
    Dec 24, 2015 at 10:43
  • @kimstacks check the second option I had suggested Dec 24, 2015 at 10:49
  • What happens when i press that button in the second option? Open a new tab? Stay in the same tab, but navigate to the add new Company page?
    – Kim Stacks
    Dec 25, 2015 at 5:05

I think you shouldn't have a specific button for creating a new company, but rather have it be the default state.


<add a company>

If users add a Customer, they can quickly say who the relevant Company is, or they can fill in the Customer info first. When they finish with Customer info, they press next. If they have selected a company from the list, done. If they have not selected a company yet, show them (again) the list with options.

When (the default state) is selected, show editable textboxes. When "Apple" is selected, show the text, but uneditable. This allows them to check if they've got the right one. I'm talking about Apple Corps, obviously.

It's 4AM, so my brainsquish is a bit fuzzy. Does the above all make sense?

  • The issue is before users finish adding new Customer, they realize they need to add new Company. What abt the ux flow after finishing add new Company?
    – Kim Stacks
    Dec 25, 2015 at 5:05
  • The idea is to make it a separate step, not crammed in the middle of the other step. Either stick it in the front with a selector box followed by (editable or not) textboxes, or stick it on a second page you go to after finishing the client. This creates a simpler flow of [ company -> person ] or [ person -> company ] instead of [ person -> company -> person]. Why do you want users to add in the Company halfway through the other process? Dec 25, 2015 at 9:58
  • There are two menu tabs: Company and Person. Clicking on Person shows you the search page and add button. However, any Person to add would definitely require selecting a Company. So person > company > person may happen when they click on Person first and then realise the company does not yet exist.
    – Kim Stacks
    Dec 25, 2015 at 11:48

Here is a mockup of creating any related data while user is in the process of creating another entity. Creating new company dialog that is called out from a button can be in modal or it can be in an expandable ajax area right below the input form. Having a full text search & autosuggestions in the companies form will save your database from some amount of typos and multiple clones of the same company spelled wrong etc.

enter image description here


I think most options that divert the user from one linear task off on a separate tangent aren't ideal.

One option that comes to mind is the ability to select a company or "other", which allows you to fill in the new company's name and nothing else. That's information that is conceptually part of the child record's information.

Then once the full form (and therefore primary task) has been validated and completed, send the user to a new form to fill in the remaining details about the company, with the company name prefilled to help make it clear what operation is being performed. Extra nice (but potentially forbidden in your data structure) is the option to "skip completing company" and come back to it later through the presumably familiar edit company workflow, leaving the new company as a stub (presumably clearly marked as such in listings etc.).

That allows the user to focus on the task at hand, deferring anything tangential to it until the task is complete (whether it's a single record creation, or a batch data entry scenario).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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