Import Voter List
Prepare the CSV
Use one row per voter. Column names must match the canonical voter and Keycloak User Profile
attribute names; the display label shown in the Admin Portal is not the import header. For example,
an attribute named customerReference uses this header:
username,email,customerReference
voter-001,voter-001@example.com,REF-12345
Use | between values for a multi-valued User Profile attribute. Keep the source CSV private: it
contains the values in plaintext even when a column is configured as secret.
Import the Voters
- Open the election event and select the Voters tab.
- Select the voter import action and upload the CSV.
- Review the task result and correct any reported row or header errors.
Importing Secret Voter Fields
A CSV can contain a field configured with sequent.secret=true. Supply the normal plaintext value;
do not pre-encrypt it and do not copy an encrypted seqenc: value from Keycloak. The import worker
creates the voter ID and encrypts each non-empty secret cell before it is written to Keycloak.
The initiating user needs voter-secret-attribute-write in addition to the normal voter import and
create access. If the CSV contains a secret header and the user lacks that permission, the whole
import is rejected and the error identifies the affected columns.
After import:
- ordinary voter views and exports do not return the secret value or its encrypted envelope;
- users with secret-read permission can reveal it from the voter editor;
- a decrypted export can include it only when explicitly requested by an authorized user.
See Protecting a Voter Attribute as Secret for configuration restrictions, and Permissions for authorization details.