Overview
Pricing tables in the LinkSquares Finalize integration in Salesforce will automatically pull the right pricing details from Salesforce into an agreement based on the product or services being sold.
This helps ensure the right details are included in the contract from its initial draft so legal teams can quickly get agreements out the door.
Process
Pricing Table Template
Below is an example of a template with a table in it. The idea is to be able to specify what a representative single table row should look like, and map the data without knowing how many rows are in the data set.
This is a departure from standard tokens in Finalize, where each token is replaced by a single value.
Note: Users can only leverage templates with pricing tables to draft agreements from within Salesforce Finalize.
Building Pricing Table Templates
There are three components to creating a Finalize template with pricing tables:
- Adding a Table to a Word Document Template
- Creating a Finalize Template and Uploading Your Word Document
- Assigning Table Token Mapping in Salesforce
Tokens are auto-detected by Finalize when the Word document is uploaded during the template creation process.
Note: The template creation process for pricing tables does not differ from other template creation flows.
To learn more about creating a new template in Finalize, reference our article on Creating a New Template.
Step 1. Adding a Table to a Word Document Template
Looking at our table template example, we use specialized token prefixes in creating table templates.
- TABLE::START:: and TABLE::END::
- ROW::
- TOTAL::
These token prefixes give them special functions when processed by our system. They follow the standard Finalize token notation of number symbols and brackets.
- TABLE::START::
- TABLE::END::
These define where the table starts and ends, and give the table a name that will be used in the mapping process.
In the example above, our table will be called SUBSCRIPTIONS. We use the token
#[TABLE::START::SUBSCRIPTIONS]# to indicate where it starts, and
#[TABLE::END::SUBSCRIPTIONS]# to indicate where it ends.
Since you can have multiple tables within a single template, the name is how each table is distinguished. Your table name must be unique within the template. The following image shows what multiple tables within a template may look like.
The start and end of the table will need to match to process successfully. Any information following the second set of :: will need to be identical.
- ROW::
This token prefix is used to map each record (row) in the data set.
In our example data set, we have 5 ROW:: tokens:
- #[ROW::PRODUCT_NAME]#
- #[ROW::PRODUCT_DESCRIPTION]#
- #[ROW::QUANTITY]#
- #[ROW::UNITPRICE]#
- #[ROW::PRODUCT_TOTAL]#
These will get picked up in the table token mapping interface in Salesforce, where we can then map them to the values/attributes for each record in the data set.
- TOTAL::
The TOTAL token prefix is used to map total fields. Total fields will be attributes of the parent/root object (Quote), as opposed to the child object (QuoteLineItem), since they will be roll-up or formula fields that sum up some value on the child object.
Our example has 1 TOTAL token as #[TOTAL::PRODUCT_TOTAL]#.
Once edits have been completed in your Word document, save it as a new version.
Step 2: Creating a Finalize Template and Uploading Your Word Document
Log in to the Finalize web app.
Follow the typical processes for creating a new template.
If entering the table into the Word document worked successfully, the Tables section populates within this step. If it was formatted incorrectly, this section will not populate.
After clicking SAVE AND CONTINUE, complete the template creation process.
Note: Templates that include Salesforce pricing tables will not be visible within the web app.
Step 3: Assigning Table Token Mapping in Salesforce
Within Salesforce Finalize, users can map the tokens within table templates to Salesforce fields.
The table (SUBSCRIPTIONS) is first mapped to a data set/child objects (QuoteLineItems). Then, each ROW token gets mapped to an attribute of the child object.
Since we have a one-to-many relationship with the opportunity, we only pull them in via tables because it allows us to create a row for each product.
Navigate to the Template Configuration tab and locate the newly-created table template in Salesforce.
Select Configure.
Map to a root object (e.g., opportunity or account).
Locate the Subscriptions section.
Click Select Relationship to begin setting up the table.
This process tells the opportunity line items that this is the child object. Choosing the relationship provides access to all the fields that live on that object.
Next, users will select the Salesforce field path to which each table line item will be mapped.
Below is an example of token mapping the product name within the table.
Click Edit.
Select the object and save.
Note: The > symbol drills down into the chosen object.
Select the attribute and save.
Repeat this process for the remaining line items in the table.
If the table has an entry for the total of all listed line items, you can customize how this field is calculated when configuring the path for the field.
The first option is to aggregate the rows of the table and create a total. This option requires you to select an operator.
The available operators are as follows:
- COUNT
- SUM
- MIN
- MAX
Note: Choosing SUM, MIN, or MAX will require you to map to a Salesforce field.
The second option is to select a field or path based on the root object of the template.
Filtering Tables
Users can apply multiple filters to a table to customize the information that will be pulled into the table. Up to five filters can be added to a table.
Click Apply Filter.
The Filter Options modal will appear. Select Click here.
Applying a Single Filter
If you wish to apply only one filter, select the field, operator, and value.
Then, click Save.
Note: Certain fields (e.g. Created Date) will prompt an additional Time field to appear. This field displays the time based on the user's current Salesforce preferences.
Applying Multiple Filters
Up to five filters can be applied to a table to further refine the information included in that table.
1. Within the Filter Options modal, select an option from the Conditions field.
Selecting AND will configure the overall filter such that the results must meet the requirements of all applied filters.
Selecting OR will configure the overall filter such that the results must meet the requirements for one of the individual filters.
2. Select the field, operator, and value for the first filter.
3. Click + Add Row.
4. Repeat the previous two steps for each filter you wish to apply.
5. Click Save once complete.
Removing Filters
To remove an individual filter, click the trash icon next to the filter that must be removed.
To remove all configured filters, click Clear Filter.
The filter modal can pull in the following types of fields:
-
- Number
- Formula (Number)
- Currency
- Formula (Currency)
- Date
- Formula (Date)
- Date/Time
- Formula (Date/Time)
- Text
- Formula(Text)
- TextArea
- Formula (TextArea)
- Formula (Email)
- URL
- Formula (URL)
- ID
- Picklist
- Lookup
- Master-Detail
The filter modal operator options are as follows:
-
- Equals
- Not equal
- Less than
- Greater than
- Less than or equal to
- Greater than or equal to
Adding and Editing Filters
When a filter is applied, the Apply Filter button will update to show how many filters have been added to the table. To edit or add another filter, click this button and repeat the above process.
Sorting/Ordering Tables
In addition to filtering tables, users can sort or order tables to ensure that the information in the table is presented in the appropriate way.
To begin, click Sort/Order.
The Sort Options modal will appear. Select Click here.
Adding a Single Sort/Order
To add an individual sort to a table, search for and select the field by which the table should be sorted.
Click Save when complete.
Adding Multiple Sorts/Orders
To sort the table by multiple fields, click + Add after configuring the first sort.
Then, search for and select the additional field you want to use to sort the table. Repeat this process for up to five fields.
Click Save once complete.
Adjusting the Presentation of Sorts/Orders
To adjust whether a given field is being sorted in an ascending or descending fashion, click the icon next to the field.
If the field being sorted is numerical, this icon will be an arrow with a 1 stacked on top of a 9 next to it.
- If the 1 is on top, the field is sorted in ascending order
- If the 9 is on top, the field is sorted in descending order
If the field is alphabetical, this icon will be an arrow with an A stacked on top of a Z next to it.
- If the A is on top, the field is sorted in ascending order
- If the Z is on top, the field is sorted in descending order
Click Save once complete.
Deleting Sorts/Orders
To delete an individual sort, click the trash icon next to that field.
To delete all configured sorts, click Clear sort/order.
Click Save once complete.
The sort functionality can pull in the following types of fields:
-
- ID
- Picklist
- Text
- Lookup
- Master-Detail
- TextArea
- URL
- Date
- Datetime
- Number
- Currency (decimal)
Adding and Editing Sorts/Orders
When a sort is applied, the Sort/Order button will update to show how many sorts have been added to the table. To edit or add another sort, click this button again and repeat the above process.
Below is an example of what the table may look like after mapping fields and applying filters and sorts.
Drafting Agreements With Pricing Tables
When drafting an agreement with pricing tables in Salesforce, a preview of the pricing table that will be included in the agreement is provided.
Additionally, users can select a related object from which the pricing table data should be sourced. This can be a different object than the object from which the tokens and agreement detail fields are pulling data.
For example, the information for the tokens and agreement detail questions for a given template may be sourced from the Opportunity object. The data that populates the pricing tables for this template can be sourced from the related Quotes. If there is more than one pricing table, each individual table can use a different related record to source its data. For example, using different quotes for each table.
1. Navigate to the Salesforce object from which you draft agreements.
2. Select Choose for the appropriate template.
3. Enter the agreement details and click > Next.
4. Enter the document fields.
Below the document fields, a preview of the table(s) that will be included in the agreement draft is shown on the Tables tab. If the template includes more than one table, all tables are available to expand and view.
The table(s) outline the filters and sorts/orders applied and provide details on each included line item.
Users can select which related object from which the information for the pricing table should be pulled from the Settings tab.
Select the relevant object from the Choose root object to populate your table(s) drop-down.
Click Save once complete.
5. Click Save to complete the agreement draft.