MLP CMS User Guide v3.1.6

MLP CMS User Guide

Complete reference for MLP Construction Management System — project financials, field operations, scheduling, quality, and safety in one platform.

Version v3.1.6 Company MLP Solutions Group Support cms@mlpsolutionsgroup.com

00 Quick Start

New to MLP CMS? This is the recommended end-to-end path for a brand-new user — follow these steps in order to get from first login to a fully tracked project.

  1. Log in and register a passkey.
  2. Set up Cost Codes and the Price List.
  3. Create your first Project.
  4. Create a Budget Proposal, approve it, and link it to the project.
  5. Raise Change Orders as scope changes.
  6. Bill the owner with Pay Applications (G702/G703).
  7. Run QMS inspections and Daily Safety checks in the field.
  8. Track everything on the Dashboard.
Tip Set up Cost Codes and the Price List FIRST — Change Orders, Budget Proposals, and Pay Applications all reuse them, so a few minutes here saves re-typing later.

01 Getting Started

MLP CMS supports two authentication methods: passkeys (biometric/hardware key, recommended) and password. Both are available from the login screen.

Logging In with a Password

  1. Navigate to the MLP CMS URL in your browser.
  2. Enter your email address and password in the login form.
  3. Click Sign In. You will be taken to the Dashboard.

Logging In with a Passkey

  1. On the login screen, click Sign in with Passkey.
  2. Your browser will prompt for biometric verification (Face ID, Touch ID, Windows Hello, or a hardware security key).
  3. Authenticate — you are logged in immediately, no password required.
Tip Passkeys are phishing-resistant and faster than passwords. Register a passkey in System Settings → Passkey Management after your first login.

Session Restore

If your session expires while you are working, MLP CMS automatically redirects you to the login screen. After you re-authenticate, the system returns you to the exact page you were on — no need to navigate back manually.

First-Time Setup Checklist

  • Confirm your profile name and email in System Settings.
  • Register a passkey for faster future logins.
  • Ask your administrator to assign you the correct role.
  • Set up Cost Codes and the Price List before creating projects.

02 Dashboard

The Dashboard is the home screen of MLP CMS. It provides a high-level financial and operational snapshot across all active projects.

Financial Dashboard

The financial dashboard displays portfolio-wide stats including total contracted value, total billed to date, net cash position, and outstanding retainage. Cards update in real time as Pay Applications are approved.

Project Dashboard

Selecting a project from the sidebar opens that project's dashboard, showing budget vs. actuals, CO summary, PA progress, and open items counts for RFIs, Submittals, and Punch List.

Activity Log

The Activity Log records every create, edit, and status-change action performed in the system. Each entry shows the user, timestamp, module, record affected, and a description of the change. Use the Clear Log button (admin only) to archive old entries. The log is append-only — individual entries cannot be deleted.

Stats Cards

Stats cards on the dashboard surface key metrics at a glance:

  • Active Projects — projects in Active or In Progress status
  • Open RFIs — RFIs awaiting response
  • Pending COs — Change Orders submitted but not yet approved
  • Overdue Punch Items — punch items past their due date
Tip KPI cards are live summaries and refresh as Pay Applications are approved. On a phone the cards stack vertically — scroll down to see them all.

03 Projects

Projects are the top-level container for all CMS data. Every record — COs, PAs, RFIs, Submittals — belongs to a project.

Creating a Project

  1. Click Projects in the sidebar, then + New Project.
  2. Enter the project name, project number, owner, and start/end dates.
  3. Set the initial contract value (this can be updated when Budget Proposals are approved).
  4. Click Save. The project appears in the project list.

Editing a Project

Open the project, click the Edit button in the top-right corner, adjust any fields, and click Save. All changes are recorded in the Activity Log.

Setting the Budget

The project budget is set by linking an approved Budget Proposal. Navigate to the project's Budget tab and click Link Budget Proposal. Once linked, the project budget reflects the approved BP total.

Project Status Lifecycle

Draft Active Complete Closed
StatusDescription
DraftProject is being set up; not yet active.
ActiveProject is in progress; all modules are editable.
CompleteWork is done; records are read-only pending final close-out.
ClosedFully archived; no further edits permitted.
Tip You can't permanently delete a project that has linked records — it moves to the Recycle Bin, where it can be restored.

04 Budget Proposals

