> For the complete documentation index, see [llms.txt](https://threadly.gitbook.io/threadly/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://threadly.gitbook.io/threadly/workflows/advanced-workflow-settings.md).

# Advanced Workflow Settings

Fine-tune how your workflows behave with these powerful settings. Access these options via the **Workflow Settings** button when editing a workflow.

***

### Workflow Name

Give your workflow a clear, descriptive name so you can easily identify it later.

#### Best Practices

**Good names describe both the trigger and purpose:**

| Good                                  | Bad             |
| ------------------------------------- | --------------- |
| Welcome new #sales members            | Workflow 1      |
| Weekly standup reminder - Engineering | Monday reminder |
| Onboarding drip - New hires           | Messages        |
| Form submission → Slack alert         | Automation      |

***

### Allowed Days

Restrict your workflow to only run on specific days of the week. This applies to **all trigger types**, not just scheduled workflows.

#### Configuration

| Setting      | Description                                                |
| ------------ | ---------------------------------------------------------- |
| **Days**     | Select which days the workflow can trigger (Monday-Sunday) |
| **Timezone** | Select the timezone used to determine the current day      |

#### How It Works

When a trigger fires, the system checks if the current day (in your selected timezone) is an allowed day. If not, the workflow is skipped.

#### Example

A "User Joins Channel" workflow with allowed days set to Monday-Friday (Eastern Time):

* Someone joins at 10 AM on Tuesday → **Workflow runs**
* Someone joins at 3 PM on Saturday → **Workflow skipped**
* Someone joins at 11 PM Friday (which is Saturday in UTC) → **Workflow runs** (because it's still Friday in Eastern Time)

{% hint style="info" %}
The timezone setting is important! A trigger at 11 PM Friday in New York is already Saturday in UTC. Set your timezone to match your audience.
{% endhint %}

#### Available Timezones

25+ timezones are supported, including:

* US: Eastern, Central, Mountain, Pacific, Alaska, Hawaii
* Europe: London, Paris, Berlin, Amsterdam, Stockholm
* Asia: Tokyo, Singapore, Hong Kong, Dubai, Mumbai
* Australia: Sydney, Melbourne, Perth
* And more...

***

### Re-enrollment Settings

Control whether users or channels can trigger the same workflow multiple times.

#### Options

**Allow Re-enrollment (Default)**

Users or channels can trigger the workflow again if they meet the criteria. When combined with cooldown settings, this prevents spam while still allowing repeat triggers.

**Use when:**

* You want recurring engagement (e.g., weekly reminders)
* Users might need the workflow multiple times
* You're using cooldown to manage frequency

**Disable Re-enrollment**

Once a user or channel triggers the workflow, they can **never** trigger it again — regardless of cooldown settings.

**Use when:**

* True one-time automations (e.g., initial onboarding)
* You want to guarantee a user only receives the workflow once
* Preventing duplicate welcome messages across channel re-joins

#### Example

**Onboarding workflow with re-enrollment disabled:**

1. New hire joins #general → Workflow runs, sends welcome sequence
2. Same person leaves and rejoins #general → **Workflow does NOT run**

***

### Cooldown Period

When re-enrollment is enabled, cooldown prevents the same user or channel from triggering the workflow too frequently.

#### Options

| Option            | Behavior                                                                       |
| ----------------- | ------------------------------------------------------------------------------ |
| **Yes** (default) | Don't trigger if the workflow ran for this user/channel in the last 60 minutes |
| **No**            | Allow triggering even if the workflow ran recently                             |

#### Cooldown Behavior by Trigger

| Trigger Type           | Cooldown Applied To                           |
| ---------------------- | --------------------------------------------- |
| User Joins Channel     | Per user                                      |
| Form Submission        | Per user                                      |
| Channel Meets Criteria | Per channel                                   |
| Message Posted         | Per channel                                   |
| On Schedule            | N/A (scheduled triggers don't have cooldowns) |

#### Example

**Support channel workflow with cooldown enabled:**

1. User posts in #support at 2:00 PM → Workflow runs
2. Same user posts again at 2:30 PM → **Workflow skipped** (within 60-minute window)
3. Same user posts at 3:15 PM → Workflow runs (outside 60-minute window)

***

### Using Variables

Make your messages dynamic with variables that are replaced with actual values when the workflow runs.

#### System Variables

| Variable      | Description                                  | Available For                               |
| ------------- | -------------------------------------------- | ------------------------------------------- |
| `{{user}}`    | Mentions the user who triggered the workflow | User Joins, Message Posted, Form Submission |
| `{{channel}}` | References the trigger channel               | All triggers                                |

#### Form Field Variables

For Form Submission workflows, access any submitted field value:

```
{{field_internal_name}}
```

Find the internal name in your form's field settings.

**Example:**

```
Thanks for your feedback, {{user}}!

You rated us: {{satisfaction_rating}}
Your comments: {{additional_comments}}

We'll follow up within 24 hours.
```

#### Team Variables

Custom variables defined for your workspace with fallback values. These are set up separately and can be used across all workflows.

***

### Workflow States

Understanding what each workflow status means:

| Status       | Description                              | Will It Run? |
| ------------ | ---------------------------------------- | :----------: |
| **Active**   | Published and live — triggers will fire  |       ✓      |
| **Inactive** | Draft or unpublished — not yet live      |       ✕      |
| **Archived** | Soft-deleted — preserved but not running |       ✕      |

#### State Transitions

```
New workflow → Inactive (draft)
                  ↓
            Edit & configure
                  ↓
              Publish
                  ↓
               Active (live)
                  ↓
         Edit (creates new draft)
                  ↓
            Inactive (editing)
                  ↓
              Publish
                  ↓
               Active (updated)
```

***

### Workflow Logs

Monitor your workflow's execution history to troubleshoot issues or verify behavior.

#### What's Logged

Each workflow run records:

* **Triggered at** — When the workflow fired
* **Triggered by** — Who or what caused the trigger
* **Status** — Completed or skipped
* **Skip reason** — Why it was skipped (if applicable)
* **Step details** — Status of each action

#### Common Skip Reasons

| Skip Reason             | Meaning                                           |
| ----------------------- | ------------------------------------------------- |
| `day_filter`            | Workflow ran on a day not in allowed days         |
| `cooldown`              | User/channel triggered within the cooldown window |
| `reenrollment_disabled` | User/channel already received this workflow       |
| `creator_skip`          | The workflow creator triggered their own workflow |
| `form_filter_not_met`   | Form submission didn't match filter criteria      |

***

### Tips for Effective Workflows

1. **Start simple** — Begin with a single action, then add complexity as needed
2. **Test with yourself** — Join a test channel to see your workflow in action (note: you may need a colleague to test, as creators can't trigger their own workflows)
3. **Use delays strategically** — Space out messages to avoid overwhelming users. A welcome message + 24-hour delay + tips message feels more natural than three messages at once
4. **Name workflows clearly** — Your future self will thank you when managing 20+ workflows
5. **Check allowed days** — Make sure your timezone matches your audience's timezone
6. **Review logs regularly** — Check for unexpected skips or failures
7. **Consider re-enrollment carefully** — Decide upfront whether users should receive the workflow once or multiple times
8. **Get sender approval early** — If using custom senders, request approval before you need the workflow live

***
