# Renew a subscription (before it becomes a surprise)

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0iebew0040jw06unuiyu6a
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 19 steps across 2 layers
- Persona: Customer success, The customer, Account manager, Billing
- Technology / systems: CRM

## Pain points

Where this process hurts, worst first:

- **Run a save plan** (Renew a subscription (before it becomes a surprise); critical): By the time a save plan starts, the customer has already decided

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## Renew a subscription (before it becomes a surprise)

Lanes:
- Customer success: person / role (id `csm`)
- The customer: person / role (id `cust`)
- Account manager: person / role (id `ae`)
- Billing: person / role (id `fin`)
- CRM: technology / system (id `crm`)

Steps, in the order they run:

1. **120 days before renewal: the renewal opportunity is created** [start; CRM; id `r1`]
   - then Review usage, support tickets and goals
2. **Review usage, support tickets and goals** [task; Customer success; id `r2`]
   - then Is the customer healthy?
3. **Is the customer healthy?** [decision; Customer success; id `r3`]
   - if "Yes" go to Send the renewal quote with a value summary; if "No" go to Run a save plan
4. **Send the renewal quote with a value summary** [task; Account manager; id `r4`]
   - then Renews?
5. **Renews?** [decision; The customer; id `r6`]
   - if "Yes" go to Invoice and record the renewal; if "Needs changes" go to Adjust seats or term and re-quote; if "No — cancels" go to Exit interview: learn why
6. **Invoice and record the renewal** [task; Billing; id `r7`]
   - then Thank the customer and set next year's goals
7. **Thank the customer and set next year's goals** [end; Customer success; id `r9`]
8. **Adjust seats or term and re-quote** [task; Account manager; id `r8`]
   - then Renews?
9. **Exit interview: learn why** [task; Customer success; id `r10`]
   - then Mark as churned with a reason
10. **Mark as churned with a reason** [end; CRM; id `r11`]
11. **Run a save plan** [subprocess; Customer success; id `r5`] ⚠ PAIN POINT (critical): By the time a save plan starts, the customer has already decided, opens the detail layer "The save plan"
   - then Give it 30 days to work
12. **Give it 30 days to work** [task; Customer success; id `r5b`]
   - then Is the customer healthy?

```mermaid
flowchart LR
  subgraph l_csm["Customer success"]
    n_r2["Review usage, support tickets and goals"]
    n_r3{"Is the customer healthy?"}
    n_r5[["Run a save plan"]]
    n_r5b["Give it 30 days to work"]
    n_r9(["Thank the customer and set next year's goals"])
    n_r10["Exit interview: learn why"]
  end
  subgraph l_cust["The customer"]
    n_r6{"Renews?"}
  end
  subgraph l_ae["Account manager"]
    n_r4["Send the renewal quote with a value summary"]
    n_r8["Adjust seats or term and re-quote"]
  end
  subgraph l_fin["Billing"]
    n_r7["Invoice and record the renewal"]
  end
  subgraph l_crm["CRM"]
    n_r1(["120 days before renewal: the renewal opportunity is created"])
    n_r11(["Mark as churned with a reason"])
  end
  n_r1 --> n_r2
  n_r2 --> n_r3
  n_r3 -->|"Yes"| n_r4
  n_r3 -->|"No"| n_r5
  n_r5 --> n_r5b
  n_r5b --> n_r3
  n_r4 --> n_r6
  n_r6 -->|"Yes"| n_r7
  n_r6 -->|"Needs changes"| n_r8
  n_r6 -->|"No — cancels"| n_r10
  n_r8 --> n_r6
  n_r7 --> n_r9
  n_r10 --> n_r11
```

### The save plan (detail of step "Run a save plan")

Lanes:
- Customer success: person / role (id `csm`)
- Account manager: person / role (id `ae`)

Steps, in the order they run:

1. **Call the customer's champion** [start; Customer success; id `s1`]
   - then Find the gap: product, people or price
2. **Find the gap: product, people or price** [task; Customer success; id `s2`]
   - then Which one?
3. **Which one?** [decision; Customer success; id `s3`]
   - if "Product" go to Log the missing feature and offer a workaround; if "People" go to Retrain the team or find a new champion; if "Price" go to Offer a multi-year discount for commitment
4. **Log the missing feature and offer a workaround** [task; Customer success; id `s4`]
   - then Agree a 30-day plan
5. **Agree a 30-day plan** [end; Customer success; id `s7`]
6. **Retrain the team or find a new champion** [task; Customer success; id `s5`]
   - then Agree a 30-day plan
7. **Offer a multi-year discount for commitment** [task; Account manager; id `s6`]
   - then Agree a 30-day plan

```mermaid
flowchart LR
  subgraph l_csm["Customer success"]
    n_s1(["Call the customer's champion"])
    n_s2["Find the gap: product, people or price"]
    n_s3{"Which one?"}
    n_s4["Log the missing feature and offer a workaround"]
    n_s5["Retrain the team or find a new champion"]
    n_s7(["Agree a 30-day plan"])
  end
  subgraph l_ae["Account manager"]
    n_s6["Offer a multi-year discount for commitment"]
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 -->|"Product"| n_s4
  n_s3 -->|"People"| n_s5
  n_s3 -->|"Price"| n_s6
  n_s4 --> n_s7
  n_s5 --> n_s7
  n_s6 --> n_s7
```

