Skip to main content

Journeys

Journeys are automated multi-step workflows that run for individual members when a trigger event occurs. Each journey executes a sequence of steps — sending emails, granting points, waiting, or adding members to a segment — without any manual work after setup.


How Journeys Work

Trigger event fires (e.g. customer abandons cart) → Member enrolled in journey → Steps execute in order with optional waits between them → Journey completes.

Glancito checks triggers every 15 minutes and advances enrolled members every 5 minutes.


Journeys List

Journeys List

Each journey card shows its trigger type, how many members are currently enrolled, and total enrollments. Use Activate / Pause to control whether the journey is running.


Creating a Journey

Journey Builder

  1. Go to Journeys in the sidebar (under Marketing)
  2. Click New Journey
  3. Set a name and select a trigger — trigger-specific config fields appear immediately below the dropdown
  4. Add and arrange steps using the + Add Step button
  5. Save — the journey starts in Paused state
  6. Toggle it Active from the journey list or detail page to begin enrolling members

Triggers

The trigger defines which event starts the journey for a member.

Journey Trigger Select

TriggerWhen it fires
Member JoinedA new member is created (Shopify sync, embed form, import)
Abandoned CartA member adds items to their Shopify cart but does not complete checkout within 1 hour
First PurchaseA member places their very first order
Order PlacedAny order is placed by a member
BirthdayToday matches the member's saved birthday (day + month)
Tier UpgradeA member's tier changes upward
Tier DowngradeA member's tier changes downward
Churn Risk ChangeA member's churn risk label changes to a target value (configurable)
Segment EntryA member newly joins a specific segment (only members added after the last trigger run)
Segment BlastEnroll all current members of a segment at once — useful for one-time campaigns
Referral CompleteA referral is completed (enrolls both referrer and referee)
Points Expiry WarningA member's points are approaching expiry
Reward RedeemedA member redeems any reward (or a specific reward, configurable)
Points ThresholdA member's balance reaches a configured threshold
Inactive DaysA member has had no activity for N+ days
Email Not OpenedA member did not open a specific campaign after N days

Step Types

Steps are the actions Glancito takes for each enrolled member.

Journey Step Builder

Wait

Pauses the journey for a specified duration before moving to the next step.

FieldDescription
ValueA number
UnitMinutes, Hours, or Days

Example: Set value to 1 and unit to Days to wait exactly 24 hours before the next step.

Send Email

Sends a personalised email to the member.

FieldDescription
SubjectEmail subject line (or leave blank to inherit from the selected template)
BodyEmail body — supports {{first_name}} and {{points_balance}} tokens
TemplateSelect a saved email template to use its design and HTML

Members who have unsubscribed or not consented to email marketing are automatically skipped.

Grant Points

Awards loyalty points to the member's account.

FieldDescription
PointsNumber of points to award
DescriptionLabel that appears in the member's transaction history

Add to Segment

Adds the member to a specific segment (useful for follow-up campaigns or targeting).

FieldDescription
Segment IDPaste the UUID from the Segments page

Abandoned Cart

The abandoned cart trigger lets you automatically re-engage Shopify customers who added items to their cart but did not complete checkout.

How It Works

Customer opens Shopify checkout
→ Shopify fires checkouts/create webhook → Glancito records checkout as "open"

Customer updates the cart (adds/removes items)
→ Shopify fires checkouts/update webhook → Glancito updates the checkout record

15 minutes pass (Glancito background check runs)
→ Any "open" checkout not updated in 1+ hour → promoted to "abandoned"
→ Member enrolled in the Abandoned Cart journey

Customer completes purchase later
→ Shopify fires orders/paid webhook → checkout marked "recovered"
→ No further journey steps execute for recovered members

Checkout States

StateMeaning
openCheckout created or recently updated; payment not yet complete
abandonedNo activity for 1+ hour and no matching order; member enrolled in journey
recoveredA paid order matched the checkout token; customer converted

Member Matching

Glancito links a checkout to a loyalty member using:

  1. Shopify Customer ID — matched to the member's external_id field (preferred)
  2. Email address — fallback if the customer is not logged in

Guests who have not joined the loyalty program are tracked but not enrolled in journeys until they become members.

Example Abandoned Cart Journey

A typical 3-step recovery sequence:

Trigger: Abandoned Cart

├─ Step 1: Wait — 1 hour

├─ Step 2: Send Email
│ Subject: "You left something behind"
│ Body: "Hi {{first_name}}, your cart is waiting.
│ Complete your purchase to earn points."

└─ Step 3: Grant Points — 50 points
Description: "Cart recovery reward"

Tip: Keep the first wait step at 1 hour or more. Checkouts younger than 1 hour are still open and not yet enrolled.

Shopify Plan Note

checkouts/create and checkouts/update webhooks are available on all Shopify plans. No additional configuration is required after installing the Glancito app.


Journey Enrollment Rules

  • A member is only enrolled in a given journey once at a time — if they are already active in that journey, a second trigger event is ignored.
  • After a journey completes or is cancelled, the same member can be re-enrolled if the trigger fires again.
  • Journeys respect email marketing consent and unsubscribe status at the time each email step executes.

Skip Platform-Added Members

When creating a journey you can check "Skip members added via CSV import or dashboard". When enabled:

  • Members imported from another platform (Klaviyo, Omnisend, CSV) are excluded.
  • Members added manually through the Glancito dashboard are excluded.
  • Members who signed up organically (Shopify store, embed form, merchant API) are still enrolled as normal.

This is useful for welcome journeys — you don't want bulk-imported historical contacts receiving a "Welcome to our loyalty program!" email.


Analytics

Open a journey from the Journeys list to see:

MetricDescription
Total enrolledMembers who have entered this journey (all time)
ActiveCurrently progressing through steps
CompletedFinished all steps
CancelledManually removed or journey deactivated
ErroredStep execution failed; check member profile for details

Common Questions

Q: Can I have more than one Abandoned Cart journey active at the same time?

A: Yes, but a member can only be enrolled in each journey once at a time. If you have two active abandoned cart journeys, a member will be enrolled in both simultaneously.

Q: What if a customer abandons their cart multiple times?

A: Each abandonment after completing or exiting a previous enrollment creates a new enrollment. If the member is already active in the journey, the duplicate is ignored.

Q: My journey isn't enrolling anyone. What do I check?

  1. Make sure the journey is set to Active (toggle on the detail page)
  2. Confirm the trigger event is actually occurring (e.g., members are abandoning carts, not checking out immediately)
  3. For Abandoned Cart: the 1-hour window applies — checkouts less than 1 hour old won't trigger enrollment yet
  4. Check that the member record has a linked Shopify customer ID or email that matches the checkout

Q: Can I stop a journey midway for a specific member?

A: Cancel the enrollment from the member's profile page. The member's current step will not execute and they won't progress further.


Discount Codes in Journeys

Add discount_offer_id to a Send email step config to attach a Discount Offer. Glancito resolves the code per member at step execution time and injects it into the email as {{ discount_code }}.

{
"subject": "Here's your exclusive welcome offer",
"discount_offer_id": "<offer-uuid>",
"email_tag": "signup_welcome",
"suppress_if_tag": "signup_welcome"
}
  • email_tag — stamped on the member after the email sends; allows later steps to know this was sent
  • suppress_if_tag — skip this step entirely if the member already has this tag (prevents duplicates when a form welcome email was already sent)

See Discount Codes for the full deduplication guide.