Nonprofit Starter Pack Contacts And Organizations Install

Home: NPSF > Nonprofit Starter Pack > Nonprofit Starter Pack Contacts And Organizations

Contents

Install Notes

Here are the installation notes for pre-2.0 versions of the Contacts and Organizations package of the Nonprofit Starter Pack.

Installing or upgrading to an Organization with data in it

PLEASE BE ADVISED: Installing this package in a salesforce.com instance with live data is non-trivial. We will continue to work to provide documentation of best practices but because we cannot know what your instance of salesforce.com looks like, we cannot know how you will need to move data from your exisitng schema in to the new one. Again, installing this package in an existing salesforce.com organization with real, live data should be done very carefully with all appropriate precautions.

If you already have a previous version of the Contacts and Organizations package installed and working, you should not have to go through any special steps to upgrade it.

Pre-Install Config

If you have an organization with data in it, you may have to take some extra steps.

Contact Record Types

If you have record types on the Contact record, and you don't have the Contacts and Organizations packaged already installed, you have to take some special steps.

Right now there is no way to install the package into an org with Contact Record Types without getting errors.

  • Install the package with the setting to ignore errors
  • Post-Install Config
    • Make sure the SystemAccountProcessor picklist values are available on all record types. See the Post Install steps below for steps on how to do that. If you don't do this step and you have Record Types on Contact, the code won't behave as desired.
    • Make sure the following newly created picklist values are available on all records:
      • Preferred Email
      • Preferred Phone
      • Primary Address Type
      • Secondary Address Type

Package Install

Install from the Current Version Package Installation Link

Do not Deploy this package until you have finished the post-install config. Run the installation, but choose Deploy Later.

Post-install Config

Please read advisement above and take great care in installation in production against real data. THESE INSTALLATION STEPS ARE ONLY FOR CONTACTS & ORGANIZATIONS VERSIONS LESS THAN 2.0. PLEASE SEE NONPROFITSTARTERPACK.ORG FOR MORE INFORMATION.

Here is a screencast of the first steps of this installation.

  1. Set the _SYSTEM: ACCOUNT PROCESSOR
    1. By default, the package is set to the one2one model which will automatically create a new organization for every contact if you leave the Organization Name field blank. If you want to change this behavior...
      1. Click on Setup | App Setup | Customize | Contacts | Fields
      2. Scroll down to Contact Custom Fields & Relationships and click the field label for _SYSTEM: ACCOUNT PROCESSOR
      3. Scroll down to Picklist Values and change the default value.
    2. This will change the behavior for all new contacts. If you want to change the behavior for existing contacts.
      1. Click the Replace Button in the Picklist Values section and edit the subsequent window as desired.
      2. Click Replace
    3. Click OK
    4. Click Save
  2. Override Account View Button/Link
    1. Click on Setup | App Setup | Customize | Accounts | Buttons and Links
    2. Click on the Edit link for View
    3. Click on the Visualforce Page Radio Button
      1. If you do not have Visualforce enabled there is also an s-control but the Visualforce page is faster
    4. From the Content Name picklist, select the option for "AccountViewOverride"
    5. Click Save
  3. If you're in the One-to-One model, Override Lead Convert Button/Link
    1. Click on Setup | App Setup | Customize | Leads | Buttons and Links
    2. Click on the Override link for Convert
    3. Click on the Visualforce Page Radio Button
    4. From the Content Name picklist, select the option for "LeadConvertOverride"
    5. Click Save
  4. Make Account field on Contact layout to be NOT required
    1. Click on Setup | App Setup | Customize | Contacts | Page Layouts
    2. Click Edit next to Contact Layout
    3. Double click the Account Name field
    4. Un-check Required and click OK
    5. Click Save
  5. Updating Contact Record Types (Only applies if you previously had Contact Record Types)
    1. Click on Setup | App Setup | Customize | Contacts | Record Types
    2. Click on the name of the Record Type you want to update
    3. Click on _SYSTEM: ACCOUNT PROCESSOR
    4. Add all values to the Selected Column
    5. Set Default to appropriate value for your organization

Lead Conversion

We have added Lead Conversion to the package, but it is not obvious exactly how it works.

