Creating a Contract
When you create a contract from a quote, note the following:
- A contract can be created during any stage of the quote. Contract creation is not dependent on the quote stage or approval status.
- If the business requires the Create Contract button to be hidden at any Quote stage, you can configure the button by applying a Visibility rule in the layout.
- You can create multiple contracts. However you must select a contract type.
- When the QuoteToContractThreshold setting is not configured under Quote Settings, the Quote-to-Agreement creation happens synchronously. However, when this setting is defined, the creation of Contract Lines from Quote Lines is handled asynchronously according to the specified QuoteToContractThreshold setting.
- All standard and custom fields will automatically map from the Quote to the Contract object, provided the API Names and Data Types match exactly on both objects.
- A contract can be created irrespective of the status of the cart. However, if the cart status is 'Abandoned' or 'Superseded', then a contract is created without any line items. A contract generated from an empty cart has no line items.
- When the EnableQuoteToContractCopyCart feature setting is enabled, the cart‑cloning process runs asynchronously and always returns a job status when the parent cart contains line items, regardless of the number of items. However, if the parent cart has no line items, the process runs synchronously. As a result, the asynchronous flow is triggered only when line items are present, and lowering the quote‑to‑contract threshold has no impact in scenarios where the cart is empty.
-
When a contract creation or update job is in progress, the system disables all contract-related buttons and displays a message explaining the disabled state. The system checks job status on page refresh and re-enables actions automatically when the job completes or fails. Administrators can configure the polling interval and retry limit for job status checks using "
QuoteToContractPollingIntervalInMS" and "QuoteToContractPollingRetryLimit" in quote settings. API:/api/config-management/v1/configurations- QuoteToContractPollingIntervalInMS (default: 3000) – Interval between job status checks in milliseconds.
- QuoteToContractPollingRetryLimit (default: 60) – Maximum number of polling attempts before polling stops.
