Salesforce App: Package Installation
This article will guide you step by step in the installation process of our Salesforce App, which allow you to synchronize data from Allo-Media into your Salesforce CRM.
I. Package Installation
- Login to you targeted Salesforce organization
- Modify the installation URL according to you organization type.
A. On a production organization
Use the following URL : https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5J000000uRZX
04t5J000000uRZX is the identifier of the package.
B. On another organization (Sandbox, ScratchOrg or Playground)
- Go to the home page and change the URL like this : keep the root until .com Ex: https://xxxxxxxxxxxxxxxxx.lightning.force.com/lightning/page/home
- Add this to the URL : /packaging/installPackage.apexp?p0=04t5J000000uRZX
04t5J000000uRZXis the identifier of the package.
C. Installation screen
On this screen, you can manage the rights that will be applied to the package element
Install for all users The installation give rights to all users.
Install for specific profiles This installation concerns a group of people composed of one or various profiles. Set "Full Access" for each of the targeted profiles.
Install for administrators only The installation give the rights to the administrators. Later, you can still give the rights to a small number of users among one or more profiles, through "Permission sets".
- Once the type of installation has been selected, click on the "Installation" button.
- Check "Yes, grand access to these thirdy-party websites", then click on "Continue".
A. Permission Sets
In order to assign the necessary rights to a small number of users, use the "PA Allo-Media user" authorization set contained in the package.
Path: Configuration > ADMINISTRATION > Users > Permission Sets
- Click on "Ps Allo-Media User", then "Manage assignments".
- Select users and save.
B. Module authentication
In order to set up the security token for all the Allo-Media WebService, you will needd to go to the setup screen of the wsAllo-Media named credential.
Path: Configuration > SETTINGS > Security > Named Credentials
- Click on "wsAlloMedia", then "Edit"
- Enter the Allo-Media token in the password field, then save (if you don't have one, please send us a request)
C. Create a search relationship field
In order to link the calls to a parent object, you need to create a search relationship field. Two of them have already been created on the call object (one for the Account object, one for the Contact object). If you want to attach the call object to a custom object or another standard object, follow the example below.
I.e: Creation of a search relationship field for the "Lead" object
Path: Configuration > PLATFORM TOOLS > Objects and Fields > Object Manager > Call > Fields and relationships.
- Click on "New"
- Select "Lookup Relationship" then "Next"
- Select "Lead", then "Next"
- Keep the default values, then "Next"
- Check the field level-security for the concerned profile, then "Next"
- sKeep the default values, then save
D. Reconcile calls
In order to merge call on the parent object, you will need to set up a technical object called "ConfigMatchingPhone". This is a custom metadata type implemented to match a phone number of a parent object with the phone number of a call. Each record line of this technical object corresponds to a phone field of the parent object to be tracked.
Go to the ConfingMatchingPhone Custom Metadata Types to create or edit an entry.
Path: Configuration > PLATFORM TOOLS > Custom Code > Custom metadata types
- Click on "Manage records" for ConfigMatchingPhone
On ConfigMatchingPhone, 5 lines of reconciliation have already been created and provided bu the package :
- One on the phone field of the account object
- Four on the phone field of the contact object
These matching lines can be deactivated by clicking on "Edit"and unchecking the active checkbox.
List of the fields :
- ObjectType designate the target object
- FieldPhone designate the phone field of ObjectType
- CallObject must always be Call [allomedia]
- CallLooopField designate a search relationship field on ObjectType.
I.e: Create a reconciliation on the phone field of the object "Lead". Step "II - B" is a prerequisite.
To add a new match, click on "New", fill in the following fields, then "Save".
E. Setting up the page layout
In order to visualize the calls related to an account, to a contact or to an other object, the page layout of this object must be set up.
Two examples of presentations pages are provided in the package:
- Account Allo-Media Layout for the account
- Contact Allo-Media Layout for the contact
I.e: Edit the presentation page of the account object. These same steps must be repeated on other objects.
Path: Configuration > PLATEFORM TOOLS > Objects and Fields > Object manager > Account > Page Layout
- Click on "Account Allo-Media Layout"
- Select "Related Lists", drag and drop the "Calls" object under the "Related Lists" section.
- Click on the "Edit" icon in the associated list
- Move the fields you want to appear on the list, select the field "DateCall" in "Sort by", then choose "Descending"
III. Call synchronization
In order to synchronize the call table of the Salesforce organization, with the date in the Allo-Media platform, you need to :
- Initialize the Call Table
- Scheduling a recurring update task
This process will consume the Allo-Media webService, enrich the Call table and perform the reattachment through a reconciliation with the call's phone numbers.
A. Initialize the data
The initialization of the call table is done using lines of apex code, in the developer console.
Path: click on the cogwheel in the top right corner, then "setup"
- Open the developer console
- In the new window, select the "Debug" menu
- Open "Execute anonymous window"
In the popup "Enter Apex Code", enter the code line corresponding to your needs:
- Up to a date in the past You'll define a date in the past up to which you need to fetch data from. The system will take care to fetch calls from this date up to today. Date format is
- Maximum initialization Initialize the call table with all the data from the plateform (limit 10k calls):
- Partial initialization Initialize the call table with recent data from the Allo-Media Platform, use the ID of the last call you want as a parameter in the code line (limit 10k calls):
- Classic initialization If the call table has already been initialized, it will retrieve the new calls:
- Batch Reconciliation of the call table
B. Recurring task
In order to schedule a recurring task, using an Apex scheduler class "ScheduledRequestCall". This task will execute the synchronization process.
Scheduling a task Go to the Schedule Apex Screen
Path: Configuration > PLATFORM TOOLS > Custom code > Apex classes
- Click on "Schedule Apex", complete the fields, then save.
Track the ongoing tasks The "Apex Classes" screen allow you to monitor the progress of the synchronization process. Go on "Apex Classes".
Path: Configuration > PLATFORM TOOLS > Environment > Jobs > Apex Jobs
The Apex class "QueueableRequestCalls" performs the call table synchronization process. It can be executed several times, up to a maximum of 50 executions, depending on the volume of the data and the quality of the network.
Manage the scheduled task The planned task cannot be changer but can be deleted.
Path: Configuration > PLATFORM TOOLS > Environment > Jobs > Apex Jobs
IV. Tags tracking
Each call contains one or more qualifications, consisting of a GUID which is the unique identifier and a label. This data is stored in a Qualification__c technical object (custom parameter) as a data dictionary but also in a call record. It is possible to highlight a qualification that will be put in a tag field of the call and also rename its tag according to the business needs.
Go to the "Qualification__c" custom parameter to modify an entry?
Path: Configuration > PLATFORM TOOLS > Custom code > Custom settings
- Click on "Manage" (for Qualification label)
- Click on "Modify" to change the qualification
- Select "Track" to highlight a qualification
- Use "Custom Label" to rename the tag, then save.