To configure an integration into SalesForce/RemedyForce, the following steps need to be performed:

  1. Configuring the SalesForce instance
    1. Create the "CLIP for HP BSM" integrated App
    2. Obtain the "clientId" and "clientSecret"
    3. Create an "Integration Profile"
    4. Create the "Integration User"
  2. Configure the CLIP target of type SalesForce / RemedyForce


Each step is described in the following subsections.

Supported Versions

Please assure that the system you intend to integrate meets the version requirements outlined in the table below.

ProductSupported Version
SalesForce / RemedyForce???

System Preparation

CLIP's salesforce integration requires the creation of a "Connected App" and integration user that performs the required operations within Remedyforce and therefore needs certain permissions within the salesforce platform.
Please refer to these documents for background information on Salesforce.com:
http://resources.docs.salesforce.com/198/11/en-us/sfdc/pdf/salesforce_identity_implementation_guide.pdf
The first step is to open https://login.salesforce.com/ and login with your admin account.

Create the “CLIP Integration Platform” integrated APP

A "Connected App" needs to be created.

Please follow below steps if you are in "Salesforce Classic" interface:

  • Click on "Setup"
  • Choose "Create" from the "Build" menu
  • Click on the "Apps" link
  • Click on the Button "New" in the "Connected App" section

Please follow below steps if you are in "Lightning Experience" interface:

  • Click on the "Setup" gear icon and choose Setup;

  • In the left side menu navigate to "PLATFORM TOOLS" and click on Apps → App Manager
  • Choose "New Connected App" from the center window



Please provide the following values:

  • Connected App Name: CLIP Integration Platform Connected App
  • API Name: CLIP_Integration_Platform_Connected_App (inserted automatically)
  • Contact Email: <your email address>
  • Enable OAuth Settings: Check this option
  • Callback URL: https://www.applink.de
  • Selected OAuth Scopes:Full access (full)
  • Click "Save"


Setting the "IP Relaxation" for the connected app:

  1. "Salesforce Classic" interface:
    • Click on "Setup"
    • Click on "Manage Apps" from the "Administer" menu, and then click on "Connected Apps"
    • From the "Connected Apps" section, click on the "Edit" link for the "Connected App" named "CLIP Integration Platform Connected App"
    • Under "OAuth policies", select "Relax IP restrictions" and "Save"
  2. "Lightning Experience" interface:
    • In the left side menu navigate to "PLATFORM TOOLS" and click on Apps → Connected Apps → Manage Connected Apps
    • Click on the "Edit" link for the "Connected App" named "CLIP Integration Platform Connected App"
    • Under "OAuth policies", select "Relax IP restrictions" and "Save"


Obtain the “clientId” and “clientSecret”

For CLIP to connect, these two values need to be obtained:

  • clientId
  • clientSecret


These two values can be found following these steps:

  • "Salesforce Classic" interface:
    1. Click on "Setup"
    2. Click on "Create" from the "Build" menu, and then click on "Apps"
    3. From the "Connected Apps" section, click on the link for the "Connected App" named "CLIP Integration Platform Connected App".

  • "Lightning Experience" interface:
    1. In the left side menu navigate to "PLATFORM TOOLS" and click on Apps → App Manager
    2. Find "CLIP Integration Platform Connected App" application and in the last row from the drop down list choose "View"

 


The clientId is shown as the "Consumer Key":


The clientSecret is shown after clicking on the "click to reveal" link.

Create the integration profile

Then a profile with the required rights has to be created.

  • "Salesforce Classic" interface:
    • Click on "Setup"
    • Choose "Manage Users" from the "Administer" menu
    • Click on the "Profiles" link
  • "Lightning Experience" interface:
    • Click on the "Setup" gear icon and choose Setup;
    • In the left side menu navigate to "ADMINISTRATION" and click on Users → Profiles
  • Choose the "Standard User" profile
  • Click on the Button "Clone": Provide the name "Clip Integration Profile" and save (it is important to provide this name in order to activate backsync)
  • Click on the following compartments and apply below changes:
    • Assigned Apps: EditActivate BMC Helix Remedyforce "Visible" checkbox → click on Save button;
    • System Permissions: EditMake sure the checkbox "API Enabled" is checked → click on Save button;
    • Object Settings → Incidents: Edit → Check Enabled in "Object Permissions" for all fields and check Read Access and Edit Access in "Field Permissions" for all fields → click on Save button;

 

  • If the password should not expire change the password policies to "Never expires" from "Password Policies" option;

