Files
botpress--botpress/integrations/google-analytics/integration.definition.ts
T
2026-07-13 13:34:48 +08:00

81 lines
2.4 KiB
TypeScript

import { IntegrationDefinition, z } from '@botpress/sdk'
export default new IntegrationDefinition({
name: 'google-analytics',
title: 'Google Analytics',
description: 'Track bot events and user activity in Google Analytics.',
icon: 'icon.svg',
version: '1.0.0',
readme: 'hub.md',
configuration: {
schema: z.object({
measurementId: z
.string()
.min(1, 'Measurement ID is required')
.title('Measurement ID')
.describe('The Measurement ID for your Google Analytics 4 property'),
apiSecret: z
.string()
.secret()
.min(1, 'API Secret is required')
.title('API Secret')
.describe('The API Secret for your Google Analytics 4 property'),
}),
},
actions: {
updateUserProfile: {
title: 'Update User Profile',
description: "Update a user's profile information in Google Analytics.",
input: {
schema: z.object({
userId: z.string().min(1).title('User ID').describe('The user ID of the profile you want to update'),
userProfile: z
.string()
.title('User Profile')
.describe("JSON object string containing the user's metadata, such as email or name")
.optional(),
}),
},
output: {
schema: z.object({}),
},
},
trackNode: {
title: 'Track Node',
description: 'Track a node execution as a page view in Google Analytics.',
input: {
schema: z.object({
userId: z.string().min(1).title('User ID').describe('The user ID to track'),
nodeId: z.string().min(1).title('Node ID').describe('A unique ID representing the node being tracked'),
}),
},
output: {
schema: z.object({}),
},
},
trackEvent: {
title: 'Track Event',
description: 'Track a custom event in Google Analytics.',
input: {
schema: z.object({
userId: z.string().min(1).title('User ID').describe('The user ID to track'),
eventName: z.string().min(1).title('Event Name').describe('The event name to track'),
eventPayload: z
.string()
.title('Event Payload')
.describe('JSON object string containing the properties of the event')
.optional(),
}),
},
output: {
schema: z.object({}),
},
},
},
channels: {},
attributes: {
category: 'Marketing & Email',
repo: 'botpress',
},
})