# Collect payment: from late to paid

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

- 18 steps across 2 layers
- Persona: Collections, Customer, Sales rep, Finance manager
- Technology / systems: ERP

## Pain points

Where this process hurts, worst first:

- **Sales rep escalates to the executive sponsor** (Collect payment: from late to paid; critical): By now the customer relationship is already strained
- **Call: ask what is blocking payment** (Collect payment: from late to paid; painful): Phone calls eat hours of the collections team every week

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

## Collect payment: from late to paid

Lanes:
- Collections: person / role (id `ar`)
- Customer: person / role (id `cust`)
- ERP: technology / system (id `erp`)
- Sales rep: person / role (id `rep`)
- Finance manager: person / role (id `mgr`)

Steps, in the order they run:

1. **The invoice reaches its due date** [start; ERP; id `c1`]
   - then Paid?
2. **Paid?** [decision; ERP; id `c2`]
   - if "Yes" go to Apply the payment and close the invoice; if "No" go to Friendly reminder 1 day past due
3. **Apply the payment and close the invoice** [end; Collections; id `c3`], using ERP
4. **Friendly reminder 1 day past due** [task; Collections; id `c4`]
   - then Pays?
5. **Pays?** [decision; Customer; id `c5`]
   - if "Yes" go to Apply the payment and close the invoice; if "No" go to Call: ask what is blocking payment
6. **Call: ask what is blocking payment** [task; Collections; id `c6`] ⚠ PAIN POINT (painful): Phone calls eat hours of the collections team every week
   - then Is there a real problem?
7. **Is there a real problem?** [decision; Customer; id `c7`]
   - if "Yes" go to Fix it: resend the invoice, correct the PO or agree a plan; if "No" go to Firm notice at 30 days past due
8. **Fix it: resend the invoice, correct the PO or agree a plan** [task; Collections; id `c8`]
   - then Pays?
9. **Firm notice at 30 days past due** [task; Collections; id `c9`]
   - then Pays?
10. **Pays?** [decision; Customer; id `c10`]
   - if "Yes" go to Apply the payment and close the invoice; if "No" go to Sales rep escalates to the executive sponsor
11. **Sales rep escalates to the executive sponsor** [task; Sales rep; id `c11`] ⚠ PAIN POINT (critical): By now the customer relationship is already strained
   - then Pays?
12. **Pays?** [decision; Customer; id `c12`]
   - if "Yes" go to Apply the payment and close the invoice; if "No" go to Pause service; agency or write-off?
13. **Pause service; agency or write-off?** [subprocess; Finance manager; id `c13`], opens the detail layer "Agency or write-off?"
   - (no next step recorded)

```mermaid
flowchart LR
  subgraph l_ar["Collections"]
    n_c3(["Apply the payment and close the invoice"])
    n_c4["Friendly reminder 1 day past due"]
    n_c6["Call: ask what is blocking payment"]
    n_c8["Fix it: resend the invoice, correct the PO or agree a plan"]
    n_c9["Firm notice at 30 days past due"]
  end
  subgraph l_cust["Customer"]
    n_c5{"Pays?"}
    n_c7{"Is there a real problem?"}
    n_c10{"Pays?"}
    n_c12{"Pays?"}
  end
  subgraph l_erp["ERP"]
    n_c1(["The invoice reaches its due date"])
    n_c2{"Paid?"}
  end
  subgraph l_rep["Sales rep"]
    n_c11["Sales rep escalates to the executive sponsor"]
  end
  subgraph l_mgr["Finance manager"]
    n_c13[["Pause service; agency or write-off?"]]
  end
  n_c1 --> n_c2
  n_c2 -->|"Yes"| n_c3
  n_c2 -->|"No"| n_c4
  n_c4 --> n_c5
  n_c5 -->|"Yes"| n_c3
  n_c5 -->|"No"| n_c6
  n_c6 --> n_c7
  n_c7 -->|"Yes"| n_c8
  n_c7 -->|"No"| n_c9
  n_c8 --> n_c5
  n_c9 --> n_c10
  n_c10 -->|"Yes"| n_c3
  n_c10 -->|"No"| n_c11
  n_c11 --> n_c12
  n_c12 -->|"Yes"| n_c3
  n_c12 -->|"No"| n_c13
```

### Agency or write-off? (detail of step "Pause service; agency or write-off?")

Lanes:
- Finance manager: person / role (id `mgr`)
- Collections: person / role (id `ar`)

Steps, in the order they run:

1. **Review the amount and the customer's history** [start; Finance manager; id `d1`]
   - then Worth pursuing?
2. **Worth pursuing?** [decision; Finance manager; id `d2`]
   - if "Yes" go to Send to a collection agency; if "No" go to Write off as bad debt with approval
3. **Send to a collection agency** [task; Finance manager; id `d3`]
   - then Update the customer's credit status
4. **Update the customer's credit status** [end; Collections; id `d5`]
5. **Write off as bad debt with approval** [task; Finance manager; id `d4`]
   - then Update the customer's credit status