Budget Proposals (BPs) define the initial scope and cost breakdown for a project before work begins. An approved BP becomes the project baseline budget.

Creating a Budget Proposal

  1. Navigate to Budget Proposals in the sidebar and click + New BP.
  2. Select the associated project and enter a description and proposal date.
  3. Add line items — each line item requires a Cost Code, description, quantity, unit, and unit price.
  4. Save the BP as a Draft.

Line Items

Each line item pulls from the Cost Code list and optionally from the Price List for unit prices. The BP total auto-calculates as you add or edit lines.

Approving a Budget Proposal

  1. Open the BP and review all line items.
  2. Click Submit for Approval to move it to Pending.
  3. An authorized approver clicks Approve. Status changes to Approved.
  4. Link the approved BP to the project under the project's Budget tab.

Linking to a Project

Only one approved BP can be active per project at a time. Linking an approved BP sets the project's budget baseline. Subsequent cost changes are captured through Change Orders.

Tip Build line items from the Price List to auto-fill rates and units. A Budget Proposal must be Approved before you can link it to a project.

05 Cost Codes

Cost Codes organize project costs by category (e.g., 03000 – Concrete, 05000 – Metals). They are used as line item classifications in Budget Proposals, Change Orders, and Pay Applications.

Managing Cost Codes

  1. Navigate to Cost Codes in the sidebar.
  2. Click + New Cost Code.
  3. Enter the code number, description, and cost category.
  4. Click Save.

Cost Codes can be edited at any time. Deleting a Cost Code that is in use on existing records is prevented — archive it instead using the Deactivate toggle.

Using Cost Codes in Line Items

When adding a line item to a BP or CO, select a Cost Code from the dropdown. This links the cost to the correct budget category and enables category-level roll-up reporting.

Tip Set up Cost Codes before your first project — they're shared across all projects and drive budget grouping and reporting.

06 Price List

The Price List is a catalog of unit prices for commonly used materials, equipment, and labor. Referencing the Price List in line items ensures consistent pricing across the project.

Managing Unit Prices

  1. Navigate to Price List in the sidebar.
  2. Click + New Price Item.
  3. Enter item name, unit of measure, unit price, and optional notes.
  4. Click Save.

Using Price List Items in COs and BPs

When adding a line item, click the price lookup icon to select an item from the Price List. The unit price auto-fills; you can override it if the project-specific price differs. The Price List item is recorded as a reference but the override value is what gets saved to the record.

Tip Organize items by Type (Equipment / Labor / Material). When you pick a Price List item inside a Change Order or Budget Proposal, its rate and unit fill in automatically.

07 Change Orders

Change Orders (COs) document scope changes that affect the contract value after the baseline budget is set. Every approved CO increases or decreases the project's total contract amount.

Creating a Change Order

  1. Navigate to the project and open the Change Orders tab, or click Change Orders in the sidebar.
  2. Click + New CO.
  3. Enter the CO number, title, description, and date.
  4. Add line items with Cost Codes, quantities, and unit prices.
  5. Save as Draft.

Submitting and Approving

  1. Click Submit for Approval. Status changes to Pending.
  2. An approver reviews and clicks Approve or Reject.
  3. Approved COs become available for inclusion in the next Pay Application.
  4. Rejected COs return to Draft for revision.

PDF Export

Open an approved CO and click Export PDF to generate a formatted change order document suitable for owner submission.

CO Locking

Warning Once a CO is included in a Pay Application, it is locked and cannot be edited. If a correction is needed, contact your project administrator to discuss the appropriate corrective process.
Note COs are embedded in Pay Applications at the time the PA is created (snapshot model). New COs approved after a PA is created will not appear on that existing PA — you must create a new Pay Application to capture them. This follows standard AIA billing practice.

CO Status Lifecycle

Draft Pending Approval Approved Rejected Locked
Tip Use Quick Add to pull line items straight from the Price List instead of typing them. Approving a Change Order adjusts the contract sum; Lock a CO to freeze it against edits. On a phone the line-item grid shows one item per card.

08 Pay Applications

Pay Applications (PAs) are billing documents in AIA G702/G703 format. Each PA represents one billing period and rolls up all approved Change Orders into a cumulative contract value.

Creating a Pay Application

  1. Navigate to Pay Applications in the sidebar and click + New PA.
  2. Select the project and billing period (application number, period from/to dates).
  3. The system auto-populates G703 line items from all approved COs not yet captured in a previous PA.
  4. Enter percent complete for each line item under Completed Work.
  5. Enter stored materials amounts if applicable.
  6. Review the G702 summary (contract sum, net change by COs, contract sum to date).
  7. Save and submit.
Note — Snapshot Model Pay Applications use a snapshot model. COs approved after a PA is created will not appear on that PA — create a new PA to capture them. This follows AIA standard practice.

Retainage

MLP CMS supports split-rate retainage:

  • Completed Work Retainage % — percentage withheld from work performed (typically 10%, reducing to 5% at substantial completion).
  • Stored Materials Retainage % — percentage withheld from stored materials on site (can differ from completed work rate).

Both rates are set per PA and apply to all line items on that PA. The system calculates retainage amounts automatically.

PA Chain Math — Less Previous Certificates

The G702 form tracks cumulative progress. The field Less Previous Certificates for Payment automatically carries forward the approved total from the previous PA in the sequence. You do not enter this manually — the system calculates it from the PA chain. This ensures each draw request correctly reflects only the current period's earned value.

PDF Export — G702/G703

  1. Open the PA.
  2. Click Export PDF.
  3. The system generates a properly formatted AIA G702 cover sheet and G703 continuation sheet.
  4. Download or email the PDF directly from the export dialog.
Tip The editor has two tabs — G702 (Application & Certificate) and G703 (Schedule of Values). Enter your values on G703 and the G702 totals calculate automatically. Retainage can use a split rate (work % vs. stored %), and "Less Previous Certificates" carries forward from the previous Pay App. On a phone the G703 shows as stacked cards and the workflow steps scroll sideways.

8a Project Budget

The Project Budget module provides a live, Procore-aligned view of all financial activity on a project — from the original baseline through committed costs, cost incurred, and forecast to complete. Access it by selecting a project and clicking the Budget tab.

Prerequisites A Budget Proposal must be approved and linked to the project before the Project Budget tab is populated. See Section 4 — Budget Proposals.

Budget Overview Tab

The Overview tab is the primary budget management view. It presents a 10-column table where each row is a budget line item (cost code / scope area):

Column What It Shows
Original BudgetThe baseline amount from the approved Budget Proposal.
Approved ChangesSum of all approved Budget Changes against this line.
Approved PCCOsPrime Contract Change Orders approved by the owner affecting this line.
Current Est BudgetOriginal Budget + Approved Changes + Approved PCCOs.
Pending ChangesBudget Changes still in Draft or Submitted status (not yet approved).
Pending CommitsSubcontract or purchase commitments not yet finalized.
Pending CCOsChange Orders submitted but not yet approved by the owner.
CommittedTotal contract commitments (approved subcontracts + POs).
Cost IncurredActual costs posted to this budget line to date.
Incurred + UnapprovedCost Incurred plus all pending/unapproved amounts — worst-case exposure.

A Grand Totals row at the bottom of the table summarizes each column across all lines. A color-coded progress bar beneath the summary cards indicates budget consumption: green below 75%, amber at 75–90%, red above 90%.

Summary Cards

Four KPI cards appear above the table:

  • Original Budget — baseline contract value
  • Current Est Budget — budget adjusted for all approved changes
  • Cost Incurred — actual spend to date
  • Budget Remaining — Current Est Budget minus Cost Incurred

Lock Budget

Click Lock Budget to freeze the budget baseline for the current period. Locking prevents further edits to the Original Budget column and signals a formal budget sign-off. A locked budget can be unlocked by a project administrator.

Export CSV

Click Export CSV to download the full 10-column budget table as a spreadsheet. The export includes all line items and the Grand Totals row, formatted for import into Excel or other cost management tools.

Budget Changes Tab

Budget Changes capture revisions to the project budget after the baseline is set. Unlike Change Orders (which track owner-facing contract changes), Budget Changes track internal cost reallocations, contingency draws, and value engineering savings.

Creating a Budget Change

  1. Open the Project Budget and click the Budget Changes tab.
  2. Click + New Change.
  3. Select the change type, affected budget line, and enter the amount (positive or negative).
  4. Add a description and supporting notes.
  5. Save as Draft.

Budget Change Types

TypeUse Case
Owner ChangeChange directed by the project owner.
Value EngineeringCost savings achieved through alternate methods or materials.
Allowance AdjustmentDrawing down or restoring allowance budgets.
Contingency DrawFormal use of project contingency funds.
Scope RevisionRevised scope that affects the internal budget without a CO.
Design ChangeDesign-driven budget shifts (e.g., design development additions).

Budget Change Workflow

Draft Submitted Approved Rejected Void

Approved Budget Changes immediately update the Approved Changes column in the Budget Overview table. Rejected changes return to Draft for revision. Voided changes are removed from all calculations.

Snapshots Tab

Snapshots capture a complete point-in-time record of all budget column values. Use them to preserve baselines before a major scope change, compare budget health across phases, or satisfy audit requirements.

Creating a Snapshot

  1. Click the Snapshots tab.
  2. Click + New Snapshot.
  3. Enter a name (e.g., "Pre-CO #4 baseline") and optional notes.
  4. Click Capture. The system records all 10 column values for every budget line at the current moment.

Comparing Snapshots

Select any two snapshots and click Compare. A side-by-side variance modal shows the delta for each column and each line — positive variance (budget grew) in green, negative variance (budget shrank) in red. Snapshots are immutable after creation.

Forecast to Complete Tab

The Forecast to Complete tab projects final cost outcomes based on current progress. For each budget line item, enter the estimated percent complete to see the system calculate EAC, ETC, and variance.

FieldFormula
% CompleteUser-entered estimate of work done on this line.
EAC (Estimate at Completion)Cost Incurred ÷ % Complete — projects final cost at current efficiency.
ETC (Estimate to Complete)EAC − Cost Incurred — remaining cost to finish the line.
VarianceCurrent Est Budget − EAC — positive means under budget, negative means over.

The Totals row at the bottom aggregates EAC, ETC, and Variance across all lines, giving a project-level forecast health summary. EAC values are persisted back to each line item when saved.

Forecast Accuracy EAC calculations are only as accurate as the % Complete estimates entered. Update forecasts regularly — especially before owner meetings and monthly billings — to maintain reliable projections.
Tip Use Lock Budget to freeze a baseline before tracking changes. The four tabs (Overview / Changes / Snapshots / Forecast) scroll sideways on a phone — swipe the tab strip to reach Forecast.

09 RFIs

Requests for Information (RFIs) are formal questions submitted to the design team or owner when clarification is needed on contract documents.

Creating an RFI

  1. Navigate to RFIs in the sidebar and click + New RFI.
  2. Select the project, enter a subject, question text, and required-by date.
  3. Assign the RFI to the appropriate respondent.
  4. Click Submit.

Responding to an RFI

The assigned respondent opens the RFI and enters their response in the Official Response field, then clicks Respond. The submitter is notified and the RFI status updates to Responded.

Closing an RFI

After reviewing the response, the originator clicks Close RFI to mark it resolved. Closed RFIs are read-only but remain searchable.

RFI Status Workflow

Open Responded Closed
Tip Always set a due date and a responsible party — overdue RFIs are flagged automatically on the Dashboard.

10 Submittals

Submittals track shop drawings, product data, samples, and other contractor-furnished documents that require design team review before fabrication or installation.

Creating a Submittal

  1. Navigate to Submittals and click + New Submittal.
  2. Select the project, spec section, submittal type, and description.
  3. Set the required-by date and assign the reviewer.
  4. Attach the submittal document and click Submit.

Review Cycle

The reviewer opens the submittal, reviews the attached documents, selects a review action, and enters comments. Available review actions:

  • Approved — no revisions required; work may proceed.
  • Approved as Noted — minor comments; work may proceed subject to corrections.
  • Revise and Resubmit — significant issues; corrected submittal required.
  • Rejected — submittal does not comply; new submittal required.

Revision Tracking

Each resubmission creates a new revision number (Rev 01, Rev 02, etc.) while preserving the full history. The submittal log shows all revisions and their review outcomes.

Tip Track ball-in-court (who owes the next action) and use the Status filter to see only what's waiting on you.

11 Punch List

The Punch List tracks deficiencies and incomplete work items identified during inspections or walkthroughs near project completion.

Creating Punch Items

  1. Navigate to Punch List and click + New Item.
  2. Enter the item description, location, responsible party, and due date.
  3. Attach photos if available.
  4. Click Save.

Assigning and Resolving Items

Assign punch items to the appropriate subcontractor or foreman. The assignee updates the status to In Progress when work begins and Resolved when complete. The project manager can verify and mark items Closed.

Filtering

Use the filter bar to view items by status, assignee, location, or due date. Use the Export button to generate a punch list report in PDF format.

Punch Item Status

Open In Progress Resolved Closed
Tip Assign each item to a subcontractor with a due date. Overdue items are flagged, and you can filter the list by status.

12 Meeting Minutes

Meeting Minutes capture decisions, agenda items, and action items from project meetings — OAC meetings, coordination meetings, and safety meetings.

Creating a Meeting

  1. Navigate to Meeting Minutes and click + New Meeting.
  2. Enter the meeting type, date, location, and attendees.
  3. Add agenda items in the order they will be discussed.
  4. Save as a draft to fill in during or after the meeting.

Agenda and Action Items

Within each agenda item, record discussion notes and assign action items. Each action item has an owner, due date, and status. Action items carry forward to the next meeting's open items list if not yet resolved.

Distributing Minutes

  1. After the meeting, finalize the minutes and click Distribute.
  2. Select recipients from the attendee list or enter additional emails.
  3. The system generates a formatted PDF and emails it to all recipients.
  4. Minutes are locked after distribution.
Tip Capture action items with an owner and due date; open items carry forward so nothing is lost between meetings.

13 Gantt Chart

The Gantt Chart provides a visual timeline of project tasks, milestones, and dependencies.

Viewing the Project Timeline

Navigate to Gantt in the sidebar to see the current project's timeline. Tasks are displayed as horizontal bars scaled to the project calendar. Drag the timeline to scroll through time periods, or use the zoom controls to switch between day/week/month views.

Milestones on the Gantt

Milestones (see Section 14) appear as diamond markers on the Gantt. Hover over a milestone to see its description and target date.

Task Dependencies

Dependency lines connect tasks that must finish before the next can start (Finish-to-Start). If a predecessor task slips, the Gantt highlights dependent tasks in amber to indicate potential schedule impact.

Tip Use the Critical Path toggle in the Gantt toolbar to highlight only the tasks that directly determine project completion date.
Tip On a phone the task-name column stays frozen while you swipe the timeline sideways, so you never lose track of which bar belongs to which task.

14 Milestones

Milestones mark key project events — permit approval, foundation pour, substantial completion, final inspection — that have no duration but must be tracked against the schedule.

Creating a Milestone

  1. Navigate to Milestones and click + New Milestone.
  2. Enter the milestone name, target date, and description.
  3. Link to the appropriate project.
  4. Click Save.

Tracking Completion

When a milestone is reached, open it and click Mark Complete. Enter the actual completion date and any notes. Completed milestones show a green checkmark on the Gantt chart and in the project dashboard milestone panel.

Milestone Status

Upcoming At Risk Complete
Tip The same milestone name can recur across different project phases — each occurrence is tracked separately, so give repeated stages clear identifiers. Tap the pencil icon to edit one.

15 QMS Inspections

The Quality Management System (QMS) module tracks non-conformances, daily quality control checklists, and formal inspection records.

Non-Conformance Reports (NCRs)

  1. Navigate to QMS → NCRs and click + New NCR.
  2. Describe the non-conforming condition, location, and affected specification section.
  3. Assign a corrective action responsible party and due date.
  4. Attach photos or supporting documents.
  5. Submit the NCR. The assignee is notified to take corrective action.
  6. After correction, the QC manager verifies and closes the NCR.

Daily QC Checklists

Daily checklists provide a structured quality verification routine for work-in-place. Navigate to QMS → Daily Checklists and select today's checklist template. Check off each inspection item, enter observations, and submit. All checklist submissions are date-stamped and tied to the project record.

Inspection Records

Formal inspection records (structural, mechanical, electrical, etc.) are logged under QMS → Inspections. Each record captures the inspection type, inspector name, date, result (pass/fail/conditional), and any required follow-up actions.

Tip Inspections are project-scoped — choose the project first. Forms save as Draft and can be Submitted once complete.

16 Daily Safety

The Safety module supports daily safety reporting, Job Hazard Analyses, and OSHA recordkeeping requirements.

