Importing member Records into CB have member access imported profile

3 years 2 months ago #322846 by eciudad
I am looking for a simple way of importing member records(profiles) into CB, and once they are imported have each member take control of their profiles by selecting them by entering at least two fields to validate who they are, after they search for their first and last names and complete their profile by entering their email and changing the user ID. (to start, I will use a default user ID for each one of them and an email ID@invalid.com)

I will begin by testing 10 to 100 but I have 1,200,000+ listing ready to go.

I have no issue using the CB import feature once I figure how it works or CBJUICE if the CB import is not an option.

My concern is how to have the members validate their records to take charge of them (not regarding the fields I would select for validation, that is simple) as a process using the standard CB registration, as they would not know their newly created IDs nor the ID@invalid.com, but they know their first and last names, street addresses, cities and zip-codes.

Why importing them? A member may have up to 10 licenses and 99+ certifications (information that I have) and I want save them time at the registration by pre-filling that information by loading it with the member's profile (that is not much of concern).

Can this be done?

Please Log in to join the conversation.

3 years 2 months ago #322847 by krileon
The importing can be done directly in CB > User Management, but it's not really equipped to handle importing a million users. It could safely do 100 or so users per-import on most hosts. The best way to do your importing since you've so many users is to just directly import into the database, but you'll need to create rows in _comprofiler, _users, and _user_usergroup_map.

As for recovering the accounts the best approach would be to prefill their email address in and let them use the forgot login behavior. Another option could be to import their data after registration. So basically have a simple registration then use CB Auto Actions to pull from a separate database table their other information into their profile.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in to join the conversation.

3 years 2 months ago #322863 by eciudad
Thank you Kyle.

Any insight as to how the below would work?

"So basically have a simple registration then use CB Auto Actions to pull from a separate database table their other information into their profile. "

Please Log in to join the conversation.

3 years 2 months ago #322868 by krileon
First you'll need a database or table in your Joomla database that contains the users other data. Next you can use CB Auto Actions and a Query action on onAfterUserRegistration and onAfterNewUser triggers to cover frontend and backend registrations. Your query would just perform an UPDATE against the _comprofiler table to pull in their other data. Example auto action as follows.

Global
Triggers: onAfterUserRegistration, onAfterNewUser
Type: Query
User: Automatic
Access: Everybody
Action
Query:
UPDATE `#__comprofiler` AS c
LEFT JOIN `#__extra_user_data` AS e
 ON e.`firstname` = c.`firstname`
 AND e.`lastname` = c.`lastname`
SET c.`cb_quote` = e.`quote`
WHERE c.`id` = '[user_id]'

With the above example the extra data is stored in _extra_user_data database table within your Joomla database. It joins based off the first and last name fields (this should be more strict since it'd be too easy to steal users info by name alone). Next it updates the "cb_quote" field with the "quote" column from _extra_user_data. Note the above is just an example and was not tested.

Another option is to just use CB Query Field to directly query for the extra information and display it, but they won't be able to make any changes to it.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in to join the conversation.

3 years 2 months ago #322880 by eciudad
Thank you Kyle. Will try and test both concepts. I agree, there may be homonymous names in such a large database.

Please Log in to join the conversation.

3 years 3 weeks ago #323970 by eciudad

krileon wrote: First you'll need a database or table in your Joomla database that contains the users other data. Next you can use CB Auto Actions and a Query action on onAfterUserRegistration and onAfterNewUser triggers to cover frontend and backend registrations. Your query would just perform an UPDATE against the _comprofiler table to pull in their other data. Example auto action as follows.

Global
Triggers: onAfterUserRegistration, onAfterNewUser
Type: Query
User: Automatic
Access: Everybody
Action
Query:

UPDATE `#__comprofiler` AS c
LEFT JOIN `#__extra_user_data` AS e
 ON e.`firstname` = c.`firstname`
 AND e.`lastname` = c.`lastname`
SET c.`cb_quote` = e.`quote`
WHERE c.`id` = '[user_id]'

With the above example the extra data is stored in _extra_user_data database table within your Joomla database. It joins based off the first and last name fields (this should be more strict since it'd be too easy to steal users info by name alone). Next it updates the "cb_quote" field with the "quote" column from _extra_user_data. Note the above is just an example and was not tested.

Another option is to just use CB Query Field to directly query for the extra information and display it, but they won't be able to make any changes to it.


Thank you Kyle,

This worked very well. Is there a way to connect to an external database and get the data needed, contrary to load all the data in the local database. Would love to avoid to bring hundreds of MBs at once if they are not needed.

Thank you

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.378 seconds

Facebook Twitter LinkedIn