Understanding the EDA Account Model (Administrative Account)
EDA supports three distinct types of Accounts:
- Organizational Accounts - these are normal Salesforce Accounts, typically representing a business, organization, or government agency.
- Administrative Accounts - these are Accounts where each corresponds one-to-one with a Contact record.
- Household Accounts - these are Accounts whose Contacts are all members of the same Household.
Salesforce requires the use of Administrative Accounts with EDA. For more information, please refer to this Salesforce document - Education Data Architecture (EDA) Documentation. TargetX traditionally utilizes the organizational account model.
Transitioning to EDA Administrative Accounts
Institutions that are looking to utilize the Administrative account model will need to do the following:
Working with the EDA Administrative Account for New Community Users
EDA's Administrative Account creation does not work when users self-register on a Salesforce community. TargetX's Communities package which was updated as part of the Summer '17 Release allows institutions to create an Administrative Account (named 'Lastname Administrative Account') and assign that Account to the new Contact created at registration. Existing Community user accounts will remain unchanged.
- Example Use Case: An applicant logs into TargetX Portal or Online Application for the first time and creates an account to apply to your institution.
Transitioning to EDA Administrative Accounts
- Install/upgrade to TargetX's Communities package to version 17.30000 (Summer '17 Release) or higher.
- Turn off the Automatic School Matching trigger in "Recruitment Preferences".
- Navigate to the "Recruitment Preferences" tab, go to the "Contextual Triggers" section and UNCHECK the Automatic School Matching box.
Managing EDA Administrative Account creation and assignment on registration
Communities is an unmanaged package. To access this functionality, you need to update the TX_CommunitiesSelfRegController.
Note: This update can only occur within sandbox, and then perform a change set to Production to save those changes.
For additional information, please see: Deploying from Sandbox with Change Sets.
- Navigate to Setup and search for Apex Classes.
- Locate TX_CommunitiesSelfRegController and select Edit.
- Search for: match existing contact and place your cursor after the line:
Contact[] cs =

- Insert the following code:
- Remove the '//' in front of the last line above, for example:
1 | if (cs.size() == 0 && !hasDuplicateUser(email)) cs = insertContactFirst() ; |
- Scroll to the top of the Apex Class.
- After the line public without sharing class TX_CommunitiesSelfRegController... add the following section of code:
1 | private Contact[] insertContactFirst() { |
2 | Contact c = new Contact() ; |
3 | c.FirstName = firstName ; |
7 | return [SELECT Id, AccountId, Account.OwnerId, Account.Owner.UserRoleId FROM Contact WHERE Id = :c.Id] ; |
- Save your changes.
Note: You must ensure you have some way for accounts to be set to an owner with a role.