Importing Voters from CSV or Excel
How to import your voter register into Assembley from a CSV or Excel file — the columns each group type expects, how the Class column works for weighted groups, and how invalid rows are handled.
For anything bigger than a handful of voters, importing a file is far quicker than adding people one at a time. Assembley reads .csv, .xlsx, and .xls files, and the columns it expects adapt to the type of the group you're importing into — so the import always matches how that group votes. This article explains the formats.
The columns depend on the group
The import is group-aware. Open the import for the group you want to fill, and the expected columns will be:
- Association group → Name, Email. Each member is given a weight of one automatically.
- Company group without share classes → Name, Email, Share Capital, Voting rights — the direct, two-number format.
- Company group with share classes → Name, Email, Share Capital, Class. The Class column holds the name of a share class you have already created for the group; Assembley looks it up and computes each voter's weight from it.
The format guide inside the import shows the exact columns and an example for the group you're importing into, so you don't have to guess.
How weighted rows are computed
For a company group with classes, you don't put a voting-rights number in the file — you put the class name, and the voting weight is computed as share capital × the class multiplier. So a row with 1,000 capital in an "A" class that carries a ×10 multiplier becomes a voting weight of 10,000. See How Voting Weight Is Calculated. For a company group without classes, you enter the voting rights directly.
Reading the file
A few rules keep imports predictable:
- Row 1 is the header; data starts on row 2.
- It's the column order that's read, not the header text — so the headers can say whatever you like as long as the columns are in the expected order.
- One voter per row.
How errors are handled
The import validates each row and shows you a preview before anything is saved. Common issues — a missing name, an invalid email, a number where text was expected, or (for classed groups) a Class name that doesn't match any class in the group — are flagged per row and those rows are skipped, while the valid rows still import. This means a single bad row never blocks the rest of your file; you fix the flagged rows and re-import them.
Before you import a classed register
If your group uses share classes, create the classes first — the Class column in your file has to match them by name. See Creating Share Classes with Vote Multipliers.
Where to go next
For the group itself, see Creating and Managing Voter Groups. To tidy a register after import, see Editing and Removing Voters.
Related articles
- Creating and Managing Voter GroupsHow voter groups work in Assembley — choosing a voter type (Company vs Association), creating a group with the guided steps, adding voters manually, and importing a register from CSV or Excel.
- Editing and Removing VotersHow to keep your voter register accurate in Assembley — editing a voter's details, removing voters, and why register changes don't affect an assembly that has already gone live.
- Ungrouped Voters and Reassigning GroupsHow voter groups work as buckets in Assembley — what happens to voters when a group is deleted, the ungrouped state, and how to reassign voters between groups.