Servoy Office 365 Mash-ups: Supercharged email workflows for Outlook
Servoy Office 365 Mash-ups: Supercharged email workflows for Outlook
Good morning. Good afternoon or good evening depending on where you’re joining us from. My name is Sean Devlin from Servoy and I’d like to welcome you to Servoy Tech webinar episode number 83. Today is September 9th and we have what should be I think a fun and interesting and probably quick webinar about Servoy customer who’s been able to supercharge their email workflows for their customers with an Office 365 Outlook integration. Before I get started a couple of items number one this webinar is recorded so you’ll have access to it after the recording will share it later today. And there is a questions control in your Zoom meeting controls and so at any time throughout the webinar if you have questions then you can type them into that and we will take a few minutes at the end to go through all the questions so no need to wait until the end if you think of a question it pops into your mind while you’re seeing a demo then go ahead and type it in and we will get to it. Today I’m extra happy because typically I’m putting these together by myself or maybe with the help of colleagues but I’m up here alone presenting so it’s always nice for me when I am joined by a guest and it’s especially nice for me when I’m joined by a Servoy customer. So today I’m happy to welcome the guys from next legal. I could tell you about next legal but I think it’s better to ask them so let me introduce Peter Dichausen and Tiaas von Derspray to the call guys are you going there? Hi guys my name is Peter from next legal for who doesn’t know the company next legal we create software for the legal offices primarily based in the Netherlands Belgium and some overseas countries like Urazao and that kind of stuff we make it for lawyers and not trees and some tax departments at big companies. My colleague next to me is Tiaas and Tiaas can you tell something about yourself? Hello my name is Tiaas I’m a developer in Blot and in brain and I’ve been working with the next step before about well just about short of three years now and always been and happily working with web applications and any kind of integration that is web based and database where you can bring the best of big data and your shared experience data into anyone’s hands that can provide that can have use for it and provide any enhancements on the data. Okay thank you guys the reason I invited these guys on to the tech series is I’d serve way we do an end of sprint meeting every two weeks for our internal sprints and we typically like to have demos if you haven’t noticed we love demos in surf way. We typically like to have demos of things that our own employees are working on or things that they’re working on with customers and one of my colleagues who’s working directly with next legal was showing their outlook integration and I said can we show this in a webinar and I said yeah probably and to my happy surprise I contacted Peter and said can you guys do the next webinar it’s in a week and they said sure why not so I really appreciate you guys being on here to be able to show this I think this is really relevant to lots of Servoy customers and basically what we’re talking about today is integrating Servoy applications with the suite of Office 365 components and that includes word and outlook Excel PowerPoint one note and I think there are APIs even for common like a common API reference for all things Office 365 and this is a client side JavaScript API library and what’s unique about this because we do lots of webinars about integrations what’s unique about this particular one is that typically we’re showing how you can integrate some other stuff into your Servoy application and it’s very Servoy centric but what I like about this is it’s about to taking what your users users are already using so they’re already using these applications and actually putting your application into into the applications that they’re using sort of like a mashup and and so and I think that’s really a big trend in software today is to allow applications to mash where it’s not a strict boundary where one application begins and the other one ends you see this a lot in chat applications like Slack for example or even zoom and so the more applications can work together the greater the value is for the end user and I think what next legal has done is really cool because they’ve they’ve built something which I think is fairly small in scope but I could tell from the demo that it delivers a lot of value so without further ado I would like to invite these guys to show what they’ve been able to do without look to supercharge their email workflows for their customers so I’m going to stop sharing my screen which should allow kiosks to be able to share his is a screen coming in clear yes it is I see outlook yes okay take it away if you ask all right as you can see here there is a so called site panel open right now with our 365 plug-in some background on the data you see here is because we work with notries and lawyers most of our stuff is the shape based and on relationships one frequent point was that when they need information for email to a client or something they need to open our program and outlook together and then copy base with comfort sheet, comfort feed well yeah it wasn’t that nice so our main focus was well let’s integrate the data inserts and everything nice that we offer into outlook so they don’t have to open the application separate and have to work with control C control V but instead we can do it now directly so for example if we take a the shape here we can now add a adder C from here directly into this and we can see documents that are bound to this the shape let’s go to click yeah it’s no oh yeah so Tl’s just to just to clarify the portion of your screen on the right hand side is not part of outlook but this is this is your integration yeah everything from where the mouse is now come this is all our integration yeah and you can also resize indeed this of course you can use the new web client the bootstrap to make this all scalable this works of course we can add you can add it as a attachment yeah and this attachments are streamed so we only have an HTTPS connection to the application software and outlook does not have to be connected to a file server where this is stored so our application next is handing this files to outlook is streaming it directly into directly yeah okay that’s really cool so there’s nothing else extra you had to set up no to be able to do that you just use the API yes and as you can see here we can add further people do well oh some do you know you know rush yeah you’re looking for a contact with an email address right in a certain yeah in some cases this one was what we were searching for there can be multiple email addresses and we can then show a dropdown with more things well for example this one and it be added directly into the yeah and other files that are not related can also be here so yeah we have created a custom clipboard in our application so you can store their documents or files that you want to use somewhere else and you can even use them directly or request them outlook so you can add them as an attachment so there’s not related to a douche or file and the third tab is in touch text for m there are models of text that you frequently use like a pause of the parking space at your company or that kind of stuff but not finished yet yeah the part that’s not finished yet indeed is it is possible with the API after the some the the changes that are coming for the next release those are our first in a finished yet it will also be possible to insert text for everything into the body and well for that it was not finished yet I do want to ask people to take note this here of the of the ribbon because as we will see now when we go to the read is that there is a difference and as you can see here there are now two options this is because with the outlook integration you can separate what people can see what they get to see when they open a email for reading and for writing so you can create different views in this are those are those different Servoyapplications that you made or did you handle that with the deep link how did you we use the deep link we used not for writing in this area how if you you can use multiple applications that’s entirely up to you you can also use internal routing you can set what if you like as long as there is some form of differentiation to be done right and as you can see here there are a time running you can run them those are more for writing hours especially lower students a lot the favorite feature I bet yeah it’s amazing yeah and you can archive emails so you can say well I would like to add this email to the list and then do this one it remember this this is also possibility to pin this to not you activate that just now and in those cases the add-in states open throughout this was from kind of you remember shit because um sharefou still is running on the background with the same client so right that will happen so if you’re your customer closest this panel it doesn’t automatically shuts down everything and wipes all the data the data is still the solution state is still preserved that’s something to keep in mind it’s very useful however when you one thing that will say to people who are thinking about this this can cause issues when you want to use internal routing the solution state you do need to work on the solution state if you use just one solution I’ve heard that that is something small tip that we figured out already it can be done yeah and you can add more emails to the list and so what you’re doing here is is when you archive them you’re actually retrieving the emails from Outlook and putting them back into your application and some database or something now what we’re doing here is creating an array of email messages and that we want to archive at once for one douche so for example we email a lot on daily basis about one case I can select a multiple select them and use them we did create the custom array because Outlook does not support yet a checkbox that you can add to the list of the emails that you see here on the left or a multiple select so if I multiple select with control multiple emails the Outlook and in Outlook does not expose that to the JavaScript part yet so that’s why we monitor what you’re clicking and add that at those those two an array so that we can archive them on later moment yes if I’m following of course as formed from like so what they are planning to do from what I can read they are planning it I have no date yet when they are going to implement it however of course we are maintaining this plugin also for sharefoy so when it is there we will integrate it as soon as possible and possibly have new demo by then for i will not be able to say as of now if if and when however as you can see we can then select the douche and a folder while we do in the received email yes and it will process them now and the list is cleared and it’s safe within our database for later use okay I assume that that when you were retrieving the emails that’s also streaming it directly into your service yes so yeah in and out nice okay and then we use it over the internet right so the the feature that you you had you were working on with the text fragments the just to clarify the use case for that would be you open up the email for composition I saw where you could add the attachments or the recipients but then you could also have different templates that you could insert for various reasons why you’re sending the email like I don’t know if I’m just saying if you’re late for a payment or something then you have a template for that or if you like you said your address and then I had one question is it possible to merge that or I guess you could already merge it in the servoise solution before you inject it so we have a we have a part of our solver is a document generator and we want to implement that also where you can use a question answer construction so you can create a body so if we know you’re writing to we can create to correct name there and we can also use questions to create a body so it’s interactive with the user Mm-hmm. Nice. It’s not just a simple insert. It’s much more it’s an Emmy in the background we’re working in well blocks and then keeping track of those blocks so you know what so you can construct if and thenables around those blocks and say well if somebody answers this or if some condition is this then insert this and but you can use the fan sets and the broadcasting if those if the data changes it can keep track of the text within the document by uses we use of those blocks so you can bound certain conditions on the presentation of certain blocks. Ah okay wow that’s pretty sophisticated. Can you can you talk a bit about your users and did they come to you asking for this or did you have an aha moment where you saw how they were working and said we could fix that how did how did this feature set come into your you know under your radar? Our customers create legal documents and the most part of a legal document is standardized and if a condition is met we need to insert a legal text you can do that by hand of course but yeah it’s in the Netherlands a pretty old system and we’re not the only one in the legal software that are using this technique to create documents so that is how we do it and why we do it so yeah the people who are using our software does not require all the knowledge of the legal text because it’s in our software so if they can correctly answer a question we can insert the correct text for that. Okay Tia I’ll show you are you able to show a bit of the servoi developer and how it you know where the you know the code makes it happen or of course. This is the worst place and specifically in the out loop.js code which is in the the background of the API this is what’s running at the client sites and which is handling the request that come in so this is based the process. But this is fortunately not what a person would have to write on their own in order to do this because this is the connector right? How about the suppose I want it to do that connector of course yeah so where you’re actually calling the you actually calling the API that’s exposed. Yes the exposed API that’s this is it’s not grabbing keyboard shortcut so I’m doing this by mouse. For example so this is the this is the form where the timer was showing in your in your add-on correct. This is for example a part of the integration of the event handlers as you can see here. This we have to solve this this is all in numberables of the event types and what you do is well you give an event and an error function for writing back this can be done globally. This is optional by the way so how if you’re handling things blind is never a good idea because when you have an error you have no writing in Y and you can now and you have a callback function like this and you can just write this one in serenhoi with found set. So when the recipient changed event is called by outlook which would be when somebody here is added so this will now trigger that it’s not connected to the debug console so that’s why you can’t see anything. This function is called and as you can see here you can just use found sets and find move anything in this and then can in turn return things and set and call more a guy handlers and then well you can then dynamically react to things changing in your email. For example use case can be here if you call if you send it to someone you might want to well include other people within a certain dushay group or something. Okay yeah. Bated people or what you can call a lot of things or other medically set subjects or something which can also be done. Well I think what’s interesting is that not only can you go from your Servoy application like when you were inserting the recipient, the stc or the subject or attachments and we also saw that you could retrieve things from the client like getting the array of messages but what you’re showing is a bit more sophisticated because if I’m not mistaken you can register to listen for an event in the document and then when that event happens you can react to it. So it’s as if that you’re really working with a single application because you’re you know as you’re composing the email you can make decisions in your own business logic and your own application responding to how the user is using the email it’s not just to insert simple things although you can do that. It’s really bidirectional. Yeah you can. It’s made to fully be integrated with Outlook and react to any you can react to any changes within Outlook. More and more options are becoming available by the day just at the beginning of this week not a function was made available. We have not yet had time to integrate this within our solution out for since at the beginning of this week you can also even react for custom response to somebody hitting the send button or something and more and more functions are becoming available over time and we will certainly insert those as well and give you the handler and there’s to do this function. There’s well a problem with this because Microsoft is continuing releasing those functions they’re not blankly assume that your customer is using the correct Outlook version so that’s a question that we need still answering for ourselves because if we assume they have the latest release it can be a problem if we want to use something. Yes that’s very much true there is a certain level you can get the metadata of application in which your plugin is open and then get data however the API as of now is not set up to automatically switch a functions or something when you have a version that does not support a function yet we will you need to keep track of that yourself we don’t disable any functions or something there is still called it. The question from someone. Yeah why don’t we why don’t we go defer the question to the end but I think I think that’s pretty much all you have planted to demo right. Yeah and I bet your users are quite excited to get this. Yeah because it’s allowing them especially the lawyers that are mostly in the car or to the to court they can just use Outlook and they don’t have to start the complete application and so right okay. T.O.C. if you don’t mind to stop sharing and I’ll bring up the slide deck and we’ll go through a quick recap overview and and then put it over to questions so let’s see. I always have a hard time with it when I go to full screen with a presentation. Can you see my screen okay. Almost there we go. Yeah. Yeah okay so I just wanted to quickly go over kind of the set up that the person would need and I’m going to ask you guys to make sure I have this right okay they would need a Office 365 account obviously and then you need the plug in the connector the one that T.O.C. was showing where he was registering an event listener or calling to insert an email attachment or what have you. Of course you need to make your own solution but that can be any regular NG client solution and then that solution is what is going to call those those APIs to to get and set things in the document and to also register for events and then finally you have to you have to register your add in and I think this is the interesting part because this is where they really come together and I think at a minimum I remember I did a version of this demo a couple years ago when we just had the word integration and for the demo all I did was upload the file to identify the add in but I just did that on my local account. It is possible to publish and add in the store so that anybody can use it and then I think for a subset you can do an enterprise account and share it to certain users. Can you guys talk a bit about how you plan to deploy your add in? Yeah. We’re going to deploy the add in for Outlook via exchange because our application is installed per customer or per office and it’s not a SaaS or multi-tenancy solution. That’s why you’re going to use the exchange. So our application is always connected to EVS exchange web services and we publish it from there and not from the store because we don’t have to correct infrastructure yet to publish a app like that and that it connects to the correct application so far. Right because it’s on premise the actual cert running Servoy solution for the add in will be different per tenant. Yeah if you look at that way it’s still on premise it can also run on Azure etc or via internet but it’s always installed per customer. Right. Right. Okay. Yes. But yeah. Well, it is possible to use the store if you want to, if you’re solution allows it or for us it’s a point however I will do want to add this Microsoft store. Does have a set of limitations what you can do, what you kind of defense you can handle with the plug-in safety register and as a bit more of a well you need to provide a contact and transparency transparency document that they can upload with the app on the store that basically like with your Android apps or your iOS apps it says what kind of events are you handling and all that kind of stuff you need to declare that. Right. Because privacy issues of course in store because anyone can download it. Right. Yeah that’s a quite important difference with the store because if you do it by an enterprise solution there are no limitations. Right. Right. Yeah and I think the typical Servoy customer is doing B2B type application so probably your approach is the most common one that we would see in our community. A couple of technical points that I remember there’s a manifest file which kind of describes the add-in and that’s what you’re actually providing to to exchange. Yeah or 365 for the other integrations and this is a simple simple XML file which if I’m not mistaken guys it basically gives them the URL to to the application. Is that correct? Well does a bit more than just expose the URL it also gives the cluster name of the application that is shown in the bar on top of Outlook or works. The ribbon. The ribbon. Yeah the ribbon indeed. It also you can also have translations by the way if someone you can give it in multiple languages and has language attributes link to that. And also declares you can make it a lot more different interesting you can also declare certain criteria on which a add-in should be activate or available for activation. For example you can use give a regex line and say only if there’s an HTTP link or HTTPS link within the certain email body text then somebody can activate or add-in or something like that. You can have multiple things however that’s going into a lot of that and an F a complete tutorial on the XML on the monthly XML and hospital design. Sure sure okay and the other thing I remember is that of course 365 wants to communicate only with encrypted applications so your Tomcat must be HTTPS enabled. We have a whole we have a whole webinar on that subject. In the example I did years ago I did a self-science certificate which doesn’t really work in the real world but it was enough for for a demo purpose. So if you don’t already run HTTPS on your ng-cline applications it’s highly recommended you do and we have a whole webinar if you check our archives on on how to set that up and ways to get that going. Just in terms of if you like what you saw and and you want to know how can I do that there is currently the 365 plug-in which is available through the Servoy package manager and right now the word version of that so we did do a webinar again you can check our archives but basically it’s similar you can inject text into a Word document or pull text out of it and work on it that way for similar type of application. The work that you saw here for Outlook is something we’re working together with next legal on so we hope to be announcing this soon but in the meantime I always love to hear what our customers use cases are because I believe that people building business applications have their specialty but they have a lot of common common ground in terms of what their their users need and I think that integration with really common tools like 365 is one of them so please if you like what you saw or even if you have ideas based on on what you’ve seen send us your use cases because the API is do extend into PowerPoint one notes Excel etc so the other thing that I would encourage you guys is that again as I said at the beginning in terms of integration this this type of of integration I think is is really unique and and really more the future of the way business applications work in that next legal has kind of thought outside of the box here to deliver value to their customers they didn’t think just oh what can we add to our application to you know what’s the next feature to make it better they said what problems do our our users have in their day and how can we enable them and make them more productive and and make them happier users and in their case they they went to the tools their customers were already using so I would encourage you to be inspired by what next legal has done and and I think that way about your applications and your users and send us your use cases and let us know how we can help we are going to take a few questions and I’m going to leave up these links while we take the questions most important is if you want to contact directly to the guys at next legal you can mail Peter his email addresses is there and if you want to check out the current the current integration for Word it’s available on the GitHub project also just through the Servoypackage manager right in the IDE. Okay so jumping into the questions we had one from John which asks when you when you are storing the archive email in your database are you storing the full HTML or just an e- or just an ID I guess he means like a reference to it guys do get the whole message right yeah yeah what we do is a few things we store the ID and the conversation ID so if you have multiple emails responding to another you have the complete history and we store the actually file the MSG or the EML on the file server of the customer so that they can move it from Outlook to options or we leave it in Outlook or we remove it from Outlook the last one has the preferences for the customers because their inbox is then empty and it’s better on the long-term performance wise and we don’t okay we do a part of the content of the email into the database so you can look for keywords right what we do nice okay another question does it run multi-tenant so I guess in your example you’re talking about on premise deployments but you could deploy this in a multi-tenant like if you have just one instance of a Servoyapplication server and one group of customers using using Office 365 you would be able to deploy that multi-tenant it is now customer-based you can have multiple users and there is a bit of multi-tenancy in our application but mostly it’s per customer not in the user but right right okay yeah and I get the depends on your own your backend on your own right right right and and I guess um any application in Servoyit can be deployed multi-tenant or single instance or mixed in your case I noticed you were at the beginning you were doing deep links to identify which version so you had the composition version when they’re writing an email and the inbox version I guess I don’t know what else to call it with the timer read mode yeah and use a deep link for that to switch the view I guess you could probably also pass some things in the connector to identify a user or how did you go about doing that or set part of what what you had showed what we do is we request from the outlook what the account is that’s using the add-in and we have a user component of our application and that’s doing the matching so that you have the add-in right right okay and there comes a authentication mechanism where you can say in the regular application yes this outlook can connect to my next user but it’s still a heavy development yeah so yeah we don’t think about the security parts right now for the development part right right okay any other questions I don’t see any questions coming in which means you guys did a great job of explaining it so I want to thank I want to thank you both for joining it’s always a pleasure for me to have guests on the webinar and I think it’s a lot more compelling to to the attendees to see real real-world business applications and not just my hypothetical demos so thank you both and we’ll be in touch and again for everyone else this is recorded so I’ll be posting it to our archives probably later today or early tomorrow thank you and thank you for having us so um okay okay bye for now thanks