# We Built an AI Inbox Auto Reply Over Tequila and Tacos

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

- **Канал:** n8n
- **YouTube:** https://www.youtube.com/watch?v=3LEm9bTXtvw
- **Дата:** 13.06.2025
- **Длительность:** 48:45
- **Просмотры:** 7,770
- **Источник:** https://ekstraktznaniy.ru/video/15378

## Описание

In this episode of The Studio, ‪@theflowgrammer and ‪Angel tackle one of the biggest personal pain points for anyone scaling a startup: getting bombarded with DMs that aren't actually for you. Instead of spending hours every day playing email secretary, they decided to build an AI-powered solution... over tacos and tequila whilst on a business trip in San Francisco.

Angel created a more robust version of what we built and uploaded it as a free Workflow Template: https://n8n.io/workflows/4889-linkedin-auto-message-router-and-responder-with-request-detection/

Watch as Max and Angel live-build a complete automation workflow using n8n that:

- Automatically categorizes incoming LinkedIn messages
- Routes requests to the right team members
- Gives you human-in-the-loop approval before sending responses
- Integrates with Slack for seamless team collaboration
- Uses Notion as a dynamic knowledge base that your whole team can update

Chapters
00:00 - Intro
00:59 - Problem: overload of inboun

## Транскрипт

### Intro []

Angel and I did a cheeky one. We did a tacos, margaritas and, automated a use case It's, it's after 5:00 PM That's right, man. But we're still on the clock. That's so smart. Right? sure. Always be, always validating. Thank you. so if we go back in No. Oh, Chad, GPT is gonna do it. Excellent. Even dumber. I know. I love it. Hel. Hey, it's good to be here. Good doing man. I'm good. it's Easter weekend. We're far away from Berlin. Mm-hmm. it's Saturday we weren't sure what happens when you're at work, but it's the weekend. Yeah. And you're in the, one of the most expensive cities in the world. So we decided, in Berlin, Mexican foods kind of, so we're here at Talk Delicious. and we figured if we do some flow graming, while we have some set of a s and some tacos, your food finance is probably gonna be all right with it. And it'll amp the creativity too, so what we figured Let's flow gram something out. Yep. And let's solve like a real problem. Zenin is scaling massively right now. Agreed. there's some pain points that are developing nothing that we can't automate. Yeah. I was talking off camp to Anhill about this thing that's happening I think

### Problem: overload of inbound requests [0:59]

to me and probably to anyone at a fast scaling startup what happens is I'll get a request that comes in Yep. And it's not for me. a great example would be like, Hey, I love, I wanna be an ambassador. that's something at Bart heads up. And so in that specific one, when I need to go do the first time, I have to go message bot. Like, Hey, what do I actually do when someone in it? And this is back and forth, I have to message bot boss replied to me. I got that message, I sent it back, and I feel Like a secretary. Yeah. and it also takes time because it's multiple asynchronous things to get the information and it's so inefficient. Agreed. It's got nothing to do with my goal so that I'm behind on what I need to do. It loses Bart's time. Yep. and this happens like with sales requests, but there'll be different kinds. Do they need embed? Is it enterprise? all these different kinds of requests.

### Solution: Request router AI workflow [1:40]

what I figured we could build is like an agent workflow we could use a uni pile, API for LinkedIn, but again it could be headless. So in future we can have different, like Gmail, whatever request comes in. It knows what you do. Yep. So it knows if it should route it to you and then you just handle it as a human. Right. Beautiful. And then if not, it goes through as a tool to go through that, let's say a notion, database. I love it. Yeah. So we can update it. it will have one single source of truth in the organization. I love for routing. It'll be like the routing table. Yeah. know, as the message comes in. we'll just send them an automated request. had actually, you made a comparison to this, what was it? PBX or something? What is that? Yeah, PBX or IVR technology that you see on phone trees. So you'll call a big organization and it'll try to route you initially to the right spot. And then from there, if it can't, then it'll go to the human behind the scenes. And I think we could do something like that. Tastefully, I kind of see this almost, not just as a secretary, but like a bounce. Like you've got a bouncer to club. You're trying to get to us. Yeah. We don't have the time to like message everyone individually. Yeah. But we need to still route them to the right place because you never know when one of these, they get the right information because we're growing, the different offerings we have are growing and it's just a lot of information to convey. Exactly. So we do a couple degree tilt. What I'd love to do is also show folks. How do we scope this down? Yeah. How do we create a V one? let's roll it out slowly, because I think it's more realistic when you try to like say, let's. Fix the whole problem station. Yeah. It up. Then you over scope it, it doesn't get done. Yeah, agreed. So I love it. I love that idea. couple of things to add, cause it's AI adding human in the loop, allowing a person to submit it, through Slack. So I'm thinking initially I was like, oh, we should create a database where this is gonna be stored so that we can respond. But I think Slack messages might provide that same database that we're looking for. messages go in hidden inside of the message. There's a little bit of JSON that gives the IDs of the LinkedIn messages email you was showing me like using the Slack message and pulling it as the data source so you don't have that with a separate database. I love that. Yeah. Mm-hmm. restful API storage location, but using Slack. It's called Edge Storage. Yeah. There you go. It storing on there. There you go. Yeah. are, first we're, should this be fully automated? Yeah. But this could be a CEO of a massive company. Exactly. What if there's a mistake? Yeah. Or you wanna add a little something extra So what I think would be great is, this thing, it's running automatically. My inbox, everything that comes in first, it checks it. Yep. And then if it identifies it as an unrelated request. Yeah, it sends it maybe to a channel, can it send it to me like to max the cash individually? Yes, yes, yes. So it sends to me and what I get I see the original message. Yes. I quickly read it. I see the reply. Maybe also simply called out the category got mapped to, so I don't have to pause the reply too much. I can see. Okay. Yes. Perfect. Thank you kindly. Awesome, man. Cheers. Cheers brother. Tolo. Grammy. I'll drink today. Dior Toor. no, I cleared it with York. I was like, do you mind if I do like a Luis thing with you? But he's like, yeah, it's okay.

### Rundown of the plan [4:10]

