Skip to main content

Bill Of Materials

A Bill of Materials (BOM) is a list of materials and quantities that are estimated to be needed for a job. Contractors already make materials estimates in order to bid on jobs, and these estimates can be used in Kojo once the job is won to guide procurement decisions and track spending throughout the project.

Project managers and purchasing agents can view and edit the BOM and track spending. Foremen can requisition from the BOM on their mobile devices, quickly choosing from a job-specific list of planned, approved, and in-spec materials every time.

Schema​

BillOfMaterials​

NameTypeDescriptionExample
idIDUnique BOM identifier"ckmnpybisiy5x08abky4g2d1f"
createdAtDateTimeWhen this Bill of Materials was created"2021-03-24 17:26:46.983Z"
updatedAtDateTimeWhen this Bill of Materials was updated"2021-03-24 17:26:46.983Z"
namestringName of the Bill of Materials"Rough in"
jobIdIDThe ID of the job this BOM is associated withSee Jobs docs
jobCodestringThe code of the job this BOM is associated withSee Jobs docs

Queries​

getBillsOfMaterials​

Read all billOfMaterials from a parent job.

Parameters​

NameTypeDescriptionExample
jobIdID?The job ID to get the BOMs from."ckmnpybisiy5x08abky4g2d1f"
jobCodestring?The job code to get the BOMs from."01-100"

Response​

A list of BillOfMaterials objects.

Example Query​

query {
getBillsOfMaterials(
jobId: "ckyd9f1jn4332914x62igy1oni"
) {
id
jobId
name
}
}

Example Response​

[
{
"id": "ckyd9f1jn4332914x62igytcx",
"jobId": "ckyd9f1jn4332914x62igy1oni",
"name": "Rough in"
}
]

Mutations​

createBillOfMaterials​

Creates a new Bill Of Materials on a job.

Parameters​

NameTypeDescriptionExample
jobIdID?The job ID to create the BOM against."ckmnpybisiy5x08abky4g2d1f"
jobCodestring?The job code to create the BOM against."01-100"
namestring?Name of the Bill of Materials"Rough in"

Response​

Returns the BillOfMaterials.

Example Mutation​

mutation {
createBillOfMaterials(
jobId: "ckyd9f1jn4332914x62igy1oni", name: "Rough in"
) {
id
createdAt
name
jobId
jobCode
updatedAt
}
}

Example Response​

{
"createdAt": "2022-01-13T17:42:40.019Z",
"id": "ckyd9f1jn4332914x62igytcx",
"name": "Rough in",
"jobId": "ckyd9f1jn4332914x62igy1oni",
"jobCode": "01-100",
"updatedAt": "2022-01-13T17:42:40.020Z"
}