Meeting Title: Zoom Meeting Date: 2025-10-21 Meeting participants: Robert Tseng, Zoran Selinger


WEBVTT

1 00:00:12.730 00:00:14.050 Robert Tseng: Hey, Zoran.

2 00:00:14.050 00:00:14.930 Zoran Selinger: Hi, Robert.

3 00:00:15.940 00:00:18.370 Robert Tseng: Sorry, for the late call.

4 00:00:19.800 00:00:23.520 Zoran Selinger: I’m working on something either way for you, though.

5 00:00:23.520 00:00:24.160 Robert Tseng: Okay.

6 00:00:24.300 00:00:33.099 Robert Tseng: Oh, you are already working on something for Eden. Okay. Yeah, I mean, I kind of know the gist of, like, the catalyst situation, and, like, kind of the different pieces. I…

7 00:00:33.100 00:00:36.380 Zoran Selinger: I know you worked on something to support him. I guess, you know.

8 00:00:36.950 00:00:44.940 Robert Tseng: Yeah, you wanna just share what you do know, and then, yeah, I’m basically gonna go and look through the PRs, figure out where he left off on.

9 00:00:45.040 00:01:04.579 Robert Tseng: I think it’s just a… I feel like it’s just a data model that he was, like, not getting right. I think he was still missing some of the… the fields… the field values were not coming out correctly, so I probably just have to fix some SQL, but, like, that’s what I think the extent is. Like, I don’t think it’s that big of a deal. I just want to know if there’s anything else that I’m not, you know, seeing.

10 00:01:05.450 00:01:16.799 Zoran Selinger: Yeah, so… so my context is, okay, we… we needed, you know, a trigger and a place where we can update the order status, right?

11 00:01:16.800 00:01:17.430 Robert Tseng: Yep.

12 00:01:17.430 00:01:24.119 Zoran Selinger: We decided that the… that the correct way to do it is the destination function in segment.

13 00:01:24.300 00:01:24.870 Robert Tseng: Yep.

14 00:01:25.130 00:01:37.089 Zoran Selinger: That’s… that’s what’s there. Now, I did not fully understand, the newest request for it, so the order ID that we have in the segment

15 00:01:37.250 00:01:39.960 Zoran Selinger: Looks like it isn’t enough.

16 00:01:40.420 00:01:53.149 Zoran Selinger: Or it’s not the right order ID that we were sending to that destination function. So we needed another one, right? So, I was trying to explain to Henry that

17 00:01:53.490 00:01:59.560 Zoran Selinger: The order ID that we need, it needs to be in segment, inside segment, because that.

18 00:01:59.560 00:01:59.950 Robert Tseng: Yep.

19 00:01:59.950 00:02:19.620 Zoran Selinger: what triggers the destination function. So that was the tweak that we wanted to make yesterday. Okay. And that’s it. That’s where… where, kind of, I left it. I left it there. He went away and tried to figure out… I’m not sure where he left off.

20 00:02:19.640 00:02:26.370 Zoran Selinger: So the order ID that you see, if you go to segment, and just load, like, an example event.

21 00:02:26.420 00:02:35.940 Zoran Selinger: you will see… you will see that, like, the data order ID is, you know, a different one, and we need something else in there.

22 00:02:37.490 00:02:41.359 Robert Tseng: Got it. Yeah, so I’m… I’m there, I’m in segment right now.

23 00:02:42.270 00:02:48.640 Robert Tseng: Yeah, obviously the order up isn’t… this shouldn’t just come from order updated.

24 00:02:48.900 00:02:56.400 Zoran Selinger: If you can, you can… if you want, you can share your screen, and I can… Okay. I can show you what I mean, basically. Yep.

25 00:02:56.920 00:02:59.369 Zoran Selinger: If you go to,

26 00:03:00.430 00:03:04.080 Zoran Selinger: Or just look at how the event looks like.

27 00:03:04.400 00:03:09.440 Zoran Selinger: Yeah, so, mask order update, that’s the one. So, destination…

