How to configure automated workflows
What this feature does
Workflows automate repetitive case management tasks in Ownself Gather. Instead of manually assigning cases, sending emails, or updating statuses, workflows handle these actions automatically based on triggers and criteria you define.
Ownself Gather supports two types of workflows:
- Instant workflows — Execute immediately when a trigger event occurs (e.g., a case is created, a status is updated, an email is received).
- Scheduled workflows — Run at a set frequency (daily, weekly, monthly, or ad-hoc) during off-peak hours (between 9:00 pm and 6:45 am) to process batches of cases.
Each type supports a basic mode for straightforward, linear automation and an advanced mode for conditional logic, loops, and scripted data manipulation.
Scope: This guide covers creating, configuring, testing, and managing workflows. It does not cover the initial app setup (refer to the get-started tutorial) or case intake channel configuration (refer to Set up case intake channels).
Who this applies to
- Audience: App administrators who configure automated processes within their app.
- Access required: Your user role must have the Manage API keys & workflows permission.
- Assumed knowledge: You have completed the initial app setup (case types, statuses, roles, users) and understand your case lifecycle.
Steps
Creating a workflow is a 4-step process: workflow details, additional criteria, case field aliases, and workflow actions.
Step 1: Define workflow details
Navigate to Settings > Instant Workflows or Settings > Scheduled Workflows.
Select + Add Workflow.
Fill in the general details:
- Workflow Name — A descriptive name (e.g., “Auto-assign new enquiries”, “Weekly SLA report”).
- Workflow Description (optional) — A note to help you remember the workflow’s purpose.
- Workflow Tags (optional) — Labels for filtering and categorising workflows.
For instant workflows, select a trigger:
Trigger When it fires Case created A new case is created in the app Case updated Any user amends the case Case updated or created A case is created or amended Case status updated The case status changes (e.g., from “Pending Review” to “Approved”) Case assigned to user(s) The case is assigned to a new user Case finalised The case reaches a final status Case deleted A case is deleted from the app Duplicated case detected A case is flagged as a duplicate Case email correspondence received A new inbound email arrives on a case For scheduled workflows, configure:
- Frequency — Daily, weekly, monthly, or ad-hoc (specific dates).
- Scheduled time — Between 9:00 pm and 6:45 am to minimise usage disruptions.
- Apply workflow to — Select which cases this workflow processes:
- All cases (since the beginning of time)
- Cases created in the previous period
- Cases updated or created in the previous period
- Cases finalised in the previous period
- Cases that missed the duration threshold during the previous period
- Cases approaching the duration threshold within a specified number of days (daily frequency only)
Step 2: Add additional criteria (optional)
Narrow the workflow to a subset of cases beyond the trigger condition. By default, the workflow applies to all cases that match the trigger.
Available filters:
- Case Source — Only cases from specific sources (e.g., FormSG, email, API, manual).
- Case Type — Limit to specific case types within the app.
- Case Status — Only process cases with certain statuses.
- Case Tags — Filter by tags assigned to cases.
- Custom Criteria — Write conditions using operators and field names in the format
{Field Name} operator "Value". Supports connectors (AND,OR) and brackets for complex logic.
You can use the Custom Criteria builder tool to generate the correct syntax. Select what you need and the tool generates the criteria for you.
Common custom criteria examples:
{Case Priority} = "High"— Select cases where the priority field equals “High”.{createdAt} < "$currentDate-10"— Select cases created more than 10 days ago.({Residential Status} = "Singaporean" AND {Race} = "Others") OR ({Residential Status} = "PR" AND {Race} = "Chinese")— Combine multiple conditions.
Step 3: Define case field aliases (optional)
If your workflow actions reference case fields in scripts (JavaScript or Excel formulas), assign short aliases to fields with long or multi-word names.
- For each field you plan to use in scripts, select + Add Alias.
- Enter the original field name and a short alias (e.g.,
Estimated budget per month→monthly_budget). - Use the alias in your script instead of the full field name.
Default case variables (e.g., caseRef, status, createdAt, assigneeEmails, durationDay) do not require aliases and can be used directly in scripts.
Step 4: Add workflow actions
Choose between basic mode and advanced mode.
Basic mode actions (instant and scheduled workflows)
In basic mode, add one or more actions that run in a specific order. Decide how the system responds if an action fails: stop and undo, stop and keep, or skip and continue.
| Action | What it does |
|---|---|
| Assign case | Auto-assign cases to specific users, user roles, or an email-address-type case field. Choose to add to or replace existing assignees |
| Update case | Auto-update the case status, or update case field values using Excel-style formulas (e.g., +, -, SUM, AVERAGE) |
| Update app variable | Update a global app variable using a formula. Useful for tracking budgets or counters across cases |
| Send email | Send a templated email to specified recipients. Use {{ }} to pull case field data into the subject and body. Add fallback placeholders with /[[placeholder text]] |
| Send case to external system | Send case data to an external system via webhook (JSON or form-data). Enable retries (up to 3 attempts) for failed requests |
| Adjust case duration | Reset the counter to zero, pause the counter, or resume the counter |
Additional basic mode actions (scheduled workflows only)
| Action | What it does |
|---|---|
| Generate in-app report | Generate a ZIP file with matching cases and optional attachments. Available for download in the Reports page for 60 days |
| Send report via email | Generate an Excel file with matching cases and send it to specified email addresses |
Advanced mode actions
Advanced mode uses a visual canvas with drag-and-drop action blocks connected by lines. It supports all basic mode actions plus:
- If-Else — Split the workflow into two branches based on a JavaScript or Excel Formula condition (e.g.,
Claims >= 10000). - If-Else If-Else — Handle multiple conditions with different outcomes for each branch.
- Loop — Iterate over cases, users, or values and perform actions on each item.
- Set workflow variable — Store temporary data within the workflow for use in subsequent action blocks.
- Custom error handling — Configure error responses per action block.
Basic workflows can be converted to advanced mode, but advanced workflows cannot be converted back to basic mode.
Step 5: Test and activate the workflow
- After configuring all steps, select Save (or Save as Draft for incomplete workflows).
- For scheduled workflows, you can test the workflow before activating it.
- Activate the workflow by toggling the Active switch to On in the workflow list.
- Monitor workflow execution using the workflow logs, which show each run’s status, actions executed, and any errors encountered.
Constraints and limitations
- Scheduled workflow timing: Scheduled workflows run between 9:00 pm and 6:45 am only, to minimise disruptions during business hours.
- Advanced mode conversion: Converting from basic to advanced mode is one-way. You cannot revert an advanced workflow to basic mode.
- Script requirements: Advanced mode conditions and field updates require JavaScript or Excel Formula syntax. Field names with spaces or special characters must use aliases or the
case.fields["Field Name"]syntax. - Error handling options: In basic mode, three error handling strategies are available (stop and undo, stop and keep, skip and continue). Advanced mode provides per-block error handling configuration.
- Webhook retries: Webhook actions support up to 3 retry attempts on failure when retries are enabled.
- Report retention: Generated reports (from the “Generate in-app report” action) are retained for 60 days only.
- Default email notifications: Some common notifications (new case assignments, cases exceeding duration threshold, new comments, workflow errors) are now available as default notifications without requiring a workflow. Configure these under your profile > Manage My App Notifications.
Related features
- Set up case intake channels — Configure the sources that create cases and trigger instant workflows.
- Manage cases and track SLA — Use scheduled workflows to monitor duration thresholds and generate reports.