Question

Is there a way to automically assign a user to a license?

  • 15 February 2023
  • 4 replies
  • 58 views

Userlevel 4
Badge

Hello - does anyone know of a way to automatically assign a user to license automatically?  

 

We have several branches that have purchased unrestricted/unlimited licenses. Daily, we add new users to the licenses purchased by each branch. We would love a way to automate this. Any ideas? 


4 replies

Userlevel 7
Badge +7

have not seen anything that could link something like Enrolment Rules to Subscriptions since the admin must use the Manage Seats app to enrol users via a subscription. I do remember,ber running some tests to see if when an admin enrols users via Course Management, where they were only allowed to use up the seats they purchased but it was so long ago I cannot recall if did indeed block enrolments beyond the number of available seats...you may want to try this out and see idk it works. Still not sure if you try and automate using Enrolment Rules whether this would work.

Userlevel 4
Badge

Thanks, our situation is that the users need to be enrolled into the licenses and then they select their own courses so we want to automate the assignment of the unlimited licenses for specific branches

 

Have you found a solution for this yet? We are considering something similar, in that we want the users in a particular branch to have access/visibility to certain courses that they can enroll in one, some or all of the courses. We may or may not use the Subscriptions app for the license purchase. Any advice or experiences you are willing to share would be much, much appreciated!

Userlevel 1

I’m look for a solution for exactly the same thing as well. The only way I see this is through automation using APIs, which we are planning to do. Not ideal, as you can see from my solution below, and Docebo should do something about this to have a much cleaner built-in way of doing this.

We sell enterprise subscriptions with unlimited licenses too, where we would like to auto assign the seat to new users self-registering from those companies that have bought our enterprise subscription. 

We use group instead of branches to auto assign a new user to a group based on their email domain. The transaction is sold to a group. 

Setup in our platform:

  1. Register for User.Created & User.Updated webhook events
  2. We use an integration platform to listen to these event. You could also use Docebo Connect (an expensive product) to listen to these event as well and build your automation.
  3. When selling a subscription transaction to a group, have a naming convention for the group (this will make it easier to search later on). So for ex. group name: ENT-SUB-<CompanyName> (the ENT-SUB- will indicate to us that this is a group we sold a enterprise subscription)
    1. We know the email domain of the company that has bought an enterprise subscription, so we create a group to automatically add new users to that group based on their email domain when they self-register.

The automation using API on each User.Created / User.Updated webhook event, would be as follows (the event contains the User’s ID):

  1. Find the groups for the user ID: GET/manage/v1/user/{user_id}/groups
  2. If there are groups in the response, and one of the group matches the naming convention above say group name starts with “ENT-SUB-”, then
    1. Search for the Group by the complete name (GET/audiences/v1/audience?search_text=ENT-SUB-CompanyName)
    2. Retrieve the UUID from the response (this is the unique id of the group)
    3. Retrieve all Subscription Records and loop through the list matching any sold_to = UUID. (would be nice if we can filter subscription records so we don’t have to retrieve all records and then find a match)
    4. If a match is found get the Subscription Transaction ID
    5. Assign the Seat using POST/learn/v1/sub_seat_association (in the body of the response you will be passing the User’s ID and the Transaction ID retrieved above).

As you can see a very complicated way of doing a simple task. Would be great to hear if someone has a cleaner solution for doing this.

Reply