Configuring Custom Field Support for Projects
You can configure Service Board to support custom field import from Microsoft Project or Safran Project files, and then sync the relevant custom field values from Project Task records in Service Board to Salesforce Work Order and Service Board Job records when you publish projects.
To configure custom field support for Projects:
1. In Salesforce, create new custom fields in the Salesforce Work Order object to map to the custom fields in the Service Board Project Task object with the following data type mappings, and then expose the fields to the Service Board Fields field set.
MS Project Custom Field Type
Safran Project User Field
Service Board Project Task
Salesforce Work Order
Service Board Job
Cost
Decimal
Currency Amount
Currency
Currency Amount
Date
Date
Timestamp
Date/Time
Timestamp
Duration
Duration
Interval
Number
Interval
Finish
Timestamp
Date//Time
Timestamp
Flag
Flag
Boolean
Checkbox
Boolean
Number
Decimal
Number
Number
Number
Outline Code
String
Text
String
Start
Timestamp
Date/Time
Timestamp
Text
Text
Date
Date
Date
Text
Text
Email Address
Email
Email Address
Text
Text
Relationship
Lookup Relationship
Relationship
Text
Text
Dynamic Relationship
Lookup Relationship
Dynamic Relationship
Text
Text
Percent
Percent
Percent
Text
Text
Phone Number
Phone
Phone Number
Text
Text
Option List
Picklist
Option List
Text
Text
Option List (Multiple)
Picklist (Multi-Select)
Option List (Multiple)
Text
Text
String/Option List
Record Type
Text
Text
String
Text
String
Text
Text
Text
Text Area
Text
Text
Text
Time
Time
Time
Text
Text
URL
URL
URL
Reference
String/Option List
Text/Picklist
String/Option List
* 
For Safran Project, the Outline Code and Computed Type user fields are not supported. Additionally, for Service Board fields that use the Time data type, data sync to and from Salesforce requires installation of Service Board Extension 20.10000.6 or later.
2. In Service Board, create new fields in the Project Task object to map to MS Project custom fields or Safran Project user fields with applicable data type mappings.
* 
Custom fields can be mapped only by their full field identifiers. Do not use custom field names to map custom fields in Project Tasks.
3. In Service Board, map existing fields or create and map new fields to the corresponding fields in the Salesforce Work Order object.
4. In Service Board, update the Project Task to WorkOrder Template transform template to add mappings for the new custom fields in the Service Board Project Task and Salesforce Work Order objects, for example:
...
"CurrencyIsoCode": "currencyInverseFormat(task.dev_my_cost, 0)",
"My_Cost__c": "currencyInverseFormat(task.dev_my_cost, 1)",
"My_Date_Time__c": "task.dev_my_date_time",
"My_Duration__c": "periodInverseFormat(task.dev_my_duration, true)",
"My_Finish__c": "task.dev_my_finish",
"My_Flag__c": "task.dev_my_flag",
"My_Number__c": "task.dev_my_number",
"My_Outline_Code__c": "task.dev_my_outline_code",
"My_Start__c": "task.dev_my_start",
"My_Date__c": "task.dev_my_date",
"My_Email__c": "task.dev_my_email",
"My_Lookup__c": "task.dev_my_relationship",
"My_Lookup_Two__c": "task.dev_my_dynamic_relationship",
"My_Percent__c": "task.dev_my_percent",
"My_Phone__c": "task.dev_my_phone",
"My_Picklist__c": "task.dev_my_picklist",
"My_Picklist_Multi__c": "task.dev_my_picklist_multi",
"RecordTypeId": "task.dev_my_record_type",
"My_Text__c": "task.dev_my_text",
"My_Text_Area__c": "task.dev_my_text_area",
"My_Time__c": "task.dev_my_time",
"My_URL__c": "task.dev_my_url"
...
5. Update the WorkOrder to Job Create Template and WorkOrder to Job Update Template transform templates to add mappings for the new custom fields in the Salesforce Work Order and Service Board Job objects, for example:
...
"dev_my_cost": "currencyFormat(fields.CurrencyIsoCode, fields.My_Cost__c)",
"dev_my_date_time": "isoDateFormat(fields.My_Date_Time__c)",
"dev_my_duration": "periodFormat(fields.My_Duration__c, true, 'PT0H')",
"dev_my_finish": "isoDateFormat(fields.My_Finish__c)",
"dev_my_flag": "fields.My_Flag__c",
"dev_my_number": "fields.My_Number__c",
"dev_my_outline_code": "fields.My_Outline_Code__c",
"dev_my_start": "isoDateFormat(fields.My_Start__c)",
"dev_my_text": "fields.My_Text__c",
"dev_my_lookup": "concat('external-', fields.My_Lookup__c)",
"dev_my_picklist": "fields.My_Picklist__c",
...
For more information:
Was this helpful?