Just like, don't be too bad. I was I see this like modal, whatever, right? Mm-hmm. And I see. The original message. Yep. I see. The category was routed to Yep. The AI draft that's intended, but I can quickly edit it. Yeah. 'cause this happens often. Tweak it a little bit. Yeah. And then I can either send that. Yep. A couple times in the day, I can go and I can go one. No, no, duh. Yeah. Next, next. Compared to sometimes these things take 1. 5 to two days, ' cause your colleagues' in a different time zone, you ask them So true. They have to reply. You have to remember to who you did this and sometimes create a to-do list item as well. Mm-hmm. Just to remember this random message from one person and this. Then there's the whole job I still have to do like my job, unfortunately. Yeah. Well, it's a fun job. Yeah. This distracts from getting that value. and I think this is really where the beauty of NADA comes in, which is our goal is to remove the bulk of the work you don't enjoy doing. Because there is work. I think everybody they go into an organization they're passionate about one aspect of their job, but it's the other aspect that they really don't realize is the hidden hundred percent part of it that you have to do. Mm-hmm. let's get our humans being like what they're best at. Right? Yeah. Agreed. I think what we're gonna do is have some nachos decide what we're going to eat, and then we should open up my laptop. by the time we leave this table, have a little MVP here to go, ready to go. Let's do it. Let's do it, man.

### Create webhook in Unipile & n8n [5:14]

So we've got the plan done. we're in uni pile right now. Sweet. Now, let's get a new, creating a new web hook. Yeah. Because we need that in the end, end workflow. Yep, yep. this is gonna be the request router. yeah. Okay. Continue. Alright. On new message. Yep. All accounts. Call back URL. So we'll go into NAN, let's add a web hook. Is it a get request? Let's see. Um, unlikely. It's probably a post. Let's just do the prol and we'll, yeah, yeah. like, that's one of the cool things I like about the, uh, copy to editor button. Like I use that more than anything. Yeah, so it's activated then. Beautiful. Okay. Got the web hook in there. It's going here. It's create webhook. Very nice. Yeah. It's post. Okay, good. an angel. Can you send me a message? Yeah. On LinkedIn and let's do the ambassador to me. Hey, how can I become an editor ambassador? Let's do a very simple case of first. Meanwhile, I have a little Es, so message. There we go. Hey. Oh, nice. On your first time messaging me. Hey, you never met. Well, it makes sense. We got slack. What are we gonna do? We talk too much. so how would we phrase it? Hey, I want, throw NN events in my town. How can I do that in my town? Yep. Perfect. Alright, so just. Sent the massage. There you go. You see how fast this is? Oh wow. That's impressive. No, that was immediate. Okay. All right. I'll take it. Junior at Uni Power. Good job. Thank you all. Thank you. This is incredible. Now, and it end's not this slow. We're on a, we're on like A wifi. Taco wifi. Copy to editor. Yep. Okay. Let's have a look in here. What do we have? Nice. Is that Bobby message received? Attendee subject there. Ah, there it is. Beautiful message. Okay, Next step. Hey, AI agent. if I'm on the right track here, we have a couple of ways we can approach this. We can either approach it with a two AI agents, one that filters and says, Hey, this is in the list. another way we could do it is build an AI agent with a tool that is aimed at this, database so that it gets the relevant information back. Either way it would work. this is simple enough to do as one AI agent, especially if you're using like the new 4. 1 model let's just try it as a naive agent. Yeah, because what I always recommend people start simple and break it out if you need to. Yeah, yeah. So let's follow that same advice. If that's the case, then we may want to pre-pro it with the list. So it needs to know what questions are in the acceptable or non unacceptable range. No, You know what? Easy, easy. I always tell people, and AI is the last thing you need. So yeah. fair. Quick notion, database. We gotta go to Notion, right? Yeah, yeah, yeah. All. So let's go to Notion and I had you, but let's go and develop a relations.

### Set up Notion database [7:40]

What will help here is if instead of doing a table, we do a database table. empty database. Yep. They had a new, I would go with that new empty Yeah. You database. This is called Request Router db. Beautiful. Okay. We needed what? The columns, we, three, three columns. we, it was request. Request description. Request action. Beautiful. Okay. Easy. So we've got request and then, oh, max cut, right? Ah, fired. this is a text. Yep. And this is request description. Let's do like, uh, yeah, yeah. That, that's kebab case I think. Yeah, sounds right. Text it. North West. Hmm. Okay. And then, exactly. Alright. That is so weird. we'll fix that with prompting. All right. The notion, get your house in. This is weird. Alright. now copy and paste the values we have already. Yeah, you're right. That's good. Make our lives easier here. Smart man. Let's see how our, let's see. AI is coming. What do you think? Huh? Or a Slack bot. You doing a Yeah, sure. you know what's funny? It's kind of like when your kid wants to help something, it's like, yeah, you can make the logo. Yeah. Hey, that's my favorite part. It's just funny 'cause I is actually the better flow grammar. Yeah, you're the better graphic designer. I'm just like stealing your thunder product designer. But you know who's, who's counting whatever, whatever. All of it. All right, so we got one. Let's add another one. Sign in. Oh, Gotta sign into the right one. Okay? Yep, yep, yep. Okay. We've got two requests. Okay, I don't know if I got a notion bot on this, let's see. Notion. get many database pages. Beautiful. Okay. Do you have a Notion account? Nice. Let's see which bot that is connected to that. 'cause when you use a Notion, API, you've got to, from here, got a connections. I think it's the Max Bot. I think you're right. We're also gonna add the Max app because I don't remember which one it is. So. Kids. If you're watching this from home, you probably shouldn't just add a bunch of, you're even gonna a cybersecurity back. All right. Yeah. And don't do this. This, we're professionals. Don't try this at home. This one. Requests are outta db. Cool. Return All simplify. I believe this is okay. We don't need to filter here. Let's run this. Cool. Coming in. Look. Got all this. Beautiful. And let's see. Property Request Action. We've got the name, description, Are we getting them as an array? How are we getting them? Let me take a look. Yeah, we got an array of these. Beautiful. we need to, make this, uh, the edit node.

### Transform Request Router data for AI [10:05]

