@vrplatform/log 2.0.24 → 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 +15 -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 +15 -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 +26 -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;
|
|
@@ -268,7 +266,6 @@ type HyperlineCustomerCreatedProps = Partial<{
|
|
|
268
266
|
webhookEventType: 'customer.created';
|
|
269
267
|
}>;
|
|
270
268
|
type HyperlineCustomerUpdatedProps = Partial<{
|
|
271
|
-
userId: string;
|
|
272
269
|
tenantId: string;
|
|
273
270
|
customerId: string;
|
|
274
271
|
billingEmail: string;
|
|
@@ -301,7 +298,6 @@ type HyperlineInvoiceSettledProps = Partial<{
|
|
|
301
298
|
settledAt: string;
|
|
302
299
|
}>;
|
|
303
300
|
type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
304
|
-
userId: string;
|
|
305
301
|
tenantId: string;
|
|
306
302
|
subscriptionStartDate: string;
|
|
307
303
|
paymentMethodType: PaymentMethodType;
|
|
@@ -311,7 +307,6 @@ type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
|
311
307
|
webhookEventType: 'payment_method.created';
|
|
312
308
|
}>;
|
|
313
309
|
type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
314
|
-
userId: string;
|
|
315
310
|
tenantId: string;
|
|
316
311
|
subscriptionStartDate: string;
|
|
317
312
|
paymentMethodType: PaymentMethodType;
|
|
@@ -321,7 +316,6 @@ type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
|
321
316
|
webhookEventType: 'payment_method.deleted';
|
|
322
317
|
}>;
|
|
323
318
|
type HyperlinePaymentMethodErroredProps = Partial<{
|
|
324
|
-
userId: string;
|
|
325
319
|
tenantId: string;
|
|
326
320
|
subscriptionStartDate: string;
|
|
327
321
|
paymentMethodType: PaymentMethodType;
|
|
@@ -331,20 +325,20 @@ type HyperlinePaymentMethodErroredProps = Partial<{
|
|
|
331
325
|
webhookEventType: 'payment_method.errored';
|
|
332
326
|
}>;
|
|
333
327
|
type HyperlineSubscriptionActivatedProps = Partial<{
|
|
334
|
-
|
|
335
|
-
tenantId: string;
|
|
328
|
+
subscriptionId: string;
|
|
336
329
|
subscriptionStatus: SubscriptionStatus;
|
|
330
|
+
plan: string;
|
|
331
|
+
tenantId: string;
|
|
337
332
|
webhookEventType: 'subscription.activated';
|
|
338
333
|
}>;
|
|
339
334
|
type HyperlineSubscriptionCancelledProps = Partial<{
|
|
340
|
-
trialEndAt: string;
|
|
341
|
-
plan: string;
|
|
342
335
|
subscriptionId: string;
|
|
343
|
-
subscriptionStartDate: string;
|
|
344
336
|
subscriptionStatus: SubscriptionStatus;
|
|
337
|
+
plan: string;
|
|
338
|
+
trialEndAt: string;
|
|
339
|
+
subscriptionStartDate: string;
|
|
345
340
|
paymentMethodType: string;
|
|
346
341
|
customerId: string;
|
|
347
|
-
userId: string;
|
|
348
342
|
tenantId: string;
|
|
349
343
|
webhookEventType: 'subscription.cancelled';
|
|
350
344
|
}>;
|
|
@@ -366,21 +360,25 @@ type HyperlineSubscriptionCreatedProps = Partial<{
|
|
|
366
360
|
customerId: string;
|
|
367
361
|
}>;
|
|
368
362
|
type HyperlineSubscriptionErroredProps = Partial<{
|
|
363
|
+
subscriptionId: string;
|
|
364
|
+
subscriptionStatus: SubscriptionStatus;
|
|
365
|
+
plan: string;
|
|
369
366
|
userId: string;
|
|
370
367
|
tenantId: string;
|
|
371
|
-
subscriptionStatus: SubscriptionStatus;
|
|
372
368
|
webhookEventType: 'subscription.errored';
|
|
373
369
|
}>;
|
|
374
370
|
type HyperlineSubscriptionPausedProps = Partial<{
|
|
375
|
-
|
|
376
|
-
tenantId: string;
|
|
371
|
+
subscriptionId: string;
|
|
377
372
|
subscriptionStatus: SubscriptionStatus;
|
|
373
|
+
plan: string;
|
|
374
|
+
tenantId: string;
|
|
378
375
|
webhookEventType: 'subscription.paused';
|
|
379
376
|
}>;
|
|
380
377
|
type HyperlineSubscriptionVoidedProps = Partial<{
|
|
381
|
-
|
|
382
|
-
tenantId: string;
|
|
378
|
+
subscriptionId: string;
|
|
383
379
|
subscriptionStatus: SubscriptionStatus;
|
|
380
|
+
plan: string;
|
|
381
|
+
tenantId: string;
|
|
384
382
|
webhookEventType: 'subscription.voided';
|
|
385
383
|
}>;
|
|
386
384
|
type HyperlineTrialEndedProps = Partial<{
|
|
@@ -394,7 +392,6 @@ type HyperlineTrialEndedProps = Partial<{
|
|
|
394
392
|
}>;
|
|
395
393
|
type HyperlineTrialStartedProps = Partial<{
|
|
396
394
|
tenantId: string;
|
|
397
|
-
userId: string;
|
|
398
395
|
subscriptionStatus: SubscriptionStatus;
|
|
399
396
|
trialUntil: string;
|
|
400
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;
|
|
@@ -268,7 +266,6 @@ type HyperlineCustomerCreatedProps = Partial<{
|
|
|
268
266
|
webhookEventType: 'customer.created';
|
|
269
267
|
}>;
|
|
270
268
|
type HyperlineCustomerUpdatedProps = Partial<{
|
|
271
|
-
userId: string;
|
|
272
269
|
tenantId: string;
|
|
273
270
|
customerId: string;
|
|
274
271
|
billingEmail: string;
|
|
@@ -301,7 +298,6 @@ type HyperlineInvoiceSettledProps = Partial<{
|
|
|
301
298
|
settledAt: string;
|
|
302
299
|
}>;
|
|
303
300
|
type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
304
|
-
userId: string;
|
|
305
301
|
tenantId: string;
|
|
306
302
|
subscriptionStartDate: string;
|
|
307
303
|
paymentMethodType: PaymentMethodType;
|
|
@@ -311,7 +307,6 @@ type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
|
311
307
|
webhookEventType: 'payment_method.created';
|
|
312
308
|
}>;
|
|
313
309
|
type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
314
|
-
userId: string;
|
|
315
310
|
tenantId: string;
|
|
316
311
|
subscriptionStartDate: string;
|
|
317
312
|
paymentMethodType: PaymentMethodType;
|
|
@@ -321,7 +316,6 @@ type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
|
321
316
|
webhookEventType: 'payment_method.deleted';
|
|
322
317
|
}>;
|
|
323
318
|
type HyperlinePaymentMethodErroredProps = Partial<{
|
|
324
|
-
userId: string;
|
|
325
319
|
tenantId: string;
|
|
326
320
|
subscriptionStartDate: string;
|
|
327
321
|
paymentMethodType: PaymentMethodType;
|
|
@@ -331,20 +325,20 @@ type HyperlinePaymentMethodErroredProps = Partial<{
|
|
|
331
325
|
webhookEventType: 'payment_method.errored';
|
|
332
326
|
}>;
|
|
333
327
|
type HyperlineSubscriptionActivatedProps = Partial<{
|
|
334
|
-
|
|
335
|
-
tenantId: string;
|
|
328
|
+
subscriptionId: string;
|
|
336
329
|
subscriptionStatus: SubscriptionStatus;
|
|
330
|
+
plan: string;
|
|
331
|
+
tenantId: string;
|
|
337
332
|
webhookEventType: 'subscription.activated';
|
|
338
333
|
}>;
|
|
339
334
|
type HyperlineSubscriptionCancelledProps = Partial<{
|
|
340
|
-
trialEndAt: string;
|
|
341
|
-
plan: string;
|
|
342
335
|
subscriptionId: string;
|
|
343
|
-
subscriptionStartDate: string;
|
|
344
336
|
subscriptionStatus: SubscriptionStatus;
|
|
337
|
+
plan: string;
|
|
338
|
+
trialEndAt: string;
|
|
339
|
+
subscriptionStartDate: string;
|
|
345
340
|
paymentMethodType: string;
|
|
346
341
|
customerId: string;
|
|
347
|
-
userId: string;
|
|
348
342
|
tenantId: string;
|
|
349
343
|
webhookEventType: 'subscription.cancelled';
|
|
350
344
|
}>;
|
|
@@ -366,21 +360,25 @@ type HyperlineSubscriptionCreatedProps = Partial<{
|
|
|
366
360
|
customerId: string;
|
|
367
361
|
}>;
|
|
368
362
|
type HyperlineSubscriptionErroredProps = Partial<{
|
|
363
|
+
subscriptionId: string;
|
|
364
|
+
subscriptionStatus: SubscriptionStatus;
|
|
365
|
+
plan: string;
|
|
369
366
|
userId: string;
|
|
370
367
|
tenantId: string;
|
|
371
|
-
subscriptionStatus: SubscriptionStatus;
|
|
372
368
|
webhookEventType: 'subscription.errored';
|
|
373
369
|
}>;
|
|
374
370
|
type HyperlineSubscriptionPausedProps = Partial<{
|
|
375
|
-
|
|
376
|
-
tenantId: string;
|
|
371
|
+
subscriptionId: string;
|
|
377
372
|
subscriptionStatus: SubscriptionStatus;
|
|
373
|
+
plan: string;
|
|
374
|
+
tenantId: string;
|
|
378
375
|
webhookEventType: 'subscription.paused';
|
|
379
376
|
}>;
|
|
380
377
|
type HyperlineSubscriptionVoidedProps = Partial<{
|
|
381
|
-
|
|
382
|
-
tenantId: string;
|
|
378
|
+
subscriptionId: string;
|
|
383
379
|
subscriptionStatus: SubscriptionStatus;
|
|
380
|
+
plan: string;
|
|
381
|
+
tenantId: string;
|
|
384
382
|
webhookEventType: 'subscription.voided';
|
|
385
383
|
}>;
|
|
386
384
|
type HyperlineTrialEndedProps = Partial<{
|
|
@@ -394,7 +392,6 @@ type HyperlineTrialEndedProps = Partial<{
|
|
|
394
392
|
}>;
|
|
395
393
|
type HyperlineTrialStartedProps = Partial<{
|
|
396
394
|
tenantId: string;
|
|
397
|
-
userId: string;
|
|
398
395
|
subscriptionStatus: SubscriptionStatus;
|
|
399
396
|
trialUntil: string;
|
|
400
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;
|
|
@@ -331,7 +328,6 @@ type HyperlineCustomerCreatedProps = Partial<{
|
|
|
331
328
|
}>;
|
|
332
329
|
|
|
333
330
|
type HyperlineCustomerUpdatedProps = Partial<{
|
|
334
|
-
userId: string;
|
|
335
331
|
tenantId: string;
|
|
336
332
|
customerId: string;
|
|
337
333
|
billingEmail: string;
|
|
@@ -367,7 +363,6 @@ type HyperlineInvoiceSettledProps = Partial<{
|
|
|
367
363
|
}>;
|
|
368
364
|
|
|
369
365
|
type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
370
|
-
userId: string;
|
|
371
366
|
tenantId: string;
|
|
372
367
|
subscriptionStartDate: string;
|
|
373
368
|
paymentMethodType: PaymentMethodType;
|
|
@@ -378,7 +373,6 @@ type HyperlinePaymentMethodCreatedProps = Partial<{
|
|
|
378
373
|
}>;
|
|
379
374
|
|
|
380
375
|
type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
381
|
-
userId: string;
|
|
382
376
|
tenantId: string;
|
|
383
377
|
subscriptionStartDate: string;
|
|
384
378
|
paymentMethodType: PaymentMethodType;
|
|
@@ -389,7 +383,6 @@ type HyperlinePaymentMethodDeletedProps = Partial<{
|
|
|
389
383
|
}>;
|
|
390
384
|
|
|
391
385
|
type HyperlinePaymentMethodErroredProps = Partial<{
|
|
392
|
-
userId: string;
|
|
393
386
|
tenantId: string;
|
|
394
387
|
subscriptionStartDate: string;
|
|
395
388
|
paymentMethodType: PaymentMethodType;
|
|
@@ -400,21 +393,21 @@ type HyperlinePaymentMethodErroredProps = Partial<{
|
|
|
400
393
|
}>;
|
|
401
394
|
|
|
402
395
|
type HyperlineSubscriptionActivatedProps = Partial<{
|
|
403
|
-
|
|
404
|
-
tenantId: string;
|
|
396
|
+
subscriptionId: string;
|
|
405
397
|
subscriptionStatus: SubscriptionStatus;
|
|
398
|
+
plan: string;
|
|
399
|
+
tenantId: string;
|
|
406
400
|
webhookEventType: 'subscription.activated';
|
|
407
401
|
}>;
|
|
408
402
|
|
|
409
403
|
type HyperlineSubscriptionCancelledProps = Partial<{
|
|
410
|
-
trialEndAt: string;
|
|
411
|
-
plan: string;
|
|
412
404
|
subscriptionId: string;
|
|
413
|
-
subscriptionStartDate: string;
|
|
414
405
|
subscriptionStatus: SubscriptionStatus;
|
|
406
|
+
plan: string;
|
|
407
|
+
trialEndAt: string;
|
|
408
|
+
subscriptionStartDate: string;
|
|
415
409
|
paymentMethodType: string;
|
|
416
410
|
customerId: string;
|
|
417
|
-
userId: string;
|
|
418
411
|
tenantId: string;
|
|
419
412
|
webhookEventType: 'subscription.cancelled';
|
|
420
413
|
}>;
|
|
@@ -439,23 +432,27 @@ type HyperlineSubscriptionCreatedProps = Partial<{
|
|
|
439
432
|
}>;
|
|
440
433
|
|
|
441
434
|
type HyperlineSubscriptionErroredProps = Partial<{
|
|
435
|
+
subscriptionId: string;
|
|
436
|
+
subscriptionStatus: SubscriptionStatus;
|
|
437
|
+
plan: string;
|
|
442
438
|
userId: string;
|
|
443
439
|
tenantId: string;
|
|
444
|
-
subscriptionStatus: SubscriptionStatus;
|
|
445
440
|
webhookEventType: 'subscription.errored';
|
|
446
441
|
}>;
|
|
447
442
|
|
|
448
443
|
type HyperlineSubscriptionPausedProps = Partial<{
|
|
449
|
-
|
|
450
|
-
tenantId: string;
|
|
444
|
+
subscriptionId: string;
|
|
451
445
|
subscriptionStatus: SubscriptionStatus;
|
|
446
|
+
plan: string;
|
|
447
|
+
tenantId: string;
|
|
452
448
|
webhookEventType: 'subscription.paused';
|
|
453
449
|
}>;
|
|
454
450
|
|
|
455
451
|
type HyperlineSubscriptionVoidedProps = Partial<{
|
|
456
|
-
|
|
457
|
-
tenantId: string;
|
|
452
|
+
subscriptionId: string;
|
|
458
453
|
subscriptionStatus: SubscriptionStatus;
|
|
454
|
+
plan: string;
|
|
455
|
+
tenantId: string;
|
|
459
456
|
webhookEventType: 'subscription.voided';
|
|
460
457
|
}>;
|
|
461
458
|
|
|
@@ -471,7 +468,6 @@ type HyperlineTrialEndedProps = Partial<{
|
|
|
471
468
|
|
|
472
469
|
type HyperlineTrialStartedProps = Partial<{
|
|
473
470
|
tenantId: string;
|
|
474
|
-
userId: string;
|
|
475
471
|
subscriptionStatus: SubscriptionStatus;
|
|
476
472
|
trialUntil: string;
|
|
477
473
|
webhookEventType: 'payment_method.created';
|