RETURN TO BLOGS

FileMaker and Adobe Sign Integration

by Charlie Bailey - Technical Lead

Obtaining digital signatures has never been easier thanks to tools like Adobe Sign. However, when it comes to manually moving data from one system to another, errors are bound to occur (in addition to the time cost associated with the process). Fortunately, if your business requires electronically signed agreements based on data from your FileMaker application, you can now extend your custom app with an Adobe Sign integration.

Client Profile

One of our clients is the president of a Pizza shop and regularly needs to obtain digital signatures on customer agreements. Prior to integrating Adobe Sign into his custom app, his process was to enter data into his FileMaker system, run a scripted process to produce a report that he’d export as a PDF to his local computer. Then, from a web browser, he would access Adobe Sign,  upload the PDF, edit the document to notate where signatures were needed, and manually enter the customer’s information. Finally, he would send the document to the customer, at which point Adobe Sign would email the customer notifying them that they have a document ready to sign. Our client would be notified once the customer had signed so that he could go back into Adobe Sign, download the signed document, and upload that PDF back into FileMaker.

That is a very long, error-prone process. Suffice it to say, our client was on the hunt for a way to streamline the entire experience for himself and his customers. It was time to integrate Adobe Sign directly into his FileMaker system.

Adobe Sign Integration via API

This Adobe Sign integration was achieved by connecting directly to the Adobe Sign API through FileMaker. The Adobe Sign API can be used for a wide variety of tasks, including:

  • Creating and manage agreements
  • Retrieving signed documents
  • Embedding a signing UI in your app
  • Sending reminder notifications
  • Creating widgets, library documents, and MegaSigns
  • Downloading audit trails
  • Archiving signed documents

By leveraging these functions, the Adobe Sign functionality can be built directly into any FileMaker app – no need to copy or export data or files back and forth. We implemented just a handful of key functions through the Adobe Sign integration API to automate the document creation and signature gathering processes. The result is a streamlined process both on the backend and for the customer! Everybody wins.

Time to look at this in action: here is the original FileMaker layout that is converted to a PDF and sent to Adobe Sign. Note the red placeholder text for initials and signature on the layout.

What the end user sees:

Once the customer signs the contract, we retrieve it from Adobe Sign and make it available for review back in the FileMaker app:

End Results and Lessons Learned

I started the Adobe Sign integration process by building a stand-alone test app in FileMaker so that I could make the code easy to replicate. I built this app to include all the major functions I would need. This code was designed to be ported into a custom app so I crafted it to be modular and context-independent, allowing it to be easily ported. My results were worth the effort, as the integration of this code into our client’s custom app was quick and smooth.

Working through and learning a new API always presents unique challenges. Understanding the best ways to leverage the Adobe Sign API was the bulk of the development process – it even required “phoning a friend” to help debug a JSON error that was stymying me. A second pair of eyes helped locate the error and we were back on track – I realized I should have made that call sooner! Teamwork was the key to keeping our client’s project on time and on budget.

I’m excited to offer up Adobe Sign integration as a quick and cost-effective addition to any existing FileMaker solution where contracting is involved.

What’s Next?

To see another story of successful integration, read about FileMaker’s integration with WooCommerce here. If you want a deeper dive into the technical details of this integration, let us know!

 

Please enter your contact information to download the Demo file.

This field is for validation purposes and should be left unchanged.
DOWNLOAD

Comments

  1. Charlie Bailey
    4 weeks ago

    We’ve had a few requests to explain how to add a second signer to your document. We won’t get into all the details here, but it’s a fairly straightforward extension of the existing code in the demo file. You just need to extend your array of signer information. You’ll need to include the second signer email address, role, order, and label in your data package for the API. You’ll also need to add the corresponding tags to your document. See the example code below.

    JSONSetElement ( “”

    ; [ “fileInfos[0].transientDocumentId” ; $transientDocumentId ; JSONString ]
    ; [ “name” ; $agreementName ; JSONString ]
    ; [ “participantSetsInfo[0].label” ; “signer1” ; JSONString ]
    ; [ “participantSetsInfo[0].memberInfos[0].email” ; $customerEmail ; JSONString ]
    ; [ “participantSetsInfo[0].order” ; 1 ; JSONNumber ]
    ; [ “participantSetsInfo[0].role” ; “SIGNER” ; JSONString ]
    ; [ “participantSetsInfo[1].label” ; “signer2” ; JSONString ]
    ; [ “participantSetsInfo[1].memberInfos[0].email” ; $customerEmail2 ; JSONString ]
    ; [ “participantSetsInfo[1].order” ; 1 ; JSONNumber ]
    ; [ “participantSetsInfo[1].role” ; “SIGNER” ; JSONString ]
    ; [ “signatureType” ; “ESIGN” ; JSONString ]
    ; [ “state” ; “IN_PROCESS” ; JSONString ]

    )

    Reply

Leave a comment

Your email address will not be published. Required fields are marked *

Your email address will not be published. Required fields are marked *

Built with you in mind

Speak to one of our expert consultants about making sense of your data today. During
this free consultation, we'll address your questions, learn more about your business, and
make some immediate recommendations.

REQUEST A TOUR GET A FREE CONSULTATION

Stay in touch!

This field is for validation purposes and should be left unchanged.