# Community Meetup August 13th, 2021: Product updates, Logs in n8n, Lightning talks

## Метаданные

- **Канал:** n8n
- **YouTube:** https://www.youtube.com/watch?v=Hc1t6qzwjp8
- **Дата:** 13.08.2021
- **Длительность:** 1:05:18
- **Просмотры:** 173

## Описание

Agenda:

(00:00) Welcome!
(01:15) Product Updates by Max Tkacz
(12:20) Logs on by Omar Ajoue
(29:05) Q&A
(39:25) Lightning talk by Chris Dietrich
(53:32) Lightning talk by Tanay Pant
(01:01:25) Office Hours

## Содержание

### [0:00](https://www.youtube.com/watch?v=Hc1t6qzwjp8) Welcome!

all right so let's kick off today's uh meet up with going through the agenda so we'll start with the product updates from max i know you all love that part uh you know i know you know i love this part of the meetup and max loves it too we have omar uh who will take you to a journey with bugs and logs well not rich larry not literally omar will talk about logging in n10 and how you can enable it we'll then have a small q a where i'll ask your questions to max and omar so don't forget to share your questions in the chat automation can help you balance your mental health and chris will talk about how automating simple task is beneficial a lot goes into courses into making courses and talay will talk about the automation side of the beginner's courses for an a10 and show you some workflows that we have built internally and lastly we will have office hours where again you can ask your questions to our speakers or the team now let's move on to our first talk

### [1:15](https://www.youtube.com/watch?v=Hc1t6qzwjp8&t=75s) Product Updates by Max Tkacz