28 00:03:10.270 00:03:14.159 Zoran Selinger: If we go to destinations, there should be a function there somewhere. Can we go into the.

29 00:03:14.160 00:03:16.819 Robert Tseng: Oh, yeah, okay, sure, we can go to destinations.

30 00:03:27.880 00:03:30.230 Robert Tseng: This would be for…

31 00:03:33.920 00:03:38.170 Robert Tseng: Simply… I’m not…

32 00:03:38.170 00:03:41.860 Zoran Selinger: 100% sure where that’s… It’s in…

33 00:03:47.420 00:03:51.739 Zoran Selinger: a quick Google, the estimation functions…

34 00:03:53.460 00:04:00.210 Robert Tseng: Order updated synced history… Needed.

35 00:04:01.090 00:04:04.240 Zoran Selinger: Actually, it goes to Connections Catalog.

36 00:04:05.240 00:04:06.300 Robert Tseng: Okay.

37 00:04:07.440 00:04:08.089 Zoran Selinger: You know?

38 00:04:10.300 00:04:11.600 Robert Tseng: And then under…

39 00:04:12.110 00:04:12.950 Zoran Selinger: Yep.

40 00:04:14.480 00:04:16.019 Robert Tseng: I think these are… these are, like, the…

41 00:04:16.029 00:04:17.789 Zoran Selinger: Yeah, that’s to create, right?

42 00:04:17.790 00:04:19.989 Robert Tseng: There’s his credit rate, yeah, so probably not.

43 00:04:19.990 00:04:21.500 Zoran Selinger: So where do I find them?

44 00:04:21.899 00:04:23.749 Zoran Selinger: Once they are created.

45 00:04:24.080 00:04:35.900 Robert Tseng: Yeah, it should be here, and I was looking… if it goes… let’s be going to BigQuery, and then we’re sending it from segment… pull the segment, sending it from BigQuery, into…

46 00:04:36.670 00:04:39.670 Robert Tseng: Do we have a… do we have a new custom destination set up somewhere?

47 00:04:39.670 00:04:49.879 Zoran Selinger: It’s, it is created, so it needs to trigger on the on track of the Basque order update event.

48 00:04:53.440 00:04:55.970 Robert Tseng: Well, I don’t know if I can look at the,

49 00:04:56.240 00:05:02.570 Robert Tseng: Sync history, so, like, give me… Sample orders.

50 00:05:06.780 00:05:09.069 Robert Tseng: Do you know what the property’s called, or…

51 00:05:09.740 00:05:16.140 Zoran Selinger: So, the property that we are using inside that function is just order ID.

52 00:05:16.600 00:05:17.260 Robert Tseng: Yeah.

53 00:05:17.890 00:05:23.860 Zoran Selinger: But that’s that other format that Carolis is not using, right?

54 00:05:23.860 00:05:24.290 Robert Tseng: Correct.

55 00:05:24.330 00:05:28.969 Zoran Selinger: I think that’s the final issue that we have here.

56 00:05:30.040 00:05:35.190 Robert Tseng: Yeah, I… Should we see something about…

57 00:05:35.190 00:05:43.090 Zoran Selinger: So, I don’t know if we… if we’re going to need to… tweak the GTM as well.

58 00:05:43.290 00:05:44.240 Robert Tseng: Okay.

59 00:05:44.250 00:05:47.990 Zoran Selinger: Here, which is actually what I’m doing with Ryan.

60 00:05:55.600 00:06:02.109 Robert Tseng: Yeah, because Cutter was saying, like, something was, like, not working, we were, like, sending some, like, bad data.

61 00:06:04.090 00:06:13.709 Zoran Selinger: Yeah, so, super, yeah, Orion is, wanted to update, the, the catalyst, tag, and that’s what I, what I’ve just did.

62 00:06:13.970 00:06:22.230 Zoran Selinger: But essentially, there is a field in GTM, so in the, in the, in the catalyst.

63 00:06:24.030 00:06:27.670 Zoran Selinger: tag that is called… I’m going to tell you exactly.

64 00:06:31.860 00:06:36.340 Zoran Selinger: It is called… order alias.

