[{"data":1,"prerenderedAt":761},["ShallowReactive",2],{"navigation":3,"docs-navigation":133,"docs-/docs/data-management/import":175,"docs-/docs/data-management/import-surround":756},[4,16,31,61,87,109,119],{"title":5,"path":6,"stem":7,"children":8,"icon":15},"Getting Started","/docs/getting-started","1.docs/1.getting-started/1.index",[9,11],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Quick Start","/docs/getting-started/quick-start","1.docs/1.getting-started/2.quick-start","i-lucide-book-open",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":30},"Core Concepts","i-lucide-lightbulb","/docs/core-concepts","1.docs/2.core-concepts",[22,26],{"title":23,"path":24,"stem":25},"Data Structure","/docs/core-concepts/data-structure","1.docs/2.core-concepts/1.data-structure",{"title":27,"path":28,"stem":29},"Roles & Permissions","/docs/core-concepts/roles-and-permissions","1.docs/2.core-concepts/2.roles-and-permissions",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"Managing Assets","i-lucide-package","/docs/managing-assets","1.docs/3.managing-assets",[37,41,45,49,53,57],{"title":38,"path":39,"stem":40},"Asset List","/docs/managing-assets/asset-list","1.docs/3.managing-assets/1.asset-list",{"title":42,"path":43,"stem":44},"Add & Edit Assets","/docs/managing-assets/add-edit-asset","1.docs/3.managing-assets/2.add-edit-asset",{"title":46,"path":47,"stem":48},"Statuses & Conditions","/docs/managing-assets/asset-status","1.docs/3.managing-assets/3.asset-status",{"title":50,"path":51,"stem":52},"Photos","/docs/managing-assets/photos","1.docs/3.managing-assets/4.photos",{"title":54,"path":55,"stem":56},"Geolocation","/docs/managing-assets/geolocation","1.docs/3.managing-assets/5.geolocation",{"title":58,"path":59,"stem":60},"Barcode Scanning","/docs/managing-assets/barcode-scanning","1.docs/3.managing-assets/6.barcode-scanning",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":30},"Data Management","i-lucide-database","/docs/data-management","1.docs/4.data-management",[67,71,75,79,83],{"title":68,"path":69,"stem":70},"Categories & Types","/docs/data-management/categories-and-types","1.docs/4.data-management/1.categories-and-types",{"title":72,"path":73,"stem":74},"Locations","/docs/data-management/locations","1.docs/4.data-management/2.locations",{"title":76,"path":77,"stem":78},"Import","/docs/data-management/import","1.docs/4.data-management/3.import",{"title":80,"path":81,"stem":82},"Export","/docs/data-management/export","1.docs/4.data-management/4.export",{"title":84,"path":85,"stem":86},"Reports","/docs/data-management/reports","1.docs/4.data-management/5.reports",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":30},"Organisation","i-lucide-building-2","/docs/organisation","1.docs/5.organisation",[93,97,101,105],{"title":94,"path":95,"stem":96},"Organisation Settings","/docs/organisation/organisation-settings","1.docs/5.organisation/1.organisation-settings",{"title":98,"path":99,"stem":100},"Members","/docs/organisation/members","1.docs/5.organisation/2.members",{"title":102,"path":103,"stem":104},"Custom Configuration","/docs/organisation/custom-configuration","1.docs/5.organisation/3.custom-configuration",{"title":106,"path":107,"stem":108},"Your Profile","/docs/organisation/your-profile","1.docs/5.organisation/4.your-profile",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":30},"Mobile & Sync","i-lucide-smartphone","/docs/mobile-and-sync","1.docs/6.mobile-and-sync",[115],{"title":116,"path":117,"stem":118},"Mobile App","/docs/mobile-and-sync/mobile-app","1.docs/6.mobile-and-sync/1.mobile-app",{"title":120,"icon":121,"path":122,"stem":123,"children":124,"page":30},"Troubleshooting","i-lucide-wrench","/docs/troubleshooting","1.docs/7.troubleshooting",[125,129],{"title":126,"path":127,"stem":128},"Common Issues","/docs/troubleshooting/common-issues","1.docs/7.troubleshooting/1.common-issues",{"title":130,"path":131,"stem":132},"Clear Browser Cache","/docs/troubleshooting/clear-browser-cache","1.docs/7.troubleshooting/2.clear-browser-cache",[134],{"title":135,"path":136,"stem":137,"children":138,"page":30},"Docs","/docs","1.docs",[139,143,147,155,162,168,171],{"title":5,"path":6,"stem":7,"children":140,"icon":15},[141,142],{"title":10,"path":6,"stem":7},{"title":12,"path":13,"stem":14},{"title":17,"icon":18,"path":19,"stem":20,"children":144,"page":30},[145,146],{"title":23,"path":24,"stem":25},{"title":27,"path":28,"stem":29},{"title":32,"icon":33,"path":34,"stem":35,"children":148,"page":30},[149,150,151,152,153,154],{"title":38,"path":39,"stem":40},{"title":42,"path":43,"stem":44},{"title":46,"path":47,"stem":48},{"title":50,"path":51,"stem":52},{"title":54,"path":55,"stem":56},{"title":58,"path":59,"stem":60},{"title":62,"icon":63,"path":64,"stem":65,"children":156,"page":30},[157,158,159,160,161],{"title":68,"path":69,"stem":70},{"title":72,"path":73,"stem":74},{"title":76,"path":77,"stem":78},{"title":80,"path":81,"stem":82},{"title":84,"path":85,"stem":86},{"title":88,"icon":89,"path":90,"stem":91,"children":163,"page":30},[164,165,166,167],{"title":94,"path":95,"stem":96},{"title":98,"path":99,"stem":100},{"title":102,"path":103,"stem":104},{"title":106,"path":107,"stem":108},{"title":110,"icon":111,"path":112,"stem":113,"children":169,"page":30},[170],{"title":116,"path":117,"stem":118},{"title":120,"icon":121,"path":122,"stem":123,"children":172,"page":30},[173,174],{"title":126,"path":127,"stem":128},{"title":130,"path":131,"stem":132},{"id":176,"title":76,"body":177,"description":750,"extension":751,"meta":752,"navigation":753,"path":77,"seo":754,"stem":78,"__hash__":755},"docs/1.docs/4.data-management/3.import.md",{"type":178,"value":179,"toc":724},"minimark",[180,184,188,193,201,217,222,225,229,301,305,308,331,335,338,357,360,364,367,371,374,451,454,458,464,467,471,513,517,528,532,537,540,543,598,601,622,626,629,655,662,666,669,692,696,699,710,714,721],[181,182,76],"h1",{"id":183},"import",[185,186,187],"p",{},"batapp supports several CSV import workflows. Use them to set up your asset structure quickly or update existing data in bulk.",[189,190,192],"h2",{"id":191},"asset-import","Asset Import",[185,194,195,196,200],{},"Asset import is used from the ",[197,198,199],"strong",{},"Assets"," page. There are two asset import modes:",[202,203,204,211],"ul",{},[205,206,207,210],"li",{},[197,208,209],{},"Full import"," for creating new assets in bulk",[205,212,213,216],{},[197,214,215],{},"Purchase import"," for updating purchase data on existing assets",[218,219,221],"h3",{"id":220},"full-import","Full Import",[185,223,224],{},"Use full import to create new assets in bulk.",[218,226,228],{"id":227},"required-columns","Required Columns",[230,231,232,245],"table",{},[233,234,235],"thead",{},[236,237,238,242],"tr",{},[239,240,241],"th",{},"Column",[239,243,244],{},"Notes",[246,247,248,257,265,272,280,293],"tbody",{},[236,249,250,254],{},[251,252,253],"td",{},"Code",[251,255,256],{},"Unique asset identifier",[236,258,259,262],{},[251,260,261],{},"Category Name",[251,263,264],{},"Type name",[236,266,267,270],{},[251,268,269],{},"Type Name",[251,271,264],{},[236,273,274,277],{},[251,275,276],{},"Description",[251,278,279],{},"Asset description",[236,281,282,285],{},[251,283,284],{},"Location Path",[251,286,287,288,292],{},"Location path (e.g. ",[289,290,291],"code",{},"Head Office / Floor 2 / Room 201",")",[236,294,295,298],{},[251,296,297],{},"Status",[251,299,300],{},"Must match a valid status name",[218,302,304],{"id":303},"optional-columns","Optional Columns",[185,306,307],{},"All other asset fields are optional, including:",[202,309,310,313,316,319,322,325,328],{},[205,311,312],{},"Category Code, Type Code, and Location Code",[205,314,315],{},"Condition",[205,317,318],{},"Make, model, serial number, asset number, assignee, quantity",[205,320,321],{},"Purchase price, purchase date, supplier, invoice number, cost centre",[205,323,324],{},"Previous asset code, notes",[205,326,327],{},"Geolocation fields (if enabled)",[205,329,330],{},"Legacy custom fields and custom configured fields",[218,332,334],{"id":333},"auto-creation-during-full-import","Auto-Creation During Full Import",[185,336,337],{},"Full import can create related records automatically when needed:",[202,339,340,346,352],{},[205,341,342,345],{},[197,343,344],{},"Categories"," are created if the category name does not already exist",[205,347,348,351],{},[197,349,350],{},"Types"," are created if the type does not already exist in that category",[205,353,354,356],{},[197,355,72],{}," are created from the path if the location does not already exist",[185,358,359],{},"If you include category, type, or location codes, batapp uses those codes for the newly created records. If you leave them blank, batapp generates the next available code automatically.",[218,361,363],{"id":362},"template","Template",[185,365,366],{},"Download the template from the import panel. The template includes all available columns based on your organisation settings, including optional fields that are currently enabled.",[218,368,370],{"id":369},"purchase-import","Purchase Import",[185,372,373],{},"Use purchase import to update existing assets with financial data. This is useful when purchase records are maintained separately (e.g. in an accounting system).",[230,375,376,388],{},[233,377,378],{},[236,379,380,382,386],{},[239,381,241],{},[239,383,385],{"align":384},"center","Required",[239,387,244],{},[246,389,390,400,410,424,433,442],{},[236,391,392,394,397],{},[251,393,253],{},[251,395,396],{"align":384},"Yes",[251,398,399],{},"Must match an existing asset code",[236,401,402,405,407],{},[251,403,404],{},"Purchase Price",[251,406,396],{"align":384},[251,408,409],{},"Numeric value",[236,411,412,415,418],{},[251,413,414],{},"Purchase Date",[251,416,417],{"align":384},"No",[251,419,420,421],{},"Format: ",[289,422,423],{},"YYYY-MM-DD",[236,425,426,429,431],{},[251,427,428],{},"Supplier",[251,430,417],{"align":384},[251,432],{},[236,434,435,438,440],{},[251,436,437],{},"Invoice Number",[251,439,417],{"align":384},[251,441],{},[236,443,444,447,449],{},[251,445,446],{},"Cost Centre",[251,448,417],{"align":384},[251,450],{},[185,452,453],{},"Purchase import only updates existing assets. It does not create new assets.",[189,455,457],{"id":456},"asset-type-import","Asset Type Import",[185,459,460,461,463],{},"Asset types can also be imported directly from the ",[197,462,68],{}," page.",[185,465,466],{},"This is useful when you want to set up your classification structure before importing assets.",[218,468,470],{"id":469},"columns","Columns",[230,472,473,483],{},[233,474,475],{},[236,476,477,479,481],{},[239,478,241],{},[239,480,385],{"align":384},[239,482,244],{},[246,484,485,494,503],{},[236,486,487,489,491],{},[251,488,261],{},[251,490,396],{"align":384},[251,492,493],{},"Categories are created automatically if they do not exist",[236,495,496,498,500],{},[251,497,269],{},[251,499,396],{"align":384},[251,501,502],{},"Must be unique within the category",[236,504,505,508,510],{},[251,506,507],{},"Type Code",[251,509,417],{"align":384},[251,511,512],{},"If blank, batapp generates the next available code",[218,514,516],{"id":515},"behaviour","Behaviour",[202,518,519,522,525],{},[205,520,521],{},"Duplicate type names in the same category are blocked",[205,523,524],{},"Duplicate type codes are blocked",[205,526,527],{},"Existing types in the same category are not imported again",[189,529,531],{"id":530},"location-import","Location Import",[185,533,534,535,463],{},"Locations can be imported directly from the ",[197,536,72],{},[185,538,539],{},"This is useful when you want to build your full location tree before importing assets.",[218,541,470],{"id":542},"columns-1",[230,544,545,555],{},[233,546,547],{},[236,548,549,551,553],{},[239,550,241],{},[239,552,385],{"align":384},[239,554,244],{},[246,556,557,569,578],{},[236,558,559,561,563],{},[251,560,284],{},[251,562,396],{"align":384},[251,564,565,566],{},"Use slash-separated paths such as ",[289,567,568],{},"Head Office/Floor 1/Board Room",[236,570,571,573,575],{},[251,572,253],{},[251,574,417],{"align":384},[251,576,577],{},"Used for the final location in the path",[236,579,580,583,585],{},[251,581,582],{},"Type",[251,584,417],{"align":384},[251,586,587,590,591,594,595,597],{},[289,588,589],{},"asset"," or ",[289,592,593],{},"grouping","; defaults to ",[289,596,589],{}," for the final location",[218,599,516],{"id":600},"behaviour-1",[202,602,603,606,612,619],{},[205,604,605],{},"batapp creates intermediate parent locations automatically",[205,607,608,609,611],{},"Parent locations are created as ",[197,610,593],{}," locations",[205,613,614,615,590,617],{},"The final location in each path can be either ",[197,616,589],{},[197,618,593],{},[205,620,621],{},"Duplicate paths and duplicate codes are blocked",[189,623,625],{"id":624},"import-process","Import Process",[185,627,628],{},"All import workflows follow the same basic process:",[630,631,632,638,644,650],"ol",{},[205,633,634,637],{},[197,635,636],{},"Upload"," your CSV file",[205,639,640,643],{},[197,641,642],{},"Preview"," — batapp validates every row and shows errors inline",[205,645,646,649],{},[197,647,648],{},"Fix"," any validation errors in your CSV and re-upload, or proceed with valid rows",[205,651,652,654],{},[197,653,76],{}," — batapp processes the valid rows",[185,656,657],{},[658,659],"img",{"alt":660,"src":661},"Import preview with validation","/docs/images/data-management/import-preview.png",[218,663,665],{"id":664},"validation","Validation",[185,667,668],{},"batapp checks for:",[202,670,671,674,677,680,683,686,689],{},[205,672,673],{},"Required fields present and non-empty",[205,675,676],{},"Duplicate values within the file where uniqueness is required",[205,678,679],{},"Conflicts with existing records",[205,681,682],{},"Valid status and condition values where applicable",[205,684,685],{},"Valid date formats",[205,687,688],{},"Numeric values where expected",[205,690,691],{},"Valid location and import-specific field values",[218,693,695],{"id":694},"error-handling","Error Handling",[185,697,698],{},"Rows that fail validation are listed with the specific error. You can:",[202,700,701,704,707],{},[205,702,703],{},"Fix the errors in your CSV and re-upload",[205,705,706],{},"Download an error CSV containing only the failed rows",[205,708,709],{},"Import the valid rows and deal with errors separately",[189,711,713],{"id":712},"permissions","Permissions",[185,715,716,717,720],{},"Import is intended for users who can manage setup data, typically ",[197,718,719],{},"Admin"," users.",[185,722,723],{},"For asset imports, users need full location access so batapp can validate rows efficiently. If your organisation uses location-based restrictions, admins still have the required access.",{"title":725,"searchDepth":726,"depth":726,"links":727},"",2,[728,737,741,745,749],{"id":191,"depth":726,"text":192,"children":729},[730,732,733,734,735,736],{"id":220,"depth":731,"text":221},3,{"id":227,"depth":731,"text":228},{"id":303,"depth":731,"text":304},{"id":333,"depth":731,"text":334},{"id":362,"depth":731,"text":363},{"id":369,"depth":731,"text":370},{"id":456,"depth":726,"text":457,"children":738},[739,740],{"id":469,"depth":731,"text":470},{"id":515,"depth":731,"text":516},{"id":530,"depth":726,"text":531,"children":742},[743,744],{"id":542,"depth":731,"text":470},{"id":600,"depth":731,"text":516},{"id":624,"depth":726,"text":625,"children":746},[747,748],{"id":664,"depth":731,"text":665},{"id":694,"depth":731,"text":695},{"id":712,"depth":726,"text":713},"Bulk importing assets, asset types, and locations from CSV files.","md",{},true,{"title":76,"description":750},"-YIz3d7swVJr5b3CEhPYLkPUzCj0zzPW15efqZ1id8I",[757,759],{"title":72,"path":73,"stem":74,"description":758,"children":-1},"Setting up and managing the location hierarchy in batapp.",{"title":80,"path":81,"stem":82,"description":760,"children":-1},"Exporting asset data to CSV for use in spreadsheets or other systems.",1790086837300]