In our org, we define a certain partner user as 'admin'. While he can create more contacts for his account, is it possible that he can also activate them as partner users? (assume the license limit is not an issue). Can that be self completed? or there will always need to be some 'internal user' to complete the task?

Something similar to self registration, but to become an active partner.

2 Answers 2


Definitely possible.

There are specific permissions required to create users in the org such as "Manage Users" System Permission. Your distinct "Admin Partner" can receive these through their Profile (if it's unique from other Partners) or by assigning them through a Permission Set.

Make sure to do a security analysis of this user persona first, ensuring that you do not accidentally allow administrative capabilities for them beyond what is intended. For example, you may not want them to be able to deactivate, edit, or view information of internal users.

If you use a standard Apex service for your registration logic, this could be repurposed for use by the Admin Partner user(s) as well for creating new users.

It's relatively straightforward to extend the default Self Registration controller in Apex with additional functionality in use it within the community.


Yes, we have it set exactly as this in our org. User gets credentials to portal and there have ability to create access to other users. You just need the account and contact, then insert user like so.

        new User(
                Username = contact.Email + '.asd.' + getTenDigitsString(),
                FederationIdentifier = contact.Email,
                ContactId = contact.Id,
                ProfileId = communityLoginProfileId,
                Alias = contact.FirstName.left(1) + contact.LastName.left(4),
                Email = contact.Email,
                EmailEncodingKey = 'UTF-8',
                FirstName = contact.FirstName,
                LastName = contact.LastName,
                CommunityNickname = 'User' + getNicknameNumber(),
                TimeZoneSidKey = UserInfo.getTimeZone().toString(),
                LocaleSidKey = UserInfo.getLocale(),
                LanguageLocaleKey = UserInfo.getLanguage(),
                IsActive = true
  • Thank you, some info on how you did it would be helpful
    – Saariko
    Mar 8, 2022 at 18:39
  • 1
    answer updated.
    – Damecek
    Mar 9, 2022 at 7:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .