# Zoho CRM Blueprint — Revised Implementation Guide

---

## 🔴 Issue 1: "Start Calling" Button Not Showing on New Leads

### Why This Is Happening

The Blueprint only activates for a lead when its `RE Lead Status` field **matches the entry state**. If a new lead is created and `RE Lead Status` is **blank or has a different value**, the lead **never enters the Blueprint** — so no transition buttons appear.

### Diagnostic Checklist

Check these 3 things in order:

#### Check A: Does the Blueprint target the correct layout?

1. Go to `Setup → Process Management → Blueprint`
2. Open your Leads Blueprint
3. At the top, confirm it says:
   - **Layout**: `OP RE Leads Layout` ✓
   - **Field**: `RE Lead Status` ✓
4. If it's pointing to a different layout, your leads won't enter the Blueprint

#### Check B: Is "New Lead" the default value for `RE Lead Status`?

This is **most likely the problem**. When a new lead is created, `RE Lead Status` must automatically be set to "New Lead".

1. Go to `Setup → Customization → Modules and Fields → Leads`
2. Open the `OP RE Leads Layout`
3. Find the field `RE Lead Status` → click the **gear icon** (⚙️) → **Edit Properties**
4. Set **Default Value** = `New Lead`
5. Save

> [!IMPORTANT]
> Without this default value, every new lead is created with a blank `RE Lead Status`, which means the Blueprint never kicks in.

#### Check C: What about existing leads already in the system?

Leads created **before** the Blueprint was published (or before the default value was set) will have a blank `RE Lead Status`. They won't enter the Blueprint automatically.

**Fix for existing leads:**

1. Go to `Leads` module → create a **List View** filtering `RE Lead Status is empty`
2. Select all those leads → **Mass Update** → set `RE Lead Status` = `New Lead`
3. After the update, those leads will enter the Blueprint and the "Start Calling" button will appear

---

## 🔴 Issue 2: Transitions Only Appear After Editing Fields Below

### Why This Is Happening

This is the **same root cause** as Issue 1. Here's what's happening step-by-step:

```
1. You open a lead → RE Lead Status is blank → Blueprint is NOT active → no buttons
2. You edit some fields and save → this triggers something (maybe a workflow) that sets RE Lead Status
3. Page reloads → Blueprint is now active → transition buttons appear
```

### The Fix

Once you apply **Check B from Issue 1** (set default value for `RE Lead Status` = `New Lead`), this issue will also be resolved. New leads will immediately enter the Blueprint, and buttons will show from the first time you open the record.

**Additionally, verify:**

1. Go to `Setup → Process Management → Blueprint` → open your Blueprint
2. Check that the **entry state** (the very first state in the flow) is `New Lead`
3. Make sure the Blueprint is **Published** (not in Draft mode)
4. Click **Re-publish** after any changes

> [!TIP]
> After making these changes, create a **test lead** to confirm the "Start Calling" button shows immediately on record open.

---

## 🔴 Issue 3: Data Enrichment Needs to Store Data for Future Actions

### What You Have Now

Transition 7 ("Mark Invalid / Enrich") just sets a flag field `Need Data Enrichment` via a field update. It doesn't capture or store any actual enrichment data.

### What You Need

A proper **Data Enrichment section** on the layout with fields to store corrected/enriched information that your team can act on later.

### Step 3a: Create New Fields

Go to `Setup → Customization → Modules and Fields → Leads → OP RE Leads Layout`

Add these fields to a new section called **"Data Enrichment"**:

| Field Name          | Field Type      | Picklist Values (if applicable)                                           |
| ------------------- | --------------- | ------------------------------------------------------------------------- |
| `Enrichment Status` | Picklist        | `Pending`, `In Progress`, `Enriched`, `Not Salvageable`                   |
| `Enrichment Reason` | Picklist        | `Invalid Number`, `Not Interested`, `Wrong Contact`, `Duplicate`, `Other` |
| `Enriched Phone`    | Phone           | —                                                                         |
| `Enriched Email`    | Email           | —                                                                         |
| `Enrichment Notes`  | Multi-Line Text | —                                                                         |
| `Enrichment Date`   | Date            | —                                                                         |

### Step 3b: Update Transition 7 ("Mark Invalid / Enrich")

Open Blueprint editor → click on **"Mark Invalid / Enrich"** transition:

**DURING TRANSITION** (currently empty — add these):

| Field               | Setting       |
| ------------------- | ------------- |
| `Enrichment Reason` | **Mandatory** |
| `Enrichment Notes`  | Optional      |

**AFTER TRANSITION** (update the existing field update):

| Field Update        | Value             |
| ------------------- | ----------------- |
| `Enrichment Status` | `Pending`         |
| `Enrichment Date`   | `${Current Date}` |

This way:

- When someone clicks "Mark Invalid / Enrich", they **must** specify why (Invalid Number, Not Interested, etc.)
- The system auto-stamps the date and sets status to "Pending"
- Your enrichment team can then filter leads by `Enrichment Status = Pending`, fill in `Enriched Phone` / `Enriched Email`, and update status to `Enriched`

### Step 3c: Create a Custom View for Enrichment Team

Go to `Leads → Create New View`:

- **Name**: "Leads Pending Enrichment"
- **Filter**: `Enrichment Status` = `Pending`
- **Columns**: Lead Name, Phone, Email, Enrichment Reason, Enrichment Notes, Enrichment Date

This gives your team a ready-made queue to work through.

### Step 3d: (Optional) Auto-Route Enriched Leads Back Into the Pipeline

Create a workflow rule:

- **Trigger**: Field Update → `Enrichment Status` changes to `Enriched`
- **Action**: Field Update → set `RE Lead Status` = `New Lead`

This puts the lead back into the pipeline for another calling attempt with the corrected data.

---

## Remaining 4 Fixes (Unchanged)

### Fix 4: Lock Lead Owner for Non-Admins

**Where**: `Setup → Security Control → Profiles → (non-admin profile) → Leads → Field Permissions`

- Set `Lead Owner` → **Read Only** for all non-admin profiles

### Fix 6: Admin Notification for Follow-Up Timing

**Where**: `Setup → Automation → Workflow Rules → + Create Rule`

**No-code approach (2 rules):**

**Rule A — Late Follow-Up:**
| Setting | Value |
|---------|-------|
| Module | Leads |
| Rule Name | `Late Follow-Up Alert` |
| Trigger | Field Update → `RE Lead Status` |
| Condition | `RE Lead Status = Attempted Contact` AND `Follow-Up Date < ${Current Date}` |
| Action | Email Alert to Admin |

**Rule B — Early Follow-Up:**
| Setting | Value |
|---------|-------|
| Module | Leads |
| Rule Name | `Early Follow-Up Alert` |
| Trigger | Field Update → `RE Lead Status` |
| Condition | `RE Lead Status = Attempted Contact` AND `Follow-Up Date > ${Current Date}` |
| Action | Email Alert to Admin |

---

## 🔴 Issue 5: Not Connected — Auto Follow-Up Date

### What You Want

When SE marks a call as "Not Connected", the system should:
1. Capture the **reason** (Switched Off, Not Answered, Not Reachable, etc.)
2. **Auto-set follow-up date to 2 days later** for these reasons
3. If the lead needs enrichment → route to Enrichment state
4. If not → route directly to Follow-Up state

### Solution: Two Transitions from "Attempted Contact" State

Instead of one "Not Connected" transition, create **two separate transitions** from the same state — this is a native Blueprint feature (multiple transitions from one state):

**Transition A: "Not Connected — Schedule Follow-Up"**

| Config | Setting |
|--------|---------|
| **From State** | `Attempted Contact` |
| **To State** | `Follow-Up 1` |

**DURING Transition:**

| Field | Setting |
|-------|---------|
| `Not Connected Reason` *(new Picklist field)* | **Mandatory** — values: `Switched Off`, `Not Answered`, `Not Reachable`, `Busy`, `Wrong Number` |
| `Follow-Up Date` | **Optional** (SE can override if needed) |

**AFTER Transition — Field Updates:**

| Field Update | Value |
|-------------|-------|
| `Follow-Up Date` | `${EXECUTION_DAY}` plus `2` days |
| `Follow-Up Mode` | `Call` |

> **How it works:** The After Transition field update sets the follow-up date to 2 days from today. If the SE filled in a custom date During the transition, the After update will overwrite it. If you want SE's manual date to take priority, remove `Follow-Up Date` from the After section and instead use a **Workflow Rule** (see below).

**Alternative — Let SE Override the Auto Date:**

If you want the auto-date to apply ONLY when SE doesn't enter one manually:

1. Keep `Follow-Up Date` as **Optional** in the DURING section
2. Remove it from the AFTER field updates
3. Create a **Workflow Rule**:

| Setting | Value |
|---------|-------|
| Module | Leads |
| Rule Name | `Auto Follow-Up Date for Not Connected` |
| Trigger | Field Update → `RE Lead Status` changes to `Follow-Up 1` |
| Condition | `Follow-Up Date` is empty AND `Not Connected Reason` is not empty |
| Action | Field Update → `Follow-Up Date` = `${Current Date}` + 2 days |

**Transition B: "Not Connected — Needs Enrichment"**

| Config | Setting |
|--------|---------|
| **From State** | `Attempted Contact` |
| **To State** | `Data Enrichment` |

**DURING Transition:**

| Field | Setting |
|-------|---------|
| `Not Connected Reason` | **Mandatory** |
| `Enrichment Reason` | **Mandatory** |

**AFTER Transition — Field Updates:**

| Field Update | Value |
|-------------|-------|
| `Enrichment Status` | `Pending` |
| `Enrichment Date` | `${EXECUTION_DAY}` |

### New Field to Create

| Field Name | Field Type | Picklist Values |
|-----------|-----------|----------------|
| `Not Connected Reason` | Picklist | `Switched Off`, `Not Answered`, `Not Reachable`, `Busy`, `Wrong Number` |

Add this to `Setup → Customization → Modules and Fields → Leads → OP RE Leads Layout`

---

## 🔴 Issue 6: Mark Connected — Conditional Relevance Flow

### What You Want

When SE marks a lead as "Connected":
- If the lead **is relevant** → proceed to qualify
- If the lead **is not relevant** → show reasons (Wrong Number, Looking at Other Location, Not Interested in RE, etc.) → then either go to Enrichment or Disqualified

### Solution: Two Transitions from "Connected" State

**Transition A: "Mark Relevant" (Connected → Qualified)**

| Config | Setting |
|--------|---------|
| **From State** | `Connected` (or `Attempted Contact` — wherever your "Mark Connected" lands) |
| **To State** | `Qualified` |

**DURING Transition:**

| Field | Setting |
|-------|---------|
| `Property Type` | **Mandatory** |
| `Location` | **Mandatory** |
| `Budget Range` | Optional |
| `Timeline` | Optional |

*(No `Not Relevant Reason` field shown — since the lead IS relevant, this avoids contradiction)*

**Transition B: "Mark Not Relevant" (Connected → Not Relevant)**

| Config | Setting |
|--------|---------|
| **From State** | `Connected` |
| **To State** | `Not Relevant` |

**DURING Transition:**

| Field | Setting |
|-------|---------|
| `Not Relevant Reason` *(new Picklist field)* | **Mandatory** — values: `Wrong Number`, `Looking at Other Location`, `Not Interested in Real Estate`, `Already Purchased`, `Budget Mismatch`, `Other` |
| `Enrichment Notes` | Optional |

Then from the `Not Relevant` state, create **two more transitions**:

**Transition B1: "Needs Enrichment" (Not Relevant → Data Enrichment)**

| Config | Setting |
|--------|---------|
| **From State** | `Not Relevant` |
| **To State** | `Data Enrichment` |

**AFTER Transition:**

| Field Update | Value |
|-------------|-------|
| `Enrichment Status` | `Pending` |
| `Enrichment Date` | `${EXECUTION_DAY}` |

**Transition B2: "Disqualify" (Not Relevant → Disqualified)**

| Config | Setting |
|--------|---------|
| **From State** | `Not Relevant` |
| **To State** | `Disqualified` |

**AFTER Transition:**

| Field Update | Value |
|-------------|-------|
| `Disqualified Date` | `${EXECUTION_DAY}` |

