 Hello, everyone. I'm AKM Safar Shaheen from Catalyst IT Australia. Some of you, obviously, have seen some of the demo I have did yesterday about Cushion Bank. So with 4.0, Cushion Bank gets some groundbreaking changes. And as a part of those changes, we already have a plugin built by Catalyst IT which can be a very powerful integration tool to actually make your Cushion Bank a very powerful collaborative space for your teachers or managers or whoever have access to your Cushion Bank or using Cushion Bank. So just a quick overview. Catalyst IT is actually spread around the world. We have 750k users in our platform, more than 750k users in our platform. And yeah, so we are operating for more than 25 years. So if you want to talk about anything, please come to our booth. One of the biggest things we thrive inside organization is actually problem solving and hard work and also some sort of innovation. And that's how this plugin we realized after building the Cushion Bank, we realized we already have a plugin we built. We can just start utilizing it and maybe tweak a little bit and add more features to it without making a huge amount of changes or making a huge plugin. So what is Event Trigger? So Event Trigger is a plugin which will allow you to trigger certain actions using the Moodle's Events API and how it's actually collaborating with Cushion because Cushion has creation, deletion, things like comments, usage, and stuff like that. So those events are already logged inside Moodle. So the moment you create a Cushion, it's logged in Moodle because there is already a Cushion created event. So the main concept of this plugin with Cushion Bank will be observing those events and doing some actions according to those. But that's not all Event Trigger has to offer. There are a couple of workflow steps you can follow. So one is lookup, another is filter, and finally, when you have the lookup and filter ready, those steps, you can straight away get into the action of what you want to do with your workflow steps. I'll be giving you a quick demo to explain it better. But let me tell you a little bit about lookups. So for example, every event comes with some certain information. So for example, when a Cushion is created, it comes with a Cushion ID, which is the object ID. And there is a time created. There is a user who created the Cushion, who updated the Cushion, and also a user who owns the Cushions. And these changes came as a part of the groundbreaking 4.0 changes. So lookup feature or lookup step will actually help you to grab one specific identifier. For example, you grab the owner of the Cushion who actually created the Cushion. And then you can grab the editor who actually created a version of the Cushion. And you can actually trigger a notification to the owner or the creator of the Cushion saying there is a new version of your Cushion being created. Filter, filter will allow you to control where you want to trigger your notification email or your action. So for example, you might have 100 courses inside your model. You might want to trigger it for one specific course or you might want to trigger it for specific users or you might want to trigger it for according to your business requirement. So filter will allow you to achieve that using specific, filterable conditions inside your workflow step so that things can actually filter before actioning those specific event. And then finally, you have action which is really powerful. You can put external, internal, and you can even utilize Moodle's internal web service function or methods to actually trigger specific actions. So now a little bit of live demo. I'm going to show you just to give you a better idea. So as I already said, this is a very powerful tool. And the demo I'm doing is very simple. It's not very robust or advanced. But you can pretty much go to an infinite space where you can pretty much keep adding filters and actions and lookups according to your preference. So for example, I have a very simple workflow added here which is called Question Version Created. What it will do is whenever a version is created, it will look up for the user who first created the question and it will notify the creator of the question that there is a new version available for your question or someone created a new version. Would you like to have a look at it? So here, there are just two simple steps I created. The first one is a lookup which actually looks up who is the owner of the question and then just grabs the data of that specific user and then notifies the question author saying there is a new version. Would you like to have a look at it? So if I just go to a simple question and you can see the seven versions of that question, I'll just edit it and just create a new version very quickly. This is a dev tool, so I just came here. It gave me a very simple information saying the question with ID 19 has a new version with the user with ID 3. So you can actually go another step further if you want. You can look up for user ID 3 and rather than having ID 3 here, you can specify the email or name of the user if you want to do. And also, you can customize whatever email you want to send. So for example, I have set it up in a way. It goes through the history plugin. So the moment you click that, it will take you to the breakdown of the version. And of course, you will see the latest version created by me. So this is a very simple implementation of a very powerful plugin. But as I said, it's an infinite possibility so you can keep going according to your preference. So this is just the beginning of this powerful integration. And it can go way beyond what we can do at the moment or what we can do in the future. So how I see it, what can come next. So of course, we have the comment plugin, which allows you to collaborate between your users. So one teacher can create a question, another teacher can come in, look at it, preview it, evaluate it, and comment on your question. So whenever a comment is added to your question or a version of your specific question, you should get notified that there is a new comment. So this is the next thing can come next very easily, just a better integration with question comments when it triggers notifications or emails when a new comment is added to your question. And then I have showed you how Lookup works. So at the moment, it does course Lookup, user Lookup, cohort Lookups and stuff like that. We can go one step further and do a question Lookup, which can allow us to do a lot more with different versions. So for example, if you have a new version created, you want to have some external actions to be done. So we can do question Lookup very easily, add it to the plugin, and it can look up, it can grab the question ID, it can grab all the information what's the version number of it, what's the entry number of it, so it can just trigger anything you want. And also we can obviously have a very, very, very good space to have some deeper integration with question users and status because questions have status at the moment. So what if someone goes in and makes your ready question draft, you might need to do something or you might want to do something, get notified or do some actions according to your preference for your question bank. So this plugin is just a beginning of a powerful collaboration tool for your question bank where question bank is getting bigger and bigger, 4.0 is getting more robust in 4.1. So many things can happen inside your question bank without you realizing what's happening. But this tool will help you to take control of an understanding of what is actually happening to your question bank. This plugin is actually released in modal plugins repository. If you want to try or contribute to the plugin, have a look. If you have any features in your mind, talk to us. It's in GitHub repository. It's very easy. You can just create an issue and just we can have a look for you or we can have a chat about that. That's pretty much it. Thank you very much for listening. If you have any questions, please let me know. Does anybody have any questions? Oh, yes. Hello. Just wanted to ask if this plugin can also be used with other activities because there are some activities in Moodle where teachers don't get notifications when students did something. 200%. So as you said, it can be used anywhere in Moodle. It's like, for example, when you say in courses, you might want to trigger notification for enrollment as well. That's a very common use case. There is already an example added to the GitHub repository for that. You just can import it. So one of the amazing thing is it actually allows you to import workflows. So for example, if I go here, you can see you can create or you can even import your workflows. So even if you create something, you can actually contribute to our repository. We will add it as an example. And we have some basic examples added. And I have my plan to add some basic examples to be added as a part of the question bank so people can actually import it. But anytime if you can think of anything complex, you create it more than welcome to contribute to the actual repository, which will help everyone. Hello. Hi. I have a question about the user lookup. Can it also be the student that we can look up? It actually can, yes. So for example, if a student completes a course, the event is triggered that, OK, that specific user ID completed a course. So you can actually look up for that specific user ID. So it doesn't matter if it's a student. It doesn't matter if it's someone. As long as Moodle's events API logs that user ID, you are good to use it. Unfortunately, it's not working, but that's why I'm asking. We have another one over here. Thank you. My question is about the permission. So how is the permission controlled when there is a question? Let's say one instructor wants to share the question with the entire community or they don't want them. As I say, the permission control can be very easily handled by filter. So there are user roles filter as well. There is specific string identifier filter as well. So for example, if I go to this, I can very quickly show you an example. So if I click Filter, and if I say string comparison, so you can see there are many, many type of comparison you can do. So you can filter through which course. As I said previously, maybe you have 100 different courses, or maybe you have 100 different roles. You don't want everyone to get a part of that. And it also depends on whatever event you're walking on. So if that event you're using lets you know the role of the user, you can actually filter through that role using a filter step. So it's quite easy to actually do that. And even if you don't have those information in your events, you can always come to contribute. And that's very easy. Just add an identifier to that event, and that will start working with this plugin. So all this plugin works is just a starting point to grab a small data, and it will grab the rest of the data for you.