max the head of design at anytime loves sharing the upcoming features and not taking too much of his time i'm heading over to you max thanks so much harshal for that warm introduction and hello everyone feels like only yesterday we were in the last meet up time flies um so we've got a lot of stuff in progress at the moment i'm excited to share some updates um of course we've been releasing various nodes and bug fixes if you want to check that out you can always look at the changelog in our docs this is kind of a bit more of a high level view um a lot of the big things that we're working on right now currently in progress so i don't have so much to share since the last time of things have been released but there's some really exciting things on the um horizon that i wanted to uh chat about briefly today um so one of the first things that we're really excited about at internet and i think it's going to be really empowering for our product team to be able to make smarter decisions is um telemetry and core so what does that mean um right now for self-hosted instances um we really have absolutely no visibility on even the most basic things like um which nodes get the most errors etc and at the same time obviously since we're self-hosted products um it's privacy for users is very important to us right so we've started engaging the community and discussing what might lightweight analytics look like on self-hosted instances and i think when we were thinking about this at an end um i think there's many examples of doing it the right way for example mozilla firefox etc there's plenty of very privacy conscious organizations that still get the information that allows their product teams to make the right decisions on how to improve the product and so what we've done this week to start engaging the community is we've posted a community forum post there's a type form on there i'm going to share that in the chat now so you can go check that out and we can get your thoughts in there um and thanks to anyone that has already submitted this we're getting some really great ideas on what um basically on your opinions on privacy and how we can balance that with getting the right insights i think when we talk about insights and analytics and etc what i find is if you're in product team you sort of know how you use that sort of data but if you're not it's sort of this big black box is how is it does it get you used so i wanted to quickly touch on the kinds of things we'll be able to do even with very basic analytics um so some of the things that we'd be looking to capture for example uh what are the most common errors generally um and same thing for specific nodes um so if on the http request node we see a very large uptick in a certain type of error that's a very actionable thing where that day that week we can um with engineering figure out how do we improve that and that could be a very small change but something that'll be very difficult to do right now or take a lot longer to figure that out so that's definitely the kind of thing that we'd like to be able to do with this data um another really basic thing is which nodes are getting used the most you know if one node is getting used a hundred times more than another node we should probably dedicate more resources to making it better going deeper in functionality and making it more useful for all of you and another example of a very specific thing that we'd be able to do is um if you're typing in the search box in the notes panel and lots of people are searching for a specific term getting your results we might be able to add an alias for that because it's actually a different kind of node um and so we have that functionality you're just not able to find it yet so that's exactly the types of things that we'd like to empower our team to be able to do with this with these insights and right now as i said it's sort of a bit of a black box so i think with this um rolled out we're going to be able to make far better decisions and really focus on the things that you're asking for um by virtue of how you're using nnn and maybe the problems that you're running into or just the things that you're using the most um so again i'll um i've shared the link please do check it out please um do be a voice um if you have any concerns about this we want to make sure to do this right we want to sort of have this mozilla way of going about it i think they're an organization that's very well respected for the privacy and they still get to make intelligent database decisions and of course with whatever we're considering launching you will be able to turn it off the environment variables so if you're in a very security conscious use case or something you'll be able to completely turn that off and that's totally fine we're just happy using nan so that's telemetry and that's something we're really excited about on the product team um i think on that feature it's going to start off with these conversations so we really solidify on what the scope of that will look like and then we'll work on sort of rolling that out um another thing that's been in progress uh for a little bit now that's currently undergoing ux review and sort of polishing and tuning up is the weight node which i briefly discussed last time i just want to touch base on that again because i think this is a node that i'm very excited about the use cases that it empowers in a nutshell what it lets you do is pause your workflow midway for example for extended periods of time so in a very simple mode you could say to ports for an hour you could pause for a year um but another mode of it that i'm really excited about is the web hook mode so imagine you have a series of nodes when it gets to the wait node you can wait until a webhook url is triggered that node will give you a url that you can use in your third-party app or even another workflow um which is going to be very exciting for a lot of asynchronous cases and especially i think it's going to make n um a great tool for use cases in marketing and business processes where sometimes you might need to weigh in on a different system or a human step which could take 10 minutes it could take 10 days that's all going to be very possible and the way we're building it out um you know currently you could in a function node program a pause but it's going to keep everything in memory so it's not very scalable what's going to happen with this weight node is if it's waiting for more than 60 seconds we're going to save that execution state and be able to resuscitate that so this is a lot more sort of a performant and a best practice way of thinking about waiting um so with that obviously depending on your configuration you'll be able to start thinking about you know how can hundreds of workflows get paused um snoozed so to speak and then resuscitated when it's the right time so i'm really excited to hear about your use cases there and as i said that's being polished up so that should be out sooner than later another big thing that we've been getting asked about is user management um as i've said previously it's a very non-trivial feature as you can imagine uh we're basically touching almost every single part of it and to realize user management um and so i wanted to just go into a bit of detail on basically what's the status there so what i can't say today is um it's going to be out on x date um again it's non-trivial and our engineering team um does things right we don't rush out code just to meet some arbitrary deadline um what i can say is that what you'll be seeing in the next weeks is things related to user management coming out that isn't squarely user management so what i mean by that is um since we're touching so many parts of it we have decided to start improving uh our ui and bringing in a design system which is going to allow basically for us as a team to have a lot less maintenance and really improve the quality of the interactions that you'll be experiencing so one of the first things that will be going on in the next weeks is the form inputs and that's these little atoms that make up larger components that we'll be using in user management we're rolling out globally because it's a really quick win um so i can actually share my screen give you a quick sneak peek of these it's nothing revolutionary but if you're a long time user of nan um one thing that we sometimes hear are gripes about the color contrast ratios with form inputs especially for people who maybe need a little bit of assistance or are hard of sight so if i grab for example http request node here we can see we've made the inputs look less like buttons and they no longer have a gray background which means no matter which state they're in especially in the disabled state if you're looking at uh read-only execution we now have much better color contrast there so again nothing revolutionary and um this might not seem like we're sort of moving towards user management but all these little things that we'll be releasing are all requirements for this design system that we're bringing in as part of user management so that's being actively worked on and you'll start seeing sort of bigger chunks of this coming out um the next thing after this um will be a credentials uh improvement to the credentials model which is also going to be sort of a big aspect in user management that changes so the usability there should really improve and then once that's out we will be rolling out the v1 of user management which will allow multiple users to coexist on an instance potentially with sharing we might even release without sharing done yet just so we can support multiple users in an instance which has been a big pain point for users so while we don't have an estimate know that we're working on it and that we're sort of really um using our product management muscles to try and get the value out to you as fast as possible and not wait for this big monolithic user management to come out so i'm hoping in the next weeks we'll start being able to give you better timelines on these things um but do be checking the new versions notification feature that came out a while ago if you haven't updated already because a lot of these ux improvements and various things are going to be getting rolled out right before we do release user management um so that's just a snapshot of behind the scenes what we're working on that's not everything of course um but check the changelog for all various nodes and whatnot have been updated but that's just a bit of a behind the scenes from the product team here and lastly before i hand it off back to harshal i want to thank all of our engineers and all of our community com members that are contributing things because you know in product doesn't really help too much if there's no one to implement it so thanks to everyone for realizing all these awesome features thanks thank you max that was wonderful a quick reminder for all of you i am collecting your questions and will be asking them after our next talk so if you have any questions for max don't forget to share them in the chat moving forward

### [12:20](https://www.youtube.com/watch?v=Hc1t6qzwjp8&t=740s) Logs on by Omar Ajoue

