Skip to content
Book a Demo Open a Case

Salesforce apps by To A Finish

Four managed packages that run inside your own Salesforce org.

Simple Signature

Document creation and e-signatures in Salesforce

Address Verification

Clean, verify and geocode Salesforce addresses

Highlighter

Colors, renames or hides Salesforce fields

List Browse

Browse Salesforce records without list clicking

Get started

Install, configure and roll out a TAF package.

Implementation guides

Guides for all four apps are ready.

How-to articles

One article per task

Book a demo

See a package in a live org

Compatibility

Editions and releases we support

Get help

Open a case and a person reads it.

Open a support case

The fastest route to an answer

Give us access

Let us sign in and see the problem

Support home

Guides, release notes and the case form

Troubleshooting

Search by the error text you see

Documentation

Written for admins, not for developers.

Implementation guides

Guides for all four apps are ready.

How-to articles

One task per article

Change log

What changed in each release

Compatibility

Editions and seasonal releases

Simple Signature Address Verification Highlighter List Browse Support Book a Demo
Simple Signature

Simple Signature implementation guide

Install Simple Signature and take your first signature. Pick how you want to work.

Do it yourself

Follow the steps on this page. Tick each step as you finish it.

Start at step 1

Let AI do it for you

Copy this guide into an AI that works in your browser, such as Claude in Chrome. The AI does the steps in your sandbox. You sign in and approve each change.

Lightning Free and paid setup Applies to version 5.8.x Last updated 9 Oct 2026

1Before you begin

Simple Signature takes signatures inside Salesforce. A user opens a record and clicks Sign. The signer reads the form, fills in a few fields and signs with a finger or a mouse. Salesforce saves the signature as a Signature record, linked to the record the user started from.

The free setup comes first. It takes you from the install to a first signature on a Contact. The paid chapters follow, for orgs with the paid version.

The Simple Signature form on a Contact: a title, the legal text, the fields First Name, Last Name, Email and Date, a signature box and the Save Signature button.

What you need

  • A Salesforce org in Professional Edition or higher, with Sales Cloud, Service Cloud or Salesforce Platform.
  • A user with admin rights in that org.
  • A sandbox, to set Simple Signature up there first.
  • Lightning Experience. This guide covers Lightning and the Salesforce mobile app. For Classic, open a case.

Test in a sandbox first

The wording of the form is copied onto every Signature record when someone signs. Get the wording right in a sandbox before you take real signatures.

The ß in the names

Many Simple Signature names start with ß, for example the ß Signatures tab. It is the German letter sharp s, written for ss, the app's initials. It is not a B.

Free and paid

The free version takes up to 100 signatures a year. The paid version adds signature requests by email, PDF documents, Google Docs templates, signatures in Flows and more. Do the free setup first, also with the paid version. Then go on to Turn on the paid version.

2Install Simple Signature

Install into a sandbox first. When the whole guide works there, come back and install into production.

  1. Open the Simple Signature listing on the AppExchange. Click Get It Now.

    Go to Simple Signature on the AppExchange. Sign in when the AppExchange asks. It shows a Trailblazer sign-in or a Salesforce login page. A Trailblazer account is the free login for Trailhead and the AppExchange. If the AppExchange lists your orgs and your org is not there, link it to your Trailblazer account first. The top of the site now reads AgentExchange. It is the same marketplace.

  2. Pick your sandbox as the place to install.

    A window asks Where do you want to install this package?. Under Connected Salesforce Accounts, pick the login of your sandbox. Then click the install button.

    If the window offers only Install in Production, click Cancel. Open the Simple Signature change log and click Install in a sandbox. Sign in to your sandbox, and go on at step 5.

    Later, when the whole guide works in the sandbox, repeat these steps and install in production.

  3. If a terms box shows, tick it. Then click Confirm and Install.

    Some installs show the box I have read and agree to the terms and conditions. If yours does not, go to the next step.

  4. Sign in to the org, if Salesforce asks.

    Salesforce opens the install page. Its title starts with Install Simple Signature, and it shows the version number. When Simple Signature is already in the org, the page offers Upgrade in place of Install.

  5. Pick Install for All Users. Then click Install.

    The three choices are Install for Admins Only, Install for All Users and Install for Specific Profiles. Only an admin sets Simple Signature up, but every user who takes signatures needs access to its pages.

    The Salesforce install screen for Simple Signature, with Install for All Users selected.
  6. Approve third-party access. Then click Continue.

    A window named Approve Third-Party Access lists the web sites that Simple Signature calls, for features such as QR codes and Google Docs:

    • CSP Trusted Site: https://api.qrserver.com
    • Websites: api.addressverificationapp.com, docs.googleapis.com, script.googleapis.com and www.googleapis.com
    The Approve Third-Party Access window: the CSP Trusted Site api.qrserver.com, four websites, and the Yes, grant access box above the Continue and Cancel buttons.

    Tick Yes, grant access to these third-party web sites. Click Continue.

    When the install takes a while, Salesforce says it will email you when it finishes. Installed Packages then lists the app as ß Simple Signature.

  7. Assign Simple Signature (Admin) to each admin who sets up Simple Signature.

    Simple Signature has four permission sets. The free setup needs the first two.

    WhoPermission setWhat it allows
    Admins who set up Simple SignatureSimple Signature (Admin)Full use of the app, with the admin tasks.
    Every other user who takes signaturesSimple Signature (User)Full use of the app, without the admin tasks.
    The guest user of a Salesforce SiteSimple Signature (Guest)Signing on a Site. The paid signature requests use it. Skip it for now.
    Users of an Experience Cloud siteSimple Signature (Community)Signing on an Experience Cloud site. Skip it if you have no site.

    Open Setup. In the Quick Find box, type Permission Sets. Click Permission Sets. Click Simple Signature (Admin). Click Manage Assignments, then Add Assignment. Tick each admin. Click Next. Salesforce asks whether the assignment expires. Leave it with no expiration date. Click Assign.

  8. Assign Simple Signature (User) to every other user who takes signatures.

    Go back to Permission Sets. Click Simple Signature (User). Assign it the same way.

3Check one Salesforce setting

The signature forms need Lightning Web Security. Without it, a form can show an error when it first opens. In many orgs it is on already. The paid features need two more settings. The paid setup covers them.

  1. Open Session Settings.

    Open Setup. In the Quick Find box, type Session Settings. Click Session Settings.

  2. Find Use Lightning Web Security for Lightning web components and Aura components.

    It sits in the Lightning Web Security section of the page. If the box is already ticked, you are done with this chapter.

    The Session Settings page, with Use Lightning Web Security for Lightning web components and Aura components ticked.
  3. Tick the box. Then click Save.

    Lightning Web Security changes how every Lightning component in the org runs. If your org has its own custom components, check them in the sandbox after this change.

4Set the wording of the form

The title and the legal text of the form come from custom labels. A custom label is a piece of text that an app shows on its pages. You change a Simple Signature label with an override in your own language.

Until you change them, the title reads Salesforce.com, inc. Release Form and the legal text is a sample release that names Salesforce.

Set the wording before you take real signatures

When someone signs, Simple Signature copies the wording onto the Signature record. A change later does not change the records already signed.

  1. Open Custom Labels.

    Open Setup. In the Quick Find box, type Custom Labels. Click Custom Labels. The list holds the labels of every app in the org. The Simple Signature labels show Signature in the Categories column.

  2. Click Page_Title.

    Click the name Page_Title on a row with Signature in Categories. The Custom Label Detail page opens. Its Value reads Salesforce.com, inc. Release Form.

  3. Click New Local Translations / Overrides.

    The button sits in the Local Translations / Overrides section at the bottom of the page.

    The Custom Label Detail page for Page_Title, with the New Local Translations / Overrides button.

    If the page has no such section, the Translation Workbench is off. In the Quick Find box, type Translation Language Settings and open that page. Turn the workbench on. Click Edit beside the language your users work in, for example English. Tick Active, add yourself as a translator, and click Save. Then come back to this step.

    The page also shows Packaged Translations: the texts that come with the app in other languages.

  4. Pick your language. Type the title of your form. Then click Save.

    The New Translation page opens. In Language, pick the language your users work in, for example English. Do not press Enter in this list. Enter saves the form before you type the title.

    In Translation Text, type the title you want at the top of the form, for example Photo Release Form.

    The New Translation page for Page_Title, with English picked and a new title typed in Translation Text.
  5. Add an override for each other language your users work in.

    A user whose Salesforce language has no override sees the default title, or the packaged translation for that language. Do steps 3 and 4 again for each language. For a language under Packaged Translations, you can also click Override on its row.

  6. Change Long_Legal_Text_1 the same way.

    Go back to Custom Labels and click Long_Legal_Text_1. This is the text under the title, above the fields and the signature box. A label holds up to 1,000 characters.

  7. Change Long_Legal_Text_2 the same way.

    Put the rest of your legal text here. The form shows it right after Long_Legal_Text_1, on the same line. Today the form shows no space between the two texts, and TAF is fixing that. If your text fits in Long_Legal_Text_1, still move its last sentence here, so the sample text does not show.

Other labels you can change

Change these the same way, if you want other words on the form.

LabelWhat it changes
Submit_ButtonThe words on the Save Signature button.
Cancel_ButtonThe words on the Cancel button.
City_Field, Date_Field, Date_Field_2The labels of the City, Date and Date of Birth fields.

5Choose the fields on the form

The fields on the form come from a field set named SignatureFields on the Signature object. A field set is a named group of fields that you edit in Setup.

  1. Open the Signature object in Object Manager.

    Open Setup. Click Object Manager. Click ß Signature, the object with the API name signature__Signature__c. Salesforce has other objects with similar names, such as Digital Signature. Leave those alone.

  2. Optional: make a new field for the form.

    Click Fields & Relationships. Click New, and make the field as usual. On the field-level security page, make the field visible to the profiles of the users who take signatures. Skip this step if the fields you need are already there.

  3. Click Field Sets. Then click SignatureFields.

    The field set editor opens. The fields of the Signature object sit at the top. The fields on the form sit in In the Field Set. At first it holds First Name, Last Name, Email and Date.

  4. Drag fields in, out and into order.

    Drag a field from the top into In the Field Set to add it to the form. Drag a field back out to remove it. The order in the field set is the order on the form.

    The SignatureFields field set editor, with the Signature fields at the top and the fields of the form below.
  5. Click Save.

One field set in the free version

The free version always uses SignatureFields. More field sets, for more than one form, need the paid version.

6Add the Sign button

The Sign button opens the form on a record. That record becomes the parent of the signature. This chapter uses Contact. Lead and Opportunity work the same way.

Another object as the parent

