Triggers
What can start a journey.
Every journey has exactly one trigger — the thing that enrolls a contact and starts their run.
| Trigger | Runs when |
|---|---|
| A tag is added | One of the tags you choose is applied to a contact, from anywhere — including an import or the API |
| A contact is added | Any new contact is created in this workspace |
| A field changes | The field you choose is updated to a new value |
| A button is tapped | A contact taps a quick-reply button on a WhatsApp template you sent — one branch per button |
| A message matches a keyword | An inbound message contains, exactly matches, or starts with one of your keywords |
| Another system calls us | A tool you use (a form, a spreadsheet, anything that can send a web request) posts to this journey's own address |
| A Shopify order is placed | Your connected Shopify store gets a new order — configurable to fire on placed, paid, or delivered, optionally narrowed to Cash on Delivery orders or specific products |
| A Shopify cart is abandoned | Someone starts checking out on your connected Shopify store and doesn't finish |
| Started manually | Nobody is auto-enrolled — you add contacts yourself |
See Shopify for the two Shopify-specific triggers in detail, including the variables and the "Check cart status" step built for them.
Backfill existing contacts
When you publish a trigger-based journey, SalesByte asks whether to also enroll existing contacts who already match the trigger — so you're not limited to only new activity going forward.
Re-entry
A contact already active in a journey isn't enrolled again by the same trigger until their current run finishes. This keeps someone from getting two overlapping copies of the same flow.
Building two separate journeys on the same trigger (for example, two different Shopify-order journeys) can still both enroll the same contact — re-entry only prevents duplicates within one journey.