Accelerator Salesforce Customers System API - Implementation Template

(0 reviews)

Prerequisites

This implementation template has the following dependencies:

  • Create Custom fields and provide permissions for the Service Account User
  • Enable Record types
  • Security token for service account user in Salesforce
  • Connected App in Salesforce

Custom fields

The following fields must be created in the corresponding objects.

Salesforce ObjectField LabelField NameData TypeLengthUnique*ExternalId
AccountGlobal Billing Address IDGlobal_BillingAddress_IdText36YY
AccountGlobal Customer IDGlobal_Customer_IdText36YY
AccountGlobal Email Address IDGlobal_EmailAddress_IdText36YY
AccountGlobal Fax Number IDGlobal_FaxNumber_IdText36YY
AccountGlobal Mailing Address IDGlobal_MailingAddress_IdText36YY
AccountGlobal Mobile Number IDGlobal_MobileNumber_IdText36YY
AccountGlobal Party IDGlobal_Party_IdText36YY
AccountGlobal Phone Number IDGlobal_PhoneNumber_IdText36YY
AccountGlobal Shipping Address IDGlobal_ShippingAddress_IdText36YY
AccountCustomer StatusCustomer_StatusPicklist-NN
ContactGlobal Email Address IDGlobal_EmailAddress_IdText36YY
ContactGlobal Individual IDGlobal_Individual_IdText36YY
ContactGlobal Phone Number IDGlobal_PhoneNumber_IdText36YY
ContactGlobal Mobile Number IDGlobal_MobileNumber_IdText36YY
ContactGlobal Other Address IDGlobal_OtherAddress_IdText36YY
ContactGlobal Mailing Address IDGlobal_MailingAddress_IdText36YY
OpportunityACH Transfer Authorization Document IDAch_Transfer_Auth_Document_IdText36NN
OpportunityAsset Transfer Authorization Document IDAsset_Transfer_Auth_Document_IdText36NN
OpportunityDocument Signatures ReceivedDocument_Signatures_ReceivedCheckbox---
OpportunityKYC CompletedKYC_CompletedCheckbox---

*Unique fields should be case-sensitive

Create via Apex script

An Apex class called CustomFieldUtility can be used to create custom fields programmatically. The source for this class can be found in the Common Resources project. Download this project and follow the steps below.

  1. Click on Salesforce Setup icon and select Developer Console to open a new console window
  2. Go to File -> New -> Apex class and create a new class named CustomFieldUtility
  3. Copy the code from accelerator-common-resources/salesforce/CustomFieldUtility.apxc to the script editor
  4. Select the File -> Save menu option to compile and save the class
  5. Select Debug -> Open Execute Anonymous Window
  6. Copy and paste the contents of accelerator-common-resources/salesforce/CreateCustomFields.txt into the window.
  7. Enable the Open Log option and click the Execute button.

Once the script completes, select the Debug Only filter option to show just the results of each create request. Verify that all fields have been successfully created.

Create manually via Salesforce

To create each of these custom fields and enable visibility for them on page layouts:

  1. Click the Salesforce Setup icon.
  2. Select the Object Manager tab from the Setup home page.
  3. Find and select the target Salesforce object.
  4. Select the Fields & Relationships page.
  5. Click the New button and create the field as specified above.
  6. Repeat these steps for each custom field in the above list.
Enable the Custom fields for the Service Account User
  1. Click the Salesforce Setup icon.
  2. Select the Object Manager tab from the Setup home page.
  3. Find and select the target Salesforce object.
  4. Select the Fields & Relationships page.
  5. Select the field that requires the permission enabled.
  6. Click the Set Field-Level Security button.
  7. Enable for desired profile, or tick the checkbox next to Visible to enable visibility for the desired profile(s).

Tip: Instead of adjusting permissions for each field as you go, if you are only making them available to one or two profiles it may be more efficient to go to the Users -> Profiles -> {profile} -> Object Settings for each object and adjust the permissions for multiple fields at once.

Additional notes

  • The Customer Status picklist values are Prospect, Onboarding, Active, Inactive, Closed, Deceased, Delinquent, and Dormant.
  • All Global_*_Id__c fields should be visible in layouts (as described above) but made read-only to avoid issues with data synchronization.

Create or Enable Record Types

The following record types must exist in the corresponding objects for the accelerator assets to function correctly. These record types need to be created if they do not exist. If the Record Type already exists, ensure that it is enabled for the target profile of the Service Account User.

Salesforce ObjectRecord Type LabelDetails
AccountHouseholdRecord Type Name -> IndustriesHousehold
LeadLeadRecord Type Name -> Lead, Lead Process -> Sales Lead

To create the Record Type, follow the instructions for each object below :

  1. Click the Setup gear icon, then click Setup.
  2. Search for the Salesforce Object. A page appears with Details of the Object.
  3. Click Record Types under the Details section to see the list of available Record Types on the Object. Click New.
  4. In the Existing Record Type field, select Master.
  5. Enter the Record Type Label, Record Type Name and other details from the Details Column and Enter a Description.
  6. Select Active. Enable for all needed profiles. Click Next.
  7. Select Apply one layout to all profiles.
  8. From the Select Page Layout List, select a Layout and Click Save.

To enable the Record Type, follow the instructions for each object below :

  1. Click the Setup gear icon, then click Setup.
  2. Navigate to Users -> Profiles.
  3. Select the target profile for the service account user.
  4. Navigate to Object Settings and select the Salesforce Object from the above table and click the Edit button.
  5. Under Record Types and Page Layout Assignments check the record type.
  6. Click the Save button.

Configure Connected App for authentication

Follow the below steps to generate the Consumer Key and Consumer Secret values required for Salesforce authentication.

  1. Click the Salesforce Setup icon.
  2. Navigate to Apps -> App Manager.
  3. Select New Connected App.
  4. Enter Connected App Name: MuleSoft Accelerator, API Name: MuleSoft_Accelerator and set your email address.
  5. In the API (Enable OAuth Settings) section, check the box Enable OAuth Settings.
  6. Set the callback URL http://localhost.
  7. From the Selected OAuth Scopes list, select Full access (full).
  8. Click Save and then Continue.
  9. Click the Manage button to view details for the new connected app.
  10. Click the Edit Policies button.
  11. In the OAuth Policies section, for Permitted Users select All users may self-authorize.
  12. For IP Relaxation, select the Relax IP restrictions option.
  13. Click Save.

You now need to copy the Consumer Key and Consumer Secret values for use in configuring Mule application deployments. More specifically, these must be supplied as the values for the sfdc.fsc.client-id and sfdc.fsc.client-secret properties found in the FSC-BANKING-DEV, FSC-Insurance-DEV and FSC-WEALTH-DEV profiles in your Maven settings.xml file.

  1. On the Setup Home page, navigate to Apps -> App Manager.
  2. Locate your new connected app and choose View from the actions dropdown for that item (last column on the right).
  3. Under the API (Enable OAuth Settings) section, click the Manage Consumer Details button.
  4. Verify your identity by entering the verification code that was emailed to you.
  5. Copy the key and secret values and update your settings.xml file as described above.

Download the Common Resources project for a sample settings.xml file that can be used as a starting point.

Generating security token for service account

A token needs to be generated for the service account used by the Mule applications in order to connect to the FSC instance.

  1. Login to Salesforce as the Service Account User (the account that will be used by the Mule applications for connecting to Salesforce).
  2. Click the Username icon in the top right corner and select Settings from the menu.
  3. Select My Personal Information -> Reset My Security Token (if not found, see note below).
  4. Click Reset Security Token.
  5. Check the email inbox for an email from Salesforce with the new security token.

Note: If the option to reset your security token is not available, it is likely that one or more Login IP Ranges are in effect. These can be temporarily removed from the settings page of the profile assigned to the service account user.

Next steps

The Deployment tab provides instructions on how to properly configure the application for running locally from Studio or deploying to CloudHub.


Reviews

TypeTemplate
OrganizationMuleSoft
Published by
MuleSoft Solutions
Published onJun 27, 2023
Asset overview

Asset versions for 2.6.x

Asset versions
VersionActions
2.6.3
2.6.2
2.6.1