This guide walks you through installing and configuring the DiliTrust Integration for SalesForce, so you can generate, manage, and synchronize contracts directly from Salesforce. It is written for Salesforce administrators and non-technical users who want a smooth, reliable setup.
☕ What This Connector Does
The DiliTrust Salesforce connector lets you:
- Generate contracts directly from Salesforce records (Opportunities, Accounts, Contracts, and more)
- Send record data automatically to DiliTrust for document creation
- Receive contract status updates back into Salesforce
- Keep your CRM and CLM perfectly in sync
Once installed, your teams can create contracts in just a few clicks, without ever leaving Salesforce.
✋ Before You Start
Make sure you have the following ready:
- Salesforce System Administrator access
- Access to your Salesforce Production or Sandbox environment
- Your DiliTrust (CLM) account credentials
- The list of contract templates you want to expose in Salesforce
If you are unsure about your admin access, please contact your Salesforce administrator before continuing.
✈️ Step 1 – Install the DiliTrust Package
Install the package in Salesforce by following these steps:
- Log in to Salesforce as a System Administrator.
- Open the installation link for your environment (Production or Sandbox) provided by DiliTrust.
- Production: https://login.salesforce.com/packaging/installPackage.apexp?p0=04tKB0000009D25
- Sandbox: https://test.salesforce.com/packaging/installPackage.apexp?p0=04tKB0000009CUy - If prompted, log in again.
- Select Install for All Users.
- Approve permissions and confirm the installation.

Installation time may vary depending on Salesforce server load. You will receive a confirmation email once it is complete.
✍ Step 2 – Configure the Hyperlex Custom Settings
After installation, connect Salesforce to DiliTrust through the Custom Settings.
- Go to Setup.
- Navigate to Develop → Custom Settings.

- Open HyperlexCustomSettings.

- Click Manage, then Edit.

Fill in the following mandatory fields:
- url: the CLM link ending with ?payload= (for example: https://clm-app-eu.dilitrust.com/crm/salesforce?payload=)
- Customer: the client name
- isDevOrg: tick this box when you are setting up a development or sandbox org
- Log activation: tick this box to enable logging
- Log recipient: the email address that should receive the logs
Click Save.

Important: fields such as CLMUrl, CLMAPIEndPoint, and RefreshToken are not part of the standard setup. They were created for a specific client project and should be ignored unless DiliTrust instructs you otherwise.
⚖️ Step 3 – Define the Contract Source Object
By default, the connector generates contracts from the Opportunity object.
If your contracts should be created from a different object (for example, Account):
- Specify the chosen object in the MasterObject setting.
- Manually create the Create DiliTrust Contract button on that object’s record page.
For Opportunities, the button is configured automatically. For all other objects, this manual step is required.
✌ Step 4 – Enable the Contract Creation Buttons
To let users generate contracts, an action button must be added to the relevant Salesforce pages.
- Opportunities: configured automatically.
- Other objects, Contracts, and Addendums: manual setup required.
When configuring the button:
- The button label can be customized.
- The component must be set to Hyperlexsf:HyperlexContratV2.
Once added, users will see a Create Contract button directly on the record.
☝ Step 5 – Link Contracts and Addendums
To display related DiliTrust contracts inside Salesforce:
- Add a Lookup field linking Hyperlex Contracts to Contracts.
- Add a Lookup field linking Hyperlex Contracts to Addendums.
This gives users full visibility of generated contracts directly from Salesforce records.
⭐ Step 6 – Configure Contract Templates
DiliTrust templates must be linked to Salesforce objects so that users see the right contracts.

- Create a Document Type for each contract template.
- Select the main Salesforce object (Opportunity, Account, Contract, or Addendum).
- Activate Status Change Triggers for automation.

This controls which templates appear when users click Create Contract.
✍ Step 7 – Configure Field Mapping

Field mapping defines which Salesforce data flows into each DiliTrust document. For each field you want to map, configure:
- Name: the field name
- Doc Type: the related document type from the list
- Hyperlex: the attribute ID
- Mapping Type: SF → Hyperlex
- Active: Yes
- Salesforce: the field ID
- Currency: keep as it is
Repeat this for every field you want to map, for each document type.
☔ Step 8 – Handle Unsupported Fields
Some standard Salesforce fields are not supported directly by the connector. Keep these limitations in mind:
- Standard date fields are not supported in the mapping. Create a text formula field that reproduces the date, and map that instead.
- Composite address fields (such as ShippingAddress) are not supported. Create a formula field (for example, FShippingAddress) that returns the address as text, and map that field.
This workaround keeps your data flowing correctly into DiliTrust even for unsupported field types.
⛳ Step 9 – Enable Status Sync (Callbacks)
To keep contract statuses synchronized between DiliTrust and Salesforce:
- Enter your Salesforce credentials in the CRM Settings of DiliTrust.
- Tick Change Status Trigger for each document model that should send updates.
- Provide your Salesforce callback URL, for example: https://client.my.salesforce.com/services/apexrest/hyperlexsf/HyperlexToSalesforceX/
By default, the connector tracks the StageName of the Opportunity. This lets DiliTrust update Salesforce automatically when a contract changes status.
❄️ Step 10 – Configure Translations (Optional)
If your contracts need multiple language versions:
- Create each language version of the template inside the CLM.
- Retrieve the ID of each translated version.
- Configure the Translations section in the documents using those IDs.
☝ How to Retrieve Hyperlex IDs
You will need DiliTrust (Hyperlex) IDs when configuring templates and field mapping:
- Template ID: copy it from the dedicated menu in the CLM.
- Label field IDs: these are retrieved through your browser’s Developer Tools (DevTools). If you are unsure how to do this, your DiliTrust contact can walk you through it step by step.
✨ Tips & Best Practices
- Always test the setup in a Sandbox before deploying to Production.
- Enable logging during setup so you can quickly diagnose any issue.
- Map only the fields you actually need to keep documents clean and fast.
- For unsupported field types, use formula fields as a reliable workaround.
- Document the template IDs and field IDs you collect, so future updates are faster.
⛔ Limitations & Known Constraints
- Standard date fields and composite address fields cannot be mapped directly (use formula fields instead).
- Some Custom Settings fields (CLMUrl, CLMAPIEndPoint, RefreshToken, etc.) are client-specific and not part of the standard configuration.
- In a Sandbox, you must uninstall the package before reinstalling or upgrading it.
- For objects other than Opportunity, the creation button and source object must be configured manually.
❓ Frequently Asked Questions
Do everyday users need technical knowledge?
No. Once the connector is installed and configured, users simply click a button to create contracts.
Can I use this in a Sandbox?
Yes, but you must uninstall the package before reinstalling or upgrading it.
Why is my date or address field not mapping?
Standard date and composite address fields are not supported. Create a text formula field and map that instead.
What happens if something fails?
Your administrator can review the logs (if logging is enabled) and the settings. DiliTrust Support can also assist.
Where do I find the template and field IDs?
Template IDs are available in a dedicated CLM menu. Label field IDs are retrieved via the browser Developer Tools.
✊ Need Help?
If you have questions or need assistance:
- Contact your Salesforce administrator.
- Reach out to DiliTrust Support via your customer portal.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article