Meeting Title: ABC Migration Chat Date: 2025-11-24 Meeting participants: Casie Aviles, Samuel Roberts, Mustafa Raja


WEBVTT

1 00:00:59.770 00:01:00.950 Samuel Roberts: Hey, Casey.

2 00:01:03.310 00:01:04.239 Casie Aviles: Hey, Sam.

3 00:01:06.480 00:01:07.520 Samuel Roberts: How’s it going?

4 00:01:07.810 00:01:09.140 Mustafa Raja: Ayyy.

5 00:01:10.210 00:01:10.570 Samuel Roberts: Amy starts.

6 00:01:11.230 00:01:15.940 Casie Aviles: was… I was just… Well, kind of panicking earlier with the…

7 00:01:16.920 00:01:18.209 Mustafa Raja: And he didn’t…

8 00:01:19.030 00:01:19.800 Samuel Roberts: Yeah.

9 00:01:19.800 00:01:22.130 Mustafa Raja: Yeah, I’ve actually seen this for the first time.

10 00:01:22.900 00:01:28.749 Samuel Roberts: Really? Okay, yeah, so what is the, like, have they ever… they didn’t respond yet, I saw the email you sent.

11 00:01:28.860 00:01:30.759 Samuel Roberts: But I assume they respond.

12 00:01:31.620 00:01:33.840 Samuel Roberts: Okay. Yeah, that’s a really…

13 00:01:34.540 00:01:39.500 Samuel Roberts: weird bug, or… I don’t know if it’s a bug for them or not, but it’s definitely not what I would expect it to do.

14 00:01:42.360 00:01:43.410 Casie Aviles: Like, I’m not sure…

15 00:01:43.410 00:01:45.640 Mustafa Raja: Everything in the queue.

16 00:01:45.870 00:01:46.679 Casie Aviles: Yeah, that’s true.

17 00:01:46.680 00:02:03.620 Mustafa Raja: there’s really nothing in processing. I mean, if there was something processing, and it was throwing, other things in, queue, it would make sense, but there’s nothing else processing, and it’s throwing everything in, queue.

18 00:02:04.510 00:02:12.879 Mustafa Raja: Maybe, maybe we have other workflows that are processing, and in that, during that, it… I don’t know.

19 00:02:12.880 00:02:15.180 Casie Aviles: It’d be, like, we’re…

20 00:02:15.450 00:02:21.859 Casie Aviles: I mean, I’m not sure if it’s a limit thing, a plan limit, or, like, we have no workers available for that.

21 00:02:22.140 00:02:27.779 Casie Aviles: I’m not sure. Right. That’s what I’m trying to, identify with them.

22 00:02:28.430 00:02:29.690 Samuel Roberts: That just seems like a lot of…

23 00:02:29.690 00:02:30.270 Mustafa Raja: Yeah.

24 00:02:30.270 00:02:32.459 Samuel Roberts: You know, a lot of things to get in the queue.

25 00:02:32.460 00:02:43.449 Mustafa Raja: Also, also I’m seeing, some responses or some requests from hours ago that are still in the queue.

26 00:02:43.690 00:02:46.620 Samuel Roberts: Yeah, that’s what, that’s what doesn’t make sense to me, yeah.

27 00:02:46.620 00:02:47.350 Mustafa Raja: Yeah.

28 00:02:47.540 00:03:00.490 Mustafa Raja: I mean, there’s no workflow in our… anything that takes an hour, so it doesn’t make sense for anything to be in queue for an hour.

29 00:03:01.110 00:03:01.820 Samuel Roberts: No.

30 00:03:03.370 00:03:04.429 Samuel Roberts: Yeah, I think.

31 00:03:04.430 00:03:04.840 Casie Aviles: Yeah.

32 00:03:04.840 00:03:11.099 Samuel Roberts: There’s definitely something wrong on their end, or maybe it is a plan thing, but that doesn’t make sense that it would be there that long, so…

33 00:03:11.100 00:03:11.830 Mustafa Raja: Yeah.

34 00:03:15.010 00:03:15.840 Samuel Roberts: Okay.

35 00:03:16.320 00:03:17.089 Samuel Roberts: Well, I think…

36 00:03:17.090 00:03:20.099 Mustafa Raja: But 1010 is just giving us more reasons to migrate.

37 00:03:20.570 00:03:23.440 Samuel Roberts: That’s exactly what I was gonna say, I think it’s really, like…

38 00:03:24.190 00:03:24.820 Mustafa Raja: Yeah, annoying.

39 00:03:24.820 00:03:32.000 Samuel Roberts: reason to move, so let’s move the conversation there, because then we can also add more alerting and stuff.

40 00:03:32.570 00:03:33.120 Samuel Roberts: Mmm.

41 00:03:33.120 00:03:33.700 Casie Aviles: Okay.

42 00:03:34.220 00:03:39.720 Samuel Roberts: So let’s talk through a little bit about what you guys have, I guess, In the dark…

43 00:03:39.890 00:03:43.309 Samuel Roberts: Documentation stuff, and then we’ll talk migration stuff, too.

44 00:03:44.760 00:03:45.820 Samuel Roberts: That’s cool.

45 00:03:51.560 00:03:53.229 Casie Aviles: Oh, wait, is…

46 00:03:57.540 00:03:58.610 Casie Aviles: Oh, there we go.

47 00:04:01.950 00:04:06.539 Casie Aviles: Yeah, it might be a little messy still right now, but…

48 00:04:07.190 00:04:14.030 Samuel Roberts: That’s fine. I can… yeah, just so… so I just… high level, let’s just start there. So we have the central dock.

49 00:04:14.330 00:04:16.940 Samuel Roberts: And the zip code database. Is that basically…

50 00:04:17.130 00:04:19.620 Samuel Roberts: And obviously, Andy chatting over that.

51 00:04:22.120 00:04:25.570 Casie Aviles: Okay, so how… should we…

52 00:04:26.050 00:04:33.619 Casie Aviles: go through, like, the… talk about, like, how we set up Andy right now? Will that be helpful, or…

53 00:04:33.950 00:04:40.999 Samuel Roberts: I think it would be, yeah, because I’ve obviously, like, seen it and stuff, but I’m not necessarily sure I have a good grasp of all the nitty-gritty, so…

54 00:04:41.650 00:04:43.209 Casie Aviles: Okay.

55 00:04:43.210 00:04:45.480 Mustafa Raja: I’ll just also just flash…

56 00:04:45.480 00:04:46.250 Casie Aviles: this…

57 00:04:46.920 00:04:47.340 Samuel Roberts: Okay.

58 00:04:49.210 00:04:50.670 Casie Aviles: Workflow over here.

59 00:04:52.800 00:05:01.290 Casie Aviles: Take me… Yeah, so I guess, there’s, like, 3…

60 00:05:02.410 00:05:06.009 Casie Aviles: main things happening with Andy that we built.

61 00:05:06.150 00:05:06.580 Samuel Roberts: Yep.

62 00:05:06.580 00:05:07.300 Casie Aviles: So…

63 00:05:07.300 00:05:08.020 Samuel Roberts: Okay.

64 00:05:09.130 00:05:15.929 Casie Aviles: Just to give you the… a general idea, so we have, like, the interface first with Andy.

65 00:05:16.170 00:05:22.730 Casie Aviles: And… I’m not sure if, I think you’re still locked out of here, right?

66 00:05:22.730 00:05:24.900 Samuel Roberts: Yeah, I haven’t been able to, yeah.

67 00:05:25.110 00:05:29.109 Casie Aviles: Okay, but yeah, so we have Andy here, and…

68 00:05:29.110 00:05:30.480 Samuel Roberts: Right.

69 00:05:30.480 00:05:34.879 Casie Aviles: We have a Google Chat interface for Andy, and…

70 00:05:36.920 00:05:40.720 Casie Aviles: I’m not sure if this is… that is probably not the right one, but…

71 00:05:42.380 00:05:46.769 Casie Aviles: We have a code, basically, that we send to GitHub.

72 00:05:46.870 00:05:49.030 Casie Aviles: Or we push to GitHub.

73 00:05:50.230 00:05:50.920 Samuel Roberts: Yeah.

74 00:05:52.600 00:05:53.370 Casie Aviles: I don’t know.

75 00:05:53.820 00:05:58.570 Casie Aviles: But yeah, we sent… we pushed that to GitHub, and then it notifies Tim.

76 00:05:59.090 00:06:08.230 Casie Aviles: Right. And they deploy it on their environment, so… We have our own… Kind of.

77 00:06:08.640 00:06:15.630 Casie Aviles: testing version of Andy, but… This is only for… within our… oh, there’s… okay, I’ll check that.

78 00:06:16.790 00:06:17.490 Casie Aviles: But…

79 00:06:17.920 00:06:18.770 Samuel Roberts: Oh, yeah.

80 00:06:20.840 00:06:21.770 Casie Aviles: Yeah, so we have.

81 00:06:21.770 00:06:24.319 Mustafa Raja: Yeah, they’re just saying that it might be our plan.

82 00:06:24.790 00:06:26.420 Samuel Roberts: Yeah, of course, okay.

83 00:06:28.180 00:06:30.839 Samuel Roberts: But that doesn’t seem to really make sense.

84 00:06:33.810 00:06:35.070 Casie Aviles: Okay.

85 00:06:35.070 00:06:37.550 Samuel Roberts: Whatever, we’ll dig into that after, yeah, okay.

86 00:06:38.030 00:06:40.600 Casie Aviles: Okay, yeah, I’ll just keep going on.

87 00:06:40.600 00:06:41.020 Samuel Roberts: Yeah.

88 00:06:41.020 00:06:47.650 Casie Aviles: So, we have this test version of Andy here, so this is within our Google Cloud project. So, this is…

89 00:06:47.650 00:06:48.750 Mustafa Raja: from…

90 00:06:48.750 00:06:50.360 Casie Aviles: The one that is deployed.

91 00:06:50.980 00:06:54.639 Casie Aviles: here, that the CSRs are actively using.

92 00:06:55.190 00:06:56.340 Samuel Roberts: Okay.

93 00:06:57.400 00:07:04.439 Casie Aviles: Right, and then this is also, like, the space, Google space, or the group chat where Andy sounds like…

94 00:07:05.120 00:07:11.760 Casie Aviles: daily messages. So… That’s pretty much, like, how… how the…

95 00:07:12.230 00:07:19.069 Casie Aviles: interface works for Andy, and there’s, like, a portion in the code that.

96 00:07:19.560 00:07:21.010 Samuel Roberts: basically…

97 00:07:21.040 00:07:26.639 Casie Aviles: We’ll handle getting… The user message, user input.

98 00:07:26.870 00:07:28.980 Casie Aviles: And then it sends it to…

99 00:07:30.280 00:07:35.080 Casie Aviles: This workflow, which is cut here in this webhook.

100 00:07:39.750 00:07:46.429 Casie Aviles: Basically, it’s just gonna go here, to the middle, which is… this is, like, the main…

101 00:07:47.930 00:07:51.930 Casie Aviles: LLM node that handles, like, responding

102 00:07:53.130 00:07:56.160 Casie Aviles: And then… it’s just gonna return that as…

103 00:07:57.270 00:08:02.339 Casie Aviles: Oh, not here, it’s just gonna return that as, here, respond to Wemble.

104 00:08:02.340 00:08:02.720 Samuel Roberts: Yep.

105 00:08:02.720 00:08:04.389 Casie Aviles: That’s going to be the response.

106 00:08:05.500 00:08:10.590 Casie Aviles: And then… Yeah, there’s… and then there’s some intermediate steps here, like…

107 00:08:10.920 00:08:16.020 Casie Aviles: This is the… what Mustafa worked on, I believe. This is the… the routing, and it basically.

108 00:08:16.020 00:08:16.370 Samuel Roberts: Okay.

109 00:08:16.370 00:08:22.080 Casie Aviles: bugs… Because we needed to handle, like… which…

110 00:08:22.210 00:08:27.890 Casie Aviles: We needed to identify, which users or which departments are the users from.

111 00:08:28.150 00:08:30.879 Casie Aviles: So, this is, like, the lo- the…

112 00:08:31.020 00:08:33.970 Casie Aviles: This part here is what’s handling that.

113 00:08:34.130 00:08:43.489 Casie Aviles: And depending on… Which, depending on which department they’re from, That will tell Andy, like.