Create the integration user

In order to create the integration user please perform the following steps:

  • "Salesforce Classic" interface:
    • Click on "Setup"
    • Choose  "Manage Users" from the "Administer" menu
    • Click on "Users"
    • Click on the "New User" button and fill in the required fields
  • "Lightning Experience" interface:
    • Click on the "Setup" gear icon and choose Setup;
    • In the left side menu navigate to "ADMINISTRATION" and click on Users → Users
    • Click on the "New User" button and fill in the required fields



  • Choose "SalesForce" in the "User License"
  • Choose the "Clip Integration Profile" just being created before
  • Mark the checkbox "Generate new password and notify user immediately".  An E-Mail will be send to the provided e-mail address in order to change the password.
  • Save the user


The integration user also needs the Remedyforce licenses - therefore

  • Click on the user name
  • Go to the managed packages section
  • Assign the required "BMC Remedyforce" package


Clip Target Configuration

Please use the configuration file "ClipConfig_New_RemedyForce.xml" in the directory Clip\apache-tomcat\webapps\Clip\conf as a template and copy it to conf/ClipConfig.xml. It contains the example integration "MFOMi_SalesForce" which needs to be activated:

This integration references the RemedyForce example target "RemedyForce":

The configuration of the following attributes is mandatory:

  • loginUrl: default: "https://login.salesforce.com"
  • grantService: default: "/services/oauth2/token?grant_type=password"
  • userName: as defined during user creation in previous section
  • password: as defined during user creation in previous section
  • clientId:as determined in previous section
  • clientSecret:as determined in previous section


The next subsections describe how to poll for new incidents from Salesforce / Remedyforce and the CLIP settings for checking for updates. Two attributes (incidentPollingForNewQualifier and incidentPollingQualifier) define qualifiers: the Syntax for the qualifier has to match the "Where Clause" as specified by Salesforce.com in the documentation for the "ConditionExpression Syntax". When customizing these qualifiers, please carefully review the Clip.log logfile for any issues and/or test your qualification criteria by means of the Utility "REST Explorer" in the Salesforce Developer Workbench.

Polling for new incidents in Salesforce / Remedyforce

In addition to create and update incidents in a Salesforce target, CLIP can also retrieve new incidents and poll for updates from a Salesforce target to create and synchronize them with incidents in a peer target.
The following attributes control how CLIP performs the polling for new incidents:

  • incidentPollingForNew: to enable polling for new incidents, set it to "true", and "false" otherwise ( default: "false" )
  • incidentPollingIntervalSecsNew:the interval in seconds at which CLIP performs the polling operations ( default: 60 seconds )
  • incidentPollingForNewQualifier: this qualifier specifies the incidents which are supposed to be polled. To save resources on the target system, CLIP by default adds filters to the query and puts a limit for a time interval and does exclude incidents from the query created by itself by identifying them by the "CreatedBy" field and the integration user configured in the "username" attribute.

Polling for updated incidents in Salesforce / Remedyforce

For Salesforce incidents that have been created by CLIP as well as those retrieved, CLIP can poll these for updates to allow a bi-directional synchronization. The following attributes are used for "incident polling":

  • incidentPolling: to enable polling for updated incidents, set it to "true", or "false" otherwise ( default: "false" )
  • incidentPollingIntervalSecsChange: the interval in seconds at which CLIP performs the polling operations ( default: 60 seconds )
  • incidentPollingAttributes: a list of field names separated by semicolon that should be read and checked for changes. The fields available depend on the Salesforce "sObject" used, default: "BMCServiceDesk_Incident_c". At startup, CLIP obtains the list of all fields along with their datatype and logs it into Clip.log.
  • "statusField": the name of the field that holds the current incident's status
  • "closedStatusValueString" attribute: the status value that will cause Clip to finish the synchronization once it is detected
  • incidentPollingByQualifier: selection of the method that CLIP uses to poll for updates. Two methods are available for polling for updates:
    • incidentPollingByQualifier="false": incidents are polled sequentially (one-by-one) by their id as obtained from the CLIP DB.
    • incidentPollingByQualifier="true": incidents are polled for updates in a bulk by using a proper qualification criteria configured in attribute "incidentPollingQualifier". This is the recommended method.
  • incidentPollingQualifier ( only relevant if incidentPollingByQualifier="true"): the qualification criteria to poll incidents for updates which have either been created by CLIP or retrieved by "pollingForNew". To save resources on the target system, CLIP by default adds filters to the query and puts a limit for a time interval.