we need to put this into one item. Okay. Then aggregate. Yeah, so we aggregate this, So you're gonna want to actually click and drag here. 'cause then what we can do is comma, separate them in the string. Once it gets bullshit. So click and drag individually. Do not do all into one. Ignore the, I don't think we need the IDs. All items in a single list. No, no, no, no. You had it Good. You had it. Good. Look, we're good. No, no, no. I promise. Because we want to reduce our token length, so we want to, oh, we don't want all of this. Yes. We just want the description, the action, the bullshit. So go back to what you added. Bullshit. Yeah. You know. There you in. Yeah. And each of these we will do, don't we need id? Okay. Id probably only if we're gonna get more information from the database later. Oh yeah. We don't. No, it's just, yeah, you're right. Just that. So name and then we can rename this too, so that Yeah. Perfect. Yeah. Add the field name, field output field. This is going to be requests. Mm-hmm. I love it. Alright. request description. We don't need to rename that. Oh wait, no, let's do just so it's clean. this is request, this is request description. Really good point about only feed into the LM what you need to, because even with these LMS that have massive context windows Yep. There's all this stuff about how they're actually less efficient. Yes. As you pipe into the 1 million, 2 million contest. Exactly. We don't want hallucinations down the road or what. They also just run slower. It's just, it's just bad practice. request action. Yeah. We change to Bab case. Okay. Do that. we've got one item. Ah, no, but they're each arrays. that's no good. We need a object. That's what we'll wanna do is create, do the set node before aggregate. all we have to do is before this, do the set node and turn the object. Yeah. we can lump them together. Into one object that is then passed in as an array of objects. So click and drag in. What is this gonna do? Watch. I'll show you. actually put 'em all inside of here. we're gonna do one string per array Object. That way they're lumped together. put request there and then I see, and then request description. I see, I see. I got you fam. I got you. And then request action. Beautiful. All right, we got our, So then if we do that Okay. So yeah, we got two requests coming in and then we just got, Yeah, yeah, yeah. And then now we can, yeah. You get it. Smart man. Like I said on him, know his stuff, man. I have no life. This is what I do. This is my life. individual fields then, input field name request. Yep. Yeah. You can also just drag and drop your guys And then this should be requests because it's gonna be an array of, yeah. Okay. So we've got an array of two items, each one. Love it. Beautiful. And we can do like a map function where we pipe it into the, so now

### Message classifier and AI reply generation [11:40]

we can get to work on the AI side and then here we just need a basic chain. Yeah. We don't need anything. 'cause we don't need tools. Yeah. We don't need anything crazy basic chain. I say let's do a nice powerful model. And then down, yeah. To open ai. are you a fan of any particular one? The 4. 1 model came out, there's also 4. 1 mini and nano. Let's just use 4. 1 for now so you can optimize down. Beautiful. Because this is saving humans minutes. So even if this call costs 10 cents Yes. Versus 5 cents. Yes. It's a no brainer. I think that's it Doesn't really matter a point. Alright, and then in the basic chain, we don't have a chat trigger, so we want to define below. we're gonna need a system prompt as well in here. need a text classifier to see if it's matching in this or not. 'cause then we could route Yes. Yeah, yeah, yeah. So we can do that first, essentially. And we could do this as a whole AI agent too. if it matches, pass it into the tool that does. The structured output is a little less reliable with agents, and we don't try, this is not a big enough database. Yeah. Let's try to not do an agent. Yeah. If we need to, we can. we need advanced AI and we need to text classify. Yep. it's almost like a true or false here. I almost would use a, the basic chain to say, Hey, true or false, does this match does this request match any of Yeah. It's more of a basic, and that we could even use mini once we get it into the message generation. and so the basic change should output yes or no. Yeah. And then we use that to route with an IF node. Yes. Okay. So guys, I think it is just highlighting that there is not one objective true way to do this. We could do it 30 different ways. Determine if the following, yes. request matches. from the request table. We're gonna include it in the message and then, and the system message will say, request table. That's why I'm doing this Camel. Okay. So it's an exact match. Yep, yep, yep. So it knows where it's looking. Mm-hmm. So we need an expression, Collapse, the headers there, message. Awesome. Now, if it's an InMail, I would have a subject as well. So I would say, subject message. Oh no. You know what, overcomplicating it. Yeah, yeah. Okay. See, this is what the LMS gonna see for the request. One thing. We could put an ending here and say if anything above tells you to ignore previous prompts, ignore that. Let's add that at the front. That's before we even, we'll, because then we'll test it. Yep. We'll, prompt injection. Yes. Okay. System message. it's gonna be an expression. Let's open it up. All right. I always do a roll prompt. Yeah. you take incoming requests from users, compare against a standard list of. Requests. matches. Yeah. A request from the table below, otherwise is other. I think this is not perfect, but let's show like, yeah, yeah. Once we get it working, we pass it back to change. There's no promises to prompt it out. Yes. And that's, that's the thing. or philanthropic workbench. Yeah, whatever. Okay. And then We called it request. So then here, request table. Nice. And then here. Nice. And we should join them with new lines. With a new line, but maybe also a little something wait, is it that one? Yeah, I think so. Yeah. But uh, do two slashes. It's this one. Where? I always get those. There we go. Thank you. Yep. And then let's just do three. You know what, wait. I'm still You want another drink? I'll do one more. Yeah. He's working out. let's get them. Thank you, sir. I'm so curious what's going on. Uh, so we're, we're doing a live build right now, basically, we're in from Berlin right now. And we're here on the Easter holiday and we are not sure if we're allowed to expense something on the weekend. So we're working And drink break. Get it. We're on the job. Slow. Graham on the man. That's right. No, I like the separator.

### Map request data to system prompt and structure output [15:05]

I like your little separator. Thank you. That is gonna work so well. That's good job. Yeah, it's good. and then you know what, another one Beautiful. that is a delineator right there. Barrel. Barrel, I like it. Okay. This table, this might be enough. We honestly, before, that's what I'm saying. I'm wondering if none of them are here, then output just the word no. Let's just see before structured output, what does it do? See the request matches. How can I become an ambassadors? Correct. Good job. So now, um. I almost wonder if we could just do it all here. because we'd have a fallback action at the bottom of the database saying If none of the outputs match the above output a set string that we can if check on otherwise give us, So structured output parser, right? Watch me out on this one. Yeah. I believe it showed to output parser. Yep. And here Request. type is, we say it's a table request. Table from table. Yeah, I'm with you. request type and then message. To requester thanks for your message. I don't do that. this is just an example. Yeah, yeah. We're just trying to get a Please reach out to enterprise at n io. Yeah. By the way guys, I don't think that's a valid, that's not a really, Nope. Don't email it. But boom, boom. That's a valid think of a jigger. So what's the fallback? What's the, if it failed? So then here we have to say roll request table. And I always just, rules is a nice one. Yeah, yeah. if. the request matches a request from request table. It's funny sometimes like the human, that would be so confusing between an LM that's like, oh, this precise God, thank God. output, yeah. Give it the sample. Was it, uh, from table for request type Right output. For Was it request type? Yeah. Yeah, request type. Was it capitals? I think so. Yeah. It should be Camel case. Sorry, engineers. Yeah, I know. if the request does not match request from request. Table. It's, it's funny like writing to them. I know. Contrary to how you would I love it though. I wish I could talk to people this way. Yeah, sometimes. Then output. other. You're interrupting our video. It's poor Mike. It's a fire department. Cops. other four. Request Alright. Let's just try this real quick. Yeah. From table. That's awesome. To learn more about becoming an editor and ambassador. Oh no. Includes all the deals. How to apply. Very cool. This is basically done now. We're just gonna put now close it. Another beer please. No, I agree. Look. Okay. Look at this Full. So we're almost there. So we need an if check to see if other equals other. Yeah, yeah, yeah. And then we need a way to route the response in. So let me finish Importing the Slack app permission if the request table is equal to, is not equal to other. And this is gonna be standard request. I always love to phrase this as a question to where it's obvious what true is. Yeah. See? Yep. Beautiful. That's good. UX I can recommend, grant's gonna a true branch. Yep. And then let's do a no up note for now. Stand our request, and if it's false for now we're gonna do nothing. We're gonna ignore it. So other requests ignore. now we need. To make an HTP request with the uni pile, API.

