Basic Documentation

What's the point of this thing?

Concrete5 currently lacks a bulk import of members (users). All In by ampersandApps is there to help any site administrator import a large number of members into the system more than one at a time. By CSV. Easy peasy lemon-squeezy.


What’s a CSV?

Think spreadsheet. But, like, the Stone Age version of one. What it really stands for is Comma Separated Values and the document (file) ends with the extension “.csv” — now you know. Go, Joe.

If you set up a spreadsheet with all your members’ info in it, you can export to a CSV from most spreadsheet programs. Ones like ExcelNumbersOpenOfficeGoogle Sheets.


What's the minimum info I need in my CSV to import members?

The minimum you need is a column for username (uName) and a column for the user's email (uEmail). You can download an example of how to format columns here.


Is there an example CSV I can download or view?

There sure is. It’s chock full of good stuff to help you out. It’s your buddy. It’s right here. You're welcome.

What are the simplest steps to importing users?

Here's the quick version:

  1. If you have special member (user) attributes you want to import, create them by going to Dashboard > Members > Attributes.
  2. When you create each attribute, note down the "handle." This will be needed later.
  3. If they are already created in your site, again, note down the handle of each attribute you want to import.
  4. Create a CSV file with a header row with "uName" (username) as one column and "uEmail" as another
  5. If you want to import a password for each member, add a column in the CSV with a header of "uPassword". This is optional. If there is no "uPassword" in the CSV, a random password will be created.
  6. For each attribute that you have created for your members and want to import a value for, add a column and use the attribute's handle as the header.
  7. Upload and import the members (users) by going to Dashboard > Members > Import.


How many users can I import at once?

The long answer: the import uses an asynchronous javascript request to process the member import one at a time. So, theoretically the number is kinda unlimited. This is done to avoid timeout errors and make the import more adaptable to different server setups.

The short: the import's been tested up to 1000 members, which takes about 8.5 minutes.


I’ve made some of my own user attributes, can I import the data to those when I import members?

Yep. That’s kind of the whole point. As long as the attribute is one of the following types, you can import them.

  • Text
  • Text Area
  • Checkbox
  • Date/Time
  • Number
  • Select
  • Address
  • Phone Number


Okay, smarty so how do I import the aforementioned attributes?

You need to add a column in your CSV with the data. In the header row, just add the handle of the attribute.


What about checkboxes? How do I format the data?

In the cell data you can use the following values. You can also download a template with all the options here

  • true = checked
  • false = unchecked
  • yes = checked
  • no = unchecked
  • 1 = checked
  • 0 = unchecked


What about Date/Time?

The technical answer: the import uses PHP’s strtotime() function. All you really need to know is you can enter dates and times in any of the following formats:

  • 2/28/16 (US)
  • 28-2-2016 (International)
  • Feb 28 2016
  • 28 Feb 16
  • 28 February 16
  • February 28th 2016
  • February 28th 2016 12:35 PM
  • 28 Feb 16 12:36 PM
  • 2/28/2016 12:37:00 p.m.


What about a Select attribute?

For a single value select, just put the value (select option) to be selected in the data cell.


And what about a Select attribute that allows multiple values to be chosen?

Simple. Just separate the values with four (4) colons. Like so:

  • Value One:::Value Two


And now for the Address attribute?

This one is super flexible, but takes a little more work. It’s also made so you can create the CSV easier as well. To fill in a member's address, do the following:

  1. As with all other attributes, create a column with the attribute handle as the header
  2. In that column fill in the data you would like as the value for Address 1.
  3. For Address 2, create another column with the header of the attribute handle, plus _address_2
  4. For City, create another column with the header of the attribute handle, plus _city
  5. For State/Province, create another column with the header of the attribute handle, plus _state_province. Be sure to use he two letter state abbreviation. Example: OH
  6. For Country, create another column with the header of the attribute handle, plus _country. Also, be sure to format the country using a 2 letter code. Example: US
  7. For Postal Code, create another column with the header of the attribute handle, plus _postal_code

An example:

If the Address attribute you created has a handle of test_address_attr, then the other columns would be:

  • test_address_attr = Address 1
  • test_address_attr_address_2 = Address 2
  • test_address_attr_city = City
  • test_address_attr_state_province = State/Province
  • test_address_attr_country = Country
  • test_address_attr_postal_code = Postal Code


What’s the deal with the random password setting?

If you’re feeling lazy and don’t want to populate a whole CSV with passwords for your members, you can have the import generate a random one for each member. Just check that box.

Note: if a member wants to login, they will have to reset their password using the "forgot password" link.


Can I preview my import, before actually doing it?

Sure can. Once you upload a CSV, you can choose to validate it. This will show you the import log without making any changes to your system or importing any users. You can use this to correct any errors that may pop up.