# Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv4vosiv000mjp06ymsi6k06
> 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

- 43 steps across 4 layers
- Persona: Marketing, SDR or sales development, Account executive, Sales operations and deal desk, Legal, Finance and billing, The customer
- Technology / systems: Salesforce Sales Cloud, Salesforce CPQ, Contract tool or e-signature, ERP and billing system

## Pain points

Where this process hurts, worst first:

- **Follow up fast: call, email and log every activity** (Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash; critical): Leads that wait more than a day rarely convert
- **Log the buyer's needs, the competition and next steps on the Opportunity** (Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash; painful): Notes and next steps live in email, so forecasts are guesses
- **Approval chain: manager, deal desk, finance** (Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash; painful): Approvals stall deals when nobody owns the queue
- **Create the Order from the signed quote** (Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash; painful): Re-keying the order into another system causes errors

## 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`.

## Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash

Lanes:
- Marketing: person / role (id `mkt`)
- SDR or sales development: person / role (id `sdr`)
- Account executive: person / role (id `ae`)
- Sales operations and deal desk: person / role (id `ops`)
- Legal: person / role (id `legal`)
- Finance and billing: person / role (id `fin`)
- The customer: person / role (id `cust`)
- Salesforce Sales Cloud: technology / system (id `sf`)
- Salesforce CPQ: technology / system (id `cpq`)
- Contract tool or e-signature: technology / system (id `clm`)
- ERP and billing system: technology / system (id `erp`)

Steps, in the order they run:

1. **A lead is created from a web form, event list or campaign** [subprocess; Marketing; id `l1`], using Salesforce Sales Cloud, opens the detail layer "Lead capture and routing"
   - then Lead assignment rules route it to the right owner and score it
2. **Lead assignment rules route it to the right owner and score it** [task; Salesforce Sales Cloud; id `l2`]
   - then Follow up fast: call, email and log every activity
3. **Follow up fast: call, email and log every activity** [task; SDR or sales development; id `l3`] ⚠ PAIN POINT (critical): Leads that wait more than a day rarely convert, using Salesforce Sales Cloud
   - then Is the lead qualified?
4. **Is the lead qualified?** [decision; SDR or sales development; id `l4`]
   - if "Yes" go to Convert the lead: it becomes an Account, a Contact and an Opportunity; if "No" go to Nurture or disqualify with a reason
