Full transcript
0:07[Music]
0:10uh hi everyone how's it going I'm Max I
0:12just uh flew in this week from Berlin to
0:14give this demo I'm very excited uh to be
0:16here first time in SF um and I'm here
0:19representing NN today I joined NN about
0:21four years ago as our first founding
0:24designer and last week about I
0:26transitioned into devil so this is my
0:28very first demo and I'm really excited
0:30to show you a lot of the AI uh
0:32functionality we've been working on in
0:34our work for automation product so my
0:36talk is on supercharging automated
0:38workflows with AI and I promise you I
0:40don't have a single slide to show you
0:42other than this one we're going to stay
0:43in the product the whole time we're
0:44going to build we're going to show you
0:46what NN is all about so what is n8n n8n
0:50is a low code automation platform for
0:53technical teams um there's a lot of work
0:55for automation products on the market
0:57right but I think what differentiates us
0:59it's not a single feature it's really
1:02about who we're designed for so we're
1:04designed for people who know how to code
1:06you don't have to be uh an expert to
1:09have you know uh get value from the
1:11product but we really give you the
1:13options and all the settings and all the
1:15things that you expect when you're uh
1:17working with code so to give you a
1:19really simple example here um there's
1:22steps on a canvas each step executes it
1:25outputs data and passes that along to
1:27the next step right so this really
1:30simple example if I open up my webbook
1:31trigger and copy the test URL if I test
1:35this
1:36workflow and I open up let's say a new
1:38tab and let's say we pass
1:41along uh a URL parameter we see the
1:44workflow executed right so if I double
1:46click my web hook trigger and I pop over
1:48the schem of view here we can see I have
1:50access to all the raw data that came in
1:52from that web hook maybe that's useful
1:54maybe it's not but it's for you to
1:55decide in this case it's this email uh
1:59variable here that I need to access in
2:02my if node I drag and drop it I set up a
2:05condition I have all the various things
2:08I might expect uh to work with like data
2:11types and whatnot right we call things a
2:14buling uh because that's what it is um
2:17and we see here this routed out to the
2:18true Branch we executed some arbitrary
2:21JavaScript we added uh something to
2:23postgress and if this wasn't the case if
2:25the email had not been at NN or hadn't
2:28included nn we might send a slack
2:30message so to give you an example we
2:33have hundreds of different apps that we
2:35connect with natively and we have
2:37generic connectors right for HTTP
2:39requests uh FTP all the various
2:41protocols that you might need to connect
2:43to so you might be asking me Max I don't
2:46see any AI here right so this is what
2:48nidn has been doing for about the last
2:50four years is providing a workful
2:52automation product and now we've added
2:55an abstraction of Lang chain to allow
2:57you to build uh far more s sophisticated
3:00uh Ai workflows and I think for us what
3:02we're realizing and seeing is that um by
3:06adding AI to a traditional work for
3:08automation product there's a lot more
3:10use cases that become uh feasible and we
3:13have a lot of maturity in a lot of the
3:15things that maybe some of our
3:16competitors might not have yet since
3:18they started off as an AI native tool so
3:20in the first example let's build an
3:23automation that categorizes emails
3:26coming into this inbox based on two
3:28labels either automation or music so the
3:30first step I'll do is we need to start
3:32this workflow when I get something in my
3:34Gmail inbox right so I'll go to Gmail
3:36here and we'll add a trigger event when
3:39a message is
3:40received okay so I already have a
3:43credential setup in here if I need to
3:44create a new one I could uh this is a
3:46poll based trigger many of our triggers
3:48are event based this one's poll based so
3:50we handle all the D duplication under
3:51the hood and in this case I don't want
3:54to simplify the output so let's fetch a
3:56test event this is going to bring in the
3:58latest email again I'm seeing all the
4:01raw data that I'm getting from the Gmail
4:03API if I Collapse this I can see I have
4:05the email itself here so this is what we
4:08want to analyze um and classify so in
4:11the next step what we're going to use is
4:13one of our brand new text classifier
4:15nodes and this is one of our Advanced AI
4:18nodes so this is an abstraction on Lang
4:20chain so like in Lang chain I have
4:23various dependencies I might need to
4:24connect to this but before I do that
4:26let's set up the the parent node itself
4:28so there's various parameters to fill
4:30out here there's the text to classify
4:32for this I'm going to go ahead and drag
4:33and drop the text and we can see we've
4:36created an expression in NN we can see
4:38there's the result of that item coming
4:40in there what I might want to do as well
4:42is also pipe in the subject maybe that's
4:44useful context so we can do that as well
4:47and now we've got the subject and the
4:49title I could of course if I need to
4:52apply various methods to it um we have
4:54helper functions but also uh plain
4:57JavaScript um but in this case I need to
5:00do any of that so uh The Next Step would
5:04be to define the categories that I want
5:06to classify by right so for the first
5:08one I want to do automation for the
5:12prompt itself let's just copy paste that
5:14so you don't have to see me awkwardly
5:15typing that out so what we see here is a
5:19very simple description right nothing
5:20too complicated we'll do the same
5:24for for
5:28music and uh paste that in as well okay
5:33and if I wanted to again nent has a lot
5:34of options for you we progressively
5:36disclose those if you need them but if I
5:38needed to also um maybe have a different
5:41output when we don't know what's
5:42happening I could do that as well and
5:44now we see we've created all these
5:45different output branches so the
5:47dependency here is a model as you can
5:49see with various different models that
5:51we support here this list is growing
5:52every day self-hosted models Etc uh nadn
5:56is also fully self- hostable we have
5:58users running on a Raspberry Pi we have
5:59users running in the cloud so you could
6:02totally run everything you're seeing
6:03here today on Prem if that's important
6:05for you so in this case I'll use Chachi
6:09PT or an open AI model since it's a demo
6:12let's go with the brightest and best for
6:14now and again there's lots of options
6:16here right so maybe I'm an Enterprise
6:18and I have my own cluster I can easily
6:21change the base URL there maybe let's
6:23turn down the sound planting temperature
6:25a little bit okay so let's see if this
6:28works let's run that
6:31and we got something coming out the
6:33automation Branch here this email is
6:35about automation we'll do a test
6:36afterwards so you can check me on
6:39that and then uh this last step I just
6:43need to add a Gmail
6:45step uh we want to add the automation
6:50label move that
6:52here and then for the message ID we're
6:55feeding in data from before in my
6:57workflow again here we'll duplicate this
7:01for the music
7:03step we'll change this to
7:08music and so now this
7:11workflow if I um if I check my inbox
7:15here let's send a new
7:18email send that
7:33okay so this is about music right it's
7:35about a disco edit Let's uh clear this
7:39let's run the
7:41workflow and we're just going to stop
7:43this real quick and we're going to pause
7:46this trigger
7:47here and then if I run it
7:50again it's pulling the latest test event
7:53now again once I activate this worke
7:54this would work automatically and we see
7:56this was routed to the music branch and
7:58we apply the music label so that's text
8:01classification in a few minutes now I
8:03have a rag example as well I'm looking
8:05at the clock we got about 2 minutes left
8:07so I'm going to run through this really
8:08quick because there's a really cool
8:09thing I want to show you in a little bit
8:11here but basically with this example
8:13I've got the BTC white paper we're going
8:15to run this this is handling text
8:18embeddings and inserting this into pine
8:20cone as a vector those are in Pine Cone
8:23now again showing traditional steps like
8:26downloading a file with the uh AI
8:28capabilities and then in this part with
8:31our chat trigger if I ask what is the
8:35first reference in the Bitcoin white
8:39paper it's going to answer
8:43this now what when did the eth white
8:48paper come
8:50out this is something that gbt 4 would
8:52know right most
8:54likely ours doesn't because we have
8:57guardrails set up that we want it to
8:59just use use the vector store itself
9:01which is important when you're building
9:02something uh for production environment
9:04where you want to control the results
9:06right so that's something nend helps you
9:07do so in the last 60 seconds I'm going
9:10to show you a a brand new feature which
9:14allows our AI agents to interact with uh
9:18tools and the tool that we've added now
9:20is the ability to teach your agent to
9:23interact with any arbitrary rest
9:25endpoint and Define the parameters that
9:28it can control with placeholders and the
9:31things that it cannot control again
9:33guard rails so if I run this um let's
9:38say can I make an appointment for this
9:50Friday let's see
9:52certainly this Friday would be this to
9:54proceed I'll need the following
9:56information okay when is Max available
10:01let's
10:06see in this case I'm using an anthropic
10:09model but again you could swap that out
10:10under the hood so we have the
10:12availability times let's see um can I
10:15book an appointment for 900
10:20a.m. now I haven't given the full name
10:22and email address yet agents handling
10:25this all under the hood so my name is
10:26Nathan automator
10:29and my email is
10:32Nathan
10:33automator
10:36gmail.com and now so we Ed the first
10:39tool which was to check the availability
10:42and now the second tool is consuming the
10:44endpoint to create an event and so we
10:47book that if I check in my
10:52calendar we can see that um we've booked
10:57a meeting between Nathan and Max right
11:00there um
11:04so in
11:06short um this is a very simple example
11:09right but you have multiple various
11:10tools that uh this agent could use and
11:15just to give you an idea this is just
11:17one of the tools right there's off the
11:19shelf ones or you can even call an ed in
11:21subw workflow so hundreds of
11:23Integrations that we have you can start
11:25having your uh agent interact with those
11:28as well be it something that's off the
11:30shelf like a SAS tool or something
11:32proprietary that's on your own uh local
11:40infrastructure so what's happening in
11:42this example right this is the AI step
11:45this is what's handling my my fuzzy
11:47semantic language this step here and
11:50this step here are things that we've had
11:51in in in for a couple years and this is
11:54a standard action so as you can see here
11:56this is the Gmail node as we call it an
11:58N ATN it's operating on the message
12:01resource the operation is AD Label and
12:04exactly under the hood we're interacting
12:06with the Gmail API as abstraction for
12:08you now let's say we didn't have Gmail
12:11or let's say we didn't have your you
12:12know proprietary app you could do the
12:14same thing with an HTTP request node or
12:18an SFTP node or any sort of protocol
12:21that you need to interact with ssse
12:23events Etc
12:24[Music]
12:27y sure so gen work for themselves is on
12:30our road map um one of the squads that
12:33I'm actually involved with right now is
12:34working on an AI assistant that's not
12:36going to be the very first task that we
12:37launch with um to be honest we did some
12:39poc's on um handling that and we saw a
12:43lot more value from helping uh users
12:45solve the errors that they're doing in
12:47building the workforce um but it is
12:49something on our road map most likely it
12:51won't be a type of single prompt and
12:53build out a whole workflow we see that
12:55with some of our competitors um and
12:57we've tested it and I think the results
12:59for many users are a bit suboptimal
13:01right now so uh when we approach that I
13:03think uh where we're going to explore is
13:05probably step by step you know
13:06describing next step in the workflow um
13:08but yeah that's on our road
13:12map yeah so the the app that uh you're
13:14seeing right now this is n so this is
13:16our work for automation tool um it's
13:19Source available so you can self-host it
13:21you can Fork it you can tweak it uh
13:27Etc so right now today day uh when I
13:30talk about AI um we sort of segment it
13:33right now there's this Advanced AI
13:35category these are these sort of um
13:38chains that you're seeing with
13:39dependencies it is an abstraction of
13:41Lang chain today the way it's been set
13:43up from day one though that's just one
13:45of the Frameworks that we're using so in
13:46future as the space evolves we can swap
13:48in other Frameworks under the hood so
13:51yes this right now is an abstraction of
13:53Lang chain but a future text classifying
13:55NN or one that you build yourself as a
13:57custom node for example we have doc you
13:59to build your own nodes doesn't
14:00necessarily have to
14:04be so I would say in terms of um
14:07observability let's have a look we do
14:09have logs for example when you're
14:11working on this that's not necessarily
14:13going to catch you know if something at
14:15scale is is happening wrong for a
14:17certain subset of your user base that's
14:19not tooling that we would have in ID end
14:21today that is something that we're
14:22assessing but I would say when you're
14:24building your workflow uh and this
14:26happens a lot in end it depends
14:29what uh you want to catch for so right
14:33now the way this chat trigger works when
14:35again this is just a chat trigger this
14:37could be a web hook this could be any
14:38arbitrary you know way that's starting
14:40this um it's responding with the the
14:43output of this because it's the last
14:45step but I could have an if node I could
14:49check for certain criteria we also have
14:52agents where you can output a certain
14:53schema you can validate that schema if
14:56that's invalid you could route to
14:58something tradition Additionally you
14:59could send a static message o sorry
15:00something went wrong we're we're texting
15:02a human if that's what makes sense for
15:04your use case or you could have a
15:06multi-agent approach maybe here you have
15:09GPT 3.5 because it handles 90% of the
15:11cases and then when it fails you're
15:13routing it to an expensive model um
15:15because you want because it's really
15:17important that it gets it right so what
15:19you do exactly depends on your use case
15:22but it saying n and the way it's
15:24structured there's usually a flexible
15:26way to get that done and where you're
15:27not sort of locked in like most no code
15:29tools and that's why I would say the
15:31reason why we call ourselves a low code
15:34product so so it depends what I would
15:37say is for things that we see you know
15:39on a bell curve a lot of people wanting
15:41to do we add a more opinionated node for
15:44that the text classifier is a great
15:46example of that the text classifier node
15:48did not exist two weeks ago because we
15:49saw a lot of people wanting to do that
15:51the limitation of the text classifier
15:52node is that it's mutually exclusive
15:54only one of the options can be chosen if
15:56you needed to choose all of them there's
15:57an example on our template library that
15:59shows a more generic node where we set
16:00up a few more settings so I would see
16:02over time the things that most folks
16:04want to do most often there will be an
16:06opinionated node for it if there isn't
16:08already today um but you're not locked
16:11in if something you're trying to do kind
16:12of Falls outside of that bound
16:20[Music]