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
- Copy the header from the sample below.
- Add one row per insight.
- Only fill optional columns when the insight type needs them.
- In the admin, go to Reviews → Import Template.
- Choose your CSV — the preview opens straight away. Fix anything flagged, then import.
- 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
typeisdropdownorscoreable_dropdown. - Format:
Option|Option|Option(plain), orLabel: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,kelvindistance:mm,cm,m,km,inch,feet,yard,mile,customweight: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
checkboxtype.
Which optional columns to fill by insight type
dropdown—dropdown_optionsscoreable_dropdown—dropdown_options, optionalscore_weightyesno/yesnona/noyes/noyesna— optionalscore_weightvibe,kpi,percentage— optionalscore_weightnumeric,temperature,currency,distance,weight— optionalscore_weight,target_min,target_max;unit(andcustom_unitif you usecustom)checkbox— optionalscore_weight,checkbox_label
What the importer checks (and blocks)
- The header columns must match your rows; empty rows are ignored.
typemust be one of the allowed values.dropdown_optionsmust be present for dropdown and scoreable dropdown types, with at least one option.score_weightmust be a whole number0–10if provided.target_minandtarget_maxmust be numeric if provided.- Unrecognised distance/weight units become
custom; we store yourcustom_unit(or a truncated version ofunit). - Currency insights must include
custom_unitwith the display label (e.g. £ or $); theunitcolumn 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
- Create your CSV with the header above.
- Add insights, filling only the optional columns needed by that insight type.
- In the Template Import screen, choose your CSV; the preview opens automatically.
- Fix any issues shown in the preview, then import once it’s clean.