@jitsu/functions-lib 1.10.4 → 2.14.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +26 -8
- package/dist/index.es.js +25 -9
- package/dist/lib/functions.d.ts +13 -0
- package/package.json +16 -13
- package/src/lib/functions.ts +27 -0
- package/tsconfig.json +4 -5
- package/vitest.config.ts +8 -0
- package/.turbo/turbo-build.log +0 -12
- package/.turbo/turbo-test.log +0 -158
- package/LICENSE +0 -21
- package/__tests__/data/classic-events-private.ts +0 -904
- package/jest.config.js +0 -8
- package/jest.setup.js +0 -8
|
@@ -1,904 +0,0 @@
|
|
|
1
|
-
export const classicEvents = [
|
|
2
|
-
{
|
|
3
|
-
_timestamp: "2024-12-25T14:23:48.606561Z",
|
|
4
|
-
api_key: "js.123.123",
|
|
5
|
-
click_id: {},
|
|
6
|
-
doc_encoding: "UTF-8",
|
|
7
|
-
doc_host: "events.example.com",
|
|
8
|
-
doc_path: "/a-downing/YQdwPmV8PPiCE36C7eSR",
|
|
9
|
-
doc_search: "",
|
|
10
|
-
event_type: "user_identify",
|
|
11
|
-
eventn_ctx_event_id: "1d199165-fdf3-4051-82fc-08a8c5502f33",
|
|
12
|
-
ids: {
|
|
13
|
-
ga: "GA1.1.1107409076.1732130999",
|
|
14
|
-
},
|
|
15
|
-
local_tz_offset: 420,
|
|
16
|
-
page_title: "11.20.24",
|
|
17
|
-
referer: "",
|
|
18
|
-
screen_resolution: "1680x1050",
|
|
19
|
-
source_ip: "127.243.13.36",
|
|
20
|
-
src: "jitsu",
|
|
21
|
-
url: "https://events.example.com/a-downing/YQdwPmV8PPiCE36C7eSR",
|
|
22
|
-
user: {
|
|
23
|
-
anonymous_id: "5adv25gea6",
|
|
24
|
-
email: "ladyterp_td@hotmail.com",
|
|
25
|
-
hashed_anonymous_id: "41217f4f06dba2b145dbd7d0879a871e",
|
|
26
|
-
name: "Tricia Downing",
|
|
27
|
-
uid: "2zYjnXp9UQcpnalUYrZPM0wUWam2",
|
|
28
|
-
},
|
|
29
|
-
user_agent:
|
|
30
|
-
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
|
|
31
|
-
user_language: "en-US",
|
|
32
|
-
utc_time: "2024-12-25T14:23:46.483000Z",
|
|
33
|
-
utm: {},
|
|
34
|
-
vp_size: "1384x775",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
_timestamp: "2024-12-25T14:31:48.875505Z",
|
|
38
|
-
api_key: "s2s.jqho3vy91pn32tceppam.58twrod18lu6eg7kgxogg",
|
|
39
|
-
common_properties: {
|
|
40
|
-
bentoml_version: "1.1.11",
|
|
41
|
-
client: {
|
|
42
|
-
creation_timestamp: "2024-12-25T14:31:48.794613+00:00",
|
|
43
|
-
id: "dd07c6d1-ba77-436a-9d44-a5871c465f55",
|
|
44
|
-
},
|
|
45
|
-
in_notebook: false,
|
|
46
|
-
is_interactive: false,
|
|
47
|
-
memory_usage_percent: 3.101992230021629,
|
|
48
|
-
platform: "Linux-5.10.225-213.878.amzn2.x86_64-x86_64-with-glibc2.31",
|
|
49
|
-
python_version: "3.10.15",
|
|
50
|
-
timestamp: "2024-12-25T14:31:48.790594+00:00",
|
|
51
|
-
total_memory_in_mb: 15692,
|
|
52
|
-
yatai_cluster_uid: null,
|
|
53
|
-
yatai_deployment_uid: null,
|
|
54
|
-
yatai_org_uid: null,
|
|
55
|
-
yatai_user_email: null,
|
|
56
|
-
yatai_version: null,
|
|
57
|
-
},
|
|
58
|
-
event_properties: {
|
|
59
|
-
api_input_types: ["JSON", "JSON", "JSON", "JSON", "JSON", "JSON"],
|
|
60
|
-
api_output_types: ["JSON", "JSON", "JSON", "JSON", "JSON", "JSON"],
|
|
61
|
-
bento_creation_timestamp: "2024-09-27T14:46:16.601717+00:00",
|
|
62
|
-
model_types: ["bentoml.pytorch"],
|
|
63
|
-
num_of_apis: 6,
|
|
64
|
-
num_of_models: 1,
|
|
65
|
-
num_of_runners: 1,
|
|
66
|
-
production: true,
|
|
67
|
-
runnable_types: ["NewClass"],
|
|
68
|
-
serve_from_bento: true,
|
|
69
|
-
serve_from_server_api: false,
|
|
70
|
-
serve_id: "rUO5HSt8H82z-igwI2vch133HhGNVQ97-PGP6d14180",
|
|
71
|
-
serve_kind: "http",
|
|
72
|
-
},
|
|
73
|
-
event_type: "serve_init",
|
|
74
|
-
eventn_ctx_event_id: "99406a96-3bc3-4939-a3cc-6f5eeb458078",
|
|
75
|
-
session_id: "f990c386c2cc11efba19eaceebcf4151",
|
|
76
|
-
source_ip: "15.158.41.132",
|
|
77
|
-
src: "api",
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
_timestamp: "2024-12-25T14:26:22.484904Z",
|
|
81
|
-
api_key: "js.fanx3r30hpz92a6exk6rpx.vbfiwc50tbvnbpf3mmlz",
|
|
82
|
-
chromeVersion: "131",
|
|
83
|
-
click_id: {},
|
|
84
|
-
companyId: 12,
|
|
85
|
-
email: "joanne.wright@ouraring.com",
|
|
86
|
-
event_type: "workflow-complete",
|
|
87
|
-
eventn_ctx_event_id: "62615da7-a605-420f-9b73-d88ca488fa6d",
|
|
88
|
-
ids: {},
|
|
89
|
-
info: {
|
|
90
|
-
billing: {
|
|
91
|
-
nodeTypeCounts: {
|
|
92
|
-
"click-element": 13,
|
|
93
|
-
"close-tab": 1,
|
|
94
|
-
conditions: 17,
|
|
95
|
-
delay: 82,
|
|
96
|
-
"execute-workflow": 10,
|
|
97
|
-
"get-form-value": 77,
|
|
98
|
-
"get-luminai-user-info": 1,
|
|
99
|
-
"get-text": 7,
|
|
100
|
-
"go-to-url": 1,
|
|
101
|
-
"insert-data": 110,
|
|
102
|
-
"loop-data": 5,
|
|
103
|
-
"loop-iterator": 5,
|
|
104
|
-
"luminai-server-request": 2,
|
|
105
|
-
"mark-elements": 1,
|
|
106
|
-
"new-window": 1,
|
|
107
|
-
"scroll-element": 2,
|
|
108
|
-
"set-active-tab": 1,
|
|
109
|
-
"set-browser-dialog-behavior": 3,
|
|
110
|
-
"set-form-value": 5,
|
|
111
|
-
"set-return-value": 13,
|
|
112
|
-
"show-form": 1,
|
|
113
|
-
trigger: 11,
|
|
114
|
-
"wait-for-element": 20,
|
|
115
|
-
"wait-until-loaded": 7,
|
|
116
|
-
"while-loop": 76,
|
|
117
|
-
},
|
|
118
|
-
ticketCount: 0,
|
|
119
|
-
ticketDurationsMs: [],
|
|
120
|
-
},
|
|
121
|
-
callCount: 1,
|
|
122
|
-
jobId: "f3b97b73-15e5-4d5b-af73-43bbbf237b24",
|
|
123
|
-
metrics: {
|
|
124
|
-
actual: {},
|
|
125
|
-
differences: {},
|
|
126
|
-
expected: {},
|
|
127
|
-
isEqual: true,
|
|
128
|
-
},
|
|
129
|
-
results: [
|
|
130
|
-
{
|
|
131
|
-
callCount: 1,
|
|
132
|
-
jobId: "f3b97b73-15e5-4d5b-af73-43bbbf237b24",
|
|
133
|
-
state: {
|
|
134
|
-
currentNode: {
|
|
135
|
-
data: {
|
|
136
|
-
data: {
|
|
137
|
-
context: {
|
|
138
|
-
schema: "string",
|
|
139
|
-
type: "variable",
|
|
140
|
-
value: "Workflow warned",
|
|
141
|
-
variableName: "workflowWarned",
|
|
142
|
-
},
|
|
143
|
-
debugSettings: {
|
|
144
|
-
onRunComplete: {
|
|
145
|
-
context: true,
|
|
146
|
-
storage: true,
|
|
147
|
-
},
|
|
148
|
-
onRunStart: {
|
|
149
|
-
context: true,
|
|
150
|
-
storage: true,
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
disableBlock: false,
|
|
154
|
-
},
|
|
155
|
-
id: "insert_data:workflow_warned",
|
|
156
|
-
type: "insert-data",
|
|
157
|
-
},
|
|
158
|
-
id: "insert_data:workflow_warned",
|
|
159
|
-
type: "insert-data",
|
|
160
|
-
},
|
|
161
|
-
previousNode: {
|
|
162
|
-
data: {
|
|
163
|
-
context: {
|
|
164
|
-
namespace: "__local__",
|
|
165
|
-
parameters: {
|
|
166
|
-
newTag: "luminai_workflow_completed",
|
|
167
|
-
ticketNumber: "{{ workflow@__local__/*/general-search-order-form@result.zendeskTicketId }}",
|
|
168
|
-
},
|
|
169
|
-
useCurrentEnvironment: true,
|
|
170
|
-
validationType: "full",
|
|
171
|
-
workflowId: "tag-zendesk",
|
|
172
|
-
},
|
|
173
|
-
debugSettings: {
|
|
174
|
-
onRunComplete: {
|
|
175
|
-
context: true,
|
|
176
|
-
storage: true,
|
|
177
|
-
},
|
|
178
|
-
onRunStart: {
|
|
179
|
-
context: true,
|
|
180
|
-
storage: true,
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
|
-
disableBlock: false,
|
|
184
|
-
},
|
|
185
|
-
id: "execute:tag_zendesk:completed",
|
|
186
|
-
type: "execute-workflow",
|
|
187
|
-
},
|
|
188
|
-
repeatCounts: {},
|
|
189
|
-
rerouteCounts: {},
|
|
190
|
-
step: 19,
|
|
191
|
-
visitedNodes: {
|
|
192
|
-
"condition:check_order_status": {
|
|
193
|
-
visitedAt: [10],
|
|
194
|
-
},
|
|
195
|
-
"condition:check_warning": {
|
|
196
|
-
visitedAt: [5],
|
|
197
|
-
},
|
|
198
|
-
"condition:check_warning:update_order:pending_fulfilment": {
|
|
199
|
-
visitedAt: [12],
|
|
200
|
-
},
|
|
201
|
-
"condition:check_warning_sub_cancel:pending": {
|
|
202
|
-
visitedAt: [16],
|
|
203
|
-
},
|
|
204
|
-
"execute:copy_transaction:pending": {
|
|
205
|
-
visitedAt: [17],
|
|
206
|
-
},
|
|
207
|
-
"execute:general_search_order_form": {
|
|
208
|
-
visitedAt: [3],
|
|
209
|
-
},
|
|
210
|
-
"execute:get_refund_amount_and_discount_code": {
|
|
211
|
-
visitedAt: [9],
|
|
212
|
-
},
|
|
213
|
-
"execute:refund_order": {
|
|
214
|
-
visitedAt: [14],
|
|
215
|
-
},
|
|
216
|
-
"execute:search_order": {
|
|
217
|
-
visitedAt: [4],
|
|
218
|
-
},
|
|
219
|
-
"execute:sub_cancel:pending": {
|
|
220
|
-
visitedAt: [15],
|
|
221
|
-
},
|
|
222
|
-
"execute:tag_zendesk:completed": {
|
|
223
|
-
visitedAt: [18],
|
|
224
|
-
},
|
|
225
|
-
"execute:update_order:pending_fulfilment": {
|
|
226
|
-
visitedAt: [11],
|
|
227
|
-
},
|
|
228
|
-
get_order_status: {
|
|
229
|
-
visitedAt: [8],
|
|
230
|
-
},
|
|
231
|
-
"get_text:order_currency": {
|
|
232
|
-
visitedAt: [7],
|
|
233
|
-
},
|
|
234
|
-
"insertData:calculatedRefundAmount:init": {
|
|
235
|
-
visitedAt: [2],
|
|
236
|
-
},
|
|
237
|
-
"insertData:calculatedRefundAmount:pending:change": {
|
|
238
|
-
visitedAt: [13],
|
|
239
|
-
},
|
|
240
|
-
"insert_data:prefilledZendeskTicket": {
|
|
241
|
-
visitedAt: [1],
|
|
242
|
-
},
|
|
243
|
-
trigger: {
|
|
244
|
-
visitedAt: [0],
|
|
245
|
-
},
|
|
246
|
-
"wait_for_element:order_currency": {
|
|
247
|
-
visitedAt: [6],
|
|
248
|
-
},
|
|
249
|
-
},
|
|
250
|
-
},
|
|
251
|
-
status: "complete",
|
|
252
|
-
timeElapsed: 16,
|
|
253
|
-
timestamp: 1735136772062,
|
|
254
|
-
workerId: "81d29a74-8cf9-49bf-a02e-8c6bbcd36ecb",
|
|
255
|
-
workflowCallStack: [
|
|
256
|
-
{
|
|
257
|
-
id: "ring-discount",
|
|
258
|
-
namespace: "oura",
|
|
259
|
-
},
|
|
260
|
-
],
|
|
261
|
-
},
|
|
262
|
-
],
|
|
263
|
-
status: "complete",
|
|
264
|
-
timeElapsed: 655143,
|
|
265
|
-
timestamp: 1735136772062,
|
|
266
|
-
workflow: {
|
|
267
|
-
config: {
|
|
268
|
-
schema: {
|
|
269
|
-
object: {},
|
|
270
|
-
},
|
|
271
|
-
value: {
|
|
272
|
-
common: {},
|
|
273
|
-
development: {},
|
|
274
|
-
production: {},
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
description: "Partial refund (on ring item/s) for the order found by Order ID (SO-number).",
|
|
278
|
-
displayName: "Ring Discount",
|
|
279
|
-
environments: ["chrome_extension"],
|
|
280
|
-
id: "ring-discount",
|
|
281
|
-
namespace: "oura",
|
|
282
|
-
requirements: {
|
|
283
|
-
description: "Zendesk ticket page",
|
|
284
|
-
},
|
|
285
|
-
settings: {
|
|
286
|
-
blockDelay: 0,
|
|
287
|
-
debugMode: false,
|
|
288
|
-
onErrorSettings: {
|
|
289
|
-
onError: "stop-workflow",
|
|
290
|
-
},
|
|
291
|
-
reuseLastWorkflowState: false,
|
|
292
|
-
saveLog: false,
|
|
293
|
-
tabLoadTimeout: 30000,
|
|
294
|
-
tableSettings: {
|
|
295
|
-
insertDefaultColumn: false,
|
|
296
|
-
},
|
|
297
|
-
},
|
|
298
|
-
steps: [],
|
|
299
|
-
workflowMetrics: {
|
|
300
|
-
schema: {
|
|
301
|
-
object: {},
|
|
302
|
-
},
|
|
303
|
-
},
|
|
304
|
-
},
|
|
305
|
-
},
|
|
306
|
-
jobId: "f3b97b73-15e5-4d5b-af73-43bbbf237b24",
|
|
307
|
-
local_tz_offset: 0,
|
|
308
|
-
manifestVersion: "1.3.193",
|
|
309
|
-
runtimeEnvironment: "production",
|
|
310
|
-
source_ip: "155.190.32.11",
|
|
311
|
-
src: "jitsu",
|
|
312
|
-
teamId: 9,
|
|
313
|
-
timestamp: 1735136772062,
|
|
314
|
-
type: "workflow-complete",
|
|
315
|
-
user: {
|
|
316
|
-
anonymous_id: "",
|
|
317
|
-
hashed_anonymous_id: "bef91c4d78dbf5b10b791d1f483faa9a",
|
|
318
|
-
},
|
|
319
|
-
user_agent:
|
|
320
|
-
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
|
|
321
|
-
utc_time: "2024-12-25T14:26:12.097000Z",
|
|
322
|
-
utm: {},
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
_timestamp: "2024-12-25T14:33:19.139556Z",
|
|
326
|
-
api_key: "js.fanx3r30hpz92a6exk6rpx.ed3j9yx7w35ihglufw0se",
|
|
327
|
-
attempt: "3",
|
|
328
|
-
click_id: {},
|
|
329
|
-
email: "jenie@luminai.com",
|
|
330
|
-
event_type: "node-failed",
|
|
331
|
-
eventn_ctx_event_id: "c9bd2ce5-c80e-4e62-994f-4d814afc029a",
|
|
332
|
-
ids: {},
|
|
333
|
-
info: {
|
|
334
|
-
callCount: 1,
|
|
335
|
-
error: {
|
|
336
|
-
__errorType__: "WorkflowNode::FunctionTimedOut",
|
|
337
|
-
error: {
|
|
338
|
-
timeout: 60000,
|
|
339
|
-
},
|
|
340
|
-
errorCategory: "extrinsic",
|
|
341
|
-
state: {
|
|
342
|
-
currentNode: {
|
|
343
|
-
data: {
|
|
344
|
-
context: {
|
|
345
|
-
findBy: "css",
|
|
346
|
-
selector: '[class="ADs2Tc"] [class="Cz2Zxb"] [class="IJxDxc"]',
|
|
347
|
-
shadowRoot: [],
|
|
348
|
-
shouldTimeout: true,
|
|
349
|
-
timeout: 60000,
|
|
350
|
-
to: "exist",
|
|
351
|
-
},
|
|
352
|
-
disableBlock: false,
|
|
353
|
-
},
|
|
354
|
-
displayOptions: {
|
|
355
|
-
position: {
|
|
356
|
-
x: -351.2046436469826,
|
|
357
|
-
y: 1412.037307064773,
|
|
358
|
-
},
|
|
359
|
-
},
|
|
360
|
-
id: "wait_for_element:",
|
|
361
|
-
type: "wait-for-element",
|
|
362
|
-
},
|
|
363
|
-
previousNode: {
|
|
364
|
-
data: {
|
|
365
|
-
context: {
|
|
366
|
-
findBy: "css",
|
|
367
|
-
multiple: false,
|
|
368
|
-
selector: "body> div > div > div> div > div:nth-child(2) > button",
|
|
369
|
-
shadowRoot: [],
|
|
370
|
-
usePointer: false,
|
|
371
|
-
withoutDebugger: false,
|
|
372
|
-
},
|
|
373
|
-
disableBlock: false,
|
|
374
|
-
},
|
|
375
|
-
displayOptions: {
|
|
376
|
-
position: {
|
|
377
|
-
x: -353.81629537523537,
|
|
378
|
-
y: 1303.3318013039307,
|
|
379
|
-
},
|
|
380
|
-
},
|
|
381
|
-
id: "click_element:done__0",
|
|
382
|
-
type: "click-element",
|
|
383
|
-
},
|
|
384
|
-
repeatCounts: {},
|
|
385
|
-
rerouteCounts: {},
|
|
386
|
-
step: 16,
|
|
387
|
-
visitedNodes: {
|
|
388
|
-
"click_element:checkin_date_Select": {
|
|
389
|
-
visitedAt: [6],
|
|
390
|
-
},
|
|
391
|
-
"click_element:checkout": {
|
|
392
|
-
visitedAt: [8],
|
|
393
|
-
},
|
|
394
|
-
"click_element:done__0": {
|
|
395
|
-
visitedAt: [15],
|
|
396
|
-
},
|
|
397
|
-
"click_element:done_mobile": {
|
|
398
|
-
visitedAt: [9],
|
|
399
|
-
},
|
|
400
|
-
"click_element:mobile_checkin": {
|
|
401
|
-
visitedAt: [4],
|
|
402
|
-
},
|
|
403
|
-
"click_element:nighly_price": {
|
|
404
|
-
visitedAt: [13],
|
|
405
|
-
},
|
|
406
|
-
"click_element:nightly_price": {
|
|
407
|
-
visitedAt: [11],
|
|
408
|
-
},
|
|
409
|
-
"delay:__0": {
|
|
410
|
-
visitedAt: [3],
|
|
411
|
-
},
|
|
412
|
-
"delay:__1": {
|
|
413
|
-
visitedAt: [5],
|
|
414
|
-
},
|
|
415
|
-
"delay:__1__0": {
|
|
416
|
-
visitedAt: [12],
|
|
417
|
-
},
|
|
418
|
-
"delay:__2": {
|
|
419
|
-
visitedAt: [7],
|
|
420
|
-
},
|
|
421
|
-
"delay:__3": {
|
|
422
|
-
visitedAt: [10],
|
|
423
|
-
},
|
|
424
|
-
"delay:__4": {
|
|
425
|
-
visitedAt: [14],
|
|
426
|
-
},
|
|
427
|
-
trigger: {
|
|
428
|
-
visitedAt: [0],
|
|
429
|
-
},
|
|
430
|
-
"wait_for_element:mobile_checkin": {
|
|
431
|
-
visitedAt: [2],
|
|
432
|
-
},
|
|
433
|
-
"wait_until_loaded:": {
|
|
434
|
-
visitedAt: [1],
|
|
435
|
-
},
|
|
436
|
-
},
|
|
437
|
-
},
|
|
438
|
-
workflowCallStack: [
|
|
439
|
-
{
|
|
440
|
-
id: "rate-shop-duplicate",
|
|
441
|
-
namespace: "company/Super/team/SuperTestTeam",
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
id: "rate-shop",
|
|
445
|
-
namespace: "__local__",
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
id: "google-search",
|
|
449
|
-
namespace: "__local__",
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
id: "search-bestprice",
|
|
453
|
-
namespace: "__local__",
|
|
454
|
-
},
|
|
455
|
-
],
|
|
456
|
-
},
|
|
457
|
-
jobId: "3d90fd30-3402-4757-95ea-517537bff27d-3",
|
|
458
|
-
state: {
|
|
459
|
-
currentNode: {
|
|
460
|
-
data: {
|
|
461
|
-
data: {
|
|
462
|
-
context: {
|
|
463
|
-
findBy: "css",
|
|
464
|
-
selector: '[class="ADs2Tc"] [class="Cz2Zxb"] [class="IJxDxc"]',
|
|
465
|
-
shadowRoot: [],
|
|
466
|
-
shouldTimeout: true,
|
|
467
|
-
timeout: 60000,
|
|
468
|
-
to: "exist",
|
|
469
|
-
},
|
|
470
|
-
disableBlock: false,
|
|
471
|
-
},
|
|
472
|
-
displayOptions: {
|
|
473
|
-
position: {
|
|
474
|
-
x: -351.2046436469826,
|
|
475
|
-
y: 1412.037307064773,
|
|
476
|
-
},
|
|
477
|
-
},
|
|
478
|
-
id: "wait_for_element:",
|
|
479
|
-
type: "wait-for-element",
|
|
480
|
-
},
|
|
481
|
-
displayOptions: {
|
|
482
|
-
position: {
|
|
483
|
-
x: -351.2046436469826,
|
|
484
|
-
y: 1412.037307064773,
|
|
485
|
-
},
|
|
486
|
-
},
|
|
487
|
-
id: "wait_for_element:",
|
|
488
|
-
type: "wait-for-element",
|
|
489
|
-
},
|
|
490
|
-
previousNode: {
|
|
491
|
-
data: {
|
|
492
|
-
context: {
|
|
493
|
-
findBy: "css",
|
|
494
|
-
multiple: false,
|
|
495
|
-
selector: "body> div > div > div> div > div:nth-child(2) > button",
|
|
496
|
-
shadowRoot: [],
|
|
497
|
-
usePointer: false,
|
|
498
|
-
withoutDebugger: false,
|
|
499
|
-
},
|
|
500
|
-
disableBlock: false,
|
|
501
|
-
},
|
|
502
|
-
displayOptions: {
|
|
503
|
-
position: {
|
|
504
|
-
x: -353.81629537523537,
|
|
505
|
-
y: 1303.3318013039307,
|
|
506
|
-
},
|
|
507
|
-
},
|
|
508
|
-
id: "click_element:done__0",
|
|
509
|
-
type: "click-element",
|
|
510
|
-
},
|
|
511
|
-
repeatCounts: {},
|
|
512
|
-
rerouteCounts: {},
|
|
513
|
-
step: 16,
|
|
514
|
-
visitedNodes: {
|
|
515
|
-
"click_element:checkin_date_Select": {
|
|
516
|
-
visitedAt: [6],
|
|
517
|
-
},
|
|
518
|
-
"click_element:checkout": {
|
|
519
|
-
visitedAt: [8],
|
|
520
|
-
},
|
|
521
|
-
"click_element:done__0": {
|
|
522
|
-
visitedAt: [15],
|
|
523
|
-
},
|
|
524
|
-
"click_element:done_mobile": {
|
|
525
|
-
visitedAt: [9],
|
|
526
|
-
},
|
|
527
|
-
"click_element:mobile_checkin": {
|
|
528
|
-
visitedAt: [4],
|
|
529
|
-
},
|
|
530
|
-
"click_element:nighly_price": {
|
|
531
|
-
visitedAt: [13],
|
|
532
|
-
},
|
|
533
|
-
"click_element:nightly_price": {
|
|
534
|
-
visitedAt: [11],
|
|
535
|
-
},
|
|
536
|
-
"delay:__0": {
|
|
537
|
-
visitedAt: [3],
|
|
538
|
-
},
|
|
539
|
-
"delay:__1": {
|
|
540
|
-
visitedAt: [5],
|
|
541
|
-
},
|
|
542
|
-
"delay:__1__0": {
|
|
543
|
-
visitedAt: [12],
|
|
544
|
-
},
|
|
545
|
-
"delay:__2": {
|
|
546
|
-
visitedAt: [7],
|
|
547
|
-
},
|
|
548
|
-
"delay:__3": {
|
|
549
|
-
visitedAt: [10],
|
|
550
|
-
},
|
|
551
|
-
"delay:__4": {
|
|
552
|
-
visitedAt: [14],
|
|
553
|
-
},
|
|
554
|
-
trigger: {
|
|
555
|
-
visitedAt: [0],
|
|
556
|
-
},
|
|
557
|
-
"wait_for_element:mobile_checkin": {
|
|
558
|
-
visitedAt: [2],
|
|
559
|
-
},
|
|
560
|
-
"wait_until_loaded:": {
|
|
561
|
-
visitedAt: [1],
|
|
562
|
-
},
|
|
563
|
-
},
|
|
564
|
-
},
|
|
565
|
-
status: "failed",
|
|
566
|
-
timeElapsed: 60001,
|
|
567
|
-
timestamp: 1735137198288,
|
|
568
|
-
workerId: "0e283bd8-4878-463e-817c-334395fb7a5d",
|
|
569
|
-
workflow: {
|
|
570
|
-
config: {
|
|
571
|
-
value: {
|
|
572
|
-
common: {},
|
|
573
|
-
development: {
|
|
574
|
-
apiUrl: "https://rpa-server-prod.onrender.com",
|
|
575
|
-
googleSheetId: "1UUVFArKikarN_hO_gVOter7_DkxXxvFQSY6Mjn_VIWM",
|
|
576
|
-
googleSheetRange: "Super Win Analysis!A:CN",
|
|
577
|
-
},
|
|
578
|
-
production: {
|
|
579
|
-
apiUrl: "https://rpa-server-prod.onrender.com",
|
|
580
|
-
googleSheetId: "1UUVFArKikarN_hO_gVOter7_DkxXxvFQSY6Mjn_VIWM",
|
|
581
|
-
googleSheetRange: "Super Win Analysis!A:CN",
|
|
582
|
-
},
|
|
583
|
-
},
|
|
584
|
-
},
|
|
585
|
-
description: "",
|
|
586
|
-
displayName: "",
|
|
587
|
-
id: "search-bestprice",
|
|
588
|
-
namespace: "__local__",
|
|
589
|
-
settings: {
|
|
590
|
-
onErrorSettings: {
|
|
591
|
-
onError: "stop-workflow",
|
|
592
|
-
},
|
|
593
|
-
tableSettings: {
|
|
594
|
-
insertDefaultColumn: false,
|
|
595
|
-
},
|
|
596
|
-
},
|
|
597
|
-
workflowMetrics: {
|
|
598
|
-
schema: {
|
|
599
|
-
object: {},
|
|
600
|
-
},
|
|
601
|
-
},
|
|
602
|
-
},
|
|
603
|
-
workflowCallStack: [
|
|
604
|
-
{
|
|
605
|
-
id: "rate-shop-duplicate",
|
|
606
|
-
namespace: "company/Super/team/SuperTestTeam",
|
|
607
|
-
},
|
|
608
|
-
{
|
|
609
|
-
id: "rate-shop",
|
|
610
|
-
namespace: "__local__",
|
|
611
|
-
},
|
|
612
|
-
{
|
|
613
|
-
id: "google-search",
|
|
614
|
-
namespace: "__local__",
|
|
615
|
-
},
|
|
616
|
-
{
|
|
617
|
-
id: "search-bestprice",
|
|
618
|
-
namespace: "__local__",
|
|
619
|
-
},
|
|
620
|
-
],
|
|
621
|
-
},
|
|
622
|
-
jobId: "3d90fd30-3402-4757-95ea-517537bff27d-3",
|
|
623
|
-
local_tz_offset: 0,
|
|
624
|
-
manifestVersion: "1.3.6",
|
|
625
|
-
remoteConnection: false,
|
|
626
|
-
runtimeEnvironment: "production",
|
|
627
|
-
source_ip: "35.88.163.82",
|
|
628
|
-
src: "jitsu",
|
|
629
|
-
teamId: "66",
|
|
630
|
-
timestamp: 1735137198288,
|
|
631
|
-
user: {
|
|
632
|
-
anonymous_id: "",
|
|
633
|
-
hashed_anonymous_id: "8bc4f0d423c361f6fe2cf300cbfa8fac",
|
|
634
|
-
},
|
|
635
|
-
user_agent: "node",
|
|
636
|
-
utc_time: "2024-12-25T14:33:19.015000Z",
|
|
637
|
-
utm: {},
|
|
638
|
-
workflowName: "rate-shop-duplicate",
|
|
639
|
-
workflowParams: {
|
|
640
|
-
executionInfo: {
|
|
641
|
-
runId: "3d90fd30-3402-4757-95ea-517537bff27d-3",
|
|
642
|
-
workflowId: "schedule-rate-shop-duplicate-42a5e9fc-92b2-4800-b8c6-eeb297d393d2-workflow-2024-12-25T01:30:00Z",
|
|
643
|
-
},
|
|
644
|
-
},
|
|
645
|
-
workflowType: "e2e",
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
_timestamp: "2024-12-25T12:15:47.697933Z",
|
|
649
|
-
api_key: "s2s.fanx3r30hpz92a6exk6rpx.3bj8gs25tbrtcd27zqk",
|
|
650
|
-
email_address: "lins@luminai.com",
|
|
651
|
-
event_type: "workflow_success",
|
|
652
|
-
eventn_ctx_event_id: "89620256-f365-4e23-b037-35c3d79f77a1",
|
|
653
|
-
exception: null,
|
|
654
|
-
exception_name: null,
|
|
655
|
-
exception_trace: null,
|
|
656
|
-
execution_id: "744b1c09-1b13-4d19-93a6-6ffc0b058f2a",
|
|
657
|
-
execution_location: "server",
|
|
658
|
-
execution_source: "execution",
|
|
659
|
-
grounding_data:
|
|
660
|
-
'["{\\"graphId\\":1,\\"nodeId\\":123,\\"groundingId\\":\\"20195\\",\\"executableScript\\":\\"async def perform() -> int:\\\\n return 10\\"}", "{\\"graphId\\":1,\\"nodeId\\":134,\\"groundingId\\":\\"20219\\",\\"executableScript\\":\\"async def perform() -> str:\\\\n return {}\\"}", "{\\"graphId\\":1,\\"nodeId\\":3,\\"groundingId\\":\\"17982\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.goto(\'https://hazel.okta.com/app/calendly/exkaq62hb5yg73Rhu4h7/sso/saml\', wait_until=\'domcontentloaded\')\\"}", "{\\"graphId\\":1,\\"nodeId\\":109,\\"groundingId\\":\\"20009\\",\\"executableScript\\":\\"async def perform(report_sheet_id: str) -> dict[str, Any]:\\\\n result = {\'api_url\': \'https://rpa-server-prod.onrender.com\', \'google_sheet_id\': report_sheet_id, \'google_sheet_range\': \'Report!A:F\'}\\\\n return result\\"}", "{\\"graphId\\":1,\\"nodeId\\":110,\\"groundingId\\":\\"20013\\",\\"executableScript\\":\\"async def perform(report_data: dict[str, Any]) -> list[dict[str, Any]]:\\\\n values = report_data.get(\'values\', [])\\\\n if not values or len(values) < 2:\\\\n return []\\\\n result = []\\\\n for row in values[1:]:\\\\n row_dict = {\'utc\': row[0], \'ist\': row[1], \'date\': row[2], \'time\': row[3], \'timezone\': row[4], \'memberName\': row[5]}\\\\n result.append(row_dict)\\\\n return result\\"}", "{\\"graphId\\":1,\\"nodeId\\":139,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(20)\\"}", "{\\"graphId\\":1,\\"nodeId\\":99,\\"groundingId\\":\\"19451\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n scheduled_events = page.locator(\'[data-calendly-label=\\\\\\"scheduled-events-link\\\\\\"]\')\\\\n is_visible = await scheduled_events.is_visible()\\\\n return 0 if not is_visible else 1\\"}", "{\\"graphId\\":1,\\"nodeId\\":15,\\"groundingId\\":\\"18381\\",\\"executableScript\\":\\"async def perform() -> str:\\\\n pst_time = datetime.now(ZoneInfo(\'America/Los_Angeles\'))\\\\n utc_time = pst_time.astimezone(timezone.utc)\\\\n formatted_time = utc_time.strftime(\'%Y-%m-%d %H:%M:%S\')\\\\n return formatted_time\\"}", "{\\"graphId\\":1,\\"nodeId\\":131,\\"groundingId\\":\\"20204\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n sms_form = page.locator(\'form.phone-authenticator-challenge\')\\\\n if await sms_form.is_visible():\\\\n return 0\\\\n return 1\\"}", "{\\"graphId\\":1,\\"nodeId\\":11,\\"groundingId\\":\\"19412\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.locator(\'input[value=\\\\\\"Receive a code via SMS\\\\\\"]\').click()\\"}", "{\\"graphId\\":1,\\"nodeId\\":112,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform(page: Page, count: int) -> range:\\\\n return range(count)\\"}", "{\\"graphId\\":113,\\"nodeId\\":22,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(30)\\"}", "{\\"graphId\\":113,\\"nodeId\\":121,\\"groundingId\\":\\"20187\\",\\"executableScript\\":\\"async def perform() -> dict[str, Any]:\\\\n return {\'url\': \'https://service.luminai.com/proxy/googleapi/sheets/1V2OLliI4GRSsui6EFBBRmjG33f_pnu9pSKExhX2n-6A/read?valueInputOption=USER_ENTERED&range=Okta!A:B\', \'method\': \'GET\', \'body\': None}\\"}", "{\\"graphId\\":113,\\"nodeId\\":122,\\"groundingId\\":\\"20188\\",\\"executableScript\\":\\"async def perform(sms_otp: dict[str, Any]) -> dict[str, Any]:\\\\n values = sms_otp.get(\'values\', [])\\\\n if len(values) <= 1:\\\\n return {\'timestamp\': \'\', \'code\': \'\'}\\\\n last_row = values[-1]\\\\n return {\'timestamp\': last_row[0], \'code\': last_row[1]}\\"}", "{\\"graphId\\":113,\\"nodeId\\":13,\\"groundingId\\":\\"18370\\",\\"executableScript\\":\\"async def perform(page: Page, otp_time: dict[str, Any], time: str) -> int:\\\\n otp_datetime = datetime.strptime(otp_time[\'timestamp\'], \'%Y-%m-%d %H:%M:%S\')\\\\n time_datetime = datetime.strptime(time, \'%Y-%m-%d %H:%M:%S\')\\\\n return 0 if otp_datetime >= time_datetime else 1\\"}", "{\\"graphId\\":113,\\"nodeId\\":135,\\"groundingId\\":\\"20215\\",\\"executableScript\\":\\"async def perform(otp_time: dict[str, Any]) -> dict[str, Any]:\\\\n if not isinstance(otp_time, dict):\\\\n raise ValueError(\'otp_time must be a dictionary\')\\\\n if \'timestamp\' not in otp_time or \'code\' not in otp_time:\\\\n raise ValueError(\\\\\\"otp_time must contain \'timestamp\' and \'code\' keys\\\\\\")\\\\n return otp_time\\"}", "{\\"graphId\\":1,\\"nodeId\\":14,\\"groundingId\\":\\"18210\\",\\"executableScript\\":\\"async def perform(page: Page, otp_time: dict[str, Any] | None) -> None:\\\\n if not otp_time:\\\\n raise ValueError(\'otp_time is required\')\\\\n await page.get_by_label(\'Enter Code\').fill(otp_time[\'code\'])\\\\n await page.wait_for_timeout(2000)\\\\n await page.get_by_role(\'button\', name=re.compile(\'verify\', re.IGNORECASE)).click()\\\\n await page.wait_for_load_state(\'domcontentloaded\')\\"}", "{\\"graphId\\":1,\\"nodeId\\":23,\\"groundingId\\":\\"18491\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n meetings_link = page.locator(\\\\\\"[data-calendly-label=\'scheduled-events-link\']\\\\\\")\\\\n await meetings_link.wait_for(state=\'visible\')\\\\n await meetings_link.click(timeout=50000)\\"}", "{\\"graphId\\":1,\\"nodeId\\":25,\\"groundingId\\":\\"21786\\",\\"executableScript\\":\\"async def perform(page: Page, calendly_filter: str | None) -> None:\\\\n await page.locator(\\\\\\"[data-calendly-label=\'scope-button\']\\\\\\").click()\\\\n await page.locator(\\\\\\".search-input input[placeholder=\'Filter\']\\\\\\").fill(calendly_filter)\\\\n await page.locator(\'button.b8vw32h\', has_text=calendly_filter).click()\\"}", "{\\"graphId\\":1,\\"nodeId\\":30,\\"groundingId\\":\\"19430\\",\\"executableScript\\":\\"async def perform() -> str:\\\\n current_date = datetime.now()\\\\n business_days = 11\\\\n days_added = 0\\\\n while days_added < business_days:\\\\n current_date += timedelta(days=1)\\\\n if current_date.weekday() < 5:\\\\n days_added += 1\\\\n formatted_date = f\\\\\\"{current_date.strftime(\'%B\')} {current_date.day}, {current_date.strftime(\'%Y\')}\\\\\\"\\\\n return formatted_date\\"}", "{\\"graphId\\":1,\\"nodeId\\":35,\\"groundingId\\":\\"26198\\",\\"executableScript\\":\\"async def perform() -> str:\\\\n current_date = datetime.now()\\\\n next_day = current_date + timedelta(days=1)\\\\n while next_day.weekday() >= 5:\\\\n next_day += timedelta(days=1)\\\\n return next_day.strftime(\'%B %-d, %Y\')\\"}", "{\\"graphId\\":1,\\"nodeId\\":31,\\"groundingId\\":\\"18598\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_role(\'button\', name=\'date_range\').click()\\"}", "{\\"graphId\\":1,\\"nodeId\\":97,\\"groundingId\\":\\"19434\\",\\"executableScript\\":\\"async def perform(page: Page, startdate: str) -> None:\\\\n await page.locator(f\'td[role=\\\\\\"gridcell\\\\\\"] button[aria-label=\\\\\\"{startdate}\\\\\\"]\').first.click()\\"}", "{\\"graphId\\":1,\\"nodeId\\":98,\\"groundingId\\":\\"19433\\",\\"executableScript\\":\\"async def perform(page: Page, enddate: str) -> None:\\\\n selector = f\'td[role=\\\\\\"gridcell\\\\\\"] button[aria-label=\\\\\\"{enddate}\\\\\\"]\'\\\\n await page.locator(selector).first.click()\\"}", "{\\"graphId\\":1,\\"nodeId\\":37,\\"groundingId\\":\\"21821\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_role(\'button\', name=\'Apply\').click()\\\\n await page.wait_for_timeout(8000)\\"}", "{\\"graphId\\":1,\\"nodeId\\":138,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(8)\\"}", "{\\"graphId\\":1,\\"nodeId\\":152,\\"groundingId\\":\\"22382\\",\\"executableScript\\":\\"async def perform() -> int:\\\\n return 0\\"}", "{\\"graphId\\":1,\\"nodeId\\":143,\\"groundingId\\":\\"22389\\",\\"executableScript\\":\\"async def perform(page: Page, flag : int) -> bool:\\\\n next_button = page.locator(\\\\\\"[aria-label=\'Next\']\\\\\\")\\\\n end_message = page.get_by_text(\\\\\\"You\'ve reached the end of the list\\\\\\")\\\\n is_disabled_next = await next_button.is_visible() and await next_button.is_disabled()\\\\n is_end_message = await end_message.is_visible()\\\\n return (not (is_disabled_next or is_end_message)) or flag == 0\\"}", "{\\"graphId\\":144,\\"nodeId\\":38,\\"groundingId\\":\\"18743\\",\\"executableScript\\":\\"async def perform(page: Page) -> list[Locator]:\\\\n return await page.locator(\'[data-component=\\\\\\"day-list-item\\\\\\"]\').all()\\"}", "{\\"graphId\\":39,\\"nodeId\\":40,\\"groundingId\\":\\"22401\\",\\"executableScript\\":\\"async def perform(page: Page, loop_element2: Locator) -> str:\\\\n header = loop_element2.locator(\'h2[data-component=\\\\\\"day-header\\\\\\"]\')\\\\n return await header.inner_text()\\"}", "{\\"graphId\\":39,\\"nodeId\\":155,\\"groundingId\\":\\"22663\\",\\"executableScript\\":\\"async def perform(date_text: str) -> str:\\\\n cleaned_text = re.sub(\'\\\\\\\\\\\\\\\\btoday\\\\\\\\\\\\\\\\b\', \'\', date_text, flags=re.IGNORECASE)\\\\n cleaned_text = re.sub(\'\\\\\\\\\\\\\\\\s+\', \' \', cleaned_text)\\\\n return cleaned_text.strip()\\"}", "{\\"graphId\\":39,\\"nodeId\\":27,\\"groundingId\\":\\"22407\\",\\"executableScript\\":\\"async def perform(page: Page, loop_element2: Locator) -> list[Locator]:\\\\n items = await loop_element2.locator(\'[data-component=\\\\\\"event-list-item\\\\\\"]\').all()\\\\n return items\\"}", "{\\"graphId\\":28,\\"nodeId\\":29,\\"groundingId\\":\\"22402\\",\\"executableScript\\":\\"async def perform(page: Page, loop_element3: Locator) -> None:\\\\n await loop_element3.click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":42,\\"groundingId\\":\\"18759\\",\\"executableScript\\":\\"async def perform(page: Page) -> str:\\\\n return await page.get_by_text(\'Invitee time zone\').locator(\'xpath=following-sibling::div\').inner_text()\\"}", "{\\"graphId\\":28,\\"nodeId\\":41,\\"groundingId\\":\\"22415\\",\\"executableScript\\":\\"async def perform(page: Page, loop_element3: Locator) -> str:\\\\n time_element = loop_element3.locator(\'[data-component=\\\\\\"event-time\\\\\\"]\')\\\\n return await time_element.inner_text()\\"}", "{\\"graphId\\":28,\\"nodeId\\":43,\\"groundingId\\":\\"23950\\",\\"executableScript\\":\\"async def perform(page: Page) -> str:\\\\n label_div = page.locator(\'div.muted\', has_text=\\\\\\"first name\\\\\\")\\\\n print(label_div.is_visible)\\\\n if label_div.is_visible():\\\\n value_div = label_div.locator(\'xpath=following-sibling::div\').first\\\\n print(value_div)\\\\n if await value_div.is_visible():\\\\n return await value_div.inner_text()\\\\n spanish_label_div = page.locator(\'div.muted\', has_text=\\\\\\"Primer nombre de su hijo/a\\\\\\")\\\\n if await spanish_label_div.is_visible():\\\\n spanish_value_div = spanish_label_div.locator(\'xpath=following-sibling::div\').first\\\\n if await spanish_value_div.is_visible():\\\\n return await spanish_value_div.inner_text()\\\\n return \'\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":44,\\"groundingId\\":\\"23382\\",\\"executableScript\\":\\"async def perform(page: Page) -> str:\\\\n label_div = page.locator(\'div.muted\', has_text=\\\\\\"last name\\\\\\")\\\\n if await label_div.is_visible():\\\\n value_div = label_div.locator(\'xpath=following-sibling::div\').first\\\\n if await value_div.is_visible():\\\\n return await value_div.inner_text()\\\\n spanish_label_div = page.locator(\'div.muted\', has_text=\\\\\\"Apellido de su hijo/a\\\\\\")\\\\n if await spanish_label_div.is_visible():\\\\n spanish_value_div = spanish_label_div.locator(\'xpath=following-sibling::div\').first\\\\n if await spanish_value_div.is_visible():\\\\n return await spanish_value_div.inner_text()\\\\n return \'\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":45,\\"groundingId\\":\\"22647\\",\\"executableScript\\":\\"async def perform(page: Page) -> str:\\\\n label_div = page.locator(\'div.muted\', has_text=\\\\\\"Phone number (we will call you at this number)\\\\\\")\\\\n if await label_div.is_visible():\\\\n value_div = label_div.locator(\'xpath=following-sibling::div\').first\\\\n if await value_div.is_visible():\\\\n return await value_div.inner_text()\\\\n spanish_label_div = page.locator(\'div.muted\', has_text=\\\\\\"N\\u00famero de tel\\u00e9fono (Le llamaremos al este n\\u00famero)\\\\\\")\\\\n if await spanish_label_div.is_visible():\\\\n spanish_value_div = spanish_label_div.locator(\'xpath=following-sibling::div\').first\\\\n if await spanish_value_div.is_visible():\\\\n return await spanish_value_div.inner_text()\\\\n return \'\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":47,\\"groundingId\\":\\"22456\\",\\"executableScript\\":\\"async def perform(page: Page, loop_element3: Locator) -> str:\\\\n event_name = loop_element3.locator(\'[data-component=\\\\\\"event-name\\\\\\"]\')\\\\n first_div = event_name.locator(\'div\').first\\\\n name = await first_div.locator(\'span\').inner_text()\\\\n return name\\"}", "{\\"graphId\\":28,\\"nodeId\\":48,\\"groundingId\\":\\"30992\\",\\"executableScript\\":\\"async def perform(event_name: str) -> str:\\\\n return event_name.replace(\'with \', \'\').replace(\'\\u2019\', \\\\\\"\'\\\\\\").strip()\\"}", "{\\"graphId\\":28,\\"nodeId\\":111,\\"groundingId\\":\\"31820\\",\\"executableScript\\":\\"async def perform(page: Page, report_list: list[dict[str, Any]] | None, date: str, event_time: str, membername: str) -> int:\\\\n if not report_list:\\\\n return 0\\\\n date = date.replace(\' TODAY\', \'\')\\\\n date_obj = datetime.strptime(date, \'%A, %B %d, %Y\')\\\\n normalized_date = date_obj.strftime(\'%Y-%d-%m\')\\\\n for entry in report_list:\\\\n if entry[\'date\'] == normalized_date and entry[\'time\'] == event_time and (entry[\'memberName\'] == membername):\\\\n print(entry,\\\\\\"match\\\\\\",normalized_date,event_time,membername)\\\\n return 1\\\\n return 0\\"}", "{\\"graphId\\":28,\\"nodeId\\":49,\\"groundingId\\":\\"19396\\",\\"executableScript\\":\\"async def perform(page: Page, membername: str, phonenumber: str, firstname: str, lastname: str, event_timezone: str) -> int:\\\\n empty_fields = []\\\\n if not membername:\\\\n empty_fields.append(\'membername\')\\\\n if not phonenumber:\\\\n empty_fields.append(\'phonenumber\')\\\\n if not firstname:\\\\n empty_fields.append(\'firstname\')\\\\n if not lastname:\\\\n empty_fields.append(\'lastname\')\\\\n if not event_timezone:\\\\n empty_fields.append(\'timezone\')\\\\n if empty_fields:\\\\n print(\',\'.join(empty_fields))\\\\n return 0\\\\n return 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":88,\\"groundingId\\":\\"21795\\",\\"executableScript\\":\\"async def perform(date: str, event_time: str, event_timezone: str,membername:str,phonenumber:str) -> str:\\\\n return f\'Alert - Appointment with Missing Data: [{phonenumber}, ( {date} ) , {event_time} , {event_timezone},{membername} ]\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":90,\\"groundingId\\":\\"19375\\",\\"executableScript\\":\\"async def perform(message: str | None) -> dict[str, Any]:\\\\n message_text = message if message is not None else \'\'\\\\n return {\'channel\': \'hazel-referral-task-exceptions\', \'blocks\': [{\'type\': \'section\', \'text\': {\'type\': \'mrkdwn\', \'text\': f\'*{message_text}*:\'}}]}\\"}", "{\\"graphId\\":28,\\"nodeId\\":108,\\"groundingId\\":\\"22272\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n current_url = page.url\\\\n target_urls = [\'https://demo.my.hazel.co/\', \'https://my.hazel.co/\']\\\\n if any((current_url.startswith(url) for url in target_urls)):\\\\n await page.close()\\"}", "{\\"graphId\\":28,\\"nodeId\\":92,\\"groundingId\\":\\"30136\\",\\"executableScript\\":\\"async def perform(date: str | None, event_time: str | None, event_timezone: str | None, membername: str | None, message: str | None ,est_time:str| None,member_timezone:str| None) -> list[str]:\\\\n now_utc = datetime.now(ZoneInfo(\'UTC\'))\\\\n now_ist = datetime.now(ZoneInfo(\'Asia/Kolkata\'))\\\\n utc_str = now_utc.strftime(\'%Y-%d-%m %H:%M:%S UTC\')\\\\n ist_str = now_ist.strftime(\'%Y-%d-%m %H:%M:%S IST\')\\\\n formatted_date = \'\'\\\\n if date:\\\\n cleaned_date = date.replace(\' TODAY\', \'\')\\\\n parsed_date = datetime.strptime(cleaned_date, \'%A, %B %d, %Y\')\\\\n formatted_date = parsed_date.strftime(\'%Y-%d-%m\')\\\\n return [utc_str, ist_str, formatted_date, event_time or \'\', event_timezone or \'\', membername or \'\', message or \'\',est_time or \'\',member_timezone or \'\']\\"}", "{\\"graphId\\":28,\\"nodeId\\":93,\\"groundingId\\":\\"22834\\",\\"executableScript\\":\\"async def perform(report: list[str] | None, report_sheet_id: str | None) -> dict[str, Any]:\\\\n if not report or not report_sheet_id:\\\\n return {}\\\\n return {\'api_url\': \'https://rpa-server-prod.onrender.com\', \'google_sheet_id\': report_sheet_id, \'google_sheet_range\': \'Report!A:J\', \'sheet_data\': [report]}\\"}", "{\\"graphId\\":28,\\"nodeId\\":190,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(5)\\"}", "{\\"graphId\\":28,\\"nodeId\\":53,\\"groundingId\\":\\"19448\\",\\"executableScript\\":\\"async def perform(page: Page, hazel: str | None) -> None:\\\\n if not hazel:\\\\n raise ValueError(\'Hazel URL parameter is required\')\\\\n context = page.context\\\\n new_page = await context.new_page()\\\\n await new_page.goto(hazel)\\\\n await new_page.wait_for_load_state(\'domcontentloaded\')\\"}", "{\\"graphId\\":28,\\"nodeId\\":195,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(15)\\"}", "{\\"graphId\\":28,\\"nodeId\\":103,\\"groundingId\\":\\"19936\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n google_button = page.locator(\\\\\\"button svg title:has-text(\'google-logo\')\\\\\\")\\\\n if await google_button.count() > 0:\\\\n return 0\\\\n text_locator = page.get_by_text(\'Choose an account\', exact=True)\\\\n if await text_locator.is_visible():\\\\n return 1\\\\n return 2\\"}", "{\\"graphId\\":28,\\"nodeId\\":54,\\"groundingId\\":\\"18801\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n google_button = page.locator(\\\\\\"button svg title:has-text(\'google-logo\')\\\\\\").locator(\'..\')\\\\n async with page.expect_navigation():\\\\n await google_button.click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":101,\\"groundingId\\":\\"21923\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n if await page.get_by_role(\'heading\').get_by_text(\'Choose an account\', exact=True).is_visible():\\\\n return 0\\\\n return 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":102,\\"groundingId\\":\\"21924\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_text(\'a_luminai@hazel.co\', exact=True).click(timeout=25000)\\\\n await page.wait_for_url(\'https://my.hazel.co/**\')\\"}", "{\\"graphId\\":28,\\"nodeId\\":179,\\"groundingId\\":\\"31016\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_role(\'link\', name=\'Users\').click(timeout=30000)\\"}", "{\\"graphId\\":28,\\"nodeId\\":175,\\"groundingId\\":\\"30125\\",\\"executableScript\\":\\"async def perform(page: Page, membername: str | None) -> None:\\\\n await page.get_by_placeholder(\'Search for users by name or email\').fill(membername)\\"}", "{\\"graphId\\":28,\\"nodeId\\":185,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(15)\\"}", "{\\"graphId\\":28,\\"nodeId\\":184,\\"groundingId\\":\\"30736\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n support_elements = page.locator(\'._1rikn88m\').filter(has_text=\'Support\')\\\\n count = await support_elements.count()\\\\n return 0 if count == 1 else 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":176,\\"groundingId\\":\\"30155\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.locator(\'._1rikn88m\').filter(has_text=re.compile(\'support\', re.IGNORECASE)).click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":177,\\"groundingId\\":\\"30724\\",\\"executableScript\\":\\"async def perform(page: Page) -> str:\\\\n timezone_label = page.get_by_text(\'Timezone\', exact=True)\\\\n timezone_value = timezone_label.locator(\'xpath=following-sibling::div\').first\\\\n value = await timezone_value.inner_text()\\\\n return \'US/Pacific\' if value == \'None\' else value\\"}", "{\\"graphId\\":28,\\"nodeId\\":187,\\"groundingId\\":\\"31239\\",\\"executableScript\\":\\"async def perform(event_time: str | None, member_timezone: str) -> str:\\\\n if not event_time or not member_timezone:\\\\n return \'\'\\\\n time_parts = event_time.lower().split(\' - \')\\\\n if len(time_parts) != 2:\\\\n return \'\'\\\\n (start_time_str, end_time_str) = time_parts\\\\n today = datetime.now().date()\\\\n start_time = datetime.strptime(f\'{today} {start_time_str}\', \'%Y-%m-%d %I:%M%p\').replace(tzinfo=ZoneInfo(\'America/Los_Angeles\'))\\\\n end_time = datetime.strptime(f\'{today} {end_time_str}\', \'%Y-%m-%d %I:%M%p\').replace(tzinfo=ZoneInfo(\'America/Los_Angeles\'))\\\\n start_time_converted = start_time.astimezone(ZoneInfo(member_timezone))\\\\n end_time_converted = end_time.astimezone(ZoneInfo(member_timezone))\\\\n converted_start = start_time_converted.strftime(\'%I:%M%p\').lower().lstrip(\'0\')\\\\n converted_end = end_time_converted.strftime(\'%I:%M%p\').lower().lstrip(\'0\')\\\\n return f\'{converted_start} - {converted_end}\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":58,\\"groundingId\\":\\"22873\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_role(\'link\', name=\'Patients\').click(timeout=50000)\\\\n await page.wait_for_load_state(\'domcontentloaded\')\\"}", "{\\"graphId\\":28,\\"nodeId\\":59,\\"groundingId\\":\\"18818\\",\\"executableScript\\":\\"async def perform(page: Page, phonenumber: str) -> None:\\\\n search_input = page.get_by_placeholder(\'Search by name\')\\\\n await search_input.fill(phonenumber)\\\\n await search_input.press(\'Enter\')\\"}", "{\\"graphId\\":28,\\"nodeId\\":199,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(10)\\"}", "{\\"graphId\\":28,\\"nodeId\\":68,\\"groundingId\\":\\"23583\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n no_results = page.get_by_text(\'No results found\')\\\\n if await no_results.is_visible():\\\\n return 0\\\\n results = page.locator(\'._1nrlvr2 ._u4c66n\')\\\\n count = await results.count()\\\\n if count == 1:\\\\n return 1\\\\n elif count > 1:\\\\n return 2\\\\n return 0\\"}", "{\\"graphId\\":28,\\"nodeId\\":69,\\"groundingId\\":\\"21791\\",\\"executableScript\\":\\"async def perform(phonenumber: str | None, date: str | None, event_time: str | None, event_timezone: str | None, membername: str | None) -> str:\\\\n return f\'Alert - Phone Number Issue: [ {phonenumber} , ({date}) , {event_time} , {event_timezone} , {membername} ]\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":70,\\"groundingId\\":\\"19000\\",\\"executableScript\\":\\"async def perform(page: Page) -> str:\\\\n first_result = page.locator(\'button[data-id]\').first\\\\n await first_result.wait_for()\\\\n name_element = first_result.locator(\'div._1nb6k8cz\')\\\\n return await name_element.inner_text()\\"}", "{\\"graphId\\":28,\\"nodeId\\":71,\\"groundingId\\":\\"22888\\",\\"executableScript\\":\\"async def perform(page: Page, name: str | None, firstname: str | None, lastname: str | None) -> int:\\\\n if name is None or firstname is None or lastname is None:\\\\n return 1\\\\n name_upper = name.upper()\\\\n firstname_upper = firstname.upper()\\\\n lastname_upper = lastname.upper()\\\\n if firstname_upper in name_upper and lastname_upper in name_upper:\\\\n return 0\\\\n return 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":73,\\"groundingId\\":\\"31817\\",\\"executableScript\\":\\"async def perform(page: Page, firstname: str | None, lastname: str | None) -> None:\\\\n if not firstname or not lastname:\\\\n raise ValueError(\'First name and last name are required\')\\\\n name_pattern = re.compile(f\'{firstname}.*{lastname}\', re.IGNORECASE)\\\\n await page.get_by_role(\'button\').filter(has_text=name_pattern).click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":63,\\"groundingId\\":\\"18840\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n tasks = page.locator(\'[data-testing-id=\\\\\\"tasks\\\\\\"]\')\\\\n await tasks.wait_for(state=\'visible\', timeout=20000)\\\\n await tasks.click(timeout=25000)\\"}", "{\\"graphId\\":28,\\"nodeId\\":200,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(5)\\"}", "{\\"graphId\\":28,\\"nodeId\\":140,\\"groundingId\\":\\"22821\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n tasks_section = page.locator(\'#Tasks\')\\\\n no_results = tasks_section.get_by_role(\'link\').filter(has_text=\'HEART Referral\').filter(has_text=\'HEART Referral\')\\\\n if await no_results.is_visible():\\\\n return 1\\\\n return 0\\"}", "{\\"graphId\\":28,\\"nodeId\\":150,\\"groundingId\\":\\"22365\\",\\"executableScript\\":\\"async def perform(phonenumber: str | None, date: str | None, event_time: str | None, event_timezone: str | None, membername: str | None) -> str:\\\\n return f\'Alert - No Heart Referral Task: [ {phonenumber} , ({date}) , {event_time} , {event_timezone} , {membername} ]\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":151,\\"groundingId\\":\\"22368\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n current_url = page.url\\\\n target_urls = [\'https://demo.my.hazel.co/\', \'https://my.hazel.co/\']\\\\n if any((current_url.startswith(url) for url in target_urls)):\\\\n await page.close()\\"}", "{\\"graphId\\":28,\\"nodeId\\":64,\\"groundingId\\":\\"22046\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n tasks_section = page.locator(\'#Tasks\')\\\\n await tasks_section.get_by_role(\'link\').filter(has_text=\'HEART Referral\').filter(has_text=\'HEART Referral\').click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":65,\\"groundingId\\":\\"18849\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.locator(\'[data-testing-id=\\\\\\"edit-assignee\\\\\\"]\').click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":66,\\"groundingId\\":\\"31029\\",\\"executableScript\\":\\"async def perform(page: Page, membername: str) -> None:\\\\n assignee_input = page.locator(\'[data-testing-id=\\\\\\"Assignee Name\\\\\\"]\')\\\\n await assignee_input.wait_for(state=\'visible\')\\\\n await assignee_input.fill(membername.replace(\\\\\\"\'\\\\\\",\'\\u2019\'))\\"}", "{\\"graphId\\":28,\\"nodeId\\":188,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(5)\\"}", "{\\"graphId\\":28,\\"nodeId\\":162,\\"groundingId\\":\\"24045\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n no_results = page.get_by_text(\'No results found\', exact=True)\\\\n if await no_results.is_visible():\\\\n return 0\\\\n return 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":164,\\"groundingId\\":\\"24071\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n assignee_input = page.get_by_placeholder(\'Assignee Name\')\\\\n await assignee_input.clear()\\\\n await assignee_input.click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":165,\\"groundingId\\":\\"24096\\",\\"executableScript\\":\\"async def perform(page: Page) -> list[str]:\\\\n assignee_input = page.get_by_placeholder(\'Assignee Name\')\\\\n await assignee_input.click()\\\\n await assignee_input.focus()\\\\n elements = page.locator(\'._13tvxmaj div:first-child div:first-child\')\\\\n return await elements.all_inner_texts()\\"}", "{\\"graphId\\":28,\\"nodeId\\":166,\\"groundingId\\":\\"24086\\",\\"executableScript\\":\\"async def perform(options: list[str], membername: str | None) -> str:\\\\n if not membername:\\\\n return \'\'\\\\n \\\\n # Split membername into parts, lowercased and stripped of extra spaces\\\\n name_parts = [part.lower().strip() for part in membername.split()]\\\\n \\\\n # Loop through each option and check if all parts of membername are in the option\\\\n for option in options:\\\\n option_lower = option.lower().strip() # Stripping extra spaces from the option\\\\n if all(part in option_lower for part in name_parts):\\\\n return option\\\\n \\\\n return \'\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":167,\\"groundingId\\":\\"24088\\",\\"executableScript\\":\\"async def perform(page: Page, matching_option: str) -> None:\\\\n await page.get_by_placeholder(\'Assignee Name\').fill(matching_option)\\\\n option = page.get_by_test_id(matching_option)\\\\n await page.locator(f\'[data-testing-id*=\\\\\\"{matching_option}\\\\\\"]\').click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":74,\\"groundingId\\":\\"19552\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n # await page.locator(\'[data-testing-id=\\\\\\"edit-assignee\\\\\\"]\').click()\\\\n await page.locator(\'[data-testing-id=\\\\\\"Reassign\\\\\\"]\').click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":75,\\"groundingId\\":\\"19104\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.locator(\'button._1vox98xz\').click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":76,\\"groundingId\\":\\"19120\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n date_button = page.locator(\'[data-testing-id=\\\\\\"Change Due Date\\\\\\"]\')\\\\n await date_button.click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":77,\\"groundingId\\":\\"22036\\",\\"executableScript\\":\\"async def perform(page: Page, date: str | None) -> None:\\\\n if not date:\\\\n raise ValueError(\'Date is required\')\\\\n clean_date = date.replace(\' TODAY\', \'\')\\\\n dt = datetime.strptime(clean_date, \'%A, %B %d, %Y\')\\\\n formatted_date = dt.strftime(\'%m/%d/%Y\')\\\\n date_input = page.locator(\\\\\\"[data-testing-id=\'Task Due Date\']\\\\\\")\\\\n await expect(date_input).to_be_visible()\\\\n await expect(date_input).to_be_enabled()\\\\n await date_input.fill(formatted_date)\\"}", "{\\"graphId\\":28,\\"nodeId\\":192,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(8)\\"}", "{\\"graphId\\":28,\\"nodeId\\":85,\\"groundingId\\":\\"31242\\",\\"executableScript\\":\\"async def perform(date: str | None, est_time: str | None, member_timezone: str | None) -> str:\\\\n if not all([date, est_time, member_timezone]):\\\\n return \'\'\\\\n dt = datetime.strptime(date, \'%A, %B %d, %Y\')\\\\n start_time = est_time.split(\'-\')[0].strip()\\\\n time_obj = datetime.strptime(start_time, \'%I:%M%p\')\\\\n full_dt = dt.replace(hour=time_obj.hour, minute=time_obj.minute)\\\\n tz_mapping = {\\\\n \'US/Pacific\': (\'PST\', \'PDT\'),\\\\n \'America/Los_Angeles\': (\'PST\', \'PDT\'),\\\\n \'US/Mountain\': (\'MST\', \'MDT\'),\\\\n \'America/Denver\': (\'MST\', \'MDT\'),\\\\n \'US/Central\': (\'CST\', \'CDT\'),\\\\n \'America/Chicago\': (\'CST\', \'CDT\'),\\\\n \'US/Eastern\': (\'EST\', \'EDT\'),\\\\n \'America/New_York\': (\'EST\', \'EDT\'),\\\\n \'US/Hawaii\': (\'HST\', \'HDT\'),\\\\n \'Pacific/Honolulu\': (\'HST\', \'HDT\'),\\\\n \'America/Alaska\': (\'AKST\', \'AKDT\'),\\\\n \'US/Alaska\': (\'AKST\', \'AKDT\'),\\\\n \'America/Anchorage\': (\'AKST\', \'AKDT\'),\\\\n \'America/Phoenix\': (\'MST\', \'MDT\'), # Arizona does not observe DST\\\\n \'America/Indianapolis\': (\'EST\', \'EDT\'), # Indiana follows Eastern Time, including DST\\\\n \'America/Detroit\': (\'EST\', \'EDT\'),}\\\\n\\\\n tz = ZoneInfo(member_timezone)\\\\n full_dt_tz = full_dt.replace(tzinfo=tz)\\\\n is_dst = full_dt_tz.dst() != timedelta(0)\\\\n (std_abbr, dst_abbr) = tz_mapping.get(member_timezone, (\'\', \'\'))\\\\n tz_abbr = dst_abbr if is_dst else std_abbr\\\\n formatted_date = full_dt.strftime(\'%m/%d/%Y\')\\\\n formatted_time = full_dt.strftime(\'%I:%M%p\').lstrip(\'0\')\\\\n return f\'{formatted_date} @ {formatted_time} [{tz_abbr}]\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":130,\\"groundingId\\":\\"20328\\",\\"executableScript\\":\\"async def perform(note_time: str | None) -> str:\\\\n if note_time is None:\\\\n return \'\'\\\\n return f\'Enrollment call scheduled for {note_time} . Will call family then to schedule intake.Auto Assigned\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":86,\\"groundingId\\":\\"19195\\",\\"executableScript\\":\\"async def perform(page: Page, note: str) -> None:\\\\n await page.locator(\'[data-testing-id=\\\\\\"Note\\\\\\"]\').fill(note)\\"}", "{\\"graphId\\":28,\\"nodeId\\":81,\\"groundingId\\":\\"19174\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.locator(\'[data-testing-id=\\\\\\"Update\\\\\\"]\').click(timeout=50000)\\"}", "{\\"graphId\\":28,\\"nodeId\\":83,\\"groundingId\\":\\"22271\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n current_url = page.url\\\\n target_urls = [\'https://demo.my.hazel.co/\', \'https://my.hazel.co/\']\\\\n if any((current_url.startswith(url) for url in target_urls)):\\\\n await page.close()\\"}", "{\\"graphId\\":28,\\"nodeId\\":191,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> dict[str, Any]:\\\\n\\\\t return {\\\\n\\\\t\\\\t \'url\': \'https://a.luminai.com/api/v1/s2s/event\',\\\\n\\\\t\\\\t \'method\': \'POST\',\\\\n\\\\t\\\\t \'headers\': {\\\\n\\\\t\\\\t\\\\t \'Content-Type\': \'application/json\',\\\\n\\\\t\\\\t\\\\t \'X-Auth-Token\': \'s2s.fanx3r30hpz92a6exk6rpx.dw35zgl03lr6zu5atst11a\'\\\\n\\\\t\\\\t },\\\\n\\\\t\\\\t \'body\': {\\\\n\\\\t\\\\t\\\\t \\\\\\"id\\\\\\": base64.b32encode(f\\\\\\"{int(time.time() * 1e6)}\\\\\\".encode()).decode().strip(\\\\\\"=\\\\\\"),\\\\n\\\\t\\\\t\\\\t \\\\\\"tag\\\\\\": \\\\\\"billing_ticket_count\\\\\\",\\\\n\\\\t\\\\t\\\\t \\\\\\"timestamp\\\\\\": int(time.time() * 1000),\\\\n\\\\t\\\\t\\\\t \\\\\\"workflow_id\\\\\\": workflow_id,\\\\n\\\\t\\\\t\\\\t \\\\\\"execution_id\\\\\\": execution_id, \\\\n\\\\t\\\\t\\\\t \\\\\\"execution_source\\\\\\": execution_source,\\\\n\\\\t\\\\t\\\\t \\\\\\"runtime_environment\\\\\\": runtime_environment,\\\\n\\\\t\\\\t\\\\t \\\\\\"ticket_count\\\\\\": 1\\\\n\\\\t\\\\t }\\\\n\\\\t }\\"}", "{\\"graphId\\":28,\\"nodeId\\":94,\\"groundingId\\":\\"19555\\",\\"executableScript\\":\\"async def perform() -> str:\\\\n return \'\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":170,\\"groundingId\\":\\"31251\\",\\"executableScript\\":\\"async def perform(page: Page, membername: str | None) -> int:\\\\n if not membername:\\\\n return 1\\\\n escaped_name = membername.replace(\\\\\\"\'\\\\\\", \\\\\\"\\\\\\\\\\\\\\\\\\u2019\\\\\\")\\\\n count = await page.locator(f\'[data-testing-id*=\\\\\\"{escaped_name}\\\\\\"]\').count()\\\\n print(escaped_name)\\\\n if count == 0:\\\\n escaped_name = membername.replace(\\\\\\"\'\\\\\\", \\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\")\\\\n count = await page.locator(f\'[data-testing-id*=\\\\\\"{escaped_name}\\\\\\"]\').count()\\\\n return 0 if count == 1 else 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":67,\\"groundingId\\":\\"31254\\",\\"executableScript\\":\\"async def perform(page: Page, membername: str | None) -> None:\\\\n if not membername:\\\\n raise ValueError(\'Member name is required\')\\\\n escaped_name = membername.replace(\\\\\\"\'\\\\\\", \\\\\\"\\\\\\\\\\\\\\\\\\u2019\\\\\\")\\\\n count = await page.locator(f\'[data-testing-id*=\\\\\\"{escaped_name}\\\\\\"]\').count()\\\\n if count == 0:\\\\n escaped_name = membername.replace(\\\\\\"\'\\\\\\", \\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\")\\\\n await page.locator(f\'[data-testing-id*=\\\\\\"{escaped_name}\\\\\\"]\').click()\\"}", "{\\"graphId\\":28,\\"nodeId\\":172,\\"groundingId\\":\\"27599\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n current_url = page.url\\\\n target_urls = [\'https://demo.my.hazel.co/\', \'https://my.hazel.co/\']\\\\n if any((current_url.startswith(url) for url in target_urls)):\\\\n await page.close()\\"}", "{\\"graphId\\":28,\\"nodeId\\":72,\\"groundingId\\":\\"21792\\",\\"executableScript\\":\\"async def perform(phonenumber: str | None, date: str | None, event_time: str | None, event_timezone: str | None, membername: str | None) -> str:\\\\n return f\'Alert - Patient Does Not Match: [{phonenumber},( {date} ), {event_time} , {event_timezone} , {membername}]\'\\"}", "{\\"graphId\\":28,\\"nodeId\\":142,\\"groundingId\\":\\"22852\\",\\"executableScript\\":\\"async def perform(page: Page, firstname: str | None, lastname: str | None) -> int:\\\\n if firstname is None or lastname is None:\\\\n return 1\\\\n full_name = f\'{firstname} {lastname}\'\\\\n name_exists = await page.get_by_text(full_name).is_visible()\\\\n return 0 if not name_exists else 1\\"}", "{\\"graphId\\":28,\\"nodeId\\":183,\\"groundingId\\":\\"30137\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n current_url = page.url\\\\n target_urls = [\'https://demo.my.hazel.co/\', \'https://my.hazel.co/\']\\\\n if any((current_url.startswith(url) for url in target_urls)):\\\\n await page.close()\\"}", "{\\"graphId\\":28,\\"nodeId\\":55,\\"groundingId\\":\\"18806\\",\\"executableScript\\":\\"async def perform(page: Page, hazel_username: str | None) -> None:\\\\n if hazel_username is None:\\\\n raise ValueError(\'hazel_username is required\')\\\\n await page.get_by_role(\'textbox\', name=\'Email or phone\').fill(hazel_username)\\"}", "{\\"graphId\\":28,\\"nodeId\\":56,\\"groundingId\\":\\"18807\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_role(\'button\', name=\'Next\').click()\\\\n await page.wait_for_url(\'**\')\\"}", "{\\"graphId\\":28,\\"nodeId\\":196,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(10)\\"}", "{\\"graphId\\":28,\\"nodeId\\":197,\\"groundingId\\":\\"31814\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n continue_text = page.get_by_text(re.compile(\'continue\', re.IGNORECASE))\\\\n await continue_text.locator(\'xpath=ancestor::button\').click(timeout=30000)\\"}", "{\\"graphId\\":28,\\"nodeId\\":198,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(5)\\"}", "{\\"graphId\\":144,\\"nodeId\\":147,\\"groundingId\\":\\"22451\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n next_button = page.locator(\\\\\\"[aria-label=\'Next\']\\\\\\")\\\\n end_message = page.get_by_text(\\\\\\"You\'ve reached the end of the list\\\\\\")\\\\n is_disabled_next = await next_button.is_visible() and await next_button.is_disabled()\\\\n is_end_message = await end_message.is_visible()\\\\n return 0 if (is_disabled_next or is_end_message) else 1\\"}", "{\\"graphId\\":144,\\"nodeId\\":161,\\"groundingId\\":\\"23951\\",\\"executableScript\\":\\"async def perform() -> int:\\\\n return 1\\"}", "{\\"graphId\\":144,\\"nodeId\\":145,\\"groundingId\\":\\"22344\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.locator(\'button[aria-label=\\\\\\"Next\\\\\\"]\').click()\\"}", "{\\"graphId\\":144,\\"nodeId\\":149,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(5)\\"}", "{\\"graphId\\":1,\\"nodeId\\":189,\\"groundingId\\":\\"31577\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n username_field = page.get_by_label(\'Username\')\\\\n if await username_field.is_visible():\\\\n return 0\\\\n return 1\\"}", "{\\"graphId\\":1,\\"nodeId\\":4,\\"groundingId\\":\\"21798\\",\\"executableScript\\":\\"async def perform(page: Page, calendly_username: str) -> None:\\\\n await page.get_by_role(\'textbox\', name=\'Username\').fill(calendly_username)\\\\n await page.wait_for_timeout(2000)\\"}", "{\\"graphId\\":1,\\"nodeId\\":136,\\"groundingId\\":\\"21805\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n checkbox = page.locator(\\\\\\"[data-se-for-name=\'rememberMe\']\\\\\\")\\\\n await checkbox.wait_for(state=\'visible\')\\\\n await checkbox.check()\\"}", "{\\"graphId\\":1,\\"nodeId\\":137,\\"groundingId\\":\\"21815\\",\\"executableScript\\":\\"async def perform(page: Page) -> None:\\\\n await page.get_by_role(\'button\', name=re.compile(\'next\', re.IGNORECASE)).click()\\"}", "{\\"graphId\\":1,\\"nodeId\\":7,\\"groundingId\\":\\"18000\\",\\"executableScript\\":\\"async def perform(page: Page, calendly_password: str) -> None:\\\\n await page.get_by_label(\'Password\').fill(calendly_password)\\\\n await page.get_by_role(\'button\', name=re.compile(\'verify\', re.IGNORECASE)).click()\\\\n await page.wait_for_url(\'**/app/**\')\\"}", "{\\"graphId\\":1,\\"nodeId\\":20,\\"groundingId\\":\\"\\",\\"executableScript\\":\\"async def perform() -> None:\\\\n await sleep(5)\\"}", "{\\"graphId\\":1,\\"nodeId\\":26,\\"groundingId\\":\\"19409\\",\\"executableScript\\":\\"async def perform(page: Page) -> int:\\\\n sms_form = page.locator(\'form.phone-authenticator-challenge\')\\\\n if await sms_form.is_visible():\\\\n return 0\\\\n return 1\\"}"]',
|
|
661
|
-
id: "01JFYVX6N2XQRXD6YABADMVY4P",
|
|
662
|
-
modal_function_call_id: "fc-01JFYV0H382GY9Y6PCSCY3YJT1",
|
|
663
|
-
modal_input_id: "in-01JFYV0H3FBWDM7FNSD6TNE2EP:1735128007793-0",
|
|
664
|
-
org_id: "org_2pApvG8T4K9ba1qqJoDE0DlGzpq",
|
|
665
|
-
runtime_environment: "production",
|
|
666
|
-
schedule_id: "L3Schedule:459:Hazel - Referral Task Auto Assignment:fe4116da-c6f1-413e-96f4-313d5348ba57",
|
|
667
|
-
source_ip: "98.85.175.215",
|
|
668
|
-
src: "api",
|
|
669
|
-
tag: "workflow_execution_event",
|
|
670
|
-
timestamp: 1735128947,
|
|
671
|
-
trigger_method: "scheduled",
|
|
672
|
-
user_id: "user_2mFx9hRygNfC3MHmjmcwfQ5Og4m",
|
|
673
|
-
user_parameters_input:
|
|
674
|
-
'{"calendly_2fa_sheet": "https://docs.google.com/spreadsheets/d/1V2OLliI4GRSsui6EFBBRmjG33f_pnu9pSKExhX2n-6A/edit?gid=0#gid=0", "calendly_filter": "EC team", "calendly_password": "@wDUV@qxG2hr.cAAKYqNQP39ZD6zcUdL", "calendly_username": "a_luminai@hazel.co", "hazel": "https://my.hazel.co/support", "hazel_password": "@wDUV@qxG2hr.cAAKYqNQP39ZD6zcUdL", "hazel_username": "a_luminai@hazel.co", "report_sheet_id": "1luEbmrpIhQrTuDC8CbMu8acf033dFFjC48CJrTi8XSU"}',
|
|
675
|
-
workflow_graph:
|
|
676
|
-
'{"id":1,"nodes":[{"id":1,"action":{"action_type":"start","objective":"Start point"},"custom_timeout":null,"error_handling_config":null},{"id":123,"action":{"output":"count","output_type":"int","output_description":"","input_variables":[],"action_type":"compute","objective":"set the value to 10"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":134,"action":{"output":"otp_time","output_type":"dict[str, Any]","output_description":"","input_variables":[],"action_type":"compute","objective":"initialize {"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":3,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"navigation","objective":"go to the page https://hazel.okta.com/app/calendly/exkaq62hb5yg73Rhu4h7/sso/saml and wait for the page untill it loads"},"custom_timeout":40.0,"error_handling_config":{"retry_attempts":3,"retry_delay":5.0,"on_error_goto":null}},{"id":109,"action":{"output":"report_data","output_type":"dict[str, Any]","output_description":"","input_variables":["report_sheet_id"],"action_type":"integration","integration":"google_sheet_read","objective":"Get all the values from a google sheet with Id {{report_sheet_id}} and range \\"Report!A:F\\""},"custom_timeout":45.0,"error_handling_config":{"retry_attempts":2,"retry_delay":5.0,"on_error_goto":null}},{"id":110,"action":{"output":"report_list","output_type":"list[dict[str, Any]]","output_description":"","input_variables":["report_data"],"action_type":"compute","objective":"From {{report_data}} get a list of objects"},"custom_timeout":45.0,"error_handling_config":{"retry_attempts":3,"retry_delay":3.0,"on_error_goto":null}},{"id":139,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 20 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":99,"action":{"input_variables":[],"action_type":"branch","branches":["if is not logged in , is [data-calendly-label=\'scheduled-events-link\'] not visible","else"]},"custom_timeout":45.0,"error_handling_config":{"retry_attempts":3,"retry_delay":10.0,"on_error_goto":null}},{"id":15,"action":{"output":"time","output_type":"str","output_description":"","input_variables":[],"action_type":"compute","objective":"get the current time in pst in the format yyyy-mm-dd hh:mm:ss in utc time"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":131,"action":{"input_variables":[],"action_type":"branch","branches":["if there is a text \\"receive a code by sms\\"","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":11,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click receive a code via sms button"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":112,"action":{"input_variables":["count","count"],"action_type":"loop","loop_type":{"loop_type":"foreach","iterable_type":"range","loop_index":"loop_index_count","loop_element":"loop_element_count"},"objective":"Iterate over {{count}}","sub_workflow":{"id":113,"nodes":[{"id":113,"action":{"action_type":"start","objective":"Start point"},"custom_timeout":null,"error_handling_config":null},{"id":22,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 30 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":121,"action":{"output":"sms_otp","output_type":"dict[str, Any]","output_description":"","input_variables":[],"action_type":"integration","integration":"luminai_server_request","objective":"GET request with the following url \'https://service.luminai.com/proxy/googleapi/sheets/1V2OLliI4GRSsui6EFBBRmjG33f_pnu9pSKExhX2n-6A/read?valueInputOption=USER_ENTERED&range=Okta!A:B\'"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":122,"action":{"output":"otp_time","output_type":"dict[str, Any]","output_description":"","input_variables":["sms_otp"],"action_type":"compute","objective":"get the last item from {{sms_otp}} values"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":13,"action":{"input_variables":["otp_time","time"],"action_type":"branch","branches":["if {{otp_time}} greater than {{time}}","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":135,"action":{"output":"otp_time","output_type":"dict[str, Any]","output_description":"","input_variables":["otp_time"],"action_type":"compute","objective":"update with {{otp_time}} .otp"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":125,"action":{"action_type":"finish","termination_type":"Loop Break","termination_msg":""},"custom_timeout":null,"error_handling_config":null},{"id":129,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":""},"custom_timeout":null,"error_handling_config":null}],"edges":[{"id":12,"from_step":113,"to_step":22},{"id":13,"from_step":22,"to_step":121},{"id":14,"from_step":121,"to_step":122},{"id":15,"from_step":122,"to_step":13},{"id":16,"from_step":13,"to_step":135},{"id":17,"from_step":135,"to_step":125},{"id":18,"from_step":13,"to_step":129}],"parameters":[{"parameter_type":"user_parameter","user_parameter":"calendly_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_2fa_sheet","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"report_sheet_id","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_filter","dtype":"str","description":"User specified parameter"}],"output_variables":[]}},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":14,"action":{"input_variables":["otp_time"],"action_type":"interaction","interaction_type":"default","objective":"enter {{otp_time}} .code in the field and then wait 2s and then click verify and then wait for the page to load"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":2,"retry_delay":10.0,"on_error_goto":null}},{"id":23,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait until meetings link in sidebar loads and click on the link and wait for the page to load"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":2,"retry_delay":10.0,"on_error_goto":null}},{"id":25,"action":{"input_variables":["calendly_filter"],"action_type":"interaction","interaction_type":"default","objective":"click on the field with selector [data-calendly-label=\\"scope-button\\"] and fill search input with {{calendly_filter}} and click the {{calendly_filter}} t option"},"custom_timeout":60.0,"error_handling_config":{"retry_attempts":3,"retry_delay":10.0,"on_error_goto":null}},{"id":30,"action":{"output":"enddate","output_type":"str","output_description":"","input_variables":[],"action_type":"compute","objective":"compute the date after 11 business days from todays date"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":35,"action":{"output":"startdate","output_type":"str","output_description":"","input_variables":[],"action_type":"compute","objective":"get the next business day in the format month dd, yyyy"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":31,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click on text Date Range"},"custom_timeout":60.0,"error_handling_config":{"retry_attempts":2,"retry_delay":10.0,"on_error_goto":null}},{"id":97,"action":{"input_variables":["startdate"],"action_type":"interaction","interaction_type":"default","objective":"select the role=\\"gridcell\\" with the button whose [aria label= {{startdate}} ]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":98,"action":{"input_variables":["enddate"],"action_type":"interaction","interaction_type":"default","objective":"enddselect the role=\\"gridcell\\" with the button whose [aria label= {{enddate}} ]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":37,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the button with the text apply and then wait for 2s"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":2,"retry_delay":5.0,"on_error_goto":null}},{"id":138,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 8 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":152,"action":{"output":"flag","output_type":"int","output_description":"","input_variables":[],"action_type":"compute","objective":"initialise to 0"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":143,"action":{"input_variables":["flag"],"action_type":"loop","loop_type":{"loop_type":"while","loop_index":"loop_index1"},"objective":"untill [aria-label=\\"Next\\"][disabled] this is visible or \\"You\'ve reached the end of the list\\" is visible and {{flag}} is 0","sub_workflow":{"id":144,"nodes":[{"id":144,"action":{"action_type":"start","objective":"Start point"},"custom_timeout":null,"error_handling_config":null},{"id":38,"action":{"input_variables":[],"action_type":"loop","loop_type":{"loop_type":"foreach","iterable_type":"list[Locator]","loop_index":"loop_index2","loop_element":"loop_element2"},"objective":"loop through data-component=\\"day-list-item\\"","sub_workflow":{"id":39,"nodes":[{"id":39,"action":{"action_type":"start","objective":"Start point"},"custom_timeout":null,"error_handling_config":null},{"id":40,"action":{"output":"date_text","output_type":"str","output_description":"","input_variables":["loop_element2"],"action_type":"read","objective":"get the text of {{loop_element2}} .data-component=\\"day-header\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":155,"action":{"output":"date","output_type":"str","output_description":"","input_variables":["date_text"],"action_type":"compute","objective":"from {{date_text}} remove \\"today\\" if present and trim extra spaces"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":27,"action":{"input_variables":["loop_element2"],"action_type":"loop","loop_type":{"loop_type":"foreach","iterable_type":"list[Locator]","loop_index":"loop_index3","loop_element":"loop_element3"},"objective":"loop through {{loop_element2}} [data-component=\\"event-list-item\\"]","sub_workflow":{"id":28,"nodes":[{"id":28,"action":{"action_type":"start","objective":"Start point"},"custom_timeout":null,"error_handling_config":null},{"id":29,"action":{"input_variables":["loop_element3"],"action_type":"interaction","interaction_type":"default","objective":"click on each item {{loop_element3}}"},"custom_timeout":60.0,"error_handling_config":{"retry_attempts":3,"retry_delay":10.0,"on_error_goto":null}},{"id":42,"action":{"output":"event_timezone","output_type":"str","output_description":"","input_variables":[],"action_type":"read","objective":"get the value of Invitee time zone"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":41,"action":{"output":"event_time","output_type":"str","output_description":"","input_variables":["loop_element3"],"action_type":"read","objective":"get the text from {{loop_element3}} .data-component=\\"event-time\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":43,"action":{"output":"firstname","output_type":"str","output_description":"","input_variables":[],"action_type":"read","objective":"get the value of childs firstname"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":44,"action":{"output":"lastname","output_type":"str","output_description":"","input_variables":[],"action_type":"read","objective":"get the value of childs last name"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":45,"action":{"output":"phonenumber","output_type":"str","output_description":"","input_variables":[],"action_type":"read","objective":"get the value of phonenumber if it is present else return empty string"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":47,"action":{"output":"event_name","output_type":"str","output_description":"","input_variables":["loop_element3"],"action_type":"read","objective":"get the text of {{loop_element3}} data-component=\\"event-name\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":48,"action":{"output":"membername","output_type":"str","output_description":"","input_variables":["event_name"],"action_type":"compute","objective":"from {{event_name}} remove \\"with\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":111,"action":{"input_variables":["report_list","date","event_time","membername"],"action_type":"branch","branches":["check if there no matching object in {{report_list}} with values date as {{date}} , time as {{event_time}} , memberName as {{membername}}","else"]},"custom_timeout":45.0,"error_handling_config":{"retry_attempts":3,"retry_delay":5.0,"on_error_goto":null}},{"id":49,"action":{"input_variables":["membername","phonenumber","firstname","lastname","event_timezone"],"action_type":"branch","branches":["if any of the {{membername}} , {{phonenumber}} , {{firstname}} , {{lastname}} , {{event_timezone}} is empty string , return the data which is missing as a comma seperated string","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":5,"retry_delay":0.0,"on_error_goto":null}},{"id":88,"action":{"output":"message","output_type":"str","output_description":"","input_variables":["date","event_time","event_timezone","phonenumber","membername"],"action_type":"compute","objective":"return ““Alert - Appointment with Missing Data: [ ( {{date}} ) , {{event_time}} , {{event_timezone}} , {{phonenumber}} , {{membername}} ]”"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":90,"action":{"output":"body","output_type":"dict[str, Any]","output_description":"","input_variables":["message"],"action_type":"compute","objective":"return an object {\\"channel\\": \\"hazel-referral-task-exceptions\\",\'blocks\':[{\'type\': \'section\',\'text\': {\'type\': \'mrkdwn\',\'text\': `*${ {{message}} }* :` } }] }"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":108,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"close the tab with the url \\"https://demo.my.hazel.co/\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":92,"action":{"output":"report","output_type":"list[str]","output_description":"","input_variables":["date","event_time","event_timezone","membername","message","est_time","member_timezone"],"action_type":"compute","objective":"current timestamp in UTC , current timestamp in IST , {{date}} in format yyyy-dd-mm, {{event_time}} , {{event_timezone}} , {{membername}} , {{message}} , {{est_time}} , {{member_timezone}} into a list of string"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":93,"action":{"output":"sheetdata","output_type":"dict[str, Any]","output_description":"","input_variables":["report","report_sheet_id"],"action_type":"integration","integration":"google_sheet_append","objective":"write {{report}} as an entry into the google sheet with id {{report_sheet_id}} and range \'Report!A:J\'"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":190,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 5 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":87,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":""},"custom_timeout":null,"error_handling_config":null},{"id":53,"action":{"input_variables":["hazel"],"action_type":"interaction","interaction_type":"default","objective":"go to {{hazel}} and wait for the page to load"},"custom_timeout":240.0,"error_handling_config":{"retry_attempts":3,"retry_delay":25.0,"on_error_goto":null}},{"id":195,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 15 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":103,"action":{"input_variables":[],"action_type":"branch","branches":["if there is sign in with google","if there is a text \'Choose an account\'","logged in"]},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":5,"retry_delay":10.0,"on_error_goto":null}},{"id":54,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click on sign in with google and wait for the page to load"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":101,"action":{"input_variables":[],"action_type":"branch","branches":["if there is a text \'Choose an account\'","else"]},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":2,"retry_delay":5.0,"on_error_goto":null}},{"id":102,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the selector [data-authuser=\\"0\\"] and wait for the page to load"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":179,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the sidebar users"},"custom_timeout":45.0,"error_handling_config":{"retry_attempts":3,"retry_delay":10.0,"on_error_goto":null}},{"id":175,"action":{"input_variables":["membername"],"action_type":"interaction","interaction_type":"default","objective":"Input {{membername}} into the search field"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":3,"retry_delay":10.0,"on_error_goto":null}},{"id":185,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 15 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":184,"action":{"input_variables":[],"action_type":"branch","branches":["if there is only one\\"Support\\" in this selector ._1rikn88m\'","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":176,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"select the output with \\"*@hazel.co\\""},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":3,"retry_delay":0.0,"on_error_goto":null}},{"id":177,"action":{"output":"member_timezone","output_type":"str","output_description":"","input_variables":[],"action_type":"read","objective":"get the corresponding value of Timezone"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":187,"action":{"output":"est_time","output_type":"str","output_description":"","input_variables":["event_time","member_timezone"],"action_type":"compute","objective":"convert the {{event_time}} time from pst into {{member_timezone}}"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":58,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click patients in the sidebar , wait for the page to load"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":3,"retry_delay":5.0,"on_error_goto":null}},{"id":59,"action":{"input_variables":["phonenumber"],"action_type":"interaction","interaction_type":"default","objective":"fill the {{phonenumber}} in the search bar and click enter"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":199,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 10 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":68,"action":{"input_variables":[],"action_type":"branch","branches":["check if there is no search result","check if there is one result","check if there is more than one search result"]},"custom_timeout":45.0,"error_handling_config":{"retry_attempts":2,"retry_delay":0.0,"on_error_goto":null}},{"id":69,"action":{"output":"message","output_type":"str","output_description":"","input_variables":["phonenumber","date","event_time","event_timezone","membername"],"action_type":"compute","objective":"return “Alert - Phone Number Issue: [ {{phonenumber}} , {{date}} , {{event_time}} , {{event_timezone}} , {{membername}} ]”"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":70,"action":{"output":"name","output_type":"str","output_description":"","input_variables":[],"action_type":"read","objective":"get the name of the member from the search result"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":71,"action":{"input_variables":["name","firstname","lastname"],"action_type":"branch","branches":["if {{name}} is same as {{firstname}} {{lastname}}","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":73,"action":{"input_variables":["firstname","lastname"],"action_type":"interaction","interaction_type":"default","objective":"select the search result with the {{firstname}} {{lastname}}"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":63,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click on the tasks tab with selector [data-testing-id=\\"tasks\\"]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":200,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 5 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":140,"action":{"input_variables":[],"action_type":"branch","branches":["there is no heart referral","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":150,"action":{"output":"message","output_type":"str","output_description":"","input_variables":["phonenumber","date","event_time","event_timezone","membername"],"action_type":"compute","objective":"return “Alert - No Heart Referral Task: [ {{phonenumber}} , {{date}} , {{event_time}} , {{event_timezone}} , {{membername}} ]”"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":151,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"close the tab with the url \\"https://demo.my.hazel.co/\\" or \\"https://my.hazel.co/\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":64,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click on the section with text HEART Referral"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":65,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the button with selector [data-testing-id=\\"edit-assignee\\"]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":66,"action":{"input_variables":["membername"],"action_type":"interaction","interaction_type":"default","objective":"enter the {{membername}} in the field with the selector [data-testing-id=\\"Assignee Name\\"]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":188,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 5 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":162,"action":{"input_variables":[],"action_type":"branch","branches":["check if there is a text \\"No results found\\"","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":164,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"clear the assignee input and click on the input"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":165,"action":{"output":"options","output_type":"list[str]","output_description":"","input_variables":[],"action_type":"read","objective":"get the value of all the first div in \'._13tvxmaj\'"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":166,"action":{"output":"matching_option","output_type":"str","output_description":"","input_variables":["options","membername"],"action_type":"compute","objective":"from {{options}} check if there is an item that has all parts in {{membername}}"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":167,"action":{"input_variables":["matching_option"],"action_type":"interaction","interaction_type":"default","objective":"enter the {{matching_option}} into Assignee and select the matching option"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":74,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"Click the button reassign"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":5,"retry_delay":5.0,"on_error_goto":null}},{"id":75,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the three horizontal dots and the top"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":76,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"Click on the change date popup"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":77,"action":{"input_variables":["date"],"action_type":"interaction","interaction_type":"default","objective":"Enter the field [data-testing-id=\\"Task Due Date]\\" with date {{date}} in the format mm/dd/yyyy"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":192,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 8 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":3,"retry_delay":3.0,"on_error_goto":null}},{"id":85,"action":{"output":"note_time","output_type":"str","output_description":"","input_variables":["date","est_time","member_timezone"],"action_type":"compute","objective":"return {{date}} , {{est_time}} , {{member_timezone}} in the format MM/DD/YYYY @ ##:##AM/PM [TimeZone e.g. CST]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":130,"action":{"output":"note","output_type":"str","output_description":"","input_variables":["note_time"],"action_type":"compute","objective":"return \\"Enrollment call scheduled for {{note_time}} . Will call family then to schedule intake. Auto Assigned\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":86,"action":{"input_variables":["note"],"action_type":"interaction","interaction_type":"default","objective":"fill the field [data-testing-id=\\"Note\\"] with {{note}}"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":81,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the button [data-testing-id=\\"Update\\"]"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":83,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"close the tab with the url \\"https://demo.my.hazel.co/\\" or \\"https://my.hazel.co/\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":191,"action":{"output":"ticket_count_response","output_type":"dict[str, Any]","output_description":"The ticket count response from the API","input_variables":[],"action_type":"integration","integration":"http_request","objective":"Send ticket count 1 to billing API"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":94,"action":{"output":"message","output_type":"str","output_description":"","input_variables":[],"action_type":"compute","objective":"return \\"\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":170,"action":{"input_variables":["membername"],"action_type":"branch","branches":["if there more than one [data-testing-id*=\\"{ {{membername}} }\\"]","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":67,"action":{"input_variables":["membername"],"action_type":"interaction","interaction_type":"default","objective":"select the option with the {{membername}}"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":172,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"close the tab with the url \\"https://demo.my.hazel.co/\\" or \\"https://my.hazel.co/\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":171,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":"Workflow completed."},"custom_timeout":null,"error_handling_config":null},{"id":72,"action":{"output":"message","output_type":"str","output_description":"","input_variables":["date","event_time","event_timezone","phonenumber","membername"],"action_type":"compute","objective":"return “Alert - Patient Does Not Match: [ ( {{date}} ), {{event_time}} , {{event_timezone}} , {{phonenumber}} , {{membername}} ]”"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":142,"action":{"input_variables":["firstname","lastname"],"action_type":"branch","branches":["check if there is no option matching name {{firstname}} {{lastname}}","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":183,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"close the tab with the url \\"https://demo.my.hazel.co/\\" or \\"https://my.hazel.co/\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":182,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":"Workflow completed."},"custom_timeout":null,"error_handling_config":null},{"id":55,"action":{"input_variables":["hazel_username"],"action_type":"interaction","interaction_type":"default","objective":"fill {{hazel_username}} into input type=\\"email\\""},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":56,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click next and wait for the page to load"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":196,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 10 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":197,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click continue"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":198,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 5 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}}],"edges":[{"id":35,"from_step":28,"to_step":29},{"id":36,"from_step":29,"to_step":42},{"id":37,"from_step":42,"to_step":41},{"id":38,"from_step":41,"to_step":43},{"id":39,"from_step":43,"to_step":44},{"id":40,"from_step":44,"to_step":45},{"id":41,"from_step":45,"to_step":47},{"id":42,"from_step":47,"to_step":48},{"id":43,"from_step":48,"to_step":111},{"id":44,"from_step":111,"to_step":49},{"id":45,"from_step":49,"to_step":88},{"id":46,"from_step":88,"to_step":90},{"id":47,"from_step":90,"to_step":108},{"id":48,"from_step":108,"to_step":92},{"id":49,"from_step":92,"to_step":93},{"id":50,"from_step":93,"to_step":190},{"id":51,"from_step":190,"to_step":87},{"id":52,"from_step":49,"to_step":53},{"id":53,"from_step":53,"to_step":195},{"id":54,"from_step":195,"to_step":103},{"id":55,"from_step":103,"to_step":54},{"id":56,"from_step":54,"to_step":101},{"id":57,"from_step":101,"to_step":102},{"id":58,"from_step":102,"to_step":179},{"id":59,"from_step":179,"to_step":175},{"id":60,"from_step":175,"to_step":185},{"id":61,"from_step":185,"to_step":184},{"id":62,"from_step":184,"to_step":176},{"id":63,"from_step":176,"to_step":177},{"id":64,"from_step":177,"to_step":187},{"id":65,"from_step":187,"to_step":58},{"id":66,"from_step":58,"to_step":59},{"id":67,"from_step":59,"to_step":199},{"id":68,"from_step":199,"to_step":68},{"id":69,"from_step":68,"to_step":69},{"id":70,"from_step":69,"to_step":90},{"id":71,"from_step":68,"to_step":70},{"id":72,"from_step":70,"to_step":71},{"id":73,"from_step":71,"to_step":73},{"id":74,"from_step":73,"to_step":63},{"id":75,"from_step":63,"to_step":200},{"id":76,"from_step":200,"to_step":140},{"id":77,"from_step":140,"to_step":150},{"id":78,"from_step":150,"to_step":151},{"id":79,"from_step":151,"to_step":92},{"id":80,"from_step":140,"to_step":64},{"id":81,"from_step":64,"to_step":65},{"id":82,"from_step":65,"to_step":66},{"id":83,"from_step":66,"to_step":188},{"id":84,"from_step":188,"to_step":162},{"id":85,"from_step":162,"to_step":164},{"id":86,"from_step":164,"to_step":165},{"id":87,"from_step":165,"to_step":166},{"id":88,"from_step":166,"to_step":167},{"id":89,"from_step":167,"to_step":74},{"id":90,"from_step":74,"to_step":75},{"id":91,"from_step":75,"to_step":76},{"id":92,"from_step":76,"to_step":77},{"id":93,"from_step":77,"to_step":192},{"id":94,"from_step":192,"to_step":85},{"id":95,"from_step":85,"to_step":130},{"id":96,"from_step":130,"to_step":86},{"id":97,"from_step":86,"to_step":81},{"id":98,"from_step":81,"to_step":83},{"id":99,"from_step":83,"to_step":191},{"id":100,"from_step":191,"to_step":94},{"id":101,"from_step":94,"to_step":92},{"id":102,"from_step":162,"to_step":170},{"id":103,"from_step":170,"to_step":67},{"id":104,"from_step":67,"to_step":74},{"id":105,"from_step":170,"to_step":172},{"id":106,"from_step":172,"to_step":171},{"id":107,"from_step":71,"to_step":72},{"id":108,"from_step":72,"to_step":90},{"id":109,"from_step":68,"to_step":142},{"id":110,"from_step":142,"to_step":72},{"id":111,"from_step":142,"to_step":73},{"id":112,"from_step":184,"to_step":183},{"id":113,"from_step":183,"to_step":182},{"id":114,"from_step":101,"to_step":55},{"id":115,"from_step":55,"to_step":56},{"id":116,"from_step":56,"to_step":196},{"id":117,"from_step":196,"to_step":197},{"id":118,"from_step":197,"to_step":198},{"id":119,"from_step":198,"to_step":179},{"id":120,"from_step":103,"to_step":101},{"id":121,"from_step":103,"to_step":179},{"id":122,"from_step":111,"to_step":87}],"parameters":[{"parameter_type":"user_parameter","user_parameter":"calendly_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_2fa_sheet","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"report_sheet_id","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_filter","dtype":"str","description":"User specified parameter"}],"output_variables":[]}},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":95,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":"Workflow completed."},"custom_timeout":null,"error_handling_config":null}],"edges":[{"id":32,"from_step":39,"to_step":40},{"id":33,"from_step":40,"to_step":155},{"id":34,"from_step":155,"to_step":27},{"id":123,"from_step":27,"to_step":95}],"parameters":[{"parameter_type":"user_parameter","user_parameter":"calendly_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_2fa_sheet","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"report_sheet_id","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_filter","dtype":"str","description":"User specified parameter"}],"output_variables":[]}},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":147,"action":{"input_variables":[],"action_type":"branch","branches":["check if next button is disabled","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":161,"action":{"output":"flag","output_type":"int","output_description":"","input_variables":[],"action_type":"compute","objective":"return 1"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":148,"action":{"action_type":"finish","termination_type":"Loop Break","termination_msg":""},"custom_timeout":null,"error_handling_config":null},{"id":145,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click aria-label=\\"Next\\" button"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":149,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 5 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":146,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":""},"custom_timeout":null,"error_handling_config":null}],"edges":[{"id":31,"from_step":144,"to_step":38},{"id":124,"from_step":38,"to_step":147},{"id":125,"from_step":147,"to_step":161},{"id":126,"from_step":161,"to_step":148},{"id":127,"from_step":147,"to_step":145},{"id":128,"from_step":145,"to_step":149},{"id":129,"from_step":149,"to_step":146}],"parameters":[{"parameter_type":"user_parameter","user_parameter":"calendly_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_2fa_sheet","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"report_sheet_id","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_filter","dtype":"str","description":"User specified parameter"}],"output_variables":[]}},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":154,"action":{"action_type":"finish","termination_type":"Successful","termination_msg":"Workflow completed."},"custom_timeout":null,"error_handling_config":null},{"id":189,"action":{"input_variables":[],"action_type":"branch","branches":["if there is a username field","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":4,"action":{"input_variables":["calendly_username"],"action_type":"interaction","interaction_type":"default","objective":"Enter the {{calendly_username}} and wait for 2s"},"custom_timeout":50.0,"error_handling_config":{"retry_attempts":2,"retry_delay":10.0,"on_error_goto":null}},{"id":136,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"check the checkbox"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":137,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"click the next button"},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":7,"action":{"input_variables":["calendly_password"],"action_type":"interaction","interaction_type":"default","objective":"enter the {{calendly_password}} and click verify buttton and wait for page to load"},"custom_timeout":90.0,"error_handling_config":{"retry_attempts":2,"retry_delay":10.0,"on_error_goto":null}},{"id":20,"action":{"input_variables":[],"action_type":"interaction","interaction_type":"default","objective":"wait for 5 seconds"},"custom_timeout":0.0,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}},{"id":26,"action":{"input_variables":[],"action_type":"branch","branches":["if there is a text \\"receive a code by sms\\"","else"]},"custom_timeout":null,"error_handling_config":{"retry_attempts":0,"retry_delay":0.0,"on_error_goto":null}}],"edges":[{"id":1,"from_step":1,"to_step":123},{"id":2,"from_step":123,"to_step":134},{"id":3,"from_step":134,"to_step":3},{"id":4,"from_step":3,"to_step":109},{"id":5,"from_step":109,"to_step":110},{"id":6,"from_step":110,"to_step":139},{"id":7,"from_step":139,"to_step":99},{"id":8,"from_step":99,"to_step":15},{"id":9,"from_step":15,"to_step":131},{"id":10,"from_step":131,"to_step":11},{"id":11,"from_step":11,"to_step":112},{"id":19,"from_step":112,"to_step":14},{"id":20,"from_step":14,"to_step":23},{"id":21,"from_step":23,"to_step":25},{"id":22,"from_step":25,"to_step":30},{"id":23,"from_step":30,"to_step":35},{"id":24,"from_step":35,"to_step":31},{"id":25,"from_step":31,"to_step":97},{"id":26,"from_step":97,"to_step":98},{"id":27,"from_step":98,"to_step":37},{"id":28,"from_step":37,"to_step":138},{"id":29,"from_step":138,"to_step":152},{"id":30,"from_step":152,"to_step":143},{"id":130,"from_step":143,"to_step":154},{"id":131,"from_step":131,"to_step":189},{"id":132,"from_step":189,"to_step":4},{"id":133,"from_step":4,"to_step":136},{"id":134,"from_step":136,"to_step":137},{"id":135,"from_step":137,"to_step":7},{"id":136,"from_step":7,"to_step":20},{"id":137,"from_step":20,"to_step":26},{"id":138,"from_step":26,"to_step":11},{"id":139,"from_step":26,"to_step":23},{"id":140,"from_step":189,"to_step":7},{"id":141,"from_step":99,"to_step":23}],"parameters":[{"parameter_type":"user_parameter","user_parameter":"calendly_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_2fa_sheet","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_username","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"hazel_password","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"report_sheet_id","dtype":"str","description":"User specified parameter"},{"parameter_type":"user_parameter","user_parameter":"calendly_filter","dtype":"str","description":"User specified parameter"}],"output_variables":[]}',
|
|
677
|
-
workflow_id: "459",
|
|
678
|
-
workflow_name: "Hazel - Referral Task Auto Assignment",
|
|
679
|
-
workflow_version: "1",
|
|
680
|
-
},
|
|
681
|
-
{
|
|
682
|
-
_timestamp: "2024-12-25T14:29:01.555489Z",
|
|
683
|
-
activityType: "ProgressQuizGroup",
|
|
684
|
-
activityUniqueCode: "chemical-structures-recall-quiz-1-quizzes",
|
|
685
|
-
api_key: "js.9eo4yzu1jlhxbzzxzrb6n.t36oh4mw6ay1tv7a852od",
|
|
686
|
-
click_id: {},
|
|
687
|
-
destination: "activity_click_v0",
|
|
688
|
-
doc_encoding: "UTF-8",
|
|
689
|
-
doc_host: "web.uplearn.co.uk",
|
|
690
|
-
doc_path: "/learn/biology-ocr-1/chemical-structures",
|
|
691
|
-
doc_search: "",
|
|
692
|
-
eventData: {
|
|
693
|
-
activityType: "ProgressQuizGroup",
|
|
694
|
-
activityUniqueCode: "chemical-structures-recall-quiz-1-quizzes",
|
|
695
|
-
moduleUniqueCode: "biology-ocr-1",
|
|
696
|
-
subsectionUniqueCode: "chemical-structures",
|
|
697
|
-
},
|
|
698
|
-
event_type: "ActivityClick",
|
|
699
|
-
eventn_ctx_event_id: "cc745f91-a967-42f7-8ad6-be037d9ce253",
|
|
700
|
-
ids: {
|
|
701
|
-
ga: "GA1.1.1136354751.1735137533",
|
|
702
|
-
},
|
|
703
|
-
local_tz_offset: 0,
|
|
704
|
-
location: {
|
|
705
|
-
city: "Coventry",
|
|
706
|
-
continent: "Europe",
|
|
707
|
-
country: "GB",
|
|
708
|
-
country_name: "United Kingdom",
|
|
709
|
-
latitude: 52.4391,
|
|
710
|
-
longitude: -1.5039,
|
|
711
|
-
region: "ENG",
|
|
712
|
-
zip: "CV6",
|
|
713
|
-
},
|
|
714
|
-
moduleUniqueCode: "biology-ocr-1",
|
|
715
|
-
page_title: "Learn | Up Learn",
|
|
716
|
-
project: "up-learn-webapp-production",
|
|
717
|
-
referer: "https://web.uplearn.co.uk/learn/biology-ocr-1/surface-area-to-volume-ratio",
|
|
718
|
-
screen_resolution: "1720x1080",
|
|
719
|
-
source_ip: "84.71.54.207",
|
|
720
|
-
src: "jitsu",
|
|
721
|
-
subsectionUniqueCode: "chemical-structures",
|
|
722
|
-
url: "https://web.uplearn.co.uk/learn/biology-ocr-1/chemical-structures",
|
|
723
|
-
user: {
|
|
724
|
-
anonymous_id: "06f8wdotsx",
|
|
725
|
-
email: "7026@twynhamschool.com",
|
|
726
|
-
hasLinkedUser: false,
|
|
727
|
-
hashed_anonymous_id: "8461c9038cb08842a3c5d538ed6b2c61",
|
|
728
|
-
id: "732222",
|
|
729
|
-
totalXp: 91,
|
|
730
|
-
userRole: "student",
|
|
731
|
-
},
|
|
732
|
-
user_agent:
|
|
733
|
-
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
|
|
734
|
-
user_language: "en-GB",
|
|
735
|
-
utc_time: "2024-12-25T15:32:12.046000Z",
|
|
736
|
-
utm: {},
|
|
737
|
-
vp_size: "1720x919",
|
|
738
|
-
},
|
|
739
|
-
{
|
|
740
|
-
_timestamp: "2024-12-25T14:35:25.328265Z",
|
|
741
|
-
api_key: "s2s.pjrr9h2wjyeul98fzk9b6m.66exgwmz37mz9hoz0uuqsh",
|
|
742
|
-
click_id: {},
|
|
743
|
-
event_properties: {
|
|
744
|
-
app_version: "1.47.1",
|
|
745
|
-
event_action: "Extension Heartbeat",
|
|
746
|
-
event_platform: "extension",
|
|
747
|
-
extension_host: "https://www.millionpugs.com",
|
|
748
|
-
extension_id: "4f85e8d7-b333-422f-9606-df625d39fcd3",
|
|
749
|
-
user_country: "US",
|
|
750
|
-
user_is_logged: false,
|
|
751
|
-
},
|
|
752
|
-
event_type: "event",
|
|
753
|
-
eventn_ctx_event_id: "e59b2178-fddc-477b-a8ea-21bf7897eccd",
|
|
754
|
-
ids: {},
|
|
755
|
-
local_tz_offset: -60,
|
|
756
|
-
source_ip: "109.81.165.41",
|
|
757
|
-
src: "jitsu",
|
|
758
|
-
user: {
|
|
759
|
-
anonymous_id: "",
|
|
760
|
-
hashed_anonymous_id: "1b96ac639a69a4966d2bec80bcdb1db3",
|
|
761
|
-
},
|
|
762
|
-
user_agent:
|
|
763
|
-
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0",
|
|
764
|
-
user_language: "cs",
|
|
765
|
-
utc_time: "2024-12-25T14:35:24.887000Z",
|
|
766
|
-
utm: {},
|
|
767
|
-
__HTTP_CONTEXT__: {
|
|
768
|
-
headers: {
|
|
769
|
-
accept: ["application/json"],
|
|
770
|
-
"accept-encoding": ["gzip, deflate, br, zstd"],
|
|
771
|
-
"accept-language": ["cs,en;q=0.9,en-GB;q=0.8,en-US;q=0.7"],
|
|
772
|
-
"content-length": ["650"],
|
|
773
|
-
"content-type": ["application/json"],
|
|
774
|
-
origin: ["chrome-extension://lkoefleenjcocepphdenhaiaeighbcde"],
|
|
775
|
-
priority: ["u=1, i"],
|
|
776
|
-
"sec-fetch-dest": ["empty"],
|
|
777
|
-
"sec-fetch-mode": ["cors"],
|
|
778
|
-
"sec-fetch-site": ["none"],
|
|
779
|
-
"user-agent": [
|
|
780
|
-
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0",
|
|
781
|
-
],
|
|
782
|
-
"x-forwarded-for": ["109.81.165.41"],
|
|
783
|
-
"x-forwarded-host": ["t.jitsu.com"],
|
|
784
|
-
"x-forwarded-proto": ["https"],
|
|
785
|
-
"x-real-ip": ["109.81.165.41"],
|
|
786
|
-
},
|
|
787
|
-
},
|
|
788
|
-
},
|
|
789
|
-
{
|
|
790
|
-
_timestamp: "2024-12-25T15:29:13.458419Z",
|
|
791
|
-
api_key: "s2s.25im92d1gzfft1xc1v75n.him8d3a8jgbfjnhvufnz8d",
|
|
792
|
-
click_id: {},
|
|
793
|
-
doc_host: "nz.prosple.com",
|
|
794
|
-
doc_path: "/law-internships-malaysia",
|
|
795
|
-
doc_search: "",
|
|
796
|
-
event_type: "experiment-view",
|
|
797
|
-
eventn_ctx_event_id: "746984a5-490c-43a6-ab0d-29c9517c4f80",
|
|
798
|
-
experimentId: "search-by-role-placeholder-text-2",
|
|
799
|
-
ids: {},
|
|
800
|
-
local_tz_offset: 0,
|
|
801
|
-
page_title: "",
|
|
802
|
-
source_ip: "10.0.2.171",
|
|
803
|
-
src: "jitsu",
|
|
804
|
-
url: "https://nz.prosple.com/law-internships-malaysia",
|
|
805
|
-
user: {
|
|
806
|
-
anonymous_id: "1zea4zelp0",
|
|
807
|
-
hashed_anonymous_id: "42a33c9cf03419dc91415ac5a8586151",
|
|
808
|
-
},
|
|
809
|
-
user_agent:
|
|
810
|
-
"Mozilla/5.0 (Linux; Android 9; Redmi K20 Build/PKQ1.190302.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/117.0.5938.60 Mobile Safari/537.36",
|
|
811
|
-
user_language: "en",
|
|
812
|
-
utc_time: "2024-12-25T15:29:13.124000Z",
|
|
813
|
-
utm: {},
|
|
814
|
-
variationId: 0,
|
|
815
|
-
},
|
|
816
|
-
{
|
|
817
|
-
_timestamp: "2024-12-25T15:29:13.458419Z",
|
|
818
|
-
api_key: "s2s.25im92d1gzfft1xc1v75n.him8d3a8jgbfjnhvufnz8d",
|
|
819
|
-
click_id: {},
|
|
820
|
-
doc_encoding: "",
|
|
821
|
-
doc_host: "nz.prosple.com",
|
|
822
|
-
doc_path: "/law-internships-malaysia",
|
|
823
|
-
doc_search: "",
|
|
824
|
-
event_type: "experiment-view",
|
|
825
|
-
eventn_ctx_event_id: "746984a5-490c-43a6-ab0d-29c9517c4f80",
|
|
826
|
-
experimentId: "search-by-role-placeholder-text-2",
|
|
827
|
-
ids: {},
|
|
828
|
-
local_tz_offset: 0,
|
|
829
|
-
page_title: "",
|
|
830
|
-
source_ip: "10.0.2.171",
|
|
831
|
-
src: "jitsu",
|
|
832
|
-
url: "https://nz.prosple.com/law-internships-malaysia",
|
|
833
|
-
user: {
|
|
834
|
-
anonymous_id: "1zea4zelp0",
|
|
835
|
-
hashed_anonymous_id: "42a33c9cf03419dc91415ac5a8586151",
|
|
836
|
-
},
|
|
837
|
-
user_agent:
|
|
838
|
-
"Mozilla/5.0 (Linux; Android 9; Redmi K20 Build/PKQ1.190302.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/117.0.5938.60 Mobile Safari/537.36",
|
|
839
|
-
user_language: "en",
|
|
840
|
-
utc_time: "2024-12-25T15:29:13.124000Z",
|
|
841
|
-
utm: {},
|
|
842
|
-
variationId: 0,
|
|
843
|
-
},
|
|
844
|
-
{
|
|
845
|
-
_timestamp: "2024-12-25T00:26:56.305721Z",
|
|
846
|
-
api_key: "js.64u2dmpal8wo894s7we9g8.i6q1qvr7jdhg0vpqlauj7w",
|
|
847
|
-
click_id: {},
|
|
848
|
-
doc_encoding: "UTF-8",
|
|
849
|
-
doc_host: "app.litnerd.com",
|
|
850
|
-
doc_path: "/login",
|
|
851
|
-
doc_search: "?next=%2F",
|
|
852
|
-
event_type: "pageview",
|
|
853
|
-
eventn_ctx_event_id: "15fea8d7-14af-4488-92a9-0ae52eba5499",
|
|
854
|
-
ids: {},
|
|
855
|
-
local_tz_offset: 300,
|
|
856
|
-
page_title: "Login - Litnerd",
|
|
857
|
-
referer: "",
|
|
858
|
-
screen_resolution: "1920x1080",
|
|
859
|
-
source_ip: "68.237.56.1",
|
|
860
|
-
src: "jitsu",
|
|
861
|
-
url: "https://app.litnerd.com/login?next=%2F",
|
|
862
|
-
user: {
|
|
863
|
-
anonymous_id: "vnit45ebh7",
|
|
864
|
-
hashed_anonymous_id: "49a8381a0fe28827b68a48416dd69a23",
|
|
865
|
-
id: "student:6031",
|
|
866
|
-
name: "EZIO LOU",
|
|
867
|
-
role: "student",
|
|
868
|
-
school_id: 190,
|
|
869
|
-
},
|
|
870
|
-
user_agent:
|
|
871
|
-
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
|
|
872
|
-
user_language: "en-US",
|
|
873
|
-
utc_time: "2024-12-25T00:26:56.481000Z",
|
|
874
|
-
utm: {},
|
|
875
|
-
vp_size: "1920x911",
|
|
876
|
-
},
|
|
877
|
-
{
|
|
878
|
-
_timestamp: "2024-12-25T15:33:08.369746Z",
|
|
879
|
-
api_key: "s2s.2pvs2bbpqq1zxna97wcml.esb6cikfrf7yn0qoh1nj1",
|
|
880
|
-
click_id: {},
|
|
881
|
-
doc_host: "localhost:3000",
|
|
882
|
-
doc_path: "/auth/login",
|
|
883
|
-
doc_search: "",
|
|
884
|
-
event_type: "page_view",
|
|
885
|
-
eventn_ctx_event_id: "98373e80-6228-4163-957e-90703182e9de",
|
|
886
|
-
ids: {},
|
|
887
|
-
isAuthorized: false,
|
|
888
|
-
nextPrefetch: false,
|
|
889
|
-
onVercel: false,
|
|
890
|
-
page_title: "",
|
|
891
|
-
page_url: "http://localhost:3000/auth/login",
|
|
892
|
-
referer: "",
|
|
893
|
-
source_ip: "",
|
|
894
|
-
src: "api",
|
|
895
|
-
url: "http://localhost:3000/auth/login",
|
|
896
|
-
user: {
|
|
897
|
-
anonymous_id: "48yanrr6x9k",
|
|
898
|
-
hashed_anonymous_id: "ee3cd46ca7a46adb9fa1c9599e64249f",
|
|
899
|
-
},
|
|
900
|
-
user_agent: "Wget/1.21.3",
|
|
901
|
-
utc_time: "2024-12-25T15:33:07.992Z",
|
|
902
|
-
utm: {},
|
|
903
|
-
},
|
|
904
|
-
];
|