From Data to Design - Automating Branded PDFs with Workfront Fusion

Turn Workfront data into polished, stakeholder-ready deliverables! Hosted in partnership with Brian Haight and Pete Worth of Adobe Professional Services, this session focused how to use Workfront Fusion to pull existing data and automatically generate branded, templatized PDFs that can be attached directly to Workfront objects and shared with stakeholders - no manual copy-paste required. They walked through real-world use cases and best practices, so you can start automating with confidence.

Transcript

Welcome from Data to Design, Automating Branded PDFs with Workfront Fusion.

Welcome to today. Pete, if you don’t mind going to the next slide for me.

The big question everyone asks, is this session being recorded? Yes, it is. We’re recording it two ways because y’all will be mad at me if you do not have a recording of this.

You’ll get the recording, you’ll get the slides, you’ll get the fabulous resources that Brian and Pete have created in a follow-up email, hopefully within 30 minutes-ish after the session. But what are we talking about today? Let’s go to the next slide real fast. So the guys are gonna do sort of like walkthrough scenario examples, and then we’ll have Q&A. Obviously we’ll do like a resources and wrap up, but the floor is gonna be theirs. So let’s see who’s here. First of all, Leslie and I are here, your Workfront Scale Team. We’re gonna be in the chat helping with any, like not answering questions, cause I don’t know. We will direct questions as needed, but honestly you don’t care, that’s not us. You are here for Brian and Pete. So you guys say, hey, introduce yourselves.

Brian Haight, I’m a Principal Integration Consultant with Workfront and Fusion. Most of you have maybe have attended some of these before in the past and I’ve worked with some of you as well. So welcome everybody.

I’m full-time out of the Sacramento area and specifically Rockland, California, if anyone knows where that is. And I’m hitting up nine years right now for Adobe Workfront. And looking forward to the webinar here and get to work with my friend and colleague, Pete Worth. So Pete, jump in. Hi everyone. So Pete Worth here from Pittsburgh, PA. I am also a Principal Integration Consultant and have been working on really exclusively Fusion and content supply chain for six years now. I don’t come from a technical background. So like just a bit of history because I think it’s kind of neat to know you don’t have to know technical stuff to come into Fusion. This come from process improvement and Fusion is just like the way of enabling or enacting the process that you may have to find. So yeah, looking forward to going through the deets, will you? And with that said, let’s get going. All right, so we’re gonna go through first, the prep that’s involved with the PDF services.

And the first thing that you need when you’re setting up your Fusion connections is the connection itself, which is set up in the dev console. And we’ll go through the steps for that together.

And just a note, there is actually a free tier available for the document services, which gives you 503 transactions per month covering all of the PDF services aside from the electronic seal API. That’s the one that deals with certifying and tamper evident documents. But for anything outside of that specifically, you’ve got your 503 transactions, so you can give it a go and play with it after this call.

Generally, it also involves other document types. So in our example today, we’ll be running through taking a word template and information from Workfront, merging the two together and then converting the output to PDF. But you can use things, you can use document generation itself, you can use HTML if you really wanna have full control over everything. But that’s a quick overview at least of the PDF scenarios. Now, for the creating the connection, I’m actually gonna go through the slides rather than live just because my specific access to the dev console in this given project is kind of limited. So the key caveat for actually setting it up is that you must have at least developer access, both to the console itself and to the PDF services API. You know, both of those, you’ll hit the kind of the grayed out PDF services API screenshot you see here where my account explicitly doesn’t have the access. But it’s relatively easy to get set up. So from the quick start area, you’ll create a new project. And in that then click the add API.

That will bring up a modal from there, you’ll navigate to the PDF services API.

Just to note that there’s others available, there’s like a PDF embed API, explicitly for this, we need the PDF services API.

And like I mentioned, if it’s grayed out, then you don’t have the appropriate permissions, which I don’t have here.

But- I can go through that real quick. If you’re not familiar with this area, the developer console, this is where we’re moving a lot of these API connections into here and if you get used to this, as we go through, it’s not to understand how this works because in the future, you may be doing this to connect to other services, or maybe you could- Yeah, so some people may use this for Workfront, you will be able to use the newly released Fusion API as well for accessing logs and things like that. So this will be a common pattern that you’re running for other Adobe products you write in that brand.

Once you’ve established adding the API credentials for the PDF services, you’ll get a view kind of like this with the name of the project at the top left. You might wanna change the name of it, by default it will be project with a number of career like project three or project four, it’s sequential from all of the projects that you set up. In our case, we renamed it to the GDP PDF services. But from here, you go to the service link under credentials you see here.

And then from there, you need the client ID and secret from your connections. So the client ID is visible by default. You see on the right, there’s like a couple of boxes here. If you click that, that essentially copies your client ID. You’ll also need to retrieve the client secret.

But from there, you’ve got all that you need to set up your connection.

So from here, you then go into Fusion, create a new scenario, add any PDF services module, doesn’t really matter which one, and add the connection from there, plug in the details you just obtained. You will see that there are two options. So there’s Adobe PDF server to server, which is the one that we’re using. And then there’s also JWT. We wanna use server to server for the connection. That’s the setup that we had in the previous slide, but also just in general. So, it’s a more modern, simpler approach for dealing with connections. And it lets Adobe and Fusion handle things like the token life cycles, refresh and things like that automatically in the background.

So assuming that you already have your connection to Workfront established, you’re now good to go.

So some notes on the Workfront, excuse me, the word template modules. So they don’t inherently require a connection. They’re explicitly this filler document with the batch data. It’s actually an internal Fusion function, but it is very basic functionality. So it’s just really filling out a document with a batch of data. That’s all we really need for our purpose. And of course it’s important of the document, the template, so it’s our work front for the scenario to download and use.

Okay, the word templates.

The most important thing here for success is the word design template. So I’ll bring up an example that we actually are using and we’ll use in a demo. You’ll see one of the reasons we like to do this is one of the most common use cases because it’s PAF services, but this is really how to do a mail merge, right? If folks are familiar with merge, merge one dot and the word version of this is really nice. Real common use case here. So he’s walking through the page first.

And so the mail merge, you see that that is essentially the thing that we will replace like the variable that will tell Fusion to replace with text that we input. So we’ve got three different types of simple ones, which actually just chain variables here, the family braces.

We’ve got somewhere we might want to conditionally show information. So you’ll see the pound sign with the name of one of the tags that’s actually in the list here. So portfolio, which is the first one, this essentially says show this section and populate it. If the portfolio variable is also populated, we’re ending with a kind of slash portfolio as well to delineate the end of that section. You can also input looping sections or arrays similar to that section.

But we’ve got the name of the array here.

So we want to populate with an array.

And then end the array.

And then you’ll… And look at the formatting, which is nice. You can use all the word formatting tricks and get your variables in there. Much easier to deal with word formatting than a lot of other things.

Yeah, yeah, you’re right. And we’re also, as you could tell, we’re using Adobe Clean, which is our brand, our fun and our colors, things like that. Relatively straightforward setup here. But there are other types of tags that you can use. You could input images, you could do fragments, charts, things like that. But for our specific case today, we’re using sections, strings and arrays. We do have a note that also the tags are JSONR to compliance. So if you attended the webinar with Brian and Steve back in September last year, you should be well equipped here to understand what that means. We’ll be showing that in one of the other demos that we use as we go through. And if you wanna find out more, there is also a link here to the template tag section so you can get a bit more information.

And speaking of links, the word templates can be available in the notes here in the chat.

Cynthia is gonna add a, if she hasn’t done it already, the zip file that’s got the scenarios and this word template.

Yeah, so you gotta take home from it. If you wanna play with it yourself, you can see the templates that we put together.

All right, and so next we’ll go into some examples. So we’ve got a few scenarios to walk through with you.

I’m gonna be bringing up the scenario itself and just going through what we’re doing. You’ll see the first one’s relatively straightforward here.

We’re beginning with saying word variables. So just some of the things that make building tests a little bit easier, you can put these in and then you can keep playing and sort of looking at how things are populated. A bit of simple formatting. So we’re taking the run, the current run and formatting it to be year, month, day over the execution ID to ensure that we get a unique file name to use. And we’ve got project ID and word template ID that we’re using in Workfront. We’re reading some information from the project. We’re downloading the template from Workfront. We’re then using the tags that are in the word template and populating and you see for each one here, we’re telling it to look for title and replace it with some of the information from the project.

We upload the document to Workfront, convert it to PDF and then upload the actual PDF to Workfront. I’m actually gonna run this so we can take a look at some of the outputs.

It won’t take too long.

The services module is pretty simple, right? In this case, all you’re doing is converting this doc in PDF but you utilize all the features of Word to get everything in the right spots and look decent.

Yeah, and we’re uploading both the Word documents so the populated Word template and then also the PDF. So to make changes manually after the fact, you can do but if you’re happy with what you’ve got, then you have the PDF as well.

So you’ll see the project overview sections populated with information from the project that we want to fill out. Got the name of the project with the overview which is the title, the journey date. It’s a little bit hard to see just because it’s gray. Zoom in a bit, there we go. That’s date and time. It’s a nice readable date and time. I’m British so 24 hours, you can use 12 hours if it’s… I just realized it’s 14.15 PM. I should have put the PM there. Yeah, that’s the same as I did in the tags. Let’s look though.

Some of that last thing we spoke to, fusion functions. So we’ve got some really simple things where we’re actually typing some things in and concatenating that with the name of the project. So we wanna call the title overview of name of the project. We’ve got the name of the project being mapped in as the name. We’ve got another date formatter here. So we’re taking the run, which is a timestamp and we’re converting it to a Feb. So MMM, DO, which is the day ordinal. So it’d be February 17th, and then a year and then time, but I didn’t need to… I made it capital HH, which makes it the 24 hours, but there’s lowercase HH, which would make it the 12 hours with the eight per PM.

There’s a bunch of other functions that you can use in fusion. These are just some of the mapping functions that are available.

One of the more complicated ones here for both priority and status is if you remember when we read project details from the API, things like the priority and status come in as code. So you may be familiar, for example, which means planning. It’s not really usable to a stakeholder. They’re not necessarily gonna understand what PLN means and they’re not gonna understand what zero means. Use a combination of functions to map all statuses In this case, we say, give us all the statuses from the project, get the label where the value is equal to the project status. So the project status is PLN, and we’re just translating that to be, give us the label, which is planning. That creates an array, the map, and we use the get function to say, just give us the explicit value.

So I just really just quickly also wanted to show we have in the read module here, we get the references. So we’re getting portfolio name, we’re getting the owner name, sponsor name, all of the status information and priority information in one request. You could have subsequent requests like read portfolio, read owner, read sponsor, read statuses, for example, but you can actually combine them all into one, which you’ve done in this case just to make it a bit more clean and efficient.

But that covers essentially the first scenario. So I’ll hand it to Brian to go through another exercise. Sure. And keep in mind for this stuff, Pete and I are throwing in some bells and whistles with Fusion stuff here, but it’s just important to get the main concepts down. You don’t have to obviously memorize any of these functions, but it’s just a nice examples that you can use if you want to. I just want to note on the slide deck here that we have spelled out in the deck that will be provided afterwards. Some of these things that Pete’s gone through, he’s talking about the formatting, format date. He’s got the map and item built in functions linked in here. Some pretty useful stuff in the slide deck, but our style obviously on these calls is to go through the actual Fusion scenarios, which I’m going to start in with scenario two. This one is, initially I like to set the scenario variables at the beginning module here. And then we’re going to add the items to an array for the multiple looping section or one looping section. What’s that Pete? You want to screen share. You’re not right now. Oh, I didn’t screen share. Oh my God. I thought I had it. Let’s do this. Okay, thank you. Good point. All right, let’s go back. So I’m just showing that just what the slide deck looks like. Pete’s got some examples in here. And then I’m starting in with a PDF with one looping section set the scenario variables, add some items to an array, prep the data with JSON-ADA, merge it with Word and then convert it to the PDF. So we’ll jump in with a Fusion scenario.

Well, let’s take a look at the scenario variables here. One is the Word template ID. This is the ID of the document that we’re using. So you get some variable text if you want to set it. The project ID is also pretty important here. This is the project and work front that we’re using because you want to upload your document somewhere. So in this case, I have a, want to go over to my project and I can also grab the ID from the product directly. I want to show that in an example in a sec here. And then my file name also is kind of interesting here. I’m using the formatted date, which is just a YYYY MMDD. It’s just a bunch of year, month, date altogether. And then I have the execution ID in here. The execution ID is a unique variable in the execution. And it’s just, if you want a unique file name, it’s in here and it’s right available right here. And you can throw that in as a unique variable if you need to, or if you just want to. So in this one, set the variables. We’re going to download this template. Up here, we’re going to go set this array here. So the array is going to get project users in a similar way to what Pete did here. You can also run these up by themselves. You can click run this module only, pop in your product ID, and it’ll come back with your product users, which is what I’m looking for. Product users come back as an array. In this module, I’ve done what you saw Pete do a moment ago and use the collections to say, this is what I’m looking for, product users username. The reason why we do this is because product users may be available as a collection, but it’s not going to go all the way down to the user and then they’ll be sent back. So if you specify downstream what you want, product users username, you’ll see product users user, and then there’s the name. And I can use that name in my scenario if I map it. So then I’ve got, by the way, product users, if you’re curious, are under the people. These are the people in the project. So this is the list that I’m going for here.

Then for each product user, this is actually taking the product users from here. And you can see if you set it up there, in the green area, this is what’s coming out of the iterator I’ve got the product users information, but this is what I want. I’ve got the username, which is this variable, this green one. And so I’m going to set the username here as my variable, and I’m going to aggregate that. So I just wanted to create its own array out of that. I’m going to set it as variable. So the array aggregator, this is important. When you set the array aggregator at the bottom, you have to select which variable do you want to aggregate. In this case, it’s the username. It’s just literally this variable I’m setting right here. I’m saying, aggregate that and set myself an array. I’ll show you what that looks like. Then down here, I’m getting the user text array from above. It’s this array I set here. And then this is kind of the important thing and interesting with how these word templates work. For these looping sections, it turns out the easiest way to do these is to use this special JSON auto function. This was actually provided to me by the product team. And they said, this is the easiest way to do this. Literally this top expression never changes for these looping sections. You just feed in the array that you create and you pop the array in here. I just got the array I created to this top route and I popped that one in here in the data and then hit it with this expression. And it puts it in the right format that the word module likes. You’ll see it for the double looping section. I’m just keeping all this the same and just doing an additional array. I’ll show that in a moment. But then in the word template, this is also pretty important here. This is all the same stuff that Pete’s done before where you’re setting these variables. But the looping section is literally you add an item and it’s a loop section. And then when you add it, the key is the name of the array inside the word document. There’s a section for that in the word document. It’s right here.

This one is the user text array. It’s a hashtag user text array. I’ll zoom in a little bit. It’s pretty hard to see. You see user text array and then this is a slash user text array that ends the array. This right here, the username is the variable within the array there. So that’s what I want to show. I’m not actually specifying any of the variables in here. All I’m doing is saying here’s the section that I want. It’s the user text array and the value is simply the output from the JSON-ATA. The important thing though is you have to click this little map button and pop it in here. This is in the slide deck also. It shows you how to do this. But you pop the value in here in the output of the JSON-ATA and that’s it. So this is the name in the word doc of the section and here’s the output of the JSON-ATA. And that gets you the looping section, which is pretty cool. Once you do that, this outputs your merge document. Then you upload the doc. And then as you did before, we’re gonna convert it to a PDF using Adobe PDF here module. And then we’re gonna upload the PDF as well. So uploading both docs. So I’ll hit the run button and see if we can get the looping sections going here.

Wow, yours is running faster than mine. Yeah, well.

Just wanted to say just real quick as it’s doing it, you see how like on the web front modules, it’s like a little green circle with arrows pointing up. That is something that you may see in scenarios that you’ve built since the product team pushed out a completely new connector or a new version of the work front connector. It’s to indicate that there’s a newer version of the connector available.

So you can see this thing like is here. It’s not actually having any impact on the functionality here or what Brian’s building, but just as a note that you’ll see that and you can upgrade them if you need to.

So the array aggregator here, it just pops out the array. This is my array. And then I’m just saving that here and then getting it here. If you just, it’s the same thing. If I get it down here, you just keep seeing the same thing over and over. I’m just getting that array, popping that in the JSON auto module, and then it works with the looping section here. This is obviously also included in the fusion scenarios in the zip file. So if you wanna use that JSON auto module. So let’s take a quick look if we get the documents back up here. Now we got more documents.

We’ll see if, which one was it? 1126, gotta be one of these. Here we go. Here’s my PDF.

And so Pete put this in as a numbered list. So in the word formatting, he actually has this as the variable as next to that ordered list with the number one right next to it. If you look at this guy, so you can see it’s actually an ordered list and you’re saying put the username here and then here’s the ending, the text array, which means just go down to the next line at that point, which is kind of fun. So you end up with an ordered list of your stakeholders based on that word template. Pretty useful.

Cool. So that’s the PDF and looping section. I can answer questions at the end if you guys have questions, but let’s go to the next one, which is we’ll go to the 3.0 here, which is two looping sections. So this one is very, very similar to the first one. Remember this one I’m using a get project users, which is a normal search module. And I’m using this project user username in the collection to get what I want.

This additional row here, which when I’m getting the project milestones, it’s almost identical. You see it’s like the same models here, but this is a custom API call. So I want to give you examples of both. Custom API call looks like this in Fusion. This is a task, which is the object, and this is what I’m doing. I’m searching on it. It’s a normal get call.

And then I’m just specifying here’s my project ID, which could come from that first variable, probably should. And then these are just normal API call modifications. I’m just gonna say, go get me this from this project, get me tasks where the milestone is not blank. There’s a milestone ID on these tasks. And I’m gonna sort it by the task number. The reason I like to do this in the custom API call is this right here. This sort function is not available in the search module. So I can do it with a custom API call, which means I want to put the milestones in order of the tasks. If I don’t do this, it’ll give me the milestones in a random order. So which is why I do this with a custom API call with a sort, sorting by the task number. And then these are the fields I want back. I want to know the idea of the task, and the milestone name. These are the things I’m actually gonna be using for the milestone name, because in these you can do multiple variables. So now because this gets the milestones back, I’m saying for each milestone, the bottom here and out of here, set the various milestone name and percent complete. Now I have two variables that I’m setting in here, milestone and percent complete. And these ones are going into the array aggregator at the bottom here, both checked. These by the way are also the field names in your doc template. So if you look down here in the milestone, there’s milestone, which is the exact variable and is percent complete cap sensitive exact variable name, right? Milestone percent complete, really important. You have to match the milestone name, the variable names with your variables in here. Cause remember I’m not specifying those when I’m doing bird, all doing down here, when I was ahead of myself, but setting the text array, getting this additional array in the milestone array now, now getting two array. And now I have two JSON modules. This is the same exact one. The user text array from before, an almost identical JSON auto module with milestone array. This has got the second array in it. All I’m doing is going getting two. If you wanted to add a third looping section, add a third JSON auto module. Then same exact thing in here. Now I have two looping sections. There’s my user text array. There’s my milestone array, right? Thing in here is specifying the names of these variables. It’s all done really in your variable names here. And these are out of the array and they’re match this. They’re matching the miles. This is my variable name. This is my other one. Hope that makes sense. That’s a bit of an odd concept where you’re not actually putting the variable names in the merge here. You’re putting the overall section name and you’re relying on variables you’re setting to match.

If that’s confusing, you can record it. So, most of the day. When you run, if you show what the inputs are, you will have the examples listed as milestone and complete, it won’t be easy. Yeah, you can see them. It’s a ray with more than one item in it here, right? So you actually look at the milestone text array here. Here’s what I’m doing. I’m setting this as two items in this one array. This whole thing is the array.

because I told it to supply the text. These are in order of milestones. That right? So then it merges in and it pops up for doc. And then if you go back here and refit, it should say something from 11, which is this one, 1132 filled out PDF. This one, key stakeholders and milestones. Here’s my initiation come to delivery close. And you can see it’s got my exact percent complete tasks. Tasks of the milestones here are, if I can find my project, they are just in tasks.

And this kind of thing doesn’t care. It’s just saying, whatever the milestone initiation developed, sending the parent task numbers, they don’t have to be parent tasks. One of these is not the delivery.

And it would pick up the regular time.

20% parent task based milestones. It’s nice to see what’s happening in the project.

And I’m pretty good.

What we were courting and also in the deck that we provided. I’m just sharing a new jump and move on.

I think that’s it.

Don’t worry, that was the third one. Yeah, number four.

Let me just get to the slide here. Quite as fast.

All right, so let’s go back in. Okay, so the next exercise here really just speaks to my PDF. So in the three exercises, three disparate discrete PDFs were outputted. And it’s possible that you have a use case and you need to combine those. And this scenario speaks to that. So we’ve created a demo. So if you just got the binary, the actual contents in a data form, use the edge and aggregates the files and then feed all of that data into the merge action to combine the PDFs and upload to Workfront.

So we’ll bring it up just like in all the other scenarios. We’ve got our project ID to start with. We’ve got a file name.

We’re using a custom API call.

So this is again, because the actual search module that would run a custom API call in the background doesn’t allow for what we call cross object searching. So what I’m doing is I’m looking for documents that belong to the project that have been uploaded where the current versions extension is PDF.

I’m doing a sort just like Brian did. I’m sorting on the entry date because we wanna take the earliest first to the most recently created and then I’m pulling back fields.

Just a quick note here, I posted in the chat, but if you wanted to find out things are connected, we’ve got this API explorer. You first find the record that you’re starting from. So we’re starting from document. You can see all of the system level fields here. On the left it’s like the label, so user friendly. On the right, it’s what the API uses. So that’s what you’d need to compare input. You can see ref, initially think of document would to say a portfolio to project.

Think of what’s in the document but like claim information in your collection.

We enter the references and we want to click on this here, conversion which is the endpoint really is. And then you can see the X.

I want to find the file, the extension is a PDF. That’s stored.

Oops.

We’re gonna have maybe more than one we feed in the ID, stand with it, user aggregates it. I’m saying it’s a different brain has.

So it is the default target.

For what it outputs is kind of mapping. So you could check for example, check the output IDs.

You’ll see I’m not using any module after, anywhere after in the scenario, long as it’s on the path. If not has a setup that would allow for a structure to be input to it. So not just name, for example, the main structure which this is, like our document and it’s like file, return pages. You can have it output the information, the exact structure that the module needs to be successful. So if I click on the icon again, I’ll pop in the array and you’ll see we’ve got the structure type documents and telling it that we want it to push out the data in the exact structure it needs. So the essential file will be found and it’s okay. 10 however many there are and the structure that we need.

So in our case we have because it’s three different exercises. We have each one. We output the binary file along with the names. And we use this combined function to merge them one to one.

The numbers up do get to, would do the other which is not what we want.

I know I wanna down this PDF over here. PDF, another download. You can use it right here. I put those hard code there. Yeah, it might be a little easier to grasp than the iterator piece. But it’s also, the iterator piece is fantastic because you go figure out which documents are on your project and go merge those. Yeah, so in our case, we were looking for all documents that were PDF. So there were three before from what we populated. First exercise, second exercise, third.

Ordering them in order of the first one created by the entry date. And then we merged all three together to create this output file where the first one has what we did in the first exercise which was just that project overview. The second page has just the key stakeholders which is the second exercise. The third page has the key stakeholders and the key milestones which was the two looping sections that Brian went over.

So that was one of the things that you can do in the merge operations. But actually what would be more efficient would be if we just put it all together in the first place. So like close this one and we’ll go back to the presentation just to see what we have here. So already, as I mentioned, I already talked over this. We talked on how you can have a dynamic structure type to output and it can handle then as many documents as you throw at it with just that one download module.

And this is the final scenario. So there’s a few things we’ve done again with bells and whistles where we’re basically combining everything that we did really in the first three exercises. We don’t really need the merge in this case we wanna output one document with all of the different things in. We made it event driven. So instead of clicking play to have it run, what we’ll do is we’ll check a box in a form that will trigger fusion to gather information just like it did in that first exercise. Download the word template, grab the project user information and format exactly as we need, grab the project milestone information, format exactly as we need and then merge all of the data into the one with that word templates file, convert it to a PDF, upload that to our uncheck the box so it can be triggered again and then create a note letting the user know that essentially the process is complete. So we’re gonna go into the actual project here. We’ll go into the project details.

This is a real simple way to trigger an automation. So in general, if you think of things that would trigger it, you’ve got polling based mechanisms which means on a selected period, maybe once a day, go look for things that meet criteria that can be useful for reporting things. It can be useful for reminder automations or there’s event room, which means as soon as this thing happens, like as soon as the status meets a certain criteria or in our case, as soon as this generate project summary box is checked, go do something. And that’s a custom form right there called summary with one field. Yep, yep. I’m gonna click save changes and hope that I get to this in time. Yeah, so it’s running right now, but I should have clicked into the scenario. You can click it on the right now, click on the February 17th. Oh, okay, that’s another. New feature, new feature. You can click on that now. You should have looked at that. I didn’t know that I’m running as well. So what was that? 14 seconds end to end? Actually faster than when it was earlier on today. Let’s take a look at what happened.

Refresh here, that box should be unchecked again.

Sorry, I did close out. Open, I should.

Yeah, it’s good. Admin user commented.

In here, I’m not that great at making good notes.

You can put whatever you want really. So long as it’s something that’s logical and we tagged the person that made it and you can see here. All right, just about to criticize your note content there.

Well, I’m just not creative in that way. So yeah, I’m glad you criticized.

Sorry, I didn’t have to. All right, then we got our fully filled out files. This is everything all in one, right? We’ve got the project overview. We’ve got the stakeholders and then we’ve got the milestones, the server pages, we’ve got the head and so you can see what they mean.

And the page count.

That really just gives you a little slice of what is available within the PDF service. There’s actually a lot more that you can do. So we’ll go to our final set of slides here that we’ve got. This is all of the actions you’ve got, right? So there’s a ton of things you might wanna do with PDF services. As I mentioned earlier, you could use generate document and you could use convert HTML to PDF. So convert HTML to PDF would be entirely providing the input as HTML. So full control over everything, but you’ve gotta know HTML well to be able to construct exactly what it needs. Generate document is similar to the word template one. It does use a word template. It’s just the output from it is only gonna be a PDF. You’re not gonna have a word doc that you can edit.

The split PDF, which you might wanna create a PDF from sub pages of something existing. Maybe you only want pages one to five of a 20 page document or pages one, three and five, you could use that. There’s an extract text and table, which is super handy as well. So you might wanna use content that’s in PDF or else you can linear. This is a hard one to say, linearize the PDF. So if you want a web optimizer, you can run it through that.

OCR for a PDF is super cool. So if you have the, it tends to be older files these days, but essentially those PDFs that have only images in it, like from a scan document that hasn’t been OCR rendered already or pictures of text in it, that will actually convert it into a digital machine readable files. So something that’s actually usable for editing and things like that. And then protect your file, which you may wanna use a lot down a PDF or send out to signing. So there is also another module, which Brian might wanna talk through here for Adobe sign.

For this end, cause I don’t see enough people do this, which is there in fusion. There is an Adobe sign integration, which imagine you have this PDF that you just created. You can go get information out of the work front project, PDF, and then you can actually create a signature and send it. So after you create it, you add this pre signature, pre-create a signature requirement in the sign software, you create these signature agreements, and then you can apply those to these within fusion. So you apply it to your document and send it to folks for a signature. Then once again, I just don’t see any people taking advantage of this. It seems like a nice way to get somebody to sign off on something that has to do with your project, like an official signature. The other cool thing is you can watch, you can see at the top of the triggers on the right there, watch for agreements, watch for events. There’s different watch things you can do. So you can watch for a final agreement. Somebody get all the people signed your agreement, and then you can send notifications saying this is completed and then maybe archive the doc or send notes and archive, whatever you like to do there. But you know, sky’s the limit. There’s lots of fun things to do. And you can see all the options on the right for the Adobe sign integration, which flows right into these PDFs. Cause they’re a perfect document format for this kind of stuff. Cool. So I think that’s about it for the slides here, right Pete? Yeah. So the only other thing I was gonna mention about sign integration is you can assume that things like notifications are also built into it. So with the adding the signature and sending agreement, you can also set up how often you want people to be reminded if they haven’t made a decision and signed it. So it’s just really cool. But you’re right. That is most of the size of the deck and at the moment we can open it up for Q&A if there is any.

Yeah. There’s a couple of questions straight out of the gate. I will say that the 2015, Cynthia would have really appreciated the milestone report output. Like that took a really long time put together for leadership, but that’s okay. It’s only 10 years, 11 years.

Pete your note game is fire. You’ll be fine. Okay.

So let’s go to the, and these are questions that I not know the answer to. So, on the side is this in TLS space connection? No. It’s the default. The connection is server to server. So it’s not mutual CLS.

You would, and she’d go ahead. Oh, so you could potentially do some through, you’d have to, if you were going, if you had to use that form of connecting, you would have to do go in through like the custom ATB connector, which is then you really got to start the API documentation and you’re, you know, like you have to construct everything yourself. You won’t be able to do it through the PDF modules.

Okay. And then Corey wanted to know, isn’t JWT deprecated or soon to be? Yeah. So the, the is the modern way of doing it. It’s just there as still as for folks that haven’t upgraded and it’s still already have that.

Okay, cool. I think the last one before we open it up was about Adobe sign. Oh yeah, yeah, yeah. Is it accessed by the same dev console? It is, you have to sign up for the service ahead of time. So that’s a kind of two part of the service. Then once you sign up the service, should be able to get that signed in through the console and get the connector.

Okay. If you have trouble with that, let us know. We can look into that a little more.

Yeah. One more thing to add just real quick is that you can, with that sort of setup, one of the other good things about the dev console is that if you create a project, so long as the account you’re using, you know, has the appropriate, so long as you’re able to kind of permission, add these, I can’t say it. So long as you’re able to like access the products and the API, you can have one project, one or off kind of connection set up and you don’t need to add products to it. So you wouldn’t have to generate an entirely new set of credentials for each one of the different APIs.

It’s kind of one of the neat things of the develop console. Sorry, carry on Cynthia. No, no, I love that. That’s actually, I understood that answer.

So Kelly wants to know, actually this is a really good one, practical question. Go ahead. Brian, what did you say? It’s actually asking me when I do the sign, it’s not asking me for those credentials, it’s asking for an email and password for your Adobe sign account, which means it’s very personalized. It’s not going through the dev console for this, sorry for the misinformation there. Yeah, so username and password for that one. Okay.

I think a lot of people would want to know from Kelly, would it be possible to build something that attaches the Adobe sign to the document or proof approvals, like sort of building that all in? Dr. Explorer, good question.

Yeah, I should have ended the session at proof. I’m just kidding.

For it to walk through that exactly what you want to do there, you can certainly integrate with the proofing tool and you can obviously play with documents in a work front. The Adobe sign is very separate from the proofing tool. So you could, if this gets approved, then you want to send it for an Adobe sign official thing, you could probably attach an agreement to it and send it out. Do you want to do something like that? You can trigger things off the proof approval, for instance, and then go take that document and do something.

Okay, that actually does make sense. Okay, that would probably be the way to do it. Okay, persona, can AEC forms integrated with Fusion use PSD services to generate the PDF with defined templates? And these are from the chat. Yeah.

You can definitely use PSD services to generate PDFs.

To do that, the PSD services are pretty thorough.

And fill in layers, different things with Photoshop layers and things using the Photoshop stuff. We’re starting to scratch the surface a little bit more. We may do a future webinar on Photoshop, when we get a little more in depth into it. Oh, that’s cool. All right, thanks. Monique, well, we need a service account so it doesn’t appear to be coming directly from the Fusion builder.

So the creation of the PDF is a technical account. We used a service account in our Workfront connection so that it didn’t look like Pete created this file. And that would be best practice anyway. So if you’re doing integrations with, let’s just say you’re doing automations in Workfront, ideally you would have an account that’s not tied to a human, because you don’t want the user like Cynthia did this, Cynthia did that, because then people didn’t reach out to Cynthia and it assumed that she knows what’s going on and it’s an automation. Yeah.

Yeah, I mean, I usually, I had a separate user called admin user. So I think that may be best practice generally speaking.

And you could be mad at the admin user. You don’t have to be mad at Cynthia. You’d be mad at the admin.

Okay, can the system be smart enough to take the document to one page, i.e. make the font smaller or move it around? There’s no explicit scaling in the scenarios that we run through.

I think you would be more likely to do that with PSD services than PDF. Or InDesign, yeah, both. Or InDesign, yeah.

Love that. You have more control over the fonts in use and things like that. Or is it relied on a template that’s already set up? I do love that question though. The control freak in me does, that appeals to the control freak in me, yeah.

That’s it for the chat. Does anyone want to come off? Got a few minutes left.

If not, we can just run through a couple updates.

All right, let’s run through some updates. I’m gonna take over the screen if that’s okay with everybody. Oh, perfect. I don’t know who’s doing that, but that works for me. Okay, so. The automation. Yeah, thanks.

So just real quick, these are the events. These are on Experience League right now. I do want to point out a couple.

We do have a Blueprints one and a Workfront Planning one, but there are two in-person events. One is the Insider Tour in Seattle. I believe they’re getting really close to filling all the seats for Workfront. So if you’re interested in meeting people in person in Seattle or in Atlanta, please click those links and register.

Yeah, and then we’ll do more. There are gonna be more insider. From what I understand, there’s gonna be Minneapolis, New York, Seattle, maybe. So yeah, or not Seattle, San Jose. So just FYI. The Qualtrics survey is in the chat. I know y’all love Brian and Pete. You know what Brian and Pete would love? To know how much you love them.

So please fill out that survey and say this was fab so that they’ll come back and do more of these sessions with us. Next slide for me, Pete.

Adobe Summit real fast. You’ll get these links, but it’s coming fast. It’s coming in April. We do have a blog on Experience League. If you are a work fronter and you’re planning on going, and a lot of times it’s just you from your company and you wanna connect with others, I’m looking at you, Monique. We as a team try to connect all of our Workfront ducklings and actually have you guys meet up for breakfast and try to get product, come talk to you. So if that’s something you’re interested in, please go get that blog. And then yep, that’s Monique live footage. Okay, and then last thing, Fusion Resources. So I put the Jasonata event in the chat, but you’ll have links. There’s also the one that they did for Automating Naming Conventions and then Data Imports. So there’s a bunch of events. There’s some Experience League posts, and then also the Fusion Labs at Adobe Summit. Can’t speak enough about those. They just get the best feedback. So if you’re going to Summit, sign up for those labs. And that’s it.

Thank you both, Brian, Pete, y’all are amazing.

I don’t know if you’re gonna hear that from customers the rest of the day, but I’m gonna tell you that you’re amazing.

I usually hear you are, but not followed by something positive. So that’s nice, thank you.

Yeah, these are a lot of fun. We enjoy putting these together and the feedback is very helpful. So appreciate you guys filling out the forums and good to see everybody. Thanks for coming. Thank y’all for spending an hour with us and we’ll get that follow-up email out as soon as the recording gets rendered. So appreciate y’all and have a great rest of your week. Let the good times roll, see you. I’m playing together, everyone, thanks.

Looking for more resources from the event, including the slide deck and zip file discussed during the session? Check out the Experience League Community post!

New events are added every month, so make sure to check out the Experience League Events page for the latest sessions.

recommendation-more-help
6edade56-d2ab-4a9c-aa51-c4621d6137a0