114 00:08:43.600 00:08:47.520 Casie Aviles: Okay, you should reference from this, document.

115 00:08:47.990 00:08:51.340 Casie Aviles: So, it’s, like… Getting from…

116 00:08:51.710 00:09:00.190 Casie Aviles: the right context based on their department. So we’re not, like… Dumping every single, like, document.

117 00:09:00.190 00:09:00.920 Samuel Roberts: Right.

118 00:09:00.920 00:09:02.310 Casie Aviles: into the context.

119 00:09:02.560 00:09:04.660 Casie Aviles: So that’s why we did it that way.

120 00:09:06.950 00:09:08.160 Casie Aviles: So that’s, like, how…

121 00:09:08.160 00:09:10.340 Mustafa Raja: Although, I want to add…

122 00:09:12.160 00:09:17.729 Mustafa Raja: Yeah, I want to add one piece. So, a while back.

123 00:09:17.790 00:09:32.270 Mustafa Raja: based on the, feedback from CSR’s, main, Amber in a working session, removed the, output that we were getting from

124 00:09:32.290 00:09:43.510 Mustafa Raja: This router, this router, and, we observed that if, if it were, fetching from all of the documents, it gave better results.

125 00:09:43.850 00:09:49.589 Mustafa Raja: So yeah, for now, that logic is frozen.

126 00:09:50.580 00:09:52.320 Casie Aviles: The… the routing?

127 00:09:54.020 00:09:54.730 Mustafa Raja: Yeah.

128 00:09:55.620 00:09:56.290 Samuel Roberts: Okay.

129 00:09:58.400 00:09:59.290 Casie Aviles: I see.

130 00:10:00.440 00:10:11.419 Mustafa Raja: Yeah, I think agent does process whatever it has to, but yeah, the main agent, just now not uses whatever it’s sending for now.

131 00:10:13.270 00:10:13.900 Samuel Roberts: Okay.

132 00:10:16.740 00:10:17.360 Mustafa Raja: Yeah.

133 00:10:18.740 00:10:21.610 Samuel Roberts: Okay. So, kind of high level.

134 00:10:22.330 00:10:30.759 Samuel Roberts: We have two agents, the routing agent, which helps get the right context, ideally.

135 00:10:31.160 00:10:31.570 Mustafa Raja: in the.

136 00:10:31.570 00:10:34.540 Samuel Roberts: actual, like… context agent.

137 00:10:35.000 00:10:44.320 Samuel Roberts: that… Gets info from… the… This is where it goes to the…

138 00:10:44.480 00:10:48.180 Samuel Roberts: Like, the zips or the central dock?

139 00:10:49.110 00:10:55.860 Casie Aviles: Yes. This, here, the middle one… Is, what’s…

140 00:10:56.130 00:11:02.130 Casie Aviles: What… it’s where we give, like, the main system prompt, and… Handles also, like.

141 00:11:03.340 00:11:06.490 Casie Aviles: Figuring out which tool to call.

142 00:11:06.790 00:11:13.340 Casie Aviles: Based on… the conversation, so… We have attached their…

143 00:11:13.720 00:11:21.730 Casie Aviles: We have attached there the QueryDB tool, and… Yep. And that’s, yeah, yeah, that’s the Zips database, and then…

144 00:11:21.960 00:11:24.019 Casie Aviles: These are the ones that are doing the…

145 00:11:24.280 00:11:27.900 Casie Aviles: Vector querying to the central documents.

146 00:11:29.000 00:11:30.070 Samuel Roberts: Okay. So.

147 00:11:30.860 00:11:34.390 Casie Aviles: Yeah, that’s… that’s pretty much, like, the high-level,

148 00:11:34.620 00:11:38.649 Casie Aviles: Flow, here, like, at the end part.

149 00:11:39.210 00:11:42.040 Casie Aviles: This is where we handle, pretty much.

150 00:11:44.440 00:11:47.149 Casie Aviles: We had evals over here, but…

151 00:11:48.160 00:11:50.590 Casie Aviles: It wasn’t very helpful, so we’ve…

152 00:11:50.820 00:11:53.869 Casie Aviles: Turned it off, we were using Brain Trust for that.

153 00:11:53.990 00:11:56.569 Casie Aviles: So that’s also something we want to…

154 00:11:57.070 00:11:59.830 Casie Aviles: Think about in our migration?

155 00:12:00.530 00:12:03.460 Casie Aviles: Maybe something we should… we could also…

156 00:12:03.580 00:12:09.570 Casie Aviles: think about is how we should… we could set up deviles much better, and I think maybe LaoFuse can help us with that.

157 00:12:10.050 00:12:12.919 Casie Aviles: Since I believe they have evals as well, but…

158 00:12:13.730 00:12:20.600 Casie Aviles: Yeah, because ideally, what we wanted to… why we wanted to have evals is to assess the quality and also, like.

159 00:12:21.180 00:12:23.820 Casie Aviles: Flag beforehand if something…

160 00:12:24.120 00:12:32.509 Casie Aviles: is, like, getting a bad score, then we should know before, like, the CSRs or the users flag it as…

161 00:12:33.220 00:12:34.650 Casie Aviles: You know?

162 00:12:35.890 00:12:36.290 Samuel Roberts: Okay.

163 00:12:36.720 00:12:42.860 Casie Aviles: That’s also… yeah, I showed here, like, an example. Currently, we’re using,

164 00:12:44.620 00:12:52.260 Casie Aviles: basic solution, but it’s not very accurate, because we’re generating a quality score,

165 00:12:53.520 00:12:57.210 Casie Aviles: So it… and basically, there’s another node here.

166 00:12:57.550 00:13:00.049 Casie Aviles: Here, the generate summary score that…

167 00:13:01.040 00:13:01.390 Samuel Roberts: Okay.

168 00:13:01.660 00:13:04.510 Casie Aviles: scores the output of Andy.

169 00:13:04.660 00:13:10.579 Casie Aviles: And… As you can see here, there are a lot of thumbs-down feedback.

170 00:13:10.770 00:13:15.620 Casie Aviles: But the quality score is, close to 10, or… which is… yeah.

171 00:13:15.620 00:13:16.280 Samuel Roberts: Right.

172 00:13:16.280 00:13:18.060 Casie Aviles: So there’s, like, a disconnect.

173 00:13:19.260 00:13:23.330 Casie Aviles: So that’s one of, like, the areas that… You can…

174 00:13:23.650 00:13:27.309 Casie Aviles: We could improve, but that’s how it works right now.

175 00:13:27.580 00:13:29.880 Casie Aviles: So it’s like an LLM judge.

176 00:13:30.530 00:13:31.220 Samuel Roberts: Sure.

177 00:13:31.570 00:13:38.119 Samuel Roberts: Yeah, I think we could probably make sure that that’s still in there. And then it’s logging to Snowflake, right? The last bit here? Yeah.

178 00:13:38.330 00:13:39.050 Casie Aviles: Sure, yeah.

179 00:13:39.050 00:13:39.650 Samuel Roberts: Okay.

180 00:13:39.950 00:13:43.630 Casie Aviles: That’s how we’re able to show our real dashboards.

181 00:13:44.010 00:13:45.169 Samuel Roberts: Right, okay.

182 00:13:46.770 00:13:51.520 Samuel Roberts: Alright, so… I’m just trying to…

183 00:13:51.730 00:14:00.780 Samuel Roberts: think high level here. So we have… Chat comes in, Routed… context agent, zips…

184 00:14:00.950 00:14:04.509 Samuel Roberts: or, the DB lookup for the zips, and then the… Yes.

185 00:14:04.860 00:14:12.500 Samuel Roberts: the… Central document RAG, and then we have some output judging, we have some logging.

186 00:14:13.120 00:14:15.450 Samuel Roberts: And obviously responding. Yes. Okay.

187 00:14:16.420 00:14:19.659 Casie Aviles: But the response would come first, since if we have.

188 00:14:19.660 00:14:20.889 Samuel Roberts: Of course, yeah.

189 00:14:21.350 00:14:21.920 Casie Aviles: Yeah.

190 00:14:23.090 00:14:26.480 Casie Aviles: Because this would take some time, and it will…

191 00:14:26.780 00:14:31.199 Casie Aviles: Yeah, yeah, yeah, yeah. No, it definitely, definitely responds when it gets its first result back. Okay.

192 00:14:31.540 00:14:32.390 Samuel Roberts: Okay.

193 00:14:33.200 00:14:35.210 Samuel Roberts: Zips DB, I’m looking at the…

194 00:14:37.610 00:14:41.140 Samuel Roberts: Okay, so if we’re gonna start moving some of this out of N8N,

195 00:14:41.800 00:14:48.069 Samuel Roberts: The… right now, the DB… the ZIP stuff, it has happening… can you zoom in a little bit down there?

196 00:14:50.260 00:14:50.879 Casie Aviles: This one?

197 00:14:50.880 00:14:53.460 Samuel Roberts: Yeah, okay. So this is a… this is a windmill thing?

198 00:14:54.250 00:14:55.579 Casie Aviles: Yes, so…

199 00:14:55.580 00:14:57.709 Samuel Roberts: We can still just hit that, right?

200 00:14:58.780 00:15:02.320 Casie Aviles: Yes, we can still… it’s still just a webhook.

201 00:15:02.320 00:15:03.170 Samuel Roberts: Okay, cool.

202 00:15:03.710 00:15:11.009 Casie Aviles: Yeah, it’s being… yeah, as you can see here, we are calling it… Or, like, Andy’s calling it.

203 00:15:11.650 00:15:12.600 Samuel Roberts: Yep, okay.

204 00:15:12.850 00:15:20.719 Samuel Roberts: Great. And then the RAG lookup is mostly just… the Supabase stuff?

205 00:15:20.840 00:15:24.579 Samuel Roberts: But it’s using the specific NAN nodes, right?

206 00:15:25.990 00:15:28.030 Mustafa Raja: Yeah, it’s the built-in nodes.

207 00:15:28.770 00:15:29.450 Samuel Roberts: Okay.

208 00:15:30.020 00:15:32.960 Casie Aviles: So, similar to how we’re doing the client hubs.

209 00:15:33.430 00:15:34.010 Samuel Roberts: Yeah.

210 00:15:34.010 00:15:34.830 Mustafa Raja: Yes.

211 00:15:36.330 00:15:36.920 Samuel Roberts: Okay.

212 00:15:37.510 00:15:40.849 Samuel Roberts: So what are the… what are the two different ones there? The central dock…

213 00:15:43.100 00:15:54.350 Mustafa Raja: Yeah, so what the coverage story, or what the coverage doc is, is it, it tells whatever ABC does and doesn’t do.

214 00:15:54.790 00:16:05.519 Mustafa Raja: Right, so it’s an overall, or a high-level view of what ABC does. And central docs for the niche department, we have central docs.

215 00:16:05.620 00:16:08.729 Mustafa Raja: Where we dive deeper into each service.

216 00:16:09.310 00:16:09.940 Samuel Roberts: Okay.

217 00:16:10.190 00:16:13.829 Samuel Roberts: Can you, just, like, open one of these for me? I’m just curious what the…

218 00:16:15.000 00:16:22.140 Samuel Roberts: like, okay, so we hit it with the Superbase account, retrieve Doc, so this is something we’d have to figure out how to do…

219 00:16:23.110 00:16:27.590 Samuel Roberts: with Maestra, but shouldn’t be crazy, it’s just a little NNN custom thing.

220 00:16:28.480 00:16:29.050 Mustafa Raja: Yeah.

221 00:16:30.100 00:16:33.880 Mustafa Raja: Yeah, I’ve done this in, Llama Index, so it shouldn’t be…

222 00:16:34.640 00:16:41.249 Samuel Roberts: Yeah, I don’t think it’s gonna be anything crazy either. I’m just making sure I know what kind of logic we need to bring over. Like, the other one we.

223 00:16:41.250 00:16:45.959 Mustafa Raja: Yeah, I think Master actually has a module specifically for this.

224 00:16:46.540 00:16:48.809 Samuel Roberts: I’m sure they probably do, you’re right.

225 00:16:50.740 00:16:51.390 Mustafa Raja: Yeah.

226 00:16:51.680 00:16:53.090 Mustafa Raja: Do I have a quick engine?

227 00:16:54.880 00:16:55.930 Mustafa Raja: Muslim.