65 00:06:38.330 00:06:43.699 Zoran Selinger: So that is basically, as far as I understand, this is kind of alternative order ID.

66 00:06:43.990 00:06:47.499 Robert Tseng: Right, we had to set up, yeah, we had to send an order alias to Catalyst, yeah.

67 00:06:47.500 00:06:52.629 Zoran Selinger: Yes, order alias is what… this is the Basque’s order ID.

68 00:06:53.060 00:06:54.080 Robert Tseng: Okay.

69 00:06:55.870 00:07:03.290 Zoran Selinger: Because, yeah, this sits in the event model in the data layer, and that is actually BASC data.

70 00:07:03.680 00:07:04.130 Robert Tseng: Yeah.

71 00:07:04.130 00:07:11.770 Zoran Selinger: model houses the BASC data. So, basically, yes, event alias is equal to BASC order ID.

72 00:07:13.460 00:07:15.729 Zoran Selinger: Okay. And,

73 00:07:16.020 00:07:31.159 Zoran Selinger: Yeah, and the orders starting with PI underscore are the other, you know, transaction ID format that we have. You see that the order IDs that you have here, they’re not Basque order IDs.

74 00:07:31.160 00:07:32.020 Robert Tseng: Correct.

75 00:07:32.020 00:07:32.740 Zoran Selinger: Yeah.

76 00:07:33.950 00:07:44.189 Robert Tseng: Okay, so, I mean, I remember… I was on the… I was on the catalyst call on Friday. They told us we need to create an order alias, and we needed to send Basque order ID through it. So, that’s… that’s basically what we were working on.

77 00:07:45.300 00:07:47.059 Robert Tseng: Okay, and .

78 00:07:47.060 00:07:51.090 Zoran Selinger: Oh, yeah, Saran tried, I just, I just, did it.

79 00:07:51.420 00:07:57.550 Zoran Selinger: I still see a few tweaks that we should make to the tag, and I’m trying to get him.

80 00:07:57.820 00:08:03.220 Zoran Selinger: But I’ll do as much as I can, and just leave it with him.

81 00:08:03.770 00:08:08.980 Zoran Selinger: In any case, we are going to now trigger it correctly, and

82 00:08:09.370 00:08:12.229 Zoran Selinger: Orders will come in with the alias.

83 00:08:15.040 00:08:15.660 Robert Tseng: Okay.

84 00:08:15.810 00:08:16.380 Zoran Selinger: Yeah.

85 00:08:16.810 00:08:22.509 Zoran Selinger: In… into Catalyst. But now, when we’re updating the order.

86 00:08:23.220 00:08:28.590 Zoran Selinger: That also needs to have the… the best quarter ID.

87 00:08:31.510 00:08:44.749 Zoran Selinger: And when we look at… when we look at the segment, and look at the update, order, event, Basque update order, that event, I’m not sure it contains the…

88 00:08:46.010 00:08:53.770 Zoran Selinger: So it’s either not containing Basque order ID, or it’s either not containing this PI underscore order ID. We are missing one of them.

89 00:08:55.370 00:08:56.030 Robert Tseng: Okay.

90 00:08:59.210 00:09:02.070 Zoran Selinger: Cause, yeah, so when we look at,

91 00:09:02.600 00:09:05.099 Zoran Selinger: The documentation that they sent us.

92 00:09:06.530 00:09:09.019 Zoran Selinger: Order status reporting.

93 00:09:14.990 00:09:19.010 Zoran Selinger: Yeah, so they just… they just require the order ID.

94 00:09:20.100 00:09:24.089 Zoran Selinger: Yeah, so body data, order ID, that’s,

95 00:09:24.630 00:09:27.019 Zoran Selinger: I really want to find the function.

96 00:09:27.580 00:09:30.790 Zoran Selinger: The code, where’s the code of the function?

97 00:09:32.070 00:09:38.910 Zoran Selinger: Because I want to show you exactly what payload is coming in, into the function.

98 00:09:40.220 00:09:42.539 Zoran Selinger: There’s a dialogue,

