Install, Setup & Register

30-day free trial!
Install from the AppExchange and configure PDF Butler in 10 minutes. All that needs to be done to get started!

Create your first quote

Create your first quote document in just 15 minutes. Learn the basics of selecting data, replacing mergefields and repeating rows. Use the template document as a starting point!


A ConfigType will make the link between data and the action to take on the MergeField in the MS Word Document.

Download demo document here


Use the SINGLE to do 1-on-1 replacements from SFDC Data into the document


The TITLE ConfigType manages name of the generated document. Use MergeFields to control the name.


Every Enter is a Paragraph in MS Word, also bullet-point or numbered lists are paragraphs. You can repeat these or add criteria to show or hide paragraphs.


Repeating rows in a table is key, learn how to repeat rows and give an overview of the products. You can repeat these or add criteria to show or hide rows.


Just as row, repeat entire tables. You can repeat these tables or add criteria to show or hide the table.


A table is a content container in PDF Butler. Show all contents of a table if a DataSource has records.


A row is also a content container in PDF Butler. Show all contents of a row if a DataSource has records.

Mergefield replace actions

Some MergeFields are only required to identify the Table/Row/Paragraph/... . So these will not be replaced via a SINGLE. Of course, you do not want to see these in the resulting document. The lesson shows how to control the removal of MergeFields.


Add TextArea fields from and format these as expected. TextArea Fields can have enters and parts on new lines. PDF Butler will format these perfectly


Use complex criterias to decide if you want to process records or show/hide Paragraphs, TableRows or Tables.

SINGLE Criteria Rules

SINGLE ConfigTypes are great, but sometimes there is some logic involved and you need more control on which field or static text to show. Great example is if you have mulitple fields for translations of your product names or descriptions, depending on the language you want to use the correct field.


Sections in MS Word documents help to switch between Landscape and Portrait, change headers, footers, ... . With PDF Butler you can decide to show or hide these complete sections.


Dynamically load pictures from Salesforce into your documents. Linked to records, eg products. Multiple linked to a single record, eg case. And the super complex stuff to add APEX to get exactly what you want.

Product pictures (not complex):

Product Picture template

Case pictures (medium complex):

Case Pictures template

Logo pictures (very complex):

picture placeholder

Optimize your pictures for size

Emails need pictures. This will explain how to feed the URL of the pictures, coming from Salesforce FILES, to PDF Butler so the email clients will know how to show the email correctly .

Mergefield replace actions

Some Mergefields are only for identifying structures in the document, for instance a Table or a Row. When the document is generated, you do not want to see these anymore. PDF Butler allows full control over your mergefields.

Barcode & QR-code generator

Want to print barcodes on your documents. Use your input data to generate barcodes and QR-codes. There are many types available but the most famous ones are CODE 128 and QR.


Handle SFDC rich text fields. These fields are HTML snippets that can be compiled into the document.
This video will show how to add them to a document and how to more specifically define which styles and classes (remember it is HTML) you want to keep.


SFDC Rich Text fields can have pictures. Overall we a are not a big fan of this but we do support them.
PDF Butler might be the only solution that supports Rich Text Pictures in a robust, rock-solid way.
If you want to use Rich Text Pictures, contact to get our free add-on
The class to use in the Actionable: PDFButler_Actionable_RichTextPics


A DataSource indicates how to get data from Salesforce but also describes the data.

Download demo document here

picture placeholder

SINGLE DataSource

Select exactly 1 row from SFDC. This is mostly the row related to your record you are working on: Quote, Opportunity, Case, ...!

LIST DataSource

Select multiple records. Mostly records related to the record you are working on. Eg Opportunity Products, Quote Lines, Assets, ...

Picklist translations DataSource

Get translations on your picklists directly from the Translation Workbench

PICTURE DataSource

Use picture, eg logo or thumbnails, from Salesforce DOCUMENTS, FILES or ATTACHMENTS

Nested DataSources