5. **Convert the lead: it becomes an Account, a Contact and an Opportunity** [subprocess; SDR or sales development; id `l5`], using Salesforce Sales Cloud, links to the published process "Qualify a lead: is this worth a real conversation?" (https://forks.world/p/cmv0ie5w5002cjw06h8wl4kzq; full text at https://forks.world/api/public/cmv0ie5w5002cjw06h8wl4kzq/export)
   - then Work the Opportunity through its stages: qualify, discover, propose, negotiate
6. **Work the Opportunity through its stages: qualify, discover, propose, negotiate** [subprocess; Account executive; id `l6`], using Salesforce Sales Cloud, opens the detail layer "The Opportunity stages and what must be true to move on"
   - then Log the buyer's needs, the competition and next steps on the Opportunity
7. **Log the buyer's needs, the competition and next steps on the Opportunity** [task; Account executive; id `l7`] ⚠ PAIN POINT (painful): Notes and next steps live in email, so forecasts are guesses, using Salesforce Sales Cloud
   - then Build the quote with products, quantities and a price
8. **Build the quote with products, quantities and a price** [subprocess; Account executive; id `l8`], using Salesforce CPQ, links to the published process "Create a quote customers actually say yes to" (https://forks.world/p/cmv0ie6sn002mjw06hu8ksavl; full text at https://forks.world/api/public/cmv0ie6sn002mjw06hu8ksavl/export)
   - then Does the quote break a discount or terms rule?
9. **Does the quote break a discount or terms rule?** [decision; Salesforce CPQ; id `l9`]
   - if "Yes" go to Approval chain: manager, deal desk, finance; if "No" go to Reviews the quote and negotiates
10. **Approval chain: manager, deal desk, finance** [subprocess; Sales operations and deal desk; id `l10`] ⚠ PAIN POINT (painful): Approvals stall deals when nobody owns the queue, using Salesforce CPQ, opens the detail layer "Quote approval rules"
   - then Reviews the quote and negotiates
11. **Reviews the quote and negotiates** [task; The customer; id `l11`]
   - then Do they accept?
12. **Do they accept?** [decision; Account executive; id `l12`], using Salesforce Sales Cloud
   - if "Yes" go to Generate the contract from the quote and redline it; if "No" go to Build the quote with products, quantities and a price
13. **Generate the contract from the quote and redline it** [subprocess; Legal; id `l13`], using Contract tool or e-signature, links to the published process "Contract and e-signature" (https://forks.world/p/cmv0ie7p5002wjw0684q04gs1; full text at https://forks.world/api/public/cmv0ie7p5002wjw0684q04gs1/export)
   - then Signs the contract
14. **Signs the contract** [task; The customer; id `l14`], using Contract tool or e-signature
   - then Mark the Opportunity Closed Won and record the contract
15. **Mark the Opportunity Closed Won and record the contract** [task; Account executive; id `l15`], using Salesforce Sales Cloud
   - then Create the Order from the signed quote
16. **Create the Order from the signed quote** [task; Sales operations and deal desk; id `l16`] ⚠ PAIN POINT (painful): Re-keying the order into another system causes errors, using Salesforce Sales Cloud
   - then Sync the order to the ERP and billing system
17. **Sync the order to the ERP and billing system** [task; ERP and billing system; id `l17`]
   - then Issue the invoice on the agreed schedule
18. **Issue the invoice on the agreed schedule** [subprocess; Finance and billing; id `l18`], using ERP and billing system, links to the published process "Invoice the customer: get paid without the drama" (https://forks.world/p/cmv0ie8nd0036jw06z0tkx45t; full text at https://forks.world/api/public/cmv0ie8nd0036jw06z0tkx45t/export)
   - then Pays the invoice
19. **Pays the invoice** [task; The customer; id `l19`]
   - then Is the payment on time?
20. **Is the payment on time?** [decision; Finance and billing; id `l20`], using ERP and billing system
   - if "Yes" go to Apply the cash and close the loop in Salesforce; if "No" go to Collections: remind, call and escalate
21. **Apply the cash and close the loop in Salesforce** [task; Finance and billing; id `l21`], using ERP and billing system
   - then Plan the renewal or the expansion before the term ends
22. **Plan the renewal or the expansion before the term ends** [subprocess; Account executive; id `l22`], using Salesforce Sales Cloud, links to the published process "Renew a subscription (before it becomes a surprise)" (https://forks.world/p/cmv0iebew0040jw06unuiyu6a; full text at https://forks.world/api/public/cmv0iebew0040jw06unuiyu6a/export)
   - then A lead is created from a web form, event list or campaign
23. **Collections: remind, call and escalate** [subprocess; Finance and billing; id `l20a`], links to the published process "Collect payment: from late to paid" (https://forks.world/p/cmv0ie93x003bjw06cukcnjmj; full text at https://forks.world/api/public/cmv0ie93x003bjw06cukcnjmj/export)
   - then Apply the cash and close the loop in Salesforce
24. **Nurture or disqualify with a reason** [task; SDR or sales development; id `l4a`], using Salesforce Sales Cloud
   - then A lead is created from a web form, event list or campaign

```mermaid
flowchart LR
  subgraph l_mkt["Marketing"]
    n_l1[["A lead is created from a web form, event list or campaign"]]
  end
  subgraph l_sdr["SDR or sales development"]
    n_l3["Follow up fast: call, email and log every activity"]
    n_l4{"Is the lead qualified?"}
    n_l4a["Nurture or disqualify with a reason"]
    n_l5[["Convert the lead: it becomes an Account, a Contact and an Opportunity"]]
  end
  subgraph l_ae["Account executive"]
    n_l6[["Work the Opportunity through its stages: qualify, discover, propose, negotiate"]]
    n_l7["Log the buyer's needs, the competition and next steps on the Opportunity"]
    n_l8[["Build the quote with products, quantities and a price"]]
    n_l12{"Do they accept?"}
    n_l15["Mark the Opportunity Closed Won and record the contract"]
    n_l22[["Plan the renewal or the expansion before the term ends"]]
  end
  subgraph l_ops["Sales operations and deal desk"]
    n_l10[["Approval chain: manager, deal desk, finance"]]
    n_l16["Create the Order from the signed quote"]
  end
  subgraph l_legal["Legal"]
    n_l13[["Generate the contract from the quote and redline it"]]
  end
  subgraph l_fin["Finance and billing"]
    n_l18[["Issue the invoice on the agreed schedule"]]
    n_l20{"Is the payment on time?"}
    n_l20a[["Collections: remind, call and escalate"]]
    n_l21["Apply the cash and close the loop in Salesforce"]
  end
  subgraph l_cust["The customer"]
    n_l11["Reviews the quote and negotiates"]
    n_l14["Signs the contract"]
    n_l19["Pays the invoice"]
  end
  subgraph l_sf["Salesforce Sales Cloud"]
    n_l2["Lead assignment rules route it to the right owner and score it"]
  end
  subgraph l_cpq["Salesforce CPQ"]
    n_l9{"Does the quote break a discount or terms rule?"}
  end
  subgraph l_erp["ERP and billing system"]
    n_l17["Sync the order to the ERP and billing system"]
  end
  n_l1 --> n_l2
  n_l2 --> n_l3
  n_l3 --> n_l4
  n_l4 -->|"Yes"| n_l5
  n_l4 -->|"No"| n_l4a
  n_l4a --> n_l1
  n_l5 --> n_l6
  n_l6 --> n_l7
  n_l7 --> n_l8
  n_l8 --> n_l9
  n_l9 -->|"Yes"| n_l10
  n_l9 -->|"No"| n_l11
  n_l10 --> n_l11
  n_l11 --> n_l12
  n_l12 -->|"Yes"| n_l13
  n_l12 -->|"No"| n_l8
  n_l13 --> n_l14
  n_l14 --> n_l15
  n_l15 --> n_l16
  n_l16 --> n_l17
  n_l17 --> n_l18
  n_l18 --> n_l19
  n_l19 --> n_l20
  n_l20 -->|"Yes"| n_l21
  n_l20 -->|"No"| n_l20a
  n_l20a --> n_l21
  n_l21 --> n_l22
  n_l22 --> n_l1
```

### Lead capture and routing (detail of step "A lead is created from a web form, event list or campaign")

Lanes:
- Marketing: person / role (id `mkt`)
- SDR or sales development: person / role (id `sdr`)
- Salesforce Sales Cloud: technology / system (id `sf`)

Steps, in the order they run:

1. **Web form or campaign member is added** [start; Marketing; id `a1`]
   - then Check for duplicates by email and company
2. **Check for duplicates by email and company** [task; Salesforce Sales Cloud; id `a2`]
   - then Is it a duplicate?
3. **Is it a duplicate?** [decision; Salesforce Sales Cloud; id `a3`]
   - if "Yes" go to Merge it into the existing record; if "No" go to Create the Lead and fill the source and campaign
4. **Merge it into the existing record** [end; Salesforce Sales Cloud; id `a4`]
5. **Create the Lead and fill the source and campaign** [task; Salesforce Sales Cloud; id `a5`]
   - then Assign by territory, size or round robin
6. **Assign by territory, size or round robin** [task; Salesforce Sales Cloud; id `a6`]
   - then The owner gets a task and a notification
7. **The owner gets a task and a notification** [end; SDR or sales development; id `a7`]

```mermaid
flowchart LR
  subgraph l_mkt["Marketing"]
    n_a1(["Web form or campaign member is added"])
  end
  subgraph l_sdr["SDR or sales development"]
    n_a7(["The owner gets a task and a notification"])
  end
  subgraph l_sf["Salesforce Sales Cloud"]
    n_a2["Check for duplicates by email and company"]
    n_a3{"Is it a duplicate?"}
    n_a4(["Merge it into the existing record"])
    n_a5["Create the Lead and fill the source and campaign"]
    n_a6["Assign by territory, size or round robin"]
  end
  n_a1 --> n_a2
  n_a2 --> n_a3
  n_a3 -->|"Yes"| n_a4
  n_a3 -->|"No"| n_a5
  n_a5 --> n_a6
  n_a6 --> n_a7
```

### The Opportunity stages and what must be true to move on (detail of step "Work the Opportunity through its stages: qualify, discover, propose, negotiate")

Lanes:
- Account executive: person / role (id `ae`)
- Salesforce Sales Cloud: technology / system (id `sf`)
- The customer: person / role (id `cust`)

Steps, in the order they run:

1. **Prospecting: there is a named buyer and a reason to talk** [start; Account executive; id `s1`]
   - then Qualification: budget, authority, need and timing are confirmed
2. **Qualification: budget, authority, need and timing are confirmed** [task; Account executive; id `s2`]
   - then Discovery: the problem and the success criteria are written down
3. **Discovery: the problem and the success criteria are written down** [task; Account executive; id `s3`]
   - then Proposal: a quote and a plan are shared
4. **Proposal: a quote and a plan are shared** [task; Account executive; id `s4`]
   - then Negotiation: terms, price and legal
5. **Negotiation: terms, price and legal** [task; The customer; id `s5`]
   - then Closed Won or Closed Lost, with a reason
6. **Closed Won or Closed Lost, with a reason** [end; Account executive; id `s6`]

```mermaid
flowchart LR
  subgraph l_ae["Account executive"]
    n_s1(["Prospecting: there is a named buyer and a reason to talk"])
    n_s2["Qualification: budget, authority, need and timing are confirmed"]
    n_s3["Discovery: the problem and the success criteria are written down"]
    n_s4["Proposal: a quote and a plan are shared"]
    n_s6(["Closed Won or Closed Lost, with a reason"])
  end
  subgraph l_cust["The customer"]
    n_s5["Negotiation: terms, price and legal"]
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 --> n_s4
  n_s4 --> n_s5
  n_s5 --> n_s6
```

### Quote approval rules (detail of step "Approval chain: manager, deal desk, finance")

Lanes:
- Sales operations and deal desk: person / role (id `ops`)
- Salesforce CPQ: technology / system (id `cpq`)
- Finance and billing: person / role (id `fin`)

Steps, in the order they run:

1. **The discount or terms are outside the rules** [start; Salesforce CPQ; id `q1`]
   - then Is the discount within the manager's limit?
2. **Is the discount within the manager's limit?** [decision; Sales operations and deal desk; id `q2`]
   - if "Yes" go to The manager approves; if "No" go to Deal desk and finance review the margin
3. **The manager approves** [task; Sales operations and deal desk; id `q3`]
   - then The quote is unlocked for the customer
4. **The quote is unlocked for the customer** [end; Salesforce CPQ; id `q6`]
5. **Deal desk and finance review the margin** [task; Finance and billing; id `q4`]
   - then Approve, counter or reject
6. **Approve, counter or reject** [task; Finance and billing; id `q5`]
   - then The quote is unlocked for the customer

```mermaid
flowchart LR
  subgraph l_ops["Sales operations and deal desk"]
    n_q2{"Is the discount within the manager's limit?"}
    n_q3["The manager approves"]
  end
  subgraph l_cpq["Salesforce CPQ"]
    n_q1(["The discount or terms are outside the rules"])
    n_q6(["The quote is unlocked for the customer"])
  end
  subgraph l_fin["Finance and billing"]
    n_q4["Deal desk and finance review the margin"]
    n_q5["Approve, counter or reject"]
  end
  n_q1 --> n_q2
  n_q2 -->|"Yes"| n_q3
  n_q2 -->|"No"| n_q4
  n_q3 --> n_q6
  n_q4 --> n_q5
  n_q5 --> n_q6
```

## Full data (JSON)

```json
{
  "title": "Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash",
  "maps": {
    "m_lead": {
      "id": "m_lead",
      "lanes": [
        {
          "id": "mkt",
          "name": "Marketing",
          "type": "person"
        },
        {
          "id": "sdr",
          "name": "SDR or sales development",
          "type": "person"
        },
        {
          "id": "sf",
          "name": "Salesforce Sales Cloud",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "a1",
          "kind": "start",
          "lane": "mkt",
          "next": [
            {
              "to": "a2"
            }
          ],
          "uses": [],
          "label": "Web form or campaign member is added"
        },
        {
          "id": "a2",
          "kind": "task",
          "lane": "sf",
          "next": [
            {
              "to": "a3"
            }
          ],
          "uses": [],
          "label": "Check for duplicates by email and company"
        },
        {
          "id": "a3",
          "kind": "decision",
          "lane": "sf",
          "next": [
            {
              "to": "a4",
              "label": "Yes"
            },
            {
              "to": "a5",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is it a duplicate?"
        },
        {
          "id": "a4",
          "kind": "end",
          "lane": "sf",
          "next": [],
          "uses": [],
          "label": "Merge it into the existing record"
        },
        {
          "id": "a5",
          "kind": "task",
          "lane": "sf",
          "next": [
            {
              "to": "a6"
            }
          ],
          "uses": [],
          "label": "Create the Lead and fill the source and campaign"
        },
        {
          "id": "a6",
          "kind": "task",
          "lane": "sf",
          "next": [
            {
              "to": "a7"
            }
          ],
          "uses": [],
          "label": "Assign by territory, size or round robin"
        },
        {
          "id": "a7",
          "kind": "end",
          "lane": "sdr",
          "next": [],
          "uses": [],
          "label": "The owner gets a task and a notification"
        }
      ],
      "title": "Lead capture and routing",
      "parent": {
        "map": "m_root",
        "step": "l1"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "mkt",
          "name": "Marketing",
          "type": "person"
        },
        {
          "id": "sdr",
          "name": "SDR or sales development",
          "type": "person"
        },
        {
          "id": "ae",
          "name": "Account executive",
          "type": "person"
        },
        {
          "id": "ops",
          "name": "Sales operations and deal desk",
          "type": "person"
        },
        {
          "id": "legal",
          "name": "Legal",
          "type": "person"
        },
        {
          "id": "fin",
          "name": "Finance and billing",
          "type": "person"
        },
        {
          "id": "cust",
          "name": "The customer",
          "type": "person"
        },
        {
          "id": "sf",
          "name": "Salesforce Sales Cloud",
          "type": "system"
        },
        {
          "id": "cpq",
          "name": "Salesforce CPQ",
          "type": "system"
        },
        {
          "id": "clm",
          "name": "Contract tool or e-signature",
          "type": "system"
        },
        {
          "id": "erp",
          "name": "ERP and billing system",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "l1",
          "kind": "subprocess",
          "lane": "mkt",
          "next": [
            {
              "to": "l2"
            }
          ],
          "uses": [
            "sf"
          ],
          "child": "m_lead",
          "label": "A lead is created from a web form, event list or campaign"
        },
        {
          "id": "l2",
          "kind": "task",
          "lane": "sf",
          "next": [
            {
              "to": "l3"
            }
          ],
          "uses": [],
          "label": "Lead assignment rules route it to the right owner and score it"
        },
        {
          "id": "l3",
          "kind": "task",
          "lane": "sdr",
          "next": [
            {
              "to": "l4"
            }
          ],
          "pain": {
            "note": "Leads that wait more than a day rarely convert",
            "level": 3
          },
          "uses": [
            "sf"
          ],
          "label": "Follow up fast: call, email and log every activity"
        },
        {
          "id": "l4",
          "kind": "decision",
          "lane": "sdr",
          "next": [
            {
              "to": "l5",
              "label": "Yes"
            },
            {
              "to": "l4a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the lead qualified?"
        },
        {
          "id": "l4a",
          "kind": "task",
          "lane": "sdr",
          "next": [
            {
              "to": "l1"
            }
          ],
          "uses": [
            "sf"
          ],
          "label": "Nurture or disqualify with a reason"
        },
        {
          "id": "l5",
          "kind": "subprocess",
          "lane": "sdr",
          "link": {
            "id": "cmv0ie5w5002cjw06h8wl4kzq",
            "scope": "public",
            "title": "Qualify a lead: is this worth a real conversation?"
          },
          "next": [
            {
              "to": "l6"
            }
          ],
          "uses": [
            "sf"
          ],
          "label": "Convert the lead: it becomes an Account, a Contact and an Opportunity"
        },
        {
          "id": "l6",
          "kind": "subprocess",
          "lane": "ae",
          "next": [
            {
              "to": "l7"
            }
          ],
          "uses": [
            "sf"
          ],
          "child": "m_stages",
          "label": "Work the Opportunity through its stages: qualify, discover, propose, negotiate"
        },
        {
          "id": "l7",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "l8"
            }
          ],
          "pain": {
            "note": "Notes and next steps live in email, so forecasts are guesses",
            "level": 2
          },
          "uses": [
            "sf"
          ],
          "label": "Log the buyer's needs, the competition and next steps on the Opportunity"
        },
        {
          "id": "l8",
          "kind": "subprocess",
          "lane": "ae",
          "link": {
            "id": "cmv0ie6sn002mjw06hu8ksavl",
            "scope": "public",
            "title": "Create a quote customers actually say yes to"
          },
          "next": [
            {
              "to": "l9"
            }
          ],
          "uses": [
            "cpq"
          ],
          "label": "Build the quote with products, quantities and a price"
        },
        {
          "id": "l9",
          "kind": "decision",
          "lane": "cpq",
          "next": [
            {
              "to": "l10",
              "label": "Yes"
            },
            {
              "to": "l11",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Does the quote break a discount or terms rule?"
        },
        {
          "id": "l10",
          "kind": "subprocess",
          "lane": "ops",
          "next": [
            {
              "to": "l11"
            }
          ],
          "pain": {
            "note": "Approvals stall deals when nobody owns the queue",
            "level": 2
          },
          "uses": [
            "cpq"
          ],
          "child": "m_approval",
          "label": "Approval chain: manager, deal desk, finance"
        },
        {
          "id": "l11",
          "kind": "task",
          "lane": "cust",
          "next": [
            {
              "to": "l12"
            }
          ],
          "uses": [],
          "label": "Reviews the quote and negotiates"
        },
        {
          "id": "l12",
          "kind": "decision",
          "lane": "ae",
          "next": [
            {
              "to": "l13",
              "label": "Yes"
            },
            {
              "to": "l8",
              "label": "No"
            }
          ],
          "uses": [
            "sf"
          ],
          "label": "Do they accept?"
        },
        {
          "id": "l13",
          "kind": "subprocess",
          "lane": "legal",
          "link": {
            "id": "cmv0ie7p5002wjw0684q04gs1",
            "scope": "public",
            "title": "Contract and e-signature"
          },
          "next": [
            {
              "to": "l14"
            }
          ],
          "uses": [
            "clm"
          ],
          "label": "Generate the contract from the quote and redline it"
        },
        {
          "id": "l14",
          "kind": "task",
          "lane": "cust",
          "next": [
            {
              "to": "l15"
            }
          ],
          "uses": [
            "clm"
          ],
          "label": "Signs the contract"
        },
        {
          "id": "l15",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "l16"
            }
          ],
          "uses": [
            "sf"
          ],
          "label": "Mark the Opportunity Closed Won and record the contract"
        },
        {
          "id": "l16",
          "kind": "task",
          "lane": "ops",
          "next": [
            {
              "to": "l17"
            }
          ],
          "pain": {
            "note": "Re-keying the order into another system causes errors",
            "level": 2
          },
          "uses": [
            "sf"
          ],
          "label": "Create the Order from the signed quote"
        },
        {
          "id": "l17",
          "kind": "task",
          "lane": "erp",
          "next": [
            {
              "to": "l18"
            }
          ],
          "uses": [],
          "label": "Sync the order to the ERP and billing system"
        },
        {
          "id": "l18",
          "kind": "subprocess",
          "lane": "fin",
          "link": {
            "id": "cmv0ie8nd0036jw06z0tkx45t",
            "scope": "public",
            "title": "Invoice the customer: get paid without the drama"
          },
          "next": [
            {
              "to": "l19"
            }
          ],
          "uses": [
            "erp"
          ],
          "label": "Issue the invoice on the agreed schedule"
        },
        {
          "id": "l19",
          "kind": "task",
          "lane": "cust",
          "next": [
            {
              "to": "l20"
            }
          ],
          "uses": [],
          "label": "Pays the invoice"
        },
        {
          "id": "l20",
          "kind": "decision",
          "lane": "fin",
          "next": [
            {
              "to": "l21",
              "label": "Yes"
            },
            {
              "to": "l20a",
              "label": "No"
            }
          ],
          "uses": [
            "erp"
          ],
          "label": "Is the payment on time?"
        },
        {
          "id": "l20a",
          "kind": "subprocess",
          "lane": "fin",
          "link": {
            "id": "cmv0ie93x003bjw06cukcnjmj",
            "scope": "public",
            "title": "Collect payment: from late to paid"
          },
          "next": [
            {
              "to": "l21"
            }
          ],
          "uses": [],
          "label": "Collections: remind, call and escalate"
        },
        {
          "id": "l21",
          "kind": "task",
          "lane": "fin",
          "next": [
            {
              "to": "l22"
            }
          ],
          "uses": [
            "erp"
          ],
          "label": "Apply the cash and close the loop in Salesforce"
        },
        {
          "id": "l22",
          "kind": "subprocess",
          "lane": "ae",
          "link": {
            "id": "cmv0iebew0040jw06unuiyu6a",
            "scope": "public",
            "title": "Renew a subscription (before it becomes a surprise)"
          },
          "next": [
            {
              "to": "l1"
            }
          ],
          "uses": [
            "sf"
          ],
          "label": "Plan the renewal or the expansion before the term ends"
        }
      ],
      "title": "Manage Lead-to-Cash in Salesforce: Lead, Opportunity, Quote, Contract and on to cash",
      "parent": null
    },
    "m_stages": {
      "id": "m_stages",
      "lanes": [
        {
          "id": "ae",
          "name": "Account executive",
          "type": "person"
        },
        {
          "id": "sf",
          "name": "Salesforce Sales Cloud",
          "type": "system"
        },
        {
          "id": "cust",
          "name": "The customer",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "ae",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "Prospecting: there is a named buyer and a reason to talk"
        },
        {
          "id": "s2",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Qualification: budget, authority, need and timing are confirmed"
        },
        {
          "id": "s3",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "s4"
            }
          ],
          "uses": [],
          "label": "Discovery: the problem and the success criteria are written down"
        },
        {
          "id": "s4",
          "kind": "task",
          "lane": "ae",
          "next": [
            {
              "to": "s5"
            }
          ],
          "uses": [],
          "label": "Proposal: a quote and a plan are shared"
        },
        {
          "id": "s5",
          "kind": "task",
          "lane": "cust",
          "next": [
            {
              "to": "s6"
            }
          ],
          "uses": [],
          "label": "Negotiation: terms, price and legal"
        },
        {
          "id": "s6",
          "kind": "end",
          "lane": "ae",
          "next": [],
          "uses": [],
          "label": "Closed Won or Closed Lost, with a reason"
        }
      ],
      "title": "The Opportunity stages and what must be true to move on",
      "parent": {
        "map": "m_root",
        "step": "l6"
      }
    },
    "m_approval": {
      "id": "m_approval",
      "lanes": [
        {
          "id": "ops",
          "name": "Sales operations and deal desk",
          "type": "person"
        },
        {
          "id": "cpq",
          "name": "Salesforce CPQ",
          "type": "system"
        },
        {
          "id": "fin",
          "name": "Finance and billing",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "q1",
          "kind": "start",
          "lane": "cpq",
          "next": [
            {
              "to": "q2"
            }
          ],
          "uses": [],
          "label": "The discount or terms are outside the rules"
        },
        {
          "id": "q2",
          "kind": "decision",
          "lane": "ops",
          "next": [
            {
              "to": "q3",
              "label": "Yes"
            },
            {
              "to": "q4",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the discount within the manager's limit?"
        },
        {
          "id": "q3",
          "kind": "task",
          "lane": "ops",
          "next": [
            {
              "to": "q6"
            }
          ],
          "uses": [],
          "label": "The manager approves"
        },
        {
          "id": "q4",
          "kind": "task",
          "lane": "fin",
          "next": [
            {
              "to": "q5"
            }
          ],
          "uses": [],
          "label": "Deal desk and finance review the margin"
        },
        {
          "id": "q5",
          "kind": "task",
          "lane": "fin",
          "next": [
            {
              "to": "q6"
            }
          ],
          "uses": [],
          "label": "Approve, counter or reject"
        },
        {
          "id": "q6",
          "kind": "end",
          "lane": "cpq",
          "next": [],
          "uses": [],
          "label": "The quote is unlocked for the customer"
        }
      ],
      "title": "Quote approval rules",
      "parent": {
        "map": "m_root",
        "step": "l10"
      }
    }
  }
}
```
