JobTread

JobTread is a construction management platform that helps contractors manage jobs, estimates, invoices, budgets, tasks, and more.

omniload supports JobTread as a source.

URI format

jobtread://?grant_key=<grant_key>&organization_id=<organization_id>

URI parameters:

  • grant_key: A grant key used to authenticate with the JobTread API.

  • organization_id: The ID of the organization to ingest data from.

To create a grant key, navigate to the grant management page in your JobTread account. Upon creation, the grant key will be displayed one time so make sure to copy it.

To find your organization ID, run the following query in the API Explorer:

currentGrant:
  user:
    memberships:
      nodes:
        organization:
          id: {}
          name: {}

Once you have both, here’s a sample command that will copy the data from JobTread into a DuckDB database:

omniload ingest \
  --source-uri "jobtread://?grant_key=your_grant_key&organization_id=your_org_id" \
  --source-table "jobs" \
  --dest-uri duckdb:///jobtread.duckdb \
  --dest-table "public.jobs"

Tables

JobTread source allows ingesting the following resources into separate tables:

Table

PK

Inc Key

Inc Strategy

Details

accounts

id

-

replace

Customer and vendor accounts

jobs

id

-

replace

Construction jobs/projects

contacts

id

-

replace

Contacts associated with accounts

documents

id

-

replace

All document types including estimates, invoices, bills, and orders

tasks

id

-

replace

Tasks and to-dos linked to jobs

cost_codes

id

-

replace

Budget cost code categories

cost_types

id

-

replace

Cost type definitions (labor, materials, etc.)

cost_items

id

-

replace

Budget line items on jobs

locations

id

-

replace

Job site locations with addresses

custom_fields

id

-

replace

Custom field definitions

daily_logs

id

-

replace

Daily job site logs with weather data

time_entries

id

-

replace

Time tracking records for labor

files

id

-

replace

File attachments

comments

id

-

replace

Comments on jobs, tasks, documents, etc.

document_payments

id

-

replace

Payments applied to documents

cost_groups

id

-

replace

Budget categories and templates

events

id

createdAt

merge

Audit log of all actions in the system

Use these as --source-table parameter in the omniload ingest command.

[!WARNING] JobTread does not expose an updatedAt field on any entity, so most tables use a full replace strategy. Only the events table supports incremental loading via createdAt since events are immutable.

[!WARNING] Grant keys expire after 3 months of inactivity.