# Adopt a dog from a shelter

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

- 12 steps across 1 layer
- Persona: You, Shelter or rescue, Vet
- Technology / systems: Shelter website

## Pain points

Where this process hurts, worst first:

- **Review the application, and sometimes check references or your home** (Adopt a dog from a shelter; painful): Rescues often ask more questions than city shelters; ask what to expect

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

## Adopt a dog from a shelter

Lanes:
- You: person / role (id `you`)
- Shelter or rescue: person / role (id `shelter`)
- Vet: person / role (id `vet`)
- Shelter website: technology / system (id `site`)

Steps, in the order they run:

1. **Decide you're ready for a dog** [start; You; id `j1`]
   - then Browse adoptable dogs
2. **Browse adoptable dogs** [task; You; id `j2`], using Shelter website
   - then Meet the dog in person
3. **Meet the dog in person** [task; You; id `j3`]
   - then Fill out an adoption application
4. **Fill out an adoption application** [task; You; id `j4`]
   - then Review the application, and sometimes check references or your home
5. **Review the application, and sometimes check references or your home** [task; Shelter or rescue; id `j5`] ⚠ PAIN POINT (painful): Rescues often ask more questions than city shelters; ask what to expect
   - then Approve?
6. **Approve?** [decision; Shelter or rescue; id `j6`]
   - if "Yes" go to Bring other pets or family to meet the dog if asked; if "Not this dog" go to Browse adoptable dogs
7. **Bring other pets or family to meet the dog if asked** [task; You; id `j7`]
   - then Sign the adoption contract and pay the fee
8. **Sign the adoption contract and pay the fee** [task; You; id `j8`]
   - then Set up a crate, food, leash and a quiet space
9. **Set up a crate, food, leash and a quiet space** [task; You; id `j9`]
   - then Bring your dog home
10. **Bring your dog home** [task; You; id `j10`]
   - then First checkup within a few weeks
11. **First checkup within a few weeks** [task; Vet; id `j11`]
   - then License and microchip registration in your name
12. **License and microchip registration in your name** [end; You; id `j12`]

```mermaid
flowchart LR
  subgraph l_you["You"]
    n_j1(["Decide you're ready for a dog"])
    n_j2["Browse adoptable dogs"]
    n_j3["Meet the dog in person"]
    n_j4["Fill out an adoption application"]
    n_j7["Bring other pets or family to meet the dog if asked"]
    n_j8["Sign the adoption contract and pay the fee"]
    n_j9["Set up a crate, food, leash and a quiet space"]
    n_j10["Bring your dog home"]
    n_j12(["License and microchip registration in your name"])
  end
  subgraph l_shelter["Shelter or rescue"]
    n_j5["Review the application, and sometimes check references or your home"]
    n_j6{"Approve?"}
  end
  subgraph l_vet["Vet"]
    n_j11["First checkup within a few weeks"]
  end
  n_j1 --> n_j2
  n_j2 --> n_j3
  n_j3 --> n_j4
  n_j4 --> n_j5
  n_j5 --> n_j6
  n_j6 -->|"Yes"| n_j7
  n_j6 -->|"Not this dog"| n_j2
  n_j7 --> n_j8
  n_j8 --> n_j9
  n_j9 --> n_j10
  n_j10 --> n_j11
  n_j11 --> n_j12
```

## Full data (JSON)

```json
{
  "title": "Adopt a dog from a shelter",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "you",
          "name": "You",
          "type": "person"
        },
        {
          "id": "shelter",
          "name": "Shelter or rescue",
          "type": "person"
        },
        {
          "id": "vet",
          "name": "Vet",
          "type": "person"
        },
        {
          "id": "site",
          "name": "Shelter website",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "j1",
          "kind": "start",
          "lane": "you",
          "next": [
            {
              "to": "j2"
            }
          ],
          "uses": [],
          "label": "Decide you're ready for a dog"
        },
        {
          "id": "j2",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j3"
            }
          ],
          "uses": [
            "site"
          ],
          "label": "Browse adoptable dogs"
        },
        {
          "id": "j3",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j4"
            }
          ],
          "uses": [],
          "label": "Meet the dog in person"
        },
        {
          "id": "j4",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j5"
            }
          ],
          "uses": [],
          "label": "Fill out an adoption application"
        },
        {
          "id": "j5",
          "kind": "task",
          "lane": "shelter",
          "next": [
            {
              "to": "j6"
            }
          ],
          "pain": {
            "note": "Rescues often ask more questions than city shelters; ask what to expect",
            "level": 2
          },
          "uses": [],
          "label": "Review the application, and sometimes check references or your home"
        },
        {
          "id": "j6",
          "kind": "decision",
          "lane": "shelter",
          "next": [
            {
              "to": "j7",
              "label": "Yes"
            },
            {
              "to": "j2",
              "label": "Not this dog"
            }
          ],
          "uses": [],
          "label": "Approve?"
        },
        {
          "id": "j7",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j8"
            }
          ],
          "uses": [],
          "label": "Bring other pets or family to meet the dog if asked"
        },
        {
          "id": "j8",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j9"
            }
          ],
          "uses": [],
          "label": "Sign the adoption contract and pay the fee"
        },
        {
          "id": "j9",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j10"
            }
          ],
          "uses": [],
          "label": "Set up a crate, food, leash and a quiet space"
        },
        {
          "id": "j10",
          "kind": "task",
          "lane": "you",
          "next": [
            {
              "to": "j11"
            }
          ],
          "uses": [],
          "label": "Bring your dog home"
        },
        {
          "id": "j11",
          "kind": "task",
          "lane": "vet",
          "next": [
            {
              "to": "j12"
            }
          ],
          "uses": [],
          "label": "First checkup within a few weeks"
        },
        {
          "id": "j12",
          "kind": "end",
          "lane": "you",
          "next": [],
          "uses": [],
          "label": "License and microchip registration in your name"
        }
      ],
      "title": "Adopt a dog from a shelter",
      "parent": null
    }
  }
}
```
