A ConfigType will make the link between data and the action to take on the MergeField in the MS Word Document.
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): Case pictures (medium complex): Logo pictures (very complex): Optimize your pictures for size
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. So these will not be replaced via a SINGLE ConfigType.
Of course, you do not want to see these in the resulting document.
PDF Butler allows full control over your mergefields. The lesson shows how to control the removal of MergeFields.
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 support@pdfbutler.com to get our free add-on. Make sure to provide your PDF Butler username and your OrgId when contacting us!
The class to use in the Actionable: PDFButler_Actionable_RichTextPics
Want to replicate a block of information. You can do this with a TABLE but also with a CONTENT_CONTROLLER.
Enable Developer menu item in MS Word: Show Developer tab
Use these ConfigTypes in a complex setup with parent-child DataSources.
A CONTENT_CONTROLLER can be the child of another CONTENT_CONTROLLER. Here we will make an example how a ROWS_CONTROLLER is the child of a CONTENT_CONTROLLER
COMING SOONA DataSource indicates how to get data from Salesforce but also describes the data.
Take control over your DataSource. Write your own SOQL's and use the full power of Salesforce.com. Use GROUP BY, AVG/SUM/MIN/MAX/.., LIMIT, complex WHERE clauses, ...
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.
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.
Use the Previewer in Lightning Flows, Safari Browsers, Salesforce Mobile, VisualForce, ... .
In this episode learn how easy we made it to define a specific Component that allows to configure a Quick Action.
See the full code example in the Word file you can download below.
Get the component by contacting: support@pdfbutler.com
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, … .
Edit your emails generated by PDF Butler before sending them out. All from Salesforce and directly from the "Send Email" Quick Action!
Via Lightning Email Template:
Class to use: cadmus_core.Actionable_AutoEmailQuickAction
OR
Via Email DocConfig:
Class to use: cadmus_core.Actionable_EmailDocConfigQuickAction
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 example Test Class for BEFORE Actionable
Our vision is to start your document generation process in a single click but we can do even better ;-). How does zero-click sound?
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!
Automation sounds great but you are taking it to the next level... APEX!
Automation sounds great but you are taking it to the next level... APEX!
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.
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:
On any Salesforce list view, add a button to create multiple documents in 1 go.
It is not possible to configure Lighting Mass Actions yet so the only solution is an sObject specific VisualForce page. We have these for all standard sObjects like Account, Opportunity, ... . Contact support to get this add-on package or a code snippet to easily create your own: support@pdfbutler.com
Setup List View ButtonWhen you want to take an action after the document is generated, this action can be executed from an Autolaunched Flow.
Create an Actionable in PDF Butler of recordType "Run Lightning Flow", pass on the API name of your Flow and the class: "cadmus_core.Actionable_RunAfterFlow"
Update the record Save to document to another recordCPQ spells:
FSL spells:
In this tutorial, we will guide you step by step to create a Service Report that shows
Create the best looking Service Report ever.
Get our thumbnail component via: support@pdfbutler.com. This is a PDF Butler Actionable that can be easily installed as a package. Comes with comments and unit-tests.
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: support@pdfbutler.com
Following stages are available:
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 Salesforce.com Orgs is done by a few clicks (see Deployment)
Overview of how PDF Butler can solve common questions on Salesforce products.
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:
Overview of how PDF Butler Doc Config types. Following types are available:
A useful overview of TIPS & TRICKS we have used and learned from our customers.
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
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: support@pdfbutler.com
PDF/A is an ISO-standardized (ISO 19005-1) version of the Portable Document Format (PDF) specialized for use in the archiving and long-term preservation of electronic/digital documents.
When generating PDF/A compliant documents, we targeted for the full conformance level of PDF/A-1a! So this means that we are completely compliant with PDF/A-1a and PDF/A-1b (as this is a subset of PDF/A-1a).
Get all approval steps and related information. This Actionable will collect all Approval History Information and adds it to a KEYVALUE DataSource.
Class: PDFButler_Act_GetApprovalHistory
Fields for the KEYVALUE DataSource:
Contact PDF Butler support for more information: support@pdfbutler.com
The values of a MultiSelect Picklist are stored as a ";" separated text in Salesforce. That makes it difficult to handle.
This video will show how to retrieve these values in a List.
Class: PDFButler_Actionable_MultiSelect
Fields for the KEYVALUE DataSource:
Contact PDF Butler support for more information: support@pdfbutler.com
How to work with Sections in MS Word to have different headers and footers for different Sections in your Word document.
Make sure to unlink every Section from the previous Section. No "Link to Previous"!
Also look at "CONDITIONAL SECTIONS"
A lot of companies have to support multiple languages, brands, templates, ... . No need to re-create the full configuration!
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:
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: support@pdfbutler.com
A usefull overview of FAQ we have used and learned from our customers.
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”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.
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
Otherwise, you will see an error like: "Oops, there was an error rendering Canvas application" or "Your Browsing session has ended or is invalid"
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>"
If you open the org via your IDE (eg VSCode), you will get the error: "Your browsing session has ended or is invalid" when opening the configpage.
Of course we can! Shield Platform Encryption for encrypting fields on standard, custom and even managed package fields is fully supported.
Overall, you can add the encrypted fields to your PDF Butler DataSource. All security and permissions of the roaming user are checked by Salesforce before returning the data.
This means when the user has access to the data, it will show unencrypted in your document .... Just as you would expect.
We fully align with the Salesforce platform, this means it capabilities and limits.
See this article for more info: General Trade-Offs
Because you do not allow Salesforce to send emails from your domain name.
An example:
Your domain is "xyz.com" and the SalesRep's email is "igor.stuyver@xyz.com". An automated process in Salesforce sends an email to one of your customers.
So, the email is sent by Salesforce but the from-address of the email is "igor.stuyver@xyz.com", this is seen as SPAM as the sender servers are not from the domain "xyz.com".
If anybody was able to send emails from your domain ... that would make phishing very easy.
Now, how do you allow Salesforce to send emails from your domain?
The Salesforce Admin must work together with the Domain Admin to set this up in just 10mins. All that is required is:
DKIM (Domain Keys Identified Mail): Article
SPF (Sender Policy Framework): Article
SIGN BUTLER V2, the complete guide.
Install and access to SIGN Butler via: SIGN Butler AppExchange
You will need some signature placeholders. These look like this:
If you need multiple signers on your document, every signers will require their specific placeholders.
Download a full set here:
Signature Placeholders
We highly recommend to setup your Salesforce Email settings so that emails do not end up in SPAM folder. See more info here: "FAQ: Why Emails send from Salesforce end up in SPAM folder"
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.
Download documentation here
Need to capture data from your customer while signing the document?
You can add multiple form fields via PDF Butler and have these push data back to Salesforce. Updating the record or records related.
You can set if these fields are required, have validation, lock the fields when they have data, ...
Types of form fields:
If you want to see the created SIGN Request directly, you are with multiple Signers and you want to sign immediately, you are launching a SIGN Request from a Community, ... .
Here is how you can open the SIGN Request directly.
We call it Non-Silent (NonSilent or Non Silent).
Class to use: cadmus_sign2.Actionable_SignButlerNonSilent
Use a translation datasource to translation or change the texts on the signing page.
Add any language or use your own texts. Download an example file with all fields below!
Build your own SIGN Butler experience. Here our API overview: Sign Butler V2 API
What if you have one or multiple documents that need to be signed but where not created by SIGN Butler?
No problem, just send them out manually:
Permanent or static form-fields on the PDF
If you want your signer to fill out fields every time you send out a PDF for signing? Just add the form-fields to your PDF 1 time and these will be included every time you send out this PDF for signing
Want to connect your external systems to SIGN Butler. Check out our Postman documentation
SIGN Butler V2 Postman documentationWant to control who sees which SIGN Request? Maybe different Sales teams want to hide SIGN Requests from other teams
Maybe different departments do not want to share SIGN Request information and so on ...
With SIGN Butler, you can just create Salesforce Sharing Rules to control the visibility on the records in the SIGN Butler objects.
Setup and configuration of COLLABORATION BUTLER for SharePoint.
Contact our Support department for all COLLABORATION Butler setup documentation, we will respond immediately: support@pdfbutler.com
Here our API overview: COLLABORATION Butler API
Use an Salesforce Lightning Flow to determine which MetaData Columns should be updated after uploading a file to SharePoint
Variables to use:
INPUT VARIABLES
- recordId: SFDC Id of the record you are working on
- docConfigId: If used, SFDC Id of the DocConfig that was used to generate the document
OUTPUT VARIABLES
- ColumnNames: semicolon (;) separated list of column names you want to update
- Variable per column: has the value of the column you want to update
Use an Salesforce Lightning Flow to determine which Content Type should be updated after uploading a file to SharePoint
Variables to use:
INPUT VARIABLES
- recordId: SFDC Id of the record you are working on
- docConfigId: If used, SFDC Id of the DocConfig that was used to generate the document
OUTPUT VARIABLES
- ContentTypeId: SharePoint ContentType Identifier
Create all datasources required for this FORM Butler Demo.
Datasources for the demo document DocConfig
If you FORM Butler documents need signoff, that is perfectly possible.
Make sure to use the picture placeholder you can download below, this has a marker so we know where to put the signature.
FYI, this is not using SIGN Butler! This signature is not a digital signature but an electronic signature.
Coming soon -
Setup and configuration of BULK BUTLER.
Use this if you want to run a batch for a set of documents. Eg for Opportunities related to an Account.
Using variables in a Screen Flow (Make sure to request the Lightning Convert Component from our Customer Success team)
Screen Flow introduced variables