Sep 28, 2023 04:02 PM
Hi all, I've been a fly on the wall in the community for a while now, today I need some help.
I reviewed this post to help me with my problem, however I'm still running into issues I can't seem to get around with my current ability. For reference, I'm getting comfortable with formulas, but have no scripting/coding experience.
I need a template of tasks, like in the above post; but I need to be able to repeat these tasks for several projects. I've managed to get this above suggestion to work, but it turns out that I need to be able to make NEW tasks that aren't linked to each other, every time I trigger my automations.
E.g.
My base is built of three significant tables. A 'To Do list" table; a Projects table; and now a task template table.
The To Do list table consists of tasks, linked to the Projects table. So that table has a list of projects, such as
Exhibition 340, exhibition 341, exhibition 342, Special project A, Special Project B, Admin Work 1, etc...
with the above community post that I followed, any tasks I link to a Project (Exhibition 340 or 341), is only ONE task, attached to each project. So, If I check off the task "write press release" for Exhibition 340, it "checks" it off for Exhibition 341 and 342. I work on several projects at once, so I can't simply go uncheck all my tasks when a new project begins.
Does anyone have any suggestions?
Thank you in advance!
Solved! Go to Solution.
Sep 29, 2023 06:55 PM
Hi there! I haven't tried the solution that you linked above, but I've used this script in my bases to great effect and recommend giving it a go! This script will create unique tasks parented to your project, and furthermore allows you to establish dependencies if that is something that would be helpful!
The only parts of the script that you'll need to edit are on these lines, where you'll simply align the script syntax to your base's table and view names
const project_table_name = 'Projects';
const new_project_view_name = 'New Projects';
const project_template_link_field_name = 'Project Template';
const task_table_name = 'Tasks';
const task_project_link_field_name = 'Projects';
const task_dependency_field_name = 'Followed By';
const task_primary_field_name = 'Task Name';
const project_template_table_name = 'Project Templates';
const task_template_table_name = 'Task Templates';
const proj_temp_task_temp_link_field_name = 'Tasks';
const task_temp_dependency_field_name = 'Followed By';
const task_temp_primary_field_name = 'Task Name';
Big shout out to the team that developed this, it's definitely saved my hide!
Oct 03, 2023 04:48 PM
Sure! When I incorporated this into my base, I added my extra data into this section (here for example, let's pretend you wanted to add a templatized number of hours for the tasks - I've added that field in this example)
const task_table_name = 'Tasks';
const task_project_link_field_name = 'Projects';
const task_dependency_field_name = 'Followed By';
const task_primary_field_name = 'Task Name';
const task_expected_hours_field_name = 'Expected Hours'
const project_template_table_name = 'Asset Templates';
const task_template_table_name = 'Task Templates';
const proj_temp_task_temp_link_field_name = 'Associated Tasks';
const task_temp_dependency_field_name = 'Preceded By';
const task_temp_expected_hours_field_name = 'Expected Hours Template';
const task_temp_primary_field_name = 'Name';
Then basically wherever in the script I found the existing and defined variables (for example task_primary_field_name) I just copied and pasted the line but swapped out the variable for my new field
for(let t of task_temps) {
payloads.push({
fields: {
[task_project_link_field_name]: [{id: r.id}],
[task_primary_field_name]: t.getCellValueAsString(task_temp_primary_field_name),
[task_expected_hours_field_name]: t.getCellValueAsString(task_temp_expected_hours_field_name),
[task_to_template_link_field_name]: t.id
The catch that I ran into here (without enough scripting experience to further edit this script) is that these additional fields have to be Single-line text fields. This might not be a problem for templatized data like dates or numbers, since you can use a formula in another field to transform the output from a string, but it may pose an issue if you'd like to templatize attachment fields or long text.
Sep 29, 2023 06:55 PM
Hi there! I haven't tried the solution that you linked above, but I've used this script in my bases to great effect and recommend giving it a go! This script will create unique tasks parented to your project, and furthermore allows you to establish dependencies if that is something that would be helpful!
The only parts of the script that you'll need to edit are on these lines, where you'll simply align the script syntax to your base's table and view names
const project_table_name = 'Projects';
const new_project_view_name = 'New Projects';
const project_template_link_field_name = 'Project Template';
const task_table_name = 'Tasks';
const task_project_link_field_name = 'Projects';
const task_dependency_field_name = 'Followed By';
const task_primary_field_name = 'Task Name';
const project_template_table_name = 'Project Templates';
const task_template_table_name = 'Task Templates';
const proj_temp_task_temp_link_field_name = 'Tasks';
const task_temp_dependency_field_name = 'Followed By';
const task_temp_primary_field_name = 'Task Name';
Big shout out to the team that developed this, it's definitely saved my hide!
Oct 03, 2023 08:06 AM
I'll try this today and let you know how it goes! Thanks so much!
Oct 03, 2023 01:15 PM
Hi Josh, thanks again for sharing this. It's much simpler to use than the previous work I was trying. I've looked at answers on the original post but couldn't find this out - is there a way to have the newly created tasks include additional fields/data? I see the section "this is the part of the script where you assign what data..." but I can't figure out how to add additional fields - long text for example, where notes on the task can be included for every project. Here's the section I think needs to be altered, but I haven't been able to figure it out so far.
Any tips? TIA!
"
Oct 03, 2023 04:48 PM
Sure! When I incorporated this into my base, I added my extra data into this section (here for example, let's pretend you wanted to add a templatized number of hours for the tasks - I've added that field in this example)
const task_table_name = 'Tasks';
const task_project_link_field_name = 'Projects';
const task_dependency_field_name = 'Followed By';
const task_primary_field_name = 'Task Name';
const task_expected_hours_field_name = 'Expected Hours'
const project_template_table_name = 'Asset Templates';
const task_template_table_name = 'Task Templates';
const proj_temp_task_temp_link_field_name = 'Associated Tasks';
const task_temp_dependency_field_name = 'Preceded By';
const task_temp_expected_hours_field_name = 'Expected Hours Template';
const task_temp_primary_field_name = 'Name';
Then basically wherever in the script I found the existing and defined variables (for example task_primary_field_name) I just copied and pasted the line but swapped out the variable for my new field
for(let t of task_temps) {
payloads.push({
fields: {
[task_project_link_field_name]: [{id: r.id}],
[task_primary_field_name]: t.getCellValueAsString(task_temp_primary_field_name),
[task_expected_hours_field_name]: t.getCellValueAsString(task_temp_expected_hours_field_name),
[task_to_template_link_field_name]: t.id
The catch that I ran into here (without enough scripting experience to further edit this script) is that these additional fields have to be Single-line text fields. This might not be a problem for templatized data like dates or numbers, since you can use a formula in another field to transform the output from a string, but it may pose an issue if you'd like to templatize attachment fields or long text.
Oct 10, 2023 12:27 PM
Thanks so much for your response! This is perfect, I followed your directions and managed to get my 'notes' section to be created with my tasks (as a single select field). I was hoping for a solution to have long text, so i can use a 'sub-checklist' copy through, but I'm sure I can think of how to structure this in a way that supports the single line text use.
Thanks again!