# Generating user accounts

If you do not need to gather information about your users during the registration process we recommend generating accounts for your users.  This means you do not have to wait for them to accept the invitation for their accounts to be generated and allows you to do things like viewing exam attempts and user profiles for them immediately.

As users can only be invited to one group at a time, generating accounts allows you to add them to additional groups immediately.

Finally, generating accounts means you can pre-generate accounts and passwords to be handed out to students via a proctoring solution or in person.

{% hint style="info" %}
🧠 Remember on Synap it is membership in a user group that decides what content someone has access to. Generating users lets you bypass the invites system and will automatically set up a users account, helpful if you're running exams and you want to make sure everyone's got the exam email without them having to finish their account set up! &#x20;
{% endhint %}

Using Synap's Generate accounts feature you can bulk generate users and passwords from a CSV or do a single account generation from the platform

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2F2ByJUfVgtnUzdukvQe9h%2FImport%20users%20_%20%F0%9F%8F%98%20Springfield%20Town%20_%20User%20group%20_%20Synap%20Portal.gif?alt=media&#x26;token=9bd4a339-7633-45d4-9bd1-b851571a31a0" alt=""><figcaption><p>Single account generation</p></figcaption></figure>

### ✋ Before you start&#x20;

* Make sure you have a group set up you want to generate users into
* Check the content assigned to that group is correct as users will have access right away
* Decide on how to handle passwords (will you ask your users to reset or will you give them their passwords separately)
* Decide whether you want your users to get a welcome email or not.
* Check your portals user attributes ([more here](https://academy.synap.ac/doc/portal-settings/data-management/attributes)) as you'll need to include 'required at registration' attributes on your import sheet
* If you're importing, get your import template from the import page of the group, this will include your attribute headers&#x20;

**Information for generating accounts**

`name` = required&#x20;

`email` = required&#x20;

`language` = optional.  See language codes below

<details>

<summary>Language codes</summary>

| Code  | Language                    |
| ----- | --------------------------- |
| en    | English                     |
| en-GB | English (United Kingdom)    |
| de-DE | German (Germany)            |
| el-GR | Greek (Greece)              |
| es-ES | Spanish (Spain)             |
| fr-FR | French (France)             |
| it-IT | Italian (Italy)             |
| nl-NL | Dutch (Netherlands)         |
| pt-BR | Portuguese (Brazil)         |
| pt-PT | Portuguese (Portugal)       |
| zh-CN | Chinese (Simplified, China) |
| nb-NO | Norwegian Bokmål (Norway)   |
| sl-SI | Slovenian (Slovenia)        |
| ar-SA | Arabic (Saudi Arabia)       |
| th-TH | Thai (Thailand)             |
| hr-HR | Croatian (Croatia)          |
| ru-RU | Russian (Russia)            |
| id-ID | Indonesian (Indonesia)      |
| lv-LV | Latvian (Latvia)            |
| et-EE | Estonian (Estonia)          |
| sq-AL | Albanian (Albania)          |
| cy-GB | Welsh (United Kingdom)      |
| vi-VN | Vietnamese (Vietnam)        |

</details>

`timezone` = optional.  See format below

<details>

<summary>Time zones</summary>

| Time Zone ID           | UTC Offset |
| ---------------------- | ---------- |
| Africa/Abidjan         | UTC+00:00  |
| Africa/Accra           | UTC+00:00  |
| Africa/Addis\_Ababa    | UTC+03:00  |
| Africa/Algiers         | UTC+01:00  |
| Africa/Asmara          | UTC+03:00  |
| Africa/Bamako          | UTC+00:00  |
| Africa/Bangui          | UTC+01:00  |
| Africa/Banjul          | UTC+00:00  |
| Africa/Bissau          | UTC+00:00  |
| Africa/Blantyre        | UTC+02:00  |
| Africa/Brazzaville     | UTC+01:00  |
| Africa/Bujumbura       | UTC+02:00  |
| Africa/Cairo           | UTC+02:00  |
| Africa/Casablanca      | UTC+01:00  |
| Africa/Ceuta           | UTC+01:00  |
| Africa/Conakry         | UTC+00:00  |
| Africa/Dakar           | UTC+00:00  |
| Africa/Dar\_es\_Salaam | UTC+03:00  |
| Africa/Djibouti        | UTC+03:00  |
| Africa/Douala          | UTC+01:00  |
| Africa/El\_Aaiun       | UTC+01:00  |
| Africa/Freetown        | UTC+00:00  |
| Africa/Gaborone        | UTC+02:00  |
| Africa/Harare          | UTC+02:00  |
| Africa/Johannesburg    | UTC+02:00  |
| Africa/Juba            | UTC+02:00  |
| Africa/Kampala         | UTC+03:00  |
| Africa/Khartoum        | UTC+02:00  |
| Africa/Kigali          | UTC+02:00  |
| Africa/Kinshasa        | UTC+01:00  |
| Africa/Lagos           | UTC+01:00  |
| Africa/Libreville      | UTC+01:00  |
| Africa/Lome            | UTC+00:00  |
| Africa/Luanda          | UTC+01:00  |
| Africa/Lubumbashi      | UTC+02:00  |
| Africa/Lusaka          | UTC+02:00  |
| Africa/Malabo          | UTC+01:00  |
| Africa/Maputo          | UTC+02:00  |
| Africa/Maseru          | UTC+02:00  |
| Africa/Mbabane         | UTC+02:00  |
| Africa/Mogadishu       | UTC+03:00  |
| Africa/Monrovia        | UTC+00:00  |
| Africa/Nairobi         | UTC+03:00  |
| Africa/Ndjamena        | UTC+01:00  |
| Africa/Niamey          | UTC+01:00  |
| Africa/Nouakchott      | UTC+00:00  |
| Africa/Ouagadougou     | UTC+00:00  |
| Africa/Porto-Novo      | UTC+01:00  |
| Africa/Sao\_Tome       | UTC+00:00  |
| Africa/Tripoli         | UTC+02:00  |
| Africa/Tunis           | UTC+01:00  |
| Africa/Windhoek        | UTC+02:00  |

</details>

`attributes` = If required on registration  If you have custom user attributes in your portal, you can add the ID of an attribute as a header in the CSV

`password` = If you want to give these users a known password, include a password column on the CSV, passwords must be at least 8 characters long, with at least one upper case letter, one lower case letter and one number. If not provided or left blank, a password will be generated for the user and provided to you by email.

### **📧 Disable welcome emails**

On either option for generating accounts, welcome emails can be disabled which is recommended if you're generating accounts to use in test centres of for high stakes exams and you want to hand out passwords manually.

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2FWqutCBJjvtplEw5vUtNQ%2FScreenshot%202023-03-23%20at%2018.23.32.png?alt=media&#x26;token=9e989520-5276-4595-968f-e32670a32217" alt=""><figcaption><p>Toggle welcome emails off </p></figcaption></figure>

### 🧍‍♂️ Generating a single account

On a user group go to **Manage > Import users > Generate account**

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2FOTpkY2Bp3DrsRwJ9rfqn%2FScreenshot%202023-03-23%20at%2018.00.30.png?alt=media&#x26;token=1844fa36-cff7-4f7f-b85e-ecebf5246993" alt=""><figcaption><p>Locating the single account generator</p></figcaption></figure>

From here you'll get a pop up modal to fill in all of the details of the account. Including name, email and password which are all required. If you disable the welcome email **you must provide values for any attributes that are required on registration.** Go to Settings > Data Management > User attributes to see which attributes are required on platform.

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2FJpULqlng2T9cpyXBZnd4%2Fgeneratesingle.gif?alt=media&#x26;token=5d25a201-1be9-4f1e-8e51-3a7532d8b6eb" alt=""><figcaption></figcaption></figure>

Once you've inputted all the information, as soon as you click generate a user account will be set up and you'll find them in the users table for the group. Be mindful that if you have any content set to that group that has automated emails - your new user will get those automatically.&#x20;

### Bulk Generating accounts

You can create a CSV with multiple accounts and passwords you want to generate. **You must use different passwords for each user on your sheet**. Go to the group you want to generate users in then **Manage > Import users > Download CSV template > Generate accounts.** The template you download will be custom based off the attributes you have on your portal. Your attribute values must be formatted properly and attributes that are set to required on registration must have values for each user in a row and those values must be in the correct format&#x20;

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2Fdq1MlW4ADChDZFe5e9fB%2FScreenshot%202023-03-23%20at%2018.11.16.png?alt=media&#x26;token=89cab88b-2f78-4604-985b-da91d98dce99" alt=""><figcaption><p>Locating the generate accounts template and option</p></figcaption></figure>

{% hint style="info" %}
You can include existing users on the same sheet as new users.  They will be added to the group and if they have new attributes on the csv, these will be applied
{% endhint %}

**Attribute types and required CSV format**

| Attribute type  | Expected value on CSV                                                                                                                                                                                                                            |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Checkbox        | `TRUE` or `FALSE`                                                                                                                                                                                                                                |
| Long answer     | `string`                                                                                                                                                                                                                                         |
| Short answer    | `string`                                                                                                                                                                                                                                         |
| Multiple choice | One of defined `options`                                                                                                                                                                                                                         |
| Checkboxes      | defined `options` separated by commas                                                                                                                                                                                                            |
| Number          | Any numerical value                                                                                                                                                                                                                              |
| Date            | `DD/MM/YYYY`                                                                                                                                                                                                                                     |
| Link            | Choose whether to display as text or as a button. The link can be typed as an absolute URL (opens in new tab), or a root-relative URL (open in the same tab)                                                                                     |
| password        | Must be at least 8 characters long, with at least one upper case letter, one lower case letter and one number. And unique for each row.                                                                                                          |
| timezone        | Enter the user’s time zone using a valid IANA time zone identifier (e.g. `Europe/London`, `Africa/Accra`, `America/New_York`). This determines how dates and times are displayed for the user. Must match a supported tz database value exactly. |

Format your sheet set making sure you have all the correct and compulsory information set on each row. In the example below the sheet has been colour coded with the default compulsory fields of name, email, password are highlighted in yellow, with 2 compulsory at registration attributes shown in red. And the non compulsory attributes in green, you can see some of these are left blank

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2F3NxuId1VOvA6lwZ4Hyp1%2FScreenshot%202023-03-23%20at%2018.24.09.png?alt=media&#x26;token=e82202bc-28c5-485f-81f2-a9221f659b41" alt=""><figcaption><p>Example generate users sheet</p></figcaption></figure>

From here save that sheet as a CSV and upload it to platform. If there are any errors you'll be notified of any formatting errors and the upload won't happen for any users.

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2FoVeFbvXYeyEOPLHBmEt9%2FScreenshot%202023-03-23%20at%2018.20.51.png?alt=media&#x26;token=c7a67b85-6f0d-4413-ada4-fdcb3ae48e59" alt=""><figcaption><p>Example errors which need to be fixed</p></figcaption></figure>

Once your accounts have been generated you'll be sent a summary sheet confirming the passwords and other information that was created with the user. Double check this to make sure all the information is right.&#x20;

<figure><img src="https://3316915154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkgvUeCmTPeNouRxGPC%2Fuploads%2F7Of2mIU44VDgSLAAMIyv%2FScreenshot%202023-03-23%20at%2018.27.15.png?alt=media&#x26;token=9c92532d-bd1a-4271-8f68-19abe7417596" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
🚨 Remember users can change their passwords at any time, so your record for a users initial password may not always be their actual password!
{% endhint %}

### Timezones

Users without a timezone set will get one set when they login or use the platform based on their browsers timezone. Users with out a timezone set and who have never used the platform will be given the portal level timezone which is set by admins on the portal settings.&#x20;

To generate or invite users with a preset timezone use the timezone field. The `timezone` field must use a valid **IANA (tz database) time zone identifier**, formatted as `Region/City`.&#x20;

Examples:

* `Europe/London`
* `Africa/Accra`
* `America/New_York`
* `Asia/Singapore`

Timezone values are case-sensitive and must match the official IANA tz database names exactly. Abbreviations such as `GMT`, `BST`, or `EST` are not supported.

<details>

<summary>IANA tz database - for importing or generating users with a preset timezone</summary>

```
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/Salta
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Asuncion
America/Bahia
America/Bahia_Banderas
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Cayenne
America/Chicago
America/Chihuahua
America/Ciudad_Juarez
America/Costa_Rica
America/Creston
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Fort_Nelson
America/Fortaleza
America/Glace_Bay
America/Goose_Bay
America/Grand_Turk
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Tell_City
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Inuvik
America/Iqaluit
America/Jamaica
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/La_Paz
America/Lima
America/Los_Angeles
America/Maceio
America/Managua
America/Manaus
America/Martinique
America/Matamoros
America/Mazatlan
America/Menominee
America/Merida
America/Metlakatla
America/Mexico_City
America/Miquelon
America/Moncton
America/Monterrey
America/Montevideo
America/New_York
America/Nome
America/Noronha
America/North_Dakota/Beulah
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Ojinaga
America/Panama
America/Paramaribo
America/Phoenix
America/Port-au-Prince
America/Port_of_Spain
America/Porto_Velho
America/Puerto_Rico
America/Punta_Arenas
America/Rankin_Inlet
America/Recife
America/Regina
America/Resolute
America/Rio_Branco
America/Santarem
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Scoresbysund
America/Sitka
America/St_Johns
America/Swift_Current
America/Tegucigalpa
America/Thule
America/Tijuana
America/Toronto
America/Vancouver
America/Whitehorse
America/Winnipeg
America/Yakutat
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Atyrau
Asia/Baghdad
Asia/Baku
Asia/Bangkok
Asia/Barnaul
Asia/Beirut
Asia/Bishkek
Asia/Brunei
Asia/Chita
Asia/Colombo
Asia/Damascus
Asia/Dhaka
Asia/Dili
Asia/Dubai
Asia/Dushanbe
Asia/Famagusta
Asia/Gaza
Asia/Hebron
Asia/Ho_Chi_Minh
Asia/Hong_Kong
Asia/Hovd
Asia/Irkutsk
Asia/Jakarta
Asia/Jayapura
Asia/Jerusalem
Asia/Kabul
Asia/Kamchatka
Asia/Karachi
Asia/Kathmandu
Asia/Khandyga
Asia/Kolkata
Asia/Krasnoyarsk
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Macau
Asia/Magadan
Asia/Makassar
Asia/Manila
Asia/Nicosia
Asia/Novokuznetsk
Asia/Novosibirsk
Asia/Omsk
Asia/Oral
Asia/Pontianak
Asia/Pyongyang
Asia/Qatar
Asia/Qostanay
Asia/Qyzylorda
Asia/Riyadh
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Thimphu
Asia/Tokyo
Asia/Tomsk
Asia/Ulaanbaatar
Asia/Urumqi
Asia/Ust-Nera
Asia/Vladivostok
Asia/Yakutsk
Asia/Yangon
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Canary
Atlantic/Cape_Verde
Atlantic/Faroe
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/South_Georgia
Atlantic/Stanley
Australia/Adelaide
Australia/Brisbane
Australia/Broken_Hill
Australia/Darwin
Australia/Eucla
Australia/Hobart
Australia/Lindeman
Australia/Lord_Howe
Australia/Melbourne
Australia/Perth
Australia/Sydney
Europe/Andorra
Europe/Astrakhan
Europe/Athens
Europe/Belgrade
Europe/Berlin
Europe/Brussels
Europe/Bucharest
Europe/Budapest
Europe/Chisinau
Europe/Dublin
Europe/Gibraltar
Europe/Helsinki
Europe/Istanbul
Europe/Kaliningrad
Europe/Kirov
Europe/Kyiv
Europe/Lisbon
Europe/London
Europe/Madrid
Europe/Malta
Europe/Minsk
Europe/Moscow
Europe/Paris
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/Saratov
Europe/Simferopol
Europe/Sofia
Europe/Tallinn
Europe/Tirane
Europe/Ulyanovsk
Europe/Vienna
Europe/Vilnius
Europe/Volgograd
Europe/Warsaw
Europe/Zurich
Indian/Chagos
Indian/Maldives
Indian/Mauritius
Indian/Reunion
Pacific/Apia
Pacific/Auckland
Pacific/Bougainville
Pacific/Chatham
Pacific/Easter
Pacific/Efate
Pacific/Fakaofo
Pacific/Fiji
Pacific/Galapagos
Pacific/Gambier
Pacific/Guadalcanal
Pacific/Guam
Pacific/Honolulu
Pacific/Kanton
Pacific/Kiritimati
Pacific/Kosrae
Pacific/Kwajalein
Pacific/Majuro
Pacific/Marquesas
Pacific/Nauru
Pacific/Niue
Pacific/Norfolk
Pacific/Noumea
Pacific/Pago_Pago
Pacific/Palau
Pacific/Pitcairn
Pacific/Port_Moresby
Pacific/Rarotonga
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Wake
Pacific/Wallis
Antarctica/Casey
Antarctica/Davis
Antarctica/Macquarie
Antarctica/Mawson
Antarctica/Palmer
Antarctica/Rothera
Antarctica/Syowa
Antarctica/Troll
Antarctica/Vostok
```

</details>
