# Row Owners via Dynamic Array

**URL:** <https://community.glideapps.com/t/row-owners-via-dynamic-array/16600>\
**Category:** Ask for Help\
**Created:** [October 1, 2020, 9:44am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600 "2020-10-01T09:44:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![V88](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/v88/32/90054_2.png) [@V88](https://community.glideapps.com/u/V88)\
**Post date:** [October 1, 2020, 9:44am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/1 "2020-10-01T09:44:08Z")

</div>

I have a scenario where an “admin” within the app would like to assign multiple users as row owners in a specific sheet. The number will vary so I cannot use the Email 1, EMail 2, Email 3 approach as suggested in the past by the likes of @ThinhDinh, @Jeff_Hager and @Robert_Petitto. Has anybody come up with an approach that solves this one yet? Thanks all.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [October 1, 2020, 9:54am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/2 "2020-10-01T09:54:35Z")

</div>

I think you have 2 ways to deal with this:

- Have a very crazy amount of columns in the array (like 10 or something), use the old method of setting row owners.

- Let people input emails in a text component but you must make sure you either let them separate two emails by (", " or “,”), then use a split text and set that split as row owner. I haven’t actually tried this, just a wild idea.

---

<div class="post-metadata">

**Author:** ![kyleheney](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/kyleheney/32/41173_2.png) [@kyleheney](https://community.glideapps.com/u/kyleheney)\
**Post date:** [October 1, 2020, 10:11am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/3 "2020-10-01T10:11:08Z")

</div>

I don’t think your 2nd point will work:

> [@new Security Center](https://community.glideapps.com/t/security-center/16542/5):
>
> You cannot assign computed columns as Row Owners yet—only basic columns of emails, or arrays of emails.

---

<div class="post-metadata">

**Author:** ![S\_C](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/s_c/32/12766_2.png) [@S\_C](https://community.glideapps.com/u/S_C)\
**Post date:** [October 1, 2020, 10:19am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/4 "2020-10-01T10:19:06Z")

</div>

Can’t you use Google sheets to do the split?

---

<div class="post-metadata">

**Author:** ![kyleheney](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/kyleheney/32/41173_2.png) [@kyleheney](https://community.glideapps.com/u/kyleheney)\
**Post date:** [October 1, 2020, 10:23am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/5 "2020-10-01T10:23:55Z")

</div>

I suppose you could, but you’d still need to give your columns a header value (I’m not sure if that can be done dynamically in sheets with some sort of horizontal Arrayformula — never tried!).

Actually I guess pre-naming a bunch of columns is easier than creating all the separate fields in Glide, so this might end up quicker/easier as long as all the emails are separated properly in the first column using a common separator.

---

<div class="post-metadata">

**Author:** ![S\_C](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/s_c/32/12766_2.png) [@S\_C](https://community.glideapps.com/u/S_C)\
**Post date:** [October 1, 2020, 10:27am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/6 "2020-10-01T10:27:16Z")

</div>

I’ve tried it for some other purpose not emails. It’s making an array + split function. Only caveat is the number of emails can’t exceed the planned array columns.

---

<div class="post-metadata">

**Author:** ![kyleheney](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/kyleheney/32/41173_2.png) [@kyleheney](https://community.glideapps.com/u/kyleheney)\
**Post date:** [October 1, 2020, 10:28am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/7 "2020-10-01T10:28:55Z")

</div>

I’d be interested to see it in action if you get it working. Post some screenshots afterwards. Could be helpful for others too.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [October 1, 2020, 10:41am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/8 "2020-10-01T10:41:01Z")

</div>

> [@kyleheney](#):
>
> I suppose you could, but you’d still need to give your columns a header value (I’m not sure if that can be done dynamically in sheets with some sort of horizontal Arrayformula — never tried!).

We can do it, I have done this before.

---

<div class="post-metadata">

**Author:** ![V88](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/v88/32/90054_2.png) [@V88](https://community.glideapps.com/u/V88)\
**Post date:** [October 1, 2020, 11:01am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/9 "2020-10-01T11:01:44Z")

</div>

Guys. Thanks so much for the rapid input. This was of interest in particular:

> [@new Security Center](https://community.glideapps.com/t/security-center/16542/5):
>
> You cannot assign computed columns as Row Owners yet—only basic columns of emails, or arrays of emails.

So I guess I need to somehow create a mechanism that will dynamically populate an array column of emails. As I understand it, you can’t do this in the data editor (a relation is computed). You also can’t do it in a Google Sheet because you’d need to specify the column name “in advance” i.e. Email 1, Email 2 etc.

So … it can’t be done?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [October 1, 2020, 11:22am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/11 "2020-10-01T11:22:10Z")

</div>

It can be done. I have done the “column name in advance” part before. Let me find it and send back to you.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [October 1, 2020, 12:19pm UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/12 "2020-10-01T12:19:16Z")

</div>

Here you are. The formula inputs new column names in an array style when new values are added that increases the max number of columns required.

> **[Thinh Dinh's lab V2.0](https://docs.google.com/spreadsheets/d/1JzBrp4R1zK9CMfmTzWWcPPep9-ZCl3OXxgWu27NWCy8/edit#gid=1102526769)**
>
> Robert Test
> 
> Project,Task,Project,Task,Combined
> A,siLxzsQURZK3QGl0Zhqg7w, yLz8ofPiQrC8Y6BYfpm.CQ,A,siLxzsQURZK3QGl0Zhqg7w,A - siLxzsQURZK3QGl0Zhqg7w
> jRzXZcVgQruv37w-gFQ6Kg, zp5bp3uIQoWwJYAH0a-vgQ,yLz8ofPiQrC8Y6BYfpm.CQ,...

---

<div class="post-metadata">

**Author:** ![V88](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/v88/32/90054_2.png) [@V88](https://community.glideapps.com/u/V88)\
**Post date:** [October 1, 2020, 12:32pm UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/13 "2020-10-01T12:32:39Z")

</div>

Thanks @ThinhDinh - will take a look shortly 🤪

---

<div class="post-metadata">

**Author:** ![kyleheney](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/kyleheney/32/41173_2.png) [@kyleheney](https://community.glideapps.com/u/kyleheney)\
**Post date:** [October 1, 2020, 1:12pm UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/14 "2020-10-01T13:12:53Z")

</div>

Nice! Thanks for sharing. That’s a wicked idea.

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [October 1, 2020, 1:39pm UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/15 "2020-10-01T13:39:16Z")

</div>

To back up @ThinhDinh’s idea, I believe it’s true that you can add additional columns to an array without having to touch the app builder, and glide will recognize it automatically. They just need to be consecutive and next to each other. In situations like this, it’s best to put the arrays as the last columns to allow for growth. Don’t hold me to it though. I kind of remember trying it a year or so ago.

---

<div class="post-metadata">

**Author:** ![Rasha](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rasha/32/4585_2.png) [@Rasha](https://community.glideapps.com/u/Rasha)\
**Post date:** [November 17, 2020, 5:18am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/16 "2020-11-17T05:18:45Z")

</div>

hey @ThinhDinh - I’m checking out your sheet. Any specific reason a new name doesn’t populate unless a new value is added to row 4, not 2 or 3? Does this formula have a max? I can see that w/o column A it stops at 11 items.

I’m thinking through this in the context of [set column actions](https://community.glideapps.com/t/set-column-action-alter-a-different-sheets-values/18342/24) for Row Owner management.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [November 17, 2020, 9:10am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/17 "2020-11-17T09:10:24Z")

</div>

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/b/bbbe1d98e8aef679f3df9e16bd2a2c03c05203ab.png)

Hi Rasha, I just checked and it still works as I expected. Can you specify what part doesn’t work?

Currently I limit it to column AA, you can increase that by specifying a larger column.

---

<div class="post-metadata">

**Author:** ![Rasha](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rasha/32/4585_2.png) [@Rasha](https://community.glideapps.com/u/Rasha)\
**Post date:** [November 17, 2020, 7:56pm UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/18 "2020-11-17T19:56:44Z")

</div>

@ThinhDinh how strange - a copy of this sheet was behaving differently (PM’d you a link). This one works. Thanks for concocting this!

@V88 have you put this to test? How’s your admin assigning? It a nice solution when you’re working with a manageable number of row owners, switching on/off row ownership manually, and duplication is not a concern. Something to build on for sure.

---

<div class="post-metadata">

**Author:** ![V88](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/v88/32/90054_2.png) [@V88](https://community.glideapps.com/u/V88)\
**Post date:** [November 17, 2020, 9:23pm UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/19 "2020-11-17T21:23:07Z")

</div>

Hi. I found a solution via roles so didn’t progress further. Sorry I can’t be of more help.

---

<div class="post-metadata">

**Author:** ![merkle](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@merkle](https://community.glideapps.com/u/merkle)\
**Post date:** [April 17, 2021, 12:38am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/20 "2021-04-17T00:38:51Z")

</div>

Is there any way to now do this via native Glide features?

**I have items that I would like to assign to groups of users using row owners** (for security purposes), but the groups will change dynamically. Ie. Users can add remove viewers of the item.

For now I have just removed row owners in my sheet and am filtering the item view based on whether the logged in viewer has permission. But I understand this isn’t secure nor speedy if the item list gets long?

Any suggestions?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [April 17, 2021, 4:25am UTC](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600/21 "2021-04-17T04:25:40Z")

</div>

Do you have an upper limit for number of users you want to assign?

[Next page](https://community.glideapps.com/t/row-owners-via-dynamic-array/16600.md?page=2)
