Generating documents and capturing e-signatures in your apps using Adobe Sign API
Adobe Document Generation API is a powerful document creation service driven by Microsoft Word templates merged with your data. When combined with Adobe Sign API, developers have an easy way to generate dynamic documents ready to be processed through the Sign workflow.
Transcript
Hello everybody and welcome to generating documents and capturing e-signatures within your apps using Adobe Sign. I’m Ben Vandenberg, Principal Developer Evangelist for our document services here at Adobe. As we’re going along here, if you have any questions, feel free to drop them into the chat window on the right hand side of the session. And I’m happy to answer questions as we go along, as well as I have some of my friends and colleagues like Joel who will be able to answer some of your questions that were going along in the chat. Along with that, if you have some interests that you wanna connect to later on, I am more than happy to connect on Twitter, on LinkedIn or Facebook to continue the conversations. And I’d love to hear some of the things that you’re working on, some of the projects that you’re working on. So as part of the session today, what we’re gonna do is we’re gonna talk a little bit about what is Adobe Sign, how you can use it and get started. And I’ll have a few resources at the end on where you can go to get started and learn more as we go on, cause we only have a short time together today. All right, so to start off here, if you were joining us for the keynote or you’re joining us for some of the sessions yesterday, we have a lot of different services focused on helping you automate many aspects of the digital document experience. And one thing that I’d love to highlight is actually later today, Ray Camden is going to be walking through some of the ways that you can use document generation to generate documents, which is very complimentary to some of the things that we’re gonna be showing in Adobe Sign today. So go check that out later on. But what we’re gonna focus on is an Adobe Sign API, but the important thing is, is that each one of these are very complimentary to each other. Document generation, creating documents can help support Adobe Sign by creating and passing those documents to Adobe Sign. PDF embed API can support Adobe Sign cause you can take your sign documents and then present them for people to view afterwards on a website using PDF embed. PDF extract API, if you have documents that have been signed that you wanna pull out some information out of there, and you don’t have access to the Adobe Sign APIs, PDF extract API becomes a very helpful tool within there. And then things like PDF services also is very complimentary to Adobe Sign cause it can give you things like the properties and information about that document or help assemble documents by combining different PDFs together before you pass them to the Adobe Sign service. So all very cool tools, but we’re gonna be focused on just one column, which is the Adobe Sign API. So just to give you a couple of the ideas of what you can do with the Adobe Sign API, you can actually embed these e-signature experiences directly into your online applications. And you can also make those validate the identity of each of those different signers. So for example, here, I have this online account opening for this fictional mutual 365. And when I go into there and I fill out any of that information, and I click on submit, all of that information can dynamically generate and fill in each of the parts that form. And that person can then directly in line within your application, electronically sign that document. And when they sign that, it seals it as part of a PDF into a tamper evident PDF that you could then store wherever you want, whether that’s on any within your application or in another repository to be able to use, but very easy example of being able to embed that directly into experiences. So often I see where paper a lot of times is that it creates dissonance within a customer experience because you get to a certain point and ah, now we’re coming out of the digital process. I have to now print something out, sign it, complete it, scan it back in, upload it or fax it, please don’t fax. That’s it’s old technology, but you take that, send that back and then that gets needs to get scanned and processed, but instead we can actually embed that experience directly within our web applications, which is fantastic. In another example, one of the common scenarios is that Adobe Sign can send an email to each of the different recipients. So if you have multiple people that need to sign, they can receive an email for them to view and sign. But the problem is, is that how do you know that person is who they say they are? That’s where Adobe Sign allows you to be able to then validate the identity. So when they receive that email and they click on that link, it opens up directly within their web browser and you can use things like government ID verification or other forms of identification to validate the identity of that signer. So in this case, that signer is required to scan the front and back of their driver’s license. So when they use their phone, it’ll validate their identity, they take a picture of the back of it and it uses AI to validate that and only at that point in time, does it then allow them to be able to view that document and sign it, which is really powerful to be able to incorporate within your applications. So that identity verification method is core to having electronic signatures in the modern day. You don’t just want, it’s one thing to just draw a signature on a document, but it’s another thing to have all of that evidence to be able to support that identity. And so Adobe Sign has a variety of the different identity verification methods to help support that globally. You can start with something simple, like someone receiving an email to validate their identity. We also have things like phone verification. So a person can get a code using a text message to enter that in. So now we know their email address and that they also own that phone number that we sent it to. We can also use higher level, like knowledge-based authentication, where it goes through a set of questions like what addresses are the ones that relate to you? What was the color of your first car, et cetera. Government ID verification, as we saw, helps validate the identity of that signer by actually analyzing the identity and it also supports all sorts of global passports as well. And then if we look internationally, they also have things like the advanced and qualified signatures that are third-party trust service providers that can be used to validate that identity and came from that trusted source to get that. Or if you use traditional things like smart cards and digital certificates, those are also supported in there. I also see a question there. Does the identity verification actually look up with the government identity? Depends. If you’re using the government ID verification, it’s using an AI service that checks all the common characteristics of the different identities from the photograph. But what’s common in the EU and also growing into many other countries is the idea of qualified signature. Let me try that again. Qualified signatures, which is a list of trusted identity providers that the EU and government entities trust that you go through those extra efforts, just like you go to the DMV and it asks for your proof of identity, proof of address and all those types of things in order to get your driver’s license. Similarly, things like the qualified signatures and the trusted providers there go through that similar process for you to then get that digital identity. So when you’re signing using Adobe Sign with a qualified signature, you can, it is actually going to that trust provider to provide that information. Okay, so one of the other things that’s also very key to Adobe Sign is that while we’re going to be focusing on the Adobe Sign API in just a couple of moments, there’s also a lot of other integrations that already preexist in different ecosystems. So as you’re looking to integrate into things like Salesforce or Microsoft Dynamics and the Microsoft Dataverse or Microsoft 365 or Workday or Box and so forth, we have a lot of turnkey connectors already available that can be leveraged to be able to use this. And the reason this is important as part of when you’re a developer is that you can leverage these along with sometimes some of the code that you’re using to not have to write absolutely everything. Some of these can be complimentary to some of the custom development that you’re doing, particularly with like the CRMs and so forth. So those are good to check out and good for reference. Another thing to think about here is that when you’re looking at the types of documents that Adobe Sign can sign, you can use PDF, you can use any of your office formats, you can use HTML, you can use text files, and you can have those created by yourself. You can use the create ones using document generation API. And again, check out that session later on today using AM forms, or if you have other systems that are also generating documents, you can pass those to Adobe Sign as long as they’re a PDF or Word or HTML, et cetera. Those can then be used to pass in there. And one of the things that we have is we have a number of different ways that you can also identify how you place different tags on a document, because you can include, there’s a variety of different field types like signatures, but also text fields, dropdowns, check boxes, a lot of the different fields that you use inside of a PDF are available inside of Adobe Sign. And you can use a variety of different ways to tag those. I could spend this whole session talking about tagging, but I’ll give you a link to a few resources, but a couple of the main ways is that you can use Adobe Sign Library templates, which is basically you’re storing your templates inside of Adobe Sign, or you can create text tags. So if you’re creating a document from a system, there’s little text tags that you can drop into your documents to place where a signature needs to go, where a text field needs to go and so forth. Or if you’re using a PDF that already has interactive form fields already in it, then you can leverage those as a way to be able to identify where people need to sign and so forth. Just to give you an idea of what a text tag looks like in there, if I am in say Microsoft Word, we can see that I have a few text tags in here. One is this one, which basically says that this is the name of the signer, the underscore ES basically is it’s an e-sign field. You’re setting who is the signer or the recipient that needs to be assigned to. So you can assign specific fields to specific people and you can identify the type of field. So this one is the full name of the signer. This one’s the title of that signer. And up here is the signature field, which basically says this is where that signer needs to go versus down here where this one is assigned to signer to. Now you can apply these into any of your different file format types to identify where those signatures need to go, which is really handy. If you already have a system that creates documents, then you can just simply place them, these tags into there when it gets ingested into Adobe Sign, it knows where to place those tags. But if you haven’t done that, then I would suggest that with document generation tagger inside of Microsoft Word, which you can get on the Microsoft app source, you can actually go in here. And if you go to continue without JSON, you can go into advanced and we have our Adobe Sign tags available in here to be able to simply place, all right, I have one recipient. I want to put in my first signer. I want to put in a signature field. And I don’t need to learn how to write those tags. I can just simply, sorry. Let me try that one more time here. I’m going to go into the first signer here, signature and say, insert tag. And it places that tag in there for me. So that’s just a helpful tip on how to get here. But again, I’m gonna give you a resource to learn more about tagging because it can definitely get more in depth and the document generation session will touch a little bit more on that. So with that, if I switch back here, a couple of important things to note, as you may have attended some of our other sessions, Adobe Sign is a separate service from our PDF services API. So they are very complimentary to each other, but they are separate purchases. So Adobe Sign, you can purchase our PDF services, our separate purchase and so forth. So that’s just an important note because we do from a solution standpoint, talk about these different elements, but it’s good to know where kind of the lines are if you’re looking to purchase and implement. Okay, so how to get started? How do I get started with this as a developer? Well, the first thing that I wanna do is I wanna go over to adobe.io. And when I go to adobe.io, I scroll down here to Adobe Sign API, and let’s click on learn more here for a second. And this site has a number of different resources available for you. The first one that’s extremely handy is if you click on sign up for a developer account, this is where you can get a free Adobe Sign account for you to be able to use and test with our APIs. The important thing to know about this is that it will give you the ability to use the different features. The one thing that it will do though, is it will watermark any of your documents just to show that it is testing and it’s in development there. But that link right there is a great way to go set up your account. Now, if you already have Adobe Sign as part of like your Acrobat account, my suggestion would be to create a separate one that is with a separate email address because Adobe Sign is based, your identity is specifically based on your email address there. So once we set up our developer account there, then if we go to our create your first app section here, there’s a lot of handy resources that are helpful in here to learn more about how to get started, some examples, how to do things like the OAuth authentication. And if you go to your API reference here, this actually is where this gets super handy because while you can, I encourage you to make your calls and like Postman and stuff like that. If you wanna just learn how this process works, the REST APIs make it very easy for you to be able to interactively get started using this. So to start off here, just to give an idea of the different things that you need to do as part of Adobe Sign, the first thing is you need to authenticate and there’s two ways you can authenticate to our API. The first way is using OAuth 2.0 and creating your authentication that way, or the other way of doing it is creating an integration key. And an integration key is helpful because particularly if I’m doing quick testing or I’m creating a proof of concept, I don’t have to build out some of the OAuth authentication and integration key is a quick and easy way to be able to do that. Then the second point is, is we need to create the base URL, or we need to look up the base URL because there are multiple data centers that Adobe Sign provides internationally in order to meet different compliances. So that base URL is helpful for us to understand which one we need to connect to. Then we need to upload our document, which we can upload using a transient document, or we can store one as a library document and we send that document for signature. Then you can get your signing URL if you wanna embed that into a webpage, you can get your signed document once that’s done. And I also touch on where you can get your webhooks. So with just a few minutes, the clock is ticking. So let’s go back to the rest API documentation here. And if I expand out things like the transient document here, I’m gonna go up here and I’m gonna say OAuth access token. And the great thing about this is that this can take care of doing all the OAuth stuff. So I can get an idea of how the actual application works first before having to do any of that authentication. So we can see that we have an authorization token there. And one of the dependencies for uploading a document is we’re going to provide an actual file in here. So let’s select my file. I have a file already available here that I’m gonna upload. And when we click on, try the account, it will see that it returns back basically this transient document ID, which is helpful for us to be able to then use that for any agreement that we want to send out. One other point before I forget here, the base URL is what we can then use for actually getting the, which endpoints we wanna use in here. So if I add our authorization there, it’ll return back in this case, this is NA1, or it could be NA2, NA3, AU1, et cetera. But that gives us our information so we can use those endpoints there. Okay, so once we do that, we have our transient document ID that we’re going to copy here. And now what we wanna do is we want to send an agreement for someone to view and sign. So if I expand out agreement, we can see that there’s a lot of different options. I can update things as we’re creating that, or we can also get information on agreements as part of our APIs here. But let’s go click on the post section here. We can see that it already populated the authorization. And if I go to the right here, we can see that there’s a lot of different options that we have as part of our model. Let’s expand this out. Looks like, okay. So if I have a look at all the different options in here, there’s a lot of different ways that you can upload a document. You can choose to upload it as a URL, a library document. In this case, we used a transient document ID. So one tip, if you’re just getting started with this, let’s say use the minimal document model schema. And if you click on this, it’ll populate this into this here. So we can just fill out any of the parts that we need to learn here. So in this case, we’re using the transient document ID. So again, let’s go and copy this here. Copy that value. We’re going to paste that into our transient document. Great. And then we have our name of our agreement. This is going to show up also in our emails. So we’re going to call this my new agreement. And underneath our participant sets info, you’ll notice that this is an array. So you can actually set multiple participants that are going to be part of an agreement. And you can do things in parallel. So it goes out to multiple people at the same time to assign separate spots, or you can have a group of people that any one of N people need to sign in there. And that’s all based on these arrays in here. So the participant set here, we’re going to use just one in here. I’m gonna put in my email address for this participant. We’re going to set the order to be one. And the role here is going to be signer. Now, if you go into the model, you can see the information about whether you use a signer or an approver and all that type of thing. But we’re going to put in a signer and we’re going to set the signature type to be e-sign. And it’s going to be, I believe it is authoring. No, not authoring. Oh, I have to look it up. Give me a second here. Okay. Okay, state in process is the one that I want to use. So if you use draft, that means I’m not quite ready to send it out. Authoring turns it into a state where you can create a UI for a person to drag and drop there, the places where they need to sign, or we have the in process, which is just going to send this out for signature directly. So we’re going to put that in there. And if we click on try out, all right, so we can see that it’s successfully sent. It provided us this ID for us to be able to then use for any reference of if we want to get information about our agreement and the status, we can get that directly from this step here. But when you send it out, then what that is going to do here is if we give it a quick second here, we’re going to see that my new agreement was sent out for signature. And if I switch back here, oh, let me, let me go into an incognito window here for a second. And if we switch there, then it brings us to that agreement where we need to go ahead here and actually sign the document in here. So simple and easy to be able to send a document out in here. Now, if I wanted to then take this document and get say like a signing URL, or wanting to get the status of this, I’m going to take my, I’m going to go in here to my agreements. Let’s switch over to the agreement ID one, agreements slash agreement ID, because this is going to allow me to get information about my agreement. And when I do that, and I put in the agreement ID that was provided up above here, this is then going to give me the information about the agreement, the status of it and so forth. Now, if I want to get the signing URL so I can embed it into an application, then I can go find the one which is the signing URLs API here. And I can then put in my agreement ID here. And that is going to give me the URLs that I can then iframe into my application. Now, one caution I’m going to tell you is that if you’re going to use this method for embedding a signing experience into your application, this is used in a variety of scenarios, but you do want to validate the identity of your signer to make sure that they are who they say they are. Because this is the unique link for that specific person, for that specific email address. So do make sure that, you know, it’s behind maybe a user login or things like that, just to make sure that they are who they say they are within your application. And you can still use any of the identity verification methods when you embed that in there as an option as well. So that allows you to be able to embed in there. Now, the other thing to also mention is if you want to use web hooks, we also have a number of different web hooks that are available for you to be able to use as well. So to inform back to your application when certain events occur, we have things like when the agreement is sent out, when it is sent for signature, when it is completed, all these different events are available for you to be able to make sure that that informs back your application to then inform maybe storing the signed documents, so forth. And so all the information inside of here gives you the way to set up your web hooks, as well as some how-tos on how to set that up for like a Lambda function or an Azure function in there. All right, so now as we’re getting to the end here, I wanted to wrap up on a couple of other things, because again, we could dive into a lot of areas of this, but let me give you a couple of tips of some resources. So first off, if you enjoyed some of the things that we did here, do also check out, we have one more session today, Ray’s session later on is gonna talk about document generation and how you can use that for dynamically creating your documents and tagging your documents. But also when the recordings become available, also check out some of the other ones for PDF services, PDF embed API, and extract API that we also did yesterday. Those are really helpful for different scenarios of how you may work with your different docs. So as a few resources for you to learn from, again, if you go to Adobe IO, you can sign up for a developer account, there’s documentation, it links you to the documentation, has a developer guide, as well as the web hooks, and we’ll provide all these links in here. Another way, if you wanna learn more on some of the ways that you can use our different APIs, go over to the Adobe Tech blog, which allows you to be able to, we have a number of different articles that allow you to be able to learn more about how to use all sorts of our different APIs. There’s a lot of different articles in here that can help you get started. And the other thing is, is that also go over to our community. If you have questions, our support community is active and can answer any of your questions as you’re learning more about this. So with that, thank you so much for coming to the session. I know that was a huge amount of information, but I hope this gives you at least a basis for some of the things to learn more about how to use Adobe Sign. And look forward to seeing you later on today at Ray’s session on document generation. So with that, enjoy the rest of Adobe Developers Live and have a wonderful day.
Additional Resources
recommendation-more-help
3c5a5de1-aef4-4536-8764-ec20371a5186