We build. You grow.

Get best community software here

Start a social network, a fan-site, an education project with oxwall - free opensource community software

Import new users from spreadsheet - How-to | Forum

Wells Anderson
Wells Anderson Sep 17 '18
Here is a detailed, rough list of steps for importing new users from a spreadsheet file. 

;tldr You can import new members but it takes a lot of time!

I spent hours figuring this out and executing it after the CSV import plugin failed to recognize .CSV and .CSV.ZIP files.

While it is easy for people to sign up for their own accounts, in our situation we wanted to create accounts for members who won't access the site. We want to post photos, comments and memories about these members. So we needed to create accounts for them. Also, we are emailing some users letting them know they have an account and are welcome to login with their new username and password.

Oxwall Import Members


cPanel / File Manager

View the file located in websitedirectory/ow_includes/config.php, the  main 

configuration file the application uses. 

Next to: OW_DB_NAME is your database name

cPanel / phpMyAdmin / [YOUR_DOMAIN]_oxwa555 (Your main domain without .com plus the 

database name)


Click on ow_base_user

Export several records (with different Account Types) to CSV

Study the fields

Create a spreadsheet

  Include First and Last (for use later with ow_base_questions_data)

  Generate one-word usernames

  Use existing emails or generate emails to go to a CatchAll username@wellsa.com


  Generate passwords



    Concatenate Salt for your site with plain text password

    Example:  5a1gc8148d3c93some_plain_text

      The first part is your Salt (see instructions at webhostface, above)

      some_plain_text is a different password for each user.

      Later you can email usernames and passwords to your users.

      Generate SHA256 hash of each password (or create an Excel function - hard!)


Create joinStamp column values. You can recycle an existing member's.

  It is a UNIX 10-digit date value.

Paste accountType values into that column. We have Free and Deceased

Save as an XLSX

Delete the top row and save as CSV

Zip the file. Rename the Zip file to end in .csv.zip

In the ow_base_user table, click Import

  Select CSV

  Make sure that Columns separated with is a comma if your CSV uses commas between 


  Delete the Column enclosed with value, unless your CSV file has quotes around all 


Press Go

If the import fails, it gives an informative error message.

  A problem with number of Columns may relate to your separator or enclosed with "

  A problem with duplicate id values is fixed by making sure that

    your lowest id in your import file is higher than the highest id

    value in the table.

Now import into ow_base_questions_data

  This import will add Firstname Lastname in the Name field of your members.

You will need the id of each user from the ow_base_user spreadsheet

Generate id values starting with one plus the highest id in the 

ow_base_questions_data table. Don't duplicate an existing value.



87,realname,37,John Collins,0,NULL

As before, save the spreadsheet as a .CSV file, zip it and rename with .csv.zip

Import as above.

Import Roles for Users

  Users will not have access to anything without a role!

Lookup the id's of your site's Roles in ow_base_authorization_role

  Two included Roles are guest, wqewq (free). We added another.

Import records into:



The id is sequential starting with one more than the highest existing id in the 


userId is from ow_base_user. 

roleId from is from  ow_base_authorization_role

As before, save the spreadsheet as a .CSV file, zip it and rename with .csv.zip

Import as above.

The Forum post is edited by Wells Anderson Sep 17 '18
Oxwall Germany Club
Oxwall Germany Sep 17 '18
Topic was moved from General Questions.
AppXprt Sep 23 '18
Very Nice Info!

I've been thinking about creating a a good CSV parser

With your CSV files did you try uploading using .CSV and .csv

Shouldn't matter if the Dev used strtolower on the extension, but I don't have this plugin installed and haven't ever tried importing from CSV...

Wells Anderson
Wells Anderson Oct 10 '18

Thank you for the kind words.

I only used lower case .csv filenames. I am guessing that .CSV would work, too.