EZSign

Simple Electronic Signature Capture for Salesforce
Version 3.1.8 (Spring 2013)

Description

EZSign - Simple Electronic Signature Capture

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.

Available on the AppExchange

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:


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:

  1. Data Type: Text
    Field Label: Signature Name
    Length: 50
    Field Name: Signature_Name (will produce a "Signature_Name__c" API Name)

  2. Data Type: Date/Time
    Field Label: Signature Date
    Field Name: Signature_Date (will produce a "Signature_Date__c" API Name)

  3. Data Type: Long Text Area
    Field Label: Stored Signature
    Length: 32,768
    Field Name: Signature (will produce a "Signature__c" API Name)

  4. Data Type: Text
    Field Label: Signature URL
    Length: 255
    Field Name: Signature_URL (will produce a "Signature_URL__c" API Name)

  5. 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'),'')

  6. 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:

  1. 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}';
  2. 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}';
  3. 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