Skip to content
Start free
Open MoveMembers

How do I set up an automation?

Automations › New automation9 min read
The short answer

A trigger, optional conditions, and one or more actions. Which triggers fire instantly, which wait for the nightly pass, and how to check a run.

On this page

Steps

  1. Open Automations and press New automation, then pick a ready-made automation or Start from scratch. In the Overview, you can also press Add on a gap.
  2. Under When, pick what starts it. If it takes a number of days, set it.
  3. Under Who for, leave Everyone, or press Only some of them to target part of your members.
  4. Under What, pick the action. For Send a message, choose a message and tick the channels.
  5. Give it a name if you want, then press Activate. Save as draft keeps it switched off.

Four messages ready to use, switched off#

Path: Automations.

Four moments of a member's life come with a text already written, in English, Thai and French: a new member, a failed payment (About your payment), a membership ending in 3 days (Your membership ends soon) and a member away for a month (We miss you). In the To cover cards, they read Off · turn on to use it.

None of them is an automation, and none of them sends by itself. Open the card, read the text, change it if you want, and save it: it then joins your list of messages. After that, switch on an automation that sends it, or send it by hand.

A switched-off message does not count as covered: the Overview still shows that moment as having nothing.

The twelve triggers#

Membership: Someone joins. A membership ends soon. A membership just ended. A membership is renewed. Money: A payment comes in. A payment fails or is overdue. Coming in: First visit. A session is done. Away for X days. Dropping off. Other: Their birthday. A lead comes in.

A session is done fires when an attendance is recorded. It can be narrowed to one class or service by name, in the Class / service field. Dropping off fires for a member whose visits over the last 30 days are at least half below their average over 90 days, the same measure as the Dropping off report.

Which triggers fire instantly, and which wait for the night#

Seven fire the moment the event happens: a member is added, a membership is renewed, a payment is saved as paid or overdue, a first attended check-in is recorded, a session is completed, and a lead comes in from your form.

Five are date based and are checked once a day by a scheduled job: a membership ends soon, a membership just ended, their birthday, away for X days and dropping off. They match an exact day. Expires soon fires when the end date is exactly X days away, expired fires the day after the end date, and no check-in fires exactly N days after the last attended visit.

Each date-based run is recorded so the same member is not messaged twice on the same day.

Exact day means no catching up. A member who is 8 days from expiry is not caught by a 7-day rule, and if the daily job does not run on the right day, that day is simply missed.
Choose when the message goes out

Path: Automations › New automation.

Under When, the choice When to send it has three answers: Right away, After a delay in minutes or hours, and At a set time. It works for every trigger, so a birthday wish can wait for the morning and a thank-you can follow a session by an hour.

A set time uses your studio's time zone. For a date-based trigger, if that time has already passed today the message goes out right away rather than a day late. For an event, such as a payment, it goes out at the next time of that hour.

Active from and Active until limit an automation to a season. Both days are included, and outside them it stays in place but sends nothing.

A delay or a set time needs the quarter-hourly scheduled job. If the editor says that delayed sending is not running on this server yet, that message would never go out: choose Right away, or contact support.
Everything dated depends on scheduled jobs, and there are four

Four separate calls to the server, on four different rhythms, all protected by the same secret. The main one carries the date-based triggers, the class reminder, the expiry reminders and the no-show sweep. A second one runs about every quarter of an hour and carries the delayed sends and anything held back by your quiet hours. A third one carries the workflows. A fourth one carries the automatic backup.

Without those calls, or without the secret, nothing runs and nothing is marked. It fails silently: no error appears on any screen. A delayed send that never leaves is almost always the quarter-hourly one missing.

A gym whose trial or subscription has ended is skipped by the main pass and by the quarter-hourly one, even for automations still switched on. Sequences also stop when the plan that includes them ends.
Channels: connected, and reachable for that member

Inside the Send a message action you tick channels. Email is always available. LINE, WhatsApp and SMS appear greyed with the word connect until your gym has connected that account in Settings › Integrations.

LINE only appears for studios in Thailand, Japan, Taiwan and Indonesia, or once it is connected.

At send time each channel is checked again for that specific member. Email is skipped if the member has no address. LINE is skipped if the member never linked their LINE, or blocked your Official Account. WhatsApp needs a phone number and a Meta template name on the message. SMS needs a phone number.

WhatsApp and SMS also require the plan that includes them. An automation written while you were on a higher plan stops using those channels after a downgrade, silently.
The other actions

Create task writes a note on the member's timeline, prefixed with Task. It is a note for your team, not an entry in a separate task list.

Notify staff emails one coach if you pick one, otherwise the gym account address. It can also add a line to the reception note on the dashboard, and it writes a Staff note on the member's own file, which is where those notes you did not type come from.

Add tag and remove tag write on the member profile. Assign coach does NOT: it only writes a line in the member's timeline saying who they were assigned to, and no coach field changes anywhere. You can stack several actions on one automation; they run in order and the activity log keeps one line per run, listing what each action did.

For the New lead trigger there is no member profile yet, so create task, add tag, remove tag and assign coach are skipped. A lead has no linked LINE either, so LINE never works there. Email, SMS, WhatsApp and Notify staff do work on a lead, as long as the lead has a phone number for the last two.
Checking that it really ran

Each automation shows when it fires, what it then does, its channels and how many times it ran in the last 30 days. Its switch turns it off and on.

Once something has run, the Activity button, or See its activity in an automation's menu, opens the log of runs: the automation, the member, a status (Sent, Failed or Skipped), the channels and the detail of what was done. You can filter by automation, status, channel and period, search a member by name, and export the result as a CSV.

Automations are part of the Pro plan. If your plan no longer covers them, nothing runs at all, even for automations still switched on.

The activity log keeps the last 300 entries per gym. Older runs are dropped, so check it while the problem is fresh.

Troubleshooting

Conditions filter, they do not create

A condition tests one field of the member: plan, membership, discipline, status or tag, with is or is not. Add several and all of them must be true.

Membership is special: it checks whether the member currently holds an active, non-expired membership of that type, not what is written on their profile.

No check-in for X days only looks at active members who have at least one attended visit. Someone who signed up and never came is never picked up by that rule.

A condition left on Select compares against nothing. It then only matches members whose field is empty, which is almost never what you meant. Fill every condition or remove it.
Did this answer your question?