Daily Safety Reports

  1. Navigate to Safety → Daily Reports and click + New Report.
  2. Enter the date, weather conditions, crew size, and superintendent name.
  3. Document any safety observations, near-misses, or incidents.
  4. Note any toolbox talks or safety briefings conducted.
  5. Click Submit to finalize the daily report.

Job Hazard Analysis (JHA)

JHAs break down hazardous tasks into steps and identify controls for each hazard. Navigate to Safety → JHAs to create or review JHAs. A JHA must be reviewed and signed by all workers performing the task before work begins. The system records acknowledgment timestamps.

OSHA 300A Log

Work-related injuries and illnesses are recorded under Safety → OSHA Log. The system auto-populates the OSHA 300A summary from individual incident entries. At year-end, export the 300A summary for posting and regulatory reporting.

Tip Complete the Daily Safety checklist every day, and fill out a JHA (Job Hazard Analysis) before any high-risk task.

17 Reports

MLP CMS provides a library of pre-built reports covering financial, operational, and compliance data across all modules.

Available Reports

ReportDescription
Budget vs. ActualsCost code level comparison of budgeted vs. billed amounts
CO LogAll change orders by project with status and value
PA SummaryCumulative billing history including retainage
Open RFIsAll unanswered RFIs with age and assigned respondent
Submittal LogAll submittals with current revision and review status
Punch List SummaryOpen punch items grouped by responsible party
Safety Incident LogOSHA-recordable incidents for the selected period
NCR LogOpen and closed non-conformances with corrective actions

Generating a PDF Report

  1. Navigate to Reports in the sidebar.
  2. Select the desired report from the list.
  3. Set filter parameters (project, date range, status).
  4. Click Generate PDF. The report opens in a preview panel.
  5. Download or print from the preview toolbar.

Export Options

Most reports support export as PDF or CSV. The CSV export is suitable for import into Excel or other financial analysis tools.

Tip Export any report to PDF or CSV, then confirm the downloaded file opens and isn't empty before sharing it.

18 System Settings

System Settings are accessible from the sidebar (gear icon at the bottom) and require administrator privileges. Settings changes are recorded in the Activity Log.

Company Settings

Set your company name, logo, address, and contact information. These values appear on all generated PDFs and email correspondence.

User Management

Administrators can invite new users, assign roles, and deactivate accounts. Available roles typically include:

  • Administrator — full access including system settings
  • Project Manager — create and manage all project records, approve COs and PAs
  • Field User — create RFIs, daily reports, punch items; cannot approve financial records
  • Read-Only — view all records; no create/edit access

Passkey Management

Users can register multiple passkeys (e.g., laptop Face ID and a hardware security key). Under Settings → Passkeys, click + Register Passkey and follow the browser prompt. Existing passkeys can be named and removed from this panel.

Note The System Settings page is protected by a passkey gate — you must re-verify with a passkey even if already logged in. This prevents unauthorized access if you leave your session unattended.

Performance & Admin Settings

Advanced settings include database maintenance options, session timeout duration, and feature toggles. These settings should only be modified by technical administrators.

Recycle Bin

Deleted records are held in the Recycle Bin for 30 days before permanent deletion. Administrators can restore items from the Recycle Bin. Purging items from the Recycle Bin is permanent and cannot be undone.

Tip Register passkeys and manage users and roles here. Data import is restricted to the owner account.

19 Offline Mode

MLP CMS is offline-first. You can continue working without an internet connection — all changes save locally and sync automatically when connectivity is restored.

How Offline Mode Works

  1. Your device loses connectivity (WiFi drops, cellular dead zone, airplane mode).
  2. An amber offline banner appears at the top of the screen showing the number of changes queued locally.
  3. Continue working normally — create records, fill forms, update statuses. Everything saves to the local queue.
  4. When connectivity is restored, the banner changes and the system automatically syncs all queued changes to the server.
  5. If the same field was changed by two different users during the offline period, a conflict resolution modal appears (see below).
Tip The amber offline banner shows how many changes are queued. You can keep working normally — everything saves locally and syncs when you reconnect.

Conflict Resolution

A 3-way merge is performed when changes sync. If two users edited the same field while both were offline, the conflict resolution modal shows:

  • Your version — what you entered offline
  • Server version — what the other user saved
  • Original value — what the field said before either edit

For each conflicting field, click the version you want to keep, then click Resolve. Non-conflicting fields are merged automatically — you only need to decide on the conflicting ones.