now getting any kind of output you know whether it's a success message or an error message is really helpful it helps you understand what is going on oh my a senior friend uh senior full stack engineer will talk about logs on ntn how to identify possible problems so zoom is all your zoomer oops ah we just had an issue and muting ourselves uh thank you very much archo um thank you everyone for joining it's really a pleasure spending some time with you talking about nhan and what we have been working on so um well let me share my screen i have prepared a small presentation for us to go through so um if you're having any issues seeing this please let me know and okay so well first off who i am so as harsh already introduced my name is omar i am one of any 10 senior software engineers um i was born in brazil i moved to berlin to work for na10 recently i just got to berlin last december and well as a senior software engineer i worked in a few interesting projects in 9810 the scalability part which we had some conversations about previously already uh logging and now working on some interesting projects as well uh related to the future of node building on na10 more on the technical part so some interesting stuff that we'll be coming to so those are my contact information in case you want to connect feel free please so without further ado let's go into what are locks so just to set the level here well systems usually logs are away and messages that a system communicates with you to help you identify what is actually happening under the hood so for instance you can be using logs for tracking events that are happening logging transactions that might be relevant to your system or to your business logic maybe for audits um tracking requests that are happening to your system so you can for instance count uses user usage and perhaps block access or check for malicious actions so logs are basically a way of the system communicating what is happening okay so um blocks can be written and generated in a big variety of formats um some of the most common like the limited with text in case like you have a tabular structure of data uh tab delimited messages which is like csv files um just plain text human readable messages one of one line uh per instruction json files csv uh that i already mentioned parquet which is a format that is used by some of the apache products for parsing and collection update as well so blogs can be generated in a variety of formats and the format that you're using logs actually the chosen implementation will arrive based on the use case that you'll be used right so in nhn specifically how do we generate the logs so we decided to use a json format for a few um interesting points that it provides first well nhan already uses this json extensively so it's something that most of our users if are not familiar with you'll probably super quickly get in touch with and understand how it works and understand the structure so it easily allows you to show and see date and variety formats lists of stuff complex objects nested information so this is one of the reasons which we choose json and also because it's becoming more and more popular for logs as more um it's more and more apps are using it choosing logs for you for this uh so this is the reason why we choose uh json as performance or anything logs so um i'll go through some of the default settings in n810 so one uh important point is that by default to make an a10 super lightweight and not taking up take too much disk space locks are turned off by default so this is like to make it non-breakable as possible like no braking changes so you can turn those on and we'll go through that in a second unless you change the location the logs will be saved inside your dot m810 folder in a subfolder called logs um and it can also do what we call log rotation which means the file with the information will grow up to a certain size when it reaches that size and a can will automatically rename it and create a new one with the hot data so you always have some sort of archive to go back to if you need by default again uh ntn uses 16 megabytes per file and saves up to 100 files so you have a very good history of information for this okay so now that we know like how anytime generates logs and where you're saved um how are those log messages organized what can i expect from the log messages that nam generates we created a simple structure that it's easier to read so if you're not familiar with json objects which will be super familiar to you we use the level which is one of those five options error warn info verbals and debug and we'll go through each one of them those in a second uh the message itself which is a usually a human friendly message uh we do our best to make to write messages that can be understood by anyone so we're writing plain text messages that help you understand what was happening and there's also an interesting object which we call metadata which contains a time stamp so basically when that action happened the file and function where an a10 was running at that time and this really helps a lot when we need to debug something if we have an issue with anything and also you can add additional data like for instance the id of the workflow um the execution id at the moment this the user session id uh and session id in this case i'm not saying like uh understanding who is the user but actually simply a connection between the browser and nhm so that information this information can flow so it's not actually personalizing someone it's just it's impersonated data it's sorry it's not impersonated data and so now what are the log levels um so error is the first and like most critical one which means anything is reporting some faulty behavior which means something went wrong uh those messages are always locked um usually if you don't change any of the enhanced settings you will see those in your terminal and we'll go through the settings in a moment but those are always visible for you second level is born which means this is an important message but not necessarily an error this could be something like hey there's a library that was deprecated there's information about some node that needs updating for instance so those kinds of messages that are important that you need your attention are used as form and for general information like oh anytime started anytime it's listening to core texts like that um i don't know web hooks have reached some sort of information that is more um it's not an error it's not a debug information it's more like a general information overall you have the verbose which is actually an a10 telling you everything it's doing so i got to remember that logs are messages that the developer adds to the code so um whenever we as developers or engineers or you as a contributor decide to hey this is an important step that i want to check what's happening you can naturally add those informations and we'll talk about that too so verbose is a way of telling you um that we reached a certain point maybe a checkpoint that is interesting that helps you understand what is happening and the difference between verbose and debug is that debug also contains more data about the current state so verbals is like more an overview of where m810 is going so where it's heading um and debug is really pinpointing with a bit more information saying hey i'm specifically in this node and i'm taking this action uh the operation is xyz for instance i'm calling a certain resource this is a way that helps you really understand exactly in detail what was happening at that moment okay um now that we said about it how do we set up logging for naden so basically we would need to look at two different settings the first one is the live level it means what do you want any hand to output uh these are like cumulative so if you set error only errors will be shown but if you set one and it can go output errors and warm so as a consequence if you set debug and attend will output all messages to you so this is one easy way of letting you know like uh i want the most verbose one it's actually like the might be a bit counter-intuitive there um and the second most important setting is the output so usually it's just console unless you change it which means uh information just being output to a terminal you can set it to a file or both so those are the three of three options currently available we would love to get more options in the future um but there are a few consequences to this which are adding more dependencies to when it can making the anaheim docker image or the app size bigger and naturally with external dependencies we have problems with security concerns so we decided for this moment to simply use file and console which are super standard and if you need to use an external system you can set up your an account to write information to a file and there are applications that allow you to leave information from a file and sent to an external system like lovely or log stash for instance and a few letters also um beyond those two environment those two settings that i mentioned you can also set the file counts which i mentioned in the beginning 100 files so you can change this number up or down according to your needs the maximum size for each file which is 16 megabytes by default you can increase or decrease that we chose 16 megabytes because it's a file that is long enough to store a good amount of data that you can read through and understand what's happening uh in a good period of time but at the same time not so huge that you can that you would be unable to open it with like a regular text editor and finally the files location so where do you want the files to be stored so as i mentioned uh they will be stored inside the name home folder which is like the dot n8 folder inside the subfolder called logs and the files will be called anagan. log and when rotated and again dash one that's true that three dot log some more information about login you can always do to the documentation this contains the most up-shifting information i'll leave this qr code here uh for a moment so if you want um you can have a look there but it's just a nh documentation it's super easy to find if you just type block or login in the search you will easily find this link and one important thing that is there that i will not be covering now is that this page also covers if you're interested in contributing to anytime how do you use the anytime tools to add log messages i mean to create more log messages if you see hey i'm trying to diagnose something to debug a specific situation there are no log messages available at this time so you can easily add more love messages making contributions 2010 as you know our source code is always open and contributions are super welcome also well let's touch a little bit about the logging best practices so as i mentioned logs are not saved by default they are just uh output to your console so my recommendation is to set and again to save those two files so you can easily rely uh on those files in the future whenever you need to debug something or find a situation uh this is super useful for us like if you're recording a an error on nan uh those log files can be super useful in those kind of situations um we do not expose any sensitive information of the log messages that we added so far did not expose any sensitive information like with dentures or so uh they just tried to really pinpoint what was happening what the what are the resources and operations that were happening so uh it should be safe uh to have those files although i would really recommend if you're filing a report please send those files privately as this is the best way naturally so uh if this space is not an issue i would really recommend you use the default level it's really the one that contains the most information which is like the purpose of logs but if you have a space then constraints or uh some sort of restriction definitely you can set this level lower or use a debug but set um the number of files should be smaller you know uh one also one another important thing is that well those are files so they're stored um in the file system and the hard disk and if you're running an extended a container let's say and you update an a10 so you spin up another container with an update you lose the information in the previous container so this is one of the reasons you should be using volumes and this is described and in some examples on how to run an a10 to actually map the data event over from inside your container to your host machine so that you don't lose this data in case the container changes you know um so also if you're unfamiliar with this please let us know uh there are examples for those in the documentation we can help you with this um and also like now that you have the files in your file system it's easy to install external tools like demons that will upload those files of those logs to external tools like blog stash locally and cloud watch like these are super standard items and remember logs are your friends they will help you in debugging and finding any uh some useful information in a lot of cases and we are adding more and more logs every time so that anytime is each time more helpful and understanding what's going on and helping us pinpoint issues so if you have any questions please feel free to share i hope it wasn't too quick and well thank you all right i just learned some zoom shortcuts so if you use command shift and v you're gonna turn off your uh video i don't know why what happened but that's something i learned today all right uh thank you mark for uh for sharing this i am sure it's gonna be useful for a lot of people now let's