The Signature object comes with lookup fields to Contact, Lead and Opportunity. For another object, make a lookup field to it on the Signature object first, under Fields & Relationships. Make only one lookup to each object.

  1. Open Contact in Object Manager. Click Buttons, Links, and Actions.

    Open Setup. Click Object Manager. Click Contact. Click Buttons, Links, and Actions.

  2. Click New Action.

    The New Action page opens.

  3. Fill in the action as below. Then click Save.

    FieldValue
    Action TypePick Lightning Component.
    Lightning ComponentPick signature:SignatureFormFree. The list starts on signature:SignatureFormLwc.
    HeightType 600px in place of 250px.
    LabelType Sign.
    NameSalesforce fills in Sign from the label.

    If the first click on Save does nothing, click it again.

    The New Action page for Contact: Action Type Lightning Component, the component signature:SignatureFormFree, height 600px and the label Sign.
  4. Open the Contact page layout.

    In the menu on the left, click Page Layouts. Click the layout your users work with, for example Contact Layout. To see which layout each profile uses, click Page Layout Assignment.

  5. Drag Sign into the Salesforce Mobile and Lightning Experience Actions section.

    In the palette at the top, click Mobile & Lightning Actions. Drag Sign, the action you made in step 3, into the section Salesforce Mobile and Lightning Experience Actions. Leave the items marked Deprecated.

    If that section asks you to override the predefined actions, click the link to do so first.

    The Contact page layout. The palette shows Mobile & Lightning Actions, and Sign sits in the Salesforce Mobile and Lightning Experience Actions section.
  6. Add the ß Signatures related list. Remove its New button.

    In the palette, click Related Lists. Drag ß Signatures into the Related Lists section. Click the wrench icon on the new related list. Click the + beside Buttons to open that part. Untick New, and click OK. A new signature must start from the Sign button, so the New button only confuses users.

    Signature Steps is a different related list. You do not need it.

  7. Click Save.

    Salesforce asks Save page layout changes?, with a box to overwrite users' personal related list customizations. Leave the box unticked, and save. Do the same on each layout that needs the Sign button.

7Take a test signature

Check the whole setup with one signature on a test Contact.

  1. Open a test Contact.

    In a sandbox with no contacts, open the Contacts tab and click New. Type a first name, a last name and an email address. Fill in any other field your org asks for, such as Account Name. Click Save.

  2. Click Sign.

    Sign sits with the buttons at the top right of the record, or in the menu under the arrow at the end of the buttons. The form opens with your title, your legal text, the fields First Name, Last Name, Email and Date, a signature box and the Save Signature button.

  3. Fill in the fields.

    Type the signer's first name, last name and email. The Date fills itself.

  4. Sign in the box.

    Use the mouse, or a finger on a touch screen.

  5. Click Save Signature.

    Simple Signature saves the signature and opens the new Signature record.

  6. Check the Signature record.

    The Status reads Signed. The record shows the signature, the fields from the form, the title and the legal text the signer agreed to, and a link to the Contact. The record also shows in the ß Signatures related list on the Contact.

    The top of a ß Signature record: the form title, the legal text, the fields from the form and the signature.

Sign on a phone

The Sign button works the same way in the Salesforce mobile app.

Paid versionChapters 8 to 27

These chapters need the paid version of Simple Signature. They do not count in the setup progress. With the free version, go on at chapter 28.

9Build a signature experience Paid

Paid version only. These steps do not count in the setup progress.

A signature experience is a saved set of settings for one signature form. It sets which fields show, how the signer signs, where Salesforce goes after the signature, and more. Each experience gets an Experience ID. A Sign button, a record page or a Flow uses that ID to show the form your way.

  1. Open the Configure page. Click the Experiences tab.

    Open the Configure page the same way as in step 2 of Turn on the paid version. The Simple Signature app also has a ß Configure tab that opens the same page.

  2. Click Add an Experience. Type a name.

    Type a Name, for example Contact Release. The Description is optional. Use it to say where the form runs.

  3. Click Add Parameter. Pick a parameter and set its value.

    Each parameter changes one thing on the form. Pick it in the list in the Parameter column. A parameter with a checkbox is on when you tick it. Other parameters take a value. Type it in Hardcoded Value/Field Reference, and leave Is Field Reference? unticked.

    If the list in the Parameter column does not open with a click, click it once, type the parameter name and press Enter.

    The Create New Signature Experience window with five parameters: compact, backtoparent, requestedform, submitbutton and submissiontype.
  4. Add the other parameters you need.

    The table lists the parameters for the form itself. Add Advanced Parameter opens the parameters that orgs need less often. The parameters for signature requests are in More request options. The parameters for PDF documents are in Document parameters for an experience.

    ParameterButtonWhat it does
    fieldsetAdd ParameterShows the fields of another field set on the form. The value is the field set name. Without it, the form uses SignatureFields.
    compactAdd ParameterPuts each label on the same line as its field.
    fieldreadonlyAdd ParameterShows the fields you list as read-only. List field API names, with commas between them.
    fieldheaderAdd ParameterShows the fields you list as headings.
    fieldhidelabelAdd ParameterShows the fields you list with no label.
    hideblanksAdd ParameterHides the fields that are blank.
    defaultvalue_Add ParameterPuts a value in a field of the Signature. Pick the field in Signature Field. Type the value in Hardcoded Value/Field Reference.
    contactfieldAdd ParameterFor a parent record that is not a Contact. Gives the API name of the Contact lookup field on the parent. The PDF and email features need a Contact on the Signature.
    backtoparentAdd ParameterAfter the signature, opens the parent record, not the new Signature record.
    returlAdd ParameterAfter the signature, opens this web address.
    hidecancelAdd ParameterHides the Cancel button.
    initialsAdd ParameterAdds a second, smaller box for the signer's initials.
    multisignatureAdd ParameterShows up to 5 signature boxes. The value is their names, with commas between them. The first box is required. A * in front of a name makes that box required too, for example One,*Two.
    requestedformAdd ParameterGives the form a name. The name goes on each Signature record, so you can tell the forms apart.
    preauthorizedAdd ParameterSkips the eSignature Agreement window for this form. See Brand the form.
    submissiontypeAdd Advanced ParameterThe ways the signer can sign. Click the pencil. In the window Select option, pick one or more. Regular, the default, is a mouse or a finger. Typed lets the signer type a name and pick a font. None shows a checkbox. Paper lets the signer print, sign on paper and upload a scan. Topaz uses a Topaz signature pad.
    submissiontypedefaultAdd Advanced ParameterThe way to sign that shows first, when the form offers more than one.
    submitbuttonAdd Advanced ParameterThe text on the button that saves the signature, for this form only.

    Paper signatures need one more step

    A paper signature saves with the Status Uploaded, not Signed. Simple Signature cannot check the scan. After a person checks it, a Flow or the person sets the Status to Signed.

  5. Click Save.

    Save sits at the bottom of the experience.

  6. Copy the Experience ID.

    The saved experience shows its Experience ID. Click the copy icon beside it. Keep the ID at hand. The next chapters use it.

    A saved experience on the Experiences tab, with its Experience ID, the copy icon, its parameters, and the Edit and Delete buttons.

A form with other fields

The free version always uses the SignatureFields field set. With the paid version, an experience can use another one.

  • Open Setup. Click Object Manager. Click ß Signature. Click Field Sets. Click New.
  • Type a Field Set Label, for example Visitor Fields. Salesforce fills in the Field Set Name. Fill in Where is this used?, then click Save.
  • Drag the fields for this form into In the Field Set. Click Save.
  • In the experience, add the parameter fieldset. Its value is the Field Set Name.

11Show the form on a record page Paid

Paid version only. These steps do not count in the setup progress.

You can also put the form on a tab of the record page, with no code. Any user who can open the record and use Simple Signature can sign there.

The Signature needs a lookup to the object

Contact, Lead and Opportunity have one already. For another object, see Add the Sign button.

  1. Open a test Contact. Click the gear icon at the top right. Click Edit Page.

    The Lightning App Builder opens. Components sit in the left panel, the page sits in the middle, and the settings of the item you click sit in the right panel.

  2. Add a new tab beside Details.

    Click the tab bar on the page, the bar that holds Activity and Details. In the right panel, click Add Tab. Click the new tab in that list. In Tab Label, pick Custom, and type Sign.

  3. Drag SignatureFormConnector into the new tab.

    SignatureFormConnector

    Find it under Custom - Managed in the left panel.

  4. Paste your Experience ID.

    Click the component. In the right panel, paste the ID into Experience ID.

    The Lightning App Builder on a Contact page. SignatureFormConnector sits in the Sign tab, with the Experience ID in the right panel.
  5. Click Save. Activate the page, if Salesforce asks.

    Salesforce asks the first time you edit the Lightning page of an object. Click Activate. Click Assign as Org Default. Choose Desktop. Click Next. Salesforce shows a review of the assignment. Click Save.

  6. Click Back. Open the Sign tab and sign.

    Back sits at the top right of the Lightning App Builder. The record opens. Click the Sign tab. The form shows there. Take a test signature.

    If the first click on the button that saves only moves the page, click the button again.

12Take signatures in a Flow Paid

Paid version only. These steps do not count in the setup progress.

A screen Flow can hold a signature form as one of its screens. Use it when the signature is one step in a longer process, for example a check-in.

  1. Open Flows. Click New Flow. Click Screen Flow.

    Open Setup. In the Quick Find box, type Flows. Click Flows. Click New Flow. Flow Builder opens in a new browser tab, with the window New Automation. Under Frequently Used, click Screen Flow. The empty Flow opens at once.

  2. Make a variable named recordId.

    Click the Toolbox icon at the top left. Click Manager, then New Resource. Pick Variable as the Resource Type. In API Name, type recordId, with exactly this case. Pick Text as the Data Type. Under Availability Outside the Flow, tick Available for input. Click Done.

    When the Flow starts from a record, Salesforce puts the ID of the record in this variable.

  3. Add a screen.

    Click the + on the line. The list Add Element opens. Under Interaction, click Screen. Type a Label, for example Sign Screen. The Label is required.

    To keep the signer on the form until the signature saves, hide the footer: open Configure Footer and untick Show Footer. It is ticked at first.

  4. Drag Simple Signature Form onto the screen. Fill in its settings.

    In the search box above the Components list, type signature. Drag Simple Signature Form onto the screen. Do not use the one for a Site. Click it on the screen. Its settings show on the right. The screen shows no preview of the form.

    SettingValue
    API NameType a name, for example SignatureForm.
    Experience IDPaste your Experience ID.
    Parent IDPick the variable recordId.
    Other ParametersLeave it empty.
    StyleOptional. CSS for the size of the form on the screen.

    When you click into Experience ID, a list of Flow resources opens and can cover Parent ID. Paste the ID, then click an empty part of the panel to close the list.

    The Flow form shows no title and no legal text. To show them, drag a Display Text component onto the screen, above Simple Signature Form, and type them there.

    The Flow screen editor with the Simple Signature Form component and its settings.
  5. Click Done. Save the Flow. Click Activate.

    Click Save. In the window, type a Flow Label, for example Sign Contact. Salesforce fills in the Flow API Name. Click Save. Then click Activate. Salesforce says the automation is active.

    To change an active Flow later, open it, make the change and click Save As New Version. Save is grey on an active Flow. Then activate the new version.

  6. Make an action that starts the Flow.

    Open Setup. Click Object Manager. Click Contact. Click Buttons, Links, and Actions. Click New Action. Pick Flow as the Action Type. Pick your Flow. Type a Label, for example Sign in Flow. A Flow action has no Height. Click Save.

  7. Add the action to the page layout. Test it.

    Drag it into Salesforce Mobile and Lightning Experience Actions, the same way as step 5 of Add the Sign button. Then open a test Contact. The new action can sit in the menu under the arrow at the end of the buttons. Click it.

    The form opens in a window. Its button reads Done. Done saves the signature and closes the window.

    The Sign in Flow window: the fields, a signature and the Done button. It shows no title and no legal text.