If you are using the Bucket model, Lead Conversion will work out of the box. Just be sure to use "Individual" as the company on your leads.

I'f you're using the One-to-One model, you'll need to override the Lead Convert button with the LeadConvertOverride page.

  1. Override Lead Convert Button
    1. Click on Setup | App Setup | Customize | Leads | Buttons and Links
    2. Click on the Override link for Convert
    3. Click on the Visualforce Page Radio Button
    4. From the Content Name picklist, select the option for "LeadConvertOverride"
    5. Click Save

Make sure Lead fields are mapped correctly:

  1. Click on Setup | App Setup | Customize | Leads | Fields
  2. Click on the Map Lead Fields button
  3. Map Preferred Email to Preferred Email
  4. Map Preferred Phone to Preferred Phone
  5. Click Save

This will ensure that email and phone data from the Lead makes it to the Contact correctly.

  • Leads with accounts convert normally.
  • Leads that you want to map to an individual account in the One to One model will map correctly IF you put in to the Company field one of the following:
    • "Self"
    • Last_Name & " " & First_Name

With any one of those values in the Company Field, the contact will map correctly on conversion. So, if you want to use web2lead, you can have your form auto-enter "Self" in to that field if it is left empty.

Additional Email and Phone Fields

Here is a screencast of this portion of the installaiton.

  1. Additional fields and workflow have been included to help manage multiple email and phone fields. The basic idea is that the Phone field is the DEFAULT phone field (and the Email field is the DEFAULT email field) and the user will not edit this field from the salesforce.com UI, instead, the workflow will update the default field based on the users choice as to what is preferred (Work, home, mobile, etc). (The Phone and Email fields should not be edited via the UI but they can be edited by the API and the reciprocity will be managed by workflow.) The best practice is to either remove it from the layout completely or make it read-only. There is a new picklist called "Preferred Phone" where a user can choose, for that record, which field should be set as the DEFAULT phone field. The workflow will copy the preferred field data and paste it in to the Phone field. Additionally, if the API makes a change to the Phone field, that change will get pushed to the designated preferred field. To use this, you will need to 1) activate the workflow, 2) build some validation rules, 3) move some fields on to the layout. Here is what the contact layout would look like with these fields.
  2. If you do not want to use these new fields you can Deactivate the workflow.
    1. To deactivate: Click | Setup | Create | Workflow and Approvals | Workflow Rules
    2. Deactivate all of the new managed workflows. Managed workflow has a green 4 arrow icon. (Note: If you have the Households package installed, there will be another workflow on this list that can be activated instead of the final workflow in the list. This workflow is currently depricated. It doesn't do anything but should be deactivated anyway.) Image:Contact_Workflow_Screenshot.png
  3. Create Validation Rules
    1. Click Setup |Customize | Contacts | Validation RulesImage:Contact_Validation_Rules.png
    2. The first two validation rules are only necessary for organizations that have data ONLY in the Email and/or Phone fields. You don't need these validation rules if you: 1) Copy all of the data from the Email and Phone fields to the NEW Work Email and Work Phone fields, 2) Set the Preferred Email and Preferred Phone fields to Work. You can do this with the Excel Connector. The Excel Connector is a very powerful and easy to use tool that allows you to query data, then manipulate that data in Excel and then commit your changes back to salesforce.com. It is a particularily great tool for moving data around within a single table/object. Moving the data is the best solution as the first two validation rules will provide some confusing errors for your users but they will protect your data.

Image:Populated_Email_Field_Warning.png

AND(
NOT(ISCHANGED(Email)),
LEN(PRIORVALUE(Email))>0,
ISCHANGED(npe01__Preferred_Email__c),
NOT(OR(
PRIORVALUE( Email) = PRIORVALUE( npe01__WorkEmail__c),
PRIORVALUE( Email) = PRIORVALUE( npe01__HomeEmail__c),
PRIORVALUE( Email) = PRIORVALUE( npe01__AlternateEmail__c),
PRIORVALUE( Email) = npe01__WorkEmail__c,
PRIORVALUE( Email) = npe01__HomeEmail__c,
PRIORVALUE( Email) = npe01__AlternateEmail__c
)
)
)

Image:Populated_Phone_Field_Warning.png

AND(
NOT(ISCHANGED(Phone)),
LEN(PRIORVALUE(Phone ))>0,
ISCHANGED( npe01__PreferredPhone__c ),
NOT(OR(
PRIORVALUE( Phone) = PRIORVALUE( npe01__WorkPhone__c ),
PRIORVALUE( Phone) = PRIORVALUE( HomePhone),
PRIORVALUE( Phone) = PRIORVALUE( MobilePhone ),
PRIORVALUE( Phone) = PRIORVALUE( OtherPhone),
PRIORVALUE( Phone) = npe01__WorkPhone__c,
PRIORVALUE( Phone) = HomePhone,
PRIORVALUE( Phone) = MobilePhone,
PRIORVALUE( Phone) = OtherPhone
)
)
)

These two Validation Rules are necessary

Image:Req_Preferred_Email.png

AND(
ISPICKVAL( npe01__Preferred_Email__c ,""),
OR(
LEN( npe01__HomeEmail__c )>0,
LEN( npe01__WorkEmail__c )>0,
LEN( npe01__AlternateEmail__c )>0
)
)

Image:Req_Preferred_Phone.png

AND(
ISPICKVAL( npe01__PreferredPhone__c ,""),
OR(
LEN( HomePhone )>0,
LEN( MobilePhone )>0,
LEN( OtherPhone )>0,
LEN( npe01__WorkPhone__c )>0
)
)

(NOTE: Prior to running scheduled opportunity rollups in Households 2.x, it is important that a preferred email and phone is selected for all contacts who have available phone and email values. Not setting the preferred picklist will cause validation errors on contact update during rollups, and may cause those rollups to fail.)

Physical Mailing Addresses

Here is a screencast showing for Mailing Addresses.

Salesforce.com provides two physical mailing addresses on the Contact object. The Mailing Address is treated as the default address and the Other Address is secondary. These are special fields in that each address field contains several other fields (Street, City, State, etc). In addition to these standard fields we have provided a pair of picklist fields to describe the addresses (Work, Other, Home). Additionally, we have provided some calculated fields that (Work, Other, Home) that mirror what the standard fields are designated as. The purpose for this is mail merge and address lists by address type. This way it is possible to mail to all home addresses or to all primary addresses.

This was implemented in an exactly opposite method from the Phone and Email addresses. While this is not optimal, the complexity of allowing the users to edit custom address fields and the API to edit the standard fields and keep everything in sync was left for the roadmap for now.

Best practices for implementation are:

  1. Completely ignore the added fields and use the salesforce.com standard fields either with their standard names (Mailing and Other) or renamed to something like Primary and Secondary or Work and Other, etc.
  2. Use the provided custom fields:
    1. Rename the standard address fields (Mailing to Primary and Other to Secondary).
    2. Add the two picklists, Primary Address Type and Secondary Address Type, to the layout.
    3. Edit the values on the picklists to only include TWO out of the three possible choices (Work, Other, Home)
      1. If you are using households, then ignore the Home choice.
      2. If you are not using households then the best practice is to ignore the Other choice.
    4. When a standard address field is designated, by the custom address type picklists, as the Work address then the Work address calculated field displays the data from that standard address field.

The primary drawback of this approach is that there are several fields that you may or may not use and could confuse your users when they do mailings. Custom reports and field accessibility settings can fix this.

Configure the Contact Page Layout

Here is a screencast of the final steps of this installation.

    1. View suggested Page Layout here: http://www.screencast.com/t/wWyy7cNq
    2. Click on Setup | App Setup | Customize | Contacts | Page Layouts
    3. Click Edit to the left of the Page Layout you want to update
    4. Drag and drop the fields from the Field Chooser box to the Page Layout as needed
    5. If you want to leave the Phone and Email fields on the layout then, set the Phone and Email fields to Read-Only
      1. Double click on the Phone field on the layout and choose Read-Only
      2. Double click on the Email field on the layout and choose Read-Only

Deploy

  1. Now you can deploy the package.
    1. Click Setup | Installed Packages | Contacts and Organizations | Deploy