@vrplatform/log 2.0.23 → 2.0.25
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/build/main/tracking/index.d.ts +2 -2
- package/build/main/tracking/index.js +60 -51
- package/build/main/tracking/index.js.map +1 -1
- package/build/main/tracking/types.d.ts +26 -18
- package/build/main/tracking/types.js +10 -0
- package/build/main/tracking/types.js.map +1 -1
- package/build/module/tracking/index.d.ts +2 -2
- package/build/module/tracking/index.js +61 -52
- package/build/module/tracking/index.js.map +1 -1
- package/build/module/tracking/types.d.ts +26 -18
- package/build/module/tracking/types.js +10 -0
- package/build/module/tracking/types.js.map +1 -1
- package/package.json +2 -2
- package/src/tracking/index.ts +71 -62
- package/src/tracking/types.ts +37 -30
|
@@ -86,7 +86,7 @@ declare module 'intercom-client' {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
import { Analytics } from '@june-so/analytics-node';
|
|
89
|
-
import {
|
|
89
|
+
import { Intercom } from 'intercom-client';
|
|
90
90
|
import { PostHog } from 'posthog-node';
|
|
91
91
|
import { type LogBindings, type WorkerLog } from '../log';
|
|
92
92
|
import type { GroupProps, IdentifyProps, TrackProps, TrackingEvent } from './types';
|
|
@@ -113,6 +113,6 @@ export declare const useTracking: ({ dataset, env, name }: UseTracking, isDev?:
|
|
|
113
113
|
shutdown: () => Promise<any>;
|
|
114
114
|
log: WorkerLog;
|
|
115
115
|
june?: Analytics;
|
|
116
|
-
intercom?:
|
|
116
|
+
intercom?: Intercom;
|
|
117
117
|
posthog?: PostHog;
|
|
118
118
|
};
|
|
@@ -18,7 +18,6 @@ exports.useTracking = void 0;
|
|
|
18
18
|
const graphql_1 = require("@finalytic/graphql");
|
|
19
19
|
const analytics_node_1 = require("@june-so/analytics-node");
|
|
20
20
|
const intercom_client_1 = require("intercom-client");
|
|
21
|
-
const Fetcher_1 = require("intercom-client/core/fetcher/Fetcher");
|
|
22
21
|
const posthog_node_1 = require("posthog-node");
|
|
23
22
|
const log_1 = require("../log");
|
|
24
23
|
const utils_1 = require("../utils");
|
|
@@ -34,12 +33,13 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
34
33
|
: undefined;
|
|
35
34
|
const log = (0, log_1.useLog)({ name, dataset, env });
|
|
36
35
|
const intercom = env.INTERCOM_TOKEN
|
|
37
|
-
? new intercom_client_1.
|
|
38
|
-
|
|
39
|
-
fetcher: (args) =>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
36
|
+
? new intercom_client_1.Intercom({
|
|
37
|
+
accessToken: env.INTERCOM_TOKEN,
|
|
38
|
+
// fetcher: (args) =>
|
|
39
|
+
// fetcher({
|
|
40
|
+
// ...args,
|
|
41
|
+
// headers: { ...args.headers, accept: 'application/json' },
|
|
42
|
+
// }),
|
|
43
43
|
})
|
|
44
44
|
: undefined;
|
|
45
45
|
const june = env.JUNESO_TOKEN ? new analytics_node_1.Analytics(env.JUNESO_TOKEN) : undefined;
|
|
@@ -53,19 +53,16 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
53
53
|
track: async ({ userId, anonymousId, groupId, event, packageName, properties, timestamp = new Date(), }) => {
|
|
54
54
|
if (isDev || (0, utils_1.isTest)(userId || anonymousId || '', groupId))
|
|
55
55
|
return;
|
|
56
|
-
await client?.mutate((q) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
return { id: e.id };
|
|
68
|
-
});
|
|
56
|
+
await client?.mutate((q) => q.insert_tracking_event_one({
|
|
57
|
+
object: {
|
|
58
|
+
name: event,
|
|
59
|
+
tenantId: groupId,
|
|
60
|
+
userId: userId,
|
|
61
|
+
props: properties,
|
|
62
|
+
createdAt: timestamp,
|
|
63
|
+
packageName,
|
|
64
|
+
},
|
|
65
|
+
}).id);
|
|
69
66
|
if (anonymousId) {
|
|
70
67
|
posthog?.capture({
|
|
71
68
|
distinctId: anonymousId,
|
|
@@ -109,11 +106,13 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
109
106
|
console.error(err);
|
|
110
107
|
});
|
|
111
108
|
try {
|
|
112
|
-
await intercom?.
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
await intercom?.dataEvents.create({
|
|
110
|
+
body: {
|
|
111
|
+
user_id: userId,
|
|
112
|
+
event_name: event,
|
|
113
|
+
metadata: (0, convertValuesToString_1.convertValuesToString)(properties),
|
|
114
|
+
created_at: Math.floor(timestamp.getTime() / 1000),
|
|
115
|
+
},
|
|
117
116
|
});
|
|
118
117
|
}
|
|
119
118
|
catch (e) {
|
|
@@ -157,14 +156,14 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
157
156
|
const intercomUser = (await intercom?.contacts.search({
|
|
158
157
|
query: {
|
|
159
158
|
field: 'external_id',
|
|
160
|
-
operator:
|
|
159
|
+
operator: '=',
|
|
161
160
|
value: userId,
|
|
162
161
|
},
|
|
163
|
-
}))?.data
|
|
162
|
+
}))?.data?.at(0);
|
|
164
163
|
if (intercomUser?.id)
|
|
165
164
|
await intercom?.contacts.update(intercomUser?.id, data);
|
|
166
165
|
else
|
|
167
|
-
await intercom?.contacts.create(data);
|
|
166
|
+
await intercom?.contacts.create({ body: data });
|
|
168
167
|
}
|
|
169
168
|
catch (e) {
|
|
170
169
|
console.error(e);
|
|
@@ -179,6 +178,33 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
179
178
|
let intercomCompany;
|
|
180
179
|
try {
|
|
181
180
|
const cid = traits?.billingCustomerId || traits?.hyperlineCustomerId;
|
|
181
|
+
const partner = traits?.partner || traits?.accountingPartner;
|
|
182
|
+
const billingPartner = traits?.billingPartner ||
|
|
183
|
+
traits?.partner ||
|
|
184
|
+
traits?.accountingPartner;
|
|
185
|
+
const custom_attributes = { teamId: groupId };
|
|
186
|
+
if (traits?.name)
|
|
187
|
+
custom_attributes.team = traits?.name;
|
|
188
|
+
if (traits?.type)
|
|
189
|
+
custom_attributes.type = traits?.type;
|
|
190
|
+
if (traits?.status)
|
|
191
|
+
custom_attributes.status = traits?.status;
|
|
192
|
+
if (traits?.pms)
|
|
193
|
+
custom_attributes.pms = traits?.pms;
|
|
194
|
+
if (traits?.accountingSoftware)
|
|
195
|
+
custom_attributes.accountingSoftware = traits?.accountingSoftware;
|
|
196
|
+
if (traits?.activeListings)
|
|
197
|
+
custom_attributes.activeListings = `${traits?.activeListings}`;
|
|
198
|
+
if (traits?.paymentMethodType)
|
|
199
|
+
custom_attributes.paymentMethodType = traits?.paymentMethodType;
|
|
200
|
+
if (partner)
|
|
201
|
+
custom_attributes.partner = partner;
|
|
202
|
+
if (cid)
|
|
203
|
+
custom_attributes.billingPortalUrl = `https://billing.vrplatform.app/portal/${cid}`;
|
|
204
|
+
if (traits?.subscriptionStatus)
|
|
205
|
+
custom_attributes.billingStatus = traits?.subscriptionStatus;
|
|
206
|
+
if (billingPartner)
|
|
207
|
+
custom_attributes.billingPartner = billingPartner;
|
|
182
208
|
intercomCompany = await intercom?.companies.create({
|
|
183
209
|
name: traits?.name,
|
|
184
210
|
company_id: groupId,
|
|
@@ -187,25 +213,8 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
187
213
|
? Math.floor(new Date(traits.createdAt).getTime() / 1000)
|
|
188
214
|
: undefined,
|
|
189
215
|
monthly_spend: traits?.mrr,
|
|
190
|
-
custom_attributes
|
|
191
|
-
|
|
192
|
-
team: traits?.name,
|
|
193
|
-
type: traits?.type,
|
|
194
|
-
status: traits?.status,
|
|
195
|
-
pms: traits?.pms,
|
|
196
|
-
accountingSoftware: traits?.accountingSoftware,
|
|
197
|
-
activeListings: traits?.activeListings,
|
|
198
|
-
paymentMethodType: traits?.paymentMethodType,
|
|
199
|
-
partnerName: traits?.partner || traits?.accountingPartner,
|
|
200
|
-
billingPortalUrl: cid
|
|
201
|
-
? `https://billing.vrplatform.app/portal/${cid}`
|
|
202
|
-
: undefined,
|
|
203
|
-
billingStatus: traits?.subscriptionStatus,
|
|
204
|
-
billingPartner: traits?.billingPartner ||
|
|
205
|
-
traits?.partner ||
|
|
206
|
-
traits?.accountingPartner,
|
|
207
|
-
},
|
|
208
|
-
});
|
|
216
|
+
custom_attributes,
|
|
217
|
+
}, {});
|
|
209
218
|
}
|
|
210
219
|
catch (e) {
|
|
211
220
|
console.error(e);
|
|
@@ -232,13 +241,13 @@ const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
232
241
|
const intercomUser = (await intercom?.contacts.search({
|
|
233
242
|
query: {
|
|
234
243
|
field: 'external_id',
|
|
235
|
-
operator:
|
|
244
|
+
operator: '=',
|
|
236
245
|
value: userId,
|
|
237
246
|
},
|
|
238
|
-
}))?.data
|
|
247
|
+
}))?.data?.at(0);
|
|
239
248
|
if (intercomUser?.id && intercomCompany?.id)
|
|
240
|
-
intercom?.companies.
|
|
241
|
-
|
|
249
|
+
intercom?.contacts.companies.create(intercomUser?.id, {
|
|
250
|
+
company_id: intercomCompany?.id,
|
|
242
251
|
});
|
|
243
252
|
}
|
|
244
253
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["tracking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAoGA,gDAAoD;AACpD,4DAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["tracking/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,7 +137,6 @@ export type TenantType = 'admin' | 'partner' | 'propertyManager';
|
|
|
137
137
|
export type TenantStatus = 'active' | 'inactive';
|
|
138
138
|
export type SubscriptionStatus = 'active' | 'cancelled' | 'draft' | 'errored' | 'paused' | 'pending' | 'voided';
|
|
139
139
|
export type PaymentMethodType = 'card' | 'direct_debit_sepa' | 'direct_debit_ach' | 'direct_debit_bacs';
|
|
140
|
-
export type WebhookEventType = 'customer.created' | 'customer.updated' | 'subscription.activated' | 'subscription.cancelled' | 'subscription.created' | 'subscription.errored' | 'subscription.paused' | 'subscription.voided' | 'subscription.charged' | 'payment_method.created' | 'payment_method.errored' | 'payment_method.deleted';
|
|
141
140
|
type AccountInvitationAcceptedProps = Partial<{
|
|
142
141
|
userId: string;
|
|
143
142
|
userEmail: string;
|
|
@@ -257,7 +256,6 @@ type GlOwnerStatementPreviewOpenedProps = Partial<{
|
|
|
257
256
|
userType: 'owner' | 'property_manager';
|
|
258
257
|
}>;
|
|
259
258
|
type HyperlineCustomerCreatedProps = Partial<{
|
|
260
|
-
userId: string;
|
|
261
259
|
tenantId: string;
|
|
262
260
|
customerId: string;
|
|
263
261
|
billingEmail: string;
|
|
@@ -265,8 +263,18 @@ type HyperlineCustomerCreatedProps = Partial<{
|
|
|
265
263
|
externalId: string;
|
|
266
264
|
name: string;
|
|
267
265
|
vatNumber: string;
|
|
266
|
+
webhookEventType: 'customer.created';
|
|
267
|
+
}>;
|
|
268
|
+
type HyperlineCustomerUpdatedProps = Partial<{
|
|
269
|
+
tenantId: string;
|
|
270
|
+
customerId: string;
|
|
271
|
+
billingEmail: string;
|
|
272
|
+
billingAddress: string;
|
|
273
|
+
externalId: string;
|
|
274
|
+
name: string;
|
|
275
|
+
vatNumber: string;
|
|
276
|
+
webhookEventType: 'customer.updated';
|
|
268
277
|
}>;
|
|
269
|
-
type HyperlineCustomerUpdatedProps = HyperlineCustomerCreatedProps;
|
|
270
278
|
type HyperlineInvoiceReadyProps = Partial<{
|
|
271
279
|
status: 'ready';
|
|
272
280
|
paymentMethodType: string;
|
|
@@ -290,7 +298,6 @@ type HyperlineInvoiceSettledProps = Partial<{
|
|
|
290
298
|
settledAt: string;
|
|
291
299
|
}>;
|
|
292
300
|
type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
293
|
-
userId: string;
|
|
294
301
|
tenantId: string;
|
|
295
302
|
subscriptionStartDate: string;
|
|
296
303
|
paymentMethodType: PaymentMethodType;
|
|
@@ -300,7 +307,6 @@ type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
|
300
307
|
webhookEventType: 'payment_method.created';
|
|
301
308
|
}>;
|
|
302
309
|
type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
303
|
-
userId: string;
|
|
304
310
|
tenantId: string;
|
|
305
311
|
subscriptionStartDate: string;
|
|
306
312
|
paymentMethodType: PaymentMethodType;
|
|
@@ -310,7 +316,6 @@ type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
|
310
316
|
webhookEventType: 'payment_method.deleted';
|
|
311
317
|
}>;
|
|
312
318
|
type HyperlinePaymentMethodErroredProps = Partial<{
|
|
313
|
-
userId: string;
|
|
314
319
|
tenantId: string;
|
|
315
320
|
subscriptionStartDate: string;
|
|
316
321
|
paymentMethodType: PaymentMethodType;
|
|
@@ -320,20 +325,20 @@ type HyperlinePaymentMethodErroredProps = Partial<{
|
|
|
320
325
|
webhookEventType: 'payment_method.errored';
|
|
321
326
|
}>;
|
|
322
327
|
type HyperlineSubscriptionActivatedProps = Partial<{
|
|
323
|
-
|
|
324
|
-
tenantId: string;
|
|
328
|
+
subscriptionId: string;
|
|
325
329
|
subscriptionStatus: SubscriptionStatus;
|
|
330
|
+
plan: string;
|
|
331
|
+
tenantId: string;
|
|
326
332
|
webhookEventType: 'subscription.activated';
|
|
327
333
|
}>;
|
|
328
334
|
type HyperlineSubscriptionCancelledProps = Partial<{
|
|
329
|
-
trialEndAt: string;
|
|
330
|
-
plan: string;
|
|
331
335
|
subscriptionId: string;
|
|
332
|
-
subscriptionStartDate: string;
|
|
333
336
|
subscriptionStatus: SubscriptionStatus;
|
|
337
|
+
plan: string;
|
|
338
|
+
trialEndAt: string;
|
|
339
|
+
subscriptionStartDate: string;
|
|
334
340
|
paymentMethodType: string;
|
|
335
341
|
customerId: string;
|
|
336
|
-
userId: string;
|
|
337
342
|
tenantId: string;
|
|
338
343
|
webhookEventType: 'subscription.cancelled';
|
|
339
344
|
}>;
|
|
@@ -355,21 +360,25 @@ type HyperlineSubscriptionCreatedProps = Partial<{
|
|
|
355
360
|
customerId: string;
|
|
356
361
|
}>;
|
|
357
362
|
type HyperlineSubscriptionErroredProps = Partial<{
|
|
363
|
+
subscriptionId: string;
|
|
364
|
+
subscriptionStatus: SubscriptionStatus;
|
|
365
|
+
plan: string;
|
|
358
366
|
userId: string;
|
|
359
367
|
tenantId: string;
|
|
360
|
-
subscriptionStatus: SubscriptionStatus;
|
|
361
368
|
webhookEventType: 'subscription.errored';
|
|
362
369
|
}>;
|
|
363
370
|
type HyperlineSubscriptionPausedProps = Partial<{
|
|
364
|
-
|
|
365
|
-
tenantId: string;
|
|
371
|
+
subscriptionId: string;
|
|
366
372
|
subscriptionStatus: SubscriptionStatus;
|
|
373
|
+
plan: string;
|
|
374
|
+
tenantId: string;
|
|
367
375
|
webhookEventType: 'subscription.paused';
|
|
368
376
|
}>;
|
|
369
377
|
type HyperlineSubscriptionVoidedProps = Partial<{
|
|
370
|
-
|
|
371
|
-
tenantId: string;
|
|
378
|
+
subscriptionId: string;
|
|
372
379
|
subscriptionStatus: SubscriptionStatus;
|
|
380
|
+
plan: string;
|
|
381
|
+
tenantId: string;
|
|
373
382
|
webhookEventType: 'subscription.voided';
|
|
374
383
|
}>;
|
|
375
384
|
type HyperlineTrialEndedProps = Partial<{
|
|
@@ -383,7 +392,6 @@ type HyperlineTrialEndedProps = Partial<{
|
|
|
383
392
|
}>;
|
|
384
393
|
type HyperlineTrialStartedProps = Partial<{
|
|
385
394
|
tenantId: string;
|
|
386
|
-
userId: string;
|
|
387
395
|
subscriptionStatus: SubscriptionStatus;
|
|
388
396
|
trialUntil: string;
|
|
389
397
|
webhookEventType: 'payment_method.created';
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const plan = [
|
|
4
|
+
'All-in-One VRP Subscription',
|
|
5
|
+
'Essentials VRP Subscription',
|
|
6
|
+
'Legacy - Percentage',
|
|
7
|
+
'Legacy - Tiered Listing',
|
|
8
|
+
'Ximplifi',
|
|
9
|
+
'Pro VRP Subscription',
|
|
10
|
+
'Legacy - Tiered Percentage',
|
|
11
|
+
'PMI Corporate VRP Subscription',
|
|
12
|
+
];
|
|
3
13
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["tracking/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["tracking/types.ts"],"names":[],"mappings":";;AAQA,MAAM,IAAI,GAAG;IACX,6BAA6B;IAC7B,6BAA6B;IAC7B,qBAAqB;IACrB,yBAAyB;IACzB,UAAU;IACV,sBAAsB;IACtB,4BAA4B;IAC5B,gCAAgC;CACjC,CAAC"}
|
|
@@ -86,7 +86,7 @@ declare module 'intercom-client' {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
import { Analytics } from '@june-so/analytics-node';
|
|
89
|
-
import {
|
|
89
|
+
import { Intercom } from 'intercom-client';
|
|
90
90
|
import { PostHog } from 'posthog-node';
|
|
91
91
|
import { type LogBindings, type WorkerLog } from '../log';
|
|
92
92
|
import type { GroupProps, IdentifyProps, TrackProps, TrackingEvent } from './types';
|
|
@@ -113,6 +113,6 @@ export declare const useTracking: ({ dataset, env, name }: UseTracking, isDev?:
|
|
|
113
113
|
shutdown: () => Promise<any>;
|
|
114
114
|
log: WorkerLog;
|
|
115
115
|
june?: Analytics;
|
|
116
|
-
intercom?:
|
|
116
|
+
intercom?: Intercom;
|
|
117
117
|
posthog?: PostHog;
|
|
118
118
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createClientV2 } from '@finalytic/graphql';
|
|
2
2
|
import { Analytics } from '@june-so/analytics-node';
|
|
3
|
-
import { Intercom
|
|
4
|
-
import { fetcher } from 'intercom-client/core/fetcher/Fetcher';
|
|
3
|
+
import { Intercom } from 'intercom-client';
|
|
5
4
|
import { PostHog } from 'posthog-node';
|
|
6
5
|
import { useLog } from '../log';
|
|
7
6
|
import { convertKeysToSnakeCase, isTest } from '../utils';
|
|
@@ -17,12 +16,13 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
17
16
|
: undefined;
|
|
18
17
|
const log = useLog({ name, dataset, env });
|
|
19
18
|
const intercom = env.INTERCOM_TOKEN
|
|
20
|
-
? new
|
|
21
|
-
|
|
22
|
-
fetcher: (args) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
19
|
+
? new Intercom({
|
|
20
|
+
accessToken: env.INTERCOM_TOKEN,
|
|
21
|
+
// fetcher: (args) =>
|
|
22
|
+
// fetcher({
|
|
23
|
+
// ...args,
|
|
24
|
+
// headers: { ...args.headers, accept: 'application/json' },
|
|
25
|
+
// }),
|
|
26
26
|
})
|
|
27
27
|
: undefined;
|
|
28
28
|
const june = env.JUNESO_TOKEN ? new Analytics(env.JUNESO_TOKEN) : undefined;
|
|
@@ -36,19 +36,16 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
36
36
|
track: async ({ userId, anonymousId, groupId, event, packageName, properties, timestamp = new Date(), }) => {
|
|
37
37
|
if (isDev || isTest(userId || anonymousId || '', groupId))
|
|
38
38
|
return;
|
|
39
|
-
await client?.mutate((q) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
});
|
|
50
|
-
return { id: e.id };
|
|
51
|
-
});
|
|
39
|
+
await client?.mutate((q) => q.insert_tracking_event_one({
|
|
40
|
+
object: {
|
|
41
|
+
name: event,
|
|
42
|
+
tenantId: groupId,
|
|
43
|
+
userId: userId,
|
|
44
|
+
props: properties,
|
|
45
|
+
createdAt: timestamp,
|
|
46
|
+
packageName,
|
|
47
|
+
},
|
|
48
|
+
}).id);
|
|
52
49
|
if (anonymousId) {
|
|
53
50
|
posthog?.capture({
|
|
54
51
|
distinctId: anonymousId,
|
|
@@ -92,11 +89,13 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
92
89
|
console.error(err);
|
|
93
90
|
});
|
|
94
91
|
try {
|
|
95
|
-
await intercom?.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
await intercom?.dataEvents.create({
|
|
93
|
+
body: {
|
|
94
|
+
user_id: userId,
|
|
95
|
+
event_name: event,
|
|
96
|
+
metadata: convertValuesToString(properties),
|
|
97
|
+
created_at: Math.floor(timestamp.getTime() / 1000),
|
|
98
|
+
},
|
|
100
99
|
});
|
|
101
100
|
}
|
|
102
101
|
catch (e) {
|
|
@@ -140,14 +139,14 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
140
139
|
const intercomUser = (await intercom?.contacts.search({
|
|
141
140
|
query: {
|
|
142
141
|
field: 'external_id',
|
|
143
|
-
operator:
|
|
142
|
+
operator: '=',
|
|
144
143
|
value: userId,
|
|
145
144
|
},
|
|
146
|
-
}))?.data
|
|
145
|
+
}))?.data?.at(0);
|
|
147
146
|
if (intercomUser?.id)
|
|
148
147
|
await intercom?.contacts.update(intercomUser?.id, data);
|
|
149
148
|
else
|
|
150
|
-
await intercom?.contacts.create(data);
|
|
149
|
+
await intercom?.contacts.create({ body: data });
|
|
151
150
|
}
|
|
152
151
|
catch (e) {
|
|
153
152
|
console.error(e);
|
|
@@ -162,6 +161,33 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
162
161
|
let intercomCompany;
|
|
163
162
|
try {
|
|
164
163
|
const cid = traits?.billingCustomerId || traits?.hyperlineCustomerId;
|
|
164
|
+
const partner = traits?.partner || traits?.accountingPartner;
|
|
165
|
+
const billingPartner = traits?.billingPartner ||
|
|
166
|
+
traits?.partner ||
|
|
167
|
+
traits?.accountingPartner;
|
|
168
|
+
const custom_attributes = { teamId: groupId };
|
|
169
|
+
if (traits?.name)
|
|
170
|
+
custom_attributes.team = traits?.name;
|
|
171
|
+
if (traits?.type)
|
|
172
|
+
custom_attributes.type = traits?.type;
|
|
173
|
+
if (traits?.status)
|
|
174
|
+
custom_attributes.status = traits?.status;
|
|
175
|
+
if (traits?.pms)
|
|
176
|
+
custom_attributes.pms = traits?.pms;
|
|
177
|
+
if (traits?.accountingSoftware)
|
|
178
|
+
custom_attributes.accountingSoftware = traits?.accountingSoftware;
|
|
179
|
+
if (traits?.activeListings)
|
|
180
|
+
custom_attributes.activeListings = `${traits?.activeListings}`;
|
|
181
|
+
if (traits?.paymentMethodType)
|
|
182
|
+
custom_attributes.paymentMethodType = traits?.paymentMethodType;
|
|
183
|
+
if (partner)
|
|
184
|
+
custom_attributes.partner = partner;
|
|
185
|
+
if (cid)
|
|
186
|
+
custom_attributes.billingPortalUrl = `https://billing.vrplatform.app/portal/${cid}`;
|
|
187
|
+
if (traits?.subscriptionStatus)
|
|
188
|
+
custom_attributes.billingStatus = traits?.subscriptionStatus;
|
|
189
|
+
if (billingPartner)
|
|
190
|
+
custom_attributes.billingPartner = billingPartner;
|
|
165
191
|
intercomCompany = await intercom?.companies.create({
|
|
166
192
|
name: traits?.name,
|
|
167
193
|
company_id: groupId,
|
|
@@ -170,25 +196,8 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
170
196
|
? Math.floor(new Date(traits.createdAt).getTime() / 1000)
|
|
171
197
|
: undefined,
|
|
172
198
|
monthly_spend: traits?.mrr,
|
|
173
|
-
custom_attributes
|
|
174
|
-
|
|
175
|
-
team: traits?.name,
|
|
176
|
-
type: traits?.type,
|
|
177
|
-
status: traits?.status,
|
|
178
|
-
pms: traits?.pms,
|
|
179
|
-
accountingSoftware: traits?.accountingSoftware,
|
|
180
|
-
activeListings: traits?.activeListings,
|
|
181
|
-
paymentMethodType: traits?.paymentMethodType,
|
|
182
|
-
partnerName: traits?.partner || traits?.accountingPartner,
|
|
183
|
-
billingPortalUrl: cid
|
|
184
|
-
? `https://billing.vrplatform.app/portal/${cid}`
|
|
185
|
-
: undefined,
|
|
186
|
-
billingStatus: traits?.subscriptionStatus,
|
|
187
|
-
billingPartner: traits?.billingPartner ||
|
|
188
|
-
traits?.partner ||
|
|
189
|
-
traits?.accountingPartner,
|
|
190
|
-
},
|
|
191
|
-
});
|
|
199
|
+
custom_attributes,
|
|
200
|
+
}, {});
|
|
192
201
|
}
|
|
193
202
|
catch (e) {
|
|
194
203
|
console.error(e);
|
|
@@ -215,13 +224,13 @@ export const useTracking = ({ dataset, env, name }, isDev) => {
|
|
|
215
224
|
const intercomUser = (await intercom?.contacts.search({
|
|
216
225
|
query: {
|
|
217
226
|
field: 'external_id',
|
|
218
|
-
operator:
|
|
227
|
+
operator: '=',
|
|
219
228
|
value: userId,
|
|
220
229
|
},
|
|
221
|
-
}))?.data
|
|
230
|
+
}))?.data?.at(0);
|
|
222
231
|
if (intercomUser?.id && intercomCompany?.id)
|
|
223
|
-
intercom?.companies.
|
|
224
|
-
|
|
232
|
+
intercom?.contacts.companies.create(intercomUser?.id, {
|
|
233
|
+
company_id: intercomCompany?.id,
|
|
225
234
|
});
|
|
226
235
|
}
|
|
227
236
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["tracking/index.ts"],"names":[],"mappings":"AAoGA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["tracking/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,7 +137,6 @@ export type TenantType = 'admin' | 'partner' | 'propertyManager';
|
|
|
137
137
|
export type TenantStatus = 'active' | 'inactive';
|
|
138
138
|
export type SubscriptionStatus = 'active' | 'cancelled' | 'draft' | 'errored' | 'paused' | 'pending' | 'voided';
|
|
139
139
|
export type PaymentMethodType = 'card' | 'direct_debit_sepa' | 'direct_debit_ach' | 'direct_debit_bacs';
|
|
140
|
-
export type WebhookEventType = 'customer.created' | 'customer.updated' | 'subscription.activated' | 'subscription.cancelled' | 'subscription.created' | 'subscription.errored' | 'subscription.paused' | 'subscription.voided' | 'subscription.charged' | 'payment_method.created' | 'payment_method.errored' | 'payment_method.deleted';
|
|
141
140
|
type AccountInvitationAcceptedProps = Partial<{
|
|
142
141
|
userId: string;
|
|
143
142
|
userEmail: string;
|
|
@@ -257,7 +256,6 @@ type GlOwnerStatementPreviewOpenedProps = Partial<{
|
|
|
257
256
|
userType: 'owner' | 'property_manager';
|
|
258
257
|
}>;
|
|
259
258
|
type HyperlineCustomerCreatedProps = Partial<{
|
|
260
|
-
userId: string;
|
|
261
259
|
tenantId: string;
|
|
262
260
|
customerId: string;
|
|
263
261
|
billingEmail: string;
|
|
@@ -265,8 +263,18 @@ type HyperlineCustomerCreatedProps = Partial<{
|
|
|
265
263
|
externalId: string;
|
|
266
264
|
name: string;
|
|
267
265
|
vatNumber: string;
|
|
266
|
+
webhookEventType: 'customer.created';
|
|
267
|
+
}>;
|
|
268
|
+
type HyperlineCustomerUpdatedProps = Partial<{
|
|
269
|
+
tenantId: string;
|
|
270
|
+
customerId: string;
|
|
271
|
+
billingEmail: string;
|
|
272
|
+
billingAddress: string;
|
|
273
|
+
externalId: string;
|
|
274
|
+
name: string;
|
|
275
|
+
vatNumber: string;
|
|
276
|
+
webhookEventType: 'customer.updated';
|
|
268
277
|
}>;
|
|
269
|
-
type HyperlineCustomerUpdatedProps = HyperlineCustomerCreatedProps;
|
|
270
278
|
type HyperlineInvoiceReadyProps = Partial<{
|
|
271
279
|
status: 'ready';
|
|
272
280
|
paymentMethodType: string;
|
|
@@ -290,7 +298,6 @@ type HyperlineInvoiceSettledProps = Partial<{
|
|
|
290
298
|
settledAt: string;
|
|
291
299
|
}>;
|
|
292
300
|
type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
293
|
-
userId: string;
|
|
294
301
|
tenantId: string;
|
|
295
302
|
subscriptionStartDate: string;
|
|
296
303
|
paymentMethodType: PaymentMethodType;
|
|
@@ -300,7 +307,6 @@ type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
|
300
307
|
webhookEventType: 'payment_method.created';
|
|
301
308
|
}>;
|
|
302
309
|
type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
303
|
-
userId: string;
|
|
304
310
|
tenantId: string;
|
|
305
311
|
subscriptionStartDate: string;
|
|
306
312
|
paymentMethodType: PaymentMethodType;
|
|
@@ -310,7 +316,6 @@ type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
|
310
316
|
webhookEventType: 'payment_method.deleted';
|
|
311
317
|
}>;
|
|
312
318
|
type HyperlinePaymentMethodErroredProps = Partial<{
|
|
313
|
-
userId: string;
|
|
314
319
|
tenantId: string;
|
|
315
320
|
subscriptionStartDate: string;
|
|
316
321
|
paymentMethodType: PaymentMethodType;
|
|
@@ -320,20 +325,20 @@ type HyperlinePaymentMethodErroredProps = Partial<{
|
|
|
320
325
|
webhookEventType: 'payment_method.errored';
|
|
321
326
|
}>;
|
|
322
327
|
type HyperlineSubscriptionActivatedProps = Partial<{
|
|
323
|
-
|
|
324
|
-
tenantId: string;
|
|
328
|
+
subscriptionId: string;
|
|
325
329
|
subscriptionStatus: SubscriptionStatus;
|
|
330
|
+
plan: string;
|
|
331
|
+
tenantId: string;
|
|
326
332
|
webhookEventType: 'subscription.activated';
|
|
327
333
|
}>;
|
|
328
334
|
type HyperlineSubscriptionCancelledProps = Partial<{
|
|
329
|
-
trialEndAt: string;
|
|
330
|
-
plan: string;
|
|
331
335
|
subscriptionId: string;
|
|
332
|
-
subscriptionStartDate: string;
|
|
333
336
|
subscriptionStatus: SubscriptionStatus;
|
|
337
|
+
plan: string;
|
|
338
|
+
trialEndAt: string;
|
|
339
|
+
subscriptionStartDate: string;
|
|
334
340
|
paymentMethodType: string;
|
|
335
341
|
customerId: string;
|
|
336
|
-
userId: string;
|
|
337
342
|
tenantId: string;
|
|
338
343
|
webhookEventType: 'subscription.cancelled';
|
|
339
344
|
}>;
|
|
@@ -355,21 +360,25 @@ type HyperlineSubscriptionCreatedProps = Partial<{
|
|
|
355
360
|
customerId: string;
|
|
356
361
|
}>;
|
|
357
362
|
type HyperlineSubscriptionErroredProps = Partial<{
|
|
363
|
+
subscriptionId: string;
|
|
364
|
+
subscriptionStatus: SubscriptionStatus;
|
|
365
|
+
plan: string;
|
|
358
366
|
userId: string;
|
|
359
367
|
tenantId: string;
|
|
360
|
-
subscriptionStatus: SubscriptionStatus;
|
|
361
368
|
webhookEventType: 'subscription.errored';
|
|
362
369
|
}>;
|
|
363
370
|
type HyperlineSubscriptionPausedProps = Partial<{
|
|
364
|
-
|
|
365
|
-
tenantId: string;
|
|
371
|
+
subscriptionId: string;
|
|
366
372
|
subscriptionStatus: SubscriptionStatus;
|
|
373
|
+
plan: string;
|
|
374
|
+
tenantId: string;
|
|
367
375
|
webhookEventType: 'subscription.paused';
|
|
368
376
|
}>;
|
|
369
377
|
type HyperlineSubscriptionVoidedProps = Partial<{
|
|
370
|
-
|
|
371
|
-
tenantId: string;
|
|
378
|
+
subscriptionId: string;
|
|
372
379
|
subscriptionStatus: SubscriptionStatus;
|
|
380
|
+
plan: string;
|
|
381
|
+
tenantId: string;
|
|
373
382
|
webhookEventType: 'subscription.voided';
|
|
374
383
|
}>;
|
|
375
384
|
type HyperlineTrialEndedProps = Partial<{
|
|
@@ -383,7 +392,6 @@ type HyperlineTrialEndedProps = Partial<{
|
|
|
383
392
|
}>;
|
|
384
393
|
type HyperlineTrialStartedProps = Partial<{
|
|
385
394
|
tenantId: string;
|
|
386
|
-
userId: string;
|
|
387
395
|
subscriptionStatus: SubscriptionStatus;
|
|
388
396
|
trialUntil: string;
|
|
389
397
|
webhookEventType: 'payment_method.created';
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
+
const plan = [
|
|
2
|
+
'All-in-One VRP Subscription',
|
|
3
|
+
'Essentials VRP Subscription',
|
|
4
|
+
'Legacy - Percentage',
|
|
5
|
+
'Legacy - Tiered Listing',
|
|
6
|
+
'Ximplifi',
|
|
7
|
+
'Pro VRP Subscription',
|
|
8
|
+
'Legacy - Tiered Percentage',
|
|
9
|
+
'PMI Corporate VRP Subscription',
|
|
10
|
+
];
|
|
1
11
|
export {};
|
|
2
12
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["tracking/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["tracking/types.ts"],"names":[],"mappings":"AAQA,MAAM,IAAI,GAAG;IACX,6BAA6B;IAC7B,6BAA6B;IAC7B,qBAAqB;IACrB,yBAAyB;IACzB,UAAU;IACV,sBAAsB;IACtB,4BAA4B;IAC5B,gCAAgC;CACjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vrplatform/log",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.25",
|
|
4
4
|
"main": "build/main/index.js",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@axiomhq/js": "1.0.0-rc.3",
|
|
21
21
|
"@finalytic/graphql": "1.12.133",
|
|
22
22
|
"@june-so/analytics-node": "8.0.0",
|
|
23
|
-
"intercom-client": "6.0.0-
|
|
23
|
+
"intercom-client": "6.0.0-beta.3",
|
|
24
24
|
"posthog-node": "4.0.1",
|
|
25
25
|
"serialize-error": "11.0.3"
|
|
26
26
|
},
|
package/src/tracking/index.ts
CHANGED
|
@@ -100,8 +100,7 @@ declare module 'intercom-client' {
|
|
|
100
100
|
|
|
101
101
|
import { createClientV2 } from '@finalytic/graphql';
|
|
102
102
|
import { Analytics } from '@june-so/analytics-node';
|
|
103
|
-
import { Intercom
|
|
104
|
-
import { fetcher } from 'intercom-client/core/fetcher/Fetcher';
|
|
103
|
+
import { Intercom } from 'intercom-client';
|
|
105
104
|
import { PostHog } from 'posthog-node';
|
|
106
105
|
import { type LogBindings, type WorkerLog, useLog } from '../log';
|
|
107
106
|
import { convertKeysToSnakeCase, isTest } from '../utils';
|
|
@@ -141,7 +140,7 @@ export const useTracking = (
|
|
|
141
140
|
shutdown: () => Promise<any>;
|
|
142
141
|
log: WorkerLog;
|
|
143
142
|
june?: Analytics;
|
|
144
|
-
intercom?:
|
|
143
|
+
intercom?: Intercom;
|
|
145
144
|
posthog?: PostHog;
|
|
146
145
|
} => {
|
|
147
146
|
const client = env.HASURA_GRAPHQL_ADMIN_SECRET
|
|
@@ -151,13 +150,13 @@ export const useTracking = (
|
|
|
151
150
|
: undefined;
|
|
152
151
|
const log = useLog({ name, dataset, env });
|
|
153
152
|
const intercom = env.INTERCOM_TOKEN
|
|
154
|
-
? new
|
|
155
|
-
|
|
156
|
-
fetcher: (args) =>
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
153
|
+
? new Intercom({
|
|
154
|
+
accessToken: env.INTERCOM_TOKEN,
|
|
155
|
+
// fetcher: (args) =>
|
|
156
|
+
// fetcher({
|
|
157
|
+
// ...args,
|
|
158
|
+
// headers: { ...args.headers, accept: 'application/json' },
|
|
159
|
+
// }),
|
|
161
160
|
})
|
|
162
161
|
: undefined;
|
|
163
162
|
const june = env.JUNESO_TOKEN ? new Analytics(env.JUNESO_TOKEN) : undefined;
|
|
@@ -180,20 +179,19 @@ export const useTracking = (
|
|
|
180
179
|
}: TrackProps<T>) => {
|
|
181
180
|
if (isDev || isTest(userId || anonymousId || '', groupId)) return;
|
|
182
181
|
|
|
183
|
-
await client?.mutate(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
});
|
|
182
|
+
await client?.mutate(
|
|
183
|
+
(q) =>
|
|
184
|
+
q.insert_tracking_event_one({
|
|
185
|
+
object: {
|
|
186
|
+
name: event,
|
|
187
|
+
tenantId: groupId,
|
|
188
|
+
userId: userId,
|
|
189
|
+
props: properties,
|
|
190
|
+
createdAt: timestamp,
|
|
191
|
+
packageName,
|
|
192
|
+
},
|
|
193
|
+
}).id
|
|
194
|
+
);
|
|
197
195
|
|
|
198
196
|
if (anonymousId) {
|
|
199
197
|
posthog?.capture({
|
|
@@ -245,11 +243,13 @@ export const useTracking = (
|
|
|
245
243
|
);
|
|
246
244
|
|
|
247
245
|
try {
|
|
248
|
-
await intercom?.
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
246
|
+
await intercom?.dataEvents.create({
|
|
247
|
+
body: {
|
|
248
|
+
user_id: userId,
|
|
249
|
+
event_name: event,
|
|
250
|
+
metadata: convertValuesToString(properties),
|
|
251
|
+
created_at: Math.floor(timestamp.getTime() / 1000),
|
|
252
|
+
},
|
|
253
253
|
});
|
|
254
254
|
} catch (e) {
|
|
255
255
|
console.error(e);
|
|
@@ -305,14 +305,14 @@ export const useTracking = (
|
|
|
305
305
|
await intercom?.contacts.search({
|
|
306
306
|
query: {
|
|
307
307
|
field: 'external_id',
|
|
308
|
-
operator:
|
|
308
|
+
operator: '=',
|
|
309
309
|
value: userId,
|
|
310
310
|
},
|
|
311
311
|
})
|
|
312
|
-
)?.data
|
|
312
|
+
)?.data?.at(0);
|
|
313
313
|
if (intercomUser?.id)
|
|
314
314
|
await intercom?.contacts.update(intercomUser?.id, data);
|
|
315
|
-
else await intercom?.contacts.create(data);
|
|
315
|
+
else await intercom?.contacts.create({ body: data });
|
|
316
316
|
} catch (e) {
|
|
317
317
|
console.error(e);
|
|
318
318
|
}
|
|
@@ -332,34 +332,43 @@ export const useTracking = (
|
|
|
332
332
|
let intercomCompany: Intercom.Company | undefined;
|
|
333
333
|
try {
|
|
334
334
|
const cid = traits?.billingCustomerId || traits?.hyperlineCustomerId;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
335
|
+
const partner = traits?.partner || traits?.accountingPartner;
|
|
336
|
+
const billingPartner =
|
|
337
|
+
traits?.billingPartner ||
|
|
338
|
+
traits?.partner ||
|
|
339
|
+
traits?.accountingPartner;
|
|
340
|
+
|
|
341
|
+
const custom_attributes: Record<string, string> = { teamId: groupId };
|
|
342
|
+
if (traits?.name) custom_attributes.team = traits?.name;
|
|
343
|
+
if (traits?.type) custom_attributes.type = traits?.type;
|
|
344
|
+
if (traits?.status) custom_attributes.status = traits?.status;
|
|
345
|
+
if (traits?.pms) custom_attributes.pms = traits?.pms;
|
|
346
|
+
if (traits?.accountingSoftware)
|
|
347
|
+
custom_attributes.accountingSoftware = traits?.accountingSoftware;
|
|
348
|
+
if (traits?.activeListings)
|
|
349
|
+
custom_attributes.activeListings = `${traits?.activeListings}`;
|
|
350
|
+
if (traits?.paymentMethodType)
|
|
351
|
+
custom_attributes.paymentMethodType = traits?.paymentMethodType;
|
|
352
|
+
if (partner) custom_attributes.partner = partner;
|
|
353
|
+
if (cid)
|
|
354
|
+
custom_attributes.billingPortalUrl = `https://billing.vrplatform.app/portal/${cid}`;
|
|
355
|
+
if (traits?.subscriptionStatus)
|
|
356
|
+
custom_attributes.billingStatus = traits?.subscriptionStatus;
|
|
357
|
+
if (billingPartner) custom_attributes.billingPartner = billingPartner;
|
|
358
|
+
|
|
359
|
+
intercomCompany = await intercom?.companies.create(
|
|
360
|
+
{
|
|
361
|
+
name: traits?.name,
|
|
362
|
+
company_id: groupId,
|
|
363
|
+
plan: traits?.plan,
|
|
364
|
+
remote_created_at: traits?.createdAt
|
|
365
|
+
? Math.floor(new Date(traits.createdAt).getTime() / 1000)
|
|
355
366
|
: undefined,
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
traits?.billingPartner ||
|
|
359
|
-
traits?.partner ||
|
|
360
|
-
traits?.accountingPartner,
|
|
367
|
+
monthly_spend: traits?.mrr,
|
|
368
|
+
custom_attributes,
|
|
361
369
|
},
|
|
362
|
-
|
|
370
|
+
{}
|
|
371
|
+
);
|
|
363
372
|
} catch (e) {
|
|
364
373
|
console.error(e);
|
|
365
374
|
}
|
|
@@ -393,14 +402,14 @@ export const useTracking = (
|
|
|
393
402
|
await intercom?.contacts.search({
|
|
394
403
|
query: {
|
|
395
404
|
field: 'external_id',
|
|
396
|
-
operator:
|
|
405
|
+
operator: '=',
|
|
397
406
|
value: userId,
|
|
398
407
|
},
|
|
399
408
|
})
|
|
400
|
-
)?.data
|
|
409
|
+
)?.data?.at(0);
|
|
401
410
|
if (intercomUser?.id && intercomCompany?.id)
|
|
402
|
-
intercom?.companies.
|
|
403
|
-
|
|
411
|
+
intercom?.contacts.companies.create(intercomUser?.id, {
|
|
412
|
+
company_id: intercomCompany?.id,
|
|
404
413
|
});
|
|
405
414
|
} catch (e) {
|
|
406
415
|
console.error(e);
|
package/src/tracking/types.ts
CHANGED
|
@@ -6,6 +6,17 @@ export type TrackProps<T extends TrackingEvent> = OptionalUser<{
|
|
|
6
6
|
properties: TrackingEventProps[T];
|
|
7
7
|
}>;
|
|
8
8
|
|
|
9
|
+
const plan = [
|
|
10
|
+
'All-in-One VRP Subscription',
|
|
11
|
+
'Essentials VRP Subscription',
|
|
12
|
+
'Legacy - Percentage',
|
|
13
|
+
'Legacy - Tiered Listing',
|
|
14
|
+
'Ximplifi',
|
|
15
|
+
'Pro VRP Subscription',
|
|
16
|
+
'Legacy - Tiered Percentage',
|
|
17
|
+
'PMI Corporate VRP Subscription',
|
|
18
|
+
];
|
|
19
|
+
|
|
9
20
|
export type IdentifyProps = {
|
|
10
21
|
userId: string;
|
|
11
22
|
traits?: {
|
|
@@ -161,19 +172,6 @@ export type PaymentMethodType =
|
|
|
161
172
|
| 'direct_debit_sepa'
|
|
162
173
|
| 'direct_debit_ach'
|
|
163
174
|
| 'direct_debit_bacs';
|
|
164
|
-
export type WebhookEventType =
|
|
165
|
-
| 'customer.created'
|
|
166
|
-
| 'customer.updated'
|
|
167
|
-
| 'subscription.activated'
|
|
168
|
-
| 'subscription.cancelled'
|
|
169
|
-
| 'subscription.created'
|
|
170
|
-
| 'subscription.errored'
|
|
171
|
-
| 'subscription.paused'
|
|
172
|
-
| 'subscription.voided'
|
|
173
|
-
| 'subscription.charged'
|
|
174
|
-
| 'payment_method.created'
|
|
175
|
-
| 'payment_method.errored'
|
|
176
|
-
| 'payment_method.deleted';
|
|
177
175
|
|
|
178
176
|
type AccountInvitationAcceptedProps = Partial<{
|
|
179
177
|
userId: string;
|
|
@@ -319,7 +317,6 @@ type GlOwnerStatementPreviewOpenedProps = Partial<{
|
|
|
319
317
|
}>;
|
|
320
318
|
|
|
321
319
|
type HyperlineCustomerCreatedProps = Partial<{
|
|
322
|
-
userId: string;
|
|
323
320
|
tenantId: string;
|
|
324
321
|
customerId: string;
|
|
325
322
|
billingEmail: string;
|
|
@@ -327,9 +324,19 @@ type HyperlineCustomerCreatedProps = Partial<{
|
|
|
327
324
|
externalId: string;
|
|
328
325
|
name: string;
|
|
329
326
|
vatNumber: string;
|
|
327
|
+
webhookEventType: 'customer.created';
|
|
330
328
|
}>;
|
|
331
329
|
|
|
332
|
-
type HyperlineCustomerUpdatedProps =
|
|
330
|
+
type HyperlineCustomerUpdatedProps = Partial<{
|
|
331
|
+
tenantId: string;
|
|
332
|
+
customerId: string;
|
|
333
|
+
billingEmail: string;
|
|
334
|
+
billingAddress: string;
|
|
335
|
+
externalId: string;
|
|
336
|
+
name: string;
|
|
337
|
+
vatNumber: string;
|
|
338
|
+
webhookEventType: 'customer.updated';
|
|
339
|
+
}>;
|
|
333
340
|
|
|
334
341
|
type HyperlineInvoiceReadyProps = Partial<{
|
|
335
342
|
status: 'ready';
|
|
@@ -356,7 +363,6 @@ type HyperlineInvoiceSettledProps = Partial<{
|
|
|
356
363
|
}>;
|
|
357
364
|
|
|
358
365
|
type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
359
|
-
userId: string;
|
|
360
366
|
tenantId: string;
|
|
361
367
|
subscriptionStartDate: string;
|
|
362
368
|
paymentMethodType: PaymentMethodType;
|
|
@@ -367,7 +373,6 @@ type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
|
367
373
|
}>;
|
|
368
374
|
|
|
369
375
|
type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
370
|
-
userId: string;
|
|
371
376
|
tenantId: string;
|
|
372
377
|
subscriptionStartDate: string;
|
|
373
378
|
paymentMethodType: PaymentMethodType;
|
|
@@ -378,7 +383,6 @@ type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
|
378
383
|
}>;
|
|
379
384
|
|
|
380
385
|
type HyperlinePaymentMethodErroredProps = Partial<{
|
|
381
|
-
userId: string;
|
|
382
386
|
tenantId: string;
|
|
383
387
|
subscriptionStartDate: string;
|
|
384
388
|
paymentMethodType: PaymentMethodType;
|
|
@@ -389,21 +393,21 @@ type HyperlinePaymentMethodErroredProps = Partial<{
|
|
|
389
393
|
}>;
|
|
390
394
|
|
|
391
395
|
type HyperlineSubscriptionActivatedProps = Partial<{
|
|
392
|
-
|
|
393
|
-
tenantId: string;
|
|
396
|
+
subscriptionId: string;
|
|
394
397
|
subscriptionStatus: SubscriptionStatus;
|
|
398
|
+
plan: string;
|
|
399
|
+
tenantId: string;
|
|
395
400
|
webhookEventType: 'subscription.activated';
|
|
396
401
|
}>;
|
|
397
402
|
|
|
398
403
|
type HyperlineSubscriptionCancelledProps = Partial<{
|
|
399
|
-
trialEndAt: string;
|
|
400
|
-
plan: string;
|
|
401
404
|
subscriptionId: string;
|
|
402
|
-
subscriptionStartDate: string;
|
|
403
405
|
subscriptionStatus: SubscriptionStatus;
|
|
406
|
+
plan: string;
|
|
407
|
+
trialEndAt: string;
|
|
408
|
+
subscriptionStartDate: string;
|
|
404
409
|
paymentMethodType: string;
|
|
405
410
|
customerId: string;
|
|
406
|
-
userId: string;
|
|
407
411
|
tenantId: string;
|
|
408
412
|
webhookEventType: 'subscription.cancelled';
|
|
409
413
|
}>;
|
|
@@ -428,23 +432,27 @@ type HyperlineSubscriptionCreatedProps = Partial<{
|
|
|
428
432
|
}>;
|
|
429
433
|
|
|
430
434
|
type HyperlineSubscriptionErroredProps = Partial<{
|
|
435
|
+
subscriptionId: string;
|
|
436
|
+
subscriptionStatus: SubscriptionStatus;
|
|
437
|
+
plan: string;
|
|
431
438
|
userId: string;
|
|
432
439
|
tenantId: string;
|
|
433
|
-
subscriptionStatus: SubscriptionStatus;
|
|
434
440
|
webhookEventType: 'subscription.errored';
|
|
435
441
|
}>;
|
|
436
442
|
|
|
437
443
|
type HyperlineSubscriptionPausedProps = Partial<{
|
|
438
|
-
|
|
439
|
-
tenantId: string;
|
|
444
|
+
subscriptionId: string;
|
|
440
445
|
subscriptionStatus: SubscriptionStatus;
|
|
446
|
+
plan: string;
|
|
447
|
+
tenantId: string;
|
|
441
448
|
webhookEventType: 'subscription.paused';
|
|
442
449
|
}>;
|
|
443
450
|
|
|
444
451
|
type HyperlineSubscriptionVoidedProps = Partial<{
|
|
445
|
-
|
|
446
|
-
tenantId: string;
|
|
452
|
+
subscriptionId: string;
|
|
447
453
|
subscriptionStatus: SubscriptionStatus;
|
|
454
|
+
plan: string;
|
|
455
|
+
tenantId: string;
|
|
448
456
|
webhookEventType: 'subscription.voided';
|
|
449
457
|
}>;
|
|
450
458
|
|
|
@@ -460,7 +468,6 @@ type HyperlineTrialEndedProps = Partial<{
|
|
|
460
468
|
|
|
461
469
|
type HyperlineTrialStartedProps = Partial<{
|
|
462
470
|
tenantId: string;
|
|
463
|
-
userId: string;
|
|
464
471
|
subscriptionStatus: SubscriptionStatus;
|
|
465
472
|
trialUntil: string;
|
|
466
473
|
webhookEventType: 'payment_method.created';
|