Multiple pipelines for different onboarding flows

As a company we have multiple onboarding flows that have distinct process flows an Opportunity must go through before they can be converted to a sale. These are generally along the lines of:

  • Receive enquiry
  • Gather additional data about the customer
  • Identify the product is correct for them
  • Perform sale

These steps vary somewhat between our flows depending on the type of user you are.

I was hoping to use SuiteCRM to streamline these flows within the organisation. I have self hosted the OS version and set up a basic flow by utilising the “Opportunities” module and renaming it to the context of one of our flows. With some tinkering I could see this being a feasible solution to that flow.

The issue I’m seeing however is what happens when I want a different flow with different stages, so when I log in I want to see:

  • Opportunities for Flow A
  • Opportunities for Flow B
  • Opportunities for Flow F

How do I set this up with SuiteCRM (In other CRMs this would be known as “Multiple Pipelines”)

Isn’t this simply a custom Dropdown field in the Opps module, called “Flow”, that let’s you distinguish between the types? Then you can have custom filters or even custom subpanels listing the different types.

I’m not sure what you mean, I basically want two completely separate pipelines that both operate how “Opportunities” currently operates. This will mean having totally different “Stages” for either pipeline.

I could add an extra drop down to opportunities to distinguish “type” but I dont see how that gets round wanting to run reports on them separately and have totally different “stage” options?

This separation by types (or “flows”) doesn’t exist in SuiteCRM. So to get it done you need to customize the code.

Once you have that field you can use it to set up different subpanels, for example:

http://www.urdhva-tech.com/blogs/add-custom-subpanel-in-accounts-module

That would cause the list of Opps to be split between two different lists.

You would need other customizations, like separate Menu Actions for different types, or Workflows to handle events differently.

I don’t know what your skill level is, if you’re a PHP developer or not, so I’m just throwing some random ideas. It does need some skill and investment…

I’d be happy to help further in case you can get some more specific practical questions.

I have a very similar requirement where I need several different sales pipelines, each having different sales stages.

I am a PHP developer and I’m comfortable creating custom modules if necessary, but I’m a newbie with SuiteCRM.

Which of these two solution options is better or is there another even better solution?

Solution Option 1:

Add a dropdown field called “Opportunity Type” to the Opportunity module. Then create custom dropdown fields that are similar to sales_stage_dom to contain each list of sales stages for each different Opportunity Type.

If I go ahead with this solution option, what would be the consequences if I stopped using sales_stage_dom altogether? Would using custom fields for my sales stages affect other features or capabilities of SuiteCRM?

Solution Option 2:

Create a new module based on the Opportunity module for each different pipeline and name the modules differently.

What do you think?

I have a hunch Solution 1 would be best, but it is true that there are many bits of code in SuiteCRM referencing specific values in

https://github.com/salesagility/SuiteCRM/search?q="closed+won"&unscoped_q="closed+won"

https://github.com/salesagility/SuiteCRM/search?q="closed+won"&unscoped_q="closed+lost"

You’ll have to examine those and see to what extent they impact your own processes.

Maybe a 3rd way to do it would be to add all values into sales_stage_dom (combine them) and then filter that dropdown to show only half of the values according to the Sale type.

This way you would always be using the same field, and you could use Closed won and Closed Lost for both Sales types. The same goes for any other stages that you find referenced in the code - I believe these two are the most critical, but perhaps others are referenced as well.

Thanks for your advice. I appreciate it.

I’m going to try your 3rd idea and add all values into sales_stage_dom (combine them) and then filter that dropdown to show only the relevant values according to the Opportunity Type.

I also have a requirement where User Role A should only be able to see Opportunities where Opportunity Type = A and User Role B should only be able to see Opportunities where Opportunity Type = B. What is the best way to set this up using the Security Suite?

Also, is it better to create separate views for each different Opportunity Type that has different custom fields, or should I just modify a single view and add some conditional logic to display different custom fields for different Opportunity Types?

One more question: I have another requirement where different roles can view certain specific Account Types and not other Account Types. What is the best way to configure or develop this?

Thanks again for all your help.

I suggest trying out this “typical set up” of Security Groups and work from there:

https://docs.suitecrm.com/user/security-suite-groups/#_a_typical_hierarchy_setup

Essentially, you create different groups for the users, and then assign each Opportunity/Account record to the group you want to have access.

:point_up: this one should be easier

Did you find the proper way to manage multiple pipelines?
At the end I am trying to create new modules, but I would prefer a module managed by someone that maintains it.

Please let me know if you have found some proper module.

Best