### New Fields to Create

| Field Name | Field Type | Picklist Values |
|-----------|-----------|----------------|
| `Not Relevant Reason` | Picklist | `Wrong Number`, `Looking at Other Location`, `Not Interested in Real Estate`, `Already Purchased`, `Budget Mismatch`, `Other` |
| `Disqualified Date` | Date | — |

### New Blueprint State to Create

| State Name | Purpose |
|-----------|---------|
| `Not Relevant` | Holding state for leads marked not relevant — SE/admin decides enrichment or disqualify |

---

## ✅ Issue 7: Qualifying — Collateral Sharing Automation (DONE)

> Blueprint collects the data, Workflow Rules handle the intelligence.

### Phase 1: New Fields Created

| # | Field | Type | Notes |
|---|-------|------|-------|
| 1 | `Collateral Shared` | Checkbox | — |
| 2 | `Collateral Not Shared Reason` | Picklist | `Client Requested Later`, `Need Approval`, `Materials Not Ready`, `Other` |
| 3 | `Collateral Share Date` | Date | — |
| 4 | `Follow-Up Mode` | Picklist | `Call`, `Email`, `WhatsApp`, `Meeting` |
| 5 | `Collaterals Sent On` | Date | Set to **Read-Only** on layout so SEs can't fake the date |

### Phase 2: Blueprint Transition Updated

**"Mark Qualified" transition** (Connected → Qualified):

- **DURING:** `Property Type`, `Location`, `Collateral Shared` = **Mandatory**. All other fields = Optional.
- **AFTER:** Left **blank** — no field updates here (Workflow handles it instead).

### Phase 3: Workflow Rules Created

**Rule A — `Auto-Fill Collateral Sent Date`:**
- Trigger: Field Update of `Collateral Shared`
- Condition: `Collateral Shared` = Selected (True)
- Action: Field Update → `Collaterals Sent On` = `${Execution_Time}`

**Rule B — `Create Follow-Up Activity on Qualify`:**
- Trigger: Field Update of `RE Lead Status`
- Condition: `RE Lead Status` = `Qualified` AND `Collateral Shared` = Selected
- Action: Create Task → Subject: `Follow-Up Call — ${Lead Name}`, Due: `${Execution_Time}` + 1 Day, Priority: High

### Why This Works

| Feature | Benefit |
|---------|---------|
| **"No" Scenario** | If SE selects No → Workflow doesn't trigger → `Collaterals Sent On` stays empty |
| **Accountability** | Date is auto-filled by system + field is Read-Only → SE can't fake it |
| **Task Loop** | Auto-task ensures qualified leads don't sit idle — SE gets notified next day |
| **Team Training** | "If Collateral Shared = No, fill in the Why and When fields below it" |

---


## 🔴 Issue 8: Follow-Up Flow — Configuring Your Existing Transitions

### Your Current Blueprint (from screenshot)

```
Follow-Up 1 ──→ MarkInterested ──→ Interested ──→ ScheduleSiteVisit ──→ Site Visit Scheduled
             ──→ MovetoFollowUp2 ──→ Follow-Up 2 ──→ MovetoFollowUp3 ──→ Follow-Up 3
```

**What's missing:** You only have 2 transitions from Follow-Up 1. You need 4 (what happens when not connected? what happens when not interested?).

---

### Step 1: Add 2 Missing Transitions to Follow-Up 1

You need to **add these transitions** in the Blueprint editor:

**New Transition: "NotConnected" (Follow-Up 1 → Follow-Up 2)**

| Config | Value |
|--------|-------|
| **From** | `Follow-Up 1` |
| **To** | `Follow-Up 2` |

**New Transition: "LostDeal" (Follow-Up 1 → Closed Lost)**

| Config | Value |
|--------|-------|
| **From** | `Follow-Up 1` |
| **To** | `Closed Lost` |

> After adding these, your Follow-Up 1 state will have **4 buttons**: MarkInterested, MovetoFollowUp2, NotConnected, LostDeal.

---

### Step 2: Configure DURING & AFTER for All 4 Transitions

#### Transition 1: `MarkInterested` (Follow-Up 1 → Interested)

