Setting up a Partner Community

Setting up a Partner Community is 99% permissions and 1% prettiness. 

Prettiness

Steps

See some of the posts mentioned below for some steps to set up a community

Use the setup steps noted in EDL Consulting Blog » 7 Steps to Set Up a Basic Salesforce Community

My Steps

  • Create the URL
  • Create the Community
  • Set the levels of Profiles
  • Set the Profiles that can use the Community
  • Choose a theme (I probably would not be building a community like this). 
  • Set the Tabs visible in the Community

Permissions

My Steps

  • Clone the Partner Profile. 
  • Go to the Profile, use the Salesforce Admin Check All Chrome Browser Extensions to uncheck all fields. Then when you add new fields, add them for all profiles. 
  • Then go back and check all standard fields one by one, ensuring you validate that the Partner should be able to see this field. 
  • Do similar with Record Types - turn them all off, then only add the ones that either are Partner specific or that Partners can see. 

Notes

  • Your users are going to be annoyed at the black bar. There is no way around this! 
  • Everything you do for your partners should be visible by the internal users, so they will need to know about this and know that there is new data (eg Accounts, Contacts) that they didn't create and they don't own. 

Suggestions

  • Create the Alias for the users as ABC-joebloggs - ABC being the company name of the user. 

Gotchas an things to remember

Users

Record Types

  • I would recommend creating new Record Types for Partner generated records. It just makes it easier to control things. 

Fields

  • You want your partner specific fields to be visible by partner users and internal users, but internal fields only visible to internal users. Try not to mix them up on Page Layouts, or create a specific section for Partner Content on the Page Layout. 
  • Make a note on the Description field if that field is used for Partners - for auditing purposes. . 

Maven's mate sample field block with the Description field shown. 

    <fields>
        <fullName>PartnerField__c</fullName>
        <description>Partners Only</description>
        <externalId>false</externalId>
        <inlineHelpText>The Help Text for this Partner Field.</inlineHelpText>
        <label>Partner Field</label>
        <length>255</length>
        <required>false</required>
        <trackFeedHistory>false</trackFeedHistory>
        <trackHistory>false</trackHistory>
        <type>Text</type>
        <unique>false</unique>
    </fields>

List Views

  • Ensure all existing List Views are visible only to Internal Users now. 

Maven's Mate sample view block with visibility settings. 

    <listViews>
        <fullName>RecordTypeA_Accounts</fullName>
        <columns>ACCOUNT.RECORDTYPE</columns>
        <columns>ACCOUNT.ACCOUNT_NUMBER</columns>
        <columns>ACCOUNT.NAME</columns>
        <columns>ACCOUNT.ADDRESS1_STATE</columns>
        <columns>ACCOUNT.ADDRESS1_COUNTRY</columns>
        <columns>ACCOUNT.PHONE1</columns>
        <columns>CORE.USERS.ALIAS</columns>
        <filterScope>Everything</filterScope>
        <filters>
            <field>ACCOUNT.RECORDTYPE</field>
            <operation>equals</operation>
            <value>MyRecordType</value>
        </filters>
        <label>Record Type A Accounts</label>
        <sharedTo>
            <allInternalUsers></allInternalUsers>
        </sharedTo>
    </listViews>
  • You can't change the Recently Viewed Accounts fields, so make sure that you are ok with Partner Users seeing those fields. See Recent Views.

Page Layouts

  • If all the fields in the section are not visible by the Partner Users they can't see that section. This could be useful for not doing multiple page layouts. 
  • However, Partner Users can see the related lists even for fields that they can't see - so you will 99.99% need separate page layouts for Partner Users. See Page Layouts and Rules for Page Layouts.