Only assigned Leads visible - CRM enabled only for sales representative

I need to set this behavior on ERPnext v15.
There are different sales agents dealing with different leads and customers. A sales manager manages all of them. I want to create a specific user account for each of them. These guys should deal with some assigned leads, collected leads and their own customers.
How to have this system with the following features?

  1. Each sales guy can see only the assigned or own leads.
  2. The sales guy should track all the sales process and report the full pipeline on ERPnext for each lead and customer
  3. When a quotation is required, the sales manager prepares it for the sales representative and share with her/him
  4. The sales guy cannot see any other information apart their own sales, assigned leads, customers and dedicated quotations.
  5. The sales manager prepare different quotations and share all of them with the specific sales guys. The sales guys share the quotations with the client
  6. Each sales guy cannot see sales data on other sales guys or total volumes
  7. Each sales guy cannot see other company information like revenue, other leads, accounting, products, warehouse, etc…
  8. The sales manager needs to track all the progress on each lead and customers and see the sales guy results in terms of generated revenue

What’s the best setup to have this system?
I’ve created some users’ accounts for the sales guys. For this type of accounts I set the followings.
As Roles I enabled only ‘Sales User‘ from the Roles&Permissions tab.
About Allow Modules, I enabled only Communication, Contacts, CRM and Email in the specific section of the account settings.
Following this procedure the sales guy can see all the available leads. How to solve this? How to compartmentalize a group of leads assigned to a specific account? I also tried to assign a Lead to a specific account but it seems not changing The other conditions of the system seems respected.

What do you think? How to make it working as required?

Which procedure should I follow? Should I follow a different way?

Thanks

I’d be happy to follow your suggestions

I tried this way to solve my setup but it does not work and I don’t know why.
I created a new Role, called Business Developer
Here is what I have configured so far:

  1. Custom role

    • Created a custom role called Business Developer.

    • Assigned this role to a test user.

  2. Role permissions (Role Permission Manager)

    • DocType: Lead

    • Role: Business Developer

    • Permission Level: 0

    • Enabled: Select, Read, Write, Create, Email

    • “Only if Creator” is not enabled.

  3. Lead field configuration

    • Field: “Qualified By”

    • Field Type: Link

    • Options: User

    • “Ignore User Permissions” is not enabled.

  4. User Permission

    • User: the Business Developer test user

    • Allow: User

    • For Value: the same Business Developer user

    • Applicable For: Lead

  5. Lead records

    • For some Leads, the “Qualified By” field is set to the Business Developer user.

Expected result:
The Business Developer should see only the Leads where the “Qualified By” field matches their user.

Actual result:
When the User Permission rule is active, the user sees no Leads at all.
If I remove the User Permission rule, the user can see all Leads.

I suspect there is something missing either in the role permissions configuration or in how User Permissions are applied to the Lead DocType, but I cannot identify what is incorrect.

Has anyone successfully implemented record-level visibility filtering based on a Link field (User) in Leads? Any guidance on what additional configuration is required would be greatly appreciated.

Thank you!

No one can help me on this issue?
Could suggest at least some guides that help me to understand the mechanism behind this behavior? Your help will guide me to understand some tricks for a possible solution. Thanks

@jaymez

Please use assign to or share option on side bar on the left side of each doctype.

@jaymez

You can use Role Permission Manager instead of User Permission on a custom field.

For the Sales Representative role, go to Lead permissions and enable Read, Write, Create with the “If Owner” option checked. This ensures the user can only see the Leads they created.

If the sales manager needs to give leads to a sales rep, they can use the Assign To feature. The assigned leads will appear in the sales rep’s Assigned To Me list, but they won’t see other leads.

For quotations, the manager can create them and share the document with the specific sales rep using the Share option. This way each sales rep only sees their own data while the manager can see everything.

Oh this seems working with these settings:

  1. Custom role

    • Created a custom role called Business Developer.

    • Assigned this role to a test user.

  2. Role permissions (Role Permission Manager)

    • DocType: Lead

    • Role: Business Developer

    • Permission Level: 0

    • Enabled: Select, Read, Write, Create, Email

    • “Only if Creator” is enabled. (changed from previous settings)

  3. Lead field configuration

    • Field: “Qualified By”

    • Field Type: Link

    • Options: User

    • “Ignore User Permissions” is not enabled.

  4. User Permission

    • User: the Business Developer test user

    • Allow: User

    • For Value: the same Business Developer user

    • Applicable For: Lead

  5. Lead records

    • For some Leads, the “Qualified By” field is set to the Business Developer user.

So what was missing in my setup is the option Assigned To. With the settings of above and assigning to a specific user, it can see only the specific assigned Leads, as required.

What now I’m trying to understand is this: should I continue to use the settings of the specific Lead field configuration? I make a test and it seems to be not influential. What do you suggest?