Skip optional TemplateRole in DocuSign envelope - docusignapi

I have a template with two signers. One of them is mandatory but the second one is optional. When I try to create an envelope without a filled second templateRole I receive INVALID_EMAIL_ADDRESS_FOR_RECIPIENT error. Is it possible to conditionally delete templateRole in the envelope with all 'SignHere' tabs?

The recommended way to go about this would be through Conditional Routing.
One of the ways you could go about making this work is to set the optional template role to be conditional based on a specific tab value. Say a text or checkbox. If you were to make these fields read-only and populate them on send, the first recipient would not be able to edit the value.
When our system sees the presence of this value, say a checkbox being checked, it can then follow the logic that you provide to drop the template role.
IE: When sending place a read-only checkbox set to be checked if you want the second recipient to take part.
When the first recipient finishes their portion, Conditional Routing engages. When it sees the checkbox is populated, it knows to send to the second role. If it doesn't see the value populated, that role is then ignored.
Does that make sense? An outline and setup guides for Conditional routing can be found on our support page at https://support.docusign.com/en/guides/ndse-user-guide-conditional-recipients -- the portion for setting this up for an envelope or template in the WebUI is about halfway down the page.
Regards,
Matt

Yes, you can simply not include a role object (template reference pattern) or signer object (composite templates) for the role that you're not interested in. Omitting a role/signer object will remove that recipient, and their tabs, from the envelope.
Here's an example using the API Request Builder
First run the example as is, then try it again but delete a role object.

Related

Docusign Signature field not showing

Why is signature field not visible when recipient viewing it.
I have created a template and drag and dropped some text fields and a signature field.Then after save them as Custom fields.
After that under recipients section Role to added "Sender" and Name to added "signer"
I'm using REST APIs to request signature.In my code also I have added RoleName to "signer".
This is worked earlier and one user complete a request after others also can't see the signature.I have created new templates, but them also not showing signature field when viewing in as a recipient.
I think this is a setting changes issue. Please tell me how to resolve this
This sounds like the signature tags and text tags are not referenced correctly for the signer.
Have you tried to create and send envelope using this template through the UI?
As those fields are Signer related, when referencing those fields make sure they go under signer object and are referenced by the correct tabLabel
Will be very helpful if you can provide some code as well

where is the docusign api tab label wildcard matching documentation

In the api you can select multiple fields with something like this:
Text text = new Text();
text.setTabLabel("\\*_broker");
This will apply settings to all textfields that have names that end with "_broker".
But i want to select ALL text fields in the entire document and "\\*" does not seem to work.
Can anyone tell me how to select all fields from the API, or even better point me to the documentation for the setTabLabel matching format.
I've look all over and it seems alot of the old documentation links no longer work.
Thanks.
You can assign assign all transformed form fields to the first recipient by making them the default recipient (set defaultRecipient to true).
In order to make all of those form fields Collaborative, I believe you'll need to make extra API calls:
First, create the envelope as a draft (status = created instead of sent).
Then make a call to get the list of all the tabs (EnvelopeRecipients::List with include_tabs=true)
Finally, Use the tabLabels (or IDs) in an Envelopes::Update call to add the "shared": "true" parameter to each of them, and update the status to sent to actually send it.

Can we position signers by recipient id through the DocuSign API?

