This article will walk you through how to automate the sync of Salesforce details to Ironclad when a CPQ quote is updated.
For SFDC integrations versions 2.16 and above, we do not support adding a linked source to an Ironclad Workflow object. If this happens, please contact Ironclad support.
In this topic, we walk you through how to automate the sync of Salesforce details to Ironclad when a CPQ quote is updated. The Flow we create is triggered by any update to the primary CPQ quote on an opportunity, and only updates Ironclad if there is an active workflow associated with the opportunity, and if the CPQ quote has been approved. If your requirements involve different conditions, such as syncing a quote other than the primary quote, or not gating the sync on approval status, you can adjust this Flow configuration’s details to suit your needs.
This topic also assumes that you are using Salesforce CPQ in a standard, out-of-the-box configuration. If you are using an alternate CPQ package in Salesforce, or you have customized your CPQ setup in significant ways, you will need to adjust the object and field details here to suit your configuration.
You must first have an Ironclad workflow mapped to your Salesforce CPQ configuration.
- Design your workflow in Ironclad’s Workflow Designer. For the purpose of this topic, we use a workflow design named “Order Form w/MSA” that has a dynamic table of product line items. The dynamic product table has the product name, number of units and total product price on each line, and a summary line that has the total contract value. Once your workflow is defined, you can map the necessary fields in the Salesforce section of your Company Settings in Ironclad. For our example, we only describe the mapping of the dynamic product table, since it is in the table that we specify that our workflow should be synced with the primary CPQ Quote.
- In Ironclad, click on your name in the top right corner. Navigate to Company Settings > Integrations > Salesforce > Workflow Sync. Create a new workflow launch configuration from the Salesforce opportunity object to the Order Form w/MSA workflow.
- In order to pull the product details from the primary Quote, edit the configuration and map the dynamic table in the workflow to the SBQQ__PrimaryQuote__r relationship from the Opportunity. Reference the SBQQ__LineItems__r relationship from the primary Quote. Map the individual line items to the appropriate fields in the dynamic table. In our case, we map “Product Name” on the table to “Product Name” on the CPQ line item, “Unit Price” is mapped to the “Customer Unit Price” on the line item, and so on.
With the Ironclad workflow mapped to the appropriate Salesforce CPQ fields, you must set up the launch configuration for the workflow in Salesforce. This is the specific configuration to automate the sync of Salesforce details to Ironclad when a CPQ quote is updated. You can adjust the configuration to fit your organization’s needs.
- In Salesforce, create an Ironclad Workflow Configuration record. Set the opportunity as the source object and paste the Salesforce Custom Button or Link URL value from the Salesforce workflow mapping you copied above.
- To allow users to launch the workflow from opportunities, add the Ironclad Workflows Lightning component to the appropriate opportunity page view by editing the page view and dragging the Ironclad Workflows component onto the page view.
- Users can now launch the Order Form w/MSA workflow from the opportunity page. You can further configure the Ironclad Workflows component on the page using workflow configuration groups.
The Salesforce Flow is triggered from updates to the primary quote on opportunities. If the related opportunity has an active Ironclad workflow associated with it, the Ironclad Sync action is triggered to sync the mapped fields to the Ironclad workflow.
- In Salesforce, create a record-triggered Flow.
- In the new Flow, configure the start to be triggered on creation or updates to CPQ Quote objects. Add a condition that the Approval Status must be “Approved”.
- Add the Ironclad Sync action as the first action after Start. Configure the action to reference the opportunity related to the quote that triggered the Flow.
- Save and activate the Flow. Any edits to an approved primary quote on an opportunity automatically trigger a sync of the mapped Salesforce fields from the related opportunity to the Ironclad workflow.
The solution above gives a customizable approach for generating order forms in Ironclad. As you design your own solution, we recommend reviewing the considerations below and determining whether or not they would benefit your organization.
Workflow Template Optimization
When Salesforce data is synced to Ironclad, Ironclad automatically regenerates document templates with the new information if the template has not been manually edited via Ironclad Editor or document upload. At this time, templates are not regenerated after manual edits because of the unpredictability in merging structured data with manual changes.
The amount of times commercial terms and legal terms appear in the same template is important from a process and template optimization perspective. Some teams separate the commercial terms that appear in a quote from the legal terms that should appear in a Master Service Agreement (MSA), Data Processing Addendum (DPA), or other agreement. This approach has a couple of benefits:
- Legal teams can negotiate legal terms on the appropriate agreements.
- Simultaneously, sales teams can continue to regenerate their quote because custom edits from legal negotiations are not being made to it.
Another approach for teams that prefer a single document is to build legal fallbacks into the quote template itself and manually reconcile data more often.
Approver Sequence and Re-Approvals
Reviewers in Ironclad are asked to re-approve if there are any changes made to the metadata or document after their approval, unless the workflow design is configured to preserve their approval in these situations. As a result, updates from the Salesforce Flow action reset any approval that is not set to be preserved.
It is worthwhile to define the sequence of approvals and which approvals need to be reset. This will simplify the review process. For example, approvals that should not be reset by changes to Salesforce data, such as a security approval, are worth preserving to minimize re-approvals. Others, such as a Finance approval that does need to be reset if the quote changes, can be optimized by sequencing them as the last approval to reduce the chance of changes before they review. Approvers who must review immediately and who also potentially need to review changes by other teams may be best served through internally agreed upon processes. For example, the team may hold off on providing their approval until all other reviewers have approved.