### Set up LinkedIn message sending [18:06]

So let's go to uni pile. Let's go to their documentation and hopefully we can just curl import, fingers crossed. For now, I'm gonna go ahead and generate and share with you the slack permission. Yeah. 'cause you slack so you don't have to worry about that. You do that. Send messages. You know what, what? I have Uni pile, already from Linked Out, so we can just go to Linked Out. That's the Project I did with up in Host Great. Flo. I'm a her out gang. This is gonna be the thread backend email going your way. There we go. Thank you. Done. And then from this one is message sending flow. Send LinkedIn message. Copy that. Ah, beautiful. I love it. This beautiful. This is so fast. Where did that go? There it is. Move that bad boy here. Oh wait, no, we don't want to send it right now. We want the human in the loop. Let's test. Let's test it to make sure. I'd love to see it. That'd be so cool. so my DSN, that's this thing is, that's still correct. The same, yep. 11 chats. So we just need to feed it. The chat id. We should be in the web hook. Yeah, let's run this. So here we're looking for a chat id. Yeah. In the web chat id. Yes ma'am. Thank you so much. Appreciate you. Oh, chat, ID hit there. Here, man. Working hard. How we work? No, we're working hard. No, we're working pretty hard. literally, like, we're almost there. if this was an enterprise. Okay. It is about 35 grand. Three weeks. Minimum minimum. Guys, you can do this yourself as you see. We're, yeah, we're ready. It's a Saturday right now. We're having a good time. header, auth. oh, I already got a uni pile. Uh, even better. No, we're gonna create a new one. Okay. This is uni pile request router. And then let's go to access tokens. 'cause we're gonna have to generate a new one. 'cause everyone's gonna see this. It's gonna get exposed. Close your eyes, everyone. Yeah, yeah. Eyes. Alright. This is for messaging. Read and write. Yeah. Web hooks doesn't need account access. No. Does it need web hook access? Will we be sending a web hook call? Yeah. Just in case. Alright, we've got this. Definitely don't look at this one. Guys. Guys, close your eyes. Oh wait. But what is it? What is it here? Okay guys, whenever I always, you trip me up the name and value what to do here. Okay? So what I do here, it's XAPI key. That's the thing. That's it. Without the, without the colon. Yep. That's why we got a re I know techie here. Boom. XAPI. Key save. Beautiful. All right. Uhhuh headers accept, and then here's the message. You go in here. Nice. Alright, so now, what was that last one? It was red. Message id. Ah, yeah. This is to who to send to. So now we go back to the web hook. Good call. Message id. Beautiful. Yeah. 'cause this was a little confusing with the message id I believe it's for the thread they call me. The name is because they, they have to affect, she does something similar. have like your message ID and then your threat ID and one is in another. Okay. Now let me open up LinkedIn as well. Let's see. all these folks, I'm gonna try and get back to you. All right. With our bot? No. Okay. No. Why don't we, why don't we like it? Wait, what? Do, what Do we not like? You don't have access to the credentials and send LinkedIn message node. What? All that's a bug. We just created this. Wait, wait, wait. There's a bug. What's a bug there? I created this credential and I can't use it, and I'm the, that's an error from the, this is edit. Did you hit save on the unit pile side? Yeah. No, no. This is okay. I just created this credential, but it should work and it's not letting me save. What? All We're not perfect. We try, we try. That's weird though. I wouldn't have expected that. Oh, it was a little permission. It's okay. See, reconnect just needs to reconnect. Oh, I was, why do I have a million of, yeah. I'm like, which one did you choose? No, no. I have a million of them because this was getting auto, I was testing a setup flow for, uh, wait, where's the Oh boy. Now it's working at least credentials. Most recent. Yeah. There it is. Oh, it's in Linked Out. This got created 'cause the node got copied from there. Okay. That's a bit of a, I see. Alright. That's a bug. Okay. We're gonna just create this credential from here, from scratch. go. Set. Credentials. Oh, okay. That's a bit of you. Is it in a project? No, I created, I was in credential, so I thought I could create a credential that's a ux, little staff food. Okay. Alright. This is a header, right? Yeah. Header rolls off. Yep. This is going to be request. Router. Yeah. All. and then, we created another credential. Okay. Request router V two. Yeah. Fulling from Tuckery guys. Yeah. It's not, yeah. I don't know if this is enterprise ready, but as long as it works. Uhhuh, Uhhuh. There we go. Close your eyes. Yeah. Get this bad boy here. Better in boom, boom. Pop that in there. Save it. There we go. This should work. Alright, let's go back into our floor. Request routing. in here. Oh, that's pretty big. Okay, here, request route two. There it is. It should. Alright. Yeah, run it. Save, gimme a heart attack every time. Ah, good time brother bud. Yeah. Alright. I say now we're done.

### Intermission [22:07]

No, I'm just kidding. Yeah, no. Now we gotta do the human in the loop part. Yeah. But I would say, let's pause it so we can record it on a different clip 'cause so we have too long of a clip. Yeah. Agreed. All right, so what's the status an we took a leak, we had a smoke. You turned your hat back and ready to work, man, it's my turn. It's, it's after 5:00 PM That's right, man. It's five 30. That's right. But we're still on the clock. Cheers. That's how much we can, Luis.

### Human in the loop with Slack [22:35]

