Workflow Help Guide

Workflow Admin (Phase 1)
Index

Quick Idea (Super Simple)

Think of this system like a GPS for your leads. A lead is always sitting in one Stage. When something happens (Event), the system checks the Rules and moves the lead to the next Stage.

The engine’s question is always:
“Given this lead’s Stage + Scenario, and this Event just happened, what Rule should apply?”

How It Visually Flows

Stage
Where the lead is now
Event
Something happens
Rule
Instruction: where to go next
New Stage
Lead moves here
Scenario sits in the background and decides which Rule wins if multiple rules match.

Important: Leads move between Stages. Events just happen. Rules decide the movement.

What You Should Do First (Daily Use)

  1. Go to Workflow Admin → Coverage Dashboard (main page).
  2. If you see anything in RED (missing wiring), click the Create rule / Add inbound rule links.
  3. Keep the system “fully wired” so nothing goes to NULL or gets stuck.

Tip: The dashboard is like a “smoke alarm.” It tells you what’s broken before you feel it.

Understanding Each Section (Plain English)

Stages

Events

Rules

Scenarios

Most Important Mental Model

A lead does not “move through events.” A lead moves through Stages. Events just happen along the way, and Rules decide how to react.

Step-by-Step Example: Add a New Scenario Playbook

Example new scenario: price_sensitive (These families need more reassurance on value, may take longer to decide, and may need extra follow-up.)

Step 1 — Create the Scenario

  1. Go to Scenarios
  2. Click Add / Edit Scenario
  3. Code: price_sensitive
  4. Label: Price Sensitive
  5. Save

Step 2 — Decide what should be different vs Standard

Pick 1–2 points in the journey where this scenario behaves differently. Example: after tour_completed, standard leads might go to application_sent quickly, but price_sensitive leads might go to follow_up first.

Step 3 — Add scenario-specific rules (this is the “magic”)

  1. Go to Rules
  2. Create a new rule:
  3. This rule will beat the global/default rule (because scenario-specific beats global).

Step 4 — Make sure the scenario is actually used

A scenario only changes behavior if leads have that scenario assigned. If a lead never gets assigned to price_sensitive, your scenario rules won’t run.

Today: scenario assignment might be manual or done by the system later (depending on your engine rules). Minimum viable approach: default most leads to standard, and manually set the scenario for special cases.

Step 5 — Validate with the Coverage Dashboard

Tour Lifecycle Example (How it “should” flow)

Here’s the typical sequence:

new
Lead created
needs_contact
Contact attempt started
contacted
Contact made
tour_scheduled
Tour booked
tour_checked_in
Arrived
tour_completed
Tour done
follow_up
“We’ll think about it”
application_sent
Application offered
application_received
App + docs received
enrolled
Terminal
This is a “Stage chain” (what the lead looks like over time). Events are the triggers that push the lead along this chain.
  1. Lead Created → Stage becomes new
  2. Contact Attempted → Stage becomes needs_contact
  3. Contact Made → Stage becomes contacted
  4. Tour Scheduled → Stage becomes tour_scheduled
  5. Tour Checked In → Stage becomes tour_checked_in (if you want this stage)
  6. Tour Completed → Stage becomes tour_completed
  7. Then either:
    • Application Sentapplication_sent
    • Application Receivedapplication_received
    • Enrolledenrolled (Terminal)
    • OR lead goes to follow_up if undecided
    • OR lost (Terminal)

Note: “We’ll think about it” is usually not an Event. It’s an outcome after the tour, and it typically means the lead should move into a follow-up Stage.

Common Mistakes (and how to fix them)

If something looks stuck, check the Coverage Dashboard on the main page.

Quick Recipes (Real-World Examples)

Recipe 1 — How to Create a “Tour Checked In” Stage Properly

Goal: When a family physically arrives for their tour, we want the system to reflect that they are now in a special stage: Tour Checked In.

Step 1 — Create the Stage
  1. Go to Stages
  2. Click Add / Edit Stage
  3. Code: tour_checked_in
  4. Label: Tour Checked In
  5. Sort Order: Put it between Tour Scheduled (40) and Tour Completed (50). Example: 45
  6. Terminal? No
  7. Active? Yes
  8. Save
Step 2 — Make Sure the Event Exists
Step 3 — Add the Rule That Moves the Lead There
  1. Go to Rules
  2. Create a new rule:
  3. Save
Step 4 — Make Sure They Can Move Forward

VERY IMPORTANT: The lead must also be able to leave this stage.

If you forget this step, the stage will show as “stuck” in the Coverage Dashboard.

Recipe 2 — How to Handle “2x Tour No-Show” Properly

Goal: If a lead no-shows twice, we want to treat them differently (maybe mark them Lost or move to a special follow-up stage).

Understanding the Logic

The event tour_no_show happens each time they miss a tour. We need:

Step 1 — Normal First No-Show Rule
  1. Go to Rules
  2. Create a rule:
  3. Save
Step 2 — Add Special Rule for 2nd No-Show

This rule should only trigger if tour_count ≥ 2.

  1. Create another rule
  2. Event: tour_no_show
  3. To Stage: lost (or high_risk_followup if you create one)
  4. Priority: 500 (higher than 100 so it wins)
  5. Conditions JSON:
[
  {"field":"tour_count","op":"gte","value":2}
]

Save the rule.

Why Priority Matters

If both rules match, the system picks the higher Priority. That’s why the 2nd no-show rule must have a higher number.

What Will Happen Now

Check Coverage Dashboard after adding this to ensure:
• tour_no_show is wired
• follow_up has inbound rules
• lost is Terminal