Reltio Connect

 View Only

Making Reltio Workflows Work for You - Show

By Chris Detzel posted 02-14-2022 15:12

We will be covering workflows from what comes out of the box to the art of the possible. Learn what it take to integrate your business processes into your Reltio tenant. ​​

Join @Joel Snipes , Senior Technical Consultant and @Chris Detzel , Head of Community, on another show on the Reltio Community around Workflows in the Reltio product.

We will be covering workflows from what comes out of the box to the art of the possible. Learn what it take to integrate your business processes into your Reltio tenant. ​​

Check out the PPT here: Making Workflows Work for You

Joel Snipes (00:02:11):

All right. So today I want to be talking about what's really possible with workflows, and this is going to be a bit on the advanced side. So if workflows are new to you, I would strongly encourage you to go review Dan Gage's community show from a few weeks back. It was really, really good. I learned a lot from it, and we're going to take the foundation he built for us and go a little further.

Chris Detzel

And I'll post that in the notes or chat.


Joel Snipes (00:02:42):

That would be awesome. So when I think of... Let me start with what workflow is, just in case anyone is new. Workflow in Reltio is a system that allows you to manage your business processes and task in a very methodical, organized way. So if you have a certain process, maybe changing a record, or you need an approval before you delete a record, it lets you put a system around that, so that nothing falls through the cracks or gets left behind. You can manage your work queues for your data steward, that sort of thing. So Dan introduced us to Workflow with the out of the box, and some of the custom stuff you can do with the BPMN modeler. So out of the box, we have a data change request, which is the ability to suggest a change to a record. And then it moves to someone else to be approved. We had a delete request, same idea, but for deleting a record, and potential match review, which is you queue up potential matches for your data steward to review and make a decision whether to merge or not to merge.


Joel Snipes (00:04:06):

So just a quick review on what that looks like a data change request, for example, could be we're looking at Warren Gouk here, and I decided that his phone number is wrong. I could go to suggesting as a data steward, update his phone number to the correct one, and hit suggest. And when this request goes through, you'll see the phone number didn't change, but I do get a notification that a workflow has started and been sent for review. And then a nice little pop up saying that there is a data change request on this record. You can see what the change looks like, so the old number and the new number, and it conveniently got assigned to me, so I can make a decision to approve or reject, or give commentary on this record. Now, the next level of customization and workflow is to take a process like this, and to build on it. So with our BPMN modeler, you can take an existing workflow and modify it, or build your own using our framework.


Joel Snipes (00:05:34):

So an example of this is, I've seen some customers where deleting an NT is a very big deal. And because of that, they want rather than one approval, maybe two sets of approval before a delete is actually processed. So if we take a look at how that might work, we go to the console, the workflow modeler. We can open an existing file. So this is the out of the box workflow. Right now there's one gateway with an approval. We could simply modify this, and add another step in the process. And I'm not going to work through the whole customization. Definitely take a look at what Dan has done, but I would add another X/or in between here, somewhere around here, and we would have two sets of approvers. And that's the kind of thing you can do. No need to mess with code or anything like that, just inside this UI modeler, very powerful.


Joel Snipes (00:07:02):

But what I want to talk about today is a third level of customization, and this is extending our developer library and framework around Workflow, to add new services and listeners, and tasks, and things you can do beyond what's available out of the box. So when we're looking here, we have this delete/review task, and it has a few Java classes associated with it. These are available in open source. What we're talking about is modifying either how these work, or creating entirely new classes to perform tasks. So instead of a delete, we could have an update, or merge, or something like that. Something that might not already exist. So in order to create these custom classes, the next step is to set up a local environment. So right now a workflow adapter is a part of production Reltio, and to make a modification to that source code, you need approval from engineering. So pretty difficult to develop if you don't have a local development environment.


Joel Snipes (00:08:26):

