- Getting started with Airtable
- Introduction to Airtable basics
- Contacting Airtable Support Updated
- Airtable home screen
- Glossary of Airtable terminology
- Airtable technical requirements
- Feature differences between Airtable on desktop and mobile
- Airtable keyboard shortcuts
- Using Markdown in Airtable
- Adding descriptions in Airtable
- Finding Airtable IDs
- Airtable Automations
- Automations Overview
- Automation feature walkthroughs
- Integrated automation walkthroughs
- Airtable automation walkthroughs
- Linking existing records using automations
- Conditional groups of automation actions
- Repeating groups of Airtable automation actions
- Creating recurring records using automations
- How to delay Airtable automation runs
- Prevent automations from triggering by mistake
- Use automations to timestamp status updates
- Automation Triggers
- Airtable Triggers
- Airtable automation trigger: When record matches conditions
- Airtable automation trigger: When a form is submitted
- Airtable automation trigger: When record created
- Airtable automation trigger: When record updated
- Airtable automation trigger: When record enters view
- Airtable automation trigger: At scheduled time
- Airtable automation trigger: When webhook received
- Airtable automation trigger: When a button is clicked
- Airtable automation trigger: When email received Updated
- Integrated Triggers
- Airtable Triggers
- Automation Actions
- Airtable Actions
- Airtable automation action: Send email Updated
- Airtable automation action: Create record
- Airtable automation action: Update record
- Airtable automation action: Find records
- Airtable automation action: Sort list
- Airtable automation action: Run a script Updated
- Airtable automation action: Generate with AI
- Integrated Actions
- Airtable automation actions: Slack
- Airtable automation actions: Google Workspace
- Airtable automation action: Send MS Teams message
- Airtable automation actions: Outlook
- Airtable automation actions: Jira Cloud
- Airtable automation actions: Jira Server / Data Center
- Airtable automation actions: Salesforce
- Airtable automation action: Create post in Facebook Pages
- Airtable automation actions: GitHub Issues
- Airtable automation action: Hootsuite post
- Airtable automation action: Send Twilio SMS
- Airtable Actions
- Airtable Bases
- Using Airtable Cobuilder
- Airtable bases overview
- Creating and managing Airtable bases
- Structuring bases in Airtable
- Moving bases between workspaces in Airtable
- Creating and managing tables in Airtable
- Creating Airtable base share links
- Importing third-party data into Airtable
- Using insights in Airtable
- Troubleshooting Airtable base performance
- Airtable Betas
- Collaborating in Airtable
- Airtable Enterprise Support
- General Enterprise information
- External badging in Airtable
- Using app library and components in Airtable Updated
- Ask an Expert beta overview
- European data residency at Airtable
- Airtable user groups overview
- Airtable Enterprise API
- Creating and managing data retention policies in Airtable
- eDiscovery APIs in Airtable
- Airtable and data loss prevention
- Accessing Enterprise audit logs in Airtable
- Set up Jira Server / Data Center to connect with Airtable
- Admin panel pages
- Airtable admin panel overview
- Users - Airtable enterprise admin panel
- Airtable admin panel user details
- Groups - Airtable admin panel
- Workspaces - Airtable Enterprise Admin Panel
- Bases - Airtable admin panel
- Interfaces - Airtable admin panel
- Data sets - Airtable admin panel
- Managed apps - Airtable admin panel
- Components - Airtable admin panel
- Reports - Airtable admin panel
- Settings - Airtable admin panel Updated
- Managing Enterprise organizations
- Managing Enterprise admins in admin panel
- Using Organizations
- Organization branding for apps in Airtable
- Enterprise Hub in Airtable
- Enterprise Hub: Org unit assignment with user groups Updated
- Deactivating, removing access, and reactivating users in the admin panel
- Managing user access to workspaces and bases
- Airtable Enterprise Key Management Updated
- Custom terms of use New
- Enterprise SSO
- General Enterprise information
- Airtable Extensions
- Airtable Fields
- Fields Overview
- Attachment
- Date-based fields
- Formula
- Getting Started with Formulas
- Formula Foundations
- The essentials of Airtable formulas
- Formula writing tips for beginners
- Troubleshooting formulas
- Basic calculations
- Conditional statements
- Logical arguments
- Working with dates
- Displaying DATETIME_FORMAT using the date field in Airtable
- Working with date functions in Airtable
- Calculating the difference between dates in Airtable
- Supported DATETIME_DIFF unit specifiers in Airtable
- Supported DATETIME_FORMAT format specifiers in Airtable
- Using the DATETIME_PARSE() formula in Airtable
- Working with timezones
- Record functions
- Text functions
- Numeric functions
- Common Solutions: Beginner
- Common Solutions: Intermediate
- Common Solutions: Advanced
- Long Text Field
- Linked Record Field
- Linking records in Airtable
- Limiting linked record selection to a view in Airtable
- Dynamic filtering in linked record fields
- Linking to one, many, or a subset of Airtable records
- Converting existing fields to Airtable linked records
- Reordering record links in Airtable
- Understanding linked record relationships in Airtable
- Number-Based Fields
- Other Fields
- Rollup, lookup, and count fields
- Select and user fields
- Integrating with Airtable
- API
- Getting started with Airtable's Web API
- Creating personal access tokens
- Airtable Webhooks API Overview
- Service accounts overview
- Airtable Web API - Using filterByFormula or sort parameters
- Airtable API Deprecation Guidelines
- Airtable API: Common troubleshooting
- Managing API call limits in Airtable
- URL length limitations for web API requests
- Integration services
- Third-party integrations via OAuth overview
- Troubleshooting disconnected OAuth integrations in Airtable
- Options for integrating with Airtable
- Third-party integrations - Common troubleshooting
- Low-code integrations - Common troubleshooting
- Integrating Airtable with external calendar applications
- Visualizing records from Airtable in Tableau
- Visualizing Airtable records in Microsoft Power BI & Power Query
- Integrating HubSpot with Airtable
- Using Zapier to integrate Airtable with other services
- Using Zapier's Multi-Step Zaps to find and update records
- Using IFTTT to integrate Airtable with other services
- Integrating with AWS Lambda & DynamoDB
- Developer tools
- API
- Airtable Interface Designer
- Interface Designer overview articles
- Interface layouts
- Interface elements
- Adding and removing elements in interfaces
- Adding layouts to interfaces
- Formatting elements in interfaces
- Interface element: Button
- Interface element: Calendar
- Interface element: Chart
- Interface element: Filter
- Interface element: Gallery
- Interface element: Grid
- Interface element: Kanban
- Interface element: Number
- Interface element: Record picker
- Interface element: Text
- Interface element: Timeline
- Learning and Resources
- Managing Airtable
- Airtable Policy
- Airtable Records
- Airtable Sync
- Airtable Views
- Airtable Workspaces
- Print
- Share
- DarkLight
- PDF
Creating subtasks in Airtable
- Updated on 26 Nov 2024
- 4 Minutes to read
- Print
- Share
- DarkLight
- PDF
There are times when you may need to create subtasks within Airtable to help keep you and your team on track for completing projects. It's important to think about how to set up your base to maximize Airtable's functionality. In this article, you’ll learn about two different ways to accomplish subtask tracking in an Airtable base.
Base design for creating and tracking subtasks
Depending on your workflow's individual needs there are two different base designs that we recommended considering:
Method 1: Subtasks in a long text field - Setting up a "Tasks" table that links to a "Projects" table and using a long text field to create a list of subtasks. This method is helpful when you want an easy and convenient way of seeing subtasks within the same view of the overall task record.
Method 2: Subtasks in another table - Creating a "Subtasks" table that links to a "Tasks" table that links to a "Projects" table. This method is helpful when you need more granularity and the ability to easily track subtasks as well, since it allows you more reporting options by using linked records, rollups, etc.
Each of these methods requires a prerequisite understanding of linked records, but we will cover some of the basic tenets of linked records in both methods. Choose your preferred method after reading about each below:
Method 1: Subtasks in a long text field
This method begins with creating a "Projects" table, then a "Tasks" table, and then renaming the default long-text field as "Subtasks".
In the newly renamed "Subtasks" field make sure that rich text formatting is enabled. This will allow you to create a checkbox for each subtask by using brackets [ ] followed by a descriptive title for each subtask. It may also help to adjust the row height so that you can see all of the subtasks without having to expand the record.
Now we can create a linked record field that allows us to create a connection between the tasks/subtasks table and the "Projects" table. This will allow you to employ many powerful Airtable features such as the use of lookup, rollup, and count fields as well as Automations. In this step, we add a linked record field and then link the corresponding projects related to each task.
Method 2: Subtasks in another table
This method begins with creating a "Projects" table, a "Tasks" table, and a "Subtasks" table.
Next, we want to daisy chain these tables together using linked records.
Now our "Projects" table and "Tasks" table are linked together, as well as our "Tasks" and "Subtasks" tables. As mentioned in Method 1 above, this will allow us to use other Airtable features to effectively track and manage projects more effectively.
Tracking subtasks using method 1
Tracking is possible for Method 1 as well but requires a bit more of an intensive setup. The formulas used in this example may or may not work with your base's design since formulas can break down for various reasons. It's essential to know how to troubleshoot formulas and use our formula field reference when attempting this setup.
You will need to set up three different formula fields for this use case. Keep in mind that you'll want to adjust "Subtasks," the name of the subtasks field in the example from above, to be the name of your base's subtasks field.
Formula 1: Total # of completed subtasks
IF(Subtasks,
LEN(Subtasks) - LEN(SUBSTITUTE(Subtasks, "[x", "[")
)
)
Formula 2: Total # of subtasks
IF(Subtasks,
LEN(Subtasks) - LEN(SUBSTITUTE(Subtasks, "[", "")
)
)
Formula 3: Calculate the percentage of tasks completed
IF(Subtasks,
(LEN(Subtasks) - LEN(SUBSTITUTE(Subtasks, "[x", "[")
)
)
/ (LEN(Subtasks) - LEN(SUBSTITUTE(Subtasks, "[", "")
)
)
)
Remember to change the formatting of the formula field to show as a percentage. You can also choose to show the output as a progress bar for a more visual display.
Here is an example of what these 3 formula fields would look like in a base:
Tracking subtasks using method 2
If you choose Method 2 for your base's design you will be able to track progress by following the steps below. The general process involves:
Step 1: Counting the total number of subtasks
In the "Tasks" table add a count field that counts the total number of records in the "Subtasks" linked record field. You can also rename this field to "Total subtask count.”
Step 2: Counting the number of completed subtasks
Create another count field in your "Tasks" table, but make sure that you set a condition so that only subtasks whose status is listed as "Done" show up. You can rename this field to "Subtasks completed".
Step 3: Setting up a formula to determine whether all of the subtasks for a given task are complete
Now we need to create a formula field that can calculate whether or not all of the subtasks for a certain field are complete. If so, then we want the calculation to output the text "Task complete". You can name this field "Status". In this example, the formula used is:
IF({Total subtask count}={Subtasks completed}, "Task complete")
Since all of the subtasks were completed for Task 1 the formula outputs the status as "Task complete." Since there were still subtasks to complete for Tasks 2 and 3 the formula field will remain blank until all subtasks are completed. You can follow this same general workflow to track your overall project status in the "Projects" table.
Note
By having formulas in your base that update when tasks are completed, you can create custom notifications using our Automations feature.