 I hope you're enjoying the event. It was a long time for in-person events, right? And I always have a dream to play on a Broadway show. So this is my day. No, just kidding. I'm better on the soccer field, actually, than on stage. All right, so let's start. I'm Olivier Poupenis from Symphony. And I'm here today to talk about how to develop. And automate workflows in seconds. About 2,000 years ago, inventors in China took communications to the next level, crafting cloth sheets to record their drawing and writings. And one fact highlighted by the pandemic we are traversing these days is that our way of working still relies on activities based on this invention. And work from home makes it costly and painful. So hyper automation. Gartner defines hyper automation as a business-driven discipline approach that organizations use to rapidly identify, vet and automate as many businesses and IT processes as possible. And no doubt that this will drive our upcoming challenges. Workflows are at the heart of hyper automation. So let's see now what kind of workflows we are trying to automate here. And let's see a representation of a sample customer activity cycle divided in three phases, pre, during and post. The pre phase is the period where the customer decides and prepare what to do during is when things happen and execution takes place. And finally, the post is to keep it going and make sure the cycle can repeat. Each phase is decomposed into processes. And if we look at the pre phase, we can have processes such as account opening, credit analysis and sustainability. During and post will have their own ones too, right? And again, this is a very simplified example and I'm sure that your activity cycle is probably much more complex. But this is for our understanding here. If we zoom into the credit analysis, we can identify a certain number of workflows like information collection, information analysis and credit approval. Zooming into one of them such as credit approval. And we'll see that we have to first request an approver, review the analysis done from the previous workflow, evaluate the risk and take decision on the acceptance or request a dedicated committee to take care of it and finally send back the final decision. This is the kind of workflow that we will explore today and see how to automate on symphony. Automating a workflow on symphony provides a lot of benefits that are listed here. And symphony has not been designed and is not in our intention to restrict the collaboration between humans but help humans to work efficiently. So what is the solution? The solution is to develop bots and bots can do everything a user can do and more. For example, you can format a nice message with enhanced controls from a bot. But the problem is that you have to code them and therefore imply developers. The hope is that low code and no code technologies will help to reduce the dependency of highly skilled personnel. Going toward no code is a ground that every organization is trying to reach. But the reality is that all of the effort will be limited in terms of capabilities. These technologies can help until reaching a certain level of complexity and are more adapted for small and moderate scale projects. But this is already good, don't make me wrong. This is already a lot. So how do we go from there? Innovation and reduced time to market are the main motivators for financial institutions to engage in open source. So from this statement, we studied how to bring low code and open source together. As a result, I'm happy to introduce here the Symphony Workflow Developer Kit. So here is a diagram to understand the positioning of the Workflow Developer Kit or WDK. The goal is to be as close as possible of a composable business where you can literally assemble business components together. Programming languages and generic low-code or no-code platforms have their pros and cons, right? But when limits are reached, the low-code platforms have the tendency to open to pro-code. At Symphony, we first opened a platform through APIs and provided a bot developer kit to ease the work of developers. The Workflow Developer Kit is the next step in our journey to help developers to build solutions. It can do almost as much as the bot developer kit can do, but with the potential to go toward our final objective. And we'll see that in a little bit. What is the WDK architecture? It's architecture sits on three layers. And the first one helps to describe workflows using a YAML-based language called SWADL for Symphony Workflow Automation Definition Language. You can represent activities triggered on events to manipulate a context. That's basically what the workflow needs. The second layer automatically translates the SWADL. Description into executable BPMN assets. And the third one executes the workflow thanks to an embedded open-source workflow engine called Camunda. Not sure if you know this workflow engine, but it's pretty famous on the market today. So what is the impact on the development cycle to use a product like this? Compared to traditional approaches, the amount of effort and time to deploy is much lower, just because we are describing and not developing anymore. And monitoring activities can help to understand how to refine the workflow to make it more efficient. Think about a step requiring a user to approve a request that takes in reality three days. If you know it by monitoring activities, maybe you want to insert a step in your workflow to remind the approver to do the task after a certain period of inactivity. The future of the WDK is, of course, to go visual. Everyone is asking me this question. Can we do it visually? This is something, of course, we are planning to do for the near future. And to provide a way for non-technical users to describe their workflows, still under the control of developers, which is quite important here. Enough of the theory. Let's see it in action now. So I'm gonna switch to a presentation from the presentation mode. Let's go back. All right, sorry. All right, so on the left side, you have my ID, my development of our environment with an example of a Swaddle workflow. And on the right, you... Is it your right? Yes. On the right, you have a symphony where I have here two rooms and instant messages, one with my bot and one that is a dedicated room. So I'm gonna start it to start the bot that includes the WDK. It's one line of, sorry. To start the jar that contain everything. And it takes a little bit of time and when it's gonna tell me that everything is up. So it's a live demo, sorry if there is some issues coming up. WDK sits on a regular symphony bot. So there is authentication of the bot with the key manager and to get also a session key. And then the bot is able to use the API and the workflow will of course consume those APIs. All right, so it's there, my bot is called Asiabic and I can talk to him. And this is my Swaddle. So I took the example that we saw in the presentation previously, which is the credit approval. And this activities has one, two, three, four, five activities, this workflow has five activities. What is the first one? The first one is to assign an ID to an approval request. So what we do is when a message is received like slash credit approval with an amount and a currency, what we want is to define and get a random number and keep it for the entire context of the execution of this workflow. Of course, this could be a little bit different. We could call an API and the API can give you this information and keep also the request, store the request in a database. And the second activity here will be to request an approver. So we have here in a variable an approver Rome ID and we're gonna send this particular form with what has been requested, by who the new request ID. And the amount of the currency and a button that says assign me. So everyone that will be inside that room will have the potential to request to be assigned to this ticket. And then we'll see what we're gonna start this already and we'll continue after. So to trigger my workflow, I need to say content dash approval with, I'm gonna say 1000 and the currency would be USD by sending this to my bots. The workflow is gonna be triggered and I should have soon a message in the credit approval admin room. It's a little bit slow, sorry. That's demo effect. Yeah, it's very slow. I don't know, you had some troubles before as well. What? Oh, the network is not okay. Why I'm not on the wifi? No, I'm on the wifi. All right, sorry about that. So I can show you because I made a lot of demos about it. So that's what should come up. This approval ID with, I'm gonna go like this. With this form, with assign me, you click on assign me and then the bot will talk to you directly with you have been assigned to this credit request. Please review the following information. So you get an attachment and this is, let me go back to this one. This is the next activity that is called information analysis with request approver. When request approver is, has been done. So on form reply of the request approver, I'm gonna send a message that will be inside in this, for this user ID, the one that initiated the event and this is the content that will be sent. You have been assigned to the credit request. You can use any of the, of the symphony special tags as well, like the hashtags to create signals automatically on it. And then with an action button, like done. When it's done, we go to the next one and the next one will be the risk evaluation where we ask the user to approve, reject our request, which is something that appears here. You approve, reject or request, you submit and then it goes to the approval and mean room to say the status of the credits is approved with everything here. As a workflow developer, I didn't show you the final decision step, which is here when the form is replied, the risk evaluation is replied. What do we do is we sent everything like the status of the other request. If you need to update this workflow, so the swatter language is recognized by your ID automatically because it's based on a standard and public YAML based language. So here you can add another activity. If you want an activity about messages, automatically you have the list of all the activities that you can do on Symfony. If it is something about users, it's the same if there's something about rooms, it's the same as well. That's pretty much everything. So if you reach a limit, if you want to do something that is very specific to what you can do, we also have a way to expand that custom activity and you can extend the swatter language by yourself by creating those custom activities. Of course, it is part of our open source program. So if I go back here and I go to this, the WDK is deployed, is, sorry, available on the Phinos repository in the Symfony ecosystem. And we are of course open to pull requests if you're interested to extend, create custom activities that you want to be part of the standard YAML language, swatter language, it's definitely possible here. Because at Developer Relations, we help developers as well. What we provide is a course and a certification program that comes also with our tools and very soon you have a dedicated course for the WDK that you can go from our developer center. Everything is free and our intention is here really to help you. And that's it. I'm sorry about the demo, but it seems that we have some technical, some network issues here. So I unfortunately cannot run it right now. And I don't know if you went to our booth, but we did all day some demos. It's very lightweight. It runs on a Raspberry Pi and you can of course put it on your cloud if you want, but it's definitely something that is absolutely not heavy. Any question? Yeah, so maybe I went a little bit too fast, but for example, if I want an activity to, sorry, send a message, that's true, but when you say for example, you don't know if it's send or update, you know it's message something, it points directly to the right list if you put message. And then here you have like, what are the parameter of send message? So you have for example, sorry, the ID. So I'm gonna say ID, you have also the documentation of the parameter, what it corresponds to. And the events, so on which events, you want to trigger this. So on on, and then when a message is received, when a message is suppressed, when a user joined a room, so you have all the least of you can do. So you can start by learning the very basics and the ID will help you to learn more and more and acquire the proper language. How many of you are using, I will come to your side. How many of you already developed bots on Symphony? How many of you are Symphony users? Yes, question. Yeah, no, so actually the WDK is helping to create a bot. At the end it's a bot, right? And the bot is two things. It's an application, but it's also an account. So the bot itself has an account on the Symphony network. So that's why you are talking to the bot like you would talk to a regular user. And it has some extra capabilities compared to a human, but the authentication is made the same way. So yeah, the WDK sits on top of our bot developer kit who takes care for you. So you have just a description file to define where is the public key of your bot that will be recognized by the bot account that is in our system. And the authentication is made like this. Yeah, actually a bot, as I just said, is really like what a user can do, but in an automated way, right? But everything that a user can do a bot can do, and more. In any room, it can be a one-one and it can also be on behalf of someone else. There's something also possible. Like the bot can add for me if I'm not available, for instance, but I know for that kind of questions I want an automatic reply and the user will see as if I do it by myself. Any other question? I think it's the last session of the day. So because you were patient, I have a little gift for you. We have symphony t-shirts. I don't know who didn't get his t-shirt yet, but who wants the t-shirt? Who didn't get the t-shirt? We have, our L are really large. Large, you have to help me, Yongshan, because large too, still have some. Of course. All right, please make sure to come and if you need more. Thank you.