A Flow that shows a PDF first

With a document template, a Flow can make the Signature first, wait for a PDF preview and show it before the signer signs. See Show the PDF in a Flow before the signature.

13Brand the form Paid

Paid version only. These steps do not count in the setup progress.

The paid version lets you put your own logo and colors on the form. You set the colors on the Configuration tab of the Configure page, and the logo in the Sign button component.

  1. Open the Configure page. Click the Configuration tab.

    Find the section Form Options. If you open the page from the App Launcher, pick ß Configure. Other TAF apps have Configure tabs too.

  2. Set the form options.

    OptionWhat to do
    Require eSignature AgreementTurn it on to show a window where the signer agrees to sign electronically, before the form opens.
    Require Location CollectionTurn it on to save the location of the signer, as latitude and longitude, with every signature. If the browser blocks the location, the signer must allow it and load the page again.
    Do not attempt to collect LocationTurn it on to never save a location. TAF does not advise it.
    Hide "Save and New" Button on Signature FormLeave it as it is. TAF retires this option soon.
    Process Signatures In Page (Synchronously)It shows grey and off. Leave it.

    The agreement window can put its Agree button below the edge of the window. Scroll down inside the window to reach it.

    The Form Options on the Configuration tab: five options with Require eSignature Agreement ticked, and the CSS boxes for the buttons, the bar above the signature box and the logo.
  3. Upload your logo as a static resource.

    Open Setup in a new tab. In the Quick Find box, type Static Resources. Click Static Resources. Click New.

    Type a Name, for example CompanyLogo, with letters, numbers and underscores only. Pick your logo file, for example a PNG. Cache Control starts on Private. Set it to Public. Click Save.

  4. Put your logo in the Sign button component.

    Open the Developer Console. Click File, then Open Lightning Resources. Type SignContact in the Filter box. Click c:SignContact, then COMPONENT. Click Open Selected. The tab SignContact.cmp opens.

    Find $Resource.signature__SSLogo. Replace signature__SSLogo with the Name of your static resource, for example $Resource.CompanyLogo. Save the component.

    To take the line Powered by Simple Signature off the form, delete the line near the end that starts with <div align="center". Save again. The save shows no message. The * on the tab name goes away.

    Your browser keeps the old version of the form for a while. Before you test, reload the record page with Ctrl+Shift+R on Windows or Command+Shift+R on a Mac.

  5. Change the colors, if you want.

    Each element below takes CSS, the code that styles a web page. The label of each element shows its default value. Change one element at a time. Then test it, because a mistake in CSS can break the form.

    ElementWhat it styles
    Save ButtonThe button that saves the signature.
    Request ButtonThe button that sends a signature request.
    Cancel ButtonThe Cancel button.
    Signature Top Border LeftThe left part of the colored bar above the signature box.
    Siganture Top Border RightThe right part of the colored bar above the signature box. The label on screen has this typo.
    Field / Button AreaThe area with the fields and the buttons. It shows no default.
    Signature PadThe signature box. It shows no default.

    For example, background:navy;color:white; makes a button dark blue with white text.

    Leave Logo Static Resource and Logo Style empty. They do not change the form of the Sign button.

  6. Click Save Settings. Then check that your values stayed.

    The green Save Settings button stays at the same spot on the screen while you scroll. After a save, a green bar with Setting Updated Successfully can show at the top of the page, out of view.

    Reload the page and look at your values. If a value is gone, type it again and click Save Settings again.

  7. Take a test signature.

    Use the Sign button from Add a Sign button for your experience. Check the logo and the colors. With Require eSignature Agreement on, a window asks the signer to agree first.

    The form from the new Sign button with a test logo above the title, the legal text of a form type and the navy Sign Now button.

14Advanced form options Paid

Paid version only. These steps do not count in the setup progress.

These options serve special cases. Most orgs do not need them.

Different legal text for one form

The labels from Set the wording of the form give every form the same title and legal text. A form type gives one experience its own legal text.

  1. Add the parameter formtype to the experience.

    On the Experiences tab, open the experience and click Edit. Click Add Advanced Parameter. Pick formtype. In Hardcoded Value/Field Reference, type a name for the form type, for example Visitor_Release. Click Save.

  2. Open Custom Metadata Types. Click Manage Records beside ß Form Type.

    Open Setup. In the Quick Find box, type Custom Metadata Types. Click Custom Metadata Types.

  3. Click New. Fill in the record. Then click Save.

    Type the Label first. Salesforce fills in ß Form Type Name from it. Then change ß Form Type Name to the formtype value.

    FieldValue
    LabelA name for the record, for example Visitor Release.
    ß Form Type NameThe same name as the formtype value, for example Visitor_Release.
    Legal TextThe legal text for this form.
    Signature URLLeave it blank. It serves signature requests.
    Thank You URLLeave it blank. It serves signature requests.
    Other fieldsLeave them blank.

    If the page does not show all these fields, save the record. Click Edit Layout at the top right, add the fields, and edit the record again.

  4. Take a test signature.

    The form shows the legal text of the form type. The title stays as Page_Title sets it.

Longer field labels

A Salesforce field label holds up to 40 characters. The ß Custom Labels setting gives a field on the form a label of up to 255 characters. The longer label shows on every Simple Signature form.

  1. Open Custom Settings. Click Manage beside ß Custom Labels.

    Open Setup. In the Quick Find box, type Custom Settings. Click Custom Settings.

  2. Click New. Fill in the record. Then click Save.

    FieldValue
    NameAny name that no other record in this list uses.
    API NameThe API name of the field on the form, for example signature__Company__c.
    Language CodeThe language of the form, for example en for English.
    LabelThe longer label, up to 255 characters.
  3. Add the parameter language to the experience.

    Give it the same code as the record, for example en. Then take a test signature.

Update the parent record after a signature

To change the parent record when someone signs, build a record-triggered Flow on ß Signature. Start it when the Status changes to Signed. For example, the Flow can move an Opportunity to its next Stage.

For values that are not on the form, Simple Signature has the ß Field Updates setting. Code writes a ß Field Updates record before the form opens. When the signer signs, Simple Signature copies the value to the parent record. When the signer cancels, Simple Signature deletes the record. A developer sets this up from the FieldUpdates class in the classes folder of the sample code on GitHub.

15Set up the signature site Paid

Paid version only. These steps do not count in the setup progress.

A signature request sends the signer an email with a link. The link opens a page on a Salesforce Site, a public web site that your org hosts. The signer needs no Salesforce login.

The setup has four parts: the site, the connection between the site and Simple Signature, a button that sends the request, and the emails. Do them in this order.

Ask an admin who knows Sites

A site and its sharing rules control what people outside your org can see. If you have not set up a Salesforce Site before, ask an experienced admin to help, or open a case.

  1. Open Sites. Click New.

    Open Setup. In the Quick Find box, type Sites. Under Sites and Domains, click Sites.

    The first time, the page asks you to register a domain for your sites, for example yourcompany.my.salesforce-sites.com. Tick I have read and accepted the Salesforce Sites Terms of Use. Click Register My Salesforce Site Domain. The page then shows your site domain name.

    Then click New.

  2. Fill in the site as below. Then click Save.

    FieldValue
    Site LabelA name, for example Signatures. Salesforce fills in Site Name.
    Site ContactSalesforce fills in your name. Change it if another admin looks after the site.
    Default Web AddressType a short path in the box after the domain, for example sign. You can leave it empty if no other site uses the domain.
    ActiveTick it.
    Active Site Home PagePick SiteSignature, the signing page of Simple Signature.
    URL Rewriter ClassPick signatureURLRewriter.
    Cache public Visualforce pagesUntick it. It is ticked at first.
    Other fieldsLeave them as they are.
    The lower part of the site edit page: signatureURLRewriter as the URL Rewriter Class and Cache public Visualforce pages unticked.
  3. Write down the site address. Keep it for the next chapter.

    The site page shows the address in two parts, in the Custom URLs list: Domain Name and Path. Put https:// in front and join them, for example https://yourcompany.my.salesforce-sites.com/sign. Paste it into a text file.

  4. Add the two Simple Signature pages to the site.

    On the site page, find Site Visualforce Pages. Click Edit. The page Enable Visualforce Page Access opens. Make sure these two pages sit in Enabled Visualforce Pages. Click Save.

    • signature.SiteSignature, the signing page. It is there already, because it is the home page.
    • signature.TrackEmail, which records when the signer opens the email. Move it across.
  5. Assign Simple Signature (Guest) to the guest user of the site.

    Every site has a guest user. People outside your org work as this user on the site.

    On the site page, click Public Access Settings. Click View Users. Click the guest user, for example Signatures Site Guest User. In Permission Set Assignments, click Edit Assignments. Add Simple Signature (Guest). Click Save.

    The permission set gives the signer access to the fields of the form, for example First Name, Last Name and Email.

  6. Share open Signature records with the guest user.

    A guest user sees no records until a sharing rule shares them. Open Setup. In the Quick Find box, type Sharing Settings. Click Sharing Settings. Find ß Signature Sharing Rules. Click New.

    FieldValue
    LabelA name, for example Open requests for the site. Salesforce fills in Rule Name.
    Rule TypePick Guest user access, based on criteria.
    CriteriaField Status, Operator not equal to, Value Signed. Pick each list value with the mouse. The Enter key saves the form too early, with the error Invalid or empty operator.
    Share withPick the guest user of your site.
    Access LevelRead Only. It cannot change.

    The page shows a yellow warning about guest user access. This rule shares only open requests, and only to read. Click Save. Salesforce can take some minutes to apply the rule. After the signature, the guest user no longer needs the record. This is why the rule leaves out Signed records.

    The new sharing rule for ß Signature: guest user access, Status not equal to Signed, shared with the site guest user, Read Only.

Your own fields on the request form

Simple Signature (Guest) covers the standard fields of the form. You can add your own field to the field set. The signer then cannot see it or fill it in until you give the guest user access to it.

  • On the site page, click Public Access Settings.
  • With the new profile editor, click Object Settings, then ß Signatures. With the classic editor, find Custom Field-Level Security and click View beside ß Signature.
  • Click Edit. Give Read and Edit access to your fields on the form. Click Save.

The form can show fields of another object, for example the Lead. Then add a sharing rule for that object too, the same way as step 6.

16Connect the site to Simple Signature Paid

Paid version only. These steps do not count in the setup progress.

Simple Signature needs a connection to your org to save the signatures that come in from the site. In this chapter you set the site address, make an External Client App and authorize the connection. An External Client App is the Salesforce record that lets an outside page connect to your org.

The user who authorizes holds the connection