Select your data in your complex data models. This is one of the most powerful features of PDF Butler but hard to understand. Nested DataSources, the mystery revealed ;-)

Rollup summaries

Rollup summaries in Salesforce are cool but sometimes not available or you have none left. We got you covered.

Full SOQL Power

Take control over your DataSource. Write your own SOQL's and use the full power of Use GROUP BY, AVG/SUM/MIN/MAX/.., LIMIT, complex WHERE clauses, ...


Take control over your DataSource. Write your own SOQL's and use the full power of Use GROUP BY, AVG/SUM/MIN/MAX/.., LIMIT, complex WHERE clauses, ...

Download documentation here

Static Values

Sometimes it is easier to re-use certain data instead of having it hardcoded in your document templates. Static values can be used for this purpose. For instance company addresses, names of persons, ... . Keep them in an easy to manage and re-usable Static datasource and use them in multiple templates.

Late Binding Dynamic Pictures

Sometimes it is required to load a large amount of pictures. The special thing here is that the pictures are not loaded in Salesforce but directly in PDF Butler. This enables us to bypass certain Salesforce limits and to faster load these pictures when they come in large amounts (up to 300). PDF Butler will load the pictures in parallel to optimize the generation speed.


Our managed package has a some unique and great Lightning components that have been improved the past 2 years to support almost any process.


Lightning component handles your DocConfigs, your Packs, upload static files, downloads, viewer, ... all in 1 component.

Enabling with Clickjack protection:

In some cases, you want to review the document before saving, emailing, signing, ... . The previewer Lightning component shows your document and proposes the actions to take.

Enabling with Clickjack protection:

Select of FILE related to your eg Opportunity and use that emailing, signing, ... . The Lightning component shows all files and the actions, PDF Butler Packs, that are related.


Still on Classic, that happens but no worries PDF butler can be called from anywhere.


Combining DocConfigs so multiple can be generated in 1 go (and can be merged into 1 document). Adding actionables to docconfigs. Re-using the same docConfig and set it up for different actions, eg pack for mailing, pack for digital signatures, other before/after actionables, running custom code, … .

Create PACK with additional DocConfigs

Create a Pack and combine multiple DocConfigs. Learn how to use separately or merge.

Actionable AUTO_EMAIL

Use your Salesforce email templates to sent out an email with your document attached.


Need a more fancy email then the one Salesforce email templates can produce or need to display data from more sObject in a complex data model? Create your email in MS Word and use all of the PDF Butler goodies to sent out an email with your document attached.

Actionable SIGN Butler

Create your document and sent it out for digital signature via SIGN Butler for perfectly legal signatures.

Actionable DocuSign

Create your document and sent it out for digital signature via DocuSign.

Actionable AdobeSign

Create your document and sent it out for digital signature via AdobeSign.

Actionable run APEX Class

Customize the PDF Butler process directly in Salesforce. Need to retrieve data from backend, do some serious calculations, prepare variables, take custom actions when the document is generated, ... . We got you covered!

Download documentation here


Our vision is to start your document generation process in a single click but we can do even better ;-). How does zero-click sound?

Lightning Flow

Lightning Flow is a great tool to build business logic and represent it visually. You can just plug in PDF Butler in your Flow

Download documentation here

Process Builder

Want to handle events, use the most popular ADMIN tool on the Salesforce platform: Process builder.

Download documentation here

Call PDF Butler via a Button

Lightning components or buttons, we give you the option. You can use both and have the same powerful experience for your user.

Download documentation here

Lighting Flow introduced variables

You might have a use-case in which your end user needs to select data or ranges and you want to use that information to select data for PDF Butler to handle. We got you covered and you do not even have to write APEX!

Download documentation here

Call PDF Butler from APEX

Automation sounds great but you are taking it to the next level... APEX!

Download documentation here

Use APEX to Add Datasources

