String cadenceRatingString = '"squivr__Cadence_Rating__c_Count":1,"squivr__Cadence_Rating__c":'; String influenceRatingString = '"squivr__Influence_Rating__c_Count":1,"squivr__Influence_Rating__c":'; String powerRatingString = '"squivr__Power_Rating__c_Count":1,"squivr__Power_Rating__c":'; String relationshipRatingString = '"squivr__Relationship_Rating__c_Count":1,"squivr__Relationship_Rating__c":'; List contactsWithRatings = new List(); List relationshipsToInsert = new List(); for (Contact c : [SELECT id,accountid,squivr__settings__c,squivr__Cadence_Rating__c,squivr__Influence_Rating__c,squivr__Power_Rating__c,squivr__Relationship_Rating__c FROM Contact WHERE squivr__Cadence_Rating__c!=null OR squivr__Influence_Rating__c!=null OR squivr__Power_Rating__c!=null OR squivr__Relationship_Rating__c!=null]) { List ratingsJsonList = new List(); squivr__Relationship__c sr = new squivr__Relationship__c(); sr.squivr__Contact__c = c.Id; sr.squivr__Account__c = c.AccountId; if (c.squivr__Cadence_Rating__c!=null) { ratingsJsonList.add(cadenceRatingString+String.valueOf(c.squivr__Cadence_Rating__c)); sr.squivr__Cadence_Rating__c = c.squivr__Cadence_Rating__c; } if (c.squivr__Influence_Rating__c!=null) { ratingsJsonList.add(influenceRatingString+String.valueOf(c.squivr__Influence_Rating__c)); sr.squivr__Influence_Rating__c = c.squivr__Influence_Rating__c; } if (c.squivr__Power_Rating__c!=null) { ratingsJsonList.add(powerRatingString+String.valueOf(c.squivr__Power_Rating__c)); sr.squivr__Power_Rating__c = c.squivr__Power_Rating__c; } if (c.squivr__Relationship_Rating__c!=null) { ratingsJsonList.add(relationshipRatingString+String.valueOf(c.squivr__Relationship_Rating__c)); sr.squivr__Relationship_Rating__c = c.squivr__Relationship_Rating__c; } //system.debug('ratingsJsonList ' + ratingsJsonList); String ratingsJson = '{'+String.join(ratingsJsonList,',')+'}'; //system.debug('ratingsJson ' + ratingsJson); c.squivr__settings__c = ratingsJson; contactsWithRatings.add(c); //system.debug('sr ' + sr); relationshipsToInsert.add(sr); } update contactsWithRatings; insert relationshipsToInsert;