Use an admin user with Simple Signature (Admin), with full access to ß Signature and to the objects you request signatures from. Simple Signature saves the signed PDF as this user. It also sends the email with the signed PDF as this user, unless you set a sender address. See The sender of the emails.

  1. Open the Configure page. Click the Configuration tab.

    Open it the same way as in step 2 of Turn on the paid version. Use Lightning Experience for steps 1 to 8.

  2. Paste the site address into Site URL for Signature Requests.

    End the address with a slash, for example https://yourcompany.my.salesforce-sites.com/sign/. The label on the page says so too: include final '/'.

  3. Turn on the three options below.

    • Process Signatures in Batch Mode. Simple Signature then processes every Signature record, however it is made. TAF advises it strongly.
    • Email Requested Signature with PDF Attachment. The request email then carries the PDF to sign. The label ends with (please turn off workflow rule). The old Send Email workflow rules of Simple Signature must stay off.
    • Run PDF Automation on Save, under the automation options. Without it, the signer signs, but Simple Signature makes no signed PDF and sends no second email.

    In a new install, all three are off.

  4. Check Template VisualForce Page for PDF. Click Save Settings.

    Leave it empty to use the standard PDF of Simple Signature. To use a PDF page of your own, type its name with c__ in front, for example c__Signature_PDF. See Make a PDF page in Visualforce. Without c__, Simple Signature cannot find the page.

    Click Save Settings. Reload the page and check that your values stayed.

  5. Click the Site Configuration tab. Add a remote site, if the tab asks for one.

    Under Connected APP Configuration, leave the option on Default. A change there resets the authorization.

    The Site Configuration tab: Connected APP Configuration with the Default option ticked.

    The Authorize Site box can ask you to add your org address to the remote site settings, for example https://yourcompany.my.salesforce.com. Copy the address from the message. Open Setup. In the Quick Find box, type Remote Site Settings. Click New Remote Site. Type a name, for example SimpleSignatureSite. Paste the address into Remote Site URL. Click Save.

  6. Open External Client App Manager. Click New External Client App.

    Open Setup. In the Quick Find box, type External Client App Manager. Click it.

  7. Fill in the app as below. Then click Create.

    SectionFieldValue
    Basic InformationExternal Client App NameA name, for example Simple Signature Site. Salesforce fills in API Name.
    Basic InformationContact EmailYour email address. It is required.
    API (Enable OAuth Settings)Enable OAuthTick it.
    App SettingsCallback URL, in productionhttps://login.salesforce.com/apex/signature__SiteAccessAuthorize
    App SettingsCallback URL, in a sandboxhttps://test.salesforce.com/apex/signature__SiteAccessAuthorize
    App SettingsOAuth ScopesMove these three scopes to Selected OAuth Scopes. Manage user data via APIs (api). Manage user data via Web browsers (web). Perform requests at any time (refresh_token, offline_access).
    SecurityRequire Proof Key for Code Exchange (PKCE) extension for Supported Authorization FlowsLeave it ticked. Older guides said to untick it. Salesforce now requires it.
    Other sectionsLeave them as they are.
    The API (Enable OAuth Settings) section of the new app: Enable OAuth ticked, the callback URL and the three selected OAuth scopes.
  8. Copy the Consumer Key and the Consumer Secret.

    After Create, the app opens on its Policies tab. Click the Settings tab. Click OAuth Settings to open that section. It is closed at first. Click Consumer Key and Secret. A new browser tab opens. Salesforce sends you a code to check your identity. Type the code.

    Copy the two values into a text file. Keep them private. Anyone who has them can try to connect to your org.

    If Salesforce shows Insufficient Privileges here, see If something does not work.

  9. Switch to Salesforce Classic.

    Click your profile picture at the top right. Click Switch to Salesforce Classic.

    The authorization works only in Classic. In Lightning it can fail with no message, or with the message login.salesforce.com refused to connect.

  10. Open the Configure page in Classic. Click the Site Configuration tab.

    Classic is the older look of Salesforce. Click Setup at the top right. If a window Welcome to the Improved Setup! opens, close it. In the Quick Find box, type Installed Packages. Click Configure beside ß Simple Signature.

  11. Paste the key and the secret. Click Save Settings.

    Under External Client App Settings, paste the Consumer Key into Client Id. Paste the Consumer Secret into Client Secret. Click Save Settings.

    Always save before you authorize, also when you changed nothing.

  12. Click Authorize. Sign in and allow access.

    Sign in with the admin user from the note at the top of this chapter, if Salesforce asks. The page Allow Access? names your app and the access it asks for. Click Allow.

    After a few seconds, the page shows Date, User and Updated By above the Authorize button. No date means no authorization. Then click Authorize again. In some orgs the first click fails. Later, the date changes each time the refresh job runs.

    The Authorize Site box after the authorization: Date, User and Updated By above the Authorize button.
  13. Schedule the refresh job.

    In Schedule Refresh Job Interval (Hours), type 1. Click Schedule Refresh Job. The job renews the connection every hour. Without it, the connection can stop.

    To check the job, open Setup and type Scheduled Jobs in the Quick Find box. The page All Scheduled Jobs lists Refresh Token Job Simple Signature.

  14. Switch back to Lightning Experience.

    Click Switch to Lightning Experience at the top of the page.

Authorize the connection again

The connection can stop, for example after a Salesforce outage. The signer then sees the message Site Configuration not done.Please ask Admin to Authorize.

To fix it, do steps 9 to 12 again. Switch to Classic. Open the Site Configuration tab. Click Save Settings. Then click Authorize.

17Send a signature request Paid

Paid version only. These steps do not count in the setup progress.

A request starts when Salesforce gets a new ß Signature record with the Status Requested and an email address. Simple Signature then emails the signer a link to the site.

In this chapter you make a Request Signature button on Leads with a Salesforce action. The same steps work on Contacts and on other objects.

  1. Open Object Manager. Click Lead, then Buttons, Links, and Actions. Click New Action.

    Use Lightning Experience, with admin rights.

  2. Fill in the action as below. Then click Save.

    FieldValue
    Action TypePick Create a Record.
    Target ObjectPick ß Signature.
    LabelType Request Signature. Salesforce fills in Name.
    Success MessageType Signature Request Created.
    Other fieldsLeave them as they are.

    The page has no field for the link to the Lead. After the save, the action shows Relationship Field Lead.

  3. Put First Name, Last Name and Email on the action layout. Click Save.

    Salesforce opens the layout of the action. Drag the three fields into it. The user who sends the request sees these fields, and can change them before the save.

  4. Add the predefined field values below.

    Below the layout, find Predefined Field Values. Click New for each row. Pick the Field Name. Set the value in Specify New Field Value. Click Save.

    If New opens a blank page, go back to the action and click New again.

    Field NameValueWhat it does
    Attach PDF to Parent?TrueSaves the signed PDF on the Lead.
    Attach PDF?TrueSaves the signed PDF on the Signature record.
    Email PDF?TrueEmails the signed PDF to the signer.
    EmailLead.EmailThe address that gets the request.
    First NameLead.FirstNameThe first name of the signer.
    Last NameLead.LastNameThe last name of the signer.
    StatusRequestedStarts the request.

    Type True and the Lead fields, such as Lead.Email, in Formula Value. Show Formula Editor opens a larger editor, if you need one. For Status, pick Requested in the Specific Value list. If Formula Value then stays empty, type "Requested", with the quote marks.

    On Contacts, use Contact.Email, Contact.FirstName and Contact.LastName.

    The Request Signature action on Lead with its seven predefined field values.
  5. Add the action and two related lists to the Lead page layout.

    Click Page Layouts, then the Lead layout. In the palette, click Mobile & Lightning Actions. Drag Request Signature into Salesforce Mobile and Lightning Experience Actions. If that section asks you to override the predefined actions, click the link to do so first.

    In the palette, click Related Lists. Drag ß Signatures and Notes & Attachments into the Related Lists section, if they are not there. The requests and the signed PDFs show in them. Click Save.

  6. Open a test Lead with your own email address. Click Request Signature. Click Save.

    If the button row is full, Request Signature sits in the menu under the arrow at the end of the row.

    The action shows the name and the email of the Lead. Salesforce shows Signature Request Created.

    The new record shows in the ß Signatures related list of the Lead. Within a minute, its Status changes from Requested to Emailed.

  7. Open the request email. Open its link in a private browser window.

    A private window has no Salesforce login. It shows the page the way your signers see it. In Chrome, press Ctrl+Shift+N on Windows or Command+Shift+N on a Mac. Paste the link there.

    The email has the Subject Signature Requested and a Sign Online button. It carries the PDF to sign as an attachment. Until you make your own document, Simple Signature uses its standard PDF. To change the words, see Change the request emails.

    The sender can show as an address that ends in sfcustomeremail.com. Salesforce puts it in place of an address it cannot send from. See The sender of the emails.

    The signature request email with the Sign Online button that opens the signing page.
  8. Fill in the form. Sign. Click Save Signature.

    With Require eSignature Agreement on, the window Electronic Signature Agreement opens first. Click Agree.

    The Electronic Signature Agreement window with the Cancel and Agree buttons.
    The signing page on the site: the title, the legal text, the fields, a signature and the Save Signature button.

    After the save, the page shows You may close this page.

  9. Check the result in Salesforce.

    Open the Signature record. The Status reads Signed. The fields PDF Attached, PDF Attached to Parent and PDF Emailed show the time.

    The signed PDF sits in Notes & Attachments of the Signature and of the Lead. With Use Files instead of Attachments on, it sits in Files. The signer gets a second email with the signed PDF, with the Subject Your Signed Form.

    If the dates stay empty, see The signer signed, but no PDF comes.

    The Signature record after the request: Status Signed and the dates of each stage.

Other ways to send a request

Any process that makes a ß Signature record with these values sends a request, for example a Flow, Apex code or a data load. A signature experience can also add a request button to the form. See Request parameters for an experience.

18Change the request emails Paid

Paid version only. These steps do not count in the setup progress.

Simple Signature sends two emails. Both are Classic email templates of the app.

EmailTemplate
The request, with the Sign Online buttonEmailSignature
The email with the signed PDF, after the signatureSignatureReturn