We can cover so much in our Datasources but you might have a use case that is even harder! Complex grouping, calculation, integration with backend systems, tranformation of data, ... . With an APEX Actionable, you can prepare your data in APEX before PDF Butler handles it. No need to store your transformed data, calculated Just-In-Time and passed on to PDF Butler.

Download documentation here

Permission Set Groups

A permission set group streamlines permissions assignment and management. Use a permission set group to bundle permission sets together based on user job functions. Users assigned the permission set group receive the combined permissions of all the permission sets in the group. Permission set groups with PDF Butler (but also BULK, COLLABORATION and SIGN Butler) is the best way to use the permissionsets from the managed package without cloning.
Best to setup 2 types of permission set groups:

  • Admin: all permission an Admin, someone who manages the templates and config, requires
  • User: all permission a User, someone who only needs to create documents, requires

Salesforce documentation

Admin Permission Set Group User Permission Set Group


CPQ spells:

  • structuring products,
  • bundles,
  • groups,
  • complex data models.
PDF Butler is designed from the ground up to handle these and to convert your bundles and products into perfectly structured quotes.

Top tip: Make sure to check out our Get Started first: Get Started in 30 mins

Multi-level CPQ products

Transform your view in CPQ "Edit Lines" to your document. Your customers deserve a well-structured quote document that gives a perfect overview.

Download document here

The full video:

Or in smaller chunks:
  • PART 1 - Problem and solution:
  • PART 2 - From scratch to our first PDF:
  • PART 3 - Second level of products:
  • PART 4 - Third level of products:
  • PART 5 - Product logo’s:
  • PART 6 - Wrapping up:
Using CPQ Groups

Using groups in your "Edit Lines" is very powerful. To use these groups to build a better structure and overview in your quote is even more powerful.

Download document here


FSL spells:

  • structuring tasks,
  • service reports,
  • mobile,
  • pictures.
PDF Butler is designed from the ground up to handle these requirements.

Top tip: Make sure to check out our Get Started first: Get Started in 30 mins

In this tutorial, we will guide you step by step to create a Service Report that shows

  • Work Order Data and Work Order related data ,
  • Work Order Pictures,
  • Work Order Line Item Data and Pictures,
  • Child Work Order Line Item Data and Pictures.

Field Service Lightning (FSL) - Service Report

Create the best looking Service Report ever.

Get our thumbnail component via: This is a PDF Butler Actionable that can be easily installed as a package. Comes with comments and unit-tests.

Download document here

  • PART 1 - Work Order Data:
  • PART 2 - Work Order Pictures:
  • PART 3 - Work Order Line Items (WOLI) Data & Pictures:
  • PART 4 - Child WOLI Data & Pictures:


PDF Butler will match your environment setup and development lifecycle. You can have different "stages", you can see these as versions in your development & deployment lifecycle. Map these stages to your Salesforce Orgs. By default everybody will have a PROD and a TEST stage.
If you want more, just sent a mail to:

Following stages are available:

  • PROD,
  • UAT,
  • TEST,
  • TRG,
  • INT,
  • QA,
  • DEMO,
  • DEV1,
  • DEV2,
  • DEV3,
  • DEV4


Deploying your PDF Butler configuration is done in 2 easy steps. You can use the principle in the example below to go in any direction and deploy between any stage.

Setup new environment ( Org)

When you have registered for PDF Butler, you can reuse the same username and passwords on every environment. PDF Butler will know which configuration you need by the Stage that is set in your Org or Sandbox. Deploying between Stages, and thus Orgs is done by a few clicks (see Deployment)

  • Stage PROD for your Production Org,
  • Stage TEST for your Test Sandbox,
  • Stage DEV1 for your Development Sandbox,
  • ...


Overview of how PDF Butler can solve common questions on Salesforce products.

Service - Case Articles

Provide common Case data and a list of Case Articles.

Download document here

Community - Partner & Customer Community

You can use PDF Butler directly from your lightning community..

Common questions on using PDF Butler in a community:
1) Make sure to configure the sharing rules on the PDF Butler objects for external users. Add these objects:

  • Actionable
  • Data Source
  • Doc Config
  • PDF Butler Pack
  • Pack DocConfigs
