Save time
Schedules and contact lists
Create workflows automatically on a timetable - one each time, or one for every client on a list.
Some work comes round like clockwork: monthly bookkeeping for a group of clients, a quarterly payroll check, an annual confirmation statement. A schedule creates those workflows for you at the right time, so nobody has to remember to start them.
A schedule can create either:
- a single workflow each run - for example, one internal "Month-end close" workflow on the 1st of every month, or
- one workflow per contact in a list - for example, a bookkeeping workflow for each of your 30 monthly clients, each addressed to that client.
Schedules live under Workflows → Schedules, and contact lists under Contacts → Lists. Everyone in the workspace can create and manage both.
A schedule can create a thread on each new workflow with the client already on it and a first message ready - but that message is saved as a draft. Someone on your team reviews it and sends it from the reply box. Nothing goes to a client automatically.
Set up a contact list
Skip this if your schedule creates a single workflow each run.
- Go to Contacts, open the Lists tab and click New list.
- Give it a Name, such as Monthly bookkeeping clients, and click Create list.
- On the new list's page, click Add contacts.
- Search for and tick the contacts to include. Your ticks are kept as you change the search, so you can add several in one go. Then click Add contacts.
To take someone off a list, open the list and click Remove next to their name. You can also rename a list on its page.
The list is read each time the schedule runs, so a client you add today is included from the next run, and one you remove is left out. Deleting a contact removes them from every list.
Contacts are added to lists from the list's own page. There's no "add to list" option on a contact's page or in the Contacts table yet.
Create a schedule
- Go to Workflows, open the Schedules tab and click New schedule.
- Give it a Schedule name, such as Monthly bookkeeping, and leave the switch on Enabled.
- Set when it runs.
- Under Create for, choose A single workflow each run, or One workflow per contact in and pick your list.
- Fill in what each new workflow looks like, and optionally a first thread.
- Check the Upcoming panel, then click Create schedule.
Choose when it runs
In the Schedule section:
- Repeat - Daily, Weekly, Monthly or Yearly.
- Every - run every 1 week, every 2 weeks, every 3 months and so on.
- On - which days:
- Weekly: tick one or more days (Mo to Su).
- Monthly: either a Day … of the month (choose 31 and shorter months run on their last day), or a pattern such as The first Monday or The last Friday.
- Yearly: a month and day.
- At - the time of day, in half-hour steps.
- Starts - the first date it can run.
- Ends - Never, or On date to stop after a set day (runs on that day still happen).
Times are in your workspace's timezone, shown next to the time. Owners and admins can change it under Settings → General → Timezone; doing so re-plans every schedule to keep the same local time. Your personal timezone under Account doesn't affect schedules.
The Upcoming panel on the right shows the next few run dates in plain English - for example Every month on the 1st at 09:00 - so you can check the pattern before saving.
Describe each new workflow
In the Each new workflow section:
- Name - the workflow's name. Add variables so each one is distinct, for example
Bookkeeping - {{contact.name}} - {{formatDate run.at "MMM YYYY"}}. - Notes - becomes the workflow's description.
- Tags - added to every workflow the schedule creates.
- Owner - the team member who owns every workflow this schedule creates.
When the schedule creates one workflow per contact, Preview as at the top of this section lets you choose which list member the previews use. The Next run creates panel shows the names of the first few workflows the next run will create.
Schedules don't set due dates or todos, and can't use a workflow template. Add those to each workflow once it's created - or, if a process needs them every time, start it from a template by hand instead.
Start each workflow with a thread
Turn on Start with a thread to give every new workflow an email conversation, ready to go:
- Thread subject - leave it blank to use the workflow's name.
- Send from - which mailbox the thread uses. You'll only see this if your workspace has more than one mailbox; otherwise it uses your default.
- Recipients - in per-contact mode, each workflow's contact is added automatically (shown as
{{contact}}). Anyone you add here joins every thread too, such as a colleague. In single-workflow mode, only the people you add here are on the thread. - First message - the email to prepare as a draft. It's plain text: leave a blank line between paragraphs. (Unlike templates, bold and bullet points aren't supported here - they'll appear as typed.)
When the run happens, each workflow's thread shows that a draft is ready to review. Open it to find the message in the reply box with your signature, under a notice that the schedule drafted it and nothing has been sent. Check it, then send it.
Use variables
Names, notes, subjects and first messages can include placeholders that are filled in for each workflow. Use the Insert variable button, or type them yourself:
| Variable | Becomes |
|---|---|
{{contact.name}} | The contact's name, or their email if they have no name |
{{contact.firstName}} | The first word of their name |
{{contact.email}} | Their email address |
{{contact.company}} | Their company, falling back to their name |
{{run.at}} | The run's date, e.g. 2026-11-01 |
{{formatDate run.at "MMMM YYYY"}} | The run's date your way, e.g. November 2026 |
Contact variables only work when the schedule creates one workflow per contact. The date formats are the same as for templates - see Fill in names and dates automatically for the full list and a tip on writing them.
If you collect October's paperwork on 1 November, {{formatDate run.at "MMMM"}} says November. Word your names around the run date - for example Records request - {{formatDate run.at "D MMM YYYY"}}.
What happens at each run
Within about a minute of the scheduled time, Mighty:
- reads the contact list (in per-contact mode),
- creates each workflow with its name, notes, tags and owner,
- adds the first thread, its recipients and the draft message, if you set one up.
Each new workflow appears on the Workflows page like any other. If a run is interrupted, it's retried, and a retry only creates the workflows that are still missing - you won't get duplicates.
If Mighty was unavailable at run time, the missed run happens once when it's back, rather than catching up on every run it missed.
Pause, edit or delete a schedule
- Pause - open the schedule, switch Enabled to Paused and click Save changes. Paused schedules show a Paused badge. Runs missed while paused aren't made up when you resume; it carries on from the next run date.
- Edit - changes apply to future runs only. Workflows already created are never changed.
- Delete - use Delete schedule at the bottom of the schedule's page. Workflows it created stay as they are.
A list that a schedule uses can't be deleted until you point the schedule at another list.
Check what a schedule has done
Open a schedule and scroll to Run history. Each run shows its date and a status:
| Status | Meaning |
|---|---|
| Queued | Due, and about to start |
| Running | Creating its workflows now |
| Completed | Finished - for example 12 workflows created |
| Failed | Some workflows couldn't be created; the reason is shown, and it retries automatically |
| Skipped | The schedule was paused when the run came round |
Click View … workflows to see and open the workflows a run created. Show older runs loads earlier history.
Good to know
- If the owner leaves the workspace, the schedule asks you to choose a new owner; until you do, its workflows are created without one.
- An empty list creates nothing. The schedule warns you, and the run is recorded as Nothing to create.
- Want todos and due dates as well? A template sets those up. See Workflow templates.
Still need help? Email [email protected] and we’ll get back to you.