And what you do is we actually provide a version of the workflow adapter you can run locally, and you can use that local workflow adapter to experiment with modifying the classes and libraries. Get it how you want, and then you can submit your new functionality for review to our Workflow team. They normally have about a 24 hour turnaround to approve it, and you'll have some new features in production that can be specific to you. So some of the cool things you can do are you can now reach out to external systems. So if you need to integrate any external system in your business into your workflows for approvals or changes, maybe you don't want a particular person going into Reltio, they already manage data change requests in an existing system. You can integrate. So very cool, very powerful, but there is a good bit of work that goes into the setup of that. So my goal today, the goal of this community show, is to get you set up with a local development environment that'll let you extend Workflow to do whatever you might be trying to accomplish.


Joel Snipes (00:09:42):

I had to steal this slide from Dan that was a really good one, but it's just an overview of what the BPMN process is actually... what's happening overview. But I'm going to jump right into it, because there's a lot to cover. So the prerequisites to setting up a local workflow environment are you need Java 8, you need a MariaDB or MySQL DB database installed on your system. You're going to need a Java IDE to modify the source code, and you're going to need MySQL Workbench to manipulate one of these two databases.


Joel Snipes (00:10:26):

So there's probably a bit of assumption that most people who are looking to accomplish this probably are already Java developers, but if not, just Google Java 8 JDK, and download it from Oracle. Or if you're unsure if you have Java 8 already, but you know have Java on your system, you can always go to the command line, and type Java/version. And you can see I'm at, at 1.8, so this is Java eight. So I have the right prereq here. So the next one is MySQL. I'm going to go ahead and get this database installed. I actually deleted everything from my machine ahead of time for this, because I wanted to show the setup from start to finish, in case I forgot about any little steps along the way.


Chris Detzel (00:11:37):

A quick question. Does it have to be the JDK from Oracle or can we use other JDKs from Zulu?


Joel Snipes (00:11:52):

I think any JDK 8 should work. I don't think the one from Oracle is mandatory.


Chris Detzel (00:12:07):



Joel Snipes (00:12:07):

I've only used the one from Oracle, though, so I can't guarantee it, but I would expect it would still work. All right. So then you just download this. It's actually a pretty big file, so I'm going to use my existing one. So we don't have to have a demonstration of my internet speeds. And while this is working, I'll show you where to get Workbench. It's just dev.mysql, downloads, Workbench. So you can download this file here too. I already have it downloaded.


Chris Detzel (00:13:15):

We can put that in the presentation that you have, too. Put the links together, if that's fair.


Joel Snipes (00:13:22):

Yeah. So walking through the install steps. Got a little error saying my path already exists, but that's okay. I'm going to go ahead and just install it at the default. It looks like Workbench actually comes with it, if you let it. So you might not have to go have that down separately. But there's some configuration steps we got to be careful to make while we're completing the installation, and that's why I wanted to share this process.


Joel Snipes (00:14:20):

So while that's running, I'm going to give you a preview of the next step. So once you have Java installed, or if you already have it installed, we want to make sure that Java home is set in our environment variables. And to do that, you go to Windows, advanced system settings, environment variables. And I already have mine here, but what you do is hit home, Java, home, open up on windows Explorer. Go to your local disc, program files... or misclick... and find your Java path. So I'm going to take my more recent one here. Yeah. So it's just this folder path here. So once you have your folder path, set it up and set your variable here. Let's check in on how this is going.


Chris Detzel (00:15:47):

And while that's still going, I do have a question. It says we have a requirement to send data change requests to external data stewards who do not use Reltio. Is there any way we can programmatically extract DCR data in CSV or JSON files?


Joel Snipes (00:16:07):

Yes. So a data change request is a JSON request, just like a create entity request is. It's just a parameter that's set that makes it a data change request instead of a post, or an update to the record. So the JSON, isn't the hard part to get. What you're going to need to do is, with the external system, it's going to depend on what that is, but if you can interact with it in a rest API format, you can modify or create a class that will send that request to the external system, that acts as an interrupt.


Joel Snipes (00:16:50):

So when we look at the data change request class that already exists, that class is going to already have access to the JSON. All you're going to need to do is add an additional rest API request inside of there to your external system, so that that information gets passed along. And then on your management software that's external, you're going to need to make rest API calls back to Reltio when you're ready to actually make a change, or make a decision on a data change request. So I'm going to try and touch on that. I know verbally that's messy, but when I show you the code, it'll make a little more sense later on.


