Files
portal/runs/contractor-planned-2026-09-24/model.json
T

660 lines
20 KiB
JSON

{
"needs": [
{
"id": "building-problem",
"who": "A housing board or private owner with a problem with a building",
"wants": "Someone to come and look at it, and tell them what it would cost to fix",
"enters_as": null,
"lands_in": "enquiries",
"handled_by": "project_managers",
"done_when": [
"won",
"lost",
"declined"
],
"success": [
"won"
],
"steps": [
{
"page": "/",
"question": "What do you need done?",
"context": "Old buildings, put right by people who know them: We've been surveying, permitting and rebuilding old buildings for years, from the first look to the last coat of paint. One team from drawings to finished build: Drawings, the permit application, and the building work, all handled by us and the trades we trust. Know what it needs and what it costs: We come look at the building, work out what's actually wrong, and give you a clear price for fixing it.",
"options": [
{
"name": "Get someone out to look at it",
"description": "Tell us what's wrong and where. We'll come out, take a look, and tell you straight what it needs and what it costs."
},
{
"name": "Get drawings, a permit and a price",
"description": "You know what you want built. We'll draw it up, handle the permit application, and give you a price."
},
{
"name": "Get on our list of subcontractors",
"description": "Want to work with us on electrical, plumbing or scaffolding jobs? Send us your details and we'll take it from there."
},
{
"name": "Ask if we're hiring",
"description": "Carpenter or apprentice, we're always glad to hear from good people. Tell us a bit about yourself."
}
],
"expect": [
"Get someone out to look at it"
],
"alternative": "Get someone out to look at it",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "phone",
"label": "Phone",
"type": "tel",
"optional": true,
"options": []
},
{
"name": "address",
"label": "Address",
"type": "text",
"optional": false,
"options": []
},
{
"name": "problem",
"label": "What's the problem?",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "known-project",
"who": "An owner who already knows what they want built",
"wants": "Drawings, a permit application and a price",
"enters_as": null,
"lands_in": "enquiries",
"handled_by": "project_managers",
"done_when": [
"won",
"lost",
"declined"
],
"success": [
"won"
],
"steps": [
{
"page": "/",
"question": "What do you need done?",
"context": "Old buildings, put right by people who know them: We've been surveying, permitting and rebuilding old buildings for years, from the first look to the last coat of paint. One team from drawings to finished build: Drawings, the permit application, and the building work, all handled by us and the trades we trust. Know what it needs and what it costs: We come look at the building, work out what's actually wrong, and give you a clear price for fixing it.",
"options": [
{
"name": "Get someone out to look at it",
"description": "Tell us what's wrong and where. We'll come out, take a look, and tell you straight what it needs and what it costs."
},
{
"name": "Get drawings, a permit and a price",
"description": "You know what you want built. We'll draw it up, handle the permit application, and give you a price."
},
{
"name": "Get on our list of subcontractors",
"description": "Want to work with us on electrical, plumbing or scaffolding jobs? Send us your details and we'll take it from there."
},
{
"name": "Ask if we're hiring",
"description": "Carpenter or apprentice, we're always glad to hear from good people. Tell us a bit about yourself."
}
],
"expect": [
"Get drawings, a permit and a price"
],
"alternative": "Get drawings, a permit and a price",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "address",
"label": "Address",
"type": "text",
"optional": false,
"options": []
},
{
"name": "project",
"label": "What are you planning?",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "subcontractor-application",
"who": "A trade firm that wants to be on our list of subcontractors",
"wants": "To be approved as a subcontractor",
"enters_as": null,
"lands_in": "subcontractors",
"handled_by": "project_managers",
"done_when": [
"approved",
"rejected"
],
"success": [
"approved"
],
"steps": [
{
"page": "/",
"question": "What do you need done?",
"context": "Old buildings, put right by people who know them: We've been surveying, permitting and rebuilding old buildings for years, from the first look to the last coat of paint. One team from drawings to finished build: Drawings, the permit application, and the building work, all handled by us and the trades we trust. Know what it needs and what it costs: We come look at the building, work out what's actually wrong, and give you a clear price for fixing it.",
"options": [
{
"name": "Get someone out to look at it",
"description": "Tell us what's wrong and where. We'll come out, take a look, and tell you straight what it needs and what it costs."
},
{
"name": "Get drawings, a permit and a price",
"description": "You know what you want built. We'll draw it up, handle the permit application, and give you a price."
},
{
"name": "Get on our list of subcontractors",
"description": "Want to work with us on electrical, plumbing or scaffolding jobs? Send us your details and we'll take it from there."
},
{
"name": "Ask if we're hiring",
"description": "Carpenter or apprentice, we're always glad to hear from good people. Tell us a bit about yourself."
}
],
"expect": [
"Get on our list of subcontractors"
],
"alternative": "Get on our list of subcontractors",
"fields": [
{
"name": "company_name",
"label": "Company name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "registration_number",
"label": "Registration number",
"type": "text",
"optional": false,
"options": []
},
{
"name": "trade",
"label": "Trade",
"type": "select",
"optional": false,
"options": [
"Electrical",
"Plumbing",
"Scaffolding",
"Other"
]
},
{
"name": "insurance",
"label": "Insurance in place?",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "job-application",
"who": "A carpenter or apprentice asking if we are hiring",
"wants": "To apply for a job with us",
"enters_as": null,
"lands_in": "applications",
"handled_by": "project_managers",
"done_when": [
"hired",
"declined"
],
"success": [
"hired"
],
"steps": [
{
"page": "/",
"question": "What do you need done?",
"context": "Old buildings, put right by people who know them: We've been surveying, permitting and rebuilding old buildings for years, from the first look to the last coat of paint. One team from drawings to finished build: Drawings, the permit application, and the building work, all handled by us and the trades we trust. Know what it needs and what it costs: We come look at the building, work out what's actually wrong, and give you a clear price for fixing it.",
"options": [
{
"name": "Get someone out to look at it",
"description": "Tell us what's wrong and where. We'll come out, take a look, and tell you straight what it needs and what it costs."
},
{
"name": "Get drawings, a permit and a price",
"description": "You know what you want built. We'll draw it up, handle the permit application, and give you a price."
},
{
"name": "Get on our list of subcontractors",
"description": "Want to work with us on electrical, plumbing or scaffolding jobs? Send us your details and we'll take it from there."
},
{
"name": "Ask if we're hiring",
"description": "Carpenter or apprentice, we're always glad to hear from good people. Tell us a bit about yourself."
}
],
"expect": [
"Ask if we're hiring"
],
"alternative": "Ask if we're hiring",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "role",
"label": "What kind of work?",
"type": "select",
"optional": false,
"options": [
"Carpenter",
"Apprentice"
]
},
{
"name": "message",
"label": "Tell us about yourself",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "site-report",
"who": "Crew on site, ours or a subcontractor's",
"wants": "To report a hazard, near miss or wrong materials before it is forgotten",
"enters_as": "crew",
"lands_in": "site_reports",
"handled_by": "safety_officer",
"done_when": [
"closed"
],
"success": [
"closed"
],
"steps": [
{
"page": "/crew/site-report",
"question": "Is something on this site unsafe or not right?",
"context": "",
"options": [
{
"name": "Flag a hazard on site",
"description": "See a hazard, near miss or wrong materials on site? Log it before it slips your mind."
}
],
"expect": [
"Flag a hazard on site"
],
"alternative": "Flag a hazard on site",
"fields": [
{
"name": "type",
"label": "What kind of issue",
"type": "select",
"optional": false,
"options": [
"Hazard",
"Near miss",
"Wrong materials"
]
},
{
"name": "description",
"label": "What's wrong",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "location",
"label": "Where on site",
"type": "text",
"optional": true,
"options": []
}
]
}
]
}
],
"buckets": {
"enquiries": {
"initial": "open",
"transitions": {
"open": [
"surveyed",
"quoted",
"won",
"lost",
"declined"
],
"quoted": [
"won",
"lost",
"declined"
],
"surveyed": [
"quoted",
"won",
"lost",
"declined"
]
},
"desks": [
{
"page": "/project_managers",
"group": "project_managers",
"moves": [
{
"from": "open",
"to": "surveyed",
"label": "Log the survey"
},
{
"from": "open",
"to": "quoted",
"label": "Send a price"
},
{
"from": "open",
"to": "won",
"label": "Mark as won"
},
{
"from": "open",
"to": "lost",
"label": "Mark as lost"
},
{
"from": "open",
"to": "declined",
"label": "Turn down"
},
{
"from": "quoted",
"to": "won",
"label": "Mark as won"
},
{
"from": "quoted",
"to": "lost",
"label": "Mark as lost"
},
{
"from": "quoted",
"to": "declined",
"label": "Turn down"
},
{
"from": "surveyed",
"to": "quoted",
"label": "Send a price"
},
{
"from": "surveyed",
"to": "won",
"label": "Mark as won"
},
{
"from": "surveyed",
"to": "lost",
"label": "Mark as lost"
},
{
"from": "surveyed",
"to": "declined",
"label": "Turn down"
}
]
}
],
"self_moves": []
},
"subcontractors": {
"initial": "open",
"transitions": {
"papers_requested": [
"approved",
"rejected"
],
"open": [
"checking",
"rejected"
],
"checking": [
"papers_requested",
"approved",
"rejected"
]
},
"desks": [
{
"page": "/project_managers",
"group": "project_managers",
"moves": [
{
"from": "checking",
"to": "papers_requested",
"label": "Ask for papers"
},
{
"from": "checking",
"to": "approved",
"label": "Approve them"
},
{
"from": "checking",
"to": "rejected",
"label": "Turn down"
},
{
"from": "open",
"to": "checking",
"label": "Start checking"
},
{
"from": "open",
"to": "rejected",
"label": "Turn down"
},
{
"from": "papers_requested",
"to": "approved",
"label": "Approve them"
},
{
"from": "papers_requested",
"to": "rejected",
"label": "Turn down"
}
]
}
],
"self_moves": []
},
"applications": {
"initial": "open",
"transitions": {
"interview": [
"hired",
"declined"
],
"open": [
"interview",
"hired",
"declined"
]
},
"desks": [
{
"page": "/project_managers",
"group": "project_managers",
"moves": [
{
"from": "interview",
"to": "hired",
"label": "Offer the job"
},
{
"from": "interview",
"to": "declined",
"label": "Not moving forward"
},
{
"from": "open",
"to": "interview",
"label": "Call in for interview"
},
{
"from": "open",
"to": "hired",
"label": "Hire straight away"
},
{
"from": "open",
"to": "declined",
"label": "Not a fit"
}
]
}
],
"self_moves": []
},
"site_reports": {
"initial": "open",
"transitions": {
"open": [
"closed"
]
},
"desks": [
{
"page": "/safety_officer",
"group": "safety_officer",
"moves": [
{
"from": "open",
"to": "closed",
"label": "Mark sorted"
}
]
}
],
"self_moves": []
}
},
"personas": [
{
"id": "housing-board-damp",
"need": "building-problem",
"text": "I chair the board of a housing cooperative from the seventies. Two ground-floor flats have damp in the walls and we don't know if it's drainage or the facade. We need someone to tell us."
},
{
"id": "buyer-before-purchase",
"need": "building-problem",
"text": "We are about to buy an old timber house. Before we sign we want a professional to go through it and tell us what is wrong with it."
},
{
"id": "attic-conversion",
"need": "known-project",
"text": "We want to turn our attic into two bedrooms and a bathroom. We need drawings and someone who handles the application to the municipality."
},
{
"id": "shop-to-flat",
"need": "known-project",
"text": "I own a former shop on the ground floor and want to make it a flat. I have no idea what is allowed. Can you sort that out and give me a price?"
},
{
"id": "electrician-firm",
"need": "subcontractor-application",
"text": "We are a four-person electrical firm, fully certified. We would like to get on your list so you call us when you need electricians."
},
{
"id": "scaffolder",
"need": "subcontractor-application",
"text": "I run a scaffolding company. How do I get to do jobs for you?"
},
{
"id": "carpenter-jobseeker",
"need": "job-application",
"text": "I'm a certified carpenter with eight years on rehabilitation jobs. Are you hiring?"
},
{
"id": "apprentice",
"need": "job-application",
"text": "I finish vocational school this spring and need an apprenticeship as a bricklayer."
},
{
"id": "loose-railing",
"need": "site-report",
"text": "The railing on the third level of the scaffold on the north side is loose. Nobody got hurt but someone will."
},
{
"id": "wrong-membrane",
"need": "site-report",
"text": "The bathroom membrane delivered today is not the one in the specification. We stopped work on it."
}
]
}