Child pages
  • Salesforce Provisioning Plugin
Skip to end of metadata
Go to start of metadata

The Salesforce Provisioning Plugin provisions Contacts to Salesforce via the Force.com REST API.

Operations

Registry CO Person Transaction

Changelog Action

Add

Synchronize the CO Person with Salesforce

Edit

Synchronize the CO Person with Salesforce

Enter Grace Period

No changes (unless attributes change as part of grace period)

Expiration / Becomes Inactive

Synchronize the CO Person with Salesforce

Unexpire / Becomes Active

Synchronize the CO Person with Salesforce

Delete

No changes

Manual Provision

Synchronize the CO Person with Salesforce

Registry CO Group Transaction

Changelog Action

Add

No changes

Edit

No changes

Delete

No changes

Manual Provision

No changes

Registry CO Email List Transaction

Changelog Action

Add

No changes

Edit

No changes

Delete

No changes

Manual Provision

No changes

Configuration

  1. This is a non-core plugin, see Installing and Enabling Registry Plugins for more information.
  2. (info) If you already have a Salesforce Server defined with the appropriate configuration (perhaps for use with the Salesforce Source) you can reuse it instead of defining a new one. You only need to complete step 6.
  3. Add a new Server, via Servers > Add a New Server
    1. Set the server type to OAuth2.
    2. After the configuration has been saved, a Redirect URI will be available via the server configuration page. Keep this handy for the next step.
  4. In another browser tab or window, login to Salesforce. Add a new Connected App via Setup > Quick Links > Manage Apps. Click the New button in the Connected Apps section.
    1. Set the Connected App Name and Contact Email.
    2. Under API, tick Enable OAuth Settings.
    3. Set the Callback URL to the URI provided in step 1, above.
    4. Added at least these two OAuth Scopes:
      1. Access and manage your data (api)
      2. Perform requests on your behalf at anytime (refresh_token, offline_access)
    5. Click Save. (You may need to scroll up to see the confirmation message.)
    6. On the next page, a Consumer Key and Consumer Secret will be made available. Keep these handy for the next step.
  5. Return to the OAuth2 Server configuration and complete the configuration.
    1. Server URL: The base URL of your Salesforce instance with /services/oauth2 appended, eg https://test.salesforce.com/services/oauth2
      1. (info) The plugin will work with either the generic service name (test.salesforce.com) or a specific instance (cs123.salesforce.com), but note that Salesforce periodically migrates customers to new instances (in Salesforce terms, an instance refresh). In such an event, when configured with the generic service name the plugin should detect the new instance automatically, though it may be necessary to obtain a new token (described below).
    2. Client ID: The Consumer Key obtained in step 2.
    3. Client Secret: The Consumer Secret obtained in step 2.
    4. Access Token Grant Type: Authorization Code
    5. Scope: (Leave blank)
    6. Click Save.
  6. Define a new CO Provisioning Target using the SalesforceProvisioner plugin. On the configuration page, select the Server set up above and click Save.
  7. Finally, return to the OAuth2 Server configuration to obtain an OAuth token.
    1. The configuration should indicate that the Access Token is "Not Set", and there should now be a button "Obtain New Token".
    2. Upon clicking that button, you will be taken to the Salesforce login page. Log in as a sufficiently authorized user.
    3. After successful login, you should be returned to the OAuth2 Server configuration page, and the Access Token should now be "Set".
    4. (info) Should it ever be necessary to obtain a new token (eg: if the administrator who performed the initial setup no longer has a valid Salesforce account), simply return to the configuration page and click the "Obtain New Token" button again.

CoPerson Custom Object

