I recently posted about the Nintex Workflow DocuSign Connector. The post was targeted at using document templates that live at DocuSign, where Nintex Workflow passes in details to fill in fields in the template, before the document is sent to a user for signing.
In some cases, you may already have documents that require signing. These documents don't live at DocuSign, but instead, live in a Document Library in SharePoint. In this situation, how would you build a workflow that makes it easy to send out the document for signing? This is topic of this post. Adhoc Document Signing. The ability to select a document, start a workflow on it, and send it to a user to get signed.
Introducing the DocuSign Send Document Action
Rather than using the DocuSign Populate Template action, here we will focus on just the Send Document action. This actions allows you to specify what document you want to send to DocuSign, and then have the user sign.
This action gives you a number of options for the document that you want signed. Firstly, you have the "Existing SharePoint Content". This is the URL to a document that lives somewhere in SharePoint. You could potentially find the appropriate document, by using a Query List action to filter down to a specific document.
This action also allows you to specify who needs to sign the document, the email Subject and Body that gets sent out and it lets you store the Envelope ID. The Envelope ID is stored in a text variable and will be used in actions further down in the workflow.
Processing the Signature
The workflow then needs to go into a loop, and periodically check to see if the document has been signed. The action that checks with DocuSign, is the DocuSign Retrieve Envelope Status. This is also one of the actions where you need to use the Envelope ID that you stored from the DocuSign Send Document action. The Envelope ID is what identifies the document at DocuSign.
Two important pieces of output data here that need to be stored. The Signature Status and the Message. The status will tell you whether the document was signed or rejected. The message will give you more information if it wasn't signed.
To wrap things up with the workflow design, generally, you'll want to download the signed document to store it in a document library for archiving purposes.
Downloading the Signed Document
In comes the DocuSign Download Document action. This actions also takes the Envelope ID to find the document you want to download and then gives you the option of where you want to save the PDF to. To a specific URL (document library and filename) or you can overwrite the existing item.
Workflow Design
Easy to Start Workflow
Now that the core workflow design is done, we need to configure a few things.
1. the person who needs to sign the document needs to be something a SharePoint user selects
2. there needs to be a form a SharePoint user sees, when they start the workflow
3. there needs to be an easy way to start the workflow
Firstly, we need to create a text variable and check the box that says it needs to be on the Start Form.
The interesting thing about making a variable show on the start form, is that it automatically generates the field on the form where you start the workflow.
The last thing to do, is go into the Workflow Settings and check the box to make the workflow appear on the item drop menu.
Starting the Workflow on a Document
So now that we've done all this work. What does this mean?
If you want to start a workflow, simple click on the item ellipsis and you'll see the name of the workflow in the drop down.
When you do this, you'll be presented with a start form/workflow design page. This is where you fill in the details of the person you need to sign the document and then click on the Start button.
The example workflow is attached to this post. It is a Nintex Workflow 2013 version workflow.
You can build this type of workflow in Nintex Workflow for Office 365 also.
NOTE: in the downloadable workflow attached to this post, the Download Document action has a hardcoded url to a PDF to save the file. You should look at dynamically generating the destination url.