```mermaid
flowchart LR
  subgraph l_mgr["Finance manager"]
    n_d1(["Review the amount and the customer's history"])
    n_d2{"Worth pursuing?"}
    n_d3["Send to a collection agency"]
    n_d4["Write off as bad debt with approval"]
  end
  subgraph l_ar["Collections"]
    n_d5(["Update the customer's credit status"])
  end
  n_d1 --> n_d2
  n_d2 -->|"Yes"| n_d3
  n_d2 -->|"No"| n_d4
  n_d3 --> n_d5
  n_d4 --> n_d5
```

## Full data (JSON)

```json
{
  "title": "Collect payment: from late to paid",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "ar",
          "name": "Collections",
          "type": "person"
        },
        {
          "id": "cust",
          "name": "Customer",
          "type": "person"
        },
        {
          "id": "erp",
          "name": "ERP",
          "type": "system"
        },
        {
          "id": "rep",
          "name": "Sales rep",
          "type": "person"
        },
        {
          "id": "mgr",
          "name": "Finance manager",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "c1",
          "kind": "start",
          "lane": "erp",
          "next": [
            {
              "to": "c2"
            }
          ],
          "uses": [],
          "label": "The invoice reaches its due date"
        },
        {
          "id": "c2",
          "kind": "decision",
          "lane": "erp",
          "next": [
            {
              "to": "c3",
              "label": "Yes"
            },
            {
              "to": "c4",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Paid?"
        },
        {
          "id": "c3",
          "kind": "end",
          "lane": "ar",
          "next": [],
          "uses": [
            "erp"
          ],
          "label": "Apply the payment and close the invoice"
        },
        {
          "id": "c4",
          "kind": "task",
          "lane": "ar",
          "next": [
            {
              "to": "c5"
            }
          ],
          "uses": [],
          "label": "Friendly reminder 1 day past due"
        },
        {
          "id": "c5",
          "kind": "decision",
          "lane": "cust",
          "next": [
            {
              "to": "c3",
              "label": "Yes"
            },
            {
              "to": "c6",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Pays?"
        },
        {
          "id": "c6",
          "kind": "task",
          "lane": "ar",
          "next": [
            {
              "to": "c7"
            }
          ],
          "pain": {
            "note": "Phone calls eat hours of the collections team every week",
            "level": 2
          },
          "uses": [],
          "label": "Call: ask what is blocking payment"
        },
        {
          "id": "c7",
          "kind": "decision",
          "lane": "cust",
          "next": [
            {
              "to": "c8",
              "label": "Yes"
            },
            {
              "to": "c9",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is there a real problem?"
        },
        {
          "id": "c8",
          "kind": "task",
          "lane": "ar",
          "next": [
            {
              "to": "c5"
            }
          ],
          "uses": [],
          "label": "Fix it: resend the invoice, correct the PO or agree a plan"
        },
        {
          "id": "c9",
          "kind": "task",
          "lane": "ar",
          "next": [
            {
              "to": "c10"
            }
          ],
          "uses": [],
          "label": "Firm notice at 30 days past due"
        },
        {
          "id": "c10",
          "kind": "decision",
          "lane": "cust",
          "next": [
            {
              "to": "c3",
              "label": "Yes"
            },
            {
              "to": "c11",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Pays?"
        },
        {
          "id": "c11",
          "kind": "task",
          "lane": "rep",
          "next": [
            {
              "to": "c12"
            }
          ],
          "pain": {
            "note": "By now the customer relationship is already strained",
            "level": 3
          },
          "uses": [],
          "label": "Sales rep escalates to the executive sponsor"
        },
        {
          "id": "c12",
          "kind": "decision",
          "lane": "cust",
          "next": [
            {
              "to": "c3",
              "label": "Yes"
            },
            {
              "to": "c13",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Pays?"
        },
        {
          "id": "c13",
          "kind": "subprocess",
          "lane": "mgr",
          "next": [],
          "uses": [],
          "child": "m_decide",
          "label": "Pause service; agency or write-off?"
        }
      ],
      "title": "Collect payment: from late to paid",
      "parent": null
    },
    "m_decide": {
      "id": "m_decide",
      "lanes": [
        {
          "id": "mgr",
          "name": "Finance manager",
          "type": "person"
        },
        {
          "id": "ar",
          "name": "Collections",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "d1",
          "kind": "start",
          "lane": "mgr",
          "next": [
            {
              "to": "d2"
            }
          ],
          "uses": [],
          "label": "Review the amount and the customer's history"
        },
        {
          "id": "d2",
          "kind": "decision",
          "lane": "mgr",
          "next": [
            {
              "to": "d3",
              "label": "Yes"
            },
            {
              "to": "d4",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Worth pursuing?"
        },
        {
          "id": "d3",
          "kind": "task",
          "lane": "mgr",
          "next": [
            {
              "to": "d5"
            }
          ],
          "uses": [],
          "label": "Send to a collection agency"
        },
        {
          "id": "d4",
          "kind": "task",
          "lane": "mgr",
          "next": [
            {
              "to": "d5"
            }
          ],
          "uses": [],
          "label": "Write off as bad debt with approval"
        },
        {
          "id": "d5",
          "kind": "end",
          "lane": "ar",
          "next": [],
          "uses": [],
          "label": "Update the customer's credit status"
        }
      ],
      "title": "Agency or write-off?",
      "parent": {
        "map": "m_root",
        "step": "c13"
      }
    }
  }
}
```
