Dynamo Clause


Dynamo Clause is a reusable rich text block stored and managed in Salesforce that can be used in Dynamo templates. A typical example in context of contracts would be a text describing delivery terms. When the text is stored in Salesforce, it can be managed separately and used in several templates. This approach enables the text to have several language versions and also a non technical person could manage the content.

Open Tutorial Video


Dynamo Clause is implemented as Salesforce custom object named "Documill Dynamo Clause" (API name: dynamo__Clause__c). This object comes with the Dynamo AppExchange installation package. Clause object has some pre-defined fields like Name, Title, Language, Category, Subcategory and Clause Text.  Additional custom fields can be added. Clauses can be categorized based on the category fields like the Category picklist that has three sample value options: Legal, Sales and Other. More values can be added and more fields can be added.

Dynamo clause list

When clicking on the Documill Dynamo Clauses tab in Dynamo app view, a list of clauses that have been created in your org is displayed. If a clause has several language versions (the same clause content but in different languages), all versions of the same clause are displayed in the list. 

The example clause list above uses custom list view. It's recommended to create a similar list view that displays all the relevant clause information such as Language and Title. This makes maintaining the clauses easier.

To display additional fields: Go to List View Controls > Select Fields to Display > Add fields from 'Available Fields' to 'Visible Fields' list.

Adding a new Dynamo clause

Clause can be added by creating a new Clause record. Name serves as a unique identifier for the clause, title is the informal title and language describes used language.  If a clause has several language versions (different language field), the name is the same for all versions. It's recommended to use ISO 639-1 language codes like en (English), de (German), fi (Finnish). Clause Text field contains the actual clause content and it can include formatted text and images.

The Language field should be always be filled even if just one language is used.

*New release [month - year]: New Clause dialog with one extra custom field named "Subcategory" (dependent picklist) .

If you have the same clause content but in different languages, you can add another language version to the existing clause.

Process to add a new clause version is the same as creating a new clause, except that the Clause Name field has to be exactly the same as the original clause's.

Dynamic content in clauses

Clause text can also contain variables and Salesforce field values using EL notation. All variables must be declared in the template's logic (usually the 'Initialize' step in the 'Before' section in the mainflow) where clauses will be used.

For example, to display the user's name within a clause text, this expression could be used: ${User.Name}

Using Dynamo Clauses

Dynamo Clauses is a flexible, drag-and-drop feature that has several use cases. Template designers can assess clauses during template building phase and end users can add clauses to the document during editing phase.

As template designers

Clauses can be selected and added using Template Builder through Salesforce Data Source tab at right pane. Clicking on the Clauses section in the right pane will display a list of all available Dynamo Clauses.

Clause list displays clause name and language variations. If there are several language variants they are all listed in the language column.

How to insert clauses to the document body

  1. Click on a clause name to select it.
  2. Click on the element in the document under which the inserted clause will be located. For example in the above screenshot, if you want the clause to be inserted under the 'Terms' heading, the Heading element in the breadcrumb should be selected.
  3. When the destination is defined, the clause can be inserted to the document by clicking on "Insert" button.

Please be noted that clause is added as new group element (block element), meaning that it's typically a top level element (immediately under document element). Clause will be added after the currently selected element, e.g. if paragraph is selected clause will be inserted after the <p> element.

Working with clauses in many languages

If a clause has many language versions, the template will insert the version that has the same language as the document language. Template logic has variable documentLanguage that holds the document language value. This variable is set by default to English (en).

Changing the document language

If the document is only in one language, the documentLanguage variable can be set to a hard coded value such as en, de, fi, etc. However if the document language changes dynamically through a Salesforce field, it is recommended to set this Salesforce field as the value of documentLanguage variable. That can be done through the following steps:

  • Go to Variables data source tab and click on the location icon next to the documentLanguage  variable name.
  • Now you are directed to the template's logic interface where you could link Salesforce field to this variable. The example in the GIF below links the documentLanguage variable to Account's language field.


  • After changing the variable value, you can go back to the previous basic UI by clicking on the 'Basic UI' button on the top right corner.

Template designer can define default values for the filter fields through dyn-sfdc-record-picker logic element.

As end users

End users can drag and drop available clauses to editable fields in the document during a document generating session. When "Advanced Editing Functions" are turned on from template's Settings, end user can search and add clauses in editing screen.

Clause panel is visible at the right side of the editing area. Recent clauses view shows recently used clauses (used in Salesforce or in documents). Preview button allows to see clause preview. Clause can be added to document by dragging the clause title to wanted position. 

Search tab can be used to search all clauses. When filters have been enabled, filtering fields will limit the search results.

"Advanced Editing Functions" needs to be turned on in template's Settings > Editable content in order for end users to work with clauses.