Migrating PA config between Orgs
Many companies use change processes that involve making changes on Sandbox or Dev orgs for testing and QA, before pushing the changes to production. However, as Plauti Assign config is held in Salesforce object records, it isn't possible to use Change Sets to manage the changes.
Instead, the settings have to be either created manually or exported/imported. This article describes the use of an SFDX plugin that enables one-command migration of all Plauti Assign config data from one org to another.
Pre-requisite: SFDX
SFDX is a set of tools and environments for development in Salesforce. It is typically employed as a set of plugins in Visual Studio Code, and setup of this is outside the scope of this guide. However there are many resources detailing how to set up Visual Studio Code and SFDX:
Trailhead: Setting up Visual Studio Code
Trailhead: App Development with Salesforce DX
Salesforce Data Move Utility (SFDMU)
If you use SFDX, then using SFDMU to migrate your Plauti Assign config will be simple.
See the full readme for more information here, or just dive right in by issuing this command to install SFDMU:
1 $ sf plugins install sfdmu
After SFDMU has installed, all you need are three things to execute your Plauti Assign migration:
The source org username
The target org username
The export.json file that contains all the Plauti Assign objects that need migrating (provided below)
1 {
2 "objects": \[
3 {
4 "query": "select Id, leadassist\_\_Active\_\_c, leadassist\_\_Sales\_Cadence\_\_c, leadassist\_\_AdjustCapacityDuringBulkTransactions\_\_c, leadassist\_\_Assignment\_Field\_\_c, leadassist\_\_Check\_Existing\_Records\_\_c, leadassist\_\_Custom\_Email\_Template\_\_c, leadassist\_\_Custom\_MatchRule\_Logic\_\_c, leadassist\_\_Description\_\_c, Name, leadassist\_\_Advanced\_MatchRule\_Logic\_\_c, leadassist\_\_Object\_Type\_\_c, leadassist\_\_Operational\_Mode\_\_c, OwnerId, leadassist\_\_Priority\_\_c, leadassist\_\_Queue\_User\_\_c, leadassist\_\_Rejects\_User\_\_c, leadassist\_\_Update\_Fields\_On\_Assignment\_\_c from leadassist\_\_MatchGroup\_\_c",
5 "operation": "Upsert",
6 "externalId": “”
7 },
8 {
9 "query": "select Id, leadassist\_\_Active\_\_c, leadassist\_\_CaseSensitive\_\_c, leadassist\_\_LookupField\_\_c, leadassist\_\_MatchGroup\_\_c, leadassist\_\_MatchField\_\_c, leadassist\_\_Object\_Type\_\_c, leadassist\_\_MatchingValueXL\_\_c, Name, leadassist\_\_NOT\_\_c, leadassist\_\_Notes\_\_c, leadassist\_\_Object\_\_c, leadassist\_\_Operator\_\_c, leadassist\_\_Rule\_Number\_Value\_\_c from leadassist\_\_MatchRule\_\_c",
10 "operation": "Upsert",
11 "externalId": “”
12 },
13 {
14 "query": "select Id, leadassist\_\_Active\_\_c, Name, leadassist\_\_CapacityThreshold\_\_c, leadassist\_\_CC\_Email\_Address\_\_c, leadassist\_\_Distribution\_Ratio\_\_c, leadassist\_\_Do\_Not\_Assign\_When\_Calendar\_Busy\_\_c, leadassist\_\_Do\_Not\_Assign\_When\_Omni\_Away\_\_c, leadassist\_\_Do\_Not\_Assign\_When\_OOO\_\_c, leadassist\_\_MatchGroup\_\_c, leadassist\_\_Send\_Email\_Notifications\_\_c,leadassist\_\_Send\_SMS\_Notifications\_\_c,leadassist\_\_SMS\_Email\_\_c, leadassist\_\_User\_\_c from leadassist\_\_Assignee\_\_c",
15 "operation": "Upsert",
16 "externalId": “”
17 },
18 {
19 "query": "select Id, leadassist\_\_CapacityModel\_\_c, leadassist\_\_MatchGroup\_\_c, Name from leadassist\_\_MatchGroupCapacityModel\_\_c",
20 "operation": "Upsert",
21 "externalId": “”
22 },
23 {
24 "query": "select Id, leadassist\_\_Assignment\_Field\_\_c, Name, leadassist\_\_Criteria\_Logic\_\_c, leadassist\_\_Description\_\_c, leadassist\_\_Object\_Type\_\_c from leadassist\_\_CapacityModel\_\_c",
25 "operation": "Upsert",
26 "externalId": “”
27 },
28 {
29 "query": "select Id, leadassist\_\_CapacityModel\_\_c, Name, leadassist\_\_Criteria\_Logic\_Number\_\_c, leadassist\_\_Date\_Keyword\_\_c, leadassist\_\_Date\_Keyword\_Number\_\_c, leadassist\_\_Field\_\_c, leadassist\_\_FieldType\_\_c, leadassist\_\_Operator\_\_c, leadassist\_\_Value\_\_c from leadassist\_\_CapacityModelCriteria\_\_c",
30 "operation": "Upsert",
31 "externalId": “”
32 },
33 {
34 "query": "select Id, leadassist\_\_SLA\_\_c, leadassist\_\_MatchGroup\_\_c, Name, leadassist\_\_SLA\_Minutes\_\_c from leadassist\_\_MatchGroup\_SLA\_\_c",
35 "operation": "Upsert",
36 "externalId": “”
37 },
38 {
39 "query": "select Id, leadassist\_\_Reassign\_If\_SLA\_Missed\_\_c, Name, leadassist\_\_Criteria\_Logic\_\_c, leadassist\_\_SLA\_Minutes\_\_c, leadassist\_\_Object\_Type\_\_c from leadassist\_\_SLA\_\_c",
40 "operation": "Upsert",
41 "externalId": “”
42 },
43 {
44 "query": "select Id, Name, leadassist\_\_Criteria\_Logic\_Number\_\_c, leadassist\_\_Date\_Keyword\_\_c, leadassist\_\_Date\_Keyword\_Number\_\_c, leadassist\_\_Field\_\_c, leadassist\_\_FieldType\_\_c, leadassist\_\_Operator\_\_c, leadassist\_\_SLA\_\_c, leadassist\_\_Value\_\_c from leadassist\_\_SLACriteria\_\_c",
45 "operation": "Upsert",
46 "externalId": “”
47 },
48 {
49 "query": "select Id, leadassist\_\_Active\_\_c, leadassist\_\_Assignee\_\_c, leadassist\_\_Friday\_End\_Time\_\_c, leadassist\_\_Friday\_Start\_Time\_\_c, leadassist\_\_Monday\_End\_Time\_\_c, leadassist\_\_Monday\_Start\_Time\_\_c, leadassist\_\_Saturday\_End\_Time\_\_c, leadassist\_\_Saturday\_Start\_Time\_\_c, leadassist\_\_Sunday\_End\_Time\_\_c, leadassist\_\_Sunday\_Start\_Time\_\_c, leadassist\_\_Thursday\_End\_Time\_\_c, leadassist\_\_Thursday\_Start\_Time\_\_c, leadassist\_\_Tuesday\_End\_Time\_\_c, leadassist\_\_Tuesday\_Start\_Time\_\_c, leadassist\_\_Wednesday\_End\_Time\_\_c, leadassist\_\_Wednesday\_Start\_Time\_\_c from leadassist\_\_AssigneeWorkingHours\_\_c",
50 "operation": "Upsert",
51 "externalId": “”
52 }
53 \]
54}
Copy the above and save it into a file called export.json - you can save it into the root of your sfdx project.
The source org and the target org have to already be authorised (connected) in SFDX (they normally will be if you are using SFDX).
Then to perform the migration, simply issue this command:
1 % sf sfdmu run --sourceusername source@example.com --targetusername target@example.com
SFDMU will then use the export.json file to migrate all the PA records from your source org to your target org.
Note: only config is migrated - it does not migrate Match Logs.