You are here:
Configure XML Field Mappings to Create and Update Contracts
Salesforce Contracts uses field mappings to create and update contracts from standard or custom objects. With the field mappings, you can define the mapping between any object and the Contract object. In Spring '23 and earlier, Salesforce Contracts supported only and child-to-child mappings. From Summer '23, Salesforce Contracts supports a wider set of mapping methods for standard and custom objects. It includes parent-to-parent with support, child-to-child with support, parent-to-child, and parent-to-child with support mappings.
| REQUIRED EDITIONS |
|---|
| Available in: Lightning Experience |
| Available in: Enterprise, Unlimited, Professional, and Developer Editions |
The admin can map fields from Opportunity, Order, and Quote, any standard or custom objects to fields in contracts. The field mapping configuration uses an XML file to define a mapping between the standard or custom objects and the contract. For example, to create a contract from a Quote, use the parent-to-parent mapping type, and to map quote lines to contract lines, use the child-to-child mapping type.
You can directly create and update contracts from opportunities, orders, quotes, or any other standard or custom objects. The Create Contract and Update Contracts actions are available by default on the opportunity, order, and quote objects. However, the CLM admin can implement these actions on other Salesforce standard objects and custom objects to create and update contracts.
Create Contract button invokes the Create Contract API at the backend. The data from the object is copied to the contract object based on the defined field mappings. The field mappings can include parent-to-parent, child-to-child, parent-to-parent with support, child-to-child with support, parent-to-child, and parent-to-child with support mappings.
Update Contracts button invokes the Update Contract API at the backend. You can fetch changes made to the object based on any updates to field mappings and update the associated contracts. For updating contracts, the associated contracts must be in the draft status and was created using Create Contract action button. The Update Contracts action button automatically enables when the parent object has associated contracts that were created using the Create Contract action button.
While using Create Contract and Update Contracts action buttons, remember:
-
Parent-to-parent is a mandatory field level mapping required for the create contract and update contracts action buttons. For example, Opportunity to Contract, Quote to Contract, or Order to Contract.
-
Only the data defined in the field mappings are pulled from the object to the contract object and its child object fields.
-
In the Spring '23 release, only users with CLM Admin User, and CLM Runtime User permission sets can use the create and update contract action buttons. Starting Spring '23, partner community users can use the create and update contract action buttons.
See Also
Create Lightning Component for Create Contract Action Button
Create Lightning Component for Update Contracts Action Button
- Use Field Mapping XML to Create and Update Contracts from an Opportunity, Order, or Quote
When you create a contract from an opportunity, order, or quote using Create Contract action button, the Salesforce Contracts application automatically maps the contract record to the object record based on the defined field mappings. If the parent-to-parent and child-to-child mappings are defined for the opportunity object, then the Create Contract API picks the parent Opportunity and related child objects such as Opportunity Products and creates the Contract and Sales Contract Lines objects. - Use Field Mapping XML to Create and Update Contracts from a Standard or Custom Object
You must define the field mappings to map data between a standard or custom object and a contract object. For standard objects (other than opportunity, order, and quote) and custom objects, the system admin must create a custom Lookup Relationship field in the Contract object with the prefix Source and the API name of the object.