We've set up our template to include signature blocks and we're able to send the recipient's name and email address with the envelope. These recipients appear in the recipient list and when you sign in to DocuSign you're able to select one of the recipients from the list and position it appropriately.
We're looking at removing this manual step so that we can say, for example, the first signature we send across in the envelope corresponds to signature block one in our template and the second to the second as so on.
When we create the signature blocks in our template we can assign roles and the DocuSign documentation suggests that if we send a role across with the envelope we should be able to achieve the automatic positioning that we're after.
What we're wondering is whether we can also do this with the recipient id rather than the role?
There are multiple ways to position tabs (signature blocks) for recipients.
One approach is to specific x/y coordinates where the tab should be located inside the document (also specify page #)
Another approach is to use AnchorTags which is specific text that the tab (or tag) would be located in. This can be used with white-on-white text in the document, that could be invisible to the signer but allows the tag to be placed there. This can also be a real part of the document (like 'Date:') and you can specify an offset to improve your positioning.
Read more how to use AnchorTags in the API here - https://developers.docusign.com/esign-soap-api/reference/sending-group/using-anchor-tags

Conga-Docusign Integration not working

I've got a really simple conga button that should be auto-sending with 1 click a Docusign envelope from Salesforce. I get no errors, but no Docusign envelope never gets emailed.
Any idea what is wrong with this button code?
https://www.appextremes.com/apps/Conga/Composer.aspx?
sessionId={!API.Session_ID}
&serverUrl={!API.Partner_Server_URL_80}
&id={!Opportunity.Id}
&TemplateID=a1Z4000000067pT
&DocuSignR1ID=003f000000Ax1Dc
&DocuSignR1Role=Legal+Approver
&DocuSignR1Type=Approver
&DocuSignR1RoutingOrder=1
&DS7=17
If I take out the DS7 parameter, the auto-send is turned off, and everything works manually just fine. But leaving in the DS7 parameter, the email never gets sent.
What happens if you set the DS7 parameter value to 7 ? (From http://knowledge.congasphere.com/congakb/ext/kb494-ds7-parameter -- "Background Mode is enabled and the merged document is attached to a DocuSign Envelope")
Also, within the (DocuSign) Envelope Settings screen, is "LegalApprover" defined as one of the roles? From http://knowledge.congasphere.com/congakb/ext/kb21-conga-docusign-integration-parameters -- "[DocuSignR1Role requires] a valid DocuSign Role Name, as defined in Envelope Settings."
UPDATE - more info about Role name (in [DocuSign] Envelope Settings):
A little more info about my earlier comment re the value of DocuSignR1Role needing to match one of the DocuSign Role names you've defined for you DocuSign for Salesforce app. To view the DocuSign role names that are defined in Salesforce, go to DocuSign Admin >> and then navigate to Envelopes -- within that page, you'll see a section called Recipient Role Settings:
Within the Recipient Role Settings section, you'll see a list of Role Names:
This list is customizable (in the screenshot above, I've expanded the default 4-recipient-roles to 7 roles), but keep in mind that the role list will apply to all DocuSign envelopes you send via DocuSign for Salesforce in the current Salesforce org -- so you'll likely want to use generic values (ex: Signer 1, Signer 2, etc.) instead of envelope/template-specific values (ex: Insured, Applicant, etc.).
In your custom button code, you'll want to make sure that the value you set for the DocuSignR1Role parameter appears in this list. Choose the Role Name value in the list whose sequence in the list corresponds to the number that you're using in the Anchor Text property of that recipient's tags. For example:
If your envelope uses the number '1' in the Anchor Text properties for the recipient's tags, then you'd specify DocuSignR1Role=Signer 1 (i.e., the first value in the Recipient Roles list).
If your envelope uses the number '2' in the Anchor Text properties for the recipient's tags, then you'd specify DocuSignR1Role=Signer 2 (i.e., the second value in the Recipient Roles list).
If your envelope uses the number '3' in the Anchor Text properties for the recipient's tags, then you'd specify DocuSignR1Role=Signer 3 (i.e., the third value in the Recipient Roles list).
Etc., etc., etc.

How can I get statuses of multiple documents in an envelop.

I have created two documents(attachments) in an envelop. I configured my account with envelope events( signed, completed etc) to be updated to my URL(BSP) in SAP. My requirement is user may sign one document(attachemnt) and may not another(attachement).I am able to recieve the XML response from Docusign to my URL(BSP) whenever signs the document but I am not able to capture the document statuses( like signed or not signed). I checked RequestDocumentPDF() method but it retrieves only PDFBytes(attachement) seperately but not the statuses. I want to capture document statuses seperately. Any help is highly appreciated.
Thanks.
I don't believe there's a way to determine programmatically whether or not a Signer actually supplied a signature for an Optional SignHereTab. DocuSign tracks Recipient status and Envelope status, but not Document status or Tab status. In other words:
If Envelope status = Completed, you can safely assume that each Recipient in the envelope workflow supplied all information that the Sender marked as Required.
If Recipient status = Completed, you can safely assume that the Recipient supplied all information that the Sender marked as Required for him/her.
For some tab types that you specify as optional (like a textTab, for example), you could programmatically determine whether a Recipient provided a value by simply examining the TabValue property in the XML structure. Unfortunately for a SignHereTab, the TabValue property is always empty, so you can't use that to determine whether or not a signature was actually applied.
You might consider using another type of DocuSign tab (for example, a Drop Down List or Radio Button Group) to control visibility of the Signature Tab that you consider "optional". For example, let's assume that the second signature is only required if the Signer wants to agree to the additional waiver language in the contract. You could set up the DocuSign document like this:
Update the document to add the question "Do you agree to the additional waiver?" Then add a (required) DocuSign Dropdown List tab with the values "Yes" and "No" - i.e., the signer will be required to select an answer using the Dropdown list.
Add a (required) Signature tab -- but make it Conditionally visible -- i.e., set tab properties such that it's only visible if the Dropdown List value "Yes" is selected in response to the question "Do you agree to the additional waiver?".
Then programmatically, you could check the value of the Dropdown List -- if the value is "No" then this means the second signature was NOT supplied (because the Signature Tab wouldn't have been visible to the signer) -- if the value is "Yes" then this means the second signature WAS supplied, because the Signature tab would have been visible to the Signer, and would have been required prior to the Signer being able to complete/submit the Envelope.

Resources