Chris Detzel (00:17:30):

Yeah. And just quick follow on, on that, is since it can be done, can it be done from ROCS utility, or is there any specific rest API to use? Did you just tell me that? Sorry.


Joel Snipes (00:17:45):

So let's look at the API. The install is taking a little longer, I think, since I'm sharing my screen.


Chris Detzel (00:17:59):

The beauty of demos.


Joel Snipes (00:18:18):

All right. (silence) So looking at this API, which is a get call on a workflow task that would be created by starting a data change request, you can see... there we go... you can see your options for what can be performed based on how you set up your workflow. You have the entity ID available for what's being affected. And let's see, this is the review, and there's also the attributes itself in there. What has changed. So if we find the right API, it might be this one, or it might be... This one. You'll have all the information available within the Java class from one of these APIs. And then when you make your call back, you can make a decision. So let's see, where is a decision one. Let me see what I can close. This is... Here we go, update a task. So you can use this to send your decision. I really hope this isn't hanging.


Chris Detzel (00:21:37):

It's going really slowly.


Joel Snipes (00:21:39):

Yep. It is. It's still moving. All right. Well that is a bummer, but there's still some more we can do while we're waiting. So while your SQL database is being installed, there's a few more tasks we still have to do. And one of those is to download the workflow adapter. So this is the actual Workflow software that Reltio is running in the background, and that you're going to deploy locally. So to get this code on your local machine, what you're going to want to do is come to the setup workflow adapter page in the documents, and you're going to want to download it. And the JAR link is not kept up to date here. So 2021.2 is a fairly old version of Reltio. So when deciding what version to bring down, what you're going to want to do is go to your tenant, click the triple dot in the top right, and go to about. So what this is going to tell us is what the current version of Reltio is, and this is the version that we're going to want for our workflow adapter. So this is 2021.3.13.


Joel Snipes (00:23:20):

So the link that exists here, I'm going to right click, copy link address, open a new tab. And this is a bit tricky, but what you're going to want to do is you're going to want to modify the version here in both the folder and in the JAR file. So 2021.3.13. So I know this is probably small text, but we're just updating the URLs so that it pulls down the right JARs. The first time you do this, it's going to ask you for username and password. And that username and password is available right here in the doc, so just go down there and copy that.


Joel Snipes (00:24:21):

And you'll be able to download the JAR. Now, setting up your environment. I recommend creating a Reltio folder in your main drive. You see? Then a Workflow folder, and then saving it there. Interestingly, since I was working on this even last night, a new version has come out. So the latest was 2021.3.12.1 yesterday. Now it's 2021.3.13. So I'm going to save the latest, and now I have my workflow adapter ready to run. Let's check in. Oh, we've made good progress here.


Chris Detzel (00:25:05):

So close.


Joel Snipes (00:25:06):

Yeah. Thank you for bearing with me.


Chris Detzel (00:25:10):

So a couple questions. So it's still activity as back in for Workflow. I'm not sure I understand the question. But he says, is activity as back in for workflow? Does that make sense or no?


Joel Snipes (00:25:32):

No. I'm not sure.


Chris Detzel (00:25:33):

Yeah. And if you just want to just repeat the question. And then another question, we have a requirement where when the initiator creates a record, auto generated fields should be populated and match rules should be applied on the record before it goes to approver. Is that achievable?


Joel Snipes (00:25:53):

So in auto... So yeah, you can create the record with a data change request set to true as a parameter. So in the entities API, always create DCR. This is the flag I'm looking for. You want to set this to true, and any record being sent will be created as a data change request, and automatically be round robined and assigned to different approvers based on their role.


Chris Detzel (00:26:35):

Great. Thanks, Joel.


Joel Snipes (00:26:38):

You're welcome. All right. So for config type, development computer, and the port 306 is fine. We're going to use the recommended strong password encryption. So, important to set your root password here as something you remember later on. Hmm.


Eugene (00:27:20):

Maybe not enough characters?


Joel Snipes (00:27:33):