## Full data (JSON)

```json
{
  "title": "Renew a subscription (before it becomes a surprise)",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "csm",
          "name": "Customer success",
          "type": "person"
        },
        {
          "id": "cust",
          "name": "The customer",
          "type": "person"
        },
        {
          "id": "ae",
          "name": "Account manager",
          "type": "person"
        },
        {
          "id": "fin",
          "name": "Billing",
          "type": "person"
        },
        {
          "id": "crm",
          "name": "CRM",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "r1",
          "kind": "start",
          "lane": "crm",
          "next": [
            {
              "to": "r2"
            }
          ],
          "uses": [],
          "label": "120 days before renewal: the renewal opportunity is created"
        },
        {
          "id": "r2",
          "kind": "task",
          "lane": "csm",
          "next": [
            {
              "to": "r3"
            }
          ],
          "uses": [],
          "label": "Review usage, support tickets and goals"
        },
        {
          "id": "r3",
          "kind": "decision",
          "lane": "csm",
          "next": [
            {
              "to": "r4",
              "label": "Yes"
            },
            {
              "to": "r5",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the customer healthy?"
        },
        {
          "id": "r5",
          "kind": "subprocess",
          "lane": "csm",
          "next": [
            {
              "to": "r5b"
            }
          ],
          "pain": {
            "note": "By the time a save plan starts, the customer has already decided",
            "level": 3
          },
          "uses": [],
          "child": "m_save",
          "label": "Run a save plan"
        },
        {
          "id": "r5b",
          "kind": "task",
          "lane": "csm",
          "next": [
            {
              "to": "r3"
            }
          ],
          "uses": [],
          "label": "Give it 30 days to work"
        },
        {
          "id": "r4",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "r6"
            }
          ],
          "uses": [],
          "label": "Send the renewal quote with a value summary"
        },
        {
          "id": "r6",
          "kind": "decision",
          "lane": "cust",
          "next": [
            {
              "to": "r7",
              "label": "Yes"
            },
            {
              "to": "r8",
              "label": "Needs changes"
            },
            {
              "to": "r10",
              "label": "No — cancels"
            }
          ],
          "uses": [],
          "label": "Renews?"
        },
        {
          "id": "r8",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "r6"
            }
          ],
          "uses": [],
          "label": "Adjust seats or term and re-quote"
        },
        {
          "id": "r7",
          "kind": "task",
          "lane": "fin",
          "next": [
            {
              "to": "r9"
            }
          ],
          "uses": [],
          "label": "Invoice and record the renewal"
        },
        {
          "id": "r9",
          "kind": "end",
          "lane": "csm",
          "next": [],
          "uses": [],
          "label": "Thank the customer and set next year's goals"
        },
        {
          "id": "r10",
          "kind": "task",
          "lane": "csm",
          "next": [
            {
              "to": "r11"
            }
          ],
          "uses": [],
          "label": "Exit interview: learn why"
        },
        {
          "id": "r11",
          "kind": "end",
          "lane": "crm",
          "next": [],
          "uses": [],
          "label": "Mark as churned with a reason"
        }
      ],
      "title": "Renew a subscription (before it becomes a surprise)",
      "parent": null
    },
    "m_save": {
      "id": "m_save",
      "lanes": [
        {
          "id": "csm",
          "name": "Customer success",
          "type": "person"
        },
        {
          "id": "ae",
          "name": "Account manager",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "csm",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "Call the customer's champion"
        },
        {
          "id": "s2",
          "kind": "task",
          "lane": "csm",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Find the gap: product, people or price"
        },
        {
          "id": "s3",
          "kind": "decision",
          "lane": "csm",
          "next": [
            {
              "to": "s4",
              "label": "Product"
            },
            {
              "to": "s5",
              "label": "People"
            },
            {
              "to": "s6",
              "label": "Price"
            }
          ],
          "uses": [],
          "label": "Which one?"
        },
        {
          "id": "s4",
          "kind": "task",
          "lane": "csm",
          "next": [
            {
              "to": "s7"
            }
          ],
          "uses": [],
          "label": "Log the missing feature and offer a workaround"
        },
        {
          "id": "s5",
          "kind": "task",
          "lane": "csm",
          "next": [
            {
              "to": "s7"
            }
          ],
          "uses": [],
          "label": "Retrain the team or find a new champion"
        },
        {
          "id": "s6",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "s7"
            }
          ],
          "uses": [],
          "label": "Offer a multi-year discount for commitment"
        },
        {
          "id": "s7",
          "kind": "end",
          "lane": "csm",
          "next": [],
          "uses": [],
          "label": "Agree a 30-day plan"
        }
      ],
      "title": "The save plan",
      "parent": {
        "map": "m_root",
        "step": "r5"
      }
    }
  }
}
```
