I use Foxit Phantom for pre-fill tabs to documents. I use PDF form with label DocuSignSignHere. But, How to set recipient using this technique?
https://www.docusign.com/p/APIGuide/Content/Sending%20Group/Rules%20for%20CompositeTemplate%20Usage.htm
I tried to set number after label: DocuSignSignHere 1, DocuSignSignHere 2. It does not work. Is it possible? How to set recipientID with PDF Form?
You can not set DocuSign recipient information through the PDF fields of the document you want to get signed. Instead you need to set that information in the API call you make to DocuSign, inside the JSON properties of your request body.
Here is a full code sample (in 6 languages) of how to request a signature on a local document:
http://iodocs.docusign.com/APIWalkthrough/requestSignatureFromDocument
And make sure you check out the other 8 API Walkthroughs here.
In our way solution was in using Automatic Anchor Text with Custom Tags
Related
I'm evaluating DocuSign esignature API (c# SDK) for an e-signature solution.
Our scenario is easy:
single PDF
multiple signers
each signer has its own signature form field defined in the PDF
Is there a way to map specific signature form field inside PDF to specific signer?
What we already tried:
Anchor text is working but it is cumbersome for our clients to position anchor text, changed its color so it is invisible. Also it is error-prone
TransformPdfFields somewhat working but as I understand it is all or nothing it transforms all form fields and all signature fields are mapped to single signer (am I wrong here?)
Thanks.
With DocuSign, each field (SignHere fields, text input fields, etc) is owned by a specific signer or other recipient type. Fields are called tabs in the API.
At a schematic level, the object hierarchy is:
There are multiple ways to map signHere tabs to different signers and locations in your documents:
Use a template. You or your business person can create a template using the DocuSign web tool. Then your app can use the template id to create and send an envelope.
The different signers are referred to as roles in the template. Eg customer signer 1, internal signer etc. Your app assigns specific names / emails to the roles when it creates the envelope.
Assign the tabs (fields) to signers using the API. The tabs can be positioned using absolute locations or via anchor strings.
Use an HTML document as your source documents. You can specify the tab locations in the HTML. See docs.
Use a PDF Form as your source document. If you name the form's fields consistently then you can use the DocuSign composite templates feature to have the form's fields belong to different recipients/signers. I do not recommend this approach if you have control over the source documents. But if you are give PDF Forms as your source documents, you can make use of them.
I am testing the Docusign API and I can send a document to sign and get it signed in the position I want using the SignHere data structure and setting the AnchorString.
I want to add a field for the signed date but what is the format and field name required. I can't see anywhere that tells me how to type these into a Word document.
I see you can create templates online using Docusign and put in these fields but I don't see how that will work for us. The document will be dynamically created by our document assembly system and then sent via the Docusign API so I need to build in the fields at that point when I add the signature anchor string.
So what is the Word document special field format and list of Docusign available fields please?
Also it would be good to know how to insert a field to ask the signer to enter some text. Any entry box.
Thanks for any help.
If you're using Salesforce to send out these documents, the DocuSign CLM product supports template codes in Word. See docs.
Otherwise, you can only specify locations of fields (tabs) in the Word doc. This is done via anchor strings also known as auto-place fields. Docs.
Placing the anchor strings in your Word doc is the first step. For the second step, I recommend that you create a DocuSign template by using the DocuSign web tool. Then, when you send the document via the API, you combine it with the template. Or better, you can insert the Word document into the template itself.
The advantage of this technique is that your business users, with the right instructions, can update the template by themselves.
An alternative is for the DocuSign API request to specify the document and the various fields (tabs) that should be included in the document for the signers.
Added
Two other options:
Create your source documents as HTML documents. You can include special tags to indicate different types of DocuSign fields. You can also indicate sections of documents that can be expanded/closed by the signer. HTML field documentation.
This is the best approach, IMHO.
Create your source documents as PDF Forms with form fields. DocuSign can then transform the PDF form fields into DocuSign form fields. There are limitations. Docs.
I would like to know if it is possible to show/hide parts of DocuSign document template depending on the data which is passed in as a request.
I already have document template created and uploaded to DocuSign. I then use templateId to create envelope for that document and I also send some data (as json) to prepopulate certain fields inside the envelope.
The thing I am asking now is:
If the template has, let's say, 3 paragraphs, is it possible to hide one of them completely, based on the passed in json data?
Creating and uploading multiple templates is not an option due to large number of conditionally displayed sections.
I have been reading DocuSign API documentation, but couldn't find an answer to this.
To do that you will have to use Responsive Signing.
This feature change the format of the document you sign from PDF to HTML.
With HTML being the format, there are a lot more things you can do.
For example, you can use what we call "Smart Sections" which is exactly what you want. Sections that can be shown off/on based on logic you set.
Find out more about the responsive signing API here - https://developers.docusign.com/esign-rest-api/guides/responsive-signing/api-overview
We have defined a template that will be filled in and signed by our customers. In this template we have some fields that we pre-populate along with some documents that we will attach. The customer will fill in other fields and attach more documents. We are using the REST API to generate the sign request. We are able to generate the correct REST request to fill the tabs in the template, set the recipients and successfully send the signature request. All this works great. But now we're trying to get a document attached to the appropriate SignerAttachmentTab in the template and we cannot get REST to accept it.
We've tried using the Documents field but that doesn't work with templates it seems. We created a composite template and then defined a document for the document, server template for the template itself and an inline template to contain the tab data we want to populate. This keeps generating errors about the tab page number not being right. We've tried different values and we've looked over all the forum posts and documentation related to attaching documents to templates and none of them seem to work.
For the document we specify the file to upload, set the document ID and name. In the server template we specify the template ID. In the inline template we create a recipient, set their information, build up the envelope tabs with the data and then add a SignerAttachmentTab for the document. In this tab we set the document ID to match the document ID from the Document element. We set the tabLabel to the label used in the template itself. We've tried setting pagenumber but that doesn't change anything. All we want is for the document to be sent to the customer. When the open it they can double click the attachment field and view the document we're trying to send.
I'm trying to use the recipe explorer to get this to work using raw REST and it keeps failing with the TAB_PAGENUMBER_IS_NOT_IN_DOCUMENT error. It seems like the document is taking precedence over the template. Unfortunately I cannot change the order of the templates in the editor other than setting the sequence # on the server and inline templates. Here's the request that is generated using DocuSign's test system.
{
"compositeTemplates":[{
"document": {
"documentBase64":"<Base64BytesHere>",
"documentId":"2",
"name":"Test.pdf"
},
"inlineTemplates":[{
"recipients":{
"signers":[{
"email":"abc#def.org",
"name":"Person",
"recipientId":"1",
"roleName":"Sender 1",
"tabs":{
"signerAttachmentTabs":[{
"documentId":"2",
"tabLabel":"MyAttachment"
}],
"textTabs":[{
"tabLabel":"someText",
"value":"Value1" }
]}
}]},
"sequence":"2"
}],
"serverTemplates":[{
"sequence":"1",
"templateId":"guid}]
}],
"emailBlurb":"A message",
"emailSubject":"Test",
"status":"sent"
}
I've looked at the existing posts in the forums and either they don't work for my case or they aren't trying to actually attach the documents to the template but simply include them as a document in addition to the template.
Update
Re:
...associate [a] document to the tab so that the signer will be able to click the attachment field in the document and see the document
Yes, you can now do this by using Smart Sections with a documentHtmlDisplaySettings object in the Envelopes:create request. The collapsed (or collapsible) section can be displayed in different ways:
inline
collapsible
collapsed
continue_button
responsive_table
responsive_table_single_column
print_only
Live examples that you can try online
HTML source document
Word source document
Original answer
Re:
But now we're trying to get a document attached to the appropriate SignerAttachmentTab in the template and we cannot get REST to accept it.
You're trying to use the API to add a document to a SignerAttachmentTab?
This is not supported. Only signers themselves add documents to a SignerAttachmentTab. The API can't do it for them.
Is the issue that you want to make sure that a signer attaches (uploads) a document to the envelope as part of the signing ceremony? You can make the tab non-optional (required). But that won't check the contents of the attached file.
You could use a web hook / Connect to check the file(s) that were attached and, if the right files weren't attached, generate another enveloper for the signer.
I figured out what I was doing wrong. For a template without attachments I was using TemplateRole and EnvelopeTabs. But for attachments, trying to include any document would cause the document to override the template. So I switched to composite template with server and inline templates for the template and data. Trying to add documents in various combinations in the various areas where they are allowed generally caused the request to be sent but with no documents.
The final solution was to go back to the original TemplateRole approach but to create the envelope as a draft. After the draft envelope was created I could then add the document to the envelope. But unfortunately to send the envelope you then have to reattach the recipients. I'm looking to clean that up but otherwise it is working for me now.
I am trying to customize the brand resource file so that it uses the EnvelopeId within a query parameter in a custom html link so that the destination site can filter rows based on the Envelope.
For example, when using the following in the DocuSign XML Email resources file for the brand (e.g. in envelope completed email):
View Rows
DocuSign escapes the [[EnvelopeId]] (presumably because its within a link), causing the resulting html for the email to be
View Rows
instead of
View Rows
Is there a way to prevent the EnvelopeId from being escaped or another way to use the EnvelopeId with a custom link in the envelope completion email?
Whenever you see [[ ]] that refers to something called a DocuSign Merge Field. As you are referring to, these are dynamic variables which get replaced with expected values at runtime. I do not believe that EnvelopeID is a valid merge field in this context. The closest thing you have to referencing a link to the envelope is the [[QuickURL]] merge field.
If you were going down an API integrated route, you could specify the entire email message body contents via the API, and you would know the envelopeID at that point and could pass it in w/your logic.