@walkeros/server-destination-hubspot 3.4.0-next-1776749829492

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.
@@ -0,0 +1,754 @@
1
+ {
2
+ "$meta": {
3
+ "package": "@walkeros/server-destination-hubspot",
4
+ "version": "3.4.0-next-1776749829492",
5
+ "type": "destination",
6
+ "platform": [
7
+ "server"
8
+ ],
9
+ "docs": "https://www.walkeros.io/docs/destinations/server/hubspot",
10
+ "source": "https://github.com/elbwalker/walkerOS/tree/main/packages/server/destinations/hubspot/src"
11
+ },
12
+ "schemas": {
13
+ "mapping": {
14
+ "$schema": "http://json-schema.org/draft-07/schema#",
15
+ "type": "object",
16
+ "properties": {
17
+ "eventName": {
18
+ "type": "string",
19
+ "description": "Override eventName for this rule. Without the prefix -- just the event name part (e.g. purchase_completed). The eventNamePrefix is prepended automatically."
20
+ },
21
+ "identify": {
22
+ "description": "Per-event contact upsert. Resolves to { email, properties }. Overrides destination-level identify. Use with skip: true on login/identify events."
23
+ },
24
+ "properties": {
25
+ "description": "Additional event properties mapping. Resolved values are merged with defaultProperties and serialized to strings."
26
+ }
27
+ },
28
+ "additionalProperties": false
29
+ },
30
+ "settings": {
31
+ "$schema": "http://json-schema.org/draft-07/schema#",
32
+ "type": "object",
33
+ "properties": {
34
+ "accessToken": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "description": "HubSpot private app access token. Create one in HubSpot Settings > Integrations > Private Apps. Requires analytics.behavioral_events.send scope."
38
+ },
39
+ "eventNamePrefix": {
40
+ "type": "string",
41
+ "minLength": 1,
42
+ "description": "Fully qualified event name prefix: pe{HubID}_ (e.g. pe12345678_). Find it in HubSpot under Data Management > Custom Events."
43
+ },
44
+ "email": {
45
+ "type": "string",
46
+ "description": "walkerOS mapping value path to resolve contact email from events (like user.email). Required for contact association."
47
+ },
48
+ "objectId": {
49
+ "type": "string",
50
+ "description": "walkerOS mapping value path to resolve HubSpot CRM objectId from events. Alternative to email for contact association."
51
+ },
52
+ "identify": {
53
+ "description": "Destination-level contact upsert mapping. Resolves to { email, properties }. Fires contact update on first push and re-fires when values change."
54
+ },
55
+ "defaultProperties": {
56
+ "type": "object",
57
+ "propertyNames": {
58
+ "type": "string"
59
+ },
60
+ "additionalProperties": {
61
+ "type": "string"
62
+ },
63
+ "description": "Static event properties added to every event occurrence. Useful for hs_touchpoint_source, hs_page_content_type, etc."
64
+ },
65
+ "batch": {
66
+ "type": "boolean",
67
+ "description": "Use batch API for events (accumulate and flush). Default: false."
68
+ },
69
+ "batchSize": {
70
+ "type": "integer",
71
+ "exclusiveMinimum": 0,
72
+ "maximum": 500,
73
+ "description": "Batch size before auto-flush. Only used when batch: true. Default: 50. Max: 500."
74
+ }
75
+ },
76
+ "required": [
77
+ "accessToken",
78
+ "eventNamePrefix"
79
+ ],
80
+ "additionalProperties": false
81
+ }
82
+ },
83
+ "examples": {
84
+ "env": {
85
+ "push": {
86
+ "client": {
87
+ "events": {
88
+ "send": {
89
+ "basicApi": {
90
+ "send": {
91
+ "$code": "()=>Promise.resolve()"
92
+ }
93
+ },
94
+ "batchApi": {
95
+ "send": {
96
+ "$code": "()=>Promise.resolve()"
97
+ }
98
+ }
99
+ }
100
+ },
101
+ "crm": {
102
+ "contacts": {
103
+ "basicApi": {
104
+ "update": {
105
+ "$code": "()=>Promise.resolve()"
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ },
112
+ "simulation": [
113
+ "call:events.send.basicApi.send",
114
+ "call:events.send.batchApi.send",
115
+ "call:crm.contacts.basicApi.update"
116
+ ]
117
+ },
118
+ "step": {
119
+ "defaultEvent": {
120
+ "in": {
121
+ "name": "product view",
122
+ "data": {
123
+ "id": "ers",
124
+ "name": "Everyday Ruck Snack",
125
+ "color": "black",
126
+ "size": "l",
127
+ "price": 420
128
+ },
129
+ "context": {
130
+ "shopping": [
131
+ "detail",
132
+ 0
133
+ ]
134
+ },
135
+ "globals": {
136
+ "pagegroup": "shop"
137
+ },
138
+ "custom": {
139
+ "completely": "random"
140
+ },
141
+ "user": {
142
+ "email": "user@example.com"
143
+ },
144
+ "nested": [],
145
+ "consent": {
146
+ "functional": true
147
+ },
148
+ "id": "1700000100-gr0up-1",
149
+ "trigger": "load",
150
+ "entity": "product",
151
+ "action": "view",
152
+ "timestamp": 1700000100,
153
+ "timing": 3.14,
154
+ "group": "gr0up",
155
+ "count": 1,
156
+ "version": {
157
+ "source": "3.4.0-next-1776749829492",
158
+ "tagging": 1
159
+ },
160
+ "source": {
161
+ "type": "web",
162
+ "id": "https://localhost:80",
163
+ "previous_id": "http://remotehost:9001"
164
+ }
165
+ },
166
+ "out": [
167
+ [
168
+ "events.send.basicApi.send",
169
+ {
170
+ "eventName": "pe12345678_product_view",
171
+ "email": "user@example.com",
172
+ "occurredAt": {},
173
+ "properties": {}
174
+ }
175
+ ]
176
+ ]
177
+ },
178
+ "defaultProperties": {
179
+ "in": {
180
+ "name": "page view",
181
+ "data": {
182
+ "domain": "www.example.com",
183
+ "title": "walkerOS documentation",
184
+ "referrer": "https://www.walkeros.io/",
185
+ "search": "?foo=bar",
186
+ "hash": "#hash",
187
+ "id": "/docs/"
188
+ },
189
+ "context": {
190
+ "dev": [
191
+ "test",
192
+ 1
193
+ ]
194
+ },
195
+ "globals": {
196
+ "pagegroup": "docs"
197
+ },
198
+ "custom": {
199
+ "completely": "random"
200
+ },
201
+ "user": {
202
+ "email": "user@example.com"
203
+ },
204
+ "nested": [
205
+ {
206
+ "entity": "child",
207
+ "data": {
208
+ "is": "subordinated"
209
+ },
210
+ "nested": [],
211
+ "context": {
212
+ "element": [
213
+ "child",
214
+ 0
215
+ ]
216
+ }
217
+ }
218
+ ],
219
+ "consent": {
220
+ "functional": true
221
+ },
222
+ "id": "1700000102-gr0up-1",
223
+ "trigger": "load",
224
+ "entity": "page",
225
+ "action": "view",
226
+ "timestamp": 1700000102,
227
+ "timing": 3.14,
228
+ "group": "gr0up",
229
+ "count": 1,
230
+ "version": {
231
+ "source": "3.4.0-next-1776749829492",
232
+ "tagging": 1
233
+ },
234
+ "source": {
235
+ "type": "web",
236
+ "id": "https://localhost:80",
237
+ "previous_id": "http://remotehost:9001"
238
+ }
239
+ },
240
+ "settings": {
241
+ "defaultProperties": {
242
+ "hs_touchpoint_source": "walkerOS",
243
+ "hs_page_content_type": "STANDARD_PAGE"
244
+ }
245
+ },
246
+ "out": [
247
+ [
248
+ "events.send.basicApi.send",
249
+ {
250
+ "eventName": "pe12345678_page_view",
251
+ "email": "user@example.com",
252
+ "occurredAt": {},
253
+ "properties": {
254
+ "hs_touchpoint_source": "walkerOS",
255
+ "hs_page_content_type": "STANDARD_PAGE"
256
+ }
257
+ }
258
+ ]
259
+ ]
260
+ },
261
+ "destinationIdentify": {
262
+ "in": {
263
+ "name": "page view",
264
+ "data": {
265
+ "domain": "www.example.com",
266
+ "title": "walkerOS documentation",
267
+ "referrer": "https://www.walkeros.io/",
268
+ "search": "?foo=bar",
269
+ "hash": "#hash",
270
+ "id": "/docs/"
271
+ },
272
+ "context": {
273
+ "dev": [
274
+ "test",
275
+ 1
276
+ ]
277
+ },
278
+ "globals": {
279
+ "pagegroup": "docs"
280
+ },
281
+ "custom": {
282
+ "completely": "random"
283
+ },
284
+ "user": {
285
+ "email": "user@example.com",
286
+ "firstName": "Jane",
287
+ "lastName": "Doe"
288
+ },
289
+ "nested": [
290
+ {
291
+ "entity": "child",
292
+ "data": {
293
+ "is": "subordinated"
294
+ },
295
+ "nested": [],
296
+ "context": {
297
+ "element": [
298
+ "child",
299
+ 0
300
+ ]
301
+ }
302
+ }
303
+ ],
304
+ "consent": {
305
+ "functional": true
306
+ },
307
+ "id": "1700000103-gr0up-1",
308
+ "trigger": "load",
309
+ "entity": "page",
310
+ "action": "view",
311
+ "timestamp": 1700000103,
312
+ "timing": 3.14,
313
+ "group": "gr0up",
314
+ "count": 1,
315
+ "version": {
316
+ "source": "3.4.0-next-1776749829492",
317
+ "tagging": 1
318
+ },
319
+ "source": {
320
+ "type": "web",
321
+ "id": "https://localhost:80",
322
+ "previous_id": "http://remotehost:9001"
323
+ }
324
+ },
325
+ "settings": {
326
+ "identify": {
327
+ "map": {
328
+ "email": "user.email",
329
+ "properties": {
330
+ "map": {
331
+ "firstname": "user.firstName",
332
+ "lastname": "user.lastName"
333
+ }
334
+ }
335
+ }
336
+ }
337
+ },
338
+ "out": [
339
+ [
340
+ "crm.contacts.basicApi.update",
341
+ "user@example.com",
342
+ {
343
+ "properties": {
344
+ "firstname": "Jane",
345
+ "lastname": "Doe"
346
+ }
347
+ },
348
+ "email"
349
+ ],
350
+ [
351
+ "events.send.basicApi.send",
352
+ {
353
+ "eventName": "pe12345678_page_view",
354
+ "email": "user@example.com",
355
+ "occurredAt": {},
356
+ "properties": {}
357
+ }
358
+ ]
359
+ ]
360
+ },
361
+ "mappedEventName": {
362
+ "in": {
363
+ "name": "order complete",
364
+ "data": {
365
+ "total": 99.5,
366
+ "currency": "EUR",
367
+ "id": "ord-123"
368
+ },
369
+ "context": {
370
+ "shopping": [
371
+ "complete",
372
+ 0
373
+ ]
374
+ },
375
+ "globals": {
376
+ "pagegroup": "shop"
377
+ },
378
+ "custom": {
379
+ "completely": "random"
380
+ },
381
+ "user": {
382
+ "email": "user@example.com"
383
+ },
384
+ "nested": [
385
+ {
386
+ "entity": "product",
387
+ "data": {
388
+ "id": "ers",
389
+ "name": "Everyday Ruck Snack",
390
+ "color": "black",
391
+ "size": "l",
392
+ "price": 420
393
+ },
394
+ "context": {
395
+ "shopping": [
396
+ "complete",
397
+ 0
398
+ ]
399
+ },
400
+ "nested": []
401
+ },
402
+ {
403
+ "entity": "product",
404
+ "data": {
405
+ "id": "cc",
406
+ "name": "Cool Cap",
407
+ "size": "one size",
408
+ "price": 42
409
+ },
410
+ "context": {
411
+ "shopping": [
412
+ "complete",
413
+ 0
414
+ ]
415
+ },
416
+ "nested": []
417
+ },
418
+ {
419
+ "entity": "gift",
420
+ "data": {
421
+ "name": "Surprise"
422
+ },
423
+ "context": {
424
+ "shopping": [
425
+ "complete",
426
+ 0
427
+ ]
428
+ },
429
+ "nested": []
430
+ }
431
+ ],
432
+ "consent": {
433
+ "functional": true
434
+ },
435
+ "id": "1700000101-gr0up-1",
436
+ "trigger": "load",
437
+ "entity": "order",
438
+ "action": "complete",
439
+ "timestamp": 1700000101,
440
+ "timing": 3.14,
441
+ "group": "gr0up",
442
+ "count": 1,
443
+ "version": {
444
+ "source": "3.4.0-next-1776749829492",
445
+ "tagging": 1
446
+ },
447
+ "source": {
448
+ "type": "web",
449
+ "id": "https://localhost:80",
450
+ "previous_id": "http://remotehost:9001"
451
+ }
452
+ },
453
+ "mapping": {
454
+ "name": "order complete",
455
+ "settings": {
456
+ "eventName": "purchase_completed",
457
+ "properties": {
458
+ "map": {
459
+ "revenue": "data.total",
460
+ "currency": "data.currency",
461
+ "order_id": "data.id"
462
+ }
463
+ }
464
+ }
465
+ },
466
+ "out": [
467
+ [
468
+ "events.send.basicApi.send",
469
+ {
470
+ "eventName": "pe12345678_purchase_completed",
471
+ "email": "user@example.com",
472
+ "occurredAt": {},
473
+ "properties": {
474
+ "revenue": "99.5",
475
+ "currency": "EUR",
476
+ "order_id": "ord-123"
477
+ }
478
+ }
479
+ ]
480
+ ]
481
+ },
482
+ "noIdentity": {
483
+ "in": {
484
+ "name": "product view",
485
+ "data": {
486
+ "id": "ers",
487
+ "name": "Everyday Ruck Snack",
488
+ "color": "black",
489
+ "size": "l",
490
+ "price": 420
491
+ },
492
+ "context": {
493
+ "shopping": [
494
+ "detail",
495
+ 0
496
+ ]
497
+ },
498
+ "globals": {
499
+ "pagegroup": "shop"
500
+ },
501
+ "custom": {
502
+ "completely": "random"
503
+ },
504
+ "user": {},
505
+ "nested": [],
506
+ "consent": {
507
+ "functional": true
508
+ },
509
+ "id": "1700000106-gr0up-1",
510
+ "trigger": "load",
511
+ "entity": "product",
512
+ "action": "view",
513
+ "timestamp": 1700000106,
514
+ "timing": 3.14,
515
+ "group": "gr0up",
516
+ "count": 1,
517
+ "version": {
518
+ "source": "3.4.0-next-1776749829492",
519
+ "tagging": 1
520
+ },
521
+ "source": {
522
+ "type": "web",
523
+ "id": "https://localhost:80",
524
+ "previous_id": "http://remotehost:9001"
525
+ }
526
+ },
527
+ "out": []
528
+ },
529
+ "objectIdAssociation": {
530
+ "in": {
531
+ "name": "product view",
532
+ "data": {
533
+ "id": "ers",
534
+ "name": "Everyday Ruck Snack",
535
+ "color": "black",
536
+ "size": "l",
537
+ "price": 420
538
+ },
539
+ "context": {
540
+ "shopping": [
541
+ "detail",
542
+ 0
543
+ ]
544
+ },
545
+ "globals": {
546
+ "pagegroup": "shop"
547
+ },
548
+ "custom": {
549
+ "completely": "random"
550
+ },
551
+ "user": {
552
+ "id": "hs-contact-789"
553
+ },
554
+ "nested": [],
555
+ "consent": {
556
+ "functional": true
557
+ },
558
+ "id": "1700000105-gr0up-1",
559
+ "trigger": "load",
560
+ "entity": "product",
561
+ "action": "view",
562
+ "timestamp": 1700000105,
563
+ "timing": 3.14,
564
+ "group": "gr0up",
565
+ "count": 1,
566
+ "version": {
567
+ "source": "3.4.0-next-1776749829492",
568
+ "tagging": 1
569
+ },
570
+ "source": {
571
+ "type": "web",
572
+ "id": "https://localhost:80",
573
+ "previous_id": "http://remotehost:9001"
574
+ }
575
+ },
576
+ "settings": {
577
+ "objectId": "user.id"
578
+ },
579
+ "out": [
580
+ [
581
+ "events.send.basicApi.send",
582
+ {
583
+ "eventName": "pe12345678_product_view",
584
+ "objectId": "hs-contact-789",
585
+ "occurredAt": {},
586
+ "properties": {}
587
+ }
588
+ ]
589
+ ]
590
+ },
591
+ "userLoginIdentify": {
592
+ "in": {
593
+ "name": "user login",
594
+ "data": {
595
+ "email": "login@acme.com",
596
+ "first_name": "Jane",
597
+ "last_name": "Doe",
598
+ "lifecycle": "lead"
599
+ },
600
+ "context": {
601
+ "dev": [
602
+ "test",
603
+ 1
604
+ ]
605
+ },
606
+ "globals": {
607
+ "lang": "elb"
608
+ },
609
+ "custom": {
610
+ "completely": "random"
611
+ },
612
+ "user": {
613
+ "email": "user@example.com"
614
+ },
615
+ "nested": [
616
+ {
617
+ "entity": "child",
618
+ "data": {
619
+ "is": "subordinated"
620
+ },
621
+ "nested": [],
622
+ "context": {
623
+ "element": [
624
+ "child",
625
+ 0
626
+ ]
627
+ }
628
+ }
629
+ ],
630
+ "consent": {
631
+ "functional": true
632
+ },
633
+ "id": "1700000104-gr0up-1",
634
+ "trigger": "test",
635
+ "entity": "user",
636
+ "action": "login",
637
+ "timestamp": 1700000104,
638
+ "timing": 3.14,
639
+ "group": "gr0up",
640
+ "count": 1,
641
+ "version": {
642
+ "source": "3.4.0-next-1776749829492",
643
+ "tagging": 1
644
+ },
645
+ "source": {
646
+ "type": "web",
647
+ "id": "https://localhost:80",
648
+ "previous_id": "http://remotehost:9001"
649
+ }
650
+ },
651
+ "mapping": {
652
+ "skip": true,
653
+ "settings": {
654
+ "identify": {
655
+ "map": {
656
+ "email": "data.email",
657
+ "properties": {
658
+ "map": {
659
+ "firstname": "data.first_name",
660
+ "lastname": "data.last_name",
661
+ "lifecyclestage": "data.lifecycle"
662
+ }
663
+ }
664
+ }
665
+ }
666
+ }
667
+ },
668
+ "out": [
669
+ [
670
+ "crm.contacts.basicApi.update",
671
+ "login@acme.com",
672
+ {
673
+ "properties": {
674
+ "firstname": "Jane",
675
+ "lastname": "Doe",
676
+ "lifecyclestage": "lead"
677
+ }
678
+ },
679
+ "email"
680
+ ]
681
+ ]
682
+ },
683
+ "wildcardIgnored": {
684
+ "in": {
685
+ "name": "debug noise",
686
+ "data": {
687
+ "string": "foo",
688
+ "number": 1,
689
+ "boolean": true,
690
+ "array": [
691
+ 0,
692
+ "text",
693
+ false
694
+ ]
695
+ },
696
+ "context": {
697
+ "dev": [
698
+ "test",
699
+ 1
700
+ ]
701
+ },
702
+ "globals": {
703
+ "lang": "elb"
704
+ },
705
+ "custom": {
706
+ "completely": "random"
707
+ },
708
+ "user": {
709
+ "email": "user@example.com"
710
+ },
711
+ "nested": [
712
+ {
713
+ "entity": "child",
714
+ "data": {
715
+ "is": "subordinated"
716
+ },
717
+ "nested": [],
718
+ "context": {
719
+ "element": [
720
+ "child",
721
+ 0
722
+ ]
723
+ }
724
+ }
725
+ ],
726
+ "consent": {
727
+ "functional": true
728
+ },
729
+ "id": "1700000107-gr0up-1",
730
+ "trigger": "test",
731
+ "entity": "debug",
732
+ "action": "noise",
733
+ "timestamp": 1700000107,
734
+ "timing": 3.14,
735
+ "group": "gr0up",
736
+ "count": 1,
737
+ "version": {
738
+ "source": "3.4.0-next-1776749829492",
739
+ "tagging": 1
740
+ },
741
+ "source": {
742
+ "type": "web",
743
+ "id": "https://localhost:80",
744
+ "previous_id": "http://remotehost:9001"
745
+ }
746
+ },
747
+ "mapping": {
748
+ "ignore": true
749
+ },
750
+ "out": []
751
+ }
752
+ }
753
+ }
754
+ }