99 00:09:42.650 00:09:49.029 Zoran Selinger: When we edit the code, there’s a dialog on the right-hand side where you can select, a…

100 00:09:49.210 00:09:50.659 Robert Tseng: You wanna share your screen?

101 00:09:51.190 00:09:55.890 Zoran Selinger: Actually, I’m not, I’m not logged in, I’ve, I’m not logged in.

102 00:09:55.890 00:09:56.520 Robert Tseng: Oh, okay.

103 00:09:56.990 00:10:04.140 Zoran Selinger: I just, I’ve never logged in, it was just on, on… on Henry’s…

104 00:10:04.670 00:10:05.320 Robert Tseng: Okay.

105 00:10:05.320 00:10:08.570 Zoran Selinger: screen share, but I can log in if you want.

106 00:10:15.190 00:10:19.690 Zoran Selinger: So… Let me just find the account.

107 00:10:43.020 00:10:44.500 Zoran Selinger: So, which…

108 00:10:49.460 00:10:53.490 Zoran Selinger: Is that in a shared vault? Which account should I use?

109 00:10:54.180 00:11:05.619 Robert Tseng: Yeah, it should be in the shared vault. I guess you can use… which I’m… I’m in it right now, so you might get logged out. I can… do you want to just direct me? I can just share my screen again.

110 00:11:07.310 00:11:07.900 Robert Tseng: Okay.

111 00:11:07.900 00:11:13.270 Zoran Selinger: So, I’m not, I’m not sure either where to go exactly, that’s the problem.

112 00:11:13.700 00:11:14.320 Robert Tseng: Yeah.

113 00:11:14.820 00:11:16.690 Zoran Selinger: Okay, well, I mean, okay, here…

114 00:11:16.690 00:11:17.240 Robert Tseng: Yeah.

115 00:11:17.520 00:11:27.990 Zoran Selinger: Yeah, so if you go to, so this is a default workspace. If you go, on the, on the… no, no, no, that’s fine, that’s fine. You see where it says, yeah.

116 00:11:28.600 00:11:30.000 Zoran Selinger: Go to Ryan’s workspace.

117 00:11:30.000 00:11:31.000 Robert Tseng: I see, I see.

118 00:11:31.000 00:11:34.940 Zoran Selinger: So that’s what I’m working on right now. You see that I’ve made some changes recently?

119 00:11:34.940 00:11:35.740 Robert Tseng: this one.

120 00:11:35.970 00:11:36.310 Zoran Selinger: who was.

121 00:11:36.310 00:11:36.660 Robert Tseng: catalog.

122 00:11:36.660 00:11:38.310 Zoran Selinger: Yes, here, here, yeah.

123 00:11:38.550 00:11:39.230 Robert Tseng: Okay.

124 00:11:39.670 00:11:44.990 Zoran Selinger: So this is basically, you see this order alias on line 20?

125 00:11:44.990 00:11:45.650 Robert Tseng: Yep.

126 00:11:45.800 00:11:48.740 Zoran Selinger: That’s the… that’s the addition, basically.

127 00:11:49.160 00:11:49.850 Zoran Selinger: -

128 00:11:50.290 00:11:57.250 Zoran Selinger: trying to… He just told me the other variables are not that important.

129 00:11:57.450 00:12:07.270 Zoran Selinger: And, like, you see that the one starting with Catalis, except from the transaction ID, they’re all empty, so that… those are not gonna come in.

130 00:12:07.690 00:12:08.330 Robert Tseng: Yeah.

131 00:12:08.590 00:12:19.660 Zoran Selinger: So I’m just… I want to fix as many of those as possible before I go to RAN and say, okay, this is ready. So that’s this side, this is the client side.

132 00:12:25.090 00:12:30.990 Zoran Selinger: So that, that would, so the… yeah, so the order ID.

133 00:12:30.990 00:12:41.519 Robert Tseng: But the order ID, which, yeah, the PI number is actually the transaction, and then the order ID is actually the mask order ID, yeah. So, like, but we have these two? Isn’t this, like.

134 00:12:41.660 00:12:46.809 Robert Tseng: If we have these two, shouldn’t that be enough? We can work on getting the other ones later, but, like, it’s…

135 00:12:47.080 00:13:02.239 Zoran Selinger: Yeah, so that should be enough. So, order ID, you see, that little variable transaction ID, that will… that contains, that, let me just confirm exactly, so DLV…

136 00:13:02.240 00:13:16.399 Zoran Selinger: transaction ID, that contains the PI underscore one, and the event model order ID is the Basque one, and that contains… let me just confirm here as well,

137 00:13:17.520 00:13:23.100 Zoran Selinger: by SKM model, right, yeah.

138 00:13:23.480 00:13:31.520 Zoran Selinger: Yeah, so that’s, like, a really classic alphanumeric that doesn’t really start with anything fixed, right?

139 00:13:31.550 00:13:46.989 Zoran Selinger: So both are gonna be there. I just… I’m not sure if… if the offer ID and… and other, like, catalis email is empty, that variable is empty, so I have to figure… figure those out and populate those.

140 00:13:48.560 00:13:54.510 Zoran Selinger: as much as I can, and then I’ll let Ryan review and publish.

141 00:13:54.850 00:13:58.780 Zoran Selinger: So that side will be done. However.

142 00:13:59.800 00:14:03.780 Zoran Selinger: I’m not sure if that’s gonna be available for you in segment.

143 00:14:03.920 00:14:11.390 Zoran Selinger: Because that’s the wa… that’s… It’s segment that updates the order status.

144 00:14:15.640 00:14:16.520 Robert Tseng: Yeah.

145 00:14:16.520 00:14:23.189 Zoran Selinger: If you go there and look at that function, Where do we go?

146 00:14:28.740 00:14:30.700 Zoran Selinger: So, destinations…

147 00:14:40.680 00:14:50.520 Robert Tseng: I mean, I feel like anything that you get, we should be able to recreate, like, within… from the warehouse, right? So…

148 00:14:50.660 00:14:57.610 Robert Tseng: I guess, like, if you’re pulling, like… okay, I can, I can just take this, so…

149 00:14:58.290 00:15:05.590 Robert Tseng: Like, yeah, if it’s just replicate this model, like, replicate this on the server side, like, I could do that. Like, we…

150 00:15:05.880 00:15:22.389 Robert Tseng: Yeah, I feel like we could grab all these different items. Like, it’s… we’re… we have the… we have the webhooks directly connected from segment into the data warehouse, and I just have to pull one of our… I can just make a couple tweaks to one of our existing models and add, like, the order alias, like, value.

151 00:15:22.540 00:15:33.940 Robert Tseng: Like, I feel like… I mean, the way that, I mean, Henry produced this from, like, running a query, so, like, I could… I could… I could do this, and then adding… adding another column. I don’t think that’s… that’s hard.

152 00:15:34.660 00:15:40.200 Zoran Selinger: Okay, cool. So you’re not gonna… so you’re not gonna run the destination function, right? Then?

153 00:15:40.200 00:15:45.859 Robert Tseng: like, I could, so, like, there’s a couple ways to do this. So, like,

154 00:15:46.030 00:15:55.159 Robert Tseng: from the destination function, like, you could do… I mean, what I probably would do is a reverse ETL object. I set these up for, like, these BetAcademy ones.

155 00:15:55.160 00:15:55.750 Zoran Selinger: Sure, sure.

156 00:15:56.650 00:16:04.299 Robert Tseng: yeah, like, we have these, like, this legacy model, whatever. I mean, maybe this is not the most up-to-date one, but I remember I wrote this,

157 00:16:05.450 00:16:14.570 Robert Tseng: Yeah, like, this is… this is just a model that lives in the warehouse. This is just a SQL query. So, like, I could… I can make that. And if I just need to make it mirror what you have in here.

158 00:16:14.800 00:16:16.979 Robert Tseng: I could do that like that. That would not take me very long.

159 00:16:16.980 00:16:26.309 Zoran Selinger: Sure, okay, okay, I think the key is then order ID and order alias. Those two things are the key here. If you can make that happen.

160 00:16:26.600 00:16:28.320 Zoran Selinger: Then you’re good to go.

161 00:16:28.630 00:16:39.699 Robert Tseng: Okay, cool. Then, I’m gonna go ahead and try to make this as quickly as I can. So, I’m assuming it’s fairly similar to this. So, yeah, some combination of… this is what I… this is the final state I want.

162 00:16:40.200 00:16:46.489 Robert Tseng: Yeah, and then I’ll expose it in a model so that we can pull it from segment, and then we can trigger

163 00:16:46.780 00:16:58.810 Robert Tseng: well, this is… this is directly connected to Meta, so I don’t really know. Well, but once… once I get this model, would you guys know how to connect this to Catalyst? Because I wasn’t involved in doing that, I don’t really know how to do that.

164 00:16:59.150 00:17:01.539 Zoran Selinger: Are we talking about the function now?

165 00:17:01.720 00:17:08.959 Robert Tseng: Yeah, well, like… How would you use Segment to connect it as a destination to cash?

166 00:17:08.960 00:17:10.599 Zoran Selinger: I mean, we… we…

167 00:17:11.109 00:17:21.239 Zoran Selinger: we were given a really… I mean, the simple, simple instructions from their, from their, documentation.

168 00:17:21.500 00:17:25.089 Zoran Selinger: It is… we just need to, you know, make a request.

169 00:17:26.290 00:17:27.020 Zoran Selinger: Oh, thank you.

170 00:17:27.020 00:17:27.780 Robert Tseng: Okay.

171 00:17:28.069 00:17:29.639 Zoran Selinger: And, the document.

172 00:17:29.640 00:17:30.350 Robert Tseng: Oh, yeah.

173 00:17:30.350 00:17:38.810 Zoran Selinger: it gives us, like, an example TypeScript, code. So, you know, we can run it here.

174 00:17:39.190 00:17:42.070 Zoran Selinger: As a destination function, and that’s what we’ve set up.

175 00:17:42.490 00:17:45.479 Zoran Selinger: I just don’t know where the functions are.

176 00:17:46.290 00:17:51.660 Robert Tseng: Yeah, I might have to create a custom cloud app function. I don’t think they have something that’s just, like, out of the box.

177 00:17:52.880 00:17:59.269 Zoran Selinger: But we… I think that’s already created… That’s already done. Enabled, but it’s already created.

178 00:17:59.710 00:18:05.450 Robert Tseng: Yeah, I mean, worst case, I would just have to set up a cloud function, which is not great, but yeah, you’re saying… I mean, they’re…

179 00:18:06.010 00:18:13.749 Zoran Selinger: Yeah, so let me… I don’t know if you have this, here. Actually, sending it to you on Slack.

180 00:18:14.400 00:18:17.679 Zoran Selinger: So that’s the… this is the recommendation for it.

181 00:18:20.060 00:18:22.650 Zoran Selinger: So you don’t have to go and dig for it.

182 00:18:28.460 00:18:29.050 Robert Tseng: Aye.

183 00:18:31.460 00:18:34.659 Zoran Selinger: So it’s very simple, as you can see, yeah, so this code…

184 00:18:34.660 00:18:35.220 Robert Tseng: Okay.

185 00:18:35.220 00:18:44.619 Zoran Selinger: It’s very simple. What you’re doing, you’re saying that order status is now paid, and you’re giving it an order ID. That’s all there is to it.

186 00:18:44.620 00:18:52.080 Robert Tseng: Okay, got it. Yeah, I guess once I get to this point, then I’ll come back to it. Alright, I think I think I have what I need to… Okay.

187 00:18:52.290 00:18:52.949 Zoran Selinger: Okay, cool.

188 00:18:52.950 00:18:53.700 Robert Tseng: Thank you.

189 00:18:53.930 00:18:54.959 Zoran Selinger: Alright, thanks, Mike.

190 00:18:55.020 00:18:55.610 Robert Tseng: Alright, tough.