PD Suite manual
Project export and Buildertrend fields
Plot plan → Export plot data downloads the site and paperwork JSON. Saving a project stores the full design document on the project.
Design document
{
"version": 1,
"photo": { "src": "", "corners": [], "scale": { "lengthFt": 48 } },
"shell": { "modelId": "", "x": 0, "y": 0, "rotationDeg": 0 },
"finishId": "",
"equipment": [],
"landscape": [],
"site": {
"parcelId": "",
"jurisdiction": "",
"northDeg": 0,
"deckWidthFt": 4,
"shapes": [{ "kind": "property", "points": [], "closed": true }],
"gates": [],
"panel": null,
"gas": []
},
"paperwork": {
"projectTitle": "",
"permitCost": 0,
"commissionPct": 3,
"discount": 0,
"marginPct": null,
"applicationType": "Inground residential pool",
"revision": "1"
},
"customer": { "name": "", "email": "", "phone": "", "address": "" }
}
Shape kinds include property, house, septic, well, easement, overhead, underground, fence, spoil, access, and pad. Setback distances are not in this file. They are company rules: jurisdiction, name, fromKind, appliesTo, and feet.
Planned Buildertrend handoff
A signed proposal can push this payload. The connector is mock, webhook, or a partner attempt. Credentials stay in environment variables.
{
"customer": { "name": "", "email": "", "phone": "", "address": "" },
"job": { "name": "", "status": "sold", "source": "PD Suite" },
"estimate": {
"number": "",
"total": 0,
"lines": [{ "label": "", "qty": 1, "unit": "each", "unitPrice": 0, "total": 0, "group": "" }]
},
"designFiles": [{ "name": "", "kind": "poolsuite-design", "note": "" }]
}