- Archive
- /
- Attribute Import
- /
- Import History & Saved Mappings
Import History & Saved Mappings
Learn how to view past import runs in the History tab and manage reusable configurations in Saved Mappings on the Attribute Import page.
The Attribute Import page has three tabs along the top: Import Now (the wizard), History (everything that's run), and Saved Mappings (reusable configurations). The wizard is covered in Importing File Attributes; this article is about the other two.
History Tab
Switch to History to see your last 50 import runs in reverse-chronological order. Each row shows:
| Column | What it means |
|---|---|
| Started | Local time the run began. |
| Source | The original file name uploaded. |
| Project | Resolved project name (or the bare APS project ID if the lookup failed). |
| Status | Running, Completed, Cancelled, or Failed. |
| Applied | Rows that wrote at least one value. |
| Skipped | Rows skipped — bad match, conflict policy, blank match key. |
| Failed | Rows where the APS write returned an error. |
| New attrs | Custom attributes created on Forma during the run. |
A refresh button in the top-right re-fetches without reloading the page. The badge next to the History tab in the page header shows the current run count.
Run Detail Slide-Out
Click any row to open the run-detail slide-out. It contains:
- Counters for Applied / Skipped / Failed / New attrs, mirrored from the row.
- Destination — hub (with name when resolvable), project (ditto), folder ID.
- Source — file name, sheet, header row position, total rows.
- Mappings — every column mapping from the run (column → role → target attribute name).
- Recent errors — up to 50 of the most recent error lines from the live run, exactly as they appeared in the progress dialog.
Run-detail data is stored in the database for as long as the run row exists. The History view always shows the latest 50; older rows remain in the database and are queryable via the API but aren't paged into the UI.
In-flight runs appear in History too — with status Running. The detail slide-out shows live mapping data even before the run finishes, which is handy if you closed the progress dialog by accident.
Audit Trail
Every run is also recorded in the tenant audit log as AttributeImport.Executed, with summary counts. Org admins (and members, if visible activity is enabled) can see these from the Activity page. The dry-run report download is recorded separately as AttributeImport.DryRunReportDownloaded.
Saved Mappings Tab
Mapping a 60-column MIDP correctly takes a few minutes — and you don't want to redo it next month, or for a sister project that uses the same template. Saved Mappings lets you save a complete configuration (sheet, header row, every column's role and target attribute name) once and reload it on demand.
Saving a Mapping
From Step 6 of the wizard (the dry-run), click Save mapping…. A small dialog asks for a name (e.g. MIDP April 2026, Architectural register). The mapping is stored against your user account.
Names must be unique within your account. You can save the same mapping under different names if you're tracking variants.
Loading a Mapping
On the Saved Mappings tab, click Load on any saved entry. The wizard re-opens at Step 1 with everything pre-filled:
- The original file name (you'll need to re-upload — the file isn't kept).
- Sheet selection and header rows.
- Every column mapping, including new-attribute names and types.
- Conflict policies.
Re-pick the destination folder if it's different and proceed to the dry-run as normal.
Deleting a Saved Mapping
Click Delete to remove a saved configuration. This is a hard delete — there is no recycle bin.
When to Save vs. Re-Map
A saved mapping is essentially a frozen interpretation of one MIDP template. Save when:
- The template is going to repeat (monthly MIDP, per-stage refresh, identical projects).
- The mapping required real thought — list extensions, new-attribute creation, mixed conflict policies.
Don't save when:
- The MIDP is one-off (a single hand-off from a sub-consultant, with no expectation of repeat).
- The destination folder structure differs significantly between runs (the saved mapping references attributes that may not exist elsewhere — they'll get reset on load).
If a saved mapping references a custom attribute that doesn't exist in the destination of a future run, the wizard handles it the same way it handles a destination change: those columns reset to Ignore with a banner identifying which ones, and you re-pick before continuing.
Re-Running Past Imports
There's no "re-run this exact run" button — partly to ensure you always go through the dry-run before committing changes, and partly because the destination folder state is rarely identical to what it was last time. The pattern instead is:
- Open the run in History to see what mapping it used.
- If the mapping was saved, load it from Saved Mappings.
- If not, recreate it (the History detail shows every column → target).
- Re-upload the latest source file.
- Run dry-run, review, run.
For frequent re-runs, save the mapping the first time you nail it.