# Dynamic Task List

**URL:** <https://community.glideapps.com/t/dynamic-task-list/80430>\
**Category:** Ask for Help\
**Created:** [March 1, 2025, 8:33pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430 "2025-03-01T20:33:51Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Si\_Gal](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/si_gal/32/79433_2.png) [@Si\_Gal](https://community.glideapps.com/u/Si_Gal)\
**Post date:** [March 1, 2025, 8:33pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/1 "2025-03-01T20:33:51Z")

</div>

Hi, I am trying to create a task list for each of my projects. However, the tasks are dependant on the type of project which is listed in column in the projcects table. I then have a global tasks table that houses all of the potential tasks.

I was hoping to make use of the loops funtions to loop over each task and check what type it is, if it matches the project type then it would add it to the project task list. However, I can see that loops won’t work from an app intereaction, I was hoping to trigger it from a button. I could trigger it on a scheudle, however, I wanted to ask if there was another way to do this, other than using the API which I’ve done before?

Thanks

---

<div class="post-metadata">

**Author:** ![iPomidor](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ipomidor/32/82073_2.png) [@iPomidor](https://community.glideapps.com/u/iPomidor)\
**Post date:** [March 1, 2025, 8:43pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/2 "2025-03-01T20:43:16Z")

</div>

You can use your email to trigger WorkFlows.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/6/8/686a3735fde91fa871c7f4fc0f7a960283f4434e.png)

---

<div class="post-metadata">

**Author:** ![Si\_Gal](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/si_gal/32/79433_2.png) [@Si\_Gal](https://community.glideapps.com/u/Si_Gal)\
**Post date:** [March 1, 2025, 8:57pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/3 "2025-03-01T20:57:03Z")

</div>

So I would use the button to send an email to glide in order use the incoming email trigger?

---

<div class="post-metadata">

**Author:** ![iPomidor](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ipomidor/32/82073_2.png) [@iPomidor](https://community.glideapps.com/u/iPomidor)\
**Post date:** [March 1, 2025, 9:09pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/4 "2025-03-01T21:09:14Z")

</div>

Yes

---

<div class="post-metadata">

**Author:** ![Si\_Gal](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/si_gal/32/79433_2.png) [@Si\_Gal](https://community.glideapps.com/u/Si_Gal)\
**Post date:** [March 1, 2025, 9:24pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/5 "2025-03-01T21:24:25Z")

</div>

Great, thanks

---

<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:** [March 1, 2025, 11:28pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/6 "2025-03-01T23:28:14Z")

</div>

> [@Si\_Gal](#):
>
> However, I can see that loops won’t work from an app intereaction, I was hoping to trigger it from a button. I could trigger it on a scheudle, however, I wanted to ask if there was another way to do this, other than using the API which I’ve done before?

I don’t think you need an email trigger here, you need a webhook trigger.

Do a trigger webhook or call API step tied to your app-interaction button. Send over the project ID and the project “type”.

Then, in the webhook trigger, loop through your global tasks table, filter those that have the same project type as the type that is sent through webhook, and add them to your tasks table.

---

<div class="post-metadata">

**Author:** ![iPomidor](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ipomidor/32/82073_2.png) [@iPomidor](https://community.glideapps.com/u/iPomidor)\
**Post date:** [March 2, 2025, 6:18am UTC](https://community.glideapps.com/t/dynamic-task-list/80430/7 "2025-03-02T06:18:28Z")

</div>

Yes, you are right, that is also an option. However, the API is only available on the BUSINESS plan, so I was considering using EMAIL to trigger a WEBHOOK as the best solution that would work on any paid plan.

---

<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:** [March 2, 2025, 7:02am UTC](https://community.glideapps.com/t/dynamic-task-list/80430/8 "2025-03-02T07:02:02Z")

</div>

If you have access to an email trigger, you also have access to a webhook trigger, which would be a much better option. Using an email trigger only makes sense if someone is sending an email externally to Glide and you want to do something when that email is received. A webhook trigger makes a hole lot more sense in this case.

---

<div class="post-metadata">

**Author:** ![Si\_Gal](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/si_gal/32/79433_2.png) [@Si\_Gal](https://community.glideapps.com/u/Si_Gal)\
**Post date:** [March 2, 2025, 7:06am UTC](https://community.glideapps.com/t/dynamic-task-list/80430/9 "2025-03-02T07:06:26Z")

</div>

ok great. Thanks all

---

<div class="post-metadata">

**Author:** ![Si\_Gal](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/si_gal/32/79433_2.png) [@Si\_Gal](https://community.glideapps.com/u/Si_Gal)\
**Post date:** [March 3, 2025, 1:41pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/10 "2025-03-03T13:41:12Z")

</div>

I am looking for some additional help here if possible. I’ve now set this up and it’s working well when I have 1 channel listed. I can then loop through the items and create a task list.

However, I’m not sure how to do this when I have multiple channels in the JSON.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/1/41dfef85d23886a2608c895871e64c6f9e5924a5.jpeg)

I was hoping to do this by setting up a conditional branch but that doesn’t seem to work as the only option is ‘is’ rather than ‘includes’.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/9/0/90eae0aee31cf37117dc9efc60b6d6ad4f44acd5.jpeg)

---

<div class="post-metadata">

**Author:** ![Si\_Gal](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/si_gal/32/79433_2.png) [@Si\_Gal](https://community.glideapps.com/u/Si_Gal)\
**Post date:** [March 3, 2025, 7:01pm UTC](https://community.glideapps.com/t/dynamic-task-list/80430/11 "2025-03-03T19:01:38Z")

</div>

Think I’ve worked it out.

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

Unless anyone has a better way of doing it.

Thanks

---

<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:** [March 4, 2025, 1:11am UTC](https://community.glideapps.com/t/dynamic-task-list/80430/12 "2025-03-04T01:11:14Z")

</div>

What’s the role of the “channel”? Is that the “type”?

You can use a split text column on the queried channel, and then loop through that channel array.

Just need one global tasks loop at that point, I believe.