### [29:05](https://www.youtube.com/watch?v=Hc1t6qzwjp8&t=1745s) Q&A

move on to the q a and here's uh here's the first question let me just note all right so is there any possible way i can get an a10 version inside anytime workflow like in the function node or something uh uma are you aware about yeah and again version currently no i don't think so there's an option to get that although uh we recently implemented a feature where any can unstarted will check for updates and let you know the terminal if there is a new version available so this is one easy way of understanding this uh but i don't think from the workflow that's possible like from a workflow to get the nhm version all right i tried out something very recently and if you have you know self-deployed entertain on your servers you can use the execute command node and run the command and it an a10 hyphen v so that would give you the uh n10 version that you are running so that might be one possible solution if you want to check uh which version you are running yeah good point i was thinking about expression but yeah that's a clever idea but i have the next question for you is how can we contribute to the ui sure so i guess it really that's a rather abstract question um so i would say when it comes to very large features let's say you want to really tackle something um i think right now we're working internally on how to standardize things the design system and whatnot so i think it might be a little bit more difficult to be able to contribute that sort of way to the ui right now um when it comes to small things i think some of the i think good examples that i've seen for example is um and the best types i think today that are possible is when um on a path to a certain type of device there's some clear bug in the ui the expected functionality is very clear how it should work and it just isn't um that could be a great kind of ui sort of contribution so uh a relevant example that happened recently is um we're not officially supporting touch devices in terms of when we're doing our product process doing exhaustive testing across lots of different touch devices that's not to say that we're not happy if and it you know does work on a touch device i know there's a small subset of users that we've heard even like to be in the pool on the ipad make workflows on a saturday we definitely want to empower that so for example if you do find a bug on um some version of android device where a button is not clickable if you find a solution to that on the ui side and submit that we'd happily review that and merge that and make sure that that's more usable so i would say that's today the best way that um users could contribute to the ui and beyond that i think in open source generally effectively delivering coherent ui is one of these open questions that um when i joined in and i was actually very interested in you know how do we solve that could is it possible to in public just like we do with code um uh translate learnings from users into effective ui and whatnot i think the best way that's going to work in future is starting small and getting bigger right um i would say right now um our product team was one person myself that's now doubled we're sort of figuring out our internal process there so i think how we think about bringing ui uh development process into the community is an open question if you have any ideas on that if you think there's a company that has done that very well or project please do email me max io or on twitter at max2catchmaxtkaczed i would love to hear about that because i think in the long term that would be something really cool if we could figure out how to pioneer um enabling that so a bit of a long-winded answer there um to recap on the small stuff if you find bugs please do submit those we'd love to have improved coverage across all these different devices and screens that we're all using on the bigger stuff it's an open question that i do think on late sunday nights and whatnot in the long term how we're gonna empower community contribute there so please do share if you have any ideas thanks awesome thank you the next one is uh for you omar uh this is basically a suggestion but i was wondering if you know there is a possible way to do this so the user uh says would be very cool to have error logs emailed to a dev team so with the current configuration with the current options that we have in logging is there a possible way of you know how we can do this i'm sorry what exactly was the suggestion so you know it would be really cool to have error logs emailed to the dev team uh yeah well unfortunately no uh this would be something that um would require us to implement a new logging driver as it's called uh to send the logs to another service um so currently no one possibility would be to watch the file and maybe send it to another way and currently no like the lock outputs are just fire and console gotcha thank you uh the next question is again for you so running the docker version please remind me uh where we can turn on blogs sure so um i was scrolling through the chat messages and john sent an interesting message here uh basically if you if you're running the docker version you're probably using docker run um some parameters and write some information about anacan um and lastly an nio or the docker image so you can also use environment variables in this so those environment variables will be injected in your container so you can use uh it's dash e and then a space uh the variable name equals the value so we can use this to set the logging on in your container and here and it can instance running inside a container the logs will be saved to a file so also remember to use a volume which is the dash v to map the folder from inside the container to a folder outside your container your host machine too you can save the log files as well um so paul uh john sent the message it's the annex analog level with an example on how he did this in his doctor compose if you're not using darkly composed it's um you see a dash at this start of the lines it would you should just replace that with dash e and it's pretty much the same thing um if it's not for you please let me know send me an email it's omar at nhmio i'll be happy glad to help awesome uh another interesting feedback from a community member is would be really nice to have config features per workflow that allows us to turn logging on or off when developing a workflow that granularity would be useful so we don't have to turn logging on for the entire instance each time we need to dig into a single workflow so is this a gain you know something that we can do currently well but that's very interesting idea unfortunately no uh you can either turn login on or off like it's all or nothing uh but that's a very interesting idea to turn on logging for just some specific parts of the system um that's a cool thing to think about we should be adding this to a roadmap logging on the man nice awesome another question is old logs will automatically get deleted or need to delete it manually yeah so they will be deleted automatically according to the log rotation settings so if you don't change anything na10 will store up to 100 files with 16 megabytes each so when you preach the 100 and first file it will automatically delete the latest one and create a new one so they're automatically rotated and one last question is when developing a node how is the right way to you know log something okay so uh what we use when writing and creating log messages is lock should be user for pieces of information for whoever is consuming the logs so usually what we do is try to say what the resource and what the operations are running at that moment uh if you have any other relevant information that might be tricky to diagnose for instance if you have to decide um for choosing one path or another during the execution and not to be so abstract let's go to a more detailed instance so if you have to add a property to a json or not and this might change the outcome of the execution those are useful information to add to log files so you say hey i'm at this node i'm doing this operation on this resource and i have this context so i had to take this decision um so this is basically the goal of log files to really pinpoint what's happening and naturally you can add more information like the execution id uh the workflow id um maybe credential name if you want to add that just as an informational thing so you can see if it's using the right information um so overall the idea is what kind of information would you expect when reading those logs so this is basically the thinking behind adding log messages i hope it's clear awesome and i just shared the link of the documentation where we describe how you can implement it in the code so you can refer to this documentation and once again if you face any problem or if anything is not clear we are always happy to answer you on our community forum all right so uh let's move on to our next talk