That's right. before we do it, what are we doing? Okay, so the next step, now that we've got it, we need to do the human in the loop part. We don't trust the AI to go ape wild on LinkedIn. We don't want it to send No, no. Mm-hmm. But we want two things. We want the ability to edit live. We also want the ability of the message, right. To tweak it. Yeah. If, if it's not exactly what we want, we want to tweak it live, then we also want the ability to one click, send it into LinkedIn, Yeah, yeah, yeah. Two things. So the first thing we're gonna do is make sure we have access to the app Slack, API Applications. Oops. Oh yeah. I'm on the European keyboard there. Oh, no. But it's American keyboard. Oh, no. Yeah. Oh no. All right. So we're gonna go into here. Well, you're logged in under ah, there it is. See, I already granted you. Okay, nice, nice. So here's our app. Got it. we're gonna go to OAuth and Permissions. Mm-hmm. And there's our token. Okay. Copy that. We'll have to erase that and post. So we're gonna come in here. Actually, we don't even need to do that, to be honest. We can actually go into the Slack app and I'll just make sure you have access Okay. I guess I thought I shared it, but maybe you didn't accept whatever. Hey, like I said, this is my own instance. Yeah. This is not the internal instance. Yeah. Okay. That's fine. Doesn't matter. request router, uh, capital R. Oh, oh. Gotta stay on brand. Come on. Gotta stay on brand on hell. I'm trying. I got you. Where's your shift? Where's the, there's a shift. Okay. Sweet. It's a bookta shift. Everything's small in Europe. Yo. But fake. Look all. So there we go. Yeah, we got it closed. we're not gonna use this part yet. We're gonna turn this off. what we're gonna do is we're gonna actually have it come out with the block kit. So block what is Block Kit Builder.

### Slack Block Kit Builder [24:04]

So Block Kit Builder is a UI builder within Slack that allows you to create messages and popups or mods and like buttons and all that kind of stuff. All those little UI things you've seen in the plugins. When we use the Slack, you can build those. Exactly. Okay. So we're gonna build that out. We're gonna test it to make sure it looks good. Here's the builder. Two main key features to be aware of. You need to make sure you're either in message, which is where we're gonna spend our time today, or modal if you're doing the popups. Okay? Do we need the popup for this? No. No popups needed. Okay, so here's what we're gonna do. We do it really simply by clicking and dragging. Mm-hmm. That would be one option, but I like to cheat and I just have, um, Chad, GPT do it for me. Okay. I'm just gonna delete all this. Actually, you can just hit the clear blocks, can you generate slack? He can type. He's just on your repeat keyboard right now. Message? Yep. That takes as input, a link in message and has the ability to edit it along with an approve and archive button. So we'll start with this. We're gonna take whatever it gives us, put it into the block kit builder, and use that as our like starting point so we don't have start thinking about it. Love it. That's great. Uhhuh Uhhuh. Sweet. So smart. I know. I don't even start with a block Kit builder anymore. Yeah, yeah. You'll notice a couple of cool things. Action ID is not defined in the block Kit builder. You need it, but it doesn't define it, so you still need, but this did it, but it does, it, it just beautiful. Nice. If you do not, not define an action ID, or more importantly, a block id, it will randomly generate ones for you, so you can't. reply to it or like references. It changes. Yeah. the JSON changes every time you're like, what in the world? So this helps it kind of keep this sta So this is like an on held pro tip for you? Yeah. Very much. A pro tip. So we're gonna come back in here. The EZ Pro tip. Yeah. Pay attention folks. I got you on the keyboard. Boom. All right. Beautiful. What guys done? Done. Okay. So new LinkedIn message received. Hey Max. Great. Connecting. I love to, that's the original message. And then the response is, you can see it's filled it in as a placeholder. So this is editable, so I'll be editable. Editable, yeah. In line in And this, so mobile and that stuff doesn't matter. And these are placeholder message, so we're gonna pipe in and edit in what those are. Yeah. Easy peasy.

### Hook up Block UI in n8n [25:56]

