FlowsEditorTriggers

Returning User

Fire a flow when a contact comes back after a period of inactivity

The Returning User trigger fires when a contact sends a message after an inactivity gap larger than a threshold you set. It's how you build win-back messages, "welcome back" flows, or re-ask pending questions without re-triggering the whole onboarding.

Returning User trigger setup

Configuration

A single field — inactivity threshold in days.

Returning User rule editor
FieldValueDefault
Inactivity (days)Integer — how long the contact must have been silent before they count as "returning"7
Review the Returning User trigger

How It Works

Every incoming message carries a lastMessageReceivedAt timestamp from the contact's previous message. When Returning User evaluates, the engine computes:

gap = now - lastMessageReceivedAt

If gap > threshold, the trigger matches and fires. If it's a brand-new contact, Returning User does not fire — use First Visit for that path.

First Visit vs Returning User

They look similar but solve opposite problems.

QuestionFirst VisitReturning User
When does it fire?Only on the very first message a contact ever sendsEvery time a contact comes back after being quiet for X days
How many times can it fire per contact?OnceAs many times as the contact goes quiet and comes back
ConfigurationNoneInactivity threshold (days)

Rules and Caveats

  • Reactive — the user just sent a message, so the 24-hour messaging window is open on every channel.
  • Integer days only. Minute-level or hour-level inactivity is not supported in this trigger — use a Scheduled Trigger with a RELATIVE offset if you need sub-day granularity.
  • Compounds with other triggers. Combine Returning User with a Message Received rule (via AND) to run a flow only when a returning user says something specific — for example "came back after 30 days AND said hi".

Common Use Cases

  • Win-back campaign — greet users who've been away ≥30 days with a discount or new-feature summary
  • Re-engagement nudge — at 7 days, ask "still need help with…" for unresolved conversations
  • Recap message — summarise what was discussed last time before asking the next question
  • Operator handoff — if a premium customer has been inactive 14 days, route their next message to a live account manager

Returning User always fires with the user's new message — so the flow you attach here can reference the content of that new message via variables just like any reactive flow.

On this page