Meeting Title: Discussing JSON Schemas and Zoom Integration Date: 2025-06-18 Meeting participants: Casie Aviles, Mustafa Raja


WEBVTT

1 00:00:30.600 00:00:31.949 Mustafa Raja: Hey! How are you?

2 00:00:33.680 00:00:36.025 Casie Aviles: Hey? Yeah. Doing good. How about you?

3 00:00:37.080 00:00:42.400 Mustafa Raja: Yeah, doing good. So have you worked with Json schemas and structured outputs?

4 00:00:44.523 00:00:51.099 Casie Aviles: Yeah, I mean, only for slack block get, builder, if that’s what we’re talking about. I can quickly show you.

5 00:00:52.060 00:00:54.030 Casie Aviles: Is this what you mean? Like?

6 00:00:54.860 00:01:01.170 Mustafa Raja: Yeah, slack slacks. Block builder. Is one thing we can do that also.

7 00:01:01.660 00:01:08.550 Mustafa Raja: But for that. But but for that, we need to create. What’s it called a proper

8 00:01:09.442 00:01:10.987 Mustafa Raja: Jason schema

9 00:01:12.810 00:01:18.040 Mustafa Raja: Let me show you she’s so long Schema.

10 00:01:31.410 00:01:32.650 Mustafa Raja: who knows?

11 00:01:34.870 00:01:37.039 Mustafa Raja: Let me share my screen.

12 00:01:37.640 00:01:38.690 Casie Aviles: Yeah. Sure. Go ahead.

13 00:01:45.380 00:01:46.310 Mustafa Raja: Can you see.

14 00:01:47.390 00:01:50.380 Casie Aviles: It’s loading. Okay, yeah, I can see it now.

15 00:01:50.920 00:01:51.620 Mustafa Raja: And

16 00:01:54.160 00:02:08.619 Mustafa Raja: okay. So so what what the Jason schema schema does is that it? It actually forces our Llm to give output in the format that we need.

17 00:02:10.389 00:02:14.600 Mustafa Raja: 1. 1 good example would be this.

18 00:02:16.460 00:02:18.020 Casie Aviles: Oh, you mean on N. 8 N.

19 00:02:18.340 00:02:24.040 Mustafa Raja: Yeah. So I I have this auto fixing output parser. And beneath that I have structured output.

20 00:02:24.770 00:02:26.330 Mustafa Raja: And this is the schema.

21 00:02:27.350 00:02:44.949 Mustafa Raja: And you see that I have an enum over here in the task. So what the what this does is it forces the Llm. To in the task field it, it would only display one of these values in the enums.

22 00:02:45.940 00:02:47.070 Casie Aviles: Okay. Yeah.

23 00:02:47.070 00:02:54.710 Mustafa Raja: Okay? So what we can do is we can. Let’s let’s come back to the thing.

24 00:02:57.830 00:02:59.379 Mustafa Raja: Let’s go over here.

25 00:03:01.830 00:03:09.289 Mustafa Raja: This one. Okay? So we see that the we see that this is a structure right? We have a title over here, and then we have

26 00:03:09.930 00:03:20.870 Mustafa Raja: what’s it called introduction introductory paragraph, and then we can then these would be headings. So so I feel I feel we can lay this thing out.

27 00:03:20.980 00:03:25.039 Mustafa Raja: And in this in this, even in this.

28 00:03:26.000 00:03:32.969 Mustafa Raja: What’s it called this paragraph? We have a title, and then we have the description, and then we have the ticket.

29 00:03:33.130 00:03:39.410 Mustafa Raja: I believe I believe we can lay this. Lay this whole thing out in a Json schema

30 00:03:40.735 00:03:43.229 Mustafa Raja: and the Llm. Will be forced

31 00:03:43.510 00:03:50.820 Mustafa Raja: to give output in the same format that we want, and we can then parse it

32 00:03:53.440 00:03:57.339 Mustafa Raja: to send it to slack. What do you think.

33 00:03:58.530 00:04:00.467 Casie Aviles: Okay, yeah, I mean, we could do that.

34 00:04:00.710 00:04:03.839 Mustafa Raja: Yeah. Do you think? Do you think this would be a solid approach or not?

35 00:04:05.850 00:04:13.869 Casie Aviles: Personally, I I haven’t really tried it, but I think, you know, if we define like a structure generally, that would be a good idea.

36 00:04:13.870 00:04:25.270 Mustafa Raja: Really, yeah, it really depends on how good we how good we lay lay this schema out. All of it depends on this schema.

37 00:04:26.990 00:04:30.119 Casie Aviles: I see. Yeah, I haven’t tried this approach yet.

38 00:04:30.120 00:04:39.499 Mustafa Raja: Yeah, yeah, yeah, I feel, I feel, I feel this is pretty solid. It just really depends on how how good we can lay this out.

39 00:04:40.790 00:04:41.530 Casie Aviles: Okay?

40 00:04:41.680 00:04:42.760 Casie Aviles: Yeah. Why not?

41 00:04:43.360 00:04:55.169 Mustafa Raja: Yeah, this this will be this. I feel I feel personally, this will be pretty solid. I actually wanted to do this for these, but I didn’t have the time to.

42 00:04:56.360 00:04:57.579 Casie Aviles: I see? Yeah.

43 00:04:57.580 00:05:05.329 Mustafa Raja: So you’re already working on this. So maybe maybe if you test it, we’ll see if this is any good or not.

44 00:05:06.430 00:05:08.799 Casie Aviles: Okay. But yeah, this will blow up the ticket.

45 00:05:09.060 00:05:12.040 Casie Aviles: So maybe I’ll I’ll this will be a separate ticket, I guess.

46 00:05:12.040 00:05:14.669 Mustafa Raja: Yeah, yeah, this, this will take a lot of time.

47 00:05:14.960 00:05:16.040 Casie Aviles: Yeah, so.

48 00:05:16.040 00:05:22.590 Mustafa Raja: Because the schema this, this building, the schema and the system prompt

49 00:05:23.268 00:05:26.620 Mustafa Raja: to have this working, will take some time.

50 00:05:27.363 00:05:31.919 Casie Aviles: Yeah, so for now, just, I’ll just complete this. Regex thing that, I have.

51 00:05:31.920 00:05:33.099 Mustafa Raja: Yeah, yeah, yeah.

52 00:05:33.100 00:05:37.250 Casie Aviles: We can, I guess. Yeah, we can have a new ticket for this.

53 00:05:37.680 00:05:43.219 Mustafa Raja: Yeah, yeah. Only if we feel that this is a good approach, I’ll I’ll.

54 00:05:43.220 00:05:44.129 Casie Aviles: No, no, it’s fine!

55 00:05:44.130 00:05:45.090 Mustafa Raja: Leave it.

56 00:05:45.510 00:05:50.249 Casie Aviles: I I’m just, you know. Yeah, I just haven’t tried it. So it’s fine.

57 00:05:50.250 00:05:51.100 Mustafa Raja: Yeah, okay.

58 00:05:51.390 00:05:52.646 Casie Aviles: We can try this.

59 00:05:52.960 00:05:59.079 Mustafa Raja: Yeah, yeah, okay, okay, just wanted to. I just wanted to discuss this.

60 00:05:59.550 00:06:00.080 Casie Aviles: Okay.

61 00:06:00.080 00:06:03.220 Mustafa Raja: Oh, one more thing, one more thing, one more thing, actually.

62 00:06:04.060 00:06:06.100 Mustafa Raja: So I have this ticket.

63 00:06:07.960 00:06:09.739 Mustafa Raja: Let me go over here.

64 00:06:12.457 00:06:13.381 Mustafa Raja: Yeah, this one

65 00:06:15.120 00:06:21.700 Mustafa Raja: Can you point me where we are where we are? Deciding the name for the Zoom Meeting? I believe it should be in the

66 00:06:22.930 00:06:25.110 Mustafa Raja: zoom summarizer thing right.

67 00:06:27.313 00:06:30.130 Casie Aviles: For deciding the the name.

68 00:06:30.230 00:06:38.890 Casie Aviles: Well, what we do is we are just getting it from Zoom directly. So we’re not really creating the name we’re not editing.

69 00:06:38.890 00:06:39.840 Mustafa Raja: Hello!

70 00:06:40.010 00:06:48.310 Casie Aviles: So what we need to do, I guess, is to modify the workflow, which is the Zoom Meeting. Yeah, Zoom Meeting summarizer. Yes.

71 00:06:48.880 00:06:53.539 Mustafa Raja: Oh, okay, I thought, I thought, we are already doing this some somewhere.

72 00:06:53.960 00:06:58.100 Casie Aviles: No, no, it’s just the default name, so that.

73 00:06:58.100 00:07:01.570 Mustafa Raja: Zoom gives us that zoom gives us right.

74 00:07:02.030 00:07:06.289 Casie Aviles: Yes, yes, yes. Sorry. This this workplace really big, but.

75 00:07:06.290 00:07:15.910 Mustafa Raja: Oh, yeah, yeah, I I saw it the other day also. This is this, I feel this is pretty good, actually, because, you know, after all, it’s it’s working pretty good.

76 00:07:15.910 00:07:18.110 Casie Aviles: Yeah, but but it’s a little confusing. And I.

77 00:07:18.110 00:07:18.630 Mustafa Raja: Yeah.

78 00:07:18.630 00:07:20.329 Casie Aviles: Document this very well, but.

79 00:07:20.330 00:07:20.900 Mustafa Raja: I know.

80 00:07:20.900 00:07:21.540 Casie Aviles: Okay.

81 00:07:21.810 00:07:27.879 Mustafa Raja: No, I I actually read this the other day. I I have a pretty good idea of how this is laid out.

82 00:07:28.100 00:07:28.840 Casie Aviles: Okay.

83 00:07:29.510 00:07:33.901 Casie Aviles: So I so, but but there’s here’s another thing.

84 00:07:35.270 00:07:54.460 Casie Aviles: there’s I have. The only thing I’m considering. I’m worrying about this. We the logic to insert it to super base. It’s not. It’s a different one. It’s on windmill. So if we modify it here, it’s going to change the slack message, but not the the name in the super base record. So that’s another

85 00:07:55.420 00:07:56.250 Casie Aviles: problem.

86 00:07:56.380 00:07:58.630 Casie Aviles: So it’s not very. It’s not very clean.

87 00:08:00.070 00:08:02.459 Mustafa Raja: Can I have access to windmill.

88 00:08:02.810 00:08:08.959 Casie Aviles: Yeah, you you should have access already. We use just one email. Can you.

89 00:08:08.960 00:08:10.720 Mustafa Raja: That in one.

90 00:08:11.150 00:08:14.260 Casie Aviles: Yeah, you’re one pass. If you have the.

91 00:08:14.920 00:08:21.019 Mustafa Raja: Let me call this, it should be in my one pass.

92 00:08:22.120 00:08:29.575 Casie Aviles: Yeah, we can quickly set it up right now, if you if so, you you don’t need to worry about it anymore.

93 00:08:30.220 00:08:35.410 Casie Aviles: yeah windmill dot dev I mean here. No, no. Sorry. Sorry. I mean, if you’re gonna search for it.

94 00:08:36.669 00:08:41.820 Casie Aviles: Go to windmill dot dev yeah, that one.

95 00:08:42.880 00:08:48.609 Casie Aviles: Oh, no, that’s the I think it should be app dot windmill dot dev for the actual app. Yeah.

96 00:08:52.890 00:08:54.400 Casie Aviles: that yeah, that one.

97 00:09:01.270 00:09:04.429 Casie Aviles: Yeah. So I could also show you how it works.

98 00:09:04.906 00:09:06.810 Mustafa Raja: And then I’ll okay.

99 00:09:08.124 00:09:14.340 Casie Aviles: And then for the one pass it should be utam at brain for try brain forge.

100 00:09:16.580 00:09:19.019 Mustafa Raja: Do I have to add another account here?

101 00:09:19.950 00:09:23.580 Casie Aviles: I? Yeah, I think you you should add another account.

102 00:09:26.070 00:09:32.249 Casie Aviles: Wait, let me 5, 15, one of us.

103 00:09:34.980 00:09:35.520 Mustafa Raja: English.

104 00:09:35.930 00:09:37.190 Casie Aviles: Yeah, yeah, that one.

105 00:10:00.770 00:10:04.819 Casie Aviles: Okay, and just go to brain for ji.

106 00:10:08.090 00:10:09.349 Mustafa Raja: Why should I save it?

107 00:10:09.594 00:10:11.060 Casie Aviles: Up to you up to you.

108 00:10:14.510 00:10:15.930 Mustafa Raja: Okay, I’m doing for gi.

109 00:10:16.430 00:10:22.330 Casie Aviles: Yes, and even the scripts are confusing, but

110 00:10:22.530 00:10:27.810 Casie Aviles: we have this it should be in the aws s 3 export.

111 00:10:28.650 00:10:33.440 Casie Aviles: That’s where we? That. I think that’s where we can.

112 00:10:34.220 00:10:38.490 Casie Aviles: That’s where I send. That’s what I sent to any 10 basically, from Zoom.

113 00:10:38.490 00:10:44.680 Mustafa Raja: That is what you sent to edit, and this is what triggers the edit, and what’s it called the web hook.

114 00:10:45.160 00:10:46.580 Casie Aviles: Yes, yes, yes.

115 00:10:47.680 00:10:51.930 Mustafa Raja: So there’s so we need a way to update the name over here right.

116 00:10:53.680 00:11:01.840 Casie Aviles: Yeah, that. But the problem is we need to have like an AI step, I guess, in that code.

117 00:11:02.366 00:11:03.710 Casie Aviles: Probably not the cleanest.

118 00:11:03.710 00:11:06.420 Mustafa Raja: Zoom 3 W. 6 port. Is this one? Right?

119 00:11:06.940 00:11:07.750 Casie Aviles: Yeah.

120 00:11:08.967 00:11:10.699 Mustafa Raja: And how do we access this code.

121 00:11:11.030 00:11:13.899 Casie Aviles: Yes, click, edit, you should be able to see the code.

122 00:11:13.900 00:11:14.670 Mustafa Raja: This one.

123 00:11:19.600 00:11:29.220 Mustafa Raja: Okay, so so this is, this is our zoom file in the s 3.

124 00:11:30.260 00:11:33.079 Casie Aviles: E let me see s 3.

125 00:11:33.080 00:11:37.040 Mustafa Raja: Initializes 3 client, and then we are getting the superb agent.

126 00:11:37.534 00:11:42.890 Casie Aviles: Yes, yes, this this uploads to S. 3, and then this also uploads to super base.

127 00:11:43.850 00:11:50.270 Mustafa Raja: This includes 2 s. 3, and this also includes 2 super base super base buckets supervise.

128 00:11:50.950 00:11:53.409 Casie Aviles: The the table, the table.

129 00:11:54.970 00:12:01.790 Mustafa Raja: Okay? And then I’ll be updating the table in the name for for the file right in the anytime.

130 00:12:02.500 00:12:03.570 Casie Aviles: Yeah.

131 00:12:03.900 00:12:07.179 Mustafa Raja: And then we need somehow, we need a way to somehow

132 00:12:07.380 00:12:11.939 Mustafa Raja: update the S 3 name, do we really need to update the name in S 3.

133 00:12:14.660 00:12:17.979 Casie Aviles: I mean, if we, if we need to update like.

134 00:12:18.550 00:12:24.510 Casie Aviles: for example it should be the same name all throughout right, because it will be confusing

135 00:12:24.610 00:12:30.010 Casie Aviles: if the name is different on S. 3, and then it’s different on super base.

136 00:12:30.200 00:12:30.960 Casie Aviles: Yeah.

137 00:12:31.780 00:12:36.339 Mustafa Raja: Yeah. And how? How are we putting it into the S. 3.

138 00:12:38.192 00:12:40.170 Casie Aviles: Yeah, it’s also here in this code.

139 00:12:40.570 00:12:42.929 Mustafa Raja: Okay. So only here in this code.

140 00:12:45.000 00:12:46.960 Casie Aviles: I’m sorry this might. This might.

141 00:12:46.960 00:12:49.279 Mustafa Raja: No, no, this is good enough. This is good enough.

142 00:12:50.190 00:12:53.059 Casie Aviles: I mean I I could take the the ticket.

143 00:12:53.230 00:12:58.740 Mustafa Raja: No, no, I’ll do that. I’ll do this. I love it.

144 00:12:58.980 00:12:59.700 Mustafa Raja: Okay. If it.

145 00:12:59.700 00:13:00.840 Casie Aviles: Challenges.

146 00:13:00.840 00:13:02.269 Casie Aviles: Yeah, if you don’t mind if that’s.

147 00:13:02.270 00:13:03.649 Mustafa Raja: Yeah, I don’t. Because if.

148 00:13:04.190 00:13:10.439 Casie Aviles: Because there’s like a Yes, sir, there’s a super base step at the bottom. That’s where I insert.

149 00:13:11.430 00:13:12.000 Casie Aviles: So it.

150 00:13:12.000 00:13:12.320 Mustafa Raja: That’s the

151 00:13:13.437 00:13:18.320 Mustafa Raja: but I want to see where we okay, this, this is the S. 3 bucket sub folder.

152 00:13:20.320 00:13:28.940 Mustafa Raja: bucket, name, base folder meeting topic. This is what we need to update like.

153 00:13:28.940 00:13:36.769 Casie Aviles: Yeah, yeah, before it’s called meeting topic. And before we, before we send it to S. 3 before we send it to super base and to N, 8 n.

154 00:13:37.100 00:13:38.750 Casie Aviles: the name should be updated.

155 00:13:39.300 00:13:41.810 Casie Aviles: So this is where I would change it. Yeah.

156 00:13:42.070 00:13:48.630 Mustafa Raja: Yeah, because later on we need to change the name of the folder, which which is quite tricky.

157 00:13:49.660 00:13:54.210 Casie Aviles: Yeah, that would be difficult. So before we even.

158 00:13:54.210 00:13:57.840 Mustafa Raja: So how? How? How is this? How? How is this being triggered?

159 00:13:59.122 00:14:01.937 Mustafa Raja: There’s another. There’s another script that’s triggering it.

160 00:14:02.290 00:14:04.599 Mustafa Raja: There! Where is that script?

161 00:14:04.600 00:14:08.340 Casie Aviles: That’s called Zoom Event subscription.

162 00:14:08.860 00:14:13.580 Mustafa Raja: So when subscription, this is what we really oh.

163 00:14:14.610 00:14:18.900 Casie Aviles: So this is what zoom is. This is what listens to zoom. Events.

164 00:14:20.930 00:14:25.684 Mustafa Raja: Okay, so the I’ll just add a what’s it called?

165 00:14:26.740 00:14:32.190 Mustafa Raja: Why do I forget things? I’ll just add the AI AI step over here to get the name.

166 00:14:32.350 00:14:34.039 Mustafa Raja: and that should be difficult.

167 00:14:35.810 00:14:37.559 Casie Aviles: Hmm, yeah, we could do that.

168 00:14:38.860 00:14:44.710 Casie Aviles: So ideally, we want to change the name based on the transcript.

169 00:14:45.070 00:14:48.999 Mustafa Raja: Yeah, do we have the transcript by by this.

170 00:14:49.210 00:14:52.979 Casie Aviles: No, we don’t have the transcript here. The transcript is.

171 00:14:53.607 00:14:58.669 Casie Aviles: we access the transcript in the, in the, in the 1st script that we have

172 00:14:58.910 00:15:00.840 Casie Aviles: in the zoom. Aws!

173 00:15:01.110 00:15:07.640 Mustafa Raja: Export and the zoom is giving us a transcript right? Or are we generating a transcription.

174 00:15:08.080 00:15:11.000 Casie Aviles: No, no, we zoom get gives us that transcript.

175 00:15:11.000 00:15:14.399 Mustafa Raja: So, so we should be able to also access it over here. No.

176 00:15:15.430 00:15:23.189 Casie Aviles: You should. Yeah, it should be possible. But I already have the logic or the code in the other script, but it’s up to you. You can. You can

177 00:15:23.310 00:15:27.379 Casie Aviles: put it here as well if you, if that’s make that makes it easier for you.

178 00:15:29.820 00:15:33.241 Mustafa Raja: The other, the other thing would be

179 00:15:35.000 00:15:43.050 Mustafa Raja: okay, I have these. I’ll I’ll look into and ha! I’ll look into these ones, and if I need you, I’ll I’ll let you know.

180 00:15:43.650 00:15:45.110 Casie Aviles: Yeah. Sure. Sure. Sure. No. Problem.

181 00:15:45.620 00:15:47.150 Mustafa Raja: Thank you so much for this.

182 00:15:47.840 00:15:53.030 Casie Aviles: Okay, yeah, just yeah. I guess you could also use just AI to help explain it.

183 00:15:53.450 00:15:55.609 Mustafa Raja: Yeah, yeah, that, too.

184 00:15:56.210 00:15:57.030 Casie Aviles: Okay.

185 00:15:57.420 00:15:58.200 Mustafa Raja: Okay.

186 00:15:59.320 00:15:59.740 Casie Aviles: Bye, bye.

187 00:15:59.740 00:16:00.410 Mustafa Raja: Okay. Bye-bye.