Allowing a user to invite members of a "team"

Hey Everyone,

How can I allow a user to invite a “team” that can view their data. For example, a coach would create a schedule. I’d like the coach to be able to invite players to view this unique schedule via email, effectively creating new users of the app. My goal for now is to keep this relatively simple:

  1. Allow users to create a team with players who belong to the team. Perhaps some type of roster functionality in glide similar to the screenshot

  2. Ensure anyone who belongs to this team can view the unique schedule(s) created by members of their team

Thanks for your help!

1 Like

Hi Mike and welcome to the glide community,

I am also working on an app for teams, and imagine that I can implement invitations the following way:

  1. make a table for teams, each row a team. Headers need to be member1, member2, member3,…
  2. coach with admin rights, sets up team name during onboarding.
  3. coach can invite others via a webhook action, which fires after a form with new team members’ email addresses was submitted, and which is captured in zapier or integromat, which in turn sends the invitation email.
  4. for all new rows that only one and no other team should see, the email addresses of members 1-X need to be looked up in google sheets (through an array formula), and row owners need to be activated in those email address columns in glide.

I hope this helps.
best

2 Likes

Thanks Gregory! Getting familiar with Glide and helps a ton to have the community.

I started working on an implementation similar to @Robert_Petitto method of creating private leaderboards. Hopefully this will work, but I haven’t quite finished yet so would be great to get your thoughts or anyone else.

The goal is to use the invite code functionality for a different use case to invite and create this shared view for teams instead of private leaderboards. Perhaps this will help you as well or give you an alternative.

I’d love to know if anyone has had success with this or any other method for what Gregory and I are looking to accomplish.

Thanks again!

Probably the best way is to create a sheet called Team Members with one row per member per team:

  1. Team owner opens form
  2. Submits form with name/email
    • Passes Team data using Screen or User columns
  3. Custom action on form submit with:
    • Webhook to send an email to user
    • Possibly add member to user’s sheet (if they don’t exist…would require a conditional action)

Now when user signs in, they’ve already been added to a team

1 Like

Thanks @Robert_Petitto! One challenge I had was how to properly submit multiple emails in the same form. Previously I added several “Email Entry” fields to a form and saw the error “Another component is already writing to this column”.

Do I need to structure it differently to accomplish this? Right now the issue may be that I am mapping this to @Email incorrectly.

Really appreciate you pointing me in the right direction either way. Thanks!

No great way to do this yet in Glide…just need to do it one at a time. The other hacky option is that you can add multiple addresses via comma separated list. Use a split column in the form submissions sheet and then you can relate the user to the split column…only issue is that removing a user from the CS list is tricky.

Makes sense thanks. Any thoughts on another hack option: Could I use text entry fields instead? Wondering if I could simply title them “Player 1 Email”, “Player 2 Email”, etc. and then perform some type of relation in Glide to ensure they are stored as emails. Not sure if this is even possible? And clearly a limitation I’d have to accept as a trade off would be the lack of proper email validation.

Ehhhh…it’s hairy. If anything, you could create a custom “form” using email entry fields to user specific columns, concatenate them using a template column and then submit that to the “Team Players” sheet…but you’d still run into the issue of removing them from the team if needed. There’s a complicated solution using the Trebuchet method:

1 Like

I don’t know if it answers all your need, but would it be worth trying:

  • 1 single entry field, with emails separated by comma
  • an action “Compose eMail”, with recipients having the entry field value

Here’s how I would do this.

  • Eliminate the form, use a show new screen action and write the comma-separated list of emails to a user-specific column.

  • The submit button takes the data to a webhook, then split it in Integromat.

  • Use an iterator module to iterate through that list of emails, each sending an invitation email (email module) and then add them to User Profiles table (Sheets module).

It might be tricky to add a name in there, maybe a structure like.

Email 1 - Adam, Email 2 - Alex

Then before each email module we transform the data of Email 1 - Adam again to split the email and the name on its own.

2 Likes

While not ideal as it requires an outside automation, it is probably the best solution if you need one user per row.

Nice thinking @ThinhDinh

1 Like

I really appreciate everyone jumping in and responding. I’ll take a look at the comma-separated method with Integromat.

I’m also debating if it makes sense to simplify the process and allow the person who created the schedule to email/text everyone else on the team some type of link to the app. Then anyone who receives this link could view the schedule created by the initial user after setting up their own user profile on Glide.
Instead of setting up a team on the front end we’d essentially create a “team” as each new user creates an account on glide to view the schedule.

In some ways I like this approach as it could make the invite process easier.
What would be the best way to implement this?
And are there any major downsides compared to the comma-separated method with Integromat?

Thinking it could be a simple text description telling the user to send a link to everyone on their team via email or text allowing them to control the invite process.
Some questions I have are:

  1. What link would they share?
  2. How can we then ensure each new user signs up with their name and email and can then immediately view the schedule for the team shared with them?

Thanks again! @ThinhDinh @Robert_Petitto @Gregory @AyS_0908