How do I auto-assign activities/tasks to groups on a recurring basis?

Hello Adalo friends :slight_smile:

I have a web app for group-based career coaching. When a new coaching group starts, 6-8 users get matched together with a coach to lead them through a 10-week curriculum driven program.

I’ve split the experience into 3 separate apps that share a db because it was getting overwhelming trying to build all of the experiences in one mega-app.

App 1 - end user app
App 2 - coaches app
App 3 - The admin app

The admin app is where we will create new Programs, Sessions, Groups of users.

When a new signs up to join their group, I want each group member to already have the assigned curriculum for the program that they’re in.

Example.

Program Name - Becoming a Manager
Group Name - FirstTimers

When someone signs up and they are in the FirstTimers group; automatically have the assigned sessions and corresponding curriculum awaiting them in their account.

This would include things like:

  • session details (date/times/details)
  • coursework due date, links to websites

On the admin side, I want it to be as simple as adding a new group to a program and the app is automatically assigning the corresponding sessions to that group. All the admin needs to do is go in and set the date/time and zoom link details, but everything else is already assigned and configured.

Does anyone know how I might about doing this? I feel like I’m so close to it and can’t see the forest for the trees at the moment.

Thanks so much for your help!

Hi @steffanhowey,

I’m not sure how your DB is structured, but I can expect that you need to set or update multiple records at the same time.

Possible ways to do it is either using countdown timer mass update trick (see here for example Adalo hints: how to "mass update" records in the collection with the help of countdown timer - YouTube), or with some external service like Integromat.

To give more detailed answer, some more info is needed: how does admin adds the users to the group at the moment, and how he/she assigns the sessions and coaches?
If you have step-by-step workflow, it will be possible to evaluate which parts could be automated.

Best regards, Victor

Thanks, Victor :slight_smile:

The way the admin adds users to the group is like this

  • When the admin creates a new group (which is assigned to a Program), they also create an access code.
  • That access code is sent to the user via email
  • That code is the gate at the beginning of the onboarding flow. Once the user enters it correctly, they can get through the rest of the onboarding and are then grouped together with everyone else who has used that same access code

So, the admin doesn’t technically add users to a group in Adalo. We simply email the users the correct access code, which then puts them in the correct group within the experience.

This is also true for how we assign coaches. A coach gets the access code as well, but a unique signup link that flags them as coach = true.

For sessions, I think I’m still very much trying to figure that part out. Its tricky because sessions belong to a program, but I also want them to belong to a master library so that they can be used in future programs that we want to run.

Hoping these details make sense!

Hi @steffanhowey,

Well, as I can imagine, you’ve already set up the major part of it:

  • Groups collection, where Admin creates a record of a new Group with unique code
  • Users and Coach join this Group record (via relationships) automatically while onboarding.

If you have Programs collection with Sessions linked to it, you can also link a Group to a Program (so that it belongs only to a single program). With this, you should be able to access the sessions list for the program: Logged-in User → one Group → one Program → list of Sessions.
This should work if “Session” contains some learning content, and is “reusable” (not linked to individual user).

If you’d like to create something like a sessions schedule for Users in a Group, then it’s more complicated. What I can imagine that if you have these master “Sessions” mentioned above, you can use them as templates for individual records.

So:

  • you create a list of these sessions for the user (should be possible to do)
  • put a countdown in the list
  • add on-countdown-finish action, which will create an individual Schedule record for the logged-in user, taking some info from the master-session record.

All this sounds a bit perplexed - I’ve decided to create a simple sample app to show the concept. Here is the video how it works:

Best regards, Victor.

This was awesome, @Victor. it seems like you’ve configured yours similarly to how I did.

The thing I still can’t get my head around is how to keep assign each new group to the sessions from a program.

For example, right now we run 1 program, but we’ve had 5 groups go through it. But the session schedules, activities, etc. are specific to that group and it’s individual users.

Right now, if I fill out the schedule details from my admin app, sure it impacts the correct users, but it is also impacts other groups who are on a completely different schedule.

It seems like I need there to be a master template structure for the sessions. When I create a new group that’s assigned to a program, it would create/assign the correct sessions and then the admin just needs to go in and input the correct details (dates/time/activity links, etc.) for each session from the admin app.

So yeah, very much stumped on how to create a fresh set of sessions for each group. Will rewatch your video a few more times to see if I’m missing it.

I really appreciate you taking all this time to help me out!

Hi @steffanhowey,

I partially addressed this issue in the part with the “timer”. This is when the individual records for each user are created, based on the template.
To make your life a bit easier - here is the cloneable link so that you can explore by yourself: App for experiments #5

Best regards, Victor.

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.