### [39:25](https://www.youtube.com/watch?v=Hc1t6qzwjp8&t=2365s) Lightning talk by Chris Dietrich

and working on the intersection of sales and technology chris enjoys dabbling with no code python and open source today he is going to talk about simple automations for the peace of mind take it away chris i'm with myself okay great can you hear me yep perfect yeah thanks so much it's like i work in sales for uh like startup and payments so right now we also have like quite an exciting time which means a lot of growth panes uh which are good ones to have and uh we like try to use like n8n or automations and certain things that just make the overall uh life a little bit easier um these are mainly things that uh like remove like manual things that are easy to do like everybody can do this but just like uh take away attention from uh the actual work you were doing take like five minutes so it's not a big deal but in the end it just sums up and uh it's it's like things that um can yeah still require a lot of different small steps that have to be done in a super precise order and i believe that uh when you have actually identified something like this you must immediately automate it so i have like one um example here and maybe i can share my screen um so here and uh please let me know if you see the presentation as well yeah all right thank you um so talked about simple automations um the um background what we have done like in the past is uh there's a book that's quite popular it's called build to sell it's about um like when you build like a company and you want to increase the value it is better when everything is documented everything is like actually running on clockwork because uh um when you have like a new owner they actually have like a handbook and one they can follow it so we started documenting a lot of the sales procedures we're having uh like in a pretty granular detail whole onboarding flows of new customers like everything in actually normal documents so first as a step when for example somebody goes on vacation or somebody gets sick that somebody can take over because they know in general what to do and um or also if you have like two people filling the same role that there's not two flavors in the company but like actually like a unified one this is moved down to naming conventions of documents and also always all these other things because you uh will identify um like if things are missing if things are not touched yet easier when you um when you have like consistency in uh folders files etc we like in fintech so we have like also a lot of uh compliance documents like things that need a like very like detailed view so we have to pay like a lot of attention to process this book describes it a little bit within they call it sops and sods so the sop is a standard operating procedure could be for example how do you issue an invoice yeah what kind of steps actually to be done um the way when you write down the process uh the it allows you to actually free up your brain not needing to remember these things anymore so um what i usually do is also when i have like things that i know how to do because i actually created the whole thing i still take the workflow and try to also improve it and reiterate over this uh sometimes these are things that i cannot automate it's just like a step-by-step thing that where i can um which i can go through and uh because i do a lot of context switching and different things i just come out of the sales call you have a team meeting i talk with like something else when i then have like an hour of time or something to focus on some work it's just nice to have like this guidance so um so it helps me like to stay on track and uh to actually uh get this like gets better in the mode on working on this task so the holy grail is of course when i can actually uh automate the whole process by technology so when something is um granular enough or let's say this on a level where i can actually use tooling uh then i would like to apply like a bit like a workflow with a tool like n8n to so that i do not need to do the steps like manually i can still survey them so what we talked about right now logging or the wait function like i'm the weight node i'm very excited about this because i do have a lot of workflows where i do something and then i have to wait for external input before i can like move on and um some of these steps when i have the signal could also be something i can um let's say that i can that can then trigger like a next automation instead of me picking it up and doing actually manual work so some of the workflows i'm building they're like more complex um it doesn't always need to be like this so you can also just have like very simple things that actually also like have like already like a big input so for example one thing that we use is uh when we register when we receive like a new lead it's just simple things like creating a google drive folder for the client uh creating like an ad table entry and we have to also add the ad table the google drive link into the ad table entry so this is really simple um it's just like simple as that but if i would count up the steps i didn't do it yeah if i count up actually the steps that i have to do it's like opening google clicking going to the right folder in google drive clicking creating the thing putting the right name in there going to air table loading the right thing there's something wrong with the browser just like takes a long i'm actually uh occupied for still like five minutes to get this all of this done in the right way and i have to create like to like if you have like create like several folders like etc just to follow like our process so it's really simple work but it's it just doesn't make sense because you have to be very focused on doing it and the value add of doing this actually as a human is not really there um i still need it so the whole process can go on but the um it's just it sounds simple it is simple everybody can do it but i believe like no one should do it if we can actually uh do all these things like with automation so one of the other things is also that um when we get like a new lead this is like we don't we're not in control on this when we get the email the phone call the whatsapp message the telegram one skype yes when we uh when we actually have our trigger to do this workflow yeah so it is very distributed it can come by different channels so um what i uh and maybe i'm not in front of my desktop where i can actually do these tasks maybe i'm just on my phone now creating like these things on a phone like going an air table like doing all these things you know not very effective um so we're maybe like in the middle of a meeting we're just like running short and some stuff um or like it's like all relating just like i say okay i'll do tomorrow put me like create me like a trello task to do this instead um what we created is actually like a slash command in slack um i am a big fan of chat ops in general um they're really great because we spend all our time in there and i have my user interface with me on the phone i have it like open on the desktop like the whole time and it allows me to stay inside the inside where i actually work instead of going now to open actually a browser the um the other benefit of it is uh that because we use here the web hook to trigger it um do i have my mouse sorry i cannot see my mouse create um so we have like the webhook node um and it returns me actually the um actually we know we don't use the web hook node but like we uh we also post them after the workflow has been triggered like a message with the data into slack so when we look at this workflow here i have to create like three folders they are like nested in each other so i have to like it says already like a lot of clicking we use the set note to make it a little bit easier to write the right information from the previous notes into airtable and then we post the response into slack slash commands is like super easy to set up so you can create an app and then on slash commands you can create like a new command you can uh define it uh um give it like a name you can little bit of a description so when i'm inside slack and actually start with slash i can have like some sort of short documentation what i need to do and um from there i can then uh yeah just trigger the workflow which just does all these simple steps so we see this here we have like register lead um i have created a format was i'm still like the technical so i have like the entity name which is like the legal entity name i have a semicolon uh and after that i have like an uh parameter that does already other stuff inside our table um given like these things um this already helps me a lot because i know the entry has been created um i know that all the manual things that are like very tedious have like are like done and sorted and as a response i get like a simple message back inside slack which links to me the google drive folder as well as the ad table so instead of going into google drive and or into air table and entering all the stuff manually all i have to do is now i click to click actually the one on the entry and i can continue entering the uh information that um that else i have like about this lead for example yeah so um this of course for me is like great uh but it also uh has shown to be like very used by um like by my assistants like in other people who are not so technical they really embrace the slash commands as well we use them for treado task creation we use like for everything and the nice thing is also that it resurfaces um like it makes the work also like visible yeah so everybody's sort of in slack in this way this is like our operations channel so it's always good to see that there we have like new leads etc so it's not uh so we don't necessarily need to um report like all of this like what's been happening like people see okay we have like your new stuff uh and we like everybody's like sort of um involved or updated on what is happening on this part of the um of the business um especially because we work like fully remote or at least i do uh um this is like important for uh like yeah to keep like the information flow also going and um yeah that's that's that part um one thing how to get started so building this whole thing took me like two hours from start to finish i had to learn slash commands in skype uh in slack sorry uh i had to figure out how to create like a user for google drive like uh what's i called like a service account uh and i spent most of the time uh figuring out why the authentication doesn't work and i just want to point this out so read the fantastic documentation line by line like a proper sop uh from like from n8n from the n8nt because there's like a bunch of funky stuff uh that is not so obvious if you don't read this so i just want to point out this when you work with a private key that's a like just follow what they say um and um yeah that actually concludes my presentation on this maybe i can go back so awesome thank you so much guys that was wonderful and yep we often don't realize that we need automation until we have all these processes documented somewhere so thank you so much for giving us this small reminder yeah i also wanted to say that it's um you can start with something that is as simple as that i mean there are uh like working with the apis the notes in it and already creates it's like um it's like very how to say like it's very useful just to start with something an experiment and um especially like the web hook notes combined with a like with slack and then returning like a response back there using a slack note like these little things are made super easy i asked my um like another engineer like a real engineer how long they would take like to build this workflow and they quoted something from one to two weeks and i was like okay this will never happen yeah so it enables us a lot to do something here and it's actually for the benefit of the people that don't get that much uh depth capacity and uh just like makes work more enjoyable and we can move faster absolutely okay thank you

