Import a PM checklist into Limble CMMS

Limble imports PM templates from its own sample spreadsheet: one row per PM, the schedule as Repeat X Weeks style columns, and each procedure step in its own Instruction column. Our CSVs keep the steps in one cell, so the work is reshaping: split the steps into columns, convert hours to minutes, add a start date and an owner. About 30 minutes for one asset type. Limble accepts up to 100 PM templates per file; the six free sets are 22.

Checked against the Limble help centre on 24 September 2026: How to Bulk Import PMs and Coding Your Own Instructions for Task Imports. Field names change; if your screen differs, trust the screen.

Before you start

Column map

Our CSV columns, left to right: Asset Type (A), PM Title (B), Frequency (C), Trade (D), Est. Hours (E), Downtime Required (F), Procedure Steps (G), Parts / Consumables (H), Safety Requirements (I), Pass / Fail Criteria (J).

Our columnLimble columnWhat to do
PM TitlePM Name (required)Keep as is. Add the asset tag if you run several of the same asset.
Asset TypeAsset IDReplace with the Asset ID from your Limble asset export (the asset name also works, but Limble recommends the ID to avoid a spelling mismatch). One row per asset.
FrequencyRepeat X Days / Repeat X Weeks / Repeat X Months / Repeat X Years (one required)Fill exactly one: Daily = Repeat X Days 1; Weekly = Repeat X Weeks 1; Monthly = Repeat X Months 1; Quarterly = Repeat X Months 3; Semi-annual = Repeat X Months 6; Annual = Repeat X Years 1. Hour-based tasks (forklift 250 hours) cannot be imported as meters: give them Repeat X Months 1 as a placeholder and switch the schedule to the hour meter in Limble after import.
add: start dateScheduling Start On (required)YYYY-MM-DD, the date the first PM should generate. Stagger them (step 4).
add: ownerAssigned to User (User Login) or Assigned to Team (Team Name) (one required)The user login (usually their email) or the exact team name from Locations > Teams.
TradePM Description and Custom TagsTags: ;@mechanical; (the tag must already exist in Limble). With a description: Downtime required: Yes; @mechanical;. Or assign by team when your teams are organised by trade.
Est. HoursEstimated Time (in minutes)Minutes, so =E2*60 (0.5 h = 30).
Downtime RequiredPM Description and Custom TagsText in the description, before the tags (see Trade).
Safety RequirementsInstruction 1 (required)A note the technician reads first: TYPE::LABEL Safety: <your text>. A LABEL shows text without a checkbox.
Procedure StepsInstruction 2 to Instruction 11One step per column, plain text; each becomes a checkbox. Name the extra columns exactly Instruction 3, Instruction 4 and so on (up to 100). Our longest task has 10 steps.
Pass / Fail Criterialast Instruction NAn option list the technician must answer: TYPE::OPTIONLIST Pass/fail: <criteria>; Pass; Fail. Optional follow-up when Fail is picked: ...; Pass; Fail ADDSUBITEM::TRUE TYPE::STARTWO Raise a work order for the failed item.
Parts / ConsumablesPart ID + Part Suggested QtyOne part per PM template by import, using the Part ID from your parts export. List the rest in the description and add them in Limble after.
optionalDefault Priority Level, Task Status Configuration (Green)Priority per your scale. Green = days before the due date the task appears; 7 for annuals so they show up a week ahead. Orange and Red take negative numbers (days overdue).

Step by step

  1. Open Limble's sample file and our CSV side by side. Work in the sample file; it is the one you upload.
  2. Copy PM Title into PM Name.
  3. Fill one schedule column per row from the Frequency map above.
  4. Enter Scheduling Start On. Stagger: weeklies next Monday, monthlies in the first week of next month, quarterlies and annuals spread across the quarter so they do not all generate in the same week.
  5. Fill Assigned to User or Assigned to Team.
  6. Estimated Time (in minutes) = Est. Hours x 60.
  7. Split the steps. In Google Sheets (or Excel 365 with REGEXREPLACE), in a scratch tab: =SPLIT(REGEXREPLACE(G2,"\s?\d+\.\s","|"),"|") puts one step per cell to the right. Without regex: Find and Replace 2. with | (keep the spaces around the number), then 3. and so on, delete the leading 1. , and use Text to Columns with | as the delimiter. Paste the results as values into Instruction 2 onwards, and put TYPE::LABEL Safety: ... in Instruction 1.
  8. Add the pass/fail option list as the last instruction (syntax in the map).
  9. Description column: downtime note plus tags, for example Downtime required: Yes; @mechanical;.
  10. Replace Asset Type with the Asset ID. Duplicate the row for each unit of that asset.
  11. Save as .csv or .xlsx (Limble does not accept .xlsm). Back in the import window, Upload File. Limble lists any row it rejects and why; fix and re-upload. On success it lists the new templates with a wrench icon to open each one and an X to delete a mistake.
  12. Large fleet? Limble's own advice is to import the templates with few instructions and then use PM relations to push one master instruction set to all like templates, so a future change is made once, not twenty times.

What the import will not do

The free CSVs

Every set uses the same ten columns, so one mapping covers all of them. Direct download, no signup:

Using MaintainX instead? Read the MaintainX import guide.

Loading a whole site, not one asset?

The Maintenance Planner Toolkit has all 11 asset classes (39 PM tasks) in one CSV with these same columns, plus an asset register template, a parts min/max calculator, a weekly KPI dashboard, a compliance calendar and a 90-day setup guide. Built by a working maintenance planner, not a software vendor.

See the full toolkit, $99

All import guides