EZSign
Version 3.1.8 (Spring 2013)
Description
EZSign enables you to quickly and easily capture live customer signatures right from within Salesforce using an iPad or other mobile device or remotely via email. The app is ideal for users wishing to get customer signatures on price quotes, estimates, work orders, legal paperwork, and other related documents that require sign-off.
Unlike other Salesforce electronic signature apps, EZSign is focused solely on the signature and not the sending, tracking, and overall management of documents. Signatures are time stamped and may be entered using a finger or stylus or by typing a name into a text box.
Once a signature has been captured, it's then automatically saved as a .PNG image attachment to the record to can be included in email templates or imported into other documents like Word or PDF files.
The EZSign app utilizes a Salesforce component that can be embedded into any Visualforce page wherever a signature is required. Furthermore, EZSign works with all standard and custom objects in Salesforce so you can have it appear wherever you want without a lot of configuration.
EZSign is a native Salesforce app that utilizes HTML5 and, therefore, requires no additional third-party software to operate and will work on any platform or device.
Screenshots
Click on the screenshots below to get an idea of how EZSign works.
Pricing
Initial 10-day free trial period included. No charge incurred for sandbox installations. Half-off advertised pricing for all non-profit organizations.
- 1-9 users: $10/user/month
- 10-24 users: $9/user/month
- 25-49 users: $8/user/month
- 50-99 users: $7/user/month
- 100-249 users: $6/user/month
- 250+ users: $5/user/month
NOTE: Only users needing to capture signatures, either directly within Salesforce or remotely via email, need to have an EZSign license. Once a signature has been captured, it can be viewed by other Salesforce users that do not have a license. Also, an additional license will need to be purchased if you intend to capture signatures remotely via email.
How To Get It
Get this app on the Salesforce AppExchange where you can also take it for a FREE Test Drive.
NOTE: When running the Test Drive, click into a Contact or Opportunity to try capturing a signature. Since many people use this site, however, you may need to clear the signature left by the previous user. To do this, just click the "Clear Signature" button at the top of the page to start fresh.
Older Versions
The following are links to the documentation pages for older versions of EZSign:
- Version 2.6.3 (Winter 2013)
- Version 2.1 (Summer 2012)
- Version 1.2 (Spring 2012)
Documentation
Package Contents
The EZSign package contains the following Salesforce elements:
- 1 Visualforce Component – getSignature
- 6 Custom Fields – Signature__c, Signature_Name__c, Signature_Date__c, Signature_URL__c, Signature_Image__c, & Signature_Key__c
- 3 Custom Buttons – Get Signature, Clear Signature, & Get Signature Remotely*
- 1 Apex Class – EZSign
- 1 Apex Trigger – mapToParent*
- 7 Visualforce Pages – clearSignature, createSignature*, getSignature, getSignatureEmailBody*, getSignatureEmailSubject*, getSignatureRemotely*, & showSignature
- 1 Custom Object – Signature*
- 2 Custom Settings – EZSign Email Settings*, & EZSign Settings*
- 1 Static Resource – EZSign
- 2 Sample Email Templates – EZSign & EZSign Custom (found under "EZSign Email Templates")
*Used for capturing signatures remotely via email
After Installing the Package
Once you've downloaded and installed the EZSign package, modify the Contact page layout to include the following elements:
- Signature field (the signature image once created)
- Signature Name field (the typed in name for the signature)
- Signature Date field (the timestamp of when the signature was submitted)
- Clear Signature button (used to clear an existing signature)
- Get Signature button (used to get a new signature when logged into Salesforce)
- Get Signature Remotely button (used to get a new signature remotely via email)
Embedding EZSign Into a Visualforce Page
The EZSign signature box can be embedded into any Visualforce page with just a single line of code! The following is an example of how to do this:
<apex:page docType="html-5.0" showHeader="false" standardStylesheets="false"
cache="true" standardController="Contact">
<body style="font-size: 10pt;">
<center><b>NON-DISCLOSURE AGREEMENT</b></center>
<p>This agreement is made by and between...</p>
{snip}
<p>IN WITNESS WHEREOF, the parties hereto have caused this Agreement to be
executed by their duly authorised representative below.</p>
<EZSign:getSignature bgColour="#ffffcc" />
</body>
</apex:page>
This is what the code above produces:
There's no limit to the number of objects or instances of EZSign within your Salesforce org but don't forget to modify your page layout(s) to accommodate all of them.
Adding the Signature to an Email Template
Once a signature has been captured it can then be added to a custom email template if you wish to send the customer a copy of the signature as part of a receipt or forward it on to other Salesforce users.
There are two sample email templates included with the EZSign package that you can use as a reference, one "Custom" and the other "Visualforce." These samples are found under the "EZSign Email Templates" folder of Email Communication Templates.
For "Custom" (as well as "HTML") templates, the common fields are:
Recipient: {!Contact or MyCustomObject__c.Name}
Signature: {!SUBSTITUTE(Contact or MyCustomObject__c.Signature_Image__c,'amp;','')}
Printed Name: {!Contact or MyCustomObject__c.Signature_Name__c}
Signature Date: {!Contact or MyCustomObject__c.Signature_Date__c}
For "Visualforce" email templates, the common fields are:*
Recipient: {!recipient.EZSign__Name}
Signature: <img src="{!recipient.EZSign__Signature_URL__c}" />
Printed Name: {!recipient.EZSign__Signature_Name__c}
Signature Date: {!recipient.EZSign__Signature_Date__c}
*include the highlighted "EZSign__" namespace if using the default "Contact" object.
Adding EZSign to Other Salesforce Objects
To use EZSign with other standard or custom objects in Salesforce, follow these steps:
Step 1:
Add the following Custom Fields to your standard or custom object:
- Data Type: Text
Field Label: Signature Name
Length: 50
Field Name: Signature_Name (will produce a "Signature_Name__c" API Name)
- Data Type: Date/Time
Field Label: Signature Date
Field Name: Signature_Date (will produce a "Signature_Date__c" API Name)
- Data Type: Long Text Area
Field Label: Stored Signature
Length: 32,768
Field Name: Signature (will produce a "Signature__c" API Name)
- Data Type: Text
Field Label: Signature URL
Length: 255
Field Name: Signature_URL (will produce a "Signature_URL__c" API Name)
- Data Type: Formula
Field Label: Signature
Field Name: Signature_Image (will produce a "Signature_Image__c" API Name)
Formula Return Type: Text
Formula: IF(NOT(ISBLANK(Signature_URL__c )),IMAGE(Signature_URL__c ,'Signature'),'')
- Data Type: Text
Field Label: Signature Key
Length: 255
Field Name: Signature_Key (will produce a "Signature_Key__c" API Name)
Step 2:
Create the following Custom Buttons for the standard or custom object:
- Label: Get Signature
Name: Get_Signature
Display Type: Detail Page Button
Behavior: Execute JavaScript
Client Source: OnClick JavaScript
Function:
window.location='/apex/EZSign__getSignature?id={!MyCustomObject__c.Id}';
- Label: Clear Signature
Name: Clear_Signature
Display Type: Detail Page Button
Behavior: Execute JavaScript
Client Source: OnClick JavaScript
Function:
window.location='/apex/EZSign__clearSignature?id={!MyCustomObject__c.Id}';
- Label: Get Signature Remotely (only needed if you intend to capture signatures remotely via email)
Name: Get_Signature_Remotely
Display Type: Detail Page Button
Behavior: Execute JavaScript
Client Source: OnClick JavaScript
Function:
window.location='/apex/EZSign__createSignature?id={!MyCustomObject__c.Id}';
Step 3:
Edit the Page Layout for one of your standard or custom object records to include the new custom buttons and the "Signature Name," "Signature Date," and "Signature" fields.