### [53:32](https://www.youtube.com/watch?v=Hc1t6qzwjp8&t=3212s) Lightning talk by Tanay Pant

so moving forward to our next talk we have tanay band the head of developer relations at any time tonight we'll be talking about how we automated a lot of our tasks around the new elite and beginners course over to yutani hey uh give me a second when i share my screen can you see my screen yep okay perfect so hey everyone and welcome to my talk on how we built our first certification course so over the last couple of months we have been getting a lot of requests from the lovely nhn community about certification courses and uh we thought about it and agreed that uh courses would be a great way to provide folks in the na10 ecosystem a coherent storyline and learning paths and moreover people also get excited by certification as that adds a nice incentive to the learning so we decided to build a course so we started thinking about what are the different elements of the course that we should take care of so first of all we wanted people to sign up so that we could track their progress through the different course milestones and oftentimes we saw that people would try to go straight to the quiz and avoid going through the course milestones and platforms like coursera and udacity deal with that by blocking the quiz section unless people have seen all the videos so i thought okay maybe we should have something like that then content of course is the centerpiece of the puzzle here and finally there would be a quiz that the student would have to take and if they pass they would receive a certificate okay so since content was the centerpiece of the puzzle here we decided to host it alongside our docs so we use viewpress for documentation and this way we wouldn't have to spend too much time building out a platform to host the content for the course so here we mentioned that students would have to sign up follow the two course milestones and pass the quiz to get the certificate so we use typeform to power the signup form and we'll ask for details like their full name as it would appear on the certificate and their email as well so in the true spirit of no code we decided to use a table as the database so once they submit the form it would store their details in a table and send them an email telling that they have successfully registered here we also check if the person have already signed up in which case we send them uh the email with the original details rather than re-registering them in the email that we send we include a unique id that the student would have to use during the workflow building exercises so that we know that they have finished the milestones now if you store a record in air table it automatically generates an id for each record and we have just used that as the unique id here and this is what the air table looks like every time somebody signs up finishes a milestone attempts the quiz which by the way is also a type form we note the date and time of when they did it um we also stored the score of the last attempt that the student did and we also store some other details like their name and email which of course i've omitted here and this helps us in a couple of ways so this is the first time that we have built a course and we want to make sure that people can go through this smoothly and in case we notice that somebody has been stuck at a certain milestone let's say for a week or two we can reach out to them automatically to see if they need any help so what happens when you submit the quiz um so at the end of the course uh we have to do uh we had to do a couple of iterations uh for this as different people approach the course in different ways and here we are pretty much making sure that we have covered all the edge cases of how a person can finish a course and once they finish the milestones in the course and pass the quiz with more than 80 percent they would get this email and we generate this linkedin certification button which autofills certificate details after clicking on linkedin as well as provide them with a pdf of the certificate and we are using a tool called api template to generate the certificate and that is how we build the course and at this point we thought that we were pretty much finished but we really underestimated the number of students who would try to directly attempt the quiz without finishing the course milestones and we ended up getting a lot of support questions uh where people didn't check out the requirements to get a certificate and herschel and i would have to look at the air table and see like why is it that they did not get the certificate and reply to them and then at that point we thought why not automate this as well so we created an end point where the student would enter their unique id so this is a web page and it would show their progress to them we figured that since we have this information why not make it available to them so that they can just check it themselves so this is an example uh scenario that i created so here the person sees like they haven't finished the course and the reason they haven't gotten the certificate is in the workflow section of the quiz they got only 34 percent as opposed to greater than 80 percent so they know they need to retake the quiz this is another example uh where you know the person has finished the quiz uh they've passed it uh but they miss notifying the team where they have to send discord message so uh when they come here they can understand like okay this step is missing and this correlates with the name of the chapter in the course so once they send out the message to discord they'll get their certificate id um and this is what it looks like and i stole this from hershel who successfully took the course and uh in linkedin you also have this field called credential url so this is typically used by platforms to verify that uh the credential that a person is claiming is real so we use the unique id here as well and we can verify that yes the credential that a person has put on linkedin is actually original and they can download the certificate from here as well and finally we decided to create a funnel like thing to visualize how many people end up earning the certificate and this also helps us understand where people are dropping out which in turn helps us prioritize improvements that we have planned for the course so this is a screenshot from the chat tool that we internally use called battermost which is an open source alternative to slack and if i use slash core slash command in matamos it gets the data out of a table except the ones with the na10. io email addresses that we have used for testing and it uses to a platform called quick chart which you can send http request to uh to create the bar chart and our certification course is live at docs. init docs. nhn dot io courses and since you have gotten a sneak peek of the inner workings of the course perhaps you'd like to go through it yourself and share your experience and feedback with me and we soon plan to do a more detailed write-up and share all the workflows that you have built to power this course in the coming weeks so that in case you would like to create a course like this uh you could reuse those workflows as well well that's all for today if you have any questions uh feel free to send them along in the chat and as always you can reach out to me at 10a at anytime. io and i look forward to see what you all build well those workflows look really good thank you tonight for sharing uh sharing them and telling how we are using nhn to track the progress of uh of the students while they're taking the course so thank you everyone who joined in and

### [1:01:25](https://www.youtube.com/watch?v=Hc1t6qzwjp8&t=3685s) Office Hours

thank you to all our speakers for taking out their time and sharing their knowledge we are moving uh towards the end of our meetup we will start with our office hours where you can ask questions and interact with the speakers and the edit and team so if you have any questions for our speakers please share them in the chat we got a question uh around the course tonight which api are you using for generating the certificate i see you already answered that perfect just to give a bit more context victor over here we have a node for api template. io so all we have to do is select which template we want to use and then specify all these all the dynamic parameters in the node all right while we have questions coming in from the people i have questions for you all which language did you learn recently i would really like to know which language you learned recently i like john's reply all right so we have people who are learning kotlin typescript german spanish spanish on dueling but it's wonderful python and javascript that's awesome oh okay we got a lot of new languages and javascript php malai that's awesome all right people thank you for answering that uh let's i'm gonna wait for a couple of more minutes to see if we have any questions from the community for our speakers or for our team and let's start big time in china and there are very good reasons for it interesting nice to know i'm gonna search that up search about that later on can i there is a question for you are you planning for advanced entertainment courses yeah so uh our team is working on um level two for the course right now and uh we also have level three plans so that's something that's upcoming in this quarter so we cover more advanced concepts as well uh and other things that help which can help set you up for success in terms of workflow building and uh everything around anytime that's awesome all right so this was wonderful once again uh thank you everyone for joining in let's continue our conversation over to discord now if you are not uh an address called server i'm just sharing the link in the chat you can join us on our discord server and let's continue our discussion over there have a wonderful day everyone take care bye

---
*Источник: https://ekstraktznaniy.ru/video/15778*