The Automations tab holds a project's automation rules. Each rule has one trigger (something that happens in the project), optional conditions (checks on that event) and one or more actions (what SolaProjects does). When the trigger fires and every condition matches, the actions run together and the result is recorded under Recent runs.
Use automations to take routine follow-up off your team: move a task to review when its checklist is finished, comment on tasks that become urgent, log a risk when work is blocked, or remind the team about overdue work. Rules are set up by the project's managers and administrators; the rest of the team sees only their effects (comments, status changes, Activity entries).
Where to find it
| Sidebar | Project section (under the project picker) → Automations (between Planning and Integrations) |
| URL | /projects/{project}/automations |
| Command palette | Automations · {project name} under Current project |
Who sees it:
- Plan: automations are a Professional-plan feature (also Premium and Enterprise). On Free and Standard the tab is hidden from the sidebar, so you are never offered a page that would refuse you. If a paid plan lapses, the tab disappears until you renew; your rules are kept.
- Role: the tab is a manage-only screen. Only people who can edit the project can load it (see Permissions). Anyone else who opens the URL sees "We couldn't load automations." with Retry.
Screen tour
The page is a column of cards.
Automations card (top)
| Element | What it shows |
|---|---|
| Title | Automations — Trigger → condition → action rules. |
| New automation (top-right) | Opens the rule form. Shown only when you can edit rules. |
| Rules | Number of rules (archived rules are not counted). |
| Active | Rules switched on. |
| Runs | Every recorded run of the project's rules (success, skipped and failed). |
| Failed | Failed runs. Shown in red when above zero. |
Usage card
Shown once at least one rule exists. Title Usage — Most active rules by recorded execution count. Lists up to five rules with the most runs: {n} runs · {n} failed · last {date}.
Rules card
Title Rules — Enable/disable, edit, or archive each rule. A badge shows the count. Rules are listed with the most recently changed first.
Each rule card:
| Part | Meaning |
|---|---|
| Name | The rule name. |
| Summary line | Trigger (e.g. Task Priority Changed) · {n} runs · {n} failed (when any) · last {date}. |
| Badge | Active (green) or Paused. |
| Description | Your note, if entered. |
| Error line | ⚠ the last error message, while the rule has failures and its latest run failed. A successful or skipped run clears it. |
| Edit | Opens Edit automation. |
| Pause / Resume | Switches the rule off or on. |
| Archive | Removes the rule from the list after confirmation. |
Empty state: No automations yet — Create a rule or start from a preset below. (Read-only users see No automation rules have been configured.)
Presets card
Title Presets — Start from a ready-made recipe — review before saving. Each preset shows its name and trigger. Clicking one opens the form pre-filled. Shown only when you can edit rules.
Recent runs card
Title Recent runs — Latest automation executions (success / skipped / failed). Shows the latest 20 runs.
| Column | Meaning |
|---|---|
| When | Date of the run. |
| Rule | Rule name. |
| Trigger | The trigger that fired. |
| Status | Success (green), Skipped (amber — conditions did not match) or Failed (red). |
| Actions | Number of actions executed (0 for skipped and failed runs). |
| Error | Why the run failed, or —. |
Empty state: No runs yet — Automation runs will appear here once a trigger fires.
There is no "run now" button and no export; rules run only when their trigger fires.
Triggers
The Trigger list shows these values (labels as displayed):
| Trigger | Fires when | Fields you can test in conditions |
|---|---|---|
| Task Created | A task is created in the project, including through the project API. | task_id, user_id, status, priority, assigned_to |
| Task Updated | A task is edited from the task form or inline in the table. | changed_fields, before.*, after.* (e.g. after.status) |
| Task Status Changed | A task's status changes — task form, board drag, or bulk status change. | old_status, new_status |
| Task Priority Changed | Priority changes — task form or bulk priority change. | old_priority, new_priority |
| Task Assigned | A task gets a new assignee. | old_assigned_to, new_assigned_to |
| Task Blocked | A task is marked blocked from its form. | blocked_reason |
| Checklist Completed | The last open item of a task checklist is ticked. | task_id |
| Doc Created | A project document is created. | visibility (internal, client_visible) |
| Intake Form Submitted | Someone submits the project's public intake form. | — |
| Playground Item Converted To Task | A Playground item is converted to a task. | task_id |
| Time Entry Created | Time is logged on the project or a task. | duration_minutes, entry_date, is_billable, user_id, task_id |
| Task Overdue | Time-based: an open task's due date has passed. | days_overdue, due_date, assigned_to |
| Task Due Tomorrow | Time-based: an open task is due tomorrow. | due_date, assigned_to |
Value formats: statuses are status types (backlog, todo, in_progress, review, done, cancelled); priorities are none, low, medium, high, urgent; people are numeric user ids.
Bulk edits. When you change the status or priority of several tasks at once, each task whose value actually changed fires its own run. Bulk block also fires Task Blocked for each task that becomes blocked, exactly like blocking one task from its form (since 5 October 2026; before that no rule ran for a bulk block). Unblocking, in bulk or one by one, fires no trigger.
Time-based triggers. Task Overdue and Task Due Tomorrow are checked by a scheduled job, not by a user action. Each check looks at up to 250 open tasks per rule (earliest due first) and runs a rule at most once per task per day. Done and cancelled tasks are ignored.
Conditions
Each condition row has a field, an operator and a value. All rows must match (the form saves them as an "all" list). With no rows you see "No conditions. The rule runs whenever the trigger fires."
| Operator | Matches when |
|---|---|
| Equals / Not Equals | The field is (is not) the value. 5 and "5" count as equal. |
| In / Not In | The field is (is not) in the value list. Type the list with commas, for example high, urgent; spaces around each entry are ignored and numbers match as text (5 equals "5"). Until 5 October 2026 a comma list was not split and never matched. |
| Empty / Not Empty | The field has no value / has a value (value box ignored). 0 counts as empty. |
| Greater Than / Less Than | Both are numbers and the field is larger / smaller. |
Values are compared exactly: urgent, not Urgent. If conditions do not match, the run is recorded as Skipped and nothing changes.
Actions
Pick the action type and type its value in the box (placeholder "Description, value, assignee id, status or priority").
| Action | Value | What happens | If blank |
|---|---|---|---|
| Update Task Status | Status type, e.g. review |
Moves the task to the project's status of that type. A done status sets progress 100% and the completion time; other statuses cap progress at 99%. | review |
| Update Task Priority | none … urgent |
Sets the priority. Any other value fails the run. | high |
| Assign Task | Numeric user id | Assigns the task. The person must be on the project Team. | Fails |
| Mark Task Blocked | Reason | Marks the task blocked with that reason. | Automation marked this task blocked. |
| Mark Task Unblocked | — | Clears blocked flag and reason. | — |
| Add Task Comment | Text | Adds an internal comment, authored by the rule's creator. | Automation note. |
| Set Client Visible | true / false (0, no also mean false) |
Shows or hides the task from guests. | true |
| Log Activity | Description | Writes an entry in the task's or project's Activity. | Automation rule ran. |
| Create Project Doc | Title | Creates an internal note document in Files with that title. | Automation Note |
| Create Reminder Activity | Description | Writes a reminder entry in Activity. | Automation reminder. |
Rules for actions:
- Task actions need a task. Doc Created and Intake Form Submitted have no task — with them use Log Activity, Create Reminder Activity or Create Project Doc; a task action fails the run.
- All actions of a run succeed or none are kept. A failure records the run as Failed with the error and adds an Activity entry Automation rule '{name}' failed: ….
- Changes made by an automation never fire other automations, so rules cannot loop.
Tasks
Create a rule
-
Open the project → Automations → New automation (top-right).
-
Fill in New automation:
Field Required Rules / defaults Notes Name Yes Up to 160 characters. Shown on the card and in runs. Description No Up to 5,000 characters. A note for your team. Trigger Yes One of the triggers above. Default Task Created. Conditions No Add condition per row; Remove deletes a row. Rows with an empty field are dropped. Actions Yes At least one; starts with Log Activity / Automation rule ran. Add action adds rows; the last row cannot be removed. Active — Ticked by default. Untick to save the rule paused. -
Optional: check the reference line (Operators: and Action types:) and expand JSON preview to see exactly what will be saved.
-
Click Create. You see Automation created.
Errors appear at the top of the dialog: Name is required., Actions are required., Conditions must be valid JSON., Each action must include a supported type. Cancel closes without saving.
Start from a preset
- In Presets click a recipe. The form opens with its name, trigger, conditions and actions, Active ticked.
- Adjust and click Create.
| Preset | Trigger | Conditions | Actions |
|---|---|---|---|
| Urgent Task Warning | Task Priority Changed | new_priority Equals urgent |
Comment Automation note: this task is now urgent.; log Automation detected urgent work. |
| Completed Checklist Moves To Review | Checklist Completed | — | Update status to review |
| Blocked Task Risk Log | Task Blocked | — | Log Automation logged a blocked task risk. |
| Guest Doc Update Log | Doc Created | visibility Equals client_visible |
Log Automation logged a guest-visible document update. |
| Playground Idea Converted | Playground Item Converted To Task | — | Comment Automation note: this task came from the playground planning room. |
Edit a rule
- Click Edit on the rule card. Edit automation opens with the saved values.
- Change anything, click Save. You see Automation updated.
Pause and resume
Click Pause — Automation paused., badge Paused. Click Resume — Automation resumed. No confirmation is asked. Paused rules do not fire and are not caught up later.
Archive a rule
- Click Archive.
- Confirm Archive automation — "This automation will stop running for the project."
- You see Automation archived. The rule leaves the list and cannot be restored here; its past runs stay in Recent runs and the Runs count.
Every create, update, pause/resume and archive is logged in the project Activity.
Statuses and lifecycle
| Rule state | Meaning | Allowed |
|---|---|---|
| Active | Fires on its trigger. | Edit, Pause, Archive |
| Paused | Kept but never fires. | Edit, Resume, Archive |
| Archived | Hidden; stops for good. | — (history kept) |
| Run status | Meaning |
|---|---|
| Success | Conditions matched; all actions ran. |
| Skipped | Conditions did not match. |
| Failed | An action failed; nothing from that run was kept. |
Permissions
| Role | Open the tab | Create / edit / pause / archive |
|---|---|---|
| Organization owner | Yes | Yes |
| Projects Administrator | Yes | Yes |
| Projects Manager who is a project Manager here | Yes | Yes |
| Projects Manager without the Manager project role, Projects Member, project Viewer, guests | No (We couldn't load automations.) | No |
A Portal restriction denying Edit projects on this project removes access even for the roles above. If rule editing is switched off for your organization, the page is read-only (no New automation, Edit, Pause/Resume, Archive or Presets). A refused save shows "Automation edits are disabled or not permitted." or "You do not have access to this action. Contact your workspace administrator."; a stale page shows "Please reload and try again."
Actions run with the rule creator as author (comments, Activity entries), whoever triggered the event.
Worked examples
Example 1 — Checklist done → review (everyday)
Sara Khan manages Al Noor Showroom Fit-out (ALN-FIT). She clicks Presets → Completed Checklist Moves To Review → Create. Later Omar Haddad ticks the last item of the Joinery QA checklist on ALN-12. ALN-12 moves to Review, and Recent runs shows Completed Checklist Moves To Review · Checklist Completed · Success · 1.
Example 2 — Urgent escalation with bulk edits and a failure (full scenario)
Omar wants urgent tasks escalated to Sara (user id 214).
- New automation: Name Urgent work goes to review; Trigger Task Priority Changed; condition
new_priorityEqualsurgent. - Actions: Update Task Status
review; Add Task Comment Escalated: please review today.; Assign Task214. Create → Automation created. - Next morning he selects six tasks and bulk-sets priority Urgent. Four were High, two already Urgent.
| Result | Value |
|---|---|
| Runs added | 4 (one per changed task; the two unchanged tasks fire nothing) |
| Each of the four tasks | Status Review, internal comment, assignee Sara |
| Header | Rules 2 · Active 2 · Runs 5 · Failed 0 |
- A week later Sara leaves the project team. The next escalation run shows Failed — Automation assignee must be a project member. The task's status and comment are not changed (all-or-nothing), the rule card shows the ⚠ error, Failed reads 1 in red, and Activity logs the failure.
- Omar edits the rule, sets Assign Task to the new lead's id, Save → Automation updated. The next run succeeds and clears the error line.
Example 3 — Overdue reminder
Rule: Task Overdue, condition days_overdue Greater Than 2, action Create Reminder Activity Overdue more than 2 days — chase supplier. Each day the scheduled check runs, tasks more than two days overdue get one reminder entry; tasks 1–2 days overdue are recorded as Skipped.
How it connects
| Where | Link |
|---|---|
| Tasks | Task events are the main triggers; actions change tasks. |
| Activity | Rule changes, failures, Log Activity and reminders appear there. |
| Documents | Doc Created trigger; Create Project Doc action. |
| Time tracking | Time Entry Created trigger. |
| Playground | Playground Item Converted To Task trigger. |
| Team access | Intake forms fire Intake Form Submitted; assignees must be team members. |
| Guest share links | Set Client Visible controls what guests see. |
| Integrations | Webhooks send events out of SolaProjects; automations act inside it. |
Tips and common problems
| Problem | Cause | Fix |
|---|---|---|
| Tab missing from the sidebar. | Plan below Professional, or paid plan expired. | Upgrade/renew in the Portal. |
| We couldn't load automations. | You can't edit this project. | Ask a project Manager or administrator. |
| Runs always Skipped. | Field name or value doesn't match exactly. | Check spelling and case (urgent, new_priority). |
In with high,urgent never matches. |
The form saves one value, not a list. | Use separate rules with Equals. |
| Automation assignee must be a project member. | User id not on the project team. | Add them on Team or change the id. |
| Status action fails. | No status of that type on the project. | Use a type that exists on the board. |
| Task action fails on Doc Created / Intake. | Those triggers have no task. | Use activity or doc actions. |
| Overdue rule didn't fire twice today. | Once per task per day by design. | — |
| Rule didn't fire after a change made by another rule. | Automation changes never trigger rules. | Put both actions in one rule. |