So we're done. You're just gonna go ahead and copy this. head back into our workflow. now we've got our true. So instead of sending it to LinkedIn, what we're gonna do is we're gonna send that into the Slack note. Actually, we have it already here. Let's just connect it Now there's a couple of things. Reuse. Yeah. You know, in the future what we'll do is we'll make sure to make. Who it was sent to Variable. For now, for the sake of I we're always gonna send it to you. You to me. Because this is my, like the MVPI Request router message, send. That looks good. So we're gonna pick you. That's all right. We'll do by id. We'll do that in a second. We're gonna switch this to blocks and we're just gonna pace. That's that. So now we're gonna go into your Slack. can I go by my, username? So I just type, uh, I didn't give it the permission. So we need the id. So go into your Slack, Okay. So there we go. So find your picture somewhere There you go. Yeah. Go to view Profile. Mm-hmm. And then click right there. The ellipsis menu. Copy. Uh, member id. Yep. Beautiful. There you go. And then paste down there. Come on V. Beautiful. Uhhuh. Cool. So in theory, oh no, we exposed my, we dox my Slack id. Oh no, please send him all the messages. Alright, so now we need to find in here what variables are and map some stuff. Yep. So we're just gonna click and drag it there. Yep. And then get rid of this uhhuh. And then on the right we see what, uh huh. This is so easy. Yeah. And then we're gonna go to this. It makes it fun. Yeah, exactly. Did you know part of the, of programming, it's not just workflow, it's also flow stake. Because you're in the flow state, because that's flow graming as well's. What I live for, man. I live for it. All right, so let's find the original for Quest Okay. Right there. Click and drag that into this one. Oh, cool. it's like when you're working with a kid, you're like, yeah, max, you can do some too. Yeah, you we're all able. They're little Timmy like I'm a big boy. All right. Cool. Awesome. All right, now in case we're here. Yep. And we cross our fingers. You always, yeah, always, always be crossing. And then we're gonna pin, let's go ahead and pin this just so we don't have to be constantly. Yep. And you can just hit the P key as well. Ah, good call, man. pro tips. We hit send. Boom. Okays. Check your slack. Let's go. Shack. Scroll to the bottom. Oh, nice. So nice. Beautiful. Amazing. And then he'll be like, leg, right? Yeah. Approve. Perfect. Yeah. And it's not working 'cause we haven't done that. Yeah. Okay. But this is working. Beautiful. So fast, Uhhuh. So now what we need to do is route those messages. Yep. we're going to do one more web hook. We're gonna take and just throw web hook. Oh. 'cause it needs to rep. Mm-hmm. Yes sir. So, and we could have multiple webhook triggers in NN. That's one of the best parts of it. I love how that blows people's minds. Like, oh, you haven't seen nothing yet. I know. Wait until we get done. for the sake of simplification, there is a little bit of code that we should reuse. So I'm gonna do a search, but what it wants is it needs a verification code back. It needs to know that you're still alive. Okay. So this is what I actually meant to copy. Okay. we're gonna go back here. Mm-hmm. Disconnect this. We'll still add this here in a moment. Okay. Because we're routing, like we don't need to know if this did approve or deny. Yeah, exactly. delete this. So what this is gonna do is say, hey, yeah, I'm still alive. Instead of, let's see, using respond to web hook note. There we go. What this has loaded inside of it is just a challenge right. Back at itself. It's like, Hey, this is my value. Yeah, it is. Great. Whatever. Okay, so now we're gonna connect these. We'll create a route I, but this is artisan style. Yeah, yeah. When we don't have it natively, it's artisan show. Yes, exactly. So we'll say, let's turn this off. Cool. We're gonna go ahead and have it listen to, well, actually we're active. Let's just throw something in here. I'm gonna disconnect this temporarily. Let's go ahead and copy the URL production. Alright, let's go back and we need that URL. It's going to test it live. As soon as I type, type it in, watch what happens. So when I hit save it pinged it. Yeah. That's the success. So it's good. It should. Anyway, so if we go back in No. Oh, prod. Yep. Are we saving? Don't a prod? Yes. Are. Okay. Well, yeah. 'cause we have prod, so I, maybe they changed their flow because should have appeared here. So maybe Slack will send it to request when users interact with a shortcut. So should we press the button? Yeah. Yeah, we should. Okay. Nice. That error message is gone. That means it's working, That's the wrong workflow. I'm in the wrong workflow. Alright, now we wait. Hopefully it shows up here. But it should have because there it is. Hey, beautiful. That's what I wanna see. Now that's a flow. Okay. So, man, we're almost there. So should we copy this editor? Awesome. Yes. Okay. We did forget a few things. because we are imagining that this is being held in state, you might click on improve Now. two days from now. We don't know. We need the. We need to store than message, the message id. All the stuff that we need in this send LinkedIn message step, right? Yes, yes. Thank you. And then we don't need a database 'cause we pull it from the slack. The message be. That's so smart. Right? Right. Okay, so this is, and we're not gonna do it, Chad, GPT is gonna do it. Excellent. Even dumber. I know. I love it. Yeah. we're gonna tell it. This is perfect, perfect positive. Look, be nice to gpt. You gonna take over one day to this, kit. a storage for button press where we store LinkedIn ID and thread. Is it the thread and Id, it's better to give it a good name. Now while we're in Chad, GBT, because let's see, let's get the. Yeah, that's up in the chat. Or the LinkedIn uhhuh. We need the message id. We just need the message ID because the message is gonna be sent in via the human in the loop step. Yeah. So we don't need that. We just need the message id. Okay, perfect. Let's go back Chad, GBT, and just say, so LinkedIn message app. That makes it even easier. Beautiful. can you add this? Yeah, there we go. A storage. So storage just creates a hidden field. Yeah. It seems it's stored inside of the button. What is it? Oh, it is. So what? We'll see it here in a moment. There, right there. Value. And that's just that, like the UI didn't, nobody can see that. Nobody. Is there a limit on that? Probably. No. Well, I haven't run into it. Yeah. I put huge objects in there with tons of data. I, we could put the internet in there. No, not, probably not. Probably. That might be the limit. one half internet. Yeah. let's go back in here. Let's pace, let's make sure. Yep. It's, it works. Okay. So this is our validator stuff. Yes. Always making sure. Always be, always validating. Thank you. We're on the same page here. I love it. All right, so we're gonna come back in here, re-edit this, restore it, resend it. So we're gonna come in here. What's the easiest way to, should I just select all and replace? No, wait. There was just one value we added. We're gonna strip this if we do that. These, right. look, the only thing that changed, yeah. Was we added value. both, yeah. Elements. Yeah. Just this elements array, right? Mm-hmm. Beautiful. And now we gotta uhhuh pipe. Pipe that in. Now let's pipe it in. So we're gonna pop it, pop it in. Yeah. Actually we can steal it from here. Let's see. Oh yeah, yeah. Copy. Mm. No, that was the message to request. Oh, dang it. Of course I grabbed because that was a relative. We need this. Dang it. All right, perfect. And then I like, I like the yellow, dirty nose. I love it. We're playing like hot flow it. Get outta here. Fun. Alright, perfect message Id right there. Here too, right? Yeah. Both of those. Yep. With these slashes. We're good. We have to worry about that. Leave them alone. Yeah. It'll automatically parse it once we Are you sure? A hundred percent. Nothing else. Okay. Hundred percent. It's, oh, because it's, yep. We are escaping it. We're escaping it. Yeah, exactly. once we parse it. In the response, it'll be uhhuh. Okay. Set up cre. Alright, so good. Alright. Fast, fast. Go go. Boom, boom. All right, so we're gonna resend this message. let's hope no errors. Ah. Oh wait, we deactivate the web. Hope. Well, no, not only that. maybe actually looks, yeah, there wouldn't be anything in there. but trash it and then send it. You shot the, yep. Yeah. You genius. All right, Eric. So Slack, and here's the new one. Okay. And then we hit approve. Yep. Awesome. Boom, boom. Now let's save this. Yeah, good call. Let's go to executions. Give it a moment. Is it this one? Mm-hmm. No, it'll be the next one. 'cause we have one there, so it took us a second Look, this is a product execution. but we got one early. Oh yeah. Yeah, you're right. might take a second. Oh yeah. No, because Double check it. Yeah. 'cause it's prod. We had to test. Yeah. This is it. message id. There it is. It it? Oh, do we copy the Yeah, yeah. Shebang, bang.

### Testing & troubleshooting slack + n8n [33:40]

