Import a review template by CSV

Applies to: Inspections & Checklists Hub |  Observations & Coaching Hub

Use this guide to import review templates with a CSV. Each row is one insight. Fill only the columns that apply. If any row is invalid, nothing is imported, and you'll get a preview before importing anything.

Quick start

  1. Copy the header from the sample below.
  2. Add one row per insight.
  3. Only fill optional columns when the insight type needs them.
  4. In the admin, go to Reviews → Import Template.
  5. Choose your CSV — the preview opens straight away. Fix anything flagged, then import.
  6. You need permission to edit reviews to see and use the import screen.

Creating a new template vs updating an existing one

Create a new template

  • Pick “New” in the import screen.
  • Fill in the template name, description, and subject.
  • Upload your CSV. The importer creates the template, sections, and insights in one go.
  • Your template will be created as a Draft. You'll need to publish it before it can be used.
  • Before publishing, make sure you set the targeting and permissions for the template.

Update an existing template

  • Pick “Existing” and choose the template.
  • Upload your CSV.
  • Existing sections and insights stay in place — nothing is removed. Your import will only append your sections and insights to the end.

Required header columns (always include)

  • section_name     — The section this insight sits under.
  • title     — The insight title.
  • description     — A short description shown to reviewers.
  • type     — One of: vibe    , percentage    , kpi    , yesno    , yesnona    , noyes    , noyesna    , dropdown    , scoreable_dropdown    , numeric    , temperature    , date    /datetime    , currency    , distance    , weight    , text    , signature    , personpicker    , checkbox    .
  • required     — true/false    .
  • photo_required     — true/false    .

Optional columns — when to use them

dropdown_options    

  • Use when type     is dropdown     or scoreable_dropdown    .
  • Format: Option|Option|Option     (plain), or Label:Score|Label:Score     (scoreable).
  • Example: Great:100|Okay:50|Poor:0    .

note_required_for_answer   

    • Use for yes/no style insights: yesno   , yesnona   , noyes   , noyesna   .
    • Accepts: yes   , no   , na   , yesno   , yesnona   , or leave blank.
    • Meaning: which answer choices force the reviewer to add a note. It does not mean “no note required”; instead it lists the answers that do require a note.
      • yes   /no   /na   : only that answer requires a note.
      • yesno   : both Yes and No require a note.
      • yesnona   : Yes, No, and N/A require a note (only valid for types with N/A).
    • If left blank, notes are not forced for any answer.

score_weight    

  • Use when you want the insight to contribute to scoring.
  • Types that can use it: yesno    , yesnona    , noyes    , noyesna    , vibe    , kpi    , percentage    , scoreable_dropdown    , numeric    , temperature    , currency    , distance    , weight    , checkbox    .
  • Whole number 0–10    . Leave blank to ignore in scoring.
  • target_min    , target_max    
  • Use for thresholds on: numeric    , temperature    , currency    , distance    , weight    .
  • Must be numeric if provided.

unit    

  • Use when the type needs a unit: temperature    , distance    , weight  .
  • Allowed values:
    • temperature    : celsius    , fahrenheit    , kelvin    
    • distance    : mm    , cm    , m    , km    , inch    , feet    , yard    , mile    , custom    
    • weight    : g    , kg    , tonne    , ounce    , pound    , stone    , ton    , custom   

custom_unit    

  • Use with unit=custom     (distance/weight) or for currency symbols.
  • Up to 5 characters.

checkbox_label    

  • Only for checkbox     type.

Which optional columns to fill by insight type

  • dropdown     — dropdown_options    
  • scoreable_dropdown     — dropdown_options    , optional score_weight    
  • yesno     / yesnona     / noyes     / noyesna     — optional score_weight    
  • vibe    , kpi    , percentage     — optional score_weight    
  • numeric    , temperature    , currency    , distance    , weight     — optional score_weight    , target_min    , target_max    ; unit     (and custom_unit     if you use custom    )
  • checkbox     — optional score_weight    , checkbox_label    

What the importer checks (and blocks)

  • The header columns must match your rows; empty rows are ignored.
  • type     must be one of the allowed values.
  • dropdown_options     must be present for dropdown and scoreable dropdown types, with at least one option.
  • score_weight     must be a whole number 0–10     if provided.
  • target_min     and target_max     must be numeric if provided.
  • Unrecognised distance/weight units become custom    ; we store your custom_unit     (or a truncated version of unit    ).
  • Currency insights must include custom_unit   with the display label (e.g. £ or $); the unit   column is ignored.
  • Checkbox labels are truncated to 25 characters.
  • Boolean fields (required    , photo_required    ) must be true/false style values; anything else is rejected.
  • Any validation error stops the import; no partial writes.

Sample CSV

section_name,title,description,type,required,photo_required,note_required_for_answer,dropdown_options,target_min,target_max,checkbox_label,score_weight,unit,custom_unit
Cleanliness,Floor Rating,Rate floor condition,scoreable_dropdown,true,true,,"Excellent:100|Good:75|Poor:25",,,,8,,
Safety,Exit Clear,Is the exit clearly marked?,yesnona,true,false,no,,,,,5,,
Safety,Confirm Checks,Confirm safety checks done,checkbox,true,false,,,,,"Checks are complete",0,,
Measurements,Freezer Temperature,Current freezer temperature,temperature,true,false,,,-20,-15,,5,celsius,
Measurements,Aisle Width,Width of main aisle,distance,false,false,,,1.5,3.0,,0,m,
Measurements,Cash Amount,Amount in register,currency,true,false,,,100,500,,0,£,

Tips for a smooth import

  • Keep the header exactly as shown (lowercase with underscores).
  • Leave optional cells blank unless the type needs them.
  • For scoreable dropdowns, every option that has a score must include :Score    .
  • Sense-check thresholds: if you add target_min    /target_max    , make sure they are numbers.
  • Choose your CSV to open the preview, fix anything shown, then import.

Import steps

  1. Create your CSV with the header above.
  2. Add insights, filling only the optional columns needed by that insight type.
  3. In the Template Import screen, choose your CSV; the preview opens automatically.
  4. Fix any issues shown in the preview, then import once it’s clean.
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us