What are Scheduled Tasks?
Tasks are automated actions that can be applied to or for defined records on a scheduled basis (daily/weekly/monthly). These actions can drive your app’s workflow in powerful ways, such as sending automatic reminders when a deadline is coming up or automatically adding your to-do records periodically.
Tasks are accessed from the Data section of the Builder and set up for an object. They are triggered by field values for records in the object in which the task is set up. For example, if you want to set up a task to email a project manager when a due date for their Project has passed, you’ll set up the task in the Projects object.
Tasks are available on Pro plans and above. They are automatically activated when you upgrade to a plan that includes Tasks.
Tasks are not available on Starter or trial accounts.
View our pricing page for more information.
Tasks are located in the Data section of the Builder. From any object, use the object menu located at the top and click on the “Tasks” tab.
Add a new task by clicking the “+ Add Task” button.
The following details will be required:
- Task name
- Next Run Date
Press “Next” and continue setting up your task. You can see all the customization options in the Task Settings section below.
Current tasks on an app can be viewed from both the Dashboard and the Builder.
In the Dashboard, you can view a summary of tasks on each app in the app details. Hovering over this will give you a quick overview of how many active and paused tasks are in that app. Similarly clicking on the task number will open a popup modal showing with the summary.
In the Builder, tasks can be viewed by selecting a specific object and then selecting "Tasks" from the top menu. Here you will be able to see your task details as well as create and edit tasks.
Run a Task Manually
You may find it useful to run a specific task without wanting to take it off its regular schedule. In this case you can use the “Run” tab in a task to run it manually. You'll see a confirmation message that your task is currently running. You can use the “History” to confirm whether the task has completed or not.
Pause a Task
If you want to stop using your task for the time being, you don't have to delete it entirely. To pause an existing task indeterminately, change its Status setting to "Off."
You can quickly see if a task is paused directly from the task list.
Delete a Task
To delete an existing task, locate the task under the “Tasks” tab and click the delete icon. You will need to confirm the task deletion before it is complete.
Each task requires some basic info to identify and tell it when and how often to run.
- Task name
- Next Run Date
Give your task a specific name to help you remember what it does. For example, an email task to be sent out 3 days before an approaching deadline may be named “Upcoming Deadline - Email.”
The frequency of your scheduled task. Scheduled tasks can run on a daily, weekly, or monthly basis.
Next Run Date
When the task is scheduled to run. This field updates every time your task runs to reflect the next scheduled time.
Whether the task is On or Off. This is useful for when you want to save a task for later use.
Actions - Define What Your Task Will Do
Every time your task runs, it’s going to perform a specific action. Your task can perform the following actions:
- Update each record
- Update connected records
- Insert connected records
- Send a custom email
Update each record
The task is going to update each record in this object matching your criteria.
This task looks at every record in the Products object. When the task finds a record whose Inventory on Hand field value is lower than 10, it will update that record’s Available field value to "No."
Updated connected record
Use this action when you want to update records in connected object.
This task looks at every record in the Companies Object. When the task finds a record where the Active? value is "No," it is going to update every connected User and set their user status to ‘inactive’
Insert connected records
This action inserts a record in another connected object.
Using the Products object example again - this task will automatically insert a connected Purchase Order record for a Product when their inventory level reaches the minimum threshold. The task uses a field value from each Product to know how many to reorder.
Knack Tip: Notice how in the above example, we didn’t set a value for the Product connection. Knack is going to populate this value automatically since it is inserting a connected record from the Product object.
Send a custom email
For every record that meets the criteria in this object, Knack will send a custom email. You can use record values for custom recipients, subjects, and messages. Click here to learn more about sending emails in Knack.
Using values from the Purchase Order record, this task will notify the purchasing department which Purchase Orders still need to be approved.
When - Filter the Records
All of these actions affect all records by default. Add criteria to the task if you want to target a specific set of records.
Rules added here are treated as AND rules, meaning all rules must be met.
In this example target records when Status is "Pending", AND Date “is during the previous 2 weeks”
Values - Set the Record Values
Now that you’ve selected an action and added criteria, it’s time to tell the task what values it is going to update or insert. Value options available include:
- to a custom value: update a value to custom value you desire
- to a field value: update the field using the value from another field
- to a connected value: update a field value to using a value located in a connected record from a one-to-one / one-to-many relationship
This example will update the status of an Order Item using its parent Order’s status
Knack Tip: Not seeing the option labeled to a connected value? Double-check your connections -- you will not be able to access connected record using many-to-many or many-to-one connections.
The “History” tab helps you keep track of what your task has done over time. It shows you a timestamped list of all the times this task has run, and how many records were processed.
If the task was run manually, it will say so next to the timestamp.
If the task is configured to send an email, you can view the history of email sent from the task by clicking on “View Mail Delivery History.”
Use Tasks in Your App
Workflow & Automation
Scheduled tasks are a powerful tool for automating processes and enabling workflow. Let’s take a look at a couple different ways you can do this.
In a project management app:
Set up a task in the Tasks object to automatically email the connected Project Manager when a deadline is approaching and the status is incomplete.
For an approvals process:
For this example, let’s assume a Proposal has to go through three level of approvals.
Use date fields and record rules to track when each assigned approver has approved the Proposal record and update the Current Approver connection field with the next person in line.
Set up a task from the Proposal object to email the current approver when a Proposal record has been at their approval level for more than 3 days and has still not been approved or denied.
You can layer tasks to prevent too many actions from occurring. Let’s use an HR app for example.
When a new employee is added to the database, HR wants to assign a series of Document records to the employee so the employee can upload their information. HR will set up a task to automatically insert new Document records to the employee.
In order to prevent new Document records from being assigned to every single Employee record, there needs to be a way to recognize when an Employee has already been assigned the records.
Set up another task following the original task that sets a Documents Assigned field value in the Employee record to Yes. Make sure this task runs after the original task runs. For example, the original task may run at 9am every morning, this new task will run at 10am every morning.
Then, use a when filter on the original task to filter out Employee records where the Documents Assigned field value is No. This way, only the newly added Employees will have new connected Documents records inserted.
Automation & Layering
An inventory app is a good example of combining the uses we explain above.
First, set up a task to check Product records on a daily basis - when the Quantity Remaining value is below a certain threshold, set the Needs Reorder value to Yes. Set up another task that checks the Quantity Remaining value - when it’s above the threshold set the Needs Reorder value to No.
Set up another task following the first one that automatically inserts a connected Purchase Order record when the Product’s Needs Reorder value is Yes.
The final task in this workflow is set up in the Purchase Orders object to email the purchasing department 3 days after a Purchase Order has been created if the status of the Purchase Order is still pending.
Notes & Troubleshooting
1. Each app has a concurrency limit of 4 simultaneous tasks. If your app has more than 4 tasks scheduled to run at the same time, they'll be queued up to run next as soon as another task finishes running.
2. Not seeing the option labeled to a connected value? Double-check your connections -- you will not be able to access connected record using many-to-many or many-to-one connections.
3. Don’t see the “Tasks” tab in your object menu? Users on trial and Starter plans do not have access to scheduled tasks. You need to be on the Pro plan or above to access tasks.