Collecting Signatures Remotely Via Email
If someone is not able to sign your mobile device in person, you can use EZSign to safely and securely capture their signature remotely via an automated email message. Below are some screenshots demonstrating how this works:
Salesforce Contact record (without signature):
Recipient's email message:
Website where signature is entered:
Salesforce Contact record (with signature):
![]()
Enabling this process requires the use of a Salesforce "Site" and the purchase of an additional EZSign license so that guest users are able to submit their signatures directly to your Salesforce org.
To ensure data security, EZSign uses a security key that prevents someone from entering or accessing someone else's signature.
To set up your Salesforce org so that you'll be able to collect signatures remotely via email, please visit the Remote Signature Capture Configuration page for step-by-step instructions.
Component Attributes
The following attributes can be used to customize the look-and-feel of the EZSign component:
| Attribute | Type | Description | Default Value |
| W | Integer | Signature Box Width (in pixels) | 400 |
| H | Integer | Signature Box Height (in pixels) | 90 |
| createExternalImageDoc | Boolean | If TRUE the signature is stored as an externally available image to be used in email templates. If FALSE, the signature will be available only to your internal Salesforce users. | TRUE |
| saveCoordinates | Boolean | If TRUE the coordinates of the signature are stored. If FALSE, the signature is instead stored as an image attachment. NOTE: For longer signatures this value should be set to FALSE to avoid an issue regarding Salesforce field length limitations. | FALSE |
| returnToRecord | Boolean | If TRUE the user is redirected to the record. If FALSE, the page will simply refresh and display the submitted signature. | TRUE |
| defaultAction | String | Default Action | typeIt, drawIt |
| displayOnly | Boolean | Display Only | FALSE |
| typeOnly | Boolean | Type It Only | FALSE |
| drawOnly | Boolean | Draw It Only | FALSE |
| bgColour | String | Background Color | white |
| penColour | String | Pen Color | #145394 (blue) |
| penWidth2 | String | Pen Width (in pixels) | 3 |
| penCap | String | Pen Cap | round, butt, square |
| lineColour | String | Signature Line Color | #ccc (gray) |
| lineWidth | Integer | Signature Line Width (in pixels) | 2 |
| lineMargin2 | Integer | Signature Line Margin (in pixels) | 0 |
| lineTop | Integer | Signature Line Top (in pixels) | 78 |
| saveLine | Boolean | If TRUE the signature line will be saved along with the stored signature. If FALSE, the stored signature will be saved without the signature line. | FALSE |
| waterMark | Boolean | Embed Watermark | TRUE |








