Limits
What fits in each plan, and the caps that protect your team from a workflow that fires too often.
Active workflows per plan
| Plan | Active workflows |
|---|---|
| Free | 1 |
| Starter | 5 |
| Pro | Unlimited |
| Scale | Unlimited |
| Developer | Unlimited |
- Only Active workflows count. Drafts and paused workflows take no slot, and you can have as many as you want.
- Runs are unlimited: an active workflow runs every time its event happens.
- The workflow list shows your usage: “N of M active workflows on your plan”.
If you reach the limit and want to publish or resume another one, you see “Your plan allows N active workflows. Pause one or upgrade to publish this one.”
What happens if you downgrade
Your workflows are not deleted or paused automatically. Cord keeps running the oldest ones that fit in your new plan, in the order they were created. The rest stay marked active, but their events no longer create runs, and runs that were queued or waiting are canceled when they continue, with “Your current plan does not include this active workflow.”
To choose which ones keep running, pause the ones you do not need. When you upgrade again, the ones left out start running again with new events.
Example: you had 4 active workflows on Starter and move to Free. Only the first one you created keeps running; the other 3 stop firing until you pause the first or go back to Starter.
Workflow size
| Limit | Value |
|---|---|
| Triggers per workflow | 1 |
| Steps per workflow, across all branches | 30 |
| Step levels (the main level and branches inside branches) | 4, meaning up to 3 conditions nested inside each other |
| Rules per condition | 5 |
| Days per wait | 0 to 30, plus hours or a time of day |
| Time limit on a conditional wait | 1 to 30 days |
| Branches in a multi-branch step | Up to 5, plus “Otherwise” |
| Items a “For each” goes through in a run | 1 to 50 |
| Time to decide an approval | 1 to 30 days |
| Day of the month on a scheduled trigger | 1 to 28 |
| Workflow name | 120 characters |
Lookups, conditional waits and “For each” steps count as steps, the same as an action; steps inside a branch or a “For each” count too. At 30, the editor no longer lets you add or duplicate steps. If you need more, split the rule into two workflows with different triggers.
Text length
| Field | Maximum |
|---|---|
| Task title | 200 characters |
| Due in (days) | 0 to 365 |
| Email subject | 150 characters |
| Email message | 2,000 characters |
| Slack message | 1,000 characters |
| Teams message | 1,000 characters |
| WhatsApp variables | Up to 4, 200 characters each |
| HubSpot note | 2,000 characters |
| Client email subject | 150 characters |
| Client email message | 2,000 characters |
| POST destination URL | 300 characters |
| POST message | 1,000 characters |
| Void reason | 200 characters |
| Recipients with “The whole team” | The first 25 active members |
Hourly caps
So a configuration mistake does not flood your team, each organization has an hourly maximum for what all its workflows do together:
| Action | Maximum per hour |
|---|---|
| Create a task | 120 |
| Email the team | 30 |
| Send a Slack message | 120 |
| Send a Teams message | 120 |
| Send the client a WhatsApp | 60 |
| Add a note in HubSpot | 120 |
| Email the client | 60 (and it uses your plan’s sending quota: 5 a month on Free, no cap on the other plans) |
| Send the data to a URL | 120 |
| Expire the quote and Approve the internal request, combined | 120 |
| Void the invoice | 30 |
When exceeded, the step fails with a message like “Workflows reached their hourly limit of tasks.” and the step is retried later, on the schedule in Runs and errors. If you see these often, check whether a workflow fires on an event more frequent than you thought, such as A client is updated or The client opens the quote.
Loop protection
A workflow can cause events: creating a task fires A task is created. So that never becomes an infinite loop:
- A workflow is not triggered by its own events. If your “New tasks” workflow creates a task, that task does not trigger “New tasks” again.
- Chains stop at 3 levels. Workflow A can trigger B, and B can trigger C, but what C causes no longer triggers workflows. Two workflows that trigger each other stop on their own.
To know in a condition whether an event came from another workflow, use Who caused it is Another workflow.