Run an import
Step by step on the Migration page. Create a job, pick the target project and scopes, run a dry run, read the stats and log, then run it live and re-run safely.
Partly in the app today. Items marked Planned are not built yet.
This is the hands-on version of Importing from your current stack. You need to be a company admin.
Before you start
- Create the target project in os.construction, with its cost codes and permission templates.
- Have the source company ID and project ID from your current system, and an access token for its API.
- Try it on sample data first if you like: the sample-data source needs no credentials.
Create a job
-
Open the Migration page
Go to
app.os.construction/companies/<your company>/migration. -
Source
Choose the sample-data source, or a connected import. For a connected import, pick the source environment and enter the source company ID and source project ID. These are fixed for the job.
-
Target & Mode
Pick the target project and a Mode: Dry run (count only, no writes) or Live (import into the project). Each job has one mode, so you create one job for the dry run and another for the live run.
-
Scopes
Tick the tools to import: Directory (users and vendors), RFIs, Submittals, Punch List, Observations, Daily Log (weather, manpower, notes), Documents (folders and files), Prime Contracts and Commitments. All are ticked by default.
-
Create migration job
The job appears under Migration jobs. Creating it doesn’t run anything yet.
Run it
Open the job. For a connected import, paste the access token and select Run connected dry-run (or Run connected import for a live job). The token is used for that request only and isn’t saved. For sample data, use the run button on the job.
Read the results
The job page shows:
- Per-entity stats: for each record type, how many were Fetched, Created, Updated, Skipped and Failed.
- Run log: a timestamped line for each step and each failure, with the reason.
- The job’s source, mode, status, target project and start and finish times.
A dry run fills in the counts without writing records. Check them against the old system before you run live.
Re-run safely
Every imported record remembers where it came from. Running the same live job again updates the records it already created rather than duplicating them, and picks up anything new in the source. If a run is interrupted, the job page offers recovery: retry with the same source, and records already committed are kept.
Fix failures
Failed records don’t stop the run. Read the reason in the run log, fix it at the source or in os.construction (often a missing person or company), and re-run the job.
Keep exploring
Related across os.construction
- DocsImporting from your current stackBring people, field records, documents and contracts over from your current project management system with the import tool. What comes over, where it lands, and how a cutover works. Company accounting supports bounded journal and opening-balance CSV imports.
- DocsWhat is os.constructionProject management, project Financials and company Accounting, with reporting on shared records.
- ExplainerChoosing what to put in the data core firstA migration plan for os.construction: which records go in first, what the import tool brings over today, and what is a file, a manual step or planned.
- ExplainerWhy one data core: the same record everywhereSee how RFIs, field records, change orders, budget, pay apps and CRM link on one data core in os.construction, and why links beat copies and syncs.
- Blogos.construction is open for trialsThe app is live at app.os.construction. Start a 14-day free trial: project management and project financials today, with separate company accounting workflows and planned AI agents. Here's exactly what's live and what isn't.
- BlogWhy construction needs an operating system, not another appMost contractors don't have a software problem. They have a seams problem: the same number lives in five systems and none of them agree. The fix is a shared record, not another tool.
Was this helpful?
Run it on your own project.
Start a 14-day free trial. Want a say in what ships next? Join the founding program.
14-day free trial. Pricing for paid plans isn't set yet. Talk to us. Already have an account? Sign in →