**DURING:**

| Field | Setting |
|-------|---------|
| `Follow-Up Notes` | **Mandatory** |

**AFTER:** Leave blank — no field updates needed.

> The SE then uses `ScheduleSiteVisit` from the Interested state to move forward (that's your next transition in the chain).

---

#### Transition 2: `MovetoFollowUp2` (Follow-Up 1 → Follow-Up 2)

> Use this when connected but customer wants to reschedule.

**DURING:**

| Field | Setting |
|-------|---------|
| `Follow-Up Notes` | **Mandatory** |
| `Follow-Up Date` | **Mandatory** — SE enters the date the customer gave |
| `Follow-Up Mode` | **Mandatory** |

**AFTER:** Leave blank — SE already entered the date manually.

---

#### Transition 3: `NotConnected` (Follow-Up 1 → Follow-Up 2) ← NEW

> Use this when the call didn't connect. Auto-schedules follow-up.

**DURING:**

| Field | Setting |
|-------|---------|
| `Not Connected Reason` | **Mandatory** |

**AFTER — Field Updates:**

| Field Update | Value |
|-------------|-------|
| `Follow-Up Date` | `${EXECUTION_DAY}` plus `1` day |
| `Follow-Up Mode` | `Call` |

---

#### Transition 4: `LostDeal` (Follow-Up 1 → Closed Lost) ← NEW

> Use this when connected but customer says not interested.

**DURING:**

| Field | Setting |
|-------|---------|
| `Lost Reason` | **Mandatory** |
| `Follow-Up Notes` | Optional |

**AFTER:** Leave blank.

---

### Step 3: Repeat for Follow-Up 2 and Follow-Up 3

Add the **same 2 missing transitions** to Follow-Up 2 and Follow-Up 3:

**Follow-Up 2 — add these transitions:**

| Transition Name | From | To | DURING | AFTER |
|----------------|------|-----|--------|-------|
| `MarkInterested` | Follow-Up 2 | Interested | `Follow-Up Notes` = Mandatory | — |
| `NotConnected` | Follow-Up 2 | Follow-Up 3 | `Not Connected Reason` = Mandatory | `Follow-Up Date` = +1 day, `Follow-Up Mode` = Call |
| `LostDeal` | Follow-Up 2 | Closed Lost | `Lost Reason` = Mandatory | — |

> You already have `MovetoFollowUp3` — configure it same as `MovetoFollowUp2`: `Follow-Up Notes` + `Follow-Up Date` + `Follow-Up Mode` all Mandatory, AFTER blank.

**Follow-Up 3 — add these transitions:**

| Transition Name | From | To | DURING | AFTER |
|----------------|------|-----|--------|-------|
| `MarkInterested` | Follow-Up 3 | Interested | `Follow-Up Notes` = Mandatory | — |
| `NotConnected` | Follow-Up 3 | Closed Lost | `Not Connected Reason` = Mandatory | — |
| `LostDeal` | Follow-Up 3 | Closed Lost | `Lost Reason` = Mandatory | — |

> Follow-Up 3 is the final stage — "Not Connected" from here goes to Closed Lost (no more follow-ups).

---

### Step 4: Configure `ScheduleSiteVisit` (Interested → Site Visit Scheduled)

**DURING:**

| Field | Setting |
|-------|---------|
| `Site Visit Date` | **Mandatory** |
| `Follow-Up Notes` | Optional |

**AFTER — Field Updates:**

| Field Update | Value |
|-------------|-------|
| *(none needed — SE entered the date)* | |

---

### Step 5: Workflow Rules for Auto-Tasks & Notifications

**Rule 1: Create Follow-Up Activity on Stage Move**

| Setting | Value |
|---------|-------|
| Module | Leads |
| Rule Name | `Auto-Create Follow-Up Task` |
| Trigger | Field Update → `RE Lead Status` |
| Condition | `RE Lead Status` is `Follow-Up 1` OR `Follow-Up 2` OR `Follow-Up 3` |
| Action | Create Task |

**Task Details:**

| Field | Value |
|-------|-------|
| Subject | `Follow-Up — ${Lead Name}` |
| Due Date | `Follow-Up Date` |
| Priority | High |
| Assigned To | `${Lead Owner}` |

> Create the task template first at `Setup → Automation → Actions → Tasks → + Create Task`

**Rule 2: Notify SE + Admin on Follow-Up Move**

| Setting | Value |
|---------|-------|
| Module | Leads |
| Rule Name | `Follow-Up Stage Notification` |
| Trigger | Field Update → `RE Lead Status` |
| Condition | `RE Lead Status` is `Follow-Up 1` OR `Follow-Up 2` OR `Follow-Up 3` |
| Action 1 | Email Notification → `${Lead Owner}` (SE) |
| Action 2 | Email Notification → Admin |

**Rule 3: Auto-Move Qualified → Follow-Up 1 on Date**

| Setting | Value |
|---------|-------|
| Module | Leads |
| Rule Name | `Auto-Move Qualified to Follow-Up 1` |
| Trigger | Field Update → `RE Lead Status` changes to `Qualified` |
| Condition | `Follow-Up Date` is not empty |
| **Scheduled Action** | Execute on `Follow-Up Date` |
| Action 1 | Field Update → `RE Lead Status` = `Follow-Up 1` |
| Action 2 | Email to `${Lead Owner}` — "Your lead moved to Follow-Up 1" |

---

### Step 6: New Fields Needed

| Field | Type | Add if missing |
|-------|------|---------------|
| `Follow-Up Notes` | Multi-Line Text | ✅ Create |
| `Lost Reason` | Picklist (`Not Looking Now`, `Not Interested`, `Bought Elsewhere`, `Budget Issue`, `Other`) | ✅ Create |
| `Site Visit Date` | Date/Time | ✅ Create |
| `Not Connected Reason` | Picklist | Already created in Issue 5 |
| `Follow-Up Date` | Date | Should already exist |
| `Follow-Up Mode` | Picklist | Already created in Issue 7 |

---

### Summary: What Your Blueprint Should Look Like After

```
Follow-Up 1 ──→ MarkInterested ──→ Interested ──→ ScheduleSiteVisit ──→ Site Visit Scheduled
             ──→ MovetoFollowUp2 (reschedule)  ──→ Follow-Up 2
             ──→ NotConnected (auto +1 day)    ──→ Follow-Up 2
             ──→ LostDeal                       ──→ Closed Lost

Follow-Up 2 ──→ MarkInterested ──→ Interested
             ──→ MovetoFollowUp3 (reschedule)  ──→ Follow-Up 3
             ──→ NotConnected (auto +1 day)    ──→ Follow-Up 3
             ──→ LostDeal                       ──→ Closed Lost

Follow-Up 3 ──→ MarkInterested ──→ Interested
             ──→ NotConnected                   ──→ Closed Lost
             ──→ LostDeal                       ──→ Closed Lost
```

---

## Updated Checklist

| #   | Task                                                | Time  | Priority                         |
| --- | --------------------------------------------------- | ----- | -------------------------------- |
| 1   | Set `RE Lead Status` default value to "New Lead"    | 1 min | 🔴 Critical — fixes Issues 1 & 2 |
| 2   | Mass-update existing blank leads to "New Lead"      | 2 min | 🔴 Critical                      |
| 3   | Re-publish the Blueprint                            | 1 min | 🔴 Critical                      |
| 4   | Create Data Enrichment section + fields in layout   | 5 min | 🟡 High                          |
| 5   | Update Transition 7 DURING to capture reason        | 2 min | 🟡 High                          |
| 6   | Lock Lead Owner in non-admin profiles               | 2 min | 🟡 High                          |
| 7   | Change Collateral fields to read-only in Follow-Ups | 5 min | 🟡 High                          |
| 8   | Create Admin notification workflow rules            | 5 min | 🟠 Medium                        |
| 9   | Create "Leads Pending Enrichment" view              | 2 min | 🟢 Nice to have                  |
| 10  | Auto-route enriched leads back to pipeline          | 3 min | 🟢 Nice to have                  |

**Total: ~30 minutes**

---

> [!CAUTION]
> **Do items 1–3 first.** They are the root cause of the "no buttons showing" problem. Everything else is secondary.
