The n8n Masterclass
Welcome to The n8n Masterclass. Iβm Dylan Watkins.
Each week we break down real business wins using n8n and AI automation. Youβll learn what worked, why it worked, and what broke along the way. Founders, automation experts, and AI agencies share how they use n8n to simplify operations, scale delivery, and move faster without adding more people.
The n8n Masterclass is not about tutorials or tech jargon. It focuses on the real business side of automation, the frameworks, decision patterns, and creative problem solving that turn workflows into results.
Youβll leave every episode with one principle, one pattern, and one action you can apply this week to grow your business, reduce manual work, and unlock the potential of automation.
If youβre building a business that runs on smart systems, AI, and no-code tools, this is your playbook for scaling with n8n. Follow The n8n Masterclass and start using automation as your competitive edge.
The n8n Masterclass
Automate the boring work of HR with n8n (free template) with Paul Karrmann
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
Most HR teams are still setting up Slack, email, and Jira accounts by hand every time someone new joins. And when requests come in from three different places at once? Someone has to manually sort through all of it.
In this episode, I sit down with Paul Karrmann β an automation consultant based in Germany who built two n8n workflows that fix both of these problems.
π Free HR Template: https://go.n8n.io/hr-template
π Personio Community Node: https://go.n8n.io/personio-npm
ββββββββββββββββββββββββββ
WHAT WE COVER
Workflow #1 β Automated Employee Onboarding
The moment someone joins the company, this agent automatically provisions every account (Slack, Jira, door access, and more) and sends a welcome message. Zero manual work.
Workflow #2 β HR Request Triage
No matter where a request comes in β Slack, Gmail, WhatsApp, or an online form β this workflow normalizes it, deduplicates it, scores it using the Eisenhower Matrix, logs it to Notion or Jira, and only alerts you when something is genuinely urgent.
We also go deep on the Personio community node Paul built for n8n, which makes it easy to connect Europe's most widely used HR system to your automation stack.
ββββββββββββββββββββββββββ
TIMESTAMPS
0:00 - Intro
1:21 - Welcome & overview of AI in HR automation
1:57 - Demo: Personio trigger node walkthrough
2:49 - The #1 HR pain point: employee onboarding
3:15 - How the onboarding agent works
3:56 - Setting up Slack notifications & welcome messages
8:06 - Client intake: mapping a company's tool stack
9:43 - On-prem deployments: hospitals & Docker environments
12:54 - HR Triage Workflow: handling requests from Slack, Gmail, WhatsApp
13:19 - Universal intake normalizer explained
14:16 - Eisenhower Matrix for request prioritization
15:14 - Full Eisenhower model breakdown
23:03 - Building the Personio community node
24:04 - Why Paul built it (and where to get it)
25:39 - How to connect with Paul
26:23 - Enterprise-grade automation vs. vibe coding
ββββββββββββββββββββββββββ
#n8n #WorkflowAutomation #HRAutomation #NoCode
Get 30% Off n8n Cloud Starter or Pro Plans!
Want to get started with n8n? Visit n8n.io/pricing and use code 2025-N8N-PODCAST-729C416E at checkout for 30% off your first month or year.
Saw one of your posts on LinkedIn. Now go to try to deploy that in a 500 person company and let me know how that goes.
SPEAKER_01This alone saves hours probably of most people's time because it is this the simplicity makes it so great as you can just repeat it for pretty much every company.
SPEAKER_00You can always pay your way into a thing. It's very hard to get your time back.
SPEAKER_01Today we're gonna go through a few things that I did in Germany, which is focused on AI in the HR work.
SPEAKER_00Every time somebody joins a new company, somebody has to set up their Slack, their email, their project management, five, six, or even seven different accounts manually, every single time. And when an HR request comes in, whether that's a stick date, a vacation, or question, it comes from everywhere. Slack, email, WhatsApp, and somebody has to sort through all of that and figure out what is urgent. Paul Carmen is an automation consultant in Germany, and he's built two N8N workflows that solve these problems. One handles new hire setups automatically the second somebody joins the company. The other one collects every HR request, no matter where it comes from, and makes sure that only the urgent ones interrupt you. And we are gonna walk through both live in N8N. You can grab the templates in the description. Let's get into it. Hey Paul, welcome to the show. So what are we gonna be learning today?
SPEAKER_01Today we're gonna go through um a few things that I did in Germany, which is focused on AI in HR work, um, and especially focused on N8N. For example, I built the uh community node for Personio, which is Europe's biggest HRS, so human source information system. Um, the key focus, especially in Germany, it's one of the biggest unicrons we're having. Um, and one agent uh workflow I built with it, and then we can go through uh how I set this all up.
SPEAKER_00Amazing. Uh go ahead and share your screen and open up and we'll get into it. Yeah, I know with especially big businesses and enterprises, there's all these things. How do you handle requests at scale? How do you handle HR requests at scale? And how do you handle it in a way that is uh native to what they do? And so I know you have this Slack integration for this. So let's step into it and uh let's show me what you've created.
SPEAKER_01Awesome. So yeah, um, as I said, this is obviously only on the cloud version on NPM directly. Um, but the Personio uh trigger, there are multiple triggers in Personio because obviously HR work, there's so many things that are happening, there's so many webhooks uh available, very, very hard to play with if you don't have something uh like NHN. Um but this one here is just when a person is created, right? That happens a lot, uh usually when somebody starts. And one of the biggest pains that probably every HR manager can feel is the onboarding. So many things that just can go wrong, right? So what we built here is a very small onboarding uh agent. So this one is literally just sent uh to the OpenAI chat model. So what it does is uh asking, hey, we have this new person, can you do something? And in this case, it literally just creates accounts. So the idea here is it accounts for Jira for uh for the for the door, for example, for different company. They have an electronic door and everybody needs to go in there, um, that kind of stuff, right? But also stuff like Slack, and after that is done, it sends it directly to Slack, um, sends a welcome message to everybody, uh, to this person, letting everybody know that somebody else is starting, and reminding the manager that it's somebody starts, right? Super, super simple, but this alone saves hours probably of most people's time because it is this the simplicity makes it so great as you can just repeat it for pretty much every company. Um and yeah.
SPEAKER_00Amazing. And when I'm looking at this right now, what I what I like about this is the common problem. The common problem is with HR professionals trying to onboard new people and going through an onboarding flowing process. It's a it's one of those basic, boring, repetitive processes that can eat hours of your time. And what I like about this too is with the Personio, it's a you know said unicorn, really big company uh that a lot of the uh European companies use um in order for their HR needs. And inside of here, it looks like you also have a sub workflow that then connects to those different accounts like Jira or you know, maybe creating a Google account or whatever it might be to set them up. So let's let's go through it. Maybe you can open up the first your uh Personia trigger, and then we'll step through the onboarding agent and look at each one of these elements individually, and so that we can understand a bit of how it works.
SPEAKER_01So, yeah. Um, if we look to Personia, right? This is super simple to create. Uh I already created credentials, right? The thing you already know and love from NA to N. So simplest way, and then you have all the events. Again, there's a lot of them because Personia just tracks a lot of stuff because a lot of stuff is happening with people. Um, in this case, it's just a person created endpoint, um, which always triggers if somebody new is in the system, may it come from a different system, like the applicant tracking system, right? A recruiting system, uh, or is by hand created from somebody, which obviously we want to somehow stop. And what it does then is pretty much just send it to uh the onboarding agent. In this case, this is pretty much just uh showing how it should use, right? So it gets a prompt which is the user message, in this case, everything that is uh in the person's uh uh profile. So that can be a ton of stuff, but usually maybe we can just go through an evaluation. I think that's maybe uh execution beforehand, which is not in here anymore. Sorry for that. Interesting. Uh but yeah, what would happen is um that it literally just takes the input from the entire thing, so everything that the person has, right? Their name, their address, uh, their role, and who they're working with, and then it pretty much gets a complete hand to uh set up accounts. So in this case, um this one is a bit empty because it goes to a sub-workflow that is uh set up in other systems, right? Because this is in my cloud environment. Uh so it's a bit stolen from things I actually use in other companies, um, where I just use the API directly. Um at this point, so an HTTP request. But what this essentially does usually is go through Jira, it's going through um Slack, it's going through Gmail, setting up their accounts, making sure that nobody really needs to do anything anymore when somebody new starts. Because at smaller companies, it's already like five to ten accounts at big companies that can sprawl to absurdity. And one thing is also that different people need different accounts, right? An engineer may need access to GitHub while an HR person doesn't need that, but may need some access to uh some, well, Personio, for example, to ensure that they can work.
SPEAKER_00Got it. And then so that's great. So it's it's role, positions, and accounts. And then when you're when you're going to set this up, uh the Personia is gonna get this universal uh thing for HR managers or HR employees to be able to use. And then we're gonna go inside here, make a list of all of the different um uh platforms that they're gonna need access to. And when you go and create this, and when you go say you meet with a company, can you talk me through the process if you're gonna say uh set this up for a new company? Do you do you map out, you know, you know, new hires and what that looks like? Or what's the process for actually um setting this up for a new company?
SPEAKER_01Depends on the company, right? Obviously, that's the answer. But usually what we start with is uh an intake meeting where we just see how do these companies work, right? What does this company do different? So we're looking at the entire landscape of their tools, their tool set. Usually it starts with a human resources system. Uh, very rarely I work with companies that don't have one. Sometimes I work with companies that have ones that don't have API connections, uh, which usually needs to make one very, very creative. Um and then when we figure all of that out, we usually just start mapping, right? Mapping where which process goes through, what is happening where, um, and deciding what is actually valuable to automate. And usually there are some things that are just standard, right? I mean, there's a reason my pitch usually doesn't change that much. People want to automate writing Slack when they're sick, which is super, super easy through uh N8N and other two uh and uh this different kind of HRS, right? Because usually you have the access to the sick leave and you have access to Slack already. So this makes it super, super simple. Um, those are like the top favorites, and everything else is connect my human resources information system with my applicant tracking system. Um, and a lot of people nowadays, especially in companies that are like hospitals that have only on-prem servers, love LA then because it's on uh open source, right? So I can actually build it in their own environment. Um, and that is a lot more fun. So there is a lot of cool stuff to be done here.
SPEAKER_00Got it. So with the on-prem, do you know get some sort of Mac mini or a Nook device of some kind, locally host it and put it on-prem so that you're then hosting that and like on-prem, is or how do you actually set that up for say a hospital?
SPEAKER_01Yeah, for uh, I mean, on-prem means obviously if you want to use LLMs, it's very, very hard. Especially a hospital usually doesn't have the financial uh at least not in Germany, the public hospitals don't have the financial backing to buy the amount of hardware they would need for like a flagship model. Um, but what we usually do is just the automation in itself is already so valuable, right? Especially if everything is on-prem. They usually are a few steps behind. And in Germany, we are already a few steps behind in terms of integration and automation. Um, so what we usually do is just uh create a Docker environment because N8N already has that, uh, or they have a Docker environment, and I uh go into that, set up the N8N cloud and cloud environment, and then uh connect all the tools from there. Um while on-prem sounds a bit archaic, usually the people responsible for the on-prem are very, very good at technology, and so you usually can set up stuff really quickly. If we want to use models, sometimes we would buy then uh smaller uh Mac Mini is not really something I use, but uh a Linux server that has a bit of more power uh that allows us to at least use smaller models for embedded uh work, right? Um find uh I don't know, find uh different kinds of uh stuff in a different kind of sections in a contract, uh, so we can build a vector database uh for a very good rack or something. That would be something where we sometimes use AI, but on-prem usually is still just automate stuff, right? And their NAD is awesome because it's just a very easy uh interface to use.
SPEAKER_00Makes sense. And then with the uh on-prem, you could always use like an OLAMA if you wanted to. It's obviously not going to be as good. People expect it to be as good as JatGPT 5.1 or whatever, but it's not gonna be as good. But if it can get the job done, especially if you train it up a bit on knowing the use cases, give it some examples, a few shot prompting. I could see how that could get it good enough to do what you want. And with this as well, you talked about a couple of different use cases. So this is an onboarding applic, uh, onboarding for new employees. One of the other ones is if people want to message, because the thing is everybody wants to stay inside of Slack to get the job done. And the challenge with that is that sometimes that creates more noise than it does signal because you have a lot of messages coming into there that you actually want to put into in sort of uh maybe a project management software or into a Notion or into some other system. So talk to me a bit of the flow. Because I don't, I don't, this is gonna be for the onboarding, but how would it look like in terms of a flow if I was wanting to send a Slack message to do one of these activities?
SPEAKER_01I mean, I actually built exactly that kind of workflow as well, um, to ensure that people can have that freedom. Um so that triage requests come from different uh kind of sources. So let me just share this one. Uh so this one was a bit more mature, as you can see, this is also available already on the um as a template on N8N. Uh, so this one you can easily download or integrate into your cloud environment. This is also on the cloud environment. So, what I built here is actually really fun because the idea is that we have a universal intake normalizer, right? Uh, maybe this is not a thing for everybody, but in HR, you don't usually just get messages in Slack, you get them everywhere, right? WhatsApp or uh iMessage, uh in Gmail, in some different kind of way LinkedIn. And the idea is that you can plug in everything. And one thing we plugged in here, for example, is the Slack message, um, which then normalized the whole thing, uh, goes through all the all the database. So I use the database model for uh the database node from N8N here. Um so the idea is to have an idea understand, hey, did we already do this or not? Um, and store the IDs behind that, and then triage everything. I'm here, I'm using the Eisenhower model because I'm a worked at BCG and I'm a nerd. Um, but that works really well. And at the end, it does exactly what you're saying, right? It creates notion tickets. And if something is really high importance, we're using a ranking from one to 10 here. It actually notifies the person on Slack, right? Uh, I don't know, I have a deaf in my family and need to take off really quickly. Uh, a person starts tomorrow and their laptop isn't here yet. What do we do? All right. So that would be notified directly, and everything else is just neatly stored in something like uh Notion or whatever kind of board you're using to prioritize your work.
SPEAKER_00And we're gonna be able to make this template available. So um down below inside of the YouTube video or on LinkedIn, wherever you're watching this uh content, there will be a link to that template so that you can download this, plug it in, and then get up and going with it. So that's that's great. Can you explain a bit of the Eisenhower model?
SPEAKER_01Uh so Eisenhower model is the idea that you prioritize between uh something important and the something now I need to translate to German uh from German as something uh needs to be done in time. Sorry for my lack of better uh wording there. Um and the idea is that you have the four quadrants of uh something is needs to happen now, so it's uh high priority, right? So it needs to happen soon. Um, and something is uh is important, right? So it has a high impact value. Um, that would be in the quadrant of do it now, right? Then you have uh something is not important necessarily, uh, so it hasn't have a high impact but needs to be happening fast. Then you give it to somebody else uh as something has a high impact but isn't important, so you usually uh try to schedule it for someone else some for someone else. And the last one, it's not important and doesn't need to happen, so you just ignore it. Um, that's usually how the Eisenhower matrix works. Here, I just take the idea of it to prioritize because it's very good for uh chatbots if they get something that is more tangible, like the Eisenhower matrix. Um, then they usually don't go as wild with the one to ten, right? If you just say, hey, give me a one to ten, uh, how important this is, they sometimes have a fun way of uh changing between five and ten for the same ticket. So that's why I incorporated it here.
SPEAKER_00Yeah, so it's a it's a matrix and it has basic four quadrants. There is there's urgent and non-urgent, there's important and then there's not important. And so what you're looking at is you want to ideally find the ones that are both urgent and important to do. If it's not urgent and not important, you want to set it on fire and get rid of it, but you're trying to you're trying to rate it based upon that, the importancies and the urgencies. Is that correct?
SPEAKER_01Perfectly explained. Thank you so much.
SPEAKER_00Not a problem. And then going back to this system that you have set up here, when you're talking about normalizing these, and if you can slide your screen to the left where I can see the Slack and the email coming in, uh my I guess my left. And inside of here, so if people wanted to add to this, so for example, iMessages or Telegram, WhatsApp, which is really common overseas, you would you would then create another node at an entry point inside that section where you can see the Slack and the mail uh Gmail coming in. Is that where you'd add in the additional nodes inside of there?
SPEAKER_01Exactly. You can just use a trigger. I mean, I don't think WhatsApp is oh yeah, it is with WhatsApp business cloud is already in. Of course it is. Um so you use the uh trigger on message, right? Um I will now not set it up because that would take forever. But you just pretty much take all of that and just connect it. Done. It would work immediately. Because the this is the cool thing about this universal uh oh wow, this is very, very small. Sorry. Um very big. Uh so what this essentially does, uh it if it would let me scroll down. Uh what it essentially does, it um sends all of it to the LLM, right? The LLM reads it and understands, okay, uh where does this come from? What is it for a thing, and how can we make sure it is the same across all messages, right? So the IDs, for example, are created by randomized ID plus WhatsApp. In this case, it would be. And then everything else, it just normalizes through the model um at the bottom. So this way, it usually works incredibly well in having exactly this output, right? The normalizer that just works with one JSON example. Uh, and here you can see, right? Sources, Gmails like from other uh form, other. So if you have an online form, we have that a lot, the timestamp and everything else. Because usually messages are built pretty much the same. They're just structured differently through uh well, through how the message services do it. So all this does is just make it in the same structure. So it allows us to read it uh later from by our agent.
SPEAKER_00Great. And then you're sending that from the remote normalizer into the data tables. Inside the data tables, you're taking that normalized data set, you're passing that into there, and then is the next one reading it? What's the next step? I'm trying to see it from here.
SPEAKER_01Uh so what this does is these two data tables are pretty much just to make sure nothing is duplicated, right? Um, so all it does is read is this ID already existent? Because the ID will always be the same pretty much uh for a message, because it can happen that sometimes you pick up the same message twice. Um and if it isn't, it lets it go through and it stores the processed ID if it uh if it was or if it wasn't already in, right? And the next step here is the triage uh with all the analyzation that happens, um, ensuring it is exactly how we want it to look like, right, with the uh with the uh output parser that allows just to have exactly the JSON we want uh that's easier to read by Notion or by the filters in Slack.
SPEAKER_00And I can see there, yeah, you're then kicking it into the Notion data table or database so that it's tracking it there. But it could be anything else. I mean, it could be clickup, uh, it could be uh, I guess maybe superbase if you're getting advanced inside of there. Uh and and so you're storing that again. If it does, uh if it does exist or doesn't exist, you can add it in there. You don't want to have duplicates inside the system. And then at the same time, it's it's ranking on importance and then taking that and notifying in Slack. So if you're an HR manager, someone's requesting a sick leave, then it's not only going to be able to get that information, putting it inside the system, then you can also get notified as well. Is that accurate?
SPEAKER_01That is perfectly described. Exactly, that's what's happening, right? Uh, as he said, whatever you want, which system you use, uh, it can be just modified for that very easily.
SPEAKER_00Fantastic. And what have you seen as common databases besides Notion? What are the other ones that you've seen in your space that people want to hook up into?
SPEAKER_01I mean, Notion is relatively rare in HR circles, right? Because uh in Germany at least, it's it's a bit hard to really do that. So usually most companies rely on Jira um as it is the standard thing. If you had Atlassian, you have Jira, IT uses Jira, so why not HR as well? Uh, I see Trello quite. Quite a lot still, um, but it starts to die out. And one software that's called Mon Monday, which is pretty much um just a front-end builder. But some companies really love to use it to build their specific dashboard that makes the most sense for them.
SPEAKER_00So, really, for any company that wants to use this, all you need to do is map out what are my inputs, how are people messaging me, you know, with the Slack, Gmail, smoke signals, whatever they're coming in, it gets processed, it gets it gets added to the system, it then becomes triaged, then gets added to the database, and then you say, Okay, well, then where are you, what database are you hooking up into? And then for example, if there isn't an API that is that is um available to be able to plug into, I know that one, we can use the HTTP node to be able to connect to that with a copy curl command, look at the documentations, but then you took it a step forward forward uh farther and you created this persona API uh node. Can you talk me through a little bit of how you did that?
SPEAKER_01Yeah. So uh the Personio node is again, as I said beforehand, right? Personio is the biggest um HRS, especially in Germany. That's not SAP. Um, but SAP is a very different beast, so I'm not touching that. Uh, but if we look at Personio, it's pretty much focused on companies, uh, SMEs, right? Startups. And I was very frustrated because I use it a lot. I mean, 80 to 90 percent of my customers use Personio. Um, and I always needed to build it again and build it again. And at one point, you're like, okay, that should be uh normalized. So what I did was take a long weekend um and created a personal node, right? Um, I saw something missing. I there are some people that claim there's a personal node, then you go in them and they're pretty much empty, unfortunately. Um, but what I did is take a long weekend, build it out, uh, map pretty much the entire uh entire stack. As you can see, here are all the regular node things, the triggers, and it has a lot of custom IDs. It has uh it is everything pretty much that is not a beta feature for Personio, you can already do with it. Um so that one is very, very fun. Uh I sent it out to be uh approved hopefully soon uh for N8N so everybody can install it in a cloud version, but you could already uh currently take it from NPM and uh use it on your uh non-cloud version. So you're either uh self-hosted um or on-prem, right? So that is how I currently use it most of the time. Um, but yeah.
SPEAKER_00Great. Yeah, we'll we'll see if your community node uh gets approved before then. And so it would be available on self-hosting. You would just you just bring in, go into the community node sections under the settings inside of in it and then you you put in that that in um that that package name for it, and then you can get access to the uh community node. What's the name of it again? Can you go to the top so we can see if they want if someone wanted to install this?
SPEAKER_01In add N notes Presonio HR. There's also something about it on my uh blog, and so it's very easy to find if you want to have a more easy digestible uh uh step by step that's not necessarily written and in the way that GitHub does it.
SPEAKER_00Sure. Well, I mean, and and to that point, so if if people want to uh find out about you, they want to find out about this node, um, how do they do that? Where where is the this content?
SPEAKER_01Um so I mean, I usually share everything on LinkedIn. So if you follow me on LinkedIn, um you will probably get a lot of stuff. I try to focus on breaking down tech in simple English, uh specifically for ops people, um, help share all these templates that I build uh on the notes, but also generally talk about like AI and what it's currently going through. Um and if you want to go even deeper and want to be the first person to know, uh you can go to my uh website, pkminusconsulting.ai, uh, where I have a newsletter and a blog where you can pretty much read about everything I'm up to, but also what I'm currently building.
SPEAKER_00Great. And one thing I love about this system is the fact that this is a practical use case for large-scale companies that actually have a real painful problem. This isn't a vibe-coded application that you spun up. And I saw one of your posts on LinkedIn that I thought was great because there is, I mean, you know, Claude code and there's other systems that are out there that you can really spin up an application really quickly. But then in one of the things you're talking about, is like, hey, now go to try to deploy that in a 500-person company and let me know how that goes, which is which is really true. If you want something scale, there's kind of a, I would say, a vector between cool and awesome. There's an inverse relationship, cool and awesome and cutting edge, and stable and reliable and repeatable. And being able to have something like this really solves these painful problems for businesses or enterprises, because while they do like the concept of cutting edge and amazingly cool, they really want something that is practical, reliable, repeatable, and scalable. And that's why I really enjoyed this system. And I wanted you to come on to show what is a practical business enterprise use case for people to actually get the highest form of value. There's one thing about making money, there's another thing about saving time. And saving time, especially in a large-scale company, when you have hundreds of employees is one of the most important things because you can always pay your way into a thing. It's very hard to get your time back. And this is what I love about the system. So if you're looking to save time and you're in a large person company and you have HR issues where you want them to focus on the higher level of activities, maybe having one-on-ones with people, getting to know them, human-to-human connections, conversations, uh, maybe uh disputes between team members, all the things that HR are really good at, the human relationships. This handles those types of automations that are really boring automations that don't really need human intervention, but then become predictable, reliable, and scalable over time. So uh, Paul, thank you so much for this. Is there anything else you'd like to let people know about before we conclude the podcast?
SPEAKER_01Um I am very shortly before release of a tool, uh, which will hopefully help a lot of people, especially if you're a lot on LinkedIn. Um, a bit next week will be waitlist. Uh so that could be cool if that is something for you. Um, and then just follow me on LinkedIn, right? You will see everything about that.
SPEAKER_00Fantastic. Paul, thank you so much for your time, brother. Have a blessed and beautiful day, my friend. And I'll see you on the other side.
SPEAKER_01Bye now.