Show related records in Envelope with DocuSign Apex Toolkit - docusignapi

I am working to sent out documents within Salesforce on a daily basis when certain CPQ Quotes meet certain criteria. This would be a scheduled process and I created a DocuSign Envelope Template for the document that needs sent out. I am leveraging the Apex Toolkit since this is meant to be an automated process.
In the Document, I need to show the related child Quote Line records in a table as well. With the toolkit I can add in simple tabs using anchor text placed in the document. I attempted to configure the anchor text in the template builder UI within Salesforce but haven't had luck with that pulling in the data that I need.
Is the Toolkit capable of building a table for related records or is it leveraged more for very simple tabs to show data and not build something so dynamic?

You can take the records in Salesforce with the SOQL query and put that data into the tab. For example, in the case of setting the recipient, you can retrieve the Contact record in Salesforce with SOQL query and send the envelope by putting that data into the Recipient object.
//we will use a Salesforce contact record as a Recipient here
Contact myContact = [SELECT Id, Name, Email FROM Contact LIMIT 1];
//use the Recipient.fromSource method to create the Recipient
dfsle.Recipient myRecipient = dfsle.Recipient.fromSource(
myContact.Name, // Recipient name
myContact.Email, // Recipient email
null, //Optional phone number
'Signer 1', //Role Name. Specify the exact role name from template
new dfsle.Entity(myContact.Id)); //source object for the Recipient
//add Recipient to the Envelope
myEnvelope = myEnvelope.withRecipients(new List<dfsle.Recipient> { myRecipient });

Related

DocuSign Recipient and Custom Fields

I am new to DocuSign technology and need to get few pointers.
I have tested some java API to send emails out thru Docusign and did my homework. Few questions:
Can I create a DocuSign Template without a Recipient? DocuSign is not letting me to add custom fields without a recipient.
My use case is: Put a template on docusign with some custom fields (say 10). My application would pass values for 3 custom fields along with new recipient (email address). I expect recipient would fill rest of custom fields.
How can I create/send an envelope with a Template ID and Recipients? I see error that you can pass only one of them.
I am able to pass values to custom fields via EnvelopeDifinition->TemplateRole->Tabs->TexTabs. But, the values are not populated if there are multiple recipients.
I am looking at some guidance on the approach for my use case and some pseudo code if that helps.
Thanks
You cannot create a template without recipients, because you cannot create an envelope without recipients. At least one is required. A template is a repetitive envelope and if it were created without recipients - you can have an envelope without recipients which is not allowed.
There are two types of recipients in templates. The one you probably need is a role based (templateRole) that does not include the email/name but has to be provided when an envelope is created from the template (also called placeholder). That recipient can still have fields (tabs, tags) and the API can provide the value for some of them.
This article talks about how to set the values of tabs in an envelope created from a template and is exactly what you're saying you want to do.

Creating envelopes where first signer specifies next recipient(s)

I need to send out a document / envelope. I'm using the C# SDK, since we'll be sending from a service. We know who the recipients of the document COULD be, but it's up to the first recipient to either sign or choose a recipient.
The first recipient of the document can do one of two things-
Sign the document
select a different recipient from a drop-down list of Roles, and then have the document go to that user for their signature.
these future roles are "Dealer" and "Lawyer". We'll know, at the time of
selection who these user's are (names & emails).
Right now, I have a template (from Word), with tabs that will be populated when sending the initial envelope, so that all users can see the data.
My question(s) are:
Is using the Template the best option? Should I attempt to update the text within the Word document, by not having it configured as a template?
How should I add the users / roles / signers to the envelope, since they can be chosen ? I saw something about Intermediaries - is this what I should be using to specify the next recipient in the document? Currently, I have three "Roles" defined in my template- one for "Provider" - the first recipient, then "Dealer" and "Lawyer".
IF not using a Template, how should I specify / add the follow-up users, "Dealer" and "Lawyer"?
Any assistance is greatly appreciated!
Using a template is probably what you need. You can update the document inside a template before sending an envelope that is created from the template. (you can also use"correct" to update an envelope that was sent, but only by the original sender and there are some other limitations)
see comment from Drew, you cannot do a conditional recipient yet, but there are other options, including a special type of recipient that can add other recipients (if that's what you want).
You can create a more complex workflow that have the first envelope trigger a second envelope with the recipients you want. That could work for you. Not sure yet about all your requirements, but the first signer can trigger this using our web-hook from connect.

DocuSign API: Changing the filename when signing from a template

Using the DocuSign API via VisualStudio, I create and send an Envelope out to customers based on a Template on my DocuSign account which contains a list of the recipients and a standard pdf document.
I specify the TemplateRoles and the TemplateId using the EnvelopeDefinition object then create the Envelope. The pdf document returned when everything is signed will have the same name as the pdf on the Template document.
What I need to do is change the name of this document for each Envelope/customer. Ideally I could change the document name to that of the customer to make it easier to store and find, instead of getting a lot of different docs back with one generic name.
Is it at all possible to change the name of the finished document?
I don't know about changing the name of the document.
But you can change the subject of the envelope when you create the envelope. And it is the subject of the envelope that you see in the DocuSign web tool.
You can also set an envelope custom property and later search for envelopes with that property. Using this technique, you could easily bring up all envelopes related to a particular customer (probably best to store your customer_id as an envelope custom property in this case).
This is a bit of a hack but it works.
You can create a dummy cc recipient and their name can be anything (their email address can be random letters). Set up your template with the merge fields to include in the message subject (this also automatically edits the envelope name). Using this guide:
https://support.docusign.com/en/guides/ndse-user-guide-template-merge-fields
Then when you create your envelope from the template, fill in the dummy name with whatever text you want to be added to the envelope name.

How to show docusign ID in the document

I am using embedded sign flow. I am able to show signHereTabs in the document, but I also want to show docusign id of the owner. I am not able to find any option in the api on how to show account owner's docusign id (name, sign & company) in the document. Is there any specific anchor for that ?
In order to get that information on the envelope then the sender (or owner) will need to also be a recipient on the envelope and have those tags added.
Another option would be to add data fields for the signer that are locked and populate it with the senders information.
I think there are a few possible solutions here:
Add the sender as a recipient to the envelope (i.e. a Carbon Copy recipient or a Signer).
Use envelope custom fields to pass the data you need.
For #1 if the sender is already a recipient you can add corresponding name, company, email, and other tags to the envelope. If you don't want them to be a signer of the envelope you can probably get away with adding them as a CC recipient (so that they simply get a copy of the doc) and give them the same routingOrder as the one signer.
Alternatively, for #2 you can use envelope customFields which are traditionally used to pass meta data about the envelope around but you can use to store the sender data instead. See the DocuSign Dev Center and API Guides for more info.

How to use Custom Fields on the envelope

I am new to DOCUSIGN and learning the features of it.
I could see there is a feature to create custom Fields for a template.
I am not able to find the documentation about how to use custom fields in the envelope.
Is it possible to use the custom fields as a placeholder inside email to fill some data dynamically. So that the creator of envelope just fills in the information in the custom field and it will be used in the email body/subject etc..
is this possible.
need some advise.
"Custom fields" in DocuSign exist at various levels -- i.e., Envelope Custom Fields, Document Custom Fields, Recipient Custom Fields, etc. -- and simply facilitate you being able to associate metadata you specify with a specific object. For example, you might create an Envelope Custom Field called "CustId" and populate that field with the Id of the corresponding customer for each Envelope you create/send. Then, because you associated "CustId" value with each Envelope, you could later utilize this data for reporting purposes (for example: to find all envelopes associated with a particular customer). Custom fields cannot facilitate the functionality you've inquired about.
It's not possible via DocuSign functionality to utilize 'placeholders' as you've described to dynamically inject Envelope-specific values into the Email Subject/Body. However, you could easily have your application collect the relevant information (perhaps from the sender via a webform, or via a database lookup if you're app already has the relevant info there), and then use that information to programmatically (in your code) assemble the complete Subject and Body for the email, before using an API call to create the Envelope (specifying Subject and Body as part of your API request).

Resources