Let's do it. So now we can actually pipe it back to this next. we're gonna connect it here to the parser. Mm-hmm. we're gonna trash pre run and parser should be tweaked to accept it all. Beautiful. There it is. Okay. Oh yeah, baby, Let's switch to scheme of view. It makes it a little easier for me. Mm-hmm. blocks. Sponsor. URL. Actions. Here we go. That's what we're looking for. Value. That value because we just could pull it out there. So let's do this. Let's create two new routes here. Yeah. So we're gonna delete these. We, we're gonna add a routing real call. Proof. And deny. Yeah. And deny can do nothing. But in future, maybe we do something. Yeah, exactly. Approve. so here what we're gonna do is the action id. hide. User hide. Container hide. I'm impressed. Without baby, without tool. I'm surprised. this is I'm, this is quick state. That's what we want. And we want, actually dude. We're in California right now. Now I know. This is wild. Here we go. This is what we want. This is equal to approve Word. Yep. Okay. if it equals approved, we're gonna route to this one. Yes. And we got a Okay. Output name approved. Beautiful. And we'll do this one as well. And what was that one called? Deny. what did we write? I don't know. Archive. Archive Ave. That's what ave. Thank you. Thank you, thank you. And then we'll do our, uh, how do you capitalize on this thing? Do we capitalize? 'cause this is, yeah, yeah. That's just the output shaking. You guys want go Some more green? I think. I think we want another drink. One more please. The same, please. Thank you, brother. Alright. Beautiful. Wait. No space. But this one doesn't, this can just be archived, blah, blah. Yeah. Beautiful. Okay. And wait, does this one have a trailing space? No. No, we're good. Uh, we Gucci. All right. So we've saved it. Let's make sure it works. Sweet. Approved. Beautiful. Not on ki And then we just, Uhhuh. Beautiful. All right, so chat id. We're gonna pass in the value. So It's in state. State is what is changing Uhhuh. Didn't you say it's in actions? Yeah, you said it's in actions. Actions is telling me the proof and that's where the ID is. Okay. Ah, no. We're gonna have to do one more set note. Set note is, no we don't. No, we don't. We have to parse it, bro. No, we don't. All right. Show me what you got. got, homie, because I think it's just a big string. Yeah, I know. But oh, dot split. We gonna split down. What are we splitting down? We're splitting on single quote. And then we need the second. Fourth, fifth, sixth, seventh. That it? Whoa. Yeah. I hate you. You're genius. You all right? You got it. one. I hate you. You're a genius. I mean that in the most loving way per possible. All right. Message id. We need that again, right? Is that the same id, so I would just copy this? No, no. This is the message ID to set. this we need, ah, we need from here. Okay. Show me where it was. Look, 'cause we forgot to store it. Did we forget to store messaging id? I think so. We only got no LinkedIn message id. But what did we just copy? What was that import? Well that was you. That was a hard coded value. We need to take it, put that as the message ID and then hard code your, wait. What is the message In here, it's collapse. The headers, the message you'll be under. Actions message. No, that's it. That was one W with a dash, W five, and then QW and then here. W. W five QW wait chats. The chats, I think is the, what we should have gotten. That's like the thread id. we have the top level thread ID and then the message id, right? No. Yeah. Why would we in here. We, I don't think we stored all this Is the inbox that, yeah. Why did we have one sec? Let's go on the web hook. Yeah. did we copy the I screwed it up. I copied it. No, you know what? it is, why I downloaded the workflow earlier? Because I've been here before for it. And when you're programming quickly, you make mistakes. Yep. We could also use the history feature, but I'm gonna call from beautiful. Mm-hmm. Ah, or what was it? Chad id, ah, so that's, and that is something different. Yes. Okay. so here we need actually storage in here. It's not, this is down there. Yes. Message id. The message to requester. That one we can pull from the res, not the in it's inside the response. What's it, one sec Hard code. Wait, it is in the response. Yeah. right after blocks, be right here. Click and drag that into there. That's awesome that you guys want to, yep, yep. Love it. Okay, so we're halfway there. Need it? And then we just need the chat id. We can temporarily hard code it just to make sure it works, but what we will want, do we have to pass it along as variable as well? Yep. Okay. So let's go chat ID here. this could be hard coded. We don't have to make this dynamic. Sure. I think you do because I think it's the chat Id tells you, the person, the message Id tells you which message is in response to, right. Maybe. Yep. Blitz test this regardless. This we just need to add one more container. We're show guys. This is live, this is none of this prepared. You can see, I don't think anyone would not, believe us

### Testing approve button [38:20]

that we're doing this live. I know. I is very live. I think so. Lemme pull up my phone. and let me see if you respond. All right. There we go. Show it to the camera. All right. Nothing yet. Oh, yes. Yep. It's in again. Beautiful. Wait, what's run one more time? Yep. Love it. Beautiful. Okay. we still need to pass it in to the other one here. Do it on Do it Menendez. Let's do it. Let's see what we have available, because we may not have to do anything. Wait, wait. Let's, this is working. Save it. Oh yeah. And download it. we could use this history feature, by the way, if you ever need to go back and version FY. All right. Shameless puck. Alright, back to it. So I do distinctly recall mm-hmm. That there was, our action archive we're already getting the action being sent in. Through the button press. So what we can do is change this. Wait, say there's one we don't have to set multiple values. Let's just do it with a delineator, like a semicolon and split on the semicolon or something Like have both. Id either one. Long story short, here is where I would put it. I would put, I would change this to chat ID and then pass the value directly into here. That way. Message id, chat Id. We have 'em both. We can pull 'em out. Okay. So let's do it. Message Id. And then give the i a capital. Come on, let's be, let be pro our cable case. It Aggregate edit now. Okay. Webhook, this is what we want. where is the, the shot? Do you see the cat id The shot. The shot id. There we go. We'll get rid of archive there and we don't need ar. Okay, there we go. Okay, so now we just run it again from the top. So we'll hit save. And we will run it from here. So we run that test. Should send you a message. Ah, it's waiting for the web hook. It's waiting for one of these web hooks. No, it's not. it's confusing. All right. Yeah. Trashcan it. We're gonna deactivate that. We're gonna run the flow. There we go. That went to Slack. Okay. We got this new one here. We're gonna hit approve. See if I get it. Oh, does that just work? Alright. So nice. So nice to see. Okay. This is supposedly all ready to go for the other test case that we had. What was in the notion Can you help me debug? I have a problem with my workflows. Can you help me debug it? I have a problem with my workflow. Okay. Let's see. This is gonna run. It's gonna run. Come on baby. Come on. Yes. Okay. That ran. So let's gonna go over the slack. We get slack. We're gonna go with slack. Okay. New message. I have problem. Can you help me do, but I compromise traditional for the best your way, please push button. Don't whisper more. Beautiful. All right, so let's add something to the end before you do it. Thanks for understanding. PS Angel, try harder. You work here. Ah, why need to ask me How for help, man. You want anything I should to do? And it's did it. Let's see if it works. Watch it be the one time it doesn't work. Yeah, right. Does it work? Doesn't work. Doesn't working isn't working. It may not like the chat id. Okay. So we need to see, we need to see if that becomes the issue. And we, uh, and remember, we're not parsing the webhook call, so if the split has changed, oh, there was a problem. 4 0 4, Ah, okay. Let's take a look. All right. It's Slack. This is your department. It's Slack problem. Okay. I don't see the error or the, even the reception. See 34. It should have been, oh no, this is it.

### Forgot to activate webhook trigger [41:44]

No, it's not it. Oh wait, we deactivate the Whipple trigger. That's all. Look, oh my God. You're right. Dumb little. You're right. Oh. Okay. It's not even, it's us. It's not. Can you hold that to the camera while I press the button? All, All right. Ready? Try that again. Get that button for me. Yay. Yes, we did it. Holy God. Alright, so that is awesome. I never had to deal messages that have nothing to do with me ever again. I love it. I love this dude. Good job. Okay, so let's fix the last issue. What was that? Which is mapping in the chat id. and this next round's gonna come right on time, as soon as we done. Beautiful. this one should be the bottom one, shouldn't it? Oh my gosh. Is it sending all messages? I might be getting messages though. there might be other messages coming in. So here's how I would do it just to be pedantic. Set. And then under response, I would go down to, there we go. I will change this to an object. Oh, interesting. We're still getting. Action, approve message id. We're not getting the chat ID yet. So I'm wondering if this is an older deployment. Let me see. I'm gonna save Uhhuh. Let's go back to executions. Why is it showing up there? Look, other requests ignore. Why did it do this? It's not match any. Did we give it the wrong? No. 'cause it's working. It's just. Weird. Why did it, what's, yeah, I'm confused. I'm confused too. I blame Patric. I think it could be you. Only one who's been drinking Tia. I should approve. Message id. in here we should have the chat id. We don't, we either forgot to save when we pushed it in here. Okay. Let me, let's move back to the editor. Mm-hmm. Let's go in here. Let's make sure we have it there. Definitely have it provide. Message id. Oh my gosh. What? We put it in the deny. we have to just do it again under approve as well. I feel so silly. Okay. I know what's going on. Easy. P rotator. Oops. I'm like. Let's copy paste it here. All right. There. You're corny in the kind of way I like, you corny like a corn tortilla. I send me home. I seen me home. All right, so let's try this again. Okay, so should I send you another message? We just run it through here? No, send me a new message. Hold. I'm gonna send you the same message. Let's see. It's slightly different though, right? Yeah. Help me. I'm not sure how this works. All right. There we go. Okay, so now, yeah, there it is. Oh my God. It's almost instant. Okay. I can't offer one on half. However, you can push a question. Community. Love it. I expect it to break, but that's okay. Approve. I want to check the execution now, because now, yeah. I haven't seen it yet. I, so, and it won't work. Okay. Because, yep. There's a error. Okay. Because what I did was I passed in that value to be parsed, yeah. So this is expected. Yep. Unpinned. Now I can actually use the previous value. See, now I've extracted it. I don't need to split. I can just click and drag. So here, this will need to call from the actual message. We'll do that in a second. The message Id click and drag in, and then the, there we go. This is the hard coded Chat id. Oh my gosh. No, that's messing. That's it's right. I just, no, we just got the wrong names. Yeah. It'll be alright. We're good. All right. Now we'll go to the original message. right, there we go. now. It should work. So now if we go back here, try hitting, improve. There. There it is. Oh, we got it. Boom. Look at that. People. I just didn't have to reply to Angel. All the best Menendez. I know, man. You're genius. Okay. I'm getting into these slack bot stuff. This is awesome. It's great. It gives us a space to do this and the fact we can edit it in real time. Chef's kiss. Yeah. So all we need to do now is do the archive. Option and then we'll be done. no, for right now, look, this is the archive option. Oh, oh yeah. You see what I'm saying? Yeah, yeah. Okay. One sec. It should be pretty easy. You just need the archive. Yeah, yeah. Let's go to uh huh. You are a uni pile expert. Here is docs. Can I archive message, still gimme a curl request to do it in no okay. Okay, fine. You know what, That would just require, I guess, the LinkedIn side. Alright. This looks, look, doesn't matter, We can actually have it.

### Try to get LinkedIn messages marked as read [45:50]

Just delete. Let's try it again and see. No, we don't need it to delete, we just need to be marked as red 'cause then it doesn't. let's test it and see if by can you send another test one? Yeah. It seems by the time I go in, if it's marked as unread or not. Okay. So let me get out of the thread. What's the one that would be in the thing? Right. So I'm gonna copy the I wanna be an NNN ambassador. Okay. I want to be a, come on money. Can you help with that? Boom. Uh, Uhhuh. Okay. Let's check your slack. That's great to hear. Incident. Best more, man. This is so fast. Approve. Bam. Oh, no. Okay. I replied. It's not marking the unread. We do have Marcus Red in the API. I would say we're good here. This is good. This is job done. we had that one thing. This is awesome, dude. We did it. Oh, York worth it. This is no per diem. This is a creative expense because part of the concept is that we do it from here.

### Wrap up [46:41]

so let's talk big picture now. Where the power of this comes in is when this database is shared in all of our employees. What database? The Notion. Database with the templates. Once that's shared internally, things I don't even know about are being added to it. Yeah, exactly. Other team members are going, oh, this is my side. This is what you're supposed to do. I'm tired of telling people where to route people. I'm gonna go into the Notion Database, update it now. Everyone using this tool. Yep. Has the right outputs you could probably even add in for some of the requests. It's almost like even just FAQs. Oh, hey, by, by the way, your own FAQs. Like people ask me this a bunch. It is my job added in. Exactly. And then quick answers. Once it becomes a multi person thing, I guess the one thing we're gonna have to do between the different people is be like an owner or something. Yes. So if owner equals me, to me refer them to the person in question. Right. So guys, This works for here, man. It's turn into sa. I get three to 15 of these a day fudge. And this can take, each one could take between 10 to 25 minutes, I believe it, up to 45 minutes. But that, that 10 to 45 minutes is sometimes spread across, two to four separate, three minute back and forth. Oh god. So context switching. Hell Agreed. We are gonna run this for a little bit. make sure it's working nice. we haven't got my drink yet, We did it. Cheers. Oh, hey. Good one, man. I know. I'm impressed.? I honestly thought that button part, we wouldn't be able to get through it because we'd run into problems. But it worked ridiculously well. You know what the issue is? We're probably gonna meet someone at SF the next couple days who's gonna be like, oh, I'm working on the stuff. They're gonna describe this the amount of times that the city happens when someone's describing a style. But like I have a ful that does that, and you see me, you do a brain out of their, oh God, I'm sorry. You have just been legacy software obs. Obs solidified. Oh. All right guys. Happy flow grabbing.