228 00:16:57.230 00:16:58.790 Samuel Roberts: Yeah, I’m sure there’s something.

229 00:16:58.790 00:17:02.499 Casie Aviles: Oh, they have PG vectors, so that’s nice. We’re already.

230 00:17:02.500 00:17:02.830 Samuel Roberts: Oh.

231 00:17:02.830 00:17:04.540 Casie Aviles: BGVector in…

232 00:17:04.540 00:17:07.119 Samuel Roberts: I was gonna say, that’s how it’s probably stored in Superbase, right?

233 00:17:07.280 00:17:07.960 Casie Aviles: Yeah.

234 00:17:08.250 00:17:08.710 Mustafa Raja: Yeah.

235 00:17:08.710 00:17:09.310 Samuel Roberts: probably is pointing.

236 00:17:09.310 00:17:11.519 Mustafa Raja: Yeah, they have a vector query tool.

237 00:17:12.579 00:17:13.619 Casie Aviles: Okay, okay.

238 00:17:13.619 00:17:16.639 Samuel Roberts: So let’s, well, I guess let’s jump over…

239 00:17:17.569 00:17:19.709 Mustafa Raja: Oh, one thing I’m wondering…

240 00:17:19.710 00:17:20.280 Samuel Roberts: Yeah.

241 00:17:20.380 00:17:21.050 Samuel Roberts: Sure.

242 00:17:21.050 00:17:25.679 Mustafa Raja: So this isn’t going to live on our platform, though, right?

243 00:17:26.220 00:17:30.330 Samuel Roberts: No, this will be a separate… Either a new…

244 00:17:30.980 00:17:37.269 Samuel Roberts: Well, yeah, we have to make a few decisions there, but yes, it will be its own repo, and live.

245 00:17:37.570 00:17:38.250 Mustafa Raja: Yeah.

246 00:17:38.250 00:17:45.200 Samuel Roberts: We’ll, I mean, we’ll develop it in such a way that we can then also deploy it to their Google Cloud, but for now, we’ll probably just run it

247 00:17:45.620 00:17:47.120 Samuel Roberts: testing purposes.

248 00:17:47.850 00:17:51.200 Mustafa Raja: has to live the… live on the Google Cloud also.

249 00:17:51.270 00:17:51.790 Casie Aviles: Yes.

250 00:17:51.790 00:17:53.769 Samuel Roberts: That’s the… that’s the goal, yes.

251 00:17:54.660 00:17:55.820 Mustafa Raja: Okay.

252 00:17:55.820 00:17:58.410 Samuel Roberts: So, that’s a couple things. I was thinking about this.

253 00:17:59.000 00:17:59.949 Samuel Roberts: So, go ahead.

254 00:18:01.020 00:18:06.800 Mustafa Raja: Yeah, I was just wondering if it’s going to be a next app, or some… Express app.

255 00:18:07.500 00:18:15.339 Samuel Roberts: My thought is to… maybe just… I know with Monster, you can just, like, scaffold out.

256 00:18:15.340 00:18:17.829 Mustafa Raja: Next would make sense if we need UI.

257 00:18:18.570 00:18:21.620 Samuel Roberts: That’s exactly what I was gonna say. I don’t know if we need that yet or not.

258 00:18:22.220 00:18:29.470 Samuel Roberts: Part of that, like, we had some conversations about that with them, but I don’t know if they’re still interested, you know, the separate UI and everything.

259 00:18:29.830 00:18:38.019 Samuel Roberts: And so, if we just create, like, a createMastra command, you know, we’ll get…

260 00:18:38.160 00:18:41.969 Samuel Roberts: the right endpoints, and I think we can probably set up…

261 00:18:42.220 00:18:47.709 Samuel Roberts: something that way, and that’ll also let us test with the Mastra dev, environment.

262 00:18:49.650 00:18:54.669 Samuel Roberts: So I… I actually, I do want to talk, because is Utam meeting them today, is that what he said?

263 00:18:55.240 00:18:56.700 Mustafa Raja: Yes, yes.

264 00:18:56.700 00:18:57.100 Samuel Roberts: So…

265 00:18:57.100 00:18:59.039 Mustafa Raja: She’s meeting in person, I believe.

266 00:18:59.270 00:19:08.899 Samuel Roberts: Yeah, yeah. So, you know, if… I think let’s not go the Next.js route yet, but we can probably fold it into Next.js if we need a UI.

267 00:19:09.150 00:19:11.300 Samuel Roberts: But for now, my thought is just…

268 00:19:11.510 00:19:15.710 Samuel Roberts: If you go to, like, installation, up here…

269 00:19:17.260 00:19:20.450 Samuel Roberts: with the Create Monstra, you get,

270 00:19:22.210 00:19:24.419 Samuel Roberts: Scroll down a little bit for me, too?

271 00:19:25.450 00:19:32.320 Samuel Roberts: Yeah, so, like, we’ll get this local environment that we can just use, and then… I think… I see.

272 00:19:32.530 00:19:39.429 Samuel Roberts: There’s a way to set up… a, like, Webhooks, basically, to hit that.

273 00:19:41.100 00:19:46.350 Samuel Roberts: Yeah, because it’s all back-end at this point, because it’s the… because we’re using the… Google Chat.

274 00:19:46.970 00:19:51.849 Samuel Roberts: So I’m hoping that that means we don’t need to worry about any UI stuff, we can test in here.

275 00:19:52.240 00:19:57.440 Samuel Roberts: get… You know, get on par with…

276 00:19:59.070 00:20:06.980 Samuel Roberts: get on par with Andy as it is, and then… Set up the…

277 00:20:07.890 00:20:12.909 Samuel Roberts: Yeah, set up the chat handler, exactly, to hit the right endpoint.

278 00:20:13.310 00:20:14.360 Samuel Roberts: So…

279 00:20:18.300 00:20:18.770 Casie Aviles: Okay, here.

280 00:20:18.770 00:20:23.139 Samuel Roberts: So that’s the webhook we’re hitting. So basically, yeah, I think what we probably want to do is…

281 00:20:23.280 00:20:26.870 Samuel Roberts: As little change here as possible is my thought for now.

282 00:20:27.130 00:20:36.380 Samuel Roberts: So we’ll… if we can just, like, change… like, drop in a new URL here, we’ll try to make sure we, you know, map it to the same payload.

283 00:20:38.460 00:20:43.700 Samuel Roberts: And then have it respond… what does it look for here?

284 00:20:43.950 00:20:48.280 Samuel Roberts: Data… clean text comes from data output, okay.

285 00:20:48.600 00:20:50.520 Samuel Roberts: So, yeah, I think if we can…

286 00:20:50.980 00:20:54.840 Samuel Roberts: As closely as possible. Match that for now.

287 00:20:56.110 00:21:00.819 Samuel Roberts: Sorry, my cat just jumped on my lap with his claws. Ouch.

288 00:21:01.460 00:21:06.890 Samuel Roberts: Okay, so we have… what are the endpoints that we hit here? I see the… oh, by the way, generator there.

289 00:21:07.060 00:21:08.160 Samuel Roberts: And then there’s just…

290 00:21:09.290 00:21:12.749 Casie Aviles: So it’s just the two of them? This is another workflow.

291 00:21:12.750 00:21:13.210 Mustafa Raja: They’re back.

292 00:21:13.210 00:21:15.420 Casie Aviles: As well, feedback, for feedback.

293 00:21:16.050 00:21:16.710 Samuel Roberts: Okay.

294 00:21:16.970 00:21:17.450 Samuel Roberts: And then…

295 00:21:17.450 00:21:19.070 Mustafa Raja: And open from town, I believe.

296 00:21:19.950 00:21:21.280 Samuel Roberts: When is that one hitting?

297 00:21:21.670 00:21:24.359 Casie Aviles: It’s also N80. They’re all N. Nathan.

298 00:21:24.860 00:21:28.769 Samuel Roberts: Right, right, but I mean, so there’s query router, oh, by the way, generator, and then…

299 00:21:29.540 00:21:31.369 Samuel Roberts: It doesn’t have, like… Okay, cool.

300 00:21:31.370 00:21:31.950 Casie Aviles: Hmm.

301 00:21:31.950 00:21:36.710 Samuel Roberts: No, it’s fine, I just want to make sure. So there’s 3 webhooks we need to try to replace, basically.

302 00:21:38.380 00:21:43.199 Samuel Roberts: That’s, like, kind of the surface area that we want to try to map to, right? Okay.

303 00:21:44.300 00:21:45.060 Mustafa Raja: Yep.

304 00:21:45.060 00:21:47.130 Samuel Roberts: Alright, so my…

305 00:21:51.910 00:21:54.669 Samuel Roberts: My thoughts there, where is my next chicken? Okay.

306 00:21:55.030 00:22:00.069 Samuel Roberts: So… Okay, whiteboard in Notion.

307 00:22:03.950 00:22:05.869 Casie Aviles: I think normal, I’m not sure.

308 00:22:06.350 00:22:07.880 Samuel Roberts: Yeah, okay, I’m just gonna open up a…

309 00:22:08.980 00:22:14.410 Samuel Roberts: a whiteboard then, or… this probably can do it, can’t it? But I don’t even know how to do that in Zoom.

310 00:22:15.710 00:22:18.299 Samuel Roberts: Yeah, Figma could work too, I suppose.

311 00:22:18.750 00:22:20.020 Mustafa Raja: Yeah. Yeah.

312 00:22:20.020 00:22:22.010 Samuel Roberts: Share that, share that link real quick.

313 00:22:22.630 00:22:25.130 Samuel Roberts: And then, you know, oops.

314 00:22:27.100 00:22:34.760 Samuel Roberts: Okay, just very high level. We still want to probably get a little more of the… like…

315 00:22:35.340 00:22:42.840 Samuel Roberts: What’s the word I’m trying to think of? What did he say? Explain, like, I’m 5 for the reason for the migration?

316 00:22:44.070 00:22:48.139 Samuel Roberts: So we’ll try to get that in there, but I think for…

317 00:22:48.430 00:22:51.090 Samuel Roberts: Okay, let me… so what is in here right now?

318 00:22:51.810 00:22:57.309 Samuel Roberts: Is this the actual… Okay, I don’t know what I’m looking at on all this.

319 00:22:57.950 00:22:59.110 Casie Aviles: Oh.

320 00:22:59.690 00:23:01.210 Samuel Roberts: So what’s what here? Yeah.

321 00:23:02.330 00:23:05.590 Casie Aviles: Feel free to create, like, a new page, or…

322 00:23:05.740 00:23:06.500 Samuel Roberts: Oh, okay, okay.

323 00:23:06.500 00:23:08.799 Casie Aviles: Elsewhere. This is just kind of…

324 00:23:09.240 00:23:11.819 Casie Aviles: When I was presenting the architecture review.

325 00:23:12.790 00:23:17.089 Samuel Roberts: Oh, sure. Okay, well, this is actually kind of what I wanted to see, so this is actually perfect.

326 00:23:18.550 00:23:23.370 Samuel Roberts: This is actually very… this is what I wanted to see, because this actually tells us what we need to start replacing, right?

327 00:23:25.180 00:23:34.180 Samuel Roberts: So, realistically, there’s this Google Chat UI, And then, there’s actually… This one is the…

328 00:23:35.240 00:23:39.040 Samuel Roberts: is it okay if I start editing this, you think? You’re like, no one’s gonna need this again, right?

329 00:23:39.180 00:23:40.060 Casie Aviles: Yeah, sure.

330 00:23:40.950 00:23:45.820 Samuel Roberts: So I’m gonna say this is the query, what is it, query router? Or a query route?

331 00:23:48.750 00:23:49.300 Casie Aviles: Hmm.

332 00:23:49.300 00:23:50.790 Samuel Roberts: webhook, right?

333 00:23:50.920 00:23:52.250 Samuel Roberts: So we have that.

334 00:23:53.400 00:23:54.070 Mustafa Raja: Yeah.

335 00:23:54.660 00:24:00.999 Samuel Roberts: We also have… What’s the other thing we were just talking about? The feedback?

336 00:24:01.910 00:24:03.849 Samuel Roberts: This is really hard to read.

337 00:24:05.760 00:24:07.330 Samuel Roberts: Feedback, right?

338 00:24:09.660 00:24:12.889 Samuel Roberts: So that, and then we also have the… oh, by the way, right?

339 00:24:13.260 00:24:14.400 Samuel Roberts: Yes, oops.

340 00:24:14.830 00:24:16.140 Samuel Roberts: I just wanna just…

341 00:24:16.900 00:24:21.870 Samuel Roberts: We can make this pretty later, but I’m just trying to make sure I… oh, okay, hold on, that was not what I meant to do.

342 00:24:23.140 00:24:25.680 Samuel Roberts: Thank you.

343 00:24:26.060 00:24:38.959 Samuel Roberts: Arrows… this arrow can come here. Okay, so these are the three kind of things. Obviously, Andy’s the big one, so I think we’ll focus on that first to get as much done there as we can.

344 00:24:39.950 00:24:41.960 Samuel Roberts: Is that not the feedback, or is that different?

345 00:24:42.190 00:24:45.330 Casie Aviles: Oh, sorry, yeah, I didn’t notice.

346 00:24:45.330 00:24:49.679 Samuel Roberts: No, you’re good, you’re good, I’m just making sure I understand. So, there’s basically 3 webhooks, right?

347 00:24:49.910 00:24:50.989 Samuel Roberts: Using the free…

348 00:24:50.990 00:24:51.560 Casie Aviles: That’s right.

349 00:24:52.090 00:24:56.709 Samuel Roberts: webhooks. So the main webhook is Andy. We’ll worry about that for now, because the other one’s…

350 00:24:57.020 00:25:01.510 Samuel Roberts: I think we’ll be… Easier to do once we have the rest of it set up?

351 00:25:02.610 00:25:05.819 Samuel Roberts: So the way I’m kind of thinking about it, and this is…

352 00:25:07.340 00:25:11.400 Samuel Roberts: I don’t know if this is the best way to do this here, but…

353 00:25:11.670 00:25:15.160 Samuel Roberts: We have the main routing agent, right?

354 00:25:15.830 00:25:17.400 Samuel Roberts: If I do this, does that…

355 00:25:17.670 00:25:20.260 Samuel Roberts: Can I send this to the… Okay.

356 00:25:21.990 00:25:24.860 Samuel Roberts: So I’m thinking, like, the boxes we have to do…

357 00:25:25.360 00:25:28.659 Samuel Roberts: is… actually, this isn’t… it’s not… I actually don’t want that. I want…

358 00:25:30.710 00:25:35.400 Samuel Roberts: I want more of a section like this. So we’ll say, like, Routing agent?

359 00:25:37.690 00:25:39.589 Samuel Roberts: Right? Is this.

360 00:25:43.180 00:25:48.290 Samuel Roberts: And then the main Andy agent that calls tools, right?

361 00:25:48.680 00:25:49.100 Casie Aviles: Yes.

362 00:25:49.100 00:25:49.620 Mustafa Raja: No.

363 00:25:49.950 00:25:54.000 Samuel Roberts: So this is the context… Agent, we’ll call it.

364 00:25:56.270 00:25:56.740 Casie Aviles: Good.

365 00:25:57.440 00:25:58.900 Samuel Roberts: And then we have…

366 00:26:00.400 00:26:05.259 Samuel Roberts: It will call the other tools, and we’re gonna need… what we need to build right now…

367 00:26:05.690 00:26:08.460 Samuel Roberts: Is basically… this.

368 00:26:09.320 00:26:10.730 Samuel Roberts: Other one, right?

369 00:26:13.750 00:26:19.110 Samuel Roberts: the RAG, Supabase… RAG.

370 00:26:19.590 00:26:21.149 Samuel Roberts: Supervisor’s probably fine.

371 00:26:21.970 00:26:22.830 Samuel Roberts: Okay.

372 00:26:23.680 00:26:27.600 Samuel Roberts: So… This one is just when… oops, sorry.

373 00:26:27.700 00:26:30.799 Samuel Roberts: This one over here is just the windmill lookup, right?

374 00:26:32.140 00:26:32.740 Casie Aviles: Yes.

375 00:26:33.390 00:26:39.890 Samuel Roberts: So, we really need to put together 3, kind of, agents slash tools in a workflow in Maestra.

376 00:26:43.230 00:26:45.150 Samuel Roberts: The data is already there.

377 00:26:45.830 00:26:47.720 Samuel Roberts: The windmill’s already there.

378 00:26:49.280 00:26:51.789 Samuel Roberts: We then also need the…

379 00:26:53.860 00:26:56.410 Samuel Roberts: Okay, hold on, let me just make a quick list here while we’re doing this.

380 00:26:58.020 00:27:02.560 Samuel Roberts: Okay, so, we have, routing agent?

381 00:27:04.350 00:27:06.799 Samuel Roberts: Contact agent…

382 00:27:08.210 00:27:13.980 Samuel Roberts: Superbase, rag. And that’s the other… the other side of this is, if we wanted to live on there.

383 00:27:14.980 00:27:21.409 Samuel Roberts: On their, their infrastructure, do we need to move off Supabase? I don’t know that yet.

384 00:27:24.330 00:27:24.860 Mustafa Raja: No.

385 00:27:24.860 00:27:26.820 Samuel Roberts: B.

386 00:27:26.820 00:27:27.700 Mustafa Raja: Yeah.

387 00:27:28.300 00:27:34.870 Samuel Roberts: And then the… We won’t worry about the windmill stuff, but if we have to move, we might have to do the…

388 00:27:35.190 00:27:40.650 Samuel Roberts: Text to… do SQL…

389 00:27:43.970 00:27:49.590 Samuel Roberts: I’m not gonna worry about that yet. Let’s just worry about these three. So if we could build a little Mastra project…

390 00:27:49.750 00:27:51.770 Samuel Roberts: That does these 3 things.

391 00:27:52.180 00:27:52.970 Samuel Roberts: Right?

392 00:27:53.860 00:27:54.510 Casie Aviles: Yeah.

393 00:27:54.910 00:27:57.759 Samuel Roberts: hits the superbase we already have.

394 00:27:58.470 00:28:04.849 Samuel Roberts: hits the windmill we already have. We can pretty much replicate, like, 80% of what we need to do.

395 00:28:06.500 00:28:07.300 Samuel Roberts: Right.

396 00:28:07.300 00:28:08.620 Casie Aviles: Okay, yeah.

397 00:28:08.780 00:28:11.519 Samuel Roberts: Does that… am I… am I accurate there?

398 00:28:13.290 00:28:15.940 Casie Aviles: Yeah, yeah, I think that’s… that’s pretty much accurate.

399 00:28:16.410 00:28:17.070 Samuel Roberts: Okay.

400 00:28:17.530 00:28:21.380 Samuel Roberts: Okay, this is helpful for me, because I now have a much better understanding of what we gotta do here.

401 00:28:21.520 00:28:24.349 Samuel Roberts: Obviously, like, the feedback, well…

402 00:28:26.500 00:28:32.000 Samuel Roberts: Feedback, and oh, by the way… In this, say…

403 00:28:32.000 00:28:36.369 Casie Aviles: These can just be separate, route… routes.

404 00:28:37.260 00:28:39.469 Samuel Roberts: Set for first webhook, I’ll send it.

405 00:28:40.080 00:28:42.149 Samuel Roberts: Oops, can’t type today.

406 00:28:43.620 00:28:44.779 Samuel Roberts: First webhook.

407 00:28:45.170 00:28:47.980 Samuel Roberts: First… No, first webhook.

408 00:28:51.400 00:28:53.320 Samuel Roberts: Web Hook 1, I’ll say.

409 00:28:55.350 00:28:58.580 Samuel Roberts: Notebook 1… Next.

410 00:28:59.940 00:29:02.279 Samuel Roberts: to… 3. Okay.

411 00:29:03.660 00:29:06.200 Samuel Roberts: So, this is without us changing the…

412 00:29:07.020 00:29:10.349 Samuel Roberts: Google Chat app, which I think is probably fine for now.

413 00:29:12.100 00:29:18.049 Samuel Roberts: once we… Like, they’re… they’re… Excuse me, there could be a way where we…

414 00:29:18.650 00:29:23.220 Samuel Roberts: make the Google Chat more integrated, but I think…

415 00:29:24.780 00:29:26.329 Samuel Roberts: Well, actually, I don’t know that.

416 00:29:26.820 00:29:32.139 Samuel Roberts: How… Do you have the repo open still?

417 00:29:33.180 00:29:34.810 Casie Aviles: Okay, so this is…

418 00:29:35.260 00:29:40.470 Samuel Roberts: Python… That is running where exactly? Do we know.

419 00:29:40.470 00:29:42.849 Casie Aviles: Yeah, I can show you that.

420 00:29:43.120 00:29:43.800 Samuel Roberts: Okay, cool.

421 00:29:43.800 00:29:45.059 Mustafa Raja: I think it’s service functions.

422 00:29:47.800 00:29:53.319 Casie Aviles: So it’s, like, it’s using the Cloud Run function, which is also from Google.

423 00:29:53.320 00:29:54.060 Mustafa Raja: Yeah.

424 00:29:54.330 00:29:59.629 Samuel Roberts: Yes, okay, I figured it had to be some Google. I just… I don’t know GCP as well as I know

425 00:29:59.810 00:30:03.120 Samuel Roberts: Like, other things. I just don’t know the terminologies they use, but…

426 00:30:03.530 00:30:06.550 Samuel Roberts: Okay, so the Google Chat app here…

427 00:30:08.770 00:30:09.730 Samuel Roberts: Okay.

428 00:30:10.550 00:30:11.980 Casie Aviles: Here, yeah, we have…

429 00:30:11.980 00:30:12.730 Samuel Roberts: Okay, so that’s…

430 00:30:12.730 00:30:14.660 Casie Aviles: SQL endpoint URL.

431 00:30:15.270 00:30:16.010 Samuel Roberts: Okay.

432 00:30:17.890 00:30:18.470 Samuel Roberts: Okay.

433 00:30:18.500 00:30:22.810 Casie Aviles: And… It’s going… It has to be…

434 00:30:23.520 00:30:24.090 Samuel Roberts: Yeah.

435 00:30:26.080 00:30:27.000 Casie Aviles: Sorry.

436 00:30:28.080 00:30:28.700 Samuel Roberts: again.

437 00:30:30.240 00:30:31.490 Casie Aviles: During…

438 00:30:32.810 00:30:33.620 Samuel Roberts: Cloud run.

439 00:30:34.570 00:30:35.440 Samuel Roberts: Okay.

440 00:30:38.940 00:30:40.299 Casie Aviles: Yeah, it’s this one.

441 00:30:40.400 00:30:40.910 Casie Aviles: And…

442 00:30:40.910 00:30:42.200 Samuel Roberts: Got it. Okay.

443 00:30:42.200 00:30:45.969 Casie Aviles: That’s where we basically paste the code. This is where.

444 00:30:45.970 00:30:46.620 Samuel Roberts: Okay.

445 00:30:47.500 00:30:48.110 Casie Aviles: Yeah.

446 00:30:48.570 00:30:49.300 Casie Aviles: re-look.

447 00:30:49.300 00:30:49.980 Samuel Roberts: Cool, okay.

448 00:30:49.980 00:30:52.950 Casie Aviles: This is the URL that we’ve pasted.

449 00:30:53.870 00:30:54.650 Casie Aviles: Here.

450 00:30:55.290 00:30:59.660 Samuel Roberts: Got it. Okay, so we’re… Okay.

451 00:31:00.070 00:31:03.760 Samuel Roberts: I might need to draw a little bit more to understand this, but let me…

452 00:31:04.140 00:31:09.190 Samuel Roberts: Let me come down, maybe I’ll just do something here. Okay, so… Okay, so…

453 00:31:09.500 00:31:16.670 Samuel Roberts: A little higher level, then, I’m gonna do… We’ve got… so,

454 00:31:20.610 00:31:25.879 Samuel Roberts: Let’s see, we have… So start with the user, it’s fine.

455 00:31:26.730 00:31:34.690 Samuel Roberts: So the user… I’m gonna go kind of high level. So user hits the… Chat?

456 00:31:35.100 00:31:36.190 Samuel Roberts: Input.

457 00:31:36.810 00:31:37.710 Samuel Roberts: Right.

458 00:31:40.350 00:31:44.159 Samuel Roberts: Which hits that URL, basically? Is that how this works? Oops.

459 00:31:44.640 00:31:46.150 Casie Aviles: Yeah, that’s…

460 00:31:46.150 00:31:51.150 Samuel Roberts: So, the… it hits this… so the chat API

461 00:31:53.510 00:31:57.440 Samuel Roberts: API chat… we’ll just say chat API.

462 00:31:58.420 00:32:03.310 Samuel Roberts: calls, Cloud… function, right?

463 00:32:03.870 00:32:05.729 Samuel Roberts: Or chat API, we’ll say this.

464 00:32:06.090 00:32:08.109 Samuel Roberts: This is the calls cloud function.

465 00:32:09.440 00:32:15.550 Samuel Roberts: So I’m just making sure I understand the flow here, because this might affect… how we want… Cuz…

466 00:32:15.810 00:32:19.090 Samuel Roberts: If we’re gonna make use of the GCP stuff, do we want to…

467 00:32:20.620 00:32:24.789 Samuel Roberts: Cloud Function, is that what it just was? Or Cloud Run Function or something?

468 00:32:25.130 00:32:25.890 Casie Aviles: Yeah, yeah.

469 00:32:26.430 00:32:27.600 Casie Aviles: Cloud function.

470 00:32:27.600 00:32:28.380 Mustafa Raja: Hmm.

471 00:32:28.970 00:32:29.620 Samuel Roberts: Cloud Run.

472 00:32:29.620 00:32:30.960 Casie Aviles: Cloud Run function.

473 00:32:31.020 00:32:41.089 Mustafa Raja: Just making sure. I don’t know, like I said, I don’t remember their… Yeah, I’m also wondering if we really need the webhook so we can, you know, just do all the stuff in the…

474 00:32:41.930 00:32:43.670 Samuel Roberts: That’s kind of what I’m starting to wonder a little bit.

475 00:32:43.670 00:32:44.180 Mustafa Raja: Oh, no, no.

476 00:32:44.180 00:32:45.489 Samuel Roberts: The way we were mapping it out.

477 00:32:45.490 00:32:55.119 Mustafa Raja: Yeah, because, yeah, because, they have a pretty good… we can also pull a file structure in there, so it doesn’t have to be all in one file.

478 00:32:55.890 00:32:56.380 Samuel Roberts: Okay.

479 00:32:57.480 00:33:02.390 Samuel Roberts: Yeah, so this might mean we need to do a little more… Are UI configured?

480 00:33:03.210 00:33:09.740 Samuel Roberts: Python configured. Okay. So then this is what is actually hitting those three different…

481 00:33:12.400 00:33:14.909 Samuel Roberts: That’s what these guys are.

482 00:33:15.770 00:33:17.080 Samuel Roberts: Oh, whoa.

483 00:33:18.060 00:33:19.240 Samuel Roberts: Talk about that, and I’m.

484 00:33:19.240 00:33:20.780 Mustafa Raja: Not very good.

485 00:33:21.860 00:33:23.889 Casie Aviles: I think we have to disconnect them.

486 00:33:24.200 00:33:26.349 Samuel Roberts: Yeah, I’m just gonna copy these without the arrows.

487 00:33:27.260 00:33:28.940 Mustafa Raja: Oh, there you go.

488 00:33:30.200 00:33:34.129 Samuel Roberts: feedback. Oh, by the way, we’ll put those… we’ll just put them up on it.

489 00:33:34.460 00:33:35.990 Samuel Roberts: I need to worry about them again.

490 00:33:39.820 00:33:40.940 Casie Aviles: Yes, this is…

491 00:33:40.940 00:33:42.020 Samuel Roberts: And then…

492 00:33:42.020 00:33:42.650 Casie Aviles: I’ll get rid of.

493 00:33:42.650 00:33:47.909 Samuel Roberts: This is the main… Main, and the… well… Speaking of that.

494 00:33:49.080 00:33:52.350 Samuel Roberts: Keeping the same songs. This is the main…

495 00:33:55.770 00:33:58.410 Samuel Roberts: And the logic, say.

496 00:34:00.850 00:34:03.720 Samuel Roberts: So now, this is effectively what we currently have.

497 00:34:05.340 00:34:06.220 Samuel Roberts: Oops.

498 00:34:12.130 00:34:16.730 Samuel Roberts: Of course, that’s not there. Okay, so… This is Google Cloud.

499 00:34:17.960 00:34:25.270 Samuel Roberts: these are the webhooks, but do we want to still orchestrate it that way? That’s the question for this new part of the conversation.

500 00:34:28.150 00:34:36.900 Mustafa Raja: We could also, also add, or if you’re more comfortable in JavaScript, we could write… rewrite this in JS.

501 00:34:38.330 00:34:38.780 Samuel Roberts: Sure.

502 00:34:38.780 00:34:39.190 Mustafa Raja: I believe.

503 00:34:39.199 00:34:39.979 Samuel Roberts: Because, yeah, this is…

504 00:34:39.980 00:34:40.730 Mustafa Raja: functions…

505 00:34:40.750 00:34:43.999 Samuel Roberts: I’m sure, yeah, it’s probably just… that’s a good point.

506 00:34:44.199 00:34:45.440 Samuel Roberts: That is…

507 00:34:47.420 00:34:52.980 Samuel Roberts: If we’re gonna… I mean, that’s another question. I am inclined to stick with Monster because we’ve used it a few times now, and we’re…

508 00:34:53.750 00:34:56.119 Samuel Roberts: If we can do what we need. Yes.

509 00:34:56.120 00:34:59.989 Mustafa Raja: I would also want to, you know, stick with one… one frame.

510 00:34:59.990 00:35:00.910 Samuel Roberts: Yeah.

511 00:35:01.250 00:35:04.220 Samuel Roberts: But, again, like, if we don’t need to change this

512 00:35:04.420 00:35:09.610 Samuel Roberts: too much. I guess the question becomes… if… Where do we wanna, like…

513 00:35:10.580 00:35:13.010 Samuel Roberts: We can draw the line, like, here.

514 00:35:15.470 00:35:18.800 Samuel Roberts: Or we could draw the line here, right?

515 00:35:21.860 00:35:23.159 Samuel Roberts: Does that make sense?

516 00:35:24.650 00:35:25.520 Mustafa Raja: Yeah.

517 00:35:25.800 00:35:29.429 Mustafa Raja: So, I think, like, the two choices we have is that, and…

518 00:35:30.370 00:35:35.250 Samuel Roberts: Like, we could make it where we… Make that new.

519 00:35:37.250 00:35:38.619 Samuel Roberts: Or… oh, oops.

520 00:35:39.880 00:35:43.260 Samuel Roberts: Or we make… this news.

521 00:35:43.740 00:35:45.499 Samuel Roberts: We have two different entries.

522 00:35:46.390 00:35:53.610 Samuel Roberts: So I guess I don’t know enough about… how… the…

523 00:35:57.930 00:35:58.690 Samuel Roberts: Hmm.

524 00:36:00.390 00:36:02.139 Mustafa Raja: I’m more inclined towards this one.

525 00:36:02.660 00:36:10.460 Samuel Roberts: I think I am too, I just want to make sure we’re not adding any, you know, extra complexity that we don’t need. Like, if we have one entry point.

526 00:36:11.950 00:36:13.910 Samuel Roberts: We still need something that’s gonna…

527 00:36:14.450 00:36:21.020 Samuel Roberts: Can you, Slack that, I think up here.

528 00:36:22.530 00:36:30.899 Samuel Roberts: Is that the… what is it? Is this ABC Home Commercial? Okay, I just want to make sure. Just Slack me… yeah, Slack me this whole URL here. Or, not Slack,

529 00:36:31.050 00:36:34.110 Samuel Roberts: In Zoom, just so I can open it, because I want to see.

530 00:36:35.160 00:36:42.440 Samuel Roberts: Because this is basically… what am I seeing here? Actually, I’m seeing… okay, so there’s Flask. So we’re just basically setting up a web server here.

531 00:36:42.980 00:36:43.460 Casie Aviles: Yeah.

532 00:36:43.460 00:36:45.789 Mustafa Raja: We are not using Flask, actually.

533 00:36:46.430 00:36:46.840 Samuel Roberts: Oh, okay.

534 00:36:46.840 00:36:49.110 Mustafa Raja: We’re importing that, but not using it.

535 00:36:49.560 00:36:52.550 Samuel Roberts: Got it, okay, okay, so we’re just defining HTTP.

536 00:36:52.550 00:36:53.050 Mustafa Raja: influencers.

537 00:36:53.050 00:36:53.500 Samuel Roberts: Basically.

538 00:36:53.500 00:36:54.600 Mustafa Raja: Yeah.

539 00:36:54.760 00:36:58.380 Samuel Roberts: What is… is Functions Framework, is that, a Google thing, or…

540 00:36:58.770 00:36:59.790 Mustafa Raja: Yeah, Google.

541 00:37:00.210 00:37:03.099 Casie Aviles: It’s on Google. Yeah, that’s probably a Google thing.

542 00:37:04.120 00:37:04.780 Samuel Roberts: Okay.

543 00:37:05.510 00:37:09.910 Samuel Roberts: Okay, so that’s… this is… okay, I’m starting to understand this a little bit more now. So, this…

544 00:37:10.290 00:37:19.689 Samuel Roberts: If we go back to… This, the chat… UI, the chat API…

545 00:37:19.850 00:37:22.730 Samuel Roberts: No, hold on, which part was it? Was it…

546 00:37:23.570 00:37:27.159 Samuel Roberts: Oh, okay, so we’re including Function Framework, Google Cloud. Okay, cool.

547 00:37:27.410 00:37:31.179 Samuel Roberts: So go back to… yeah, I think it’s this one.

548 00:37:34.170 00:37:35.050 Samuel Roberts: Oh.

549 00:37:35.050 00:37:40.209 Casie Aviles: Never mind. Go, I’m sorry, then go back to… not the cloud run, I want to see the chat.

550 00:37:40.300 00:37:49.820 Samuel Roberts: UI where we set this URL. Yeah, okay, cool. This one? So, yeah, I’m just trying to see. So, specify deployment for your chat app. Okay, okay. I understand this now.

551 00:37:51.130 00:37:53.629 Samuel Roberts: So, this is the chat app.

552 00:37:55.480 00:37:57.680 Casie Aviles: Yeah, I believe we can replace this.

553 00:37:57.890 00:37:59.790 Samuel Roberts: That can be any URL.

554 00:37:59.950 00:38:02.309 Casie Aviles: Yeah, I’ve tried it with windmill once.

555 00:38:03.090 00:38:03.820 Samuel Roberts: Okay.

556 00:38:04.970 00:38:08.889 Samuel Roberts: So really, what we need to figure out, if we jump back to…

557 00:38:11.290 00:38:16.700 Samuel Roberts: Yeah, we’re gonna wanna say… so I think we probably want to do this, then.

558 00:38:19.810 00:38:26.950 Samuel Roberts: if we can… if we’re just gonna build our own chat app, I don’t think it makes sense to have a separate function calling 3 other webhooks.

559 00:38:28.850 00:38:38.990 Samuel Roberts: I think… What we probably want to do… is… Have our own, like, router… So basically, instead of,

560 00:38:40.710 00:38:43.220 Samuel Roberts: Instead of… Yeah…

561 00:38:45.200 00:38:53.209 Samuel Roberts: Right, like, this chat, can you, go back to… sorry, one sec. Yeah, go back to there and click on the documentation real quick here.

562 00:38:53.330 00:38:56.599 Samuel Roberts: You might know this already, but, like, are those just specific…

563 00:38:57.260 00:39:00.549 Samuel Roberts: functions that get called? Are they HTTP?

564 00:39:03.020 00:39:04.670 Samuel Roberts: Keep scrolling down a little bit.

565 00:39:06.260 00:39:14.590 Samuel Roberts: HTTP, okay, blah blah blah blah blah, PubSub, okay, never mind. Well, maybe the test interactive features, yeah.

566 00:39:16.570 00:39:17.430 Samuel Roberts: Is that…

567 00:39:21.190 00:39:27.489 Samuel Roberts: chat owner, blah blah blah, okay, add trusted test, that’s not what we’re looking for. Okay, I guess what I’m trying to understand is…

568 00:39:27.830 00:39:32.959 Samuel Roberts: When we go… to… Like, this is handle chat.

569 00:39:34.300 00:39:40.560 Samuel Roberts: Is… is that… that’s still, like, a function we need to declare, or where is this… Is this…

570 00:39:40.560 00:39:43.420 Mustafa Raja: No, function entry point is handled chat, right?

571 00:39:45.490 00:39:51.849 Samuel Roberts: So this is Functions Frame Rigation GP. So, this URL, right?

572 00:39:51.970 00:39:57.059 Samuel Roberts: If we go to this… slash… Handle chat.

573 00:39:57.210 00:39:59.040 Samuel Roberts: It’s basically calling this function.

574 00:40:01.640 00:40:03.499 Casie Aviles: Oh, yeah, yeah, I think, yeah.

575 00:40:03.500 00:40:12.019 Samuel Roberts: Is that what it’s doing here? I… this is where my limited understanding of, like, functions framework is going to show through, because I think all of those probably have that at the top, right?

576 00:40:12.920 00:40:13.340 Casie Aviles: Yeah.

577 00:40:13.340 00:40:18.380 Samuel Roberts: If it’s a… if it’s passing in a… request, right?

578 00:40:19.980 00:40:20.880 Samuel Roberts: Okay.

579 00:40:21.570 00:40:23.790 Samuel Roberts: So yeah, we could, if we’re gonna go…

580 00:40:24.240 00:40:28.360 Samuel Roberts: Where were the other ones? So, this is handling… as this handles the chat.

581 00:40:28.730 00:40:30.100 Samuel Roberts: Okay.

582 00:40:30.840 00:40:34.049 Samuel Roberts: Does that handle all of the ones, and it just calls the other functions?

583 00:40:36.660 00:40:41.239 Casie Aviles: This one handles, like, incoming… Yeah, I don’.

584 00:40:41.240 00:40:44.929 Samuel Roberts: So that’s then sending a message. Where’s the feedback, I guess?

585 00:40:45.370 00:40:48.099 Casie Aviles: For feedback… let’s see…

586 00:40:48.100 00:40:51.629 Mustafa Raja: I think HandleChat has, has a case

587 00:40:52.040 00:40:55.769 Mustafa Raja: So the switch, and that switch has… A lot of feedback.

588 00:40:55.770 00:40:56.490 Samuel Roberts: Okay, where’s…

589 00:40:56.490 00:40:56.960 Mustafa Raja: Oh, fantastic.

590 00:40:56.960 00:41:00.020 Samuel Roberts: That’s what I’m wondering. Okay, so that’s the one entry point into this…

591 00:41:01.470 00:41:04.400 Samuel Roberts: Right, so log… where’s log feedback get called?

592 00:41:04.530 00:41:06.340 Samuel Roberts: Can you do a search for just that?

593 00:41:10.740 00:41:13.260 Samuel Roberts: I guess I could open the repo, but… yeah.

594 00:41:15.000 00:41:16.710 Samuel Roberts: Is it getting called anywhere?

595 00:41:18.260 00:41:18.580 Casie Aviles: here.

596 00:41:18.580 00:41:23.880 Samuel Roberts: Yeah, okay, so that… okay, so this is where it is. So, it is just that… Okay.

597 00:41:24.280 00:41:28.070 Samuel Roberts: So it’s just one… One entry that gets split up.

598 00:41:28.340 00:41:30.130 Samuel Roberts: Action functions. Okay.

599 00:41:30.430 00:41:39.639 Samuel Roberts: Action function is coming from… action, function, action.get. Okay, so this is all just the Google Chat API, basically.

600 00:41:39.640 00:41:40.620 Casie Aviles: Yes, yes.

601 00:41:40.620 00:41:45.109 Samuel Roberts: And we’re just filtering through different actions, but it really is all… scroll up a tiny bit.

602 00:41:46.350 00:41:48.400 Samuel Roberts: Everything is coming into Handle Chat.

603 00:41:48.840 00:41:49.520 Casie Aviles: Hmm.

604 00:41:50.020 00:41:59.679 Samuel Roberts: And event type added, removed, message, card clicked, what type of action? Okay, I see now, thank you, okay. So yeah, I think if we’re gonna re…

605 00:42:01.050 00:42:05.360 Samuel Roberts: if we’re gonna re-architect it.

606 00:42:08.970 00:42:12.740 Samuel Roberts: I don’t know if it makes sense to do the separate webhooks, because that’s just going to add latency, right?

607 00:42:14.440 00:42:15.330 Casie Aviles: Yeah.

608 00:42:15.860 00:42:18.900 Samuel Roberts: So, maybe we just do want to build a new…

609 00:42:19.380 00:42:27.940 Samuel Roberts: a new URL here, whether that’s on Cloud Run or wherever it would be on… Okay.

610 00:42:31.990 00:42:34.520 Samuel Roberts: Do you guys have any thoughts about that? Go back to…

611 00:42:34.520 00:42:40.000 Mustafa Raja: Yeah, I’m just looking if Cloud Run could, you know, take in an ODAP.

612 00:42:41.870 00:42:42.779 Mustafa Raja: As a whole.

613 00:42:42.780 00:42:45.079 Samuel Roberts: Yeah, good point, okay.

614 00:42:45.280 00:42:50.500 Samuel Roberts: I mean, even if not, I think we could… well, yeah, I don’t know, I don’t… Cloud Run…

615 00:42:50.740 00:42:53.480 Samuel Roberts: Cloud Run is, like, serverless, effectively, right?

616 00:42:54.540 00:42:55.130 Casie Aviles: Yes.

617 00:42:56.660 00:42:58.830 Casie Aviles: I believe, yeah, it’s serverless.

618 00:42:59.200 00:42:59.910 Samuel Roberts: Yeah.

619 00:43:00.300 00:43:07.580 Mustafa Raja: Yeah, I’m just wondering, because… from my, from my experience.

620 00:43:07.920 00:43:18.890 Mustafa Raja: It’s annoying sometimes, because, we… I’d have to make changes in the Cloud Function, and then would have to test within the Cloud Function, and it takes time to deploy.

621 00:43:19.520 00:43:28.189 Mustafa Raja: So… so that is why I’m wondering if I could, you know, build… build… build in local, and then just deploy.

622 00:43:28.780 00:43:29.479 Mustafa Raja: So that you’ll.

623 00:43:29.480 00:43:34.240 Samuel Roberts: point. That’s a good point. Okay, well, let’s… let’s think about that then, real quick.

624 00:43:34.520 00:43:40.990 Samuel Roberts: There’s definitely a benefit 2… s…

625 00:43:41.400 00:43:45.500 Samuel Roberts: some benefit, let me… hold on, I lost my… I lost Figma.

626 00:43:45.670 00:43:53.540 Samuel Roberts: So… there’s… This is gonna be…

627 00:43:54.550 00:43:57.930 Samuel Roberts: Handle chat, right? Is that what it was?

628 00:44:00.450 00:44:02.889 Samuel Roberts: Yeah. Handle information. Okay.

629 00:44:03.140 00:44:08.539 Samuel Roberts: Okay, cool. I’m just trying to, like I said, my understanding here, I’m just trying to map it out as I get it.

630 00:44:11.020 00:44:16.210 Samuel Roberts: So the question becomes, If we just leave this alone.

631 00:44:20.630 00:44:24.589 Samuel Roberts: we can still do the webhooks here. So I honestly, at the end of the day right now.

632 00:44:25.010 00:44:30.880 Samuel Roberts: All we want to start doing is building This box here, right?

633 00:44:30.880 00:44:32.860 Casie Aviles: Yeah, this is the most important one.

634 00:44:32.860 00:44:36.840 Samuel Roberts: Exactly. So, some of these decisions can be… can come later down the road.

635 00:44:36.990 00:44:37.500 Mustafa Raja: Oh, yeah.

636 00:44:37.500 00:44:38.550 Samuel Roberts: Question is…

637 00:44:39.870 00:44:45.639 Samuel Roberts: this is gonna be Mastra, how could we deploy it? So we’re thinking about that ahead of time, right?

638 00:44:47.330 00:44:50.430 Samuel Roberts: So… Yeah, good idea.

639 00:44:51.510 00:44:52.260 Samuel Roberts: Okay.

640 00:44:53.380 00:44:59.530 Samuel Roberts: So, I think… From a…

641 00:45:00.030 00:45:02.560 Samuel Roberts: Like, putting the migration plan together.

642 00:45:03.190 00:45:10.509 Samuel Roberts: we basically want to say, like, this is the plan right now, is to replicate all of the Andy agents.

643 00:45:10.780 00:45:15.839 Samuel Roberts: Sub-agents, whatever you want to call them, into a master project, right?

644 00:45:17.010 00:45:21.729 Samuel Roberts: Things to be determined is basically what architecture here?

645 00:45:23.130 00:45:28.670 Samuel Roberts: But, that’s not a critical decision yet, right?

646 00:45:29.320 00:45:34.329 Samuel Roberts: at the very… at the very basic, we just want to get a Mostra…

647 00:45:34.760 00:45:38.139 Samuel Roberts: Agent, workflow, tool, setup, whatever that is.

648 00:45:38.560 00:45:41.269 Samuel Roberts: That can… that we can just say, like.

649 00:45:41.560 00:45:46.640 Samuel Roberts: you know, if we go into the Mastra, web UI,

650 00:45:46.840 00:45:55.430 Samuel Roberts: We can just… we can make these requests that WIS would be making, whether it’s here or here, you know, whatever boundary that is.

651 00:45:57.170 00:46:02.650 Samuel Roberts: So I think that’s the biggest first step. If we can do that and demonstrate that that’s… you know.

652 00:46:02.880 00:46:05.849 Samuel Roberts: working, and,

653 00:46:10.210 00:46:13.580 Samuel Roberts: And then it’s… fast enough.

654 00:46:15.650 00:46:18.209 Samuel Roberts: I think outside, let’s see, okay, so…

655 00:46:18.460 00:46:21.730 Samuel Roberts: I’m gonna make a quick little post-it here, just for my purposes here.

656 00:46:21.970 00:46:26.430 Samuel Roberts: Okay, so then now we have outstanding questions, or, no, that’ll be another thing.

657 00:46:31.050 00:46:46.850 Samuel Roberts: architecture, overall… Mark, we also want to say… Cloud Run… Function and Mastra… Right?

658 00:46:47.050 00:46:49.060 Samuel Roberts: But… decision.

659 00:46:50.840 00:46:58.270 Samuel Roberts: start… Mastra… Replication of me and Andy.

660 00:47:01.000 00:47:04.040 Samuel Roberts: Yes, yes, good point, the logging and everything, too.

661 00:47:04.260 00:47:08.729 Casie Aviles: Yeah, I believe that’s also critical, since they’re looking at the dashboard.

662 00:47:09.150 00:47:13.380 Samuel Roberts: Yeah, so we definitely want that, that goes in here too, yeah, cool.

663 00:47:14.080 00:47:17.039 Samuel Roberts: And then that’s also gonna be… up here, yes.

664 00:47:19.050 00:47:21.230 Samuel Roberts: Oh, yeah, okay, we can fix that.

665 00:47:23.350 00:47:27.339 Samuel Roberts: Oops, we can do this here…

666 00:47:28.110 00:47:35.750 Samuel Roberts: Yeah. So the logging, I think, should be pretty easy once we get the rest of that, like, main Andy logic done.

667 00:47:35.940 00:47:40.900 Samuel Roberts: Especially, like, for our testing purposes, this is definitely 1, 2, right?

668 00:47:41.070 00:47:41.760 Casie Aviles: Hmm.

669 00:47:42.300 00:47:48.460 Samuel Roberts: And then… depending on if we decide to go Section 1, Section 2,

670 00:47:48.600 00:47:51.580 Samuel Roberts: Will depend on how we want to deploy it.

671 00:47:52.660 00:48:00.840 Samuel Roberts: But functionally, what we need… what we need to do is main Andy logic needs to become… You know.

672 00:48:01.200 00:48:03.500 Samuel Roberts: This, this, this…

673 00:48:03.910 00:48:09.200 Samuel Roberts: And we’ll continue to use this as is, but that might be something we need to tweak in the future for now, right?

674 00:48:09.520 00:48:11.979 Casie Aviles: Yeah, the only one that…

675 00:48:12.220 00:48:15.050 Casie Aviles: We’ll probably change this also this.

676 00:48:15.300 00:48:17.669 Casie Aviles: Part, the vector part.

677 00:48:18.470 00:48:25.300 Samuel Roberts: Yes, that’s what this whole box is going to be us replicating the Supabase rag query?

678 00:48:26.190 00:48:31.600 Samuel Roberts: But the underlying database is gonna be the same. So actually, this is really just… this.

679 00:48:32.920 00:48:39.550 Mustafa Raja: We also have to, replicate the, embedding pipeline.

680 00:48:40.880 00:48:42.910 Mustafa Raja: Which is right underneath this.

681 00:48:43.950 00:48:45.230 Samuel Roberts: This one over here.

682 00:48:45.700 00:48:47.180 Casie Aviles: Or, what’s the…

683 00:48:48.050 00:48:49.240 Samuel Roberts: That’s this guy?

684 00:48:52.990 00:48:54.940 Mustafa Raja: Yes, this might.

685 00:48:55.410 00:48:57.850 Casie Aviles: Oh, you mean, like, how we keep it in sync?

686 00:48:58.610 00:48:59.440 Samuel Roberts: I thought we’re stopping…

687 00:48:59.440 00:49:00.660 Mustafa Raja: Yes, the sink.

688 00:49:04.230 00:49:04.920 Samuel Roberts: Okay.

689 00:49:05.080 00:49:07.350 Samuel Roberts: Good point.

690 00:49:10.500 00:49:13.590 Samuel Roberts: What is the current process for that? Is that all in N8N?

691 00:49:14.210 00:49:15.000 Casie Aviles: Yeah.

692 00:49:15.690 00:49:18.030 Mustafa Raja: Yes, all of that.

693 00:49:18.030 00:49:21.180 Samuel Roberts: slow as that, can you… Show me that, and then.

694 00:49:21.180 00:49:21.750 Mustafa Raja: Let me…

695 00:49:21.750 00:49:22.340 Samuel Roberts: It’s at least from.

696 00:49:22.340 00:49:22.809 Mustafa Raja: Good.

697 00:49:22.810 00:49:23.899 Samuel Roberts: to there, yeah.

698 00:49:25.380 00:49:30.390 Mustafa Raja: Me tag, or, A moment, please.

699 00:49:34.270 00:49:38.560 Samuel Roberts: Okay. Are we keeping that in sync? I thought they were gonna stop using the central dog.

700 00:49:40.860 00:49:44.009 Mustafa Raja: Oh, no, we have, we, we have, we have those, yeah.

701 00:49:46.640 00:49:48.790 Mustafa Raja: I’ve added the link in…

702 00:49:48.970 00:49:49.900 Casie Aviles: Okay, okay.

703 00:49:59.150 00:50:01.649 Samuel Roberts: Cool, okay, so what do we got? Oh, so these are the… okay.

704 00:50:02.390 00:50:07.800 Samuel Roberts: Interesting. Okay, so these are triggered by Google Drive file updates.

705 00:50:13.220 00:50:14.240 Samuel Roberts: Okay.

706 00:50:18.470 00:50:20.660 Samuel Roberts: These are… which,

707 00:50:22.760 00:50:27.969 Samuel Roberts: Google polls every minute to see if there’s a change. Is that all it’s doing here? Okay.

708 00:50:32.870 00:50:35.249 Samuel Roberts: Do they all just poll? Is that how these work?

709 00:50:35.880 00:50:42.519 Samuel Roberts: I’m gonna say… Okay, so let me go back to Figma now.

710 00:50:43.850 00:50:45.430 Samuel Roberts: Now that I understand that, okay.

711 00:50:45.430 00:50:48.850 Mustafa Raja: Yeah, the figment diagram has a good explanation of…

712 00:50:49.770 00:50:53.260 Samuel Roberts: Okay, so this is the, like, Andy logic, right?

713 00:50:53.980 00:51:00.920 Samuel Roberts: Wrap this whole thing… And say, like, Andy… aren’t.

714 00:51:01.720 00:51:03.130 Samuel Roberts: Should we swoop?

715 00:51:04.900 00:51:05.770 Samuel Roberts: Okay.

716 00:51:06.120 00:51:10.490 Samuel Roberts: We also then need to do… is this the only other piece, then, or am I missing something else?

717 00:51:10.490 00:51:13.640 Mustafa Raja: Yes, this should be the only other piece.

718 00:51:13.640 00:51:17.869 Samuel Roberts: Okay, so, have we had any errors with that?

719 00:51:19.510 00:51:20.250 Mustafa Raja: this…

720 00:51:21.110 00:51:22.619 Samuel Roberts: Yeah, or does that work relatively?

721 00:51:23.740 00:51:41.179 Mustafa Raja: Yeah, this works relatively well. There’s a bug within an attend. What happens is, sometimes if we make change, to this workflow, and try and save it,

722 00:51:41.420 00:51:55.739 Mustafa Raja: it just wouldn’t save, and, we’ll have an error that there’s some problem, and what we can do is, we can duplicate this, and that will work. So this is an issue with…

723 00:51:55.940 00:51:57.480 Mustafa Raja: anything.

724 00:51:58.170 00:51:58.840 Samuel Roberts: Okay.

725 00:51:59.160 00:51:59.880 Samuel Roberts: Okay, so…

726 00:51:59.880 00:52:04.599 Mustafa Raja: There must be some node within an attendant that is causing that issue.

727 00:52:04.600 00:52:06.370 Samuel Roberts: Yes. Okay.

728 00:52:07.270 00:52:18.970 Samuel Roberts: Alright, so let’s… let’s, in the next 10 minutes, real quickly talk that through. So this… this is… this is kind of the… where we’re at for overall Andy, and I think we can make some tickets on, like, building out

729 00:52:19.790 00:52:25.760 Samuel Roberts: Starting to architect, or starting to lay out the… Main Andy logic.

730 00:52:25.910 00:52:30.190 Samuel Roberts: So then the other piece we’re going to have now is, if we want to replicate that.

731 00:52:31.960 00:52:35.180 Samuel Roberts: Okay, cool, try a template, I don’t need a template, what did I just…

732 00:52:38.960 00:52:45.300 Samuel Roberts: What is this? Icebreakers. I don’t want templates. Leave me a template. Okay, so, central dock…

733 00:52:46.870 00:52:51.609 Samuel Roberts: ingestion pipeline… Or,

734 00:52:52.190 00:52:57.960 Samuel Roberts: Diagram. No, I don’t want diagram, I want to say, let’s… okay, hold on, let me actually read what is here before I start drawing things.

735 00:52:58.080 00:53:02.359 Samuel Roberts: So the central doc triggers… so this is polling, it said, right?

736 00:53:04.120 00:53:07.259 Samuel Roberts: Fetches the raw content from the doc in JSON.

737 00:53:07.540 00:53:17.660 Samuel Roberts: Converts it into sections… Fetches the dock we have stored… Two-way sink table… okay.

738 00:53:18.530 00:53:24.789 Samuel Roberts: Calculate diff with existing content in the table, centralized table. Create an insert, delete, and update events. Wow, okay.

739 00:53:29.690 00:53:30.510 Samuel Roberts: Okay.

740 00:53:31.000 00:53:40.130 Samuel Roberts: I see. And then… the N8N, I see Pest, Mechanical, Home Improvement, and… manual embedding.

741 00:53:40.760 00:53:42.800 Samuel Roberts: Is that all of them, or…

742 00:53:45.430 00:53:48.300 Mustafa Raja: Yeah, we have a lawn.

743 00:53:48.760 00:53:57.560 Mustafa Raja: No, no, no, that was… yeah, there was a long one. I separated it because whenever I would make changes in this.

744 00:53:57.560 00:53:58.580 Samuel Roberts: Got it, okay, okay.

745 00:53:58.580 00:54:06.389 Mustafa Raja: specific error that I mentioned to you would happen, so… Got it. I said, I can’t bother with that, so…

746 00:54:06.390 00:54:14.810 Samuel Roberts: No, no, you’re good, you’re good, I understand that. Okay, so I’m just gonna add a quick note here, although I don’t know why I’m making everything so big now, but, so…

747 00:54:15.710 00:54:20.090 Samuel Roberts: Pipeline for… What did I say, pest?

748 00:54:21.670 00:54:25.269 Samuel Roberts: Mechanical, lawn, and what was the last one?

749 00:54:26.840 00:54:31.460 Mustafa Raja: Commercial and then… home improvement, yeah. Commercial and home improvement.

750 00:54:32.420 00:54:35.140 Samuel Roberts: Commercial, and then home improvement, separately? Oh.

751 00:54:35.140 00:54:36.939 Mustafa Raja: Yeah, yeah, separately, yeah.

752 00:54:39.800 00:54:43.630 Samuel Roberts: Okay, cool. So… These are basically…

753 00:54:45.330 00:54:48.640 Samuel Roberts: 5 different docs that were syncing to 5 different tables.

754 00:54:49.410 00:54:54.219 Mustafa Raja: Yeah, there’s also a coverage doc that is… that has a pretty same logic.

755 00:54:54.580 00:54:55.819 Mustafa Raja: Coverage talk.

756 00:54:56.340 00:55:00.760 Mustafa Raja: That, the coverage of… That’s right, is a high-level view, yeah.

757 00:55:01.210 00:55:02.919 Samuel Roberts: That’s right, we talked about that, okay.

758 00:55:03.440 00:55:10.609 Samuel Roberts: So… I think we can make a plan for how this might look.

759 00:55:13.840 00:55:18.030 Samuel Roberts: The nice thing is that NAN does the polling for us for Google.

760 00:55:18.690 00:55:19.070 Mustafa Raja: Yeah.

761 00:55:19.560 00:55:21.799 Mustafa Raja: That’s what we’ll be going to miss a lot.

762 00:55:22.430 00:55:26.519 Samuel Roberts: Yeah, but we can… we can… we can do that.

763 00:55:27.240 00:55:32.480 Samuel Roberts: So, let me just look… I’m looking in the… I should probably share my screen, too, but I’m looking at the,

764 00:55:33.630 00:55:41.699 Samuel Roberts: the syncing pipeline. So it triggers… I’m just gonna follow this to see what, like, special NADN stuff is here, basically, right?

765 00:55:43.800 00:55:50.150 Samuel Roberts: Nothing here, look, like, the agents is the thing we have to, like… duplicate, right?

766 00:55:50.640 00:55:55.620 Samuel Roberts: But this is just, like, basic if… get the Google Doc.

767 00:55:56.340 00:56:02.859 Samuel Roberts: Format the document, merge… okay. This is just pretty… this is gonna be basically…

768 00:56:03.330 00:56:05.369 Samuel Roberts: A pretty standard function, right?

769 00:56:05.920 00:56:06.660 Mustafa Raja: Yeah, yeah.

770 00:56:06.920 00:56:07.619 Mustafa Raja: Yeah, I agree.

771 00:56:07.620 00:56:14.270 Samuel Roberts: I think AI going on here, it’s just the only thing that’s gonna be the real… The real…

772 00:56:15.390 00:56:21.140 Samuel Roberts: meat is the triggering, right? So we’re probably gonna… either…

773 00:56:21.600 00:56:27.720 Samuel Roberts: I mean, I assume if this is the Google Drive trigger on Pest I’m opening up, and it says that it’s polling every minute.

774 00:56:28.960 00:56:29.510 Mustafa Raja: Yeah.

775 00:56:29.510 00:56:31.310 Samuel Roberts: So it just… it just checks…

776 00:56:32.970 00:56:37.110 Samuel Roberts: that file, and watches for the file updated, okay.

777 00:56:37.810 00:56:40.459 Samuel Roberts: So that’s the only thing we’re gonna have to really figure out, I think.

778 00:56:42.020 00:56:43.709 Samuel Roberts: What is the best way to trigger that?

779 00:56:44.930 00:56:45.770 Mustafa Raja: Yeah.

780 00:56:45.770 00:56:47.480 Samuel Roberts: But that’s… that’s not crazy.

781 00:56:49.080 00:56:50.560 Mustafa Raja: Yes, I agree.

782 00:56:50.560 00:56:52.249 Samuel Roberts: I just don’t know. I don’t know.

783 00:56:52.250 00:56:53.679 Mustafa Raja: You know, we could just have…

784 00:56:54.510 00:56:55.260 Samuel Roberts: Go ahead.

785 00:56:55.460 00:57:04.019 Mustafa Raja: Yeah, we could… we could just make… make some scheduler triggers or something, because we… we said that we don’t need to have it real time, right?

786 00:57:04.230 00:57:06.849 Mustafa Raja: We could have sort of SLA?

787 00:57:07.010 00:57:11.470 Samuel Roberts: Sure, yeah, so all we need to do is build the function that does this, and then we figure out how to trigger it.

788 00:57:11.910 00:57:12.880 Samuel Roberts: Periodically.

789 00:57:12.880 00:57:13.990 Mustafa Raja: Yeah. Whatever.

790 00:57:14.570 00:57:19.580 Samuel Roberts: Okay, that’s… that’s… okay, that’s… okay, that’s not crazy, then. And you…

791 00:57:19.580 00:57:21.790 Mustafa Raja: There’s one piece… Both of you. One piece here.

792 00:57:22.560 00:57:24.179 Samuel Roberts: Sorry, one sec.

793 00:57:24.180 00:57:25.150 Mustafa Raja: this piece.

794 00:57:25.380 00:57:26.950 Mustafa Raja: If we come to this piece…

795 00:57:27.620 00:57:29.700 Samuel Roberts: Where, where are you? There we go, okay.

796 00:57:29.700 00:57:32.680 Mustafa Raja: on Figma in the pipeline, so… Yeah, I see.

797 00:57:32.680 00:57:33.320 Samuel Roberts: You know?

798 00:57:33.320 00:57:45.949 Mustafa Raja: We need, we need the… we need to, you know, embed, also. Because, currently this webhook in Service is pointing to N10, so we need to replace this webhook, too.

799 00:57:47.920 00:57:50.610 Samuel Roberts: Oh, I see. So, at the end of these…

800 00:57:50.950 00:57:54.190 Samuel Roberts: it goes to Supabase and updates the rows.

801 00:57:55.180 00:58:14.300 Mustafa Raja: Yeah, we have two tables, actually. One… one documents that are the actual embeddings, and one, two-way central doc, two-way sync, that is… that is making… that does make sure that, the document, the Google Doc, and whatever we have in Superbase is in sync. It’s actually exactly the same.

802 00:58:16.420 00:58:17.700 Samuel Roberts: Okay.

803 00:58:17.700 00:58:20.179 Mustafa Raja: Does that make sense? Does that make sense?

804 00:58:20.750 00:58:22.590 Samuel Roberts: Mostly, I think.

805 00:58:23.170 00:58:27.310 Samuel Roberts: So, there’s the central… dock two-way sync.

806 00:58:28.180 00:58:37.620 Mustafa Raja: Yeah, this, this, this section really is just, the way we, the way GitHub calculates, the comment diff, you know?

807 00:58:37.620 00:58:38.910 Samuel Roberts: Yep. Okay.

808 00:58:39.800 00:58:45.220 Mustafa Raja: And then we stored that state in Central Dock, two-way sync table.

809 00:58:45.220 00:58:48.500 Samuel Roberts: Got it. Okay, yep. And then, based on these events.

810 00:58:48.500 00:58:55.619 Mustafa Raja: We just create the… So this, this firebook takes care of whatever happens. Next.

811 00:58:55.620 00:58:58.400 Samuel Roberts: Okay, so where is that happening in…

812 00:58:58.900 00:59:00.800 Mustafa Raja: Oh, that’s…

813 00:59:00.800 00:59:01.380 Samuel Roberts: see it.

814 00:59:01.550 00:59:06.490 Samuel Roberts: I see the logic here. Okay. So calculate diff happens, and then…

815 00:59:06.520 00:59:08.770 Mustafa Raja: Oh, one more thing, just before…

816 00:59:08.770 00:59:09.150 Samuel Roberts: Yeah, sure.

817 00:59:09.210 00:59:12.960 Mustafa Raja: Do we want to have this as complex?

818 00:59:13.070 00:59:19.209 Mustafa Raja: I mean… Does this make sense for us to make this pipeline this complex?

819 00:59:19.840 00:59:25.819 Samuel Roberts: I… I don’t know the answer to that. I was just kind of wondering that myself. Like, how big are these central docks?

820 00:59:26.130 00:59:27.800 Samuel Roberts: That we’re diffing.

821 00:59:29.180 00:59:30.019 Samuel Roberts: Like, we’re dipping it so we’re not.

822 00:59:30.020 00:59:38.759 Mustafa Raja: 300-400 pages, I think, the central docs range about 150 pages to 300 or 400 pages.

823 00:59:39.010 00:59:40.290 Mustafa Raja: Okay.

824 00:59:40.290 00:59:42.970 Samuel Roberts: We don’t want to redo the whole embedding, I think.

825 00:59:43.430 00:59:50.140 Mustafa Raja: Yeah, yeah, that was the… that was the point. I didn’t want to, you know, delete all of the embeddings and then redo all of the embeddings.

826 00:59:51.380 00:59:53.229 Samuel Roberts: Yeah, I think that’s.

827 00:59:53.230 00:59:56.969 Mustafa Raja: That is why this calculate diff, was created.

828 00:59:57.520 01:00:01.620 Samuel Roberts: Okay, I’m gonna say CSO’s gonna make updates to the central clock.

829 01:00:02.390 01:00:08.059 Casie Aviles: Yeah, I mean, if we are… Scheduling it in…

830 01:00:08.770 01:00:11.749 Casie Aviles: Oh, yeah, that’s going to be the…

831 01:00:12.270 01:00:17.750 Casie Aviles: I mean, we could do, like, an overwrite of everything, but… to make it simpler, but…

832 01:00:17.970 01:00:20.130 Casie Aviles: Yeah, I don’t know. That might be.

833 01:00:20.130 01:00:22.700 Samuel Roberts: Yeah, I understand what you’re saying. I don’t…

834 01:00:22.830 01:00:30.489 Samuel Roberts: I imagine it’s just way more, or I don’t know how much more expensive to run all that, but I imagine it’s… that’s that many pages, it’s a lot of tokens to… Yeah.

835 01:00:30.580 01:00:32.950 Casie Aviles: That’s the only issue there.

836 01:00:33.650 01:00:34.830 Samuel Roberts: Yeah. Okay.

837 01:00:37.980 01:00:43.859 Mustafa Raja: Yeah, this is make sure if there’s no changes, then we don’t, you know, do any embeddings at all.

838 01:00:44.380 01:00:46.239 Samuel Roberts: Okay, I’m gonna say then…

839 01:00:47.070 01:00:53.919 Samuel Roberts: as we’re putting this, as we’re thinking about this, that, like, this is the first priority, and this is the sub-first priority down.

840 01:00:54.440 01:00:55.330 Samuel Roberts: Down here.

841 01:00:56.540 01:00:58.299 Mustafa Raja: This is the first second.

842 01:00:58.800 01:01:04.700 Samuel Roberts: this is then gonna be… we’ll have to make a plan to do that, but I’m less worried about it right now.

843 01:01:04.830 01:01:09.219 Samuel Roberts: than the actual, like, Andy logic that we know is, like, breaking and queuing and stuff.

844 01:01:09.220 01:01:09.630 Casie Aviles: Yep.

845 01:01:09.630 01:01:10.630 Samuel Roberts: So I’m gonna say…

846 01:01:10.630 01:01:13.250 Casie Aviles: Right? We can keep this in any tent for now.

847 01:01:13.250 01:01:13.880 Samuel Roberts: Alright.

848 01:01:13.890 01:01:14.570 Mustafa Raja: Yeah, yeah.

849 01:01:14.570 01:01:20.109 Samuel Roberts: we’ll make a plan as part… so, like, basically what I’m saying is, as part of the,

850 01:01:21.700 01:01:24.209 Samuel Roberts: As part of the, like, migration plan.

851 01:01:24.350 01:01:28.130 Samuel Roberts: We’ll say, like, this is how we’re gonna start,

852 01:01:28.930 01:01:34.700 Samuel Roberts: We’re gonna say we need to determine these, you know, between this and this.

853 01:01:35.010 01:01:39.369 Samuel Roberts: And we also need to make the plan, which isn’t crazy, I think. I think you’re right, like, it’s… it’s…

854 01:01:39.730 01:01:45.050 Samuel Roberts: it’s pretty… Clear in the N8N.

855 01:01:45.650 01:01:46.390 Samuel Roberts: This is how it goes.

856 01:01:46.390 01:01:56.699 Mustafa Raja: Also, also, I think that rather than what we have right now in it, and each central dock has its own trigger, there’s no need for that. We could have worked on.

857 01:01:56.700 01:02:01.200 Samuel Roberts: No, no, we could probably make this one big function. Yes, and just pull all of them. Yeah, I think so.

858 01:02:01.360 01:02:04.920 Samuel Roberts: But I’m less worried about that than I am, like, getting the Andy Logic and starting to test.

859 01:02:04.920 01:02:05.630 Mustafa Raja: Yes.

860 01:02:05.830 01:02:07.609 Mustafa Raja: Okay. That’s right.

861 01:02:08.580 01:02:13.610 Samuel Roberts: Okay, cool. I’m gonna say then, I think that’s good. I would say,

862 01:02:14.320 01:02:16.360 Samuel Roberts: Casey, if you’re good to, like.

863 01:02:17.140 01:02:22.510 Samuel Roberts: either take this meeting and, like, that output in the transcript and something and add some of this to the plan.

864 01:02:22.710 01:02:23.340 Casie Aviles: Yes, definitely.

865 01:02:23.340 01:02:27.399 Samuel Roberts: Answering some of those high-level questions as well.

866 01:02:28.210 01:02:32.730 Samuel Roberts: And then the outstanding questions are also something to highlight.

867 01:02:33.370 01:02:34.130 Samuel Roberts: Okay.

868 01:02:35.750 01:02:36.729 Casie Aviles: So, like.

869 01:02:36.730 01:02:44.739 Samuel Roberts: We’ll explain, you know, the first pass is gonna be the main ANDI logic, we need to determine how exactly we’re hosting it, which way we’re gonna do it.

870 01:02:44.990 01:02:46.930 Samuel Roberts: We need to…

871 01:02:48.790 01:02:55.679 Samuel Roberts: also then do the ingestion pipeline and migrate that over. That’s probably just another cloud function that gets triggered on a…

872 01:02:57.350 01:03:02.210 Samuel Roberts: schedule of some sort, whether that’s every minute or every few hours or something, but… okay.

873 01:03:02.760 01:03:04.270 Samuel Roberts: Overnight, maybe, I don’t know.

874 01:03:04.520 01:03:13.819 Samuel Roberts: Okay, I think that’s good for now. I think then we want to begin trying to do the main ANDI logic, which, again, is those three pieces.

875 01:03:14.530 01:03:18.720 Samuel Roberts: The routing, the contacts, the superbase rag, and then calling the windmill.

876 01:03:20.950 01:03:22.650 Samuel Roberts: So,

877 01:03:23.390 01:03:30.450 Samuel Roberts: I don’t know exactly where we want to go with that, who wants to… I would say let’s type up that document first, and then we can work from there.

878 01:03:30.760 01:03:32.780 Casie Aviles: Yeah, I’ll take the transcript.

879 01:03:33.470 01:03:34.010 Samuel Roberts: Okay, perfect.

880 01:03:34.010 01:03:34.860 Mustafa Raja: Huh.

881 01:03:35.990 01:03:37.989 Casie Aviles: And then I’ll let you guys know.

882 01:03:38.690 01:03:43.939 Samuel Roberts: Okay, great. And then, yeah, we can reconvene later, or over Slack, and just divvy it up a little bit.

883 01:03:45.600 01:03:46.270 Samuel Roberts: Alright.

884 01:03:46.270 01:03:47.240 Casie Aviles: Okay, yes.

885 01:03:48.940 01:03:51.520 Samuel Roberts: Sounds good. Thank you guys, this was productive.

886 01:03:52.200 01:03:53.230 Mustafa Raja: This was very nice.

887 01:03:53.670 01:03:58.989 Samuel Roberts: Yeah, I have a much better understanding of everything now myself, which I think is good to move forward, so thank you.

888 01:03:59.980 01:04:00.920 Mustafa Raja: Thank you.

889 01:04:00.920 01:04:02.370 Casie Aviles: Okay, thank you guys.

890 01:04:02.370 01:04:03.939 Samuel Roberts: Talk to y’all later. Bye.

891 01:04:03.940 01:04:04.790 Mustafa Raja: Bye.