Warning If you see a conflict resolution modal, do not close the tab. Choose your preferred value for each field and click Resolve to sync safely. Closing the tab without resolving may cause your changes to be lost.

20 Notifications & Toasts

MLP CMS uses toast notifications to provide immediate feedback on every action. Toasts appear in the bottom-right corner of the screen and auto-dismiss after a few seconds.

Toast Types

TypeColorWhen It Appears
SuccessGreenRecord saved, approved, or exported successfully
ErrorRedSave failed, validation error, or server error
WarningAmberAction completed with caveats (e.g., partial sync)
InfoBlueInformational updates (e.g., sync complete, session restored)

409 Duplicate Detection

When you attempt to save a record that conflicts with an existing record (e.g., duplicate CO number, duplicate RFI number), the system returns a 409 Conflict response and shows a red toast: "A record with this identifier already exists." Change the conflicting field and save again.

In-App Notifications

The bell icon in the header shows unread notifications for assignments, approvals, and @mentions. Click the bell to open the notification panel. Mark items as read individually or use Mark All Read.

Tip Green toasts mean success, red means error, amber means warning — they auto-dismiss after a few seconds.

21 Troubleshooting

Most issues in MLP CMS have simple solutions. If you cannot resolve an issue using this guide, use the Report an Issue button in the sidebar or email cms@mlpsolutionsgroup.com.

Session Expired

Symptom: You are redirected to the login screen mid-work.
Resolution: Log in again. MLP CMS will automatically return you to the page you were on before the session expired — your unsaved form data may not be preserved, but your navigation position is restored.

Offline Banner Won't Clear

Symptom: The amber offline banner remains after reconnecting.
Resolution: Check your internet connection. If connected, wait 30 seconds for the auto-sync to complete. If it persists, refresh the page — your queued changes are stored locally and will re-attempt sync on reload.

409 Conflict Errors

Symptom: Red toast saying "A record with this identifier already exists."
Resolution: Change the duplicate field value (e.g., CO number, RFI number) to a unique value and save again.

Conflict Resolution Modal Appears

Warning If you see a conflict resolution modal, do not close the tab. Choose your preferred value for each field and click Resolve to sync safely.

This modal appears when two users edited the same record while offline. Select the correct value for each conflicting field and click Resolve.

PDF Not Generating

Symptom: Clicking "Export PDF" produces no output or an error.
Resolution:

  • Ensure you are connected to the internet (PDF generation happens server-side).
  • Verify the record is in a completed/approved state — draft records cannot be exported.
  • Check that your browser is not blocking pop-ups (PDFs open in a new tab).
  • Try a different browser. If the issue persists, contact support.

Unable to Edit a CO

Symptom: A Change Order is read-only and shows a lock icon.
Resolution: The CO is locked because it has been included in a Pay Application. Locked COs cannot be edited. Contact your project administrator if a correction is required.

Contacting Support

Click Report an Issue in the sidebar to open a pre-filled support request, or email cms@mlpsolutionsgroup.com directly. Include the project name, module, and a description of what you were doing when the issue occurred.

Tip If something looks out of date, hard-refresh the page; check the offline indicator; and remember that after a session timeout you're returned to the exact page you were on.

22 Release Notes

v3.1.6 — Current Release

  • Mobile Financial Tables — wide financial tables now display as stacked, labeled cards on phones, including the Pay Application G703 Schedule of Values and Change Order line items.
  • Frozen Gantt Task Column — the Gantt task-name column now stays frozen while you scroll the timeline sideways.
  • Server-Enforced Idle Logout — sessions time out server-side after inactivity and return you automatically to the page you were on after re-login.
  • Pay Application Stepper — a readable, scrollable Pay Application workflow stepper.
  • Mobile Polish — general alignment and scroll improvements across all modules on small screens.

v0.10.0 — Prior Release

  • Offline-First Sync — full offline support with local change queue; amber banner shows pending sync count.
  • 3-Way Merge Conflict Resolution — structured conflict resolution modal when two offline users edit the same field; preserves your work and the server version for comparison.
  • Session Restore — after session expiry and re-login, users are returned automatically to the page they were on.
  • User Guide — this comprehensive in-app user guide (all 22 sections).
  • Logo Consistency — unified logo treatment across sidebar, header, PDFs, and login screen.
  • QuickBooks Online Integration — admin-level sync of Vendors, Cost Codes, Pay Applications, and Vendor Invoices to QBO via OAuth 2.0; one-click or bulk sync from System Settings.

v0.9.x — Prior Releases

  • QMS Module — NCR tracking, daily QC checklists, and formal inspection records.
  • Daily Safety Module — daily safety reports, JHA management, OSHA 300A log.
  • G702/G703 PDF Export — AIA-formatted pay application PDF generation with full G703 continuation sheet.
  • CO Locking — Change Orders automatically lock when included in a Pay Application to prevent retroactive edits.
  • Optimistic Locking — version-based conflict detection prevents silent overwrites when multiple users edit the same record concurrently.
  • Activity Log — append-only audit trail for all create/edit/status-change actions with user attribution.
  • Passkey Gate on System Settings — re-authentication required to access admin settings, even within an active session.
  • Navigation Performance Label — performance indicator in sidebar navigation for administrators.

23 QuickBooks Online Integration

The QuickBooks Online (QBO) integration lets administrators push key financial records from MLP CMS directly into QuickBooks Online — eliminating double-entry and keeping your accounting system in sync.

Admin Only This section requires an Administrator role. The QBO panel is inside System Settings, which is protected by a passkey gate.

Prerequisites

  • Administrator role in MLP CMS
  • An active QuickBooks Online account (any tier: Simple Start, Essentials, Plus, or Advanced)
  • An Intuit Developer app with a Client ID and Client Secret

Step 1 — Create an Intuit Developer App

  1. Go to developer.intuit.com and sign in with your QuickBooks credentials.
  2. Click Create an app → select QuickBooks Online and Payments.
  3. Under Keys & OAuth, add the Redirect URI exactly as: http://localhost:3000/api/qbo/callback
  4. Copy the Client ID and Client Secret — you will need them in the next step.

Step 2 — Add Credentials to the Server

  1. On the server machine, open the .env file in the application root directory.
  2. Add or update these two lines:
    QBO_CLIENT_ID=<your-client-id>
    QBO_CLIENT_SECRET=<your-client-secret>
  3. Restart the application: pm2 restart mlp-cms

Step 3 — Connect to QuickBooks Online

  1. In MLP CMS, click the gear icon in the sidebar to open System Settings and complete the passkey prompt.
  2. Scroll to the QuickBooks Online Integration panel.
  3. Click Connect to QuickBooks Online. You will be redirected to Intuit's authorization page.
  4. Sign in with your QBO account credentials and click Authorize.
  5. You are returned to MLP CMS. The panel now displays Connected along with your QBO company name.

Syncing Data

Once connected, the QBO panel provides sync controls for four record types:

ButtonMLP CMS SourceQuickBooks Destination
Sync VendorsCompaniesVendors
Sync Cost CodesCost CodesService Items
Sync Pay ApplicationsPay ApplicationsCustomer Invoices
Sync Vendor InvoicesVendor InvoicesBills

Each sync button shows the last sync timestamp and record count after completion. To push all four types at once, click Sync Everything Now.

Disconnecting

To revoke access, click Disconnect in the QBO panel. This removes the stored OAuth tokens from the server. Your QuickBooks data is not affected — only the connection is removed. You can reconnect at any time by repeating Step 3.

Important Notes

  • One-way sync: Data flows from MLP CMS → QuickBooks only. Changes made directly in QuickBooks are not pulled back into MLP CMS.
  • Duplicate prevention: Syncs use find-or-create logic. Records that already exist in QBO (matched by name or number) are skipped — no duplicates are created.
  • Automatic token refresh: QBO access tokens expire after 1 hour. The system refreshes them automatically using the stored refresh token, which is valid for 100 days. No manual action is required unless you see an authentication error.
  • Authentication errors: If a sync fails with an auth error, click Disconnect and reconnect to re-authorize. This is typically needed if the refresh token has expired (after 100 days of no syncs) or if the QBO app credentials were rotated.
  • Sandbox vs Production: The integration defaults to QBO production. If you need to test against a QBO sandbox account, contact your system administrator to set QBO_ENVIRONMENT=sandbox in the server .env.
Tip Run Sync Vendors and Sync Cost Codes first — Pay Application and Invoice syncs reference vendors and items that must exist in QBO before the financial records can be created.