The SalesforceProvisioner plugin supports the use of a Salesforce Custom Object in order to provide additional attributes (see below) beyond what is supported in the Salesforce Contact record. To enable support for the CoPerson Custom Object:

  1. Login to Salesforce and navigate to SetupCreateObjects.
  2. Click New Custom Object. Use the follow (exact) values:
    1. Label: CoPerson
    2. Plural Label: CoPeople
    3. Object Name: CoPerson
    4. Record Name: CoPerson ObjectID
    5. Data Type: Auto Number
    6. Display Format: C{0}
    7. Starting Number: 100000 (or whatever number you prefer)
    8. Deployment Status: Deployed
  3. Create the following Custom Fields, again using the exact configuration specified:
    1. Field Label and Field Name: Contact
      1. Data Type: Master-Detail
      2. Related To: Contact
      3. Child Relationship Name: CoPeople
    2. Field Label and Field Name: Application ID
      1. Data Type: Text
      2. Length: 255
    3. Field Label and Field Name: ORCID
      1. Data Type: Text
      2. Length: 255
    4. Field Label and Field Name: Platform ID
      1. Data Type: Text
      2. Length: 255
      3. External ID: Checked
    5. Field Label and Field Name: Status
      1. Data Type: Text
      2. Length: 32
  4. In the COmanage plugin configuration, tick Enable CoPerson Custom Object Support.
    1. Setting an Identifier type for CoPerson Platform ID Identifier Type is required. This identifier is considered by Salesforce as the External ID, and so must always be populated and unique. Identifier Assignments may be useful.

(info) The above instructions will not cause the Custom Object to appear on the Contact page, though it is visible if directly addressed.

Attributes

The Salesforce Provisioner uses the following attribute mapping:

Registry AttributeSalesforce AttributeNotes
Address:country (type postal)MailingCountry

First Address of type postal associated with the first CoPersonRole

(warning) Values must be from Salesforce picklist. Attribute Enumerations may be useful.

Address:locality (type postal)MailingCityFirst Address of type postal associated with the first CoPersonRole
Address:postal_code (type postal)MailingPostalCodeFirst Address of type postal associated with the first CoPersonRole
Address:state (type postal)MailingState

First Address of type postal associated with the first CoPersonRole

(warning) Values must be from Salesforce picklist. Attribute Enumerations may be useful.

Address:street (appended with Address:room, if set) (type postal)MailingStreetFirst Address of type postal associated with the first CoPersonRole
CoPerson:statusCoPerson__c:Status__cIf CoPerson custom object is enabled
CoPersonRole:ouDepartment

Department associated with the first CoPersonRole, sorted by CoPersonRole order.

CoPersonRole:titleTitleTitle associated with the first CoPersonRole, sorted by CoPersonRole order.
EmailAddress:mailEmailIf Email Address Type is set, the first Email Address of the specified type is used. Otherwise, the first Email Address of any type is used.
Identifier:identifierCoPerson__c:Application_ID__cIf CoPerson custom object is enabled, type as configured in CoPerson Application ID Identifier Type
Identifier:identifierCoPerson__c:Platform_ID__cIf CoPerson custom object is enabled, type as configured in CoPerson Platform ID Identifier Type
Identifier:identifier (type orcid)CoPerson__c:ORCID__cIf CoPerson custom object is enabled
Name:honorificSalutationPrimary Name is used, regardless of type
Name:givenFirstNamePrimary Name is used, regardless of type
Name:middleMiddlename

Primary Name is used, regardless of type

(warning) Middle Name is not enabled by default in Salesforce. Once enabled there, tick Provision Middle Name in the Provisioner configuration.

Name:familyLastNamePrimary Name is used, regardless of type
Name:suffixSuffixPrimary Name is used, regardless of type
TelephoneNumber:number (type mobile)MobilePhoneFirst TelephoneNumber of type mobile associated with the first CoPersonRole
TelephoneNumber:number (type office)PhoneFirst TelephoneNumbe of type office associated with the first CoPersonRole

Understanding API Usage

The Salesforce API has request limits that vary according to the service tier and available licenses. To view current API usage, use the Salesforce Source plugin if configured, or login to Salesforce and navigate to Reports > Administrative Reports > API Usage Last 7 Days.

(info) Note that the API call required to determine the current API limits counts against the API limit.

In general, each provisioning operation (create or update) requires 1 API call, plus an additional API call if the CoPerson custom object is enabled.

See Also

  • No labels