Conga Product Documentation

Welcome to the new doc site. Some of your old bookmarks will no longer work. Please use the search bar to find your desired topic.

Clone Specification for Supplier Conversion

When converting a Supplier Request to a Supplier, the system uses a predefined clone specification to transfer data from the Supplier Request object to the new Supplier object. This ensures that key information, such as supplier details, contacts, locations, and identification information, is automatically populated in the newly created Supplier record.

During the conversion, the system also auto-generates the Supplier Code and Supplier ID, and applies default values such as Supplier Status, Relationship Status, and Source.

The API endpoints to convert a supplier are:

  • POST /api/srm/v1/requests/{supplierRequestId}/convert-to-supplier
  • POST /api/srm/v1/requests/{supplierRequestId}/approve-and-convert-to-supplier

A CloneSpec JSON configuration is seeded in the schema under the srm-clonespec configuration category. This JSON defines the mapping between fields in the SupplierRequest and Supplier objects, including any child objects such as SupplierContact, SupplierLocation, IdentificationType.

The clone specification supports all mapping types:
  • Standard - Standard
  • Custom - Standard
  • Standard - Custom
  • Custom - Custom

If you want to add custom fields on SupplierRequest object, these fields can be included in the conversion process by updating the default clone specification. This mapping must be configured at the system level by updating the JSON in the Schema using the Config Management API.

Adding Custom Fields in Clone Specification

You must have access to Configuration Management APIs.

The Platform provides a default clone specification for converting a supplier request to a supplier. If customer wants to add custom fields (for example, such as Country_c, PersonalEmail_c, Language_c) on SupplierRequest, Supplier, SupplierContact, or SupplierLocation objects, it must be manually updated in the seeded clone specification JSON using the Configuration Management API. This ensures the custom fields are correctly mapped during conversion.

To update the clone specification, perform the following steps.

  1. Retrieve the current clone specification using GET API /api/config-management/v1/configurations/srm-clonespec.
    {
      "Category": "srm-clonespec",
      "Name": "clonespec::supplierrequest::supplier",
      "Value": "{\"SourceObject\":\"SupplierRequest\",\"TargetObject\":\"Supplier\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"$$SupplierName\",\"SupplierType\":\"$$SupplierType\",\"Comments\":\"$$Notes\",\"Source\":\"$$RequestSource\"},\"IncludeDocuments\":{\"Versions\":\"All\"},\"ChildObject\":[{\"SourceObject\":\"#PARENT_SOURCE#\",\"TargetObject\":\"SupplierContact\",\"FromField\":\"Supplier\",\"ToField\":\"Id\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"$$SupplierContactName\",\"ContactEmail\":\"$$SupplierContactEmail\",\"Supplier\":\"#PARENTID#\",\"IsPrimary\":\"true\"}},{\"SourceObject\":\"#PARENT_SOURCE#\",\"TargetObject\":\"SupplierLocation\",\"FromField\":\"Supplier\",\"ToField\":\"Id\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"$$SupplierName+-HQ\",\"AddressLine1\":\"$$SupplierAddressLine1\",\"AddressLine2\":\"$$SupplierAddressLine2\",\"Country\":\"$$SupplierCountry\",\"State\":\"$$SupplierState\",\"City\":\"$$SupplierCity\",\"ZipCode\":\"$$SupplierZipCode\",\"Supplier\":\"#PARENTID#\",\"LocationType\":\"Headquarters\"}},{\"SourceObject\":\"#PARENT_SOURCE#\",\"TargetObject\":\"IdentificationType\",\"FromField\":\"Supplier\",\"ToField\":\"Id\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"DUNSNumber+$$DUNSNumber\",\"IdentificationNumber\":\"$$DUNSNumber\",\"IdentificationType\":\"DUNSNumber\",\"Supplier\":\"#PARENTID#\"}}]}"
    }
    
    This returns the full JSON containing all field mappings and child object mappings.
  2. Map the custom fields in the appropriate section of the JSON configuration.
    {
      "Category": "srm-clonespec",
      "Name": "clonespec::supplierrequest::supplier",
      "Value": "{\"SourceObject\":\"SupplierRequest\",\"TargetObject\":\"Supplier\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"$$SupplierName\",\"SupplierType\":\"$$SupplierType\",\"Comments\":\"$$Notes\",\"Source\":\"$$RequestSource\",\"Country_c\":\"$$CountryOfOrigin_c\"},\"IncludeDocuments\":{\"Versions\":\"All\"},\"ChildObject\":[{\"SourceObject\":\"#PARENT_SOURCE#\",\"TargetObject\":\"SupplierContact\",\"FromField\":\"Supplier\",\"ToField\":\"Id\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"$$SupplierContactName\",\"ContactEmail\":\"$$SupplierContactEmail\",\"Supplier\":\"#PARENTID#\",\"IsPrimary\":\"true\",\"PersonalEmail_c\":\"$$PersonalEmail_c\"}},{\"SourceObject\":\"#PARENT_SOURCE#\",\"TargetObject\":\"SupplierLocation\",\"FromField\":\"Supplier\",\"ToField\":\"Id\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"$$SupplierName+-HQ\",\"AddressLine1\":\"$$SupplierAddressLine1\",\"AddressLine2\":\"$$SupplierAddressLine2\",\"Country\":\"$$SupplierCountry\",\"State\":\"$$SupplierState\",\"City\":\"$$SupplierCity\",\"ZipCode\":\"$$SupplierZipCode\",\"Supplier\":\"#PARENTID#\",\"LocationType\":\"Headquarters\",\"Language_c\":\"$$Language_c\"}},{\"SourceObject\":\"#PARENT_SOURCE#\",\"TargetObject\":\"IdentificationType\",\"FromField\":\"Supplier\",\"ToField\":\"Id\",\"CloneType\":\"IncludeFields\",\"IncludeFields\":{\"Name\":\"DUNSNumber+$$DUNSNumber\",\"IdentificationNumber\":\"$$DUNSNumber\",\"IdentificationType\":\"DUNSNumber\",\"Supplier\":\"#PARENTID#\"}}]}"
    }
    
  3. Update the configuration with the modified JSON using the PUT API /api/config-management/v1/configurations.

The clone specification is updated, and during the convert-to-supplier process, the newly added custom fields are automatically populated on the Supplier and related child objects.