Explained

Workflow triggers explained

Every trigger you can start a workflow with, and exactly when each one fires.

5 min readRole: Super Administrator or higherAutomationsUpdated October 25, 2026
Open in the app

The trigger is set on the Start Workflow step. Click the step, then click the Trigger field to open Select Trigger. Pick a resource, then an event. Each workflow has one trigger.

A trigger only starts a run when the workflow is active and your salon has an active subscription.

Appointment

TriggerWhen it fires
CreatedA new appointment is created, by your team or by a client online.
UpdatedAnything on an appointment changes, including its status, time or team member.
Upcoming24 hours and 2 hours before the appointment starts. It fires twice.
Upcoming (24h)24 hours before the appointment starts.
Upcoming (2h)2 hours before the appointment starts.
StartedWhen a Confirmed appointment reaches its start time.
RescheduledThe appointment's start time changes.
ReassignedThe appointment moves to another team member.
Awaiting PaymentThe status becomes Awaiting Payment.
Awaiting ConfirmationThe status becomes Awaiting Confirmation, for example when a client sends a booking request.
ConfirmedThe status becomes Confirmed.
DeclinedThe status becomes Declined.
No ShowThe status becomes No Show.
CanceledThe status becomes Canceled.
CompletedThe status becomes Completed.
DeletedAn appointment is deleted.

Status triggers also fire when a new appointment is created with that status. A booking that is confirmed right away starts both Created and Confirmed workflows.

The Upcoming triggers only fire for appointments that are Awaiting Payment, Awaiting Confirmation or Confirmed at that moment. They skip a time that has already passed when the appointment is booked. If the appointment is rescheduled, they follow the new time. See Send appointment reminders.

Started doesn't fire for appointments awaiting confirmation or payment, or if the appointment has already ended.

Client

TriggerWhen it fires
CreatedA new client is created.
UpdatedAnything on a client's profile changes. This includes changes Softalon makes, like updating the last visit when an appointment is completed.
BirthdayAt midnight on the client's birthday, in your salon's time zone.
Lapsed30, 60 and 90 days after the client's last visit. It can fire three times.
Lapsed (30 days)30 days after the client's last visit.
Lapsed (60 days)60 days after the client's last visit.
Lapsed (90 days)90 days after the client's last visit.
DeletedA client is deleted.

Birthday and the Lapsed triggers skip blocked clients. Lapsed also skips clients with an upcoming appointment. See Send birthday messages and Win back clients who stopped coming.

Session Request

A session request is a client asking to sign in to your booking site.

TriggerWhen it fires
CreatedA client asks for a sign-in code.
Code GeneratedThe sign-in code is ready to send. The code is available as {{ $event.data.object.code }} and is valid for 15 minutes.
UpdatedA session request changes.
DeletedA session request is deleted.

Clients get their sign-in code through a workflow with the Code Generated trigger. New salons get one automatically. If you turn it off or delete it, clients can't receive codes to sign in to your booking site.

Invoice

TriggerWhen it fires
CreatedA new invoice is created.
UpdatedAnything on an invoice changes.
OpenThe invoice status becomes Open, or an invoice is created as open.
PaidThe invoice status becomes Paid.
OverdueAn open invoice passes its due date. Softalon checks for this every hour.
DeletedAn invoice is deleted.

Location, Service and Member

Each has Created, Updated and Deleted. They fire when a location, service or team member is added, changed or deleted.

Conversation and Message

Conversation has Created, Updated and Deleted, for conversations in your inbox. Message has Created, Updated and Deleted, for single messages in those conversations.

Product and Review

The list also shows Product and Review triggers. At the moment they don't start workflows, so don't rely on them.

Other

TriggerWhen it fires
WebhookAnother system sends a POST request to the workflow's webhook URL.
ManualYou click Run in the workflow's menu.

These two don't come from an event in your salon, so event variables aren't available. See Start a workflow from a webhook or manually.

What the trigger gives you

The record behind the event is available as variables. For an appointment trigger, that's the appointment with its client, team member, service and location. For updates, the previous values of the fields that changed are available too. See Use variables in workflows.

Common questions

Use Appointment › Confirmed. It fires both for bookings that are confirmed right away and for requests you approve later.