Change their words, so the signer knows who you are and what to sign.

  1. Open Classic Email Templates. Open the folder Simple Signature. Click EmailSignature.

    Open Setup. In the Quick Find box, type Classic Email Templates. Click it. The list opens on another folder. In the folder list at the top, pick Simple Signature.

    An icon with the tip Managed - Installed marks the templates of the app.

  2. Click Edit HTML Version.

    The page says that you may only edit certain attributes of a managed template. The Subject is one of them.

  3. Change the Subject and the text. Click Save.

    Change the words around the button. Do not change the Sign Online button. It holds hidden values that open the right Signature.

    Leave in place every merge field near the button. They start with {!Signature__c.. Simple Signature needs them, for example to record when the signer opens the email.

    The request email carries the PDF to sign. Say so in the text.

  4. Go back to Classic Email Templates. Click SignatureReturn.

  5. Click Edit HTML Version. Change the Subject and the text. Click Save.

    The Subject starts as Your Signed Form: {!signature__Signature__c.signature__RequestedForm__c}. The part in braces puts in the Requested Form of the Signature. When that field is empty, the Subject ends after the colon. To fill it, add a predefined value for Requested Form to the action, for example "Release Form".

  6. Send a test request. Check both emails.

    Follow steps 6 to 9 of Send a signature request.

The Email Templates tab of the Configure page

The tab lists these templates and others. For EmailSignature and SignatureReturn, Go to Edit opens a page that says you can't edit a template from a managed package. Use Classic Email Templates, as above. In TAF's test, a change to the Signature Request row did not change the request email.

19More request options Paid

Paid version only. These steps do not count in the setup progress.

These options serve special cases. Read them, and set up only what your process needs.

Request settings on the Configuration tab

OptionWhat it does
Run PDF Automation on SaveMakes the PDF when the form is signed.
Attach PDF After SignatureSaves the PDF on the Signature record.
Attach PDF on Parent Record After signatureSaves the PDF on the parent record of the Signature.
Attach PDF on Contact Record If Not ParentAlso saves the PDF on the Contact of the Signature, when the Contact is not the parent.
Email PDF to Contact After SignatureEmails the PDF to the signer.
Use Files instead of AttachmentsSaves the signature pictures and the PDFs in Files, not in Notes & Attachments. Salesforce then shows the files in both lists.
Turn Off EmailsStops all emails, except to the addresses and domains on the Whitelist. When it is off, all emails go, except to the Blacklist.
Blacklist and Whitelist Emails/DomainsThe addresses or domains for Turn Off Emails.
Default Signature Request Send Email (Uses Org-Wide Email)One address that sends the requests and the signed PDFs. See the next section.
CC Record Owner When Emailing Signed PDFCopies the user who made the request on the email with the signed PDF.
CC Record Owner's Role Hierarchy When Emailing Signed PDFAlso copies the manager of that user, the manager's manager, and so on.
CC Other Email Address When Emailing Signed PDFCopies one fixed address.
BCC Record Owner's Email to Salesforce When Emailing Signed PDFLogs the email in the activity history, when the user has Email to Salesforce on.
Send Email to Partner, Partner Email AddressOnly with TAF support, for orgs where TAF hosts the requests, for example Professional Edition.

The Attach and Email options are defaults. The fields Attach PDF?, Attach PDF to Parent? and Email PDF? on a Signature record change them for that record.

The sender of the emails

The request email comes from the user who sends the request. The email with the signed PDF comes from the user who authorized the site. To send both from a known address, use one of these ways.

  • Type one address in Default Signature Request Send Email on the Configuration tab. The address must be a verified Organization-Wide Email Address.
  • Or make a verified Organization-Wide Email Address for each user who sends requests. Both emails then come from that user. For a user with no such address, Simple Signature uses the default address, then the user who authorized the site.

To add an address, open Setup and type Organization-Wide Addresses in the Quick Find box. Salesforce sends a verification email to the new address.

If an email comes from an address that ends in sfcustomeremail.com, Salesforce could not send it from the user's own address. This happens when your email domain is not set up for email from Salesforce. A verified Organization-Wide Email Address, and the email authentication in the next section, fix it.

Emails that look like spam

Email programs can mark Salesforce email from your domain as unsafe, with a warning such as Be careful with this message. To stop this, your email admin must let Salesforce send email for your domain. This setup is called email authentication, for example SPF and DKIM. Ask your Salesforce partner, or open a case and TAF points you to help.

Request parameters for an experience

A signature experience can send requests too. Add these parameters to the experience. See Build a signature experience.

ParameterWhat it does
allowrequestAdds a button to the form that sends a signature request. Pick In-Person Signature, Signature Request Only, or Signature Request and In-Person Signature.
embedpdfShows the PDF above the form, so the signer can read it before the signature.
generateqrcodeMakes a QR code for the request and shows it in the window. The signer scans it with a phone to open the signing page.
multistepMakes a Step record with the request. See More than one signer.
emailtemplaterequestThe Name, not the label, of the email template for the request.
emailtemplatecompletionThe Name of the email template for the email with the signed PDF.
nosignatureLets the signer submit the form with no signature.
rurlThe page on the site that opens after the signature, for example a thank-you page.
requestedpdfnameThe file name of the signed PDF. It can hold fields, for example {!Contact.Name}_Release.

A form in a Lightning component does not work offline in the Salesforce mobile app. An action does.

More than one signer

A request can collect signatures from several people, one after the other or at the same time. Each signer gets a Step record, a child of the Signature.

  1. Turn on MultiStep for the request.

    On an action or in a Flow, set the field signature__MultipleSteps__c to True. In an experience, tick the parameter multistep.

  2. Check the first Step.

    Simple Signature makes the first Step record, with Order 1, when it makes the Signature. Requests with steps use the email template ESignMutliContact, not the regular request template. The name has this typo on screen.

  3. Build a Flow that makes the other Steps.

    Start the Flow when a Step record with Order 1 is made. Make one Step record for each other signer, with these fields.

    FieldValue
    First NameThe first name of the signer. The email can show it.
    Last NameThe last name of the signer.
    EmailThe address that gets the request.
    Order2, 3, 4 and so on. The order of the requests.
    Email TemplateThe unique name of an email template, if you do not use ESignMutliContact. Then also set emailtemplatecompletion in the experience.
    StatusRequested
    Wait On Prior StepTrue sends the request only after the step before it is Signed. False sends it at the same time.

    Save the Flow. Activate it.

  4. Copy the signatures to the Signature record, if the PDF shows them.

    When all Steps are Signed, the Status of the Signature changes to Signed, and Simple Signature makes the PDF. Step 1 copies its date and its signature to the Signature. For the other steps, make your own fields on ß Signature, for example a Rich Text field SignatureImage2__c, a field SignatureDate2__c and a field SignatureName2__c.

    Then build a Flow on Step. Start it when the Status of a Step with Order 2 changes to Signed. Copy these values. Do the same for Order 3 and higher.

    Signature fieldValue from the Step
    SignatureImage2__csignature__SignatureImage__c
    SignatureDate2__csignature__Signed__c
    SignatureName2__csignature__Firstname__c, a space and signature__LastName__c

    A developer can also read the signatures from the Steps in Apex code for a Visualforce PDF.

Check who signed

People question electronic signatures more often than paper ones. These fields help you check that the right person signed. They cannot prove it.

FieldWhat it does
Signature MFAA code that the signer must type before the form shows. Fill it in with a Flow or a trigger. Give the code to the signer another way, for example by phone.
Expiration DateA date in the future. After it, the request is no longer valid.
Digital FingerprintA 32-character value for the device of the signer, saved at the signature. Two signatures with the same value came from the same device. The component fingerPrintInformation shows the details on a Signature page.
Actual Signed IP, Actual Signed IP InfoThe IP address of the signer, and its location when Simple Signature can find it.
Actual Signed LocationThe latitude and longitude of the signer, when the device gives them.

These formulas make the values easier to read. Make each one as a Text formula field on ß Signature.

A link to the details of the IP address

if ( not ( isblank ( signature__IPWhenSigned__c ) ), signature__IPWhenSigned__c & " " &
HYPERLINK("https://ipapi.co/"+signature__IPWhenSigned__c+"/json/", "info","_blank"), "" )

A link to a map of the location

if ( not ( isblank ( signature__ActualSignedLocation__Latitude__s ) ),
text( signature__ActualSignedLocation__Latitude__s )+" "+text(
signature__ActualSignedLocation__Longitude__s ) + " " +
HYPERLINK("http://www.google.com/maps/place/"+text(
signature__ActualSignedLocation__Latitude__s )+","+text(
signature__ActualSignedLocation__Longitude__s ), "map","_blank"), "" )

The time from the request email to the signature

if( if( isblank ( signature__ActualSignedTimestamp__c ), Now(),
signature__ActualSignedTimestamp__c ) - if ( isblank ( signature__Emailed__c ),
CreatedDate, signature__Emailed__c ) > 0 , "D:"
& TEXT( FLOOR( if ( isblank ( signature__ActualSignedTimestamp__c ), Now(),
signature__ActualSignedTimestamp__c ) - if ( isblank ( signature__Emailed__c ),
CreatedDate, signature__Emailed__c ) ) ) & " H:"
& RIGHT( "0" & TEXT( FLOOR( MOD( ( if ( isblank ( signature__ActualSignedTimestamp__c ),
Now(), signature__ActualSignedTimestamp__c ) - if ( isblank ( signature__Emailed__c ),
CreatedDate, signature__Emailed__c ) ) * 24, 24 ) ) ),2) & " M:"
& RIGHT( "0" & TEXT( ROUND( MOD( ( if ( isblank ( signature__ActualSignedTimestamp__c ),
Now(), signature__ActualSignedTimestamp__c ) - if ( isblank ( signature__Emailed__c ),
CreatedDate, signature__Emailed__c ) ) * 24 * 60, 60 ), 0 ) ),2), "")

The last formula shows days, hours and minutes, for example D:0 H:02 M:15. A blank or strange value needs a check. You can change it to count only days or hours, and then set a limit on the time to sign.

Hide the record ID in the link

The request link holds the ID of the Signature record. A signer who changes the ID could open another request, if the site shares too much. To hide the ID, Simple Signature can put a random 32-character path in the link.

  1. Copy the body of your request email.

    On the Email Templates tab, click View beside the request template you use, EmailSignature at first. Select the whole body, with the button. Copy it. Close the window.

  2. Click New. Fill in the template. Paste the body. Click Save.

    Fill in Label, Name and Subject. Description is optional. Tick Active. Keep the Name for step 5. Expand HTML Body. Paste the body. Click Save.

  3. Change the link in the code of the new template.

    Click Edit beside the new template. Expand HTML Body. Click the code button </>. Find the two links of the button, data-cke-saved-href and href. Replace the value inside the quote marks of both with this text. Remove any fixed web address in front of it.

    {!signature__Signature__c.signature__SiteURL__c}/{!signature__Signature__c.signature__Signature_Path__c}

    Click Save.

  4. Check that the site uses signatureURLRewriter.

    You set it in step 2 of Set up the signature site.

  5. Make the request use the new template.

    Open the Request Signature action. Under Predefined Field Values, click New. Pick Email Template (Request). Type the Name of the new template in quote marks, for example "Secure_Request". Click Save.

    For an experience, use the parameter emailtemplaterequest.

  6. Send a test request.

    The link in the email now ends with a random path, not with ?id= and the record ID.

Countersignature

A user can save a signature once. Simple Signature then adds it to the PDF after the signer signs, as a countersignature.

  1. Make a Files library named Simple Signature.

    In the App Launcher, type Files. Click Files. Click Libraries. If no library named Simple Signature exists, click New Library. Type Simple Signature. Click Save.

  2. Add the users who countersign to the library.

    Open the library. Click Manage Members. Add the users. For many users, add a public group.

  3. Each user saves a signature on the User Signature page.

    In the App Launcher, the user types User Signature, opens it and signs.

  4. Add the countersignature to the PDF template.

    In a Google Docs template, use the merge code <ß>User.LibrarySignature-300</ß>. See Merge codes for Google Docs.

Experience Cloud users need the permission Access Libraries for User Signature. It is off at first.

Your own signing page

The standard page SiteSignature serves most orgs. To change more than a few fields, a developer can start from a copy of it.

  • Open Setup. In the Quick Find box, type Visualforce Pages. Click New. Type a Label and a Name. Delete the code in the page.
  • Copy the code of Custom_SiteSignature from the pages folder of the sample code on GitHub, from <apex:page to </apex:page>. Paste it. Click Save.
  • In the list of Visualforce pages, click Security beside the new page. Give access to the profiles that use Simple Signature. Click Save.
  • Edit your signature site. In Active Site Home Page, pick the new page. Click Save.

TAF can write the page for you at its hourly rate. Open a case.

20Check two Salesforce settings for PDF documents Paid

Paid version only. These steps do not count in the setup progress.

PDF documents need two Salesforce settings. Each one changes the whole org. Ask the admin who looks after security settings before you change them.

  1. Untick Adopt updated CSP directives.

    Open Setup. In the Quick Find box, type Session Settings. Click Session Settings. Untick Adopt updated CSP directives. Click Save.

    Reload the page. Check that the box stays unticked. If it is ticked again, untick it and save again.

    With it ticked, some browsers cannot edit or preview Google Docs templates inside Salesforce.

  2. Set .pdf files to Execute in Browser.

    Open Setup. In the Quick Find box, type File Upload and Download Security. Click it. Click Edit. In the row for .pdf, set the download behavior to Execute in Browser. Click Save.

    The signing page can then show the PDF to sign. With another value, the browser downloads the PDF.

21Make a PDF template in Google Docs Paid

Paid version only. These steps do not count in the setup progress.

A Google Docs template is a Google document with merge codes in it. Simple Signature fills in the Salesforce data and the signature, and saves the result as a PDF. TAF advises Google Docs for most orgs. A free Google account works too.

Use a standard Salesforce user

A user with a Salesforce Platform license cannot connect Simple Signature to Google.

  1. Switch to Salesforce Classic. Open the Configure page.

    Click your profile picture at the top right. Click Switch to Salesforce Classic. Click Setup. In the Quick Find box, type Installed Packages. Click Configure beside ß Simple Signature.

    The Google connection works only in Classic, the same as the site authorization.

  2. Click the Google Docs Configuration tab. Add the remote sites, if the tab asks for them.

    If a message lists remote sites, add each one in Remote Site Settings, the same way as step 5 of Connect the site.

  3. Open Google APP. Check the setting.

    Under Template Configuration, click Google APP to open it. Native is ticked and Web Configuration is not. This is the setting at first. Change nothing.

  4. Click Authenticate. Sign in to Google. Paste the code. Click Submit.

    Under Authorize Google, click Authenticate. Sign in to the Google account that keeps your templates. Accept the permissions. Google then shows a code. Copy it.

    Back in Salesforce, paste the code into Authorization Code. Click Submit.

    The section then shows a Revoke button. The connection works. Do not click Revoke now. Click it only to connect again, for example in a sandbox. See step 8 of Set up a sandbox made from production.

    The Google Docs Configuration tab after the connection, with the Revoke button.
  5. Switch back to Lightning Experience. Open ß Templates. Click New.

    In the App Launcher, type Templates. Click ß Templates.

  6. Pick Google Docs. Click Next. Pick Create New Template. Click Next.

    The two screens are Document Platform and Choose Template.

  7. Fill in the template as below. Then click Save.

    FieldValue
    NameAny name. Simple Signature does not use it in code.
    Google IdLeave it empty. To start from a Google document you have, paste its ID from its web address.
    Copy TemplateA + button. Leave it as it is. Use it only with a Google Id.
    Object NamePick ß Signature. For a document that nobody signs, pick another object.
    User Permission TypePick Any one with link. Other Salesforce users can then use the template.
    Action Permission TypePick writer. Other Salesforce users can then edit it. Pick another value to keep the editing to yourself.
    The new ß Template for Google Docs: a Name, the Object Name ß Signature, and the User and Action Permission Types.
  8. Click Edit Google Doc. Write the document.

    Google Docs opens inside the Salesforce page. Write the text, and add tables and pictures as you need.

    Simple Signature cannot merge a Microsoft Word file. To use one, open it in Google Docs. Click File, then Save as Google Docs.

  9. Add Salesforce data with merge codes.

    Click Show Fields. Browse to a field or a related list. Copy its merge code. Paste it into the document. Other buttons add the signature image and a time stamp of the merge.

    Show Fields keeps your last search. Clear the search box before you look for the next field. If a window is wider than the screen, zoom the browser out to reach its buttons.

    See Merge codes for Google Docs below.

    A template in Google Docs with merge codes for the name, the date and the signature.
  10. Copy the ID of the template. Add it to your request.

    Click Back. Copy the ID of the template from the address bar of the browser. It has 18 characters, for example a0Qhm000001oVZVEA2.

    For an experience, add the parameter templates with the ID as its value. For the Request Signature action, add a predefined value for Templates. Type the ID in quote marks. See step 4 of Send a signature request.

    Pick Templates in the Field Name list with the mouse. The Enter key there saves the form, with an error.

    Several templates can go in one value, with commas between their IDs.

  11. Send a test request. Open the signed PDF.

    Follow steps 6 to 9 of Send a signature request. The request email carries the PDF to sign.

    After the signature, open the signed PDF in Notes & Attachments of the Signature or of the Lead. It has the Name of the template. It shows your data and the signature.

    A signed PDF from the Google Docs template: the Salesforce data, the date and the signature.

Merge codes for Google Docs

Start with a merge code from Show Fields. Then add options and filters as below. A merge code starts with <ß> and ends with </ß>.

What it showsMerge code
The first name of the signer<ß>signature__Name__c</ß>
The last name of the signer<ß>signature__Name_2__c</ß>
The email of the signer<ß>signature__Email__c</ß>
The signature image, 300 pixels wide<ß>signature__Signature__c-300</ß>
The signature image, only when the Status is Signed<ß>signature__Signature__c-300%<signature__Signature__c><signature__Status__c><Signed></ß>
The countersignature of the user<ß>User.LibrarySignature-300</ß>
The countersignature, only when the Status is Signed<ß>User.LibrarySignature-300%<signature__Signature__c><signature__Status__c><Signed></ß>
A signature from a Rich Text field on the user<ß>User.User_Signature__c-300%<User><IsActive><true></ß>
The signature date, United States format<ß>signature__Date__c-<en-US></ß>
The signature date, India format<ß>signature__Date__c-<hi-IN></ß>
5 days after today, United States format<ß>system.today<day#5><en-US></ß>
5 days before today, India format<ß>system.today<day-5><hi-IN></ß>
6 days after now, with the time, United States format<ß>system.now<day#6><en-US></ß>
The signature date, only when the First Name is Testing<ß>signature__Date__c-<en-US>%<signature__Signature__c><signature__Name__c><Testing></ß>

A filter follows the % sign: the object, the field and the value, each in angle brackets.

Dates, numbers and money

Show Fields adds format tags to date, money, number and location fields: -<LOCALE><CURRENCY>. With more than one tag, put the format tags first, then the filter tags, then the sort tags. Only the first tag starts with a dash. For example:

<ß>signature__Opportunity__r.OpportunityLineItems.TotalPrice-<en-US><USD><#FIL-DEC-3600><#SORT-UP></ß>

To show all the decimals of a number, put a format just before </ß>, for example:

<ß>signature__ActualSignedLocation__Latitude__s-<en-US>#0.00000000#</ß>

Lists of related records

A template can list child records, for example the products of an Opportunity. Show Fields offers two ways. The related list itself gives a table with no format and no filter. TAF does not advise it. Use the second way:

  • In Show Fields, click the object name with the > sign, for example Opportunity >. The list shows the merge codes of its fields.
  • In Google Docs, click Insert, then Table. Make a table two rows high, with a column for each field.
  • Type the column titles in the first row. Paste a merge code into each cell of the second row.

To sort the table, add a sort tag at the end of one cell, once per table: -<#SORT-UP> or -<#SORT-DOWN>. The dash goes in only when it is the first tag in the cell.

To filter the table, add a filter tag at the end of one cell: -<#FIL-TYPE-OPERATOR-VALUE>. TYPE is DEC for decimal numbers, INT for whole numbers, BOL for checkboxes, STR for text, DT for dates or DTT for date and time. VALUE is optional. Without it, the filter compares with a blank value. For dates, TODAY and YESTERDAY also work.

OperatorMeaningWorks withExample
EQequalcheckbox, text, date, number<#FIL-STR-EQ-Sample>
NEQnot equalcheckbox, text, date, number<#FIL-STR-NEQ-Sample>
GRgreater thantext, date, number<#FIL-DEC-GR-100>
LSless thantext, date, number<#FIL-DEC-LS-100>
GREQgreater than or equaltext, date, number<#FIL-DEC-GREQ-100>
LSEQless than or equaltext, date, number<#FIL-DEC-LSEQ-100>
STWHstarts withtext<#FIL-STR-STWH-Sample>
ENWHends withtext<#FIL-STR-ENWH-Sample>
CTNScontainstext<#FIL-STR-CTNS-Sample>

Sections that show or hide

A checkbox field can show or hide a part of the document. Put a start tag before the part, with the checkbox field. When the field is True, the part shows. Put an end tag after the part.

<ß>CONDITIONSTART<Display__c><true></ß>

<ß>CONDITIONEND</ß>

Document parameters for an experience

Add these parameters to a signature experience. See Build a signature experience.

ParameterWhat it does
templatesThe ID of one or more templates, with commas between them. Simple Signature makes the PDF from them, before and after the signature.
pdftemplateThe name of a Visualforce PDF page, with c__ in front.
attachpdfSaves the PDF on the Signature record.
attachpdftoparentSaves the PDF on the parent record.
emailpdfEmails the PDF to the Contact of the Signature.
embedpdfShows the PDF above the form, so the signer can read it first.
requestedpdfnameThe file name of the PDF. It can hold fields, for example {!Contact.Name}_Release.
requestedpdfnamepreviewAlso names the preview PDF in the request email, with _Preview at the end. Google Docs only.
deletesigantureafterDeletes the picture of the signature after Simple Signature makes the PDF. The parameter name has this typo.

22Make a PDF page in Visualforce Paid

Paid version only. These steps do not count in the setup progress.

Use a Visualforce page if you do not use Google Docs. Most Visualforce pages need a developer, because each design is different. TAF builds pages at its hourly rate. Email [email protected].

The pages folder of the sample code on GitHub holds these pages to start from, among others. Their file names end in .html, but they hold Visualforce code.

PageWhat it is
SamplePDF_v2A copy of the standard PDF page of Simple Signature, BasicSignaturePDF. Change the logo and the layout as you need.
SampleAgreementPDFA simple PDF laid out like a legal document, for example a non-disclosure agreement.
SampleOpportunityPDFA quote from an Opportunity, with its product lines. It needs an Apex controller. See below.
SampleOpportunityPDF_noControllerThe same quote, with no controller.
SampleQuotePDFA quote from a Quote, with its lines. It needs an Apex controller. See below.
CustomEmbeddedSignatureNot a PDF. A page for the Signature page layout, in place of the standard one.
CustomSignature_hardcodedNot a PDF. A signing page for in-person signatures inside Salesforce.
Custom_SiteSignatureNot a PDF. A signing page for requests on the site. See Your own signing page.
  1. Open Visualforce Pages. Click New.

    Open Setup. In the Quick Find box, type Visualforce Pages. Click Visualforce Pages. If you see no New button, ask your admin for the right to make pages.

  2. Type a Label and a Name. Delete the code in the page.

    For example, Label Signature PDF and Name Signature_PDF. The Name can fill in by itself, with spaces. A Name takes no spaces, so type an underscore in place of each one.

  3. Paste the code of a sample page. Click Save.

    On GitHub, open the page in the pages folder, for example SamplePDF_v2. Click Raw to see the code without the line numbers. Copy all the code, from <apex:page to </apex:page>. Paste it into Visualforce Markup.

  4. Give the profiles access to the page.

    In the list of Visualforce pages, click Security beside the new page. Add all the profiles, or at least the profiles of the users who work with Simple Signature. Click Save.

  5. Make Simple Signature use the page.

    Use the page name with c__ in front, for example c__Signature_PDF. Without c__, Simple Signature cannot find the page.

    ForWhere to put it
    All signaturesTemplate VisualForce Page for PDF on the Configuration tab. See step 4 of Connect the site.
    One experienceThe parameter pdftemplate. See Document parameters for an experience.
    One request actionA predefined value for PDF Template, in quote marks.
  6. Send a test request. Open the signed PDF.

    Follow steps 6 to 9 of Send a signature request. The signed PDF in Notes & Attachments of the Signature now uses your page.

    If no signed PDF comes, see The signer signed, but no PDF comes.

    A signed PDF from a page made from SamplePDF_v2: the fields and the signature.

The Opportunity and Quote samples

These two samples need an Apex class, so make them in a sandbox and deploy them to production. Production does not let you write Apex directly.

  • Open Setup. In the Quick Find box, type Static Resources. Click New. Name it sampleinvoice. Pick the file SampleInvoice.zip from the resources folder on GitHub. Set Cache Control to Public. Click Save.
  • Open Apex Classes. Click New. Paste the code of SampleOpportunityPDFController or SampleQuotePDFController from the classes folder on GitHub. Click Save.
  • Make one more class with the matching test class from the same folder. Salesforce needs it for the deploy to production.
  • Make the page as in steps 1 to 5 above, with the code of SampleOpportunityPDF or SampleQuotePDF.

Other document apps

Simple Signature can also work with a document app such as Salesforce CPQ, S-Docs, Conga Composer or Nintex DocGen. This way needs a lot of technical work, so TAF advises Google Docs. Open a case if you need help.

If the app reads values from one object only, copy the signature to that object:

  • On that object, make a Rich Text Area field SignatureImage__c and a checkbox field Signed__c.
  • On ß Signature, make a lookup field to that object, if none exists.
  • Build a Flow on ß Signature. When the Status changes to Signed, copy the Signature field, and the Date field if you need it, to the object.
  • Put the new image field into the template of your document app.

A person who knows your document app then does the rest:

  • Build a trigger that makes a Signature request from each new document. Start from CreateSignatureOnAttachments or CreateSignatureOnFile in the triggers folder on GitHub. Both expect a parent object named Quote__c. Change it to yours.
  • When the Signature is Signed, make the document again, with a Flow or a trigger. The new document holds the signature.

23Show the PDF in a Flow before the signature Paid

Paid version only. These steps do not count in the setup progress.

This screen Flow makes the Signature first. It waits for the PDF from a Google Docs template and shows it. Then it shows the form. The example starts from a Lead.

Before you start

Make a Google Docs template. Then add the parameter templates with its ID to the experience that this Flow uses. See Make a PDF template in Google Docs.

  1. Make a new Screen Flow.

    Do it the same way as in step 1 of Take signatures in a Flow.

  2. Make a variable named recordId.

    Click the Toolbox icon. Click Manager, then New Resource. Pick Variable. In API Name, type recordId, with exactly this case. Pick Text as the Data Type. Tick Available for input and Available for output. Click Done.

  3. Add a Get Records element for the Lead.

    Click the + on the line. Click Get Records. Type a Label. Pick Lead as the object. Add one filter: Lead ID Equals recordId. Leave the other settings as they are.

  4. Add a screen that tells the user what happens.

    Add a Screen. Type a Label. Drag Display Text onto it. Type an API Name for it, for example IntroText. Type the text, for example We are making your document. Then you can read it and sign.

  5. Add a Create Records element for the Signature.

    Type a Label. Pick Manually for how to set the field values. It starts on another choice. Pick ß Signature as the object. A search for Signature can show other objects first. Click Add Field for each row:

    FieldValue
    LeadThe variable recordId.
    Experience IDYour Experience ID.
    First Name, Last Name, EmailThe matching Lead fields, from the Get Records element.
    Attach PDF?{!$GlobalConstant.True}
    Embed PDF?{!$GlobalConstant.True}
    StatusRequested
    TemplatesThe ID of your template, the same as in the experience.
    Send TypeNone

    To also save the PDF on the Lead and email it, add Attach PDF to Parent? and Email PDF? with {!$GlobalConstant.True}.

  6. Add a screen with Simple Signature Wait.

    Add a Screen. Type a Label. Drag Simple Signature Wait onto it. Fill in its settings:

    SettingValue
    API NameA name, for example WaitPreview.
    Signature IdPick the Create Records element, then Record ID.
    Step IdLeave it empty. It serves signatures with steps.
    TypePreview. Final waits for the signed PDF instead.
  7. Add a screen with Simple Signature Preview. This step is optional.

    Add a Screen. Drag Simple Signature Preview onto it. In FileId, pick the Wait element, then fileId. Click Done.

  8. Add a screen with Simple Signature Form.

    Add a Screen. Open Configure Footer and untick Show Footer. Drag Simple Signature Form onto it. Fill in its settings:

    SettingValue
    Experience IDYour Experience ID.
    Parent IDThe variable recordId.
    Other ParametersType id= and the ID of the record from the Create Records element, for example id={!Create_Signature.Id}. Without it, the Flow makes a second Signature.
    StyleOptional.

    To show the PDF above the form, add &showattachmentid= and the fileId of the Wait element, for example id={!Create_Signature.Id}&showattachmentid={!WaitPreview.fileId}.

  9. Show the signed PDF too, if you want.

    Repeat steps 6 and 7 after the form, with Final as the Type.

  10. Save the Flow. Activate it.

    The finished Flow in Flow Builder: Get Records, the first screen, Create Records, and the Wait, Preview and Form screens.
  11. Make a Flow action on Lead. Add it to the page layout.

    Open Object Manager. Click Lead, then Buttons, Links, and Actions. Click New Action. Pick Flow as the Action Type. Pick your Flow. Type a Label. Click Save.

    Add the action to the Lead page layout, the same way as in step 5 of Send a signature request.

  12. Open a test Lead. Start the Flow from the action.

    The Flow does not run from Flow Builder. Start it from a Lead in Lightning Experience.

    The Flow makes the Signature and waits for the PDF. A spinner shows while it waits, for up to a minute. Then the PDF shows. Click Next. If the first click only zooms the PDF, click Next again.

    With Require eSignature Agreement on, the agreement window opens before the form.

    The Flow window with the PDF from the Google Docs template, before the form.

24Send reminders and clean up old requests Paid

Paid version only. These steps do not count in the setup progress.

Maintenance rules act on old signature requests on a schedule. One scheduled job runs all the rules each time.

TypeWhat it does
Re-requestSends the request again, the same as a new request. Any progress is lost, for example a click on the Sign Online button.
NotificationSends a reminder. The Status does not change.
DeletionDeletes the Signature records. Use it for old requests that nobody signed, or for signed requests you no longer need.
Clean UpDeletes the records that a Signature no longer needs: process records, preview PDFs in Files, and private values such as a password.

Check every rule before you schedule the job

The job can email many signers at once, or delete records that you cannot get back. TAF advises that its support team checks your rules the first time. Open a case.

  1. Open the Configure page. Click the Maintenance tab.

    Open it the same way as in step 2 of Turn on the paid version.

  2. Click New Maintenance Rule. Fill in the rule as below.

    FieldValue
    NameA name that says what the rule does, for example Reminder after 3 days.
    TypeDeletion, Clean Up, Re-request or Notification. See the table above.
    StatusThe rule acts only on Signatures with this Status: Requested, Emailed, Viewed, Clicked, Approved or Signed. For more than one Status, make one rule for each. Deletion and Clean Up mostly use Signed. The other types use earlier statuses.
    DaysThe rule acts on a Signature that stays in that Status for more than this number of days. For example, with Status Emailed and 3 Days, the rule acts on day 4 on each request that nobody viewed, clicked or signed. With 0, it acts from the next day.
    Request FormOptional. Pick a value of Requested Form from the list. The rule then acts only on those Signatures. Use it when you have more than one request process.
    Email TemplateOnly Re-request and Notification use it. Pick the email template to send. The list holds every email template in the org. Leave it empty to send the standard request email.
    CC Record OwnerOnly Re-request and Notification use it. Copies the owner of the Signature, mostly the user who made the request.
    CC Record Owner's Role HierarchyOnly Re-request and Notification use it. Also copies the managers above the owner, maybe several levels up. Use it with care.
    BCC Record Owner's Email to SalesforceOnly Re-request and Notification use it. Logs the email on the record. The owner must first set up My Email to Salesforce, under My Settings, then Email.

    Under Type, the window shows a Maintenance Rule Description. It fills in by itself, for example Includes all Signatures in emailed Status more than 3 days since Emailed. Read it to check the rule.

    A new maintenance rule with a Name, the Type Notification, the Status Emailed and a number of Days.
  3. Click Save. Make the other rules you need.

    The window closes with no message. The Maintenance tab lists each rule with its Name, Days, Type and Status, and the links Edit and Delete.

  4. Open Apex Classes. Click Schedule Apex.

    Open Setup. In the Quick Find box, type Apex Classes. Click Apex Classes. Click Schedule Apex.

  5. Fill in the job. Click Save.

    Type a Job Name, for example Simple Signature Maintenance. In Apex Class, type SignatureCleanupScheduler, or pick it with the lookup icon.

    To run the job every day, leave Weekly on and tick every day. End starts one month ahead. The job stops after that date, so set it far ahead. Pick Preferred Start Time with the mouse. The Enter key in that list saves the form.

    The Schedule Apex page for SignatureCleanupScheduler, with every day ticked and a start time.
  6. Check the job.

    Open Setup. In the Quick Find box, type Scheduled Jobs. The list shows your job and its next run.

25Print a backup of all signatures Paid

Paid version only. These steps do not count in the setup progress.

The Signature Report makes one PDF, with each signature on its own page. Use it as a backup. It is basic, and it is not made for clients.

  1. Open the Signature Report.

    Click the App Launcher at the top left. Type Signature Report. Under Items, click ß Signature Report.

  2. Set the Report Options. Click Run Report.

    OptionWhat it does
    Start Date, End DateThe dates of the Signatures to put in the PDF.
    Requested FormOptional. Only Signatures with this Requested Form.
    Only Completed SignaturesOnly signed forms. On at first.
    Include Legal TextAdds the legal text of each form. On at first.
    Include Chatter, Include Images, Stretch ImagesAdd more to each page. Off at first.

    Click Run Report. The PDF opens in a new tab, with one signature on each page.

    The Signature Report with its Report Options and the Run Report button.

26Set up a sandbox made from production Paid

Paid version only. These steps do not count in the setup progress.

A sandbox made or refreshed from production holds most of the setup of Simple Signature. Do the steps below there. In a sandbox where you install Simple Signature yourself, follow the whole guide instead.

  1. Switch to Salesforce Classic.

    Some of these steps can fail in Lightning. See step 9 of Connect the site.

  2. Copy the address of the signature site.

    Open Setup. In the Quick Find box, type Sites. Click Sites. Click the Site URL of your signature site. The site opens in a new tab. Copy its address.

  3. Paste it into Site URL for Signature Requests.

    Open the Configure page. Click the Configuration tab. Paste the address into Site URL for Signature Requests. End it with a slash.

  4. Decide about Turn Off Emails.

    A sandbox can hold the email addresses of real customers, mostly a Full or Partial Copy sandbox. Then keep Turn Off Emails ticked, and put your own test addresses on the Whitelist. Emails then go to those addresses only.

    To add an address, click Blacklist and Whitelist Emails/Domains. Type a Name and the address in Entry. Pick Whitelist as the Type. Click Add.

    Untick Turn Off Emails only when the sandbox must send all emails, and it holds no real address. Maintenance rules and large tests can send many emails.

  5. Click Save Settings.

  6. Click the Site Configuration tab. Add the remote site it asks for.

    The tab can show a message about the remote site settings, with an address under To Enable Site Access. Copy that address. Add it as a new remote site, as in step 5 of Connect the site. Tick Active.

  7. Authorize the site again.

    Do it as in Authorize the connection again. Salesforce can ask you to sign in to the sandbox again. If it fails, see Authorize does not work.

  8. Connect Google Docs again, if you use it.

    Click the Google Docs Configuration tab. Click Revoke. A window asks you to sign in to Google. Pick the account that owns your template documents. Accept the permissions. Copy the code. Paste it into Authorization Code. Click Submit.

    The tab shows no message after this. The Revoke button shows again.

  9. Make the templates again, in a Developer sandbox.

    A Developer or Developer Pro sandbox has no data from production, so it has no ß Templates. A Full or Partial Copy sandbox has them. Skip this step there.

    Do this step in Lightning Experience. In Classic, New opens a plain form with no Google Docs choice. For each template in production:

    • In production, open the template. Copy its Google Doc Id.
    • In the sandbox, open ß Templates. Click New. Pick Google Docs. Click Next. Pick Create New Template. Click Next.
    • Paste the Google Id. Fill in the other fields the same as in production. Leave Copy Template as it is. Click Save.
    • Copy the ID of the new template from the address bar. Put it in place of the production ID in your actions and experiences. See step 10 of Make a PDF template in Google Docs.

    Both orgs then use the same Google document. A change that you make from the sandbox also changes the PDF in production.

  10. Set the email Access level to All email.

    Open Setup. In the Quick Find box, type Deliverability. Set Access level to All email. Click Save. A new sandbox starts with System email only.

27Move your setup from a sandbox to production Paid

Paid version only. These steps do not count in the setup progress.

A change set cannot carry most of the setup of Simple Signature. Do these steps in production by hand.

  1. Install Simple Signature in production.

    Install it from the AppExchange, as in Install Simple Signature. TAF support can also send you an install link.

  2. Check that both orgs run the same version.

    The version shows at the bottom right of the Configure page, and in Installed Packages. If the versions differ, ask TAF support to push the new version to production, or for a link to do it yourself. See Update Simple Signature.

  3. Turn on the paid version in production.

    Each org needs its own Upgrade Key. See Turn on the paid version.

  4. Set up the signature site and its connection, if you use requests.

    Do Set up the signature site and Connect the site to Simple Signature in production.

  5. Connect Google Docs, if you use it.

    Do steps 1 to 4 of Make a PDF template in Google Docs in production.

  6. Set the Configuration tab the same as in the sandbox.

    Type each value again. Click Save Settings. Only Site URL for Signature Requests is different: use the address of the production site.

  7. Move the experiences with Export and Import.

    In the sandbox, open the Experiences tab. Click Export. The browser downloads Experience.csv, with all your experiences.

    In production, open the Experiences tab. Click Import. Under Upload Files, pick the file. Click Upload. The window shows the columns of the file. For each column, pick the matching Field and a Field Type: Experience for Experience Name and Description, Parameter for the others. Click Save.

    Then check each experience:

    • Each experience gets a new Experience ID in production. Change it everywhere you typed it, for example in the Sign button component, on record pages and in Flows.
    • Import does not keep values with commas. Check the parameters fieldreadonly, hideblankfields, templates and submissiontype. Type their values again.

    If the import fails, see Import of experiences fails.

  8. Move your own changes.

    Make them again in production, or deploy them with a change set: your own fields, Visualforce pages, Lightning components, actions and Flows. TAF support can help with the deploy.

28If something does not work

The form shows an error when it opens

Check that Lightning Web Security is on. See Check one Salesforce setting.

No Sign button on the record

Check that Sign sits in the actions of the page layout. See step 5 of Add the Sign button. Also check that the user has Simple Signature (User) or Simple Signature (Admin).

If the record page uses Dynamic Actions, the page layout does not decide its buttons. Open the page in the Lightning App Builder, click the highlights panel at the top, and add Sign there.

The form shows the title Salesforce.com, Inc. Release Form

The user works in a language with no override. Add one for that language. See step 5 of Set the wording.

The form ignores your experience

Check the Experience ID in the component, the record page or the Flow. Copy it again from the Experiences tab. Make sure no space sits inside the quote marks. Also check that the org runs the paid version: the Configure page shows the Experiences tab. See Turn on the paid version.

The signer sees Site Configuration not done

The full message reads Site Configuration not done.Please ask Admin to Authorize. The connection stopped. Authorize it again. See Authorize the connection again.

The signing link shows Authorization Required

The guest user of the site lost its permission set. Assign Simple Signature (Guest) again. See step 5 of Set up the signature site.

Authorize does not work

First check three things. You work in Salesforce Classic. You clicked Save Settings just before. Your user has Simple Signature (Admin). Then find what you see below.

What you seeWhat to do
login.salesforce.com refused to connectYou are in Lightning. Switch to Salesforce Classic. Click Authorize again.
Invalid Code VerifierClick Save Settings on the Site Configuration tab. Then click Authorize again, in Classic.
A blank page after you sign in, and no date above the buttonMake a new External Client App. Paste its key and secret. Click Save Settings. Click Authorize again.
Salesforce logs you outLog out of Salesforce. A reload is not enough. Log in again as the admin. Click Authorize again.
Nothing happensClick Authorize a second time.
You cannot untick PKCELeave it ticked. Simple Signature works with it.

Insufficient Privileges on the External Client App

Some orgs cannot use External Client Apps yet. Open a case with Salesforce support. Ask them to turn on External Client Apps in your org.

The signer signed, but no PDF comes

The Status reads Signed, but PDF Attached and PDF Emailed stay empty. Check these points.

  • Run PDF Automation on Save is on. See step 3 of Connect the site.
  • A page of your own in Template VisualForce Page for PDF has c__ in front of its name. See step 4.
  • Open Setup and type Apex Jobs in the Quick Find box. Find the failed job of Simple Signature and read its error.

The error PDF generation failed. Check the page markup is valid. means the PDF page has an error. In TAF's test, one line in SamplePDF_v2 caused it:

<div style="position:fixed; left:0; bottom:0;width:100%;height:100%">

To work around it, make a page of your own from SamplePDF_v2, as in Make a PDF page in Visualforce. Change that line to <div>. Type the page name with c__ in front in Template VisualForce Page for PDF. Then send the request again.

The signer gets no email

  • Open the Signature record. Check the Status and the Email field. Read the Processing Log field.
  • A Status that stays at Requested can mean a wrong PDF page name. The error in Apex Jobs then reads You have attempted to reach a URL that no longer exists on salesforce.com. Check the c__ in front of the name.
  • Open Setup. In the Quick Find box, type Deliverability. Access level must be All email. A new sandbox starts with System email only.
  • On the Configuration tab, check that Turn Off Emails is off, or that the address is on the Whitelist.
  • Ask the signer to look in the spam folder. See Emails that look like spam.

Import of experiences fails

Import reads a comma as a new column, also a comma inside quote marks. A Name, a Description or a value with a comma then breaks the file. The Save can show an error, or a red bar with no text.

To work around it, make the experiences again by hand in production, as in Build a signature experience. Copy each parameter and its value from the sandbox.

You skipped the third-party access at install

Some features cannot reach the web sites they need. Add them by hand in Setup.

  • In Trusted URLs, add https://api.qrserver.com.
  • In Remote Site Settings, add one remote site for each of https://api.addressverificationapp.com, https://docs.googleapis.com, https://script.googleapis.com and https://www.googleapis.com.

29Update Simple Signature

For later. These steps do not count in the setup progress.

TAF sometimes pushes a new version of Simple Signature into every org. Some orgs are on an exclusion list and do not get these pushes. You can also install the newest version yourself at any time, from the install links on the change log. The AppExchange listing no longer updates an installed app.

Update before you report a bug

TAF works on bugs in the newest version only. Check your version before you open a case, and update if it is old.

  1. Check the version you have.

    Open Setup. In the Quick Find box, type Installed Packages. Find ß Simple Signature and read the Version Number column.

    The Simple Signature row in Installed Packages. The version number sits in the row.
  2. Open the Simple Signature change log.

    The newest version and its install links sit at the top of the Simple Signature change log. If your version matches the newest one, stop here.

  3. Update a sandbox first.

    Click Install in a sandbox. Sign in to your sandbox and follow the install screens. The install page shows Upgrade in place of Install. If a screen asks who to install for, pick Install for All Users.

    Salesforce installs the newer version over the one you have. Your labels, fields, buttons and signatures stay in place.

  4. Take a test signature in the sandbox.

    Follow Take a test signature. Make sure the form opens and the Signature record saves.

  5. Update production.

    Go back to the change log and click Install in production. Sign in to production and follow the same screens.

  6. Check the version again.

    Open Installed Packages again. The Version Number now matches the top of the change log.

You cannot go back to an older version

To go back, you must uninstall Simple Signature and set it up again.

30Get help

Open a case if a step does not work. Give the link to the step and paste the exact error text.

Before you report a bug, update to the newest version. TAF works on bugs in the newest version only. See Update Simple Signature.

On the free version, report bugs through a case. Help with setup and configuration comes with the paid version.

See what changed in each release in the Simple Signature change log. Sample code for custom forms and PDF pages sits in the Simple Signature repository on GitHub.

Found a mistake in this guide? Email support with the link to the step.

Rate Simple Signature

If Simple Signature helps you, leave a review on the AppExchange. If something is wrong, open a case first, so TAF can fix it with you.

Support

Stuck on a step?

Open a case and send the link to the step. A person reads every case.