2) Make sure to add the System Permission "View All Custom Settings". More info here

Multi-currency Org

If you have Multi-currency enabled on your ORG, you might want to show the currency on the record and format the amounts by the locale of your customer.


Overview of how PDF Butler Doc Config types. Following types are available:

  • EXCEL,
  • EMAIL ,


Start from MS Word to generate your PDF or MS Word documents.

DocConfig email

Reusable MS Word templates, keep documents like product sheets or terms&conditions separately and so much more possibilities.

EXCEL Generator

Create Excel (XSLX) reports with data from Salesforce. Datadumps or complex groupings ... We got you covered.


Use Static PDF files like brochures, general conditions, ... and use them in your PDF Butler process!


Automate your process and sent mail with your documents automatically!

Auto email
DocConfig email

Re-use PDF documents from your company, affiliate or government. Prefill these PDF Documents with data in your CRM to provide the optimal user experience.


A usefull overview of TIPS & TRICKS we have used and learned from our customers.

Checkboxes - how to show checked and unchecked boxes

You can use this trick with any image that is inline with a paragraph (or table).

Download document here

Unchecked checkbox

Checked checkbox

Watermarks, show and hide the watermark in MS Word

Sometimes your templates require a watermark, no need to duplicate your templates. Use Criteria to make your watermark conditional.

Page Repeat - Print the same page for every record

Sometimes you have the requirement to print a section of information for several records on multiple pages. This tutorial shows you how.

Download document here

Dynamically load templates

Need to show templates like product sheets or contract add-ons dynamically based on your data and selection. No problem, this tutorial shows how you can control that.

Product Sheet 1: GenWatt Diesel 10kW

Product Sheet 2: GenWatt Propane 100kW


You want to add numbering to your lists. We got you covered, learn how to use MS Word Numbered lists or PDF Butler @Number to provide what you need.
PS: You can use these numbering in different levels. For instance

  • 1 Top Level
  •    1.1 Sub Level

Numbering Demo Doc

Get rid of white-spaces

Generating fully dynamic document in which content must appear or disappear depending on criteria is exactly what you want.
Introducing white-spaces and empty sections along the way is exactly what you do not want!
This video gives some ideas on how to handle this. Working with Criteria on TABLE_ROW/TABLE/PARAGRAPH ConfigTypes can also work to get you that perfect looking document.
We have a solution for every problem, so do not hesitate to contact us:

Multi-language, multi-locale, multi-currency, multi-template or multi-branding

A lot of companies have to support multiple languages, brands, templates, ... . No need to re-create the full configuration!

Multi-language, multi-template or multi-branding, just add Alternatives!

How to link multiple templates to the same DocConfig? And more importantly, how to use the correct template automatically?
You will learn all of this in this video.
We will start with the quote from the "Get Started" section and translate that one.

Download French document here

Download German document here

Picklist translations DataSource

Get translations on your picklists directly from the Translation Workbench

Formatting by customer or user locale

Every country, language, and combination of both have their way of formatting dates, currencies, numbers,...
The combination of language and country is called locale. For instance, in Belgium, we speak Dutch, French, and German. Our locales are:

  • Dutch Belgium: nl_BE
  • French Belgium: fr_BE
  • German Belgium: de_BE

For most countries, they only speak 1 main language so their locale is easier and they have only 1:
  • USA: en_US
  • UK: en_UK
  • Germany: de_DE
  • Netherlands: nl_NL

So supporting documents over multiple countries or in a country that speaks multiple languages. You will need to format the dates, currencies, numbers specifically for those countries.
PDF Butler knows how to format for every locale and will even translate your date (months and days) in the correct language.

Custom labels

Get translations for labels and texts in your document. Manage these translation in Salesforce. Learn how to use Custom labels in relation with your customer or users locale.

Multi-currency Org

If you have Multi-currency enabled on your ORG, you might want to show the currency on the record and format the amounts by the locale of your customer.

Salesforce CPQ Product Translations/Localizations

CPQ offers powerful tools to translate your products and product information. With our "CPQ Translations" add-on, we can use those translations in your multi-language documents.
It does not matter if it is text, text-area, or rich-text fields. All are by PDF Butler supported!
Use your CPQ Localization config to translate your documents.
Request access to this free package via:


A usefull overview of FAQ we have used and learned from our customers.

FAQ: why do I get error: "Argument 1 cannot be null"

This error is annoying, Salesforce tells us the best practice is to use Protected Custom Settings for confidential information, then it goes and invents a new permission and then it does not allow ISV partner to add it to their permissionsets automatically. Sorry, you have to set it yourself.

Check System Permission “View all Custom Settings”
FAQ: How do I assign Licenses?

Salesforce allows for very easy management of licenses.
You can just assign them via Setup => Installed Packages => PDF Butler => Manage Licenses (Button).

FAQ: How do I Grant Login Access?

PDF Butler support is all about helping! So the best way to help is to access your Org. No need to create a user, you can just allow access for a certain time. This allows us to check your question.
You need to grant login to "CloudCrossing Support", this is the name of the company that owns the PDF Butler product.

FAQ: Does PDF Butler work on a Scratch Org?

Sure it does!
There is a "but" ;-)
Generating documents is always possible but if you want to configure DocConfigs, you will need to create a password for you Scratch Org user and login via the browser
You can generate a password via: sfdx force:user:password:generate --targetusername <username>
You can see the password again by running "sfdx force:user:display -u <username>"


SIGN Butler, the complete guide.
Ask install and access to SIGN Butler via

Setup & Register

Learn how to setup SIGN Butler, configure the permission sets and register. To register, make sure to have your PDF Butler username and Admin password.

After this is done make sure to contact to complete the registration.

Configuration overview - The Sign Request Template

Get a full overview of all config items on a template.

Configuration overview - The Sign Request

Get a full overview of info and actions on a request for a signature, Sign Request, directly from

SIGN Butler By example - Single Signer

Basic setup for a quote that required only 1 signer.

Download document here

SIGN Butler By example - Add a receiver

Receivers keep up to date with the Sign Request. They will get notified of every action that is taken on the Sign Request.

SIGN Butler By example - Two Signers

Basic setup for a quote that required only 2 signers. We will configure 2 contacts that have to sign in sequence (1 by 1).

Download document here

SIGN Butler By example - 1 mandatory and 1 optional signer

Some cases you have a process that the number of signers is dynamic. For instance, depending on the amount of the opportunity, a flow, trigger or process builder will add a 2nd signer.

Important to know is that the signature placeholder numbering must start with 1 and cannot skip numbers. So use the PDF Butler magic to set the correct numbers if required. "#SIG0[[!YOUR_NUMBER!]]_200_200".

Download document here

SIGN Butler By example - Static signer

What if your CEO has to sign every contract? You do not want to link his user to every record. No worries, in SIGN Butler you can specify multiple DataSources to get your Signers.

SIGN Butler By example - Silent vs Non-silent process launch

Want to wait for the confirmation the Sign Request is created or just fire and forget? The last one is the best for user experience, super fast and all processing happens in the background.

Launching the Sign Request via a Process Builder requires a Silent launch.

Silent: Use Actionable class "cadmus_sign.Actionable_SignButlerSilent".

Non-Silent: Use Actionable class "cadmus_sign.Actionable_SignButler".

SIGN Butler By example - Sign now

When you sit next to your customer, you just want to launch the signing screen so your customer can immediately sign.

Use Actionable class "cadmus_sign.Actionable_SignButler".

SIGN Butler By example - Process Builder to handle Sign Request status updates

Want to handle the updates on your Sign Request automatically to fully automate your process. Just use a trigger or Process Builder.

In this example, we will update our Opportunity to Closed Won when the document is signed.