Project Mapping

Published Date: 21-02-2025

Read Time:

The Project Mapping feature helps users map Jira fields for each Jira project separately.

  1. From ‘Admin Settings’, click ‘Field Configuration’ and subsequently click ‘Project Mapping’.

  1. Select a Salesforce object from the list including all standard and custom objects.

Note: The standard license allows for 1 Salesforce object. In case you need to map and configure multiple Salesforce objects reach out to your Account Executive or drop an email at [email protected].

  1. Select a Jira Project from the dropdown list.

  1. Based on the selected Jira project, a list of mandatory Jira fields will appear.

  1. You can edit the labels of the Jira fields. Only the names used in the labels for Jira fields will appear on the Jira Creation Page in Salesforce.


  1. You can also map the Jira fields with the Salesforce Object fields (optional). In case a Jira field is mapped with an object field, then the Jira field will be pre-populated with the value of the object field while creating a Jira ticket.

  1. Target: It enables you to sync updates directly from mapped Salesforce Object to Jira tickets and vice versa. Users have to decide the type of syncing:

    • Bi-Directional: If selected, then any update done on Salesforce fields will be synced to Jira ticket fields and Vice versa.

    • Salesforce: If selected, any change/update in Jira ticket fields will be synced to the Salesforce fields.

    • Jira: If selected, then any change/update in Salesforce fields will be synced to the related Jira ticket fields.

    • None: If None is selected, the basic syncing between Salesforce and Jira will always be there.

  1. Read-only - Fields for which read-only is enabled cannot be edited in the Salesforce. Users can only view these fields.

  1. You can map additional Jira fields available in a selected Jira project and also have the option to mark the fields mandatory/required by checking the ‘Required’ box on the fields. The marked fields would require a value while creating a Jira ticket from Salesforce.

Note: Jira fields can be mapped to the Salesforce fields on the basis of the data type compatibility.

For example, the Jira priority field (picklist) can be mapped to the case priority field (picklist) only. The compatibility of the fields is defined in the backend.

Refer to the sheet below to know the fields’ compatibility.

  1. You can also decide the mapping of picklist values between Jira and Salesforce, which is applicable only for picklist-type fields. To do this, click the option boxed in green as shown in the screenshot below.

  1. You can decide which Jira value should be selected on a particular Salesforce field value selection.

  1. To add a new mapping for a Jira field, click on the ‘Add’ button by giving a unique label to the mapping.

  1. You can update the basic details of mapping through the inline edit button and change the label or choose another Salesforce field to map with the Jira field. Click on the inline save button.

  1. Users can also use the common save button to save multiple edited mapped fields.

  1. Click on the gear icon, to unlock further settings for respective fields.

Using record settings

  1. Help Text: Type in a small description for the respective field to help end users better understand what this field is about. For more details refer to the Document.

  2. Order in Related List: You can set the order of the Jira Related List from this option.

  3. Enable Name Linking: Once configured and enabled, Jira users can view the details about the Salesforce records linked to Jira. For more details refer to the Related Document.

  4. Show in Related List: If this option is enabled, then the respective field will be visible under the Related List.

  5. Enable Record Mapping: If this option is enabled, Jira - Salesforce mapped field data can be changed from Jira.

  6. View Mode: If this option is enabled, then the respective field will not be visible to the agents at the time of creating a Jira ticket. Once a Jira ticket is created, that field can be viewed on the detail page of the Jira issue.

For Other Salesforce Objects

In order to sync updates from Salesforce objects (other than case) to Jira, Jira To Salesforce, or Bi-Directional, please follow the below steps as a pre-requisite.

Note: We have used the Account as an illustration. Likewise, you can apply the same approach for the other Salesforce Objects.

  1. Create a Custom Setting Record

    1. From ‘Setup’, enter ‘custom settings’ in the ‘Quick Find’ box and click on it from the search results. Then click ‘SFjiraTarget_Triggers’.

    2. Click ‘Manage’.

    3. Click ‘New’ to add a new Record of Custom Setting.

  2. Create a Trigger

    1. In the Developer Console, click File | New | Apex Trigger. The New Apex Trigger window opens.

  1. Click Submit.

  2. Please make sure to update the event From Before Insert to After update.

  3. To

  1. Click Debug and then open Anonymous window and Copy the code.

Copy
Grz_Sf__Sinergify_Trigger__c sc=new  Grz_Sf__Sinergify_Trigger__c();
                sc.Name = 'AccountToJiraTrigger';
                sc.Grz_Sf__IsActive__c = true;
            insert sc;
  1. Once done Click on the Execute Highlighted Checkbox.

  2. Copy the code in Trigger which is already created.

  3. Once done click Save.

Copy
trigger AccountTrigger on Account (before insert, After update) {
                Grz_Sf__Sinergify_Trigger__c Metdata = Grz_Sf__Sinergify_Trigger__c.getValues('AccountTrigger');
                if(Metdata!=null && Metdata.Grz_Sf__IsActive__c && Grz_Sf.CheckRecursive.caseFlag){
                Grz_Sf.TriggerFactory.createHandler(Account.sObjectType);
            }

Test Class

Copy
@isTest
                public class AccountTrigger_Test {
                @testSetup
                static void testData(){
                Grz_Sf__SFjiraTarget_Triggers__c sinergifyTriggers = new Grz_Sf__SFjiraTarget_Triggers__c(Name='AccountTrigger', Grz_Sf__ObjectName__c='Account');
                insert sinergifyTriggers;
                Grz_Sf__Sinergify_Trigger__c stc = new Grz_Sf__Sinergify_Trigger__c(Name='AccountTrigger', Grz_Sf__IsActive__c = true);
                insert stc;
                Account testAccount = new Account(
                Name = 'Test Account',
                Industry = 'Technology',
                Type = 'Customer'
                );
                insert testAccount;
                }
                @isTest
                static void testMethod1(){
                Account accData = [SELECT Id, Name FROM Account LIMIT 1];
                accData.Name = 'Test New Account';
                update accData;
                }
                }