Hey Eugene. Apparently after my uninstall, it left my root password in place, so good thing I remembered it. All right. So it's going to set up a Windows service that runs in the background and manages the MySQL installation. And execute. So this is going to set up all your firewalls, and run the server in the background for the first time. So I'm going to only be using it locally. I don't need to set up any router. You're going to want to set a root username and password, and for this and the example in the docs, so that if you want to be following along with that so that if you're having trouble, we have been sending this to... Let's see, I think... Graphics. There we go.


Joel Snipes (00:29:26):

Sending this to custom workflow. All right, and execute. Finish our setup here. I'm going to go ahead and let it start Workbench for me. Awesome. And we have arrived. So here is my local instance of my server. And it looks like it left my old database from before. So I'm going to drop it, just so you can see everything be created for the first time, so you won't have to do that step. All right. So now that you have MySQL installed, first thing you're going to need to do is create a database for your custom workflow data to be stored. All the schema for this is going to develop dynamically by the workflow adapter JAR. So that's created, and now we're going to create a user called custom workflow at local host, identified by custom workflow. All right. So that's just so that the user that our adapter's going to be using to connect. And I think my user already exists. And then once your user is created, we're going to grant all on custom workflow the database to your user, also called custom workflow.


Joel Snipes (00:31:56):

There we go. All right. So now our user and database are all set up. Our next step is to go back to our workflow adapter. So we saved that in our C drive under Reltio Workflow. I'm going to open a command prompt, CD to that folder. All right. To start the workflow adapter for the first time, this is available in the docs, but you basically call the workflow after JAR with some parameters, one of which is a configuration file. In the configuration file, you need to populate your client ID and secret, and your username and password. The username and password you use needs to have role workflow, and role workflow admin. You also, if you decide to stray from the name of custom workflow for your database, your user, or your password, you need to put the appropriate values here. So if you follow along and use just the value I demonstrated, it'll work fine, but if not, you'll need to put your specific values in.


Joel Snipes (00:33:30):

So after you copy this config file, you're going to save it as in the same folder as your JAR, and that will be one of the parameters. You'll see it here, So once you have that, make sure that you're running the newest version of your JAR. Previously, for me, that was 12.1, but now it seems to be 13. So I'm going to update it, and try a new version in a live demo. So on the first run, you're going to see a whole lot of database action happening if you configured it properly. It's going to be creating numerous tables and columns and schema that is going to support the workflow adapter. It manages your activities within the workflow, and where it is in the workflow, that sort of thing.


Chris Detzel (00:34:46):

Couple of questions, while this is going, I've got two questions. How do I automate potential match requests based on specific rule defined configurations, so that every time MDM finds some match suggestions, a potential match request workflow gets triggered?


Joel Snipes (00:35:07):

That's a good question. So I think what you could probably do for that is set up a listener for potential matches to be created. So a potential match listener could start a workflow process. So you're going to want to take a look at...


Speaker 4 (00:35:29):

Give me one second, Mike.


Joel Snipes (00:35:36):

Let's see. The start of it, listener here. So right now this is in ROCS workflow folder. I'll put this in chat, and we can put this in later, but this is where a lot of the services that Reltio has defined for you, like the ability to recommend for delete, the service that enables that is this delete class here, right? It deletes an entity. The potential match request is neither a merge or not a match. The classes that support that are here. So you can modify the behavior of either of these to change how they work, and compile this to the JAR, and send it to your local workflow adapter to test. So what you're going to want to do is look at the start event listener and set it up in such a way that it'll listen for potential matches being created, and have that trigger a workflow to immediately be assigned. I think that would be a really cool project, and if you do get that working, you should probably share that in the community. Because I think a lot of people would be interested in that.


Chris Detzel (00:36:59):

Yeah, thanks. And there is another question, but it looks like it's still going. So how do I integrate workflow requests with Slack and JIRA, so that an automatic JIRA Slack request gets generated? I mean, you don't have to do the demo now, but any thoughts there?


Joel Snipes (00:37:14):

Oh, definitely. It's possible, but any of these custom integrations, they're going to be a bit of a project with trial and error, right? You're going to have to be familiar with the JIRA rest API as well as being familiar with this Reltio workflow integration. So what I would be looking to do is, coming back to our Java classes here, would probably be something along the line of creating a class called assigned JIRA, and maybe take the delete class as an example here.


Joel Snipes (00:37:55):

But you can see we build the URL and we make a rest API request with this URL further down to Reltio. So with Reltio, you have this nice service that's managing the token and that sort of thing for you. You're going to have to find a development kit for JIRA, or build some wrappers yourself so that you can make similar calls to JIRA in this class. So when execute, theoretically, if this is assigned JIRA as a service task, it'll make that call out to the JIRA process. So in a hypothetical world here, let's just, this won't be functional code, but it'll be good pseudo code to see how this might look.


Joel Snipes (00:38:58):

We'll create a new service called assign JIRA. Right. And this will, you'll compile this and put it in a JAR that you're going to post to your LTO work flow adapter. I'll show you that API a little bit later. So you're going to have to get an access token for JIRA, just like Reltio. You're going to need your JIRA API somewhere along the line, your JIRA instance. And you probably don't have an existing ID, so you'll build the URL to make a request out to JIRA, and you'll have a body of some sort, right, where you're going to put things like the environment, the tenant, right?


Joel Snipes (00:40:01):

Because whoever's being assigned this JIRA ticket's going to need to know how to find this record, right? What environment were you in? What entity, what have you. And you're probably going to want to have a parameter of, let's see, a description perimeter, right? Of what needs to happen to this record. Why was this JIRA ticket created? What action are we looking for, to be executed here, right? And the execute call will create the JIRA ticket in your workflow, and so we'll have a class called, com.reltio.workflow.activity.service.assignJIRA. And once we post this to our Reltio instance, instead of a delete service, right, we'll have assign JIRA available to us. And that is how you connect the class that you added to your service within the BPMN model. So recommend for delete is my favorite workflow to extend, because it's a pretty straightforward one, and it branches off the workflow tab here. So in a hypothetical world where this is not recommended for delete, but it's actually assign JIRA. Let's see if I can find...


Speaker 5 (00:42:11):

Just wondering Reltio integration hub has JIRA and slack connectors seen somewhere. That'd be easy to integrate than modifying the existing classes? I mean, this is another way we can do that.


Joel Snipes (00:42:24):

Right. Yeah. Reltio integration hub is definitely a path you could look at. So when you're making that rest API out, right, you're making a rest API call from... where did my... from here, right? That rest API call can go immediately to JIRA, but if there's multiple things that need to happen, you could make the JIRA call from your LTO integration hub, and make this call to route to your integration hub. And having that middleware layer will let you do a lot more than going directly from one service to another. You'll have a chance to manipulate and transform that sort of thing. But if you can imagine this, that assign JIRA here, you could have a couple fields, or places to put notes, hit start, and a JIRA would be created. One of the things you could do would be have it update this record with an attribute of the JIRA assigned to it. There's definitely really cool opportunities to extend by modifying the classes.


Joel Snipes (00:43:26):

So it looks like my workflow adapter is up, and you can test that by going to the status page, which is, you can see it work, just your local host, workflow after workflow status, and I can see, okay, the memory use, that sort of thing. So now that I have a working workflow adapter, which is really awesome for doing that custom development, right. I can send my JARs to this. I can send my custom BPMNs to this, that I was touching on before. But to be able to see how this would affect the UI, I need to change which workflow the UI is pointing to. So the way you would do that is go to console, UI modeler, import and export UI config files. So in here, we're going to look for the workflow JSON, and I'm going to export it.


Joel Snipes (00:45:05):

All right, save this anywhere, and then open it in a text editor. So what we're going to want to do is we're going to assign a workflow path that points to our local host workflow adapter, rather than our existing production workflow adapter. So something to note about this, it replaces the workflow adapter when you're looking at entities and that sort of thing. This does not affect the workflow adapter used by the console. So that's something that can be pretty tricky, because you can think you're working against your local host, and you're actually working against the production server. So just be aware that if you're in the console, you are still working against production and not your one we just configured.


Joel Snipes (00:46:13):

All right, so I've pointed it at my newly configured local host. I'm saving it, but I'm going to go back here and hit put import and replace. So if the file gets modified, review my changes. It looks good. All right? And hit replace. That often can take about five minutes to see our change. But once we've made the changes taken effect, you will be able to tell that this workflow adapter is not the one we're currently working with. All right so after the change has taken effect, we have a fully duplicated workflow adapter running on our local machine, and our UI will be pointing at it. So it'll affect how Reltio looks on the screen. You are now ready to actually start modifying code, creating custom BPMN files, and applying them to your adapter and testing things. So while we wait for that, are there any other questions, Chris?


Chris Detzel (00:47:34):

Yeah, there are a few actually. So we have 13 minutes just FYI, but can I see how the UI looks for a custom workflow? And can that UI be expanded to show other fields, like three fields approved by the first approver, and then another three fields approved by a second approver, something like that?


Joel Snipes (00:48:00):

That's a good question. From the UI perspective, there is less to change, so in terms of updating the services, which are what either users do or systems do, you can change the tasks that are executed and how users are assigned, that sort of thing. Updating how the user interface portrays these things is a little trickier. It might be able to be done, but I haven't actually seen it done or done it myself yet.


Chris Detzel (00:48:40):



Joel Snipes (00:48:40):

If you wanted to explore it, you definitely need to just dig into some of the classes and stuff available here, and see if you can find anything that looks like it. I think we might be looking at going into the JavaScript, actually. Yep.


Chris Detzel (00:49:04):

All right. Thanks Joel. And then we have a DCR for a create request. Actually the question is, can automatic filters be populated, and can the record participate in match and merge before it goes to the approver?


Joel Snipes (00:49:22):

Yeah. So that record still exists outside of the workflow. So unless the data change request is for a completely new entity, that entity still exists in Reltio, is still being acted upon by match and merge rules. So it could be merged. It could be changed before it gets to the data steward, and that could be quite confusing, right? Because the person who started the data change request might be looking at a fairly different record than the reviewer who actually received it. So in those cases, it's always good to take a look at the history of a record to see if you can figure out maybe what's happened to it over time, to figure out how it got to how it looks now. This record doesn't actually have any history, so it made for a poor example. Like a brand record that just exists as it is. That's a shame.


Chris Detzel (00:50:23):

Are you still showing something? Sorry.


Joel Snipes (00:50:25):

No, let's see if my workflow...


Chris Detzel (00:50:28):

No, I had another question if it's not up.


Joel Snipes (00:50:30):



Chris Detzel (00:50:30):

You want me to ask the question?


Joel Snipes (00:50:34):

Yeah, let's go.


Chris Detzel (00:50:35):

All right. Michelle asked, when creating a custom task assignment listener, I want to make a decision based on data in my party entity. So for example, if the party is an advisor, I want to send it to a different role reviewer group than the party entity is a customer. So example is advisor indicator equals Y means an advisor. How do I access our specific data model in order to code that information?


Joel Snipes (00:51:13):

That's a good question. To access that... The custom task assignment listening. Let's see if we can find that. So the task assignment listener, really, this one is actually really driving the notification of the assignment. So a better name might be assignment notification. So this one isn't really able to access the data and make a decision on it, because its real purpose is to let the data steward know, "Hey, this task has been assigned to you." What we really want to do is step back a little bit further in the process, and take a look at... Let's see. So we want to take a look at maybe the task start of this event listener, and this is where the decision is actually made of who it gets as assigned to you rather than just notifying the assigner. So we can see the assignee is decided by this get assignee method, or either the get possible assignee method, and that's coming from the task service class.


Joel Snipes (00:53:05):

So the next thing we'll want to do is back up and go find the task service class. And this is a pretty common change we get in custom workflows. The default process is these tasks are assigned in a round robin. So Reltio goes and looks and assigns it to the data steward who is the least busy, which is a pretty good default way. But sometimes we want to make a decision based on the data, and this is absolutely possible. One example of that is we had a global customer who wanted to assign the task based on the country.


Joel Snipes (00:53:51):

So if a task originated in a Japanese customer, we wanted it assigned to a Japanese data steward. If it was assigned in a Brazilian customer, we wanted assigned to a Brazilian data steward, right? Because they might not be able to read Japanese or Portuguese otherwise. So what you'll need to do is dig into that task service class, and modify how they are assigned. And I think that is actually further up in the workflow API library in... Here it is, task service. And you can see here, this is actually just a interface. So this would be a great case of a class that you can just take and implement in a different way than it is by default, and change how those data stewards are assigned. So there's a lot here, but task service is the class you want to look at for changing the assignment of different data stewards.


Chris Detzel (00:55:05):

Thanks, Joel. That's all my questions-


Michelle (00:55:08):

There was another part to that question. How do I access my data model?


Joel Snipes (00:55:15):

Good question. Let's go back.


Chris Detzel (00:55:20):

Good catch Michelle.


Michelle (00:55:22):

Thanks Chris. Wasn't going to let Joel off the hook that easy. Thank you Joel, for being a good sport.


Joel Snipes (00:55:28):

Anytime Michelle. So you take a look at the DCR type task listener. You can see there's an example where, let's see, there's a get on access token. I think there's also a get on the entity in here, but let me go to the bottom where there's an example of where we send. So we build this URL, let's see what we do with it. All right. So here, Reltio, API, invoke API. This method here just gets a token. So we're sending a Reltio rest request, up tight get to this URL with an access token. So just by deciding what type of URL you build, you could build a get URL, right? Get into these and then supply the URI, and you can get the entire JSON using this Reltio API.invokeAPI method. Is that what you're looking for, Michelle? Does that answer?


Michelle (00:57:16):

I believe so. As long as I have an idea of knowing what entity is happening in the potential match situation, and then I can do a call.


Joel Snipes (00:57:25):



Michelle (00:57:25):

I'll dig into that further.


Joel Snipes (00:57:27):

Yeah, you have the URI up here, so you could use that URI to build a get entities request, and then this response would be a JSON object that represented that entity.


Michelle (00:57:32):

Awesome. I'll dig into that. Thank you.


Joel Snipes (00:57:42):



Chris Detzel (00:57:43):

[crosstalk 00:57:43]-


Joel Snipes (00:57:43):

Oh, go ahead.


Chris Detzel (00:57:44):

No, we just have a few minutes, so I know you wanted to show some things.


Joel Snipes (00:57:47):

Yeah. Let me wrap up. Okay, so we have your local workflow adapter. You have it applied to your tenant. We've looked at an overview of what's available in the code. The next thing you're going to want to do to get up and running with your custom workflow, API find. All right. You're going to deploy your JAR, right? So you've made the changes to the code. You're going to compile the changes into a JAR, and make a JAR deployment call to post, to make your JAR available. That's what makes it available in the BPMN modeler, so you can use your new class or your modified class. So then in your workflow, you can apply that class, and once you have your model made correctly, because this model is developed in the console, this is against the production. So if you hit publish, you're publishing to your production workflow modeler.


Joel Snipes (00:58:56):

So make sure you hit save here. This will download the BPMN file to your local machine. And you're actually going to deploy it using this deploy BPMN code endpoint directly against your workload adapter. So this will be local host, that workflow URL? That's your local host that we just set up. And after that, you're going to have your custom JAR, utilized by your custom BPMN code working in your local environment. So you're in a position where you can test it, see if it's working properly, make changes. If you're happy, you submit a ticket to our workflow team. They review your code and they will apply it to your production if you're ready to move forward with it. So that's the whole process. I know there was a lot there, so definitely feel free to reach out with questions on the community.


Chris Detzel (00:59:52):

Yeah. And Alex, I know you just posted a question, and I know Ruben did as well. Please post those on the community directly and I'll make sure, and Joel will make sure, to get some of those answered. The deck will be shared, in addition to the video. I will post that on the community. So if you go to, at the top left or in the middle, you'll see events, click on past events. That's where it will be. My goal is to have it in by end of this week, but certainly early next week. So thank you everyone for coming, and Joel, thank you so much for going deep here. It was really deep. But I think people really did enjoy it, and I think going into the workflow stuff, I've had lots of questions around it. So I think this is really good. So thank you everyone for coming, and until next week, I'll see you again. So thanks everyone.


Joel Snipes (01:01:01):



Speaker 7 (01:01:02):

Thank you.