diff --git a/apps/docs/components/Feedback/Feedback.tsx b/apps/docs/components/Feedback/Feedback.tsx
index f16063a9209..693a25c7bc7 100644
--- a/apps/docs/components/Feedback/Feedback.tsx
+++ b/apps/docs/components/Feedback/Feedback.tsx
@@ -13,7 +13,6 @@ import {
} from 'react'
import { type Database, useConstant, useIsLoggedIn } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { Button, cn } from 'ui'
import { IS_PLATFORM } from '~/lib/constants'
@@ -109,7 +108,7 @@ function Feedback({ className }: { className?: string }) {
function handleVote(response: Response) {
sendTelemetryEvent({
- action: TelemetryActions.DOCS_FEEDBACK_CLICKED,
+ action: 'docs_feedback_clicked',
properties: { response },
})
sendFeedbackVote(response)
diff --git a/apps/studio/components/grid/components/grid/Grid.tsx b/apps/studio/components/grid/components/grid/Grid.tsx
index e59a571e5da..e19e199e3b4 100644
--- a/apps/studio/components/grid/components/grid/Grid.tsx
+++ b/apps/studio/components/grid/components/grid/Grid.tsx
@@ -4,7 +4,6 @@ import { forwardRef, useRef } from 'react'
import DataGrid, { DataGridHandle, RowsChangeData } from 'react-data-grid'
import { memo } from 'react-tracked'
-import { TelemetryActions } from 'common/telemetry-constants'
import { formatClipboardValue } from 'components/grid/utils/common'
import { TableGridInnerLoadingState } from 'components/interfaces/TableGridEditor/LoadingState'
import { formatForeignKeys } from 'components/interfaces/TableGridEditor/SidePanelEditor/ForeignKeySelector/ForeignKeySelector.utils'
@@ -224,7 +223,7 @@ export const Grid = memo(
onClick={() => {
onImportData()
sendEvent({
- action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED,
+ action: 'import_data_button_clicked',
properties: { tableType: 'Existing Table' },
groups: {
project: project?.ref ?? 'Unknown',
diff --git a/apps/studio/components/grid/components/header/Header.tsx b/apps/studio/components/grid/components/header/Header.tsx
index c86b0e44424..08660d160fe 100644
--- a/apps/studio/components/grid/components/header/Header.tsx
+++ b/apps/studio/components/grid/components/header/Header.tsx
@@ -7,7 +7,6 @@ import { ReactNode, useState } from 'react'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useDispatch, useTrackedState } from 'components/grid/store/Store'
import type { Filter, Sort, SupaTable } from 'components/grid/types'
import { formatTableRowsToSQL } from 'components/interfaces/TableGridEditor/TableEntity.utils'
@@ -207,7 +206,7 @@ const DefaultHeader = ({ table, onAddColumn, onAddRow, onImportData }: DefaultHe
onClick={() => {
onImportData()
sendEvent({
- action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED,
+ action: 'import_data_button_clicked',
properties: { tableType: 'Existing Table' },
groups: {
project: ref ?? 'Unknown',
diff --git a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx
index bfd8d5a3ada..295bc56f7c6 100644
--- a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx
+++ b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx
@@ -2,7 +2,6 @@ import { ExternalLink, Eye, EyeOff, FlaskConical } from 'lucide-react'
import Link from 'next/link'
import { useEffect, useState } from 'react'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useFlag } from 'hooks/ui/useFlag'
import { useAppStateSnapshot } from 'state/app-state'
@@ -33,9 +32,7 @@ const FeaturePreviewModal = () => {
const toggleFeature = () => {
onUpdateFlag(selectedFeatureKey, !isSelectedFeatureEnabled)
sendEvent({
- action: isSelectedFeatureEnabled
- ? TelemetryActions.FEATURE_PREVIEW_DISABLED
- : TelemetryActions.FEATURE_PREVIEW_ENABLED,
+ action: isSelectedFeatureEnabled ? 'feature_preview_disabled' : 'feature_preview_enabled',
properties: { feature: selectedFeatureKey },
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
@@ -57,7 +54,7 @@ const FeaturePreviewModal = () => {
useEffect(() => {
if (snap.showFeaturePreviewModal) {
sendEvent({
- action: TelemetryActions.FEATURE_PREVIEWS_CLICKED,
+ action: 'feature_previews_clicked',
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
}
diff --git a/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx b/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx
index 9e3817a5ff2..deedd3bfcb7 100644
--- a/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx
+++ b/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx
@@ -2,7 +2,6 @@ import { ChevronDown } from 'lucide-react'
import { HTMLAttributes, ReactNode, useState } from 'react'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { getAddons } from 'components/interfaces/Billing/Subscription/Subscription.utils'
import AlertError from 'components/ui/AlertError'
import DatabaseSelector from 'components/ui/DatabaseSelector'
@@ -103,7 +102,7 @@ export const DatabaseConnectionString = () => {
const connectionType = connectionInfo?.label ?? 'Unknown'
const lang = connectionInfo?.lang ?? 'Unknown'
sendEvent({
- action: TelemetryActions.CONNECTION_STRING_COPIED,
+ action: 'connection_string_copied',
properties: { connectionType, lang, connectionMethod },
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
diff --git a/apps/studio/components/interfaces/Home/ExampleProject.tsx b/apps/studio/components/interfaces/Home/ExampleProject.tsx
index 41c28e25b49..2c8bcf1f0d6 100644
--- a/apps/studio/components/interfaces/Home/ExampleProject.tsx
+++ b/apps/studio/components/interfaces/Home/ExampleProject.tsx
@@ -3,7 +3,6 @@ import { useTheme } from 'next-themes'
import Link from 'next/link'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
import { BASE_PATH } from 'lib/constants'
@@ -29,7 +28,7 @@ const ExampleProject = ({ framework, title, description, url }: ExampleProjectPr
rel="noreferrer"
onClick={() =>
sendEvent({
- action: TelemetryActions.EXAMPLE_PROJECT_CARD_CLICKED,
+ action: 'example_project_card_clicked',
properties: { cardTitle: title },
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CreateCronJobSheet.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CreateCronJobSheet.tsx
index 6f55214def4..c821de8ccfa 100644
--- a/apps/studio/components/interfaces/Integrations/CronJobs/CreateCronJobSheet.tsx
+++ b/apps/studio/components/interfaces/Integrations/CronJobs/CreateCronJobSheet.tsx
@@ -7,7 +7,6 @@ import { toast } from 'sonner'
import z from 'zod'
import { useWatch } from '@ui/components/shadcn/ui/form'
-import { TelemetryActions } from 'common/telemetry-constants'
import { urlRegex } from 'components/interfaces/Auth/Auth.constants'
import EnableExtensionModal from 'components/interfaces/Database/Extensions/EnableExtensionModal'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
@@ -333,7 +332,7 @@ export const CreateCronJobSheet = ({
if (isEditing) {
sendEvent({
- action: TelemetryActions.CRON_JOB_UPDATED,
+ action: 'cron_job_updated',
properties: {
type: values.type,
schedule: schedule,
@@ -345,7 +344,7 @@ export const CreateCronJobSheet = ({
})
} else {
sendEvent({
- action: TelemetryActions.CRON_JOB_CREATED,
+ action: 'cron_job_created',
properties: {
type: values.type,
schedule: schedule,
diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx
index 8f2f925a8ea..294a65efe43 100644
--- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx
+++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx
@@ -4,7 +4,6 @@ import Link from 'next/link'
import { useState } from 'react'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
import { CronJob } from 'data/database-cron-jobs/database-cron-jobs-query'
import { useCronJobRunQuery } from 'data/database-cron-jobs/database-cron-jobs-run-query'
@@ -94,7 +93,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
icon={}
onClick={() => {
sendEvent({
- action: TelemetryActions.CRON_JOB_HISTORY_CLICKED,
+ action: 'cron_job_history_clicked',
groups: {
project: selectedProject?.ref ?? 'Unknown',
organization: org?.slug ?? 'Unknown',
@@ -116,7 +115,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
{
sendEvent({
- action: TelemetryActions.CRON_JOB_UPDATE_CLICKED,
+ action: 'cron_job_update_clicked',
groups: {
project: selectedProject?.ref ?? 'Unknown',
organization: org?.slug ?? 'Unknown',
@@ -131,7 +130,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
{
sendEvent({
- action: TelemetryActions.CRON_JOB_DELETE_CLICKED,
+ action: 'cron_job_delete_clicked',
groups: {
project: selectedProject?.ref ?? 'Unknown',
organization: org?.slug ?? 'Unknown',
diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx
index 68772da0d66..097293ccfc5 100644
--- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx
+++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx
@@ -2,7 +2,6 @@ import { Search } from 'lucide-react'
import { parseAsBoolean, parseAsString, useQueryState } from 'nuqs'
import { useState } from 'react'
-import { TelemetryActions } from 'common/telemetry-constants'
import { CreateCronJobSheet } from 'components/interfaces/Integrations/CronJobs/CreateCronJobSheet'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader'
@@ -69,7 +68,7 @@ export const CronjobsTab = () => {
const onOpenCreateJobSheet = () => {
sendEvent({
- action: TelemetryActions.CRON_JOB_CREATE_CLICKED,
+ action: 'cron_job_create_clicked',
groups: { project: project?.ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
setCreateCronJobSheetShown(true)
diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/DeleteCronJob.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/DeleteCronJob.tsx
index 5d7d8dd00a2..fbdc7691214 100644
--- a/apps/studio/components/interfaces/Integrations/CronJobs/DeleteCronJob.tsx
+++ b/apps/studio/components/interfaces/Integrations/CronJobs/DeleteCronJob.tsx
@@ -1,6 +1,5 @@
import { toast } from 'sonner'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
import { useDatabaseCronJobDeleteMutation } from 'data/database-cron-jobs/database-cron-jobs-delete-mutation'
import { CronJob } from 'data/database-cron-jobs/database-cron-jobs-query'
@@ -22,7 +21,7 @@ export const DeleteCronJob = ({ cronJob, visible, onClose }: DeleteCronJobProps)
const { mutate: deleteDatabaseCronJob, isLoading } = useDatabaseCronJobDeleteMutation({
onSuccess: () => {
sendEvent({
- action: TelemetryActions.CRON_JOB_DELETED,
+ action: 'cron_job_deleted',
groups: { project: project?.ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
toast.success(`Successfully removed cron job ${cronJob.jobname}`)
diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/EnterpriseCard.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/EnterpriseCard.tsx
index ca95e95f628..2bad5161fce 100644
--- a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/EnterpriseCard.tsx
+++ b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/EnterpriseCard.tsx
@@ -1,6 +1,5 @@
import { Check } from 'lucide-react'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-query'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
@@ -55,7 +54,7 @@ export const EnterpriseCard = ({ plan, isCurrentPlan, billingPartner }: Enterpri
size="tiny"
onClick={() =>
sendEvent({
- action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED,
+ action: 'studio_pricing_plan_cta_clicked',
properties: { selectedPlan: 'Enterprise', currentPlan },
groups: { organization: orgSlug ?? 'Unknown' },
})
@@ -92,7 +91,7 @@ export const EnterpriseCard = ({ plan, isCurrentPlan, billingPartner }: Enterpri
size="tiny"
onClick={() =>
sendEvent({
- action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED,
+ action: 'studio_pricing_plan_cta_clicked',
properties: { selectedPlan: 'Enterprise', currentPlan },
groups: { organization: orgSlug ?? 'Unknown' },
})
diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdateSidePanel.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdateSidePanel.tsx
index 21945136396..33779470807 100644
--- a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdateSidePanel.tsx
+++ b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdateSidePanel.tsx
@@ -7,7 +7,7 @@ import { useRouter } from 'next/router'
import { useEffect, useRef, useState } from 'react'
import { toast } from 'sonner'
-import { StudioPricingSidePanelOpenedEvent, TelemetryActions } from 'common/telemetry-constants'
+import { StudioPricingSidePanelOpenedEvent } from 'common/telemetry-constants'
import { billingPartnerLabel } from 'components/interfaces/Billing/Subscription/Subscription.utils'
import Table from 'components/to-be-cleaned/Table'
import AlertError from 'components/ui/AlertError'
@@ -136,7 +136,7 @@ const PlanUpdateSidePanel = () => {
properties.origin = source
}
sendEvent({
- action: TelemetryActions.STUDIO_PRICING_SIDE_PANEL_OPENED,
+ action: 'studio_pricing_side_panel_opened',
properties,
groups: { organization: slug ?? 'Unknown' },
})
@@ -280,7 +280,7 @@ const PlanUpdateSidePanel = () => {
onClick={() => {
setSelectedTier(plan.id as any)
sendEvent({
- action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED,
+ action: 'studio_pricing_plan_cta_clicked',
properties: {
selectedPlan: plan.name,
currentPlan: subscription?.plan?.name,
diff --git a/apps/studio/components/interfaces/ProjectCreation/SchemaGenerator.tsx b/apps/studio/components/interfaces/ProjectCreation/SchemaGenerator.tsx
index 3b1731e059a..d44f1d7fc24 100644
--- a/apps/studio/components/interfaces/ProjectCreation/SchemaGenerator.tsx
+++ b/apps/studio/components/interfaces/ProjectCreation/SchemaGenerator.tsx
@@ -1,7 +1,6 @@
import { useChat } from 'ai/react'
import { useEffect, useState } from 'react'
-import { TelemetryActions } from 'common/telemetry-constants'
import { Markdown } from 'components/interfaces/Markdown'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { BASE_PATH } from 'lib/constants'
@@ -172,14 +171,14 @@ export const SchemaGenerator = ({
// distinguish between initial step or second step
if (step === 'initial') {
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_PROMPT_INTENDED,
+ action: 'project_creation_initial_step_prompt_intended',
properties: {
isNewPrompt,
},
})
} else {
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_PROMPT_INTENDED,
+ action: 'project_creation_second_step_prompt_intended',
properties: {
isNewPrompt,
},
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx
index 94ddde52839..78ff9059186 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx
@@ -5,7 +5,6 @@ import { Dispatch, SetStateAction, useState } from 'react'
import { useForm } from 'react-hook-form'
import * as z from 'zod'
-import { TelemetryActions } from 'common/telemetry-constants'
import { DocsButton } from 'components/ui/DocsButton'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
@@ -56,7 +55,7 @@ export const ChooseChannelPopover = ({ config, onChangeConfig }: ChooseChannelPo
const onSubmit = () => {
setOpen(false)
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED,
+ action: 'realtime_inspector_listen_channel_clicked',
groups: {
project: ref ?? 'Unknown',
organization: org?.slug ?? 'Unknown',
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx b/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx
index 10c10ad7c2c..6645037ede1 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx
@@ -2,7 +2,6 @@ import { PlayCircle, StopCircle } from 'lucide-react'
import { Dispatch, SetStateAction } from 'react'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { ButtonTooltip } from 'components/ui/ButtonTooltip'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
@@ -37,7 +36,7 @@ export const Header = ({ config, onChangeConfig }: HeaderProps) => {
if (!config.enabled) {
// the user has clicked to start listening
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED,
+ action: 'realtime_inspector_listen_channel_clicked',
groups: {
project: ref ?? 'Unknown',
organization: org?.slug ?? 'Unknown',
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/MessageSelection.tsx b/apps/studio/components/interfaces/Realtime/Inspector/MessageSelection.tsx
index 020ea5daf0d..72d519dd7a3 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/MessageSelection.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/MessageSelection.tsx
@@ -2,7 +2,6 @@ import { X } from 'lucide-react'
import { useMemo } from 'react'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import CopyButton from 'components/ui/CopyButton'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
@@ -79,7 +78,7 @@ const MessageSelection = ({ log, onClose }: MessageSelectionProps) => {
title="Copy log to clipboard"
onClick={() => {
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED,
+ action: 'realtime_inspector_copy_message_clicked',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
}}
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx
index f7674bcca37..bb2a21c889d 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx
@@ -5,7 +5,6 @@ import { useEffect, useState } from 'react'
import DataGrid, { Row } from 'react-data-grid'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { DocsButton } from 'components/ui/DocsButton'
import ShimmerLine from 'components/ui/ShimmerLine'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
@@ -182,7 +181,7 @@ const MessagesTable = ({
selectedCellIdx={undefined}
onClick={() => {
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_MESSAGE_CLICKED,
+ action: 'realtime_inspector_message_clicked',
groups: {
project: ref ?? 'Unknown',
organization: org?.slug ?? 'Unknown',
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx
index 7225e6c228c..71a229b4660 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx
@@ -3,7 +3,6 @@ import Link from 'next/link'
import { Dispatch, SetStateAction, useState } from 'react'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
import {
@@ -206,7 +205,7 @@ export const RealtimeFilterPopover = ({ config, onChangeConfig }: RealtimeFilter
onCancel={() => setApplyConfigOpen(false)}
onConfirm={() => {
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_FILTERS_APPLIED,
+ action: 'realtime_inspector_filters_applied',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
onChangeConfig(tempConfig)
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx
index a9851e6f622..1c99059a2d4 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx
@@ -1,7 +1,6 @@
import { Dispatch, SetStateAction, useEffect, useRef } from 'react'
import { toast } from 'sonner'
-import { TelemetryActions } from 'common/telemetry-constants'
import { RoleImpersonationPopover } from 'components/interfaces/RoleImpersonationSelector'
import { useProjectPostgrestConfigQuery } from 'data/config/project-postgrest-config-query'
import { getAPIKeys, useProjectSettingsV2Query } from 'data/config/project-settings-v2-query'
@@ -40,7 +39,7 @@ export const RealtimeTokensPopover = ({ config, onChangeConfig }: RealtimeTokens
useEffect(() => {
if (isMounted.current) {
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_DATABASE_ROLE_UPDATED,
+ action: 'realtime_inspector_database_role_updated',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
}
diff --git a/apps/studio/components/interfaces/Realtime/Inspector/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/index.tsx
index 737534f40fc..2b330efc327 100644
--- a/apps/studio/components/interfaces/Realtime/Inspector/index.tsx
+++ b/apps/studio/components/interfaces/Realtime/Inspector/index.tsx
@@ -1,7 +1,6 @@
import { useParams } from 'common'
import { useState } from 'react'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { Header } from './Header'
import MessagesTable from './MessagesTable'
@@ -54,7 +53,7 @@ export const RealtimeInspector = () => {
onSelectCancel={() => setSendMessageShown(false)}
onSelectConfirm={(v) => {
sendEvent({
- action: TelemetryActions.REALTIME_INSPECTOR_BROADCAST_SENT,
+ action: 'realtime_inspector_broadcast_sent',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
sendMessage(v.message, v.payload, () => setSendMessageShown(false))
diff --git a/apps/studio/components/interfaces/Reports/GridResize.tsx b/apps/studio/components/interfaces/Reports/GridResize.tsx
index a313d557ca1..11c4023fd9b 100644
--- a/apps/studio/components/interfaces/Reports/GridResize.tsx
+++ b/apps/studio/components/interfaces/Reports/GridResize.tsx
@@ -4,7 +4,6 @@ import 'react-resizable/css/styles.css'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
import { DEFAULT_CHART_CONFIG } from 'components/ui/QueryBlock/QueryBlock'
import { AnalyticsInterval } from 'data/analytics/constants'
@@ -135,7 +134,7 @@ export const GridResize = ({
},
}
)
- sendEvent({ action: TelemetryActions.CUSTOM_REPORT_ASSISTANT_SQL_BLOCK_ADDED })
+ sendEvent({ action: 'custom_report_assistant_sql_block_added' })
}
if (!editableReport) return null
diff --git a/apps/studio/components/interfaces/Reports/MetricOptions.tsx b/apps/studio/components/interfaces/Reports/MetricOptions.tsx
index c3aefc251fe..ce4abd60978 100644
--- a/apps/studio/components/interfaces/Reports/MetricOptions.tsx
+++ b/apps/studio/components/interfaces/Reports/MetricOptions.tsx
@@ -3,7 +3,6 @@ import { Home } from 'lucide-react'
import { useState } from 'react'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useContentQuery } from 'data/content/content-query'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled'
@@ -138,7 +137,7 @@ export const MetricOptions = ({ config, handleChartSelection }: MetricOptionsPro
isAddingChart: true,
})
sendEvent({
- action: TelemetryActions.CUSTOM_REPORT_ADD_SQL_BLOCK_CLICKED,
+ action: 'custom_report_add_sql_block_clicked',
})
}
}}
diff --git a/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx b/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx
index 62b818680c8..4c7b0f2b197 100644
--- a/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx
+++ b/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx
@@ -9,7 +9,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { GridFooter } from 'components/ui/GridFooter'
import { useSqlTitleGenerateMutation } from 'data/ai/sql-title-mutation'
import { useEntityDefinitionsQuery } from 'data/database/entity-definitions-query'
@@ -317,7 +316,7 @@ export const SQLEditor = () => {
})
sendEvent({
- action: TelemetryActions.SQL_EDITOR_QUERY_RUN_BUTTON_CLICKED,
+ action: 'sql_editor_query_run_button_clicked',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
}
@@ -418,7 +417,7 @@ export const SQLEditor = () => {
}
sendEvent({
- action: TelemetryActions.ASSISTANT_SQL_DIFF_HANDLER_EVALUATED,
+ action: 'assistant_sql_diff_handler_evaluated',
properties: { handlerAccepted: true },
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
@@ -443,7 +442,7 @@ export const SQLEditor = () => {
const discardAiHandler = useCallback(() => {
sendEvent({
- action: TelemetryActions.ASSISTANT_SQL_DIFF_HANDLER_EVALUATED,
+ action: 'assistant_sql_diff_handler_evaluated',
properties: { handlerAccepted: false },
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
diff --git a/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLQuickstarts.tsx b/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLQuickstarts.tsx
index f16788ddf32..f952613295b 100644
--- a/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLQuickstarts.tsx
+++ b/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLQuickstarts.tsx
@@ -4,7 +4,6 @@ import { useRouter } from 'next/router'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { SQL_TEMPLATES } from 'components/interfaces/SQLEditor/SQLEditor.queries'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useCheckPermissions } from 'hooks/misc/useCheckPermissions'
@@ -79,7 +78,7 @@ const SQLQuickstarts = () => {
onClick={(sql, title) => {
handleNewQuery(sql, title)
sendEvent({
- action: TelemetryActions.SQL_EDITOR_QUICKSTART_CLICKED,
+ action: 'sql_editor_quickstart_clicked',
properties: { quickstartName: title },
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
diff --git a/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx b/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx
index 717b9dc9ed6..aa0d35adf5b 100644
--- a/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx
+++ b/apps/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx
@@ -4,7 +4,6 @@ import { useRouter } from 'next/router'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { SQL_TEMPLATES } from 'components/interfaces/SQLEditor/SQLEditor.queries'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
@@ -79,7 +78,7 @@ const SQLTemplates = () => {
onClick={(sql, title) => {
handleNewQuery(sql, title)
sendEvent({
- action: TelemetryActions.SQL_EDITOR_TEMPLATE_CLICKED,
+ action: 'sql_editor_template_clicked',
properties: { templateName: title },
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
diff --git a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityPanel.tsx b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityPanel.tsx
index 27cc2312686..df4bd9d7292 100644
--- a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityPanel.tsx
+++ b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityPanel.tsx
@@ -1,7 +1,6 @@
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { DownloadResultsButton } from 'components/ui/DownloadResultsButton'
import { useContentUpsertMutation } from 'data/content/content-upsert-mutation'
import { Snippet } from 'data/content/sql-folders-query'
@@ -127,19 +126,19 @@ const UtilityPanel = ({
fileName={`Supabase Snippet ${snippet.name}`}
onDownloadAsCSV={() =>
sendEvent({
- action: TelemetryActions.SQL_EDITOR_RESULT_DOWNLOAD_CSV_CLICKED,
+ action: 'sql_editor_result_download_csv_clicked',
groups: { project: ref ?? '', organization: org?.slug ?? '' },
})
}
onCopyAsMarkdown={() => {
sendEvent({
- action: TelemetryActions.SQL_EDITOR_RESULT_COPY_MARKDOWN_CLICKED,
+ action: 'sql_editor_result_copy_markdown_clicked',
groups: { project: ref ?? '', organization: org?.slug ?? '' },
})
}}
onCopyAsJSON={() => {
sendEvent({
- action: TelemetryActions.SQL_EDITOR_RESULT_COPY_JSON_CLICKED,
+ action: 'sql_editor_result_copy_json_clicked',
groups: { project: ref ?? '', organization: org?.slug ?? '' },
})
}}
diff --git a/apps/studio/components/interfaces/SignIn/SignInForm.tsx b/apps/studio/components/interfaces/SignIn/SignInForm.tsx
index c1135ab07d2..b44e1f82b8e 100644
--- a/apps/studio/components/interfaces/SignIn/SignInForm.tsx
+++ b/apps/studio/components/interfaces/SignIn/SignInForm.tsx
@@ -8,7 +8,6 @@ import { useRef, useState } from 'react'
import { toast } from 'sonner'
import { object, string } from 'yup'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useAddLoginEvent } from 'data/misc/audit-login-mutation'
import { getMfaAuthenticatorAssuranceLevel } from 'data/profile/mfa-authenticator-assurance-level-query'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
@@ -63,7 +62,7 @@ const SignInForm = () => {
toast.success(`Signed in successfully!`, { id: toastId })
sendEvent({
- action: TelemetryActions.SIGN_IN,
+ action: 'sign_in',
properties: { category: 'account', method: 'email' },
})
addLoginEvent({})
diff --git a/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx b/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx
index 72e3eb1181e..26ec9127c70 100644
--- a/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx
+++ b/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx
@@ -15,7 +15,6 @@ import { useDatabasePublicationsQuery } from 'data/database-publications/databas
import { useDatabasePublicationUpdateMutation } from 'data/database-publications/database-publications-update-mutation'
import { useProjectLintsQuery } from 'data/lint/lint-query'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
-import { TelemetryActions } from 'common/telemetry-constants'
import {
Entity,
isTableLike,
@@ -151,7 +150,7 @@ const GridHeaderActions = ({ table }: GridHeaderActionsProps) => {
.map((x: any) => `${x.schema}.${x.name}`)
sendEvent({
- action: TelemetryActions.REALTIME_TOGGLE_TABLE_CLICKED,
+ action: 'realtime_toggle_table_clicked',
properties: {
newState: exists ? 'disabled' : 'enabled',
origin: 'tableGridHeader',
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SpreadsheetImport/SpreadsheetImport.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SpreadsheetImport/SpreadsheetImport.tsx
index 2be1b7819df..692be3d37a8 100644
--- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SpreadsheetImport/SpreadsheetImport.tsx
+++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SpreadsheetImport/SpreadsheetImport.tsx
@@ -6,7 +6,6 @@ import { useCallback, useEffect, useState } from 'react'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
import { Button, SidePanel, Tabs } from 'ui'
@@ -172,7 +171,7 @@ const SpreadsheetImport = ({
} else {
saveContent({ file: uploadedFile, ...spreadsheetData, selectedHeaders, resolve })
sendEvent({
- action: TelemetryActions.IMPORT_DATA_ADDED,
+ action: 'import_data_added',
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
}
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx
index 03796f84668..bee42ddd7e5 100644
--- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx
+++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx
@@ -10,7 +10,6 @@ import {
} from 'react-beautiful-dnd'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import InformationBox from 'components/ui/InformationBox'
import type { EnumeratedType } from 'data/enumerated-types/enumerated-types-query'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
@@ -170,7 +169,7 @@ const ColumnManagement = ({
onClick={() => {
onSelectImportData()
sendEvent({
- action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED,
+ action: 'import_data_button_clicked',
properties: { tableType: 'New Table' },
groups: {
project: projectRef ?? 'Unknown',
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx
index cbd89aa0a32..4a78fa7af46 100644
--- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx
+++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx
@@ -42,7 +42,6 @@ import {
validateFields,
} from './TableEditor.utils'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
export interface TableEditorProps {
@@ -359,7 +358,7 @@ const TableEditor = ({
checked={tableFields.isRealtimeEnabled}
onChange={() => {
sendEvent({
- action: TelemetryActions.REALTIME_TOGGLE_TABLE_CLICKED,
+ action: 'realtime_toggle_table_clicked',
properties: {
newState: tableFields.isRealtimeEnabled ? 'disabled' : 'enabled',
origin: 'tableSidePanel',
diff --git a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx
index 14e527074d8..1742f30ef73 100644
--- a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx
+++ b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx
@@ -6,7 +6,6 @@ import { ChangeEvent, useEffect, useRef, useState } from 'react'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendFeedbackMutation } from 'data/feedback/feedback-send'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
@@ -273,7 +272,7 @@ const FeedbackWidget = ({
onClick={() => {
sendFeedback()
sendEvent({
- action: TelemetryActions.SEND_FEEDBACK_BUTTON_CLICKED,
+ action: 'send_feedback_button_clicked',
groups: { project: ref, organization: org?.slug },
})
}}
diff --git a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HelpPopover.tsx b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HelpPopover.tsx
index 35de6f6164c..9ac784dbce9 100644
--- a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HelpPopover.tsx
+++ b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HelpPopover.tsx
@@ -4,7 +4,6 @@ import Link from 'next/link'
import { useRouter } from 'next/router'
import SVG from 'react-inlinesvg'
-import { TelemetryActions } from 'common/telemetry-constants'
import { ButtonTooltip } from 'components/ui/ButtonTooltip'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
@@ -38,7 +37,7 @@ const HelpPopover = () => {
tooltip={{ content: { side: 'bottom', text: 'Help' } }}
onClick={() => {
sendEvent({
- action: TelemetryActions.HELP_BUTTON_CLICKED,
+ action: 'help_button_clicked',
groups: { project: project?.ref, organization: org?.slug },
})
}}
diff --git a/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx b/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx
index da9803891d3..7af8600b5b2 100644
--- a/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx
+++ b/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx
@@ -9,7 +9,6 @@ import { memo, useEffect, useMemo, useRef, useState } from 'react'
import { toast } from 'sonner'
import { useParams, useSearchParamsShallow } from 'common/hooks'
-import { TelemetryActions } from 'common/telemetry-constants'
import { subscriptionHasHipaaAddon } from 'components/interfaces/Billing/Subscription/Subscription.utils'
import { Markdown } from 'components/interfaces/Markdown'
import OptInToOpenAIToggle from 'components/interfaces/Organization/GeneralSettings/OptInToOpenAIToggle'
@@ -186,12 +185,12 @@ export const AIAssistant = ({
if (content.includes('Help me to debug')) {
sendEvent({
- action: TelemetryActions.ASSISTANT_DEBUG_SUBMITTED,
+ action: 'assistant_debug_submitted',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
} else {
sendEvent({
- action: TelemetryActions.ASSISTANT_PROMPT_SUBMITTED,
+ action: 'assistant_prompt_submitted',
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
})
}
diff --git a/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx b/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx
index 019eab1197a..1a9375afe1d 100644
--- a/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx
+++ b/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx
@@ -2,7 +2,6 @@ import { useRouter } from 'next/router'
import { DragEvent, memo, ReactNode, useContext, useEffect, useMemo, useRef } from 'react'
import { PermissionAction } from '@supabase/shared-types/out/constants'
-import { TelemetryActions } from 'common/telemetry-constants'
import { ChartConfig } from 'components/interfaces/SQLEditor/UtilityPanel/ChartConfig'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import { useCheckPermissions } from 'hooks/misc/useCheckPermissions'
@@ -181,7 +180,7 @@ export const MarkdownPre = ({ children }: { children: any }) => {
const onRunQuery = async (queryType: 'select' | 'mutation') => {
sendEvent({
- action: TelemetryActions.ASSISTANT_SUGGESTION_RUN_QUERY_CLICKED,
+ action: 'assistant_suggestion_run_query_clicked',
properties: {
queryType,
...(queryType === 'mutation'
diff --git a/apps/studio/components/ui/QueryBlock/EditQueryButton.tsx b/apps/studio/components/ui/QueryBlock/EditQueryButton.tsx
index af75ce53b02..eb74f710c92 100644
--- a/apps/studio/components/ui/QueryBlock/EditQueryButton.tsx
+++ b/apps/studio/components/ui/QueryBlock/EditQueryButton.tsx
@@ -2,7 +2,6 @@ import { Edit } from 'lucide-react'
import { useRouter } from 'next/router'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import { DiffType } from 'components/interfaces/SQLEditor/SQLEditor.types'
import useNewQuery from 'components/interfaces/SQLEditor/hooks'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
@@ -93,7 +92,7 @@ export const EditQueryButton = ({
handleEditInSQLEditor()
}
sendEvent({
- action: TelemetryActions.ASSISTANT_EDIT_IN_SQL_EDITOR_CLICKED,
+ action: 'assistant_edit_in_sql_editor_clicked',
properties: {
isInSQLEditor,
isInNewSnippet,
diff --git a/apps/studio/lib/profile.tsx b/apps/studio/lib/profile.tsx
index 97664b3756a..2064a9cffa6 100644
--- a/apps/studio/lib/profile.tsx
+++ b/apps/studio/lib/profile.tsx
@@ -4,7 +4,6 @@ import { useRouter } from 'next/router'
import { PropsWithChildren, createContext, useContext, useMemo } from 'react'
import { toast } from 'sonner'
-import { TelemetryActions } from 'common/telemetry-constants'
import { usePermissionsQuery } from 'data/permissions/permissions-query'
import { useProfileCreateMutation } from 'data/profile/profile-create-mutation'
import { useProfileQuery } from 'data/profile/profile-query'
@@ -38,7 +37,7 @@ export const ProfileProvider = ({ children }: PropsWithChildren<{}>) => {
const { mutate: sendEvent } = useSendEventMutation()
const { mutate: createProfile, isLoading: isCreatingProfile } = useProfileCreateMutation({
onSuccess: () => {
- sendEvent({ action: TelemetryActions.SIGN_UP, properties: { category: 'conversion' } })
+ sendEvent({ action: 'sign_up', properties: { category: 'conversion' } })
},
onError: (error) => {
Sentry.captureMessage('Failed to create users profile: ' + error.message)
diff --git a/apps/studio/pages/new/[slug].tsx b/apps/studio/pages/new/[slug].tsx
index ae80bda7314..621b4e42399 100644
--- a/apps/studio/pages/new/[slug].tsx
+++ b/apps/studio/pages/new/[slug].tsx
@@ -12,7 +12,6 @@ import { z } from 'zod'
import { PopoverSeparator } from '@ui/components/shadcn/ui/popover'
import { components } from 'api-types'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import {
FreeProjectLimitWarning,
NotOrganizationOwnerWarning,
@@ -201,7 +200,7 @@ const Wizard: NextPageWithLayout = () => {
} = useProjectCreateMutation({
onSuccess: (res) => {
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_SIMPLE_VERSION_SUBMITTED,
+ action: 'project_creation_simple_version_submitted',
})
router.push(`/project/${res.ref}/building`)
},
diff --git a/apps/studio/pages/new/v2/[slug].tsx b/apps/studio/pages/new/v2/[slug].tsx
index 29f5d2712cf..6fd8906961e 100644
--- a/apps/studio/pages/new/v2/[slug].tsx
+++ b/apps/studio/pages/new/v2/[slug].tsx
@@ -14,7 +14,6 @@ import { toast } from 'sonner'
import { z } from 'zod'
import { PopoverSeparator } from '@ui/components/shadcn/ui/popover'
-import { TelemetryActions } from 'common/telemetry-constants'
import {
FreeProjectLimitWarning,
NotOrganizationOwnerWarning,
@@ -309,7 +308,7 @@ const WizardForm = () => {
// too important to cause disruption here, make sure to catch and skip any errors
try {
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_SUBMITTED,
+ action: 'project_creation_second_step_submitted',
})
} catch (error) {}
@@ -538,7 +537,7 @@ const WizardForm = () => {
'We have generated a starting schema for you based on your description'
)
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED,
+ action: 'project_creation_initial_step_submitted',
properties: { onboardingPath: 'use_prompt' },
})
setStep(2)
@@ -547,7 +546,7 @@ const WizardForm = () => {
setFormTitle('Start from Scratch')
setFormDescription('Configure your new blank project')
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED,
+ action: 'project_creation_initial_step_submitted',
properties: { onboardingPath: 'start_blank' },
})
setStep(2)
@@ -558,7 +557,7 @@ const WizardForm = () => {
'First we need to create a new project to migrate your database to'
)
sendEvent({
- action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED,
+ action: 'project_creation_initial_step_submitted',
properties: { onboardingPath: 'migrate' },
})
setStep(2)
diff --git a/apps/studio/pages/sign-in-mfa.tsx b/apps/studio/pages/sign-in-mfa.tsx
index 7be3a948707..06d3ca751e6 100644
--- a/apps/studio/pages/sign-in-mfa.tsx
+++ b/apps/studio/pages/sign-in-mfa.tsx
@@ -4,7 +4,6 @@ import { useEffect, useState } from 'react'
import { toast } from 'sonner'
import { useParams } from 'common'
-import { TelemetryActions } from 'common/telemetry-constants'
import SignInMfaForm from 'components/interfaces/SignIn/SignInMfaForm'
import SignInLayout from 'components/layouts/SignInLayout/SignInLayout'
import { Loading } from 'components/ui/Loading'
@@ -54,7 +53,7 @@ const SignInMfaPage: NextPageWithLayout = () => {
if (data.currentLevel === data.nextLevel) {
sendEvent({
- action: TelemetryActions.SIGN_IN,
+ action: 'sign_in',
properties: {
category: 'account',
method: signInMethodRef.current,
diff --git a/apps/www/components/CTABanner/index.tsx b/apps/www/components/CTABanner/index.tsx
index b954272d6f0..fe1ca3e4af0 100644
--- a/apps/www/components/CTABanner/index.tsx
+++ b/apps/www/components/CTABanner/index.tsx
@@ -1,6 +1,5 @@
import Link from 'next/link'
import { Button, cn } from 'ui'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
interface Props {
@@ -30,7 +29,7 @@ const CTABanner = ({ darkerBg, className }: Props) => {
href="https://supabase.com/dashboard"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
+ action: 'start_project_button_clicked',
properties: { buttonLocation: 'CTA Banner' },
})
}
@@ -43,7 +42,7 @@ const CTABanner = ({ darkerBg, className }: Props) => {
href="/contact/sales"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED,
+ action: 'request_demo_button_clicked',
properties: { buttonLocation: 'CTA Banner' },
})
}
diff --git a/apps/www/components/CustomerStories/index.tsx b/apps/www/components/CustomerStories/index.tsx
index e12541dfe85..c28ed8e150e 100644
--- a/apps/www/components/CustomerStories/index.tsx
+++ b/apps/www/components/CustomerStories/index.tsx
@@ -13,7 +13,6 @@ import Panel from '~/components/Panel'
import customerStories from '~/data/CustomerStories'
import type { CustomerStoryType } from '~/data/CustomerStories'
import { useSendTelemetryEvent } from '~/lib/telemetry'
-import { TelemetryActions } from 'common/telemetry-constants'
const CustomersSliderMobile = dynamic(() => import('./CustomersSliderMobile'))
const CutomsersSliderDesktop = dynamic(() => import('./CutomsersSliderDesktop'))
@@ -112,7 +111,7 @@ export const CompositionCol: React.FC = ({ column, classNam
className="col-span-12 md:col-span-4 w-full md:w-[450px] h-full"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED,
+ action: 'homepage_customer_story_card_clicked',
properties: { customer: customer.organization, cardType: 'expanded' },
})
}
@@ -126,7 +125,7 @@ export const CompositionCol: React.FC = ({ column, classNam
className="col-span-12 md:col-span-4 w-full h-full flex-grow"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED,
+ action: 'homepage_customer_story_card_clicked',
properties: { customer: customer.organization, cardType: 'narrow' },
})
}
diff --git a/apps/www/components/ExampleCard.tsx b/apps/www/components/ExampleCard.tsx
index 0af2ba6c350..7b19d77b6bc 100644
--- a/apps/www/components/ExampleCard.tsx
+++ b/apps/www/components/ExampleCard.tsx
@@ -6,7 +6,6 @@ import { useBreakpoint } from 'common'
import { Button } from 'ui'
import Panel from './Panel'
import { useSendTelemetryEvent } from '~/lib/telemetry'
-import { TelemetryActions } from 'common/telemetry-constants'
function ExampleCard(props: any) {
const isXs = useBreakpoint()
@@ -27,7 +26,7 @@ function ExampleCard(props: any) {
onClick={() => {
if (props.inHomepage)
sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_PROJECT_TEMPLATE_CARD_CLICKED,
+ action: 'homepage_project_template_card_clicked',
properties: { templateTitle: props.title },
})
}}
diff --git a/apps/www/components/Forms/RequestADemoForm.tsx b/apps/www/components/Forms/RequestADemoForm.tsx
index 34ea23443e3..2cc8018afc3 100644
--- a/apps/www/components/Forms/RequestADemoForm.tsx
+++ b/apps/www/components/Forms/RequestADemoForm.tsx
@@ -3,7 +3,6 @@ import Link from 'next/link'
import { CircleAlert } from 'lucide-react'
import { Button, cn, Input_Shadcn_, Label_Shadcn_, Separator, TextArea_Shadcn_ } from 'ui'
import { Alert } from 'ui/src/components/shadcn/ui/alert'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
interface FormData {
@@ -267,7 +266,7 @@ const RequestADemoForm: FC = ({ className }) => {
loading={isSubmitting}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED,
+ action: 'request_demo_button_clicked',
properties: { buttonLocation: 'Enterprise Request Demo Form' },
})
}
diff --git a/apps/www/components/Hero/Hero.tsx b/apps/www/components/Hero/Hero.tsx
index c94b76246fa..e9464537bf3 100644
--- a/apps/www/components/Hero/Hero.tsx
+++ b/apps/www/components/Hero/Hero.tsx
@@ -2,7 +2,6 @@ import Link from 'next/link'
import { Button } from 'ui'
import SectionContainer from '~/components/Layouts/SectionContainer'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
const Hero = () => {
@@ -34,7 +33,7 @@ const Hero = () => {
as="https://supabase.com/dashboard"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
+ action: 'start_project_button_clicked',
properties: { buttonLocation: 'Homepage Hero' },
})
}
@@ -48,7 +47,7 @@ const Hero = () => {
as="/contact/sales"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED,
+ action: 'request_demo_button_clicked',
properties: { buttonLocation: 'Homepage Hero' },
})
}
diff --git a/apps/www/components/Hero/HeroFrameworks.tsx b/apps/www/components/Hero/HeroFrameworks.tsx
index a1f8d38e9d1..55cc6a5fc1f 100644
--- a/apps/www/components/Hero/HeroFrameworks.tsx
+++ b/apps/www/components/Hero/HeroFrameworks.tsx
@@ -4,7 +4,6 @@ import Link from 'next/link'
import { useState } from 'react'
import { cn } from 'ui'
import { EASE_IN, EASE_OUT } from '~/lib/animations'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
import SectionContainer from '../Layouts/SectionContainer'
@@ -127,7 +126,7 @@ const HeroFrameworks = ({ className }: { className?: string }) => {
className="transition-opacity group"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_FRAMEWORK_QUICKSTART_CLICKED,
+ action: 'homepage_framework_quickstart_clicked',
properties: { frameworkName: framework.name },
})
}
diff --git a/apps/www/components/Nav/GitHubButton.tsx b/apps/www/components/Nav/GitHubButton.tsx
index 16d58b039af..9211dd0ce44 100644
--- a/apps/www/components/Nav/GitHubButton.tsx
+++ b/apps/www/components/Nav/GitHubButton.tsx
@@ -2,7 +2,6 @@ import React from 'react'
import { Button } from 'ui'
import { githubStars } from '~/.contentlayer/generated/staticContent/_index.json' with { type: 'json' }
import { useSendTelemetryEvent } from '~/lib/telemetry'
-import { TelemetryActions } from 'common/telemetry-constants'
const GitHubButton = () => {
const kFormatter = (num: number) => {
@@ -28,9 +27,7 @@ const GitHubButton = () => {
className="hidden group lg:flex text-foreground-light hover:text-foreground"
type="text"
asChild
- onClick={() =>
- sendTelemetryEvent({ action: TelemetryActions.HOMEPAGE_GITHUB_BUTTON_CLICKED })
- }
+ onClick={() => sendTelemetryEvent({ action: 'homepage_github_button_clicked' })}
>
diff --git a/apps/www/components/Nav/MobileMenu.tsx b/apps/www/components/Nav/MobileMenu.tsx
index 99bccf7b033..c87274771d2 100644
--- a/apps/www/components/Nav/MobileMenu.tsx
+++ b/apps/www/components/Nav/MobileMenu.tsx
@@ -15,7 +15,6 @@ import { ChevronRight } from 'lucide-react'
import ProductModulesData from '~/data/ProductModules'
import { jobsCount } from '~/.contentlayer/generated/staticContent/_index.json' with { type: 'json' }
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
interface Props {
@@ -250,7 +249,7 @@ const MobileMenu = ({ open, setOpen, menu }: Props) => {
legacyBehavior
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.SIGN_IN_BUTTON_CLICKED,
+ action: 'sign_in_button_clicked',
properties: { buttonLocation: 'Mobile Nav' },
})
}
@@ -267,7 +266,7 @@ const MobileMenu = ({ open, setOpen, menu }: Props) => {
legacyBehavior
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
+ action: 'start_project_button_clicked',
properties: { buttonLocation: 'Mobile Nav' },
})
}
diff --git a/apps/www/components/Nav/index.tsx b/apps/www/components/Nav/index.tsx
index dee4035ed59..bced494601a 100644
--- a/apps/www/components/Nav/index.tsx
+++ b/apps/www/components/Nav/index.tsx
@@ -23,7 +23,6 @@ import MenuItem from './MenuItem'
import MobileMenu from './MobileMenu'
import RightClickBrandLogo from './RightClickBrandLogo'
import { useSendTelemetryEvent } from '~/lib/telemetry'
-import { TelemetryActions } from 'common/telemetry-constants'
interface Props {
hideNavbar: boolean
@@ -141,7 +140,7 @@ const Nav = ({ hideNavbar, stickyNavbar = true }: Props) => {
href="https://supabase.com/dashboard"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.SIGN_IN_BUTTON_CLICKED,
+ action: 'sign_in_button_clicked',
properties: { buttonLocation: 'Header Nav' },
})
}
@@ -154,7 +153,7 @@ const Nav = ({ hideNavbar, stickyNavbar = true }: Props) => {
href="https://supabase.com/dashboard"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
+ action: 'start_project_button_clicked',
properties: { buttonLocation: 'Header Nav' },
})
}
diff --git a/apps/www/components/OpenSource/RepoCard.tsx b/apps/www/components/OpenSource/RepoCard.tsx
index 06032cd0847..8cdcf75dd0b 100644
--- a/apps/www/components/OpenSource/RepoCard.tsx
+++ b/apps/www/components/OpenSource/RepoCard.tsx
@@ -4,7 +4,6 @@ import Link from 'next/link'
import Panel from '~/components/Panel'
import { useSendTelemetryEvent } from '~/lib/telemetry'
-import { TelemetryActions } from 'common/telemetry-constants'
const RepoCard = ({ repo, activeTab, index }: { repo: any; activeTab: number; index: number }) => {
const sendTelemetryEvent = useSendTelemetryEvent()
@@ -22,7 +21,7 @@ const RepoCard = ({ repo, activeTab, index }: { repo: any; activeTab: number; in
className="h-full"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.OPEN_SOURCE_REPO_CARD_CLICKED,
+ action: 'open_source_repo_card_clicked',
properties: { repoName: repo.name },
})
}
diff --git a/apps/www/components/Pricing/PricingComparisonTable.tsx b/apps/www/components/Pricing/PricingComparisonTable.tsx
index a8857901c8b..2735a0c3700 100644
--- a/apps/www/components/Pricing/PricingComparisonTable.tsx
+++ b/apps/www/components/Pricing/PricingComparisonTable.tsx
@@ -7,7 +7,6 @@ import { Button, Select, cn } from 'ui'
import { PricingTableRowDesktop, PricingTableRowMobile } from '~/components/Pricing/PricingTableRow'
import Solutions from '~/data/MainProducts'
import { Organization } from '~/data/organizations'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
import UpgradePlan from './UpgradePlan'
@@ -57,7 +56,7 @@ const MobileHeader = ({
organizations={organizations}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
+ action: 'www_pricing_plan_cta_clicked',
properties: {
plan,
showUpgradeText: true,
@@ -74,7 +73,7 @@ const MobileHeader = ({
href={selectedPlan.href}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
+ action: 'www_pricing_plan_cta_clicked',
properties: {
plan,
showUpgradeText: false,
@@ -403,7 +402,7 @@ const PricingComparisonTable = ({
organizations={organizations}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
+ action: 'www_pricing_plan_cta_clicked',
properties: {
plan: plan.name,
showUpgradeText: true,
@@ -425,7 +424,7 @@ const PricingComparisonTable = ({
href={plan.href}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
+ action: 'www_pricing_plan_cta_clicked',
properties: {
plan: plan.name,
showUpgradeText: false,
diff --git a/apps/www/components/Pricing/PricingPlans.tsx b/apps/www/components/Pricing/PricingPlans.tsx
index 79869937bf1..22ef35423a6 100644
--- a/apps/www/components/Pricing/PricingPlans.tsx
+++ b/apps/www/components/Pricing/PricingPlans.tsx
@@ -6,7 +6,6 @@ import { Button, cn } from 'ui'
import { Organization } from '~/data/organizations'
import { useSendTelemetryEvent } from '~/lib/telemetry'
import UpgradePlan from './UpgradePlan'
-import { TelemetryActions } from 'common/telemetry-constants'
interface PricingPlansProps {
organizations?: Organization[]
@@ -29,7 +28,7 @@ const PricingPlans = ({ organizations, hasExistingOrganizations }: PricingPlansP
const sendPricingEvent = () => {
sendTelemetryEvent({
- action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
+ action: 'www_pricing_plan_cta_clicked',
properties: {
plan: plan.name,
showUpgradeText: isUpgradablePlan && hasExistingOrganizations ? true : false,
diff --git a/apps/www/components/Products/index.tsx b/apps/www/components/Products/index.tsx
index 1df8fb69ff4..af4b8fbb375 100644
--- a/apps/www/components/Products/index.tsx
+++ b/apps/www/components/Products/index.tsx
@@ -11,7 +11,6 @@ import StorageVisual from './StorageVisual'
import VectorVisual from './VectorVisual'
import { PRODUCT_MODULES_SHORTNAMES, PRODUCT_SHORTNAMES } from 'shared-data/products'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
import type { ProductType } from '~/data/MainProducts'
@@ -27,7 +26,7 @@ const Products: React.FC = (props) => {
product: PRODUCT_SHORTNAMES | PRODUCT_MODULES_SHORTNAMES | 'data-api'
) => {
return await _sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_PRODUCT_CARD_CLICKED,
+ action: 'homepage_product_card_clicked',
properties: { product },
})
}
diff --git a/apps/www/components/Sections/ProductHeader.tsx b/apps/www/components/Sections/ProductHeader.tsx
index c8cd7b55191..5a43dc97435 100644
--- a/apps/www/components/Sections/ProductHeader.tsx
+++ b/apps/www/components/Sections/ProductHeader.tsx
@@ -2,7 +2,6 @@ import Link from 'next/link'
import { Button } from 'ui'
import ProductIcon from '../ProductIcon'
import { BookOpen } from 'lucide-react'
-import { TelemetryActions } from 'common/telemetry-constants'
import { useSendTelemetryEvent } from '~/lib/telemetry'
type subheader = string
@@ -56,7 +55,7 @@ const ProductHeader = (props: Types) => {
as="https://supabase.com/dashboard"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
+ action: 'start_project_button_clicked',
properties: { buttonLocation: 'Product Page Header - ' + props.title },
})
}
@@ -72,7 +71,7 @@ const ProductHeader = (props: Types) => {
className="ml-2"
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.SEE_DOCUMENTATION_BUTTON_CLICKED,
+ action: 'see_documentation_button_clicked',
properties: {
buttonLocation: 'Product Page Header - ' + props.title,
},
diff --git a/apps/www/components/TwitterSocialSection.tsx b/apps/www/components/TwitterSocialSection.tsx
index 90696c18635..c0bd4131911 100644
--- a/apps/www/components/TwitterSocialSection.tsx
+++ b/apps/www/components/TwitterSocialSection.tsx
@@ -7,7 +7,6 @@ import TwitterSocialProofMobile from './Sections/TwitterSocialProofMobile'
import Tweets from '~/data/tweets/Tweets.json'
import { useSendTelemetryEvent } from '~/lib/telemetry'
-import { TelemetryActions } from 'common/telemetry-constants'
const TwitterSocialSection = () => {
const tweets = Tweets.slice(0, 18)
@@ -28,7 +27,7 @@ const TwitterSocialSection = () => {
tabIndex={-1}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_GITHUB_DISCUSSIONS_BUTTON_CLICKED,
+ action: 'homepage_github_discussions_button_clicked',
})
}
>
@@ -42,7 +41,7 @@ const TwitterSocialSection = () => {
tabIndex={-1}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.HOMEPAGE_DISCORD_BUTTON_CLICKED,
+ action: 'homepage_discord_button_clicked',
})
}
>
diff --git a/apps/www/pages/events/[slug].tsx b/apps/www/pages/events/[slug].tsx
index 49555085c82..4812128cfc2 100644
--- a/apps/www/pages/events/[slug].tsx
+++ b/apps/www/pages/events/[slug].tsx
@@ -14,7 +14,6 @@ import NextImage from 'next/image'
import Link from 'next/link'
import authors from 'lib/authors.json'
-import { TelemetryActions } from 'common/telemetry-constants'
import { isNotNullOrUndefined } from '~/lib/helpers'
import mdxComponents from '~/lib/mdx/mdxComponents'
import { mdxSerialize } from '~/lib/mdx/mdxSerialize'
@@ -287,7 +286,7 @@ const EventPage = ({ event }: InferGetStaticPropsType) =>
target={event.main_cta?.target ? event.main_cta?.target : undefined}
onClick={() =>
sendTelemetryEvent({
- action: TelemetryActions.EVENT_PAGE_CTA_CLICKED,
+ action: 'www_pricing_plan_cta_clicked',
properties: { eventTitle: event.title },
})
}
diff --git a/packages/common/telemetry-constants.ts b/packages/common/telemetry-constants.ts
index f85df320c22..65752ed0a4e 100644
--- a/packages/common/telemetry-constants.ts
+++ b/packages/common/telemetry-constants.ts
@@ -1,79 +1,13 @@
-// These events are tracked only when users opt in.
-// Standardization as per document: https://www.notion.so/supabase/Event-tracking-standardization-1195004b775f80f98ee3fa9e70cf4d05
-
-export enum TelemetryActions {
- SIGN_UP = 'sign_up',
- SIGN_IN = 'sign_in',
-
- ASSISTANT_PROMPT_SUBMITTED = 'assistant_prompt_submitted',
- ASSISTANT_DEBUG_SUBMITTED = 'assistant_debug_submitted',
- ASSISTANT_SUGGESTION_RUN_QUERY_CLICKED = 'assistant_suggestion_run_query_clicked',
- ASSISTANT_SQL_DIFF_HANDLER_EVALUATED = 'assistant_sql_diff_handler_evaluated',
- ASSISTANT_EDIT_IN_SQL_EDITOR_CLICKED = 'assistant_edit_in_sql_editor_clicked',
-
- CONNECTION_STRING_COPIED = 'connection_string_copied',
- CUSTOM_REPORT_ADD_SQL_BLOCK_CLICKED = 'custom-report-add-sql-block-clicked',
- CUSTOM_REPORT_ASSISTANT_SQL_BLOCK_ADDED = 'custom-report-assistant-sql-block-added',
-
- CRON_JOB_CREATED = 'cron_job_created',
- CRON_JOB_UPDATED = 'cron_job_updated',
- CRON_JOB_DELETED = 'cron_job_deleted',
- CRON_JOB_DELETE_CLICKED = 'cron_job_delete_clicked',
- CRON_JOB_UPDATE_CLICKED = 'cron_job_update_clicked',
- CRON_JOB_CREATE_CLICKED = 'cron_job_create_clicked',
- CRON_JOB_HISTORY_CLICKED = 'cron_job_history_clicked',
-
- FEATURE_PREVIEWS_CLICKED = 'feature_previews_clicked',
- FEATURE_PREVIEW_ENABLED = 'feature_preview_enabled',
- FEATURE_PREVIEW_DISABLED = 'feature_preview_disabled',
-
- PROJECT_CREATION_SIMPLE_VERSION_SUBMITTED = 'project_creation_simple_version_submitted',
- PROJECT_CREATION_INITIAL_STEP_PROMPT_INTENDED = 'project_creation_initial_step_prompt_intended',
- PROJECT_CREATION_INITIAL_STEP_SUBMITTED = 'project_creation_initial_step_submitted',
- PROJECT_CREATION_SECOND_STEP_PROMPT_INTENDED = 'project_creation_second_step_prompt_intended',
- PROJECT_CREATION_SECOND_STEP_SUBMITTED = 'project_creation_second_step_submitted',
-
- REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED = 'realtime_inspector_listen_channel_clicked',
- REALTIME_INSPECTOR_BROADCAST_SENT = 'realtime_inspector_broadcast_sent',
- REALTIME_INSPECTOR_MESSAGE_CLICKED = 'realtime_inspector_message_clicked',
- REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED = 'realtime_inspector_copy_message_clicked',
- REALTIME_INSPECTOR_FILTERS_APPLIED = 'realtime_inspector_filters_applied',
- REALTIME_INSPECTOR_DATABASE_ROLE_UPDATED = 'realtime_inspector_database_role_updated',
- REALTIME_TOGGLE_TABLE_CLICKED = 'realtime_toggle_table_clicked',
-
- SQL_EDITOR_QUICKSTART_CLICKED = 'sql_editor_quickstart_clicked',
- SQL_EDITOR_TEMPLATE_CLICKED = 'sql_editor_template_clicked',
- SQL_EDITOR_RESULT_DOWNLOAD_CSV_CLICKED = 'sql_editor_result_download_csv_clicked',
- SQL_EDITOR_RESULT_COPY_MARKDOWN_CLICKED = 'sql_editor_result_copy_markdown_clicked',
- SQL_EDITOR_RESULT_COPY_JSON_CLICKED = 'sql_editor_result_copy_json_clicked',
-
- DOCS_FEEDBACK_CLICKED = 'docs_feedback_clicked',
-
- HOMEPAGE_HERO_REQUEST_DEMO_CLICKED = 'homepage_hero_request_demo_clicked',
- HOMEPAGE_FRAMEWORK_QUICKSTART_CLICKED = 'homepage_framework_quickstart_clicked',
- HOMEPAGE_PRODUCT_CARD_CLICKED = 'homepage_product_card_clicked',
- WWW_PRICING_PLAN_CTA_CLICKED = 'www_pricing_plan_cta_clicked',
- EVENT_PAGE_CTA_CLICKED = 'event_page_cta_clicked',
- HOMEPAGE_GITHUB_BUTTON_CLICKED = 'homepage_github_button_clicked',
- HOMEPAGE_GITHUB_DISCUSSIONS_BUTTON_CLICKED = 'homepage_github_discussions_button_clicked',
- HOMEPAGE_DISCORD_BUTTON_CLICKED = 'homepage_discord_button_clicked',
- HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED = 'homepage_customer_story_card_clicked',
- HOMEPAGE_PROJECT_TEMPLATE_CARD_CLICKED = 'homepage_project_template_card_clicked',
- OPEN_SOURCE_REPO_CARD_CLICKED = 'open_source_repo_card_clicked',
- START_PROJECT_BUTTON_CLICKED = 'start_project_button_clicked',
- SEE_DOCUMENTATION_BUTTON_CLICKED = 'see_documentation_button_clicked',
- REQUEST_DEMO_BUTTON_CLICKED = 'request_demo_button_clicked',
- SIGN_IN_BUTTON_CLICKED = 'sign_in_button_clicked',
-
- HELP_BUTTON_CLICKED = 'help_button_clicked',
- SEND_FEEDBACK_BUTTON_CLICKED = 'send_feedback_button_clicked',
- EXAMPLE_PROJECT_CARD_CLICKED = 'example_project_card_clicked',
- IMPORT_DATA_BUTTON_CLICKED = 'import_data_button_clicked',
- IMPORT_DATA_ADDED = 'import_data_added',
- SQL_EDITOR_QUERY_RUN_BUTTON_CLICKED = 'sql_editor_query_run_button_clicked',
- STUDIO_PRICING_PLAN_CTA_CLICKED = 'studio_pricing_plan_cta_clicked',
- STUDIO_PRICING_SIDE_PANEL_OPENED = 'studio_pricing_side_panel_opened',
-}
+/**
+ * Consolidated event definitions coming from the frontend, including studio, www, and docs.
+ *
+ * Note that events are not emitted for users that have opted out of telemetry.
+ *
+ * Original definitions located at:
+ * https://github.com/supabase/supabase/blob/master/packages/common/telemetry-constants.ts
+ *
+ * @module telemetry-frontend
+ */
/**
* Triggered when a user signs up. When signing up with Email and Password, this is only triggered once user confirms their email.
@@ -83,7 +17,7 @@ export enum TelemetryActions {
* @page /sign-up
*/
export interface SignUpEvent {
- action: TelemetryActions.SIGN_UP
+ action: 'sign_up'
properties: {
category: 'conversion'
}
@@ -100,7 +34,7 @@ export interface SignUpEvent {
* @page /sign-in-mfa
*/
export interface SignInEvent {
- action: TelemetryActions.SIGN_IN
+ action: 'sign_in'
properties: {
category: 'account'
/**
@@ -117,7 +51,7 @@ export interface SignInEvent {
* @source studio
*/
export interface ConnectionStringCopiedEvent {
- action: TelemetryActions.CONNECTION_STRING_COPIED
+ action: 'connection_string_copied'
properties: {
/**
* Method selected by user, e.g. URI, PSQL, SQLAlchemy, etc.
@@ -146,7 +80,7 @@ export interface ConnectionStringCopiedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs?dialog-shown=true
*/
export interface CronJobCreatedEvent {
- action: TelemetryActions.CRON_JOB_CREATED
+ action: 'cron_job_created'
properties: {
/**
* What the cron job executes, e.g. sql_function or sql_snippet
@@ -171,7 +105,7 @@ export interface CronJobCreatedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs?dialog-shown=true
*/
export interface CronJobUpdatedEvent {
- action: TelemetryActions.CRON_JOB_UPDATED
+ action: 'cron_job_updated'
properties: {
/**
* What the cron job executes, e.g. sql_function or sql_snippet
@@ -196,7 +130,7 @@ export interface CronJobUpdatedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs
*/
export interface CronJobDeletedEvent {
- action: TelemetryActions.CRON_JOB_DELETED
+ action: 'cron_job_deleted'
groups: {
project: string
organization: string
@@ -211,7 +145,7 @@ export interface CronJobDeletedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs
*/
export interface CronJobCreateClickedEvent {
- action: TelemetryActions.CRON_JOB_CREATE_CLICKED
+ action: 'cron_job_create_clicked'
groups: {
project: string
organization: string
@@ -226,7 +160,7 @@ export interface CronJobCreateClickedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs
*/
export interface CronJobUpdateClickedEvent {
- action: TelemetryActions.CRON_JOB_UPDATE_CLICKED
+ action: 'cron_job_update_clicked'
groups: {
project: string
organization: string
@@ -241,7 +175,7 @@ export interface CronJobUpdateClickedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs
*/
export interface CronJobDeleteClickedEvent {
- action: TelemetryActions.CRON_JOB_DELETE_CLICKED
+ action: 'cron_job_delete_clicked'
groups: {
project: string
organization: string
@@ -256,7 +190,7 @@ export interface CronJobDeleteClickedEvent {
* @page /dashboard/project/{ref}/integrations/cron/jobs
*/
export interface CronJobHistoryClickedEvent {
- action: TelemetryActions.CRON_JOB_HISTORY_CLICKED
+ action: 'cron_job_history_clicked'
groups: {
project: string
organization: string
@@ -272,7 +206,7 @@ export interface CronJobHistoryClickedEvent {
* @source studio
*/
export interface FeaturePreviewsClickedEvent {
- action: TelemetryActions.FEATURE_PREVIEWS_CLICKED
+ action: 'feature_previews_clicked'
groups: {
project: string
organization: string
@@ -288,7 +222,7 @@ export interface FeaturePreviewsClickedEvent {
* @source studio
*/
export interface FeaturePreviewEnabledEvent {
- action: TelemetryActions.FEATURE_PREVIEW_ENABLED
+ action: 'feature_preview_enabled'
properties: {
/**
* Feature key of the preview that was enabled. e.g. supabase-ui-api-side-panel
@@ -310,7 +244,7 @@ export interface FeaturePreviewEnabledEvent {
* @source studio
*/
export interface FeaturePreviewDisabledEvent {
- action: TelemetryActions.FEATURE_PREVIEW_DISABLED
+ action: 'feature_preview_disabled'
properties: {
/**
* Feature key of the preview that was disabled. e.g. supabase-ui-api-side-panel
@@ -331,7 +265,7 @@ export interface FeaturePreviewDisabledEvent {
* @page new/{slug}
*/
export interface ProjectCreationSimpleVersionSubmittedEvent {
- action: TelemetryActions.PROJECT_CREATION_SIMPLE_VERSION_SUBMITTED
+ action: 'project_creation_simple_version_submitted'
}
/**
@@ -343,7 +277,7 @@ export interface ProjectCreationSimpleVersionSubmittedEvent {
* @page new/v2/{slug}
*/
export interface ProjectCreationInitialStepPromptIntendedEvent {
- action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_PROMPT_INTENDED
+ action: 'project_creation_initial_step_prompt_intended'
/**
* Is this a new prompt (e.g. when following the start blank route where no prompt has been filled in the InitialStep). In other
* words, was this not just an edit. In this case, it should always be true.
@@ -361,7 +295,7 @@ export interface ProjectCreationInitialStepPromptIntendedEvent {
* @page new/v2/{slug}
*/
export interface ProjectCreationInitialStepSubmittedEvent {
- action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED
+ action: 'project_creation_initial_step_submitted'
properties: {
/**
* Records what the user selected in the first step of project creation.
@@ -378,7 +312,7 @@ export interface ProjectCreationInitialStepSubmittedEvent {
* @page new/v2/{slug}
*/
export interface ProjectCreationSecondStepPromptIntendedEvent {
- action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_PROMPT_INTENDED
+ action: 'project_creation_second_step_prompt_intended'
properties: {
/**
* Is this a new prompt (e.g. when following the start blank route where no prompt has been filled in the InitialStep). In other
@@ -397,7 +331,7 @@ export interface ProjectCreationSecondStepPromptIntendedEvent {
* @page new/v2/{slug}
*/
export interface ProjectCreationSecondStepSubmittedEvent {
- action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_SUBMITTED
+ action: 'project_creation_second_step_submitted'
}
/**
@@ -408,7 +342,7 @@ export interface ProjectCreationSecondStepSubmittedEvent {
* @page /dashboard/project/{ref}/realtime/inspector
*/
export interface RealtimeInspectorListenChannelClickedEvent {
- action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED
+ action: 'realtime_inspector_listen_channel_clicked'
groups: {
project: string
organization: string
@@ -423,7 +357,7 @@ export interface RealtimeInspectorListenChannelClickedEvent {
* @page /dashboard/project/{ref}/realtime/inspector
*/
export interface RealtimeInspectorBroadcastSentEvent {
- action: TelemetryActions.REALTIME_INSPECTOR_BROADCAST_SENT
+ action: 'realtime_inspector_broadcast_sent'
groups: {
project: string
organization: string
@@ -438,7 +372,7 @@ export interface RealtimeInspectorBroadcastSentEvent {
* @page /dashboard/project/{ref}/realtime/inspector
*/
export interface RealtimeInspectorMessageClickedEvent {
- action: TelemetryActions.REALTIME_INSPECTOR_MESSAGE_CLICKED
+ action: 'realtime_inspector_message_clicked'
groups: {
project: string
organization: string
@@ -453,7 +387,7 @@ export interface RealtimeInspectorMessageClickedEvent {
* @page /dashboard/project/{ref}/realtime/inspector
*/
export interface RealtimeInspectorCopyMessageClickedEvent {
- action: TelemetryActions.REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED
+ action: 'realtime_inspector_copy_message_clicked'
groups: {
project: string
organization: string
@@ -468,7 +402,7 @@ export interface RealtimeInspectorCopyMessageClickedEvent {
* @page /dashboard/project/{ref}/realtime/inspector
*/
export interface RealtimeInspectorFiltersAppliedEvent {
- action: TelemetryActions.REALTIME_INSPECTOR_FILTERS_APPLIED
+ action: 'realtime_inspector_filters_applied'
groups: {
project: string
organization: string
@@ -483,7 +417,7 @@ export interface RealtimeInspectorFiltersAppliedEvent {
* @page /dashboard/project/{ref}/realtime/inspector
*/
export interface RealtimeInspectorDatabaseRoleUpdatedEvent {
- action: TelemetryActions.REALTIME_INSPECTOR_DATABASE_ROLE_UPDATED
+ action: 'realtime_inspector_database_role_updated'
groups: {
project: string
organization: string
@@ -498,7 +432,7 @@ export interface RealtimeInspectorDatabaseRoleUpdatedEvent {
* @page /dashboard/project/{ref}/editor
*/
export interface RealtimeToggleTableClickedEvent {
- action: TelemetryActions.REALTIME_TOGGLE_TABLE_CLICKED
+ action: 'realtime_toggle_table_clicked'
properties: {
/**
* The state of the toggle.
@@ -523,7 +457,7 @@ export interface RealtimeToggleTableClickedEvent {
* @page /dashboard/project/{ref}/sql
*/
export interface SqlEditorQuickstartClickedEvent {
- action: TelemetryActions.SQL_EDITOR_QUICKSTART_CLICKED
+ action: 'sql_editor_quickstart_clicked'
properties: {
/**
* The title of the quickstart card clicked.
@@ -544,7 +478,7 @@ export interface SqlEditorQuickstartClickedEvent {
* @page /dashboard/project/{ref}/sql
*/
export interface SqlEditorTemplateClickedEvent {
- action: TelemetryActions.SQL_EDITOR_TEMPLATE_CLICKED
+ action: 'sql_editor_template_clicked'
properties: {
/**
* The name of the template card clicked.
@@ -565,7 +499,7 @@ export interface SqlEditorTemplateClickedEvent {
* @page /dashboard/project/{ref}/sql
*/
export interface SqlEditorResultDownloadCsvClickedEvent {
- action: TelemetryActions.SQL_EDITOR_RESULT_DOWNLOAD_CSV_CLICKED
+ action: 'sql_editor_result_download_csv_clicked'
groups: {
project: string
organization: string
@@ -580,7 +514,7 @@ export interface SqlEditorResultDownloadCsvClickedEvent {
* @page /dashboard/project/{ref}/sql
*/
export interface SqlEditorResultCopyMarkdownClickedEvent {
- action: TelemetryActions.SQL_EDITOR_RESULT_COPY_MARKDOWN_CLICKED
+ action: 'sql_editor_result_copy_markdown_clicked'
groups: {
project: string
organization: string
@@ -595,7 +529,7 @@ export interface SqlEditorResultCopyMarkdownClickedEvent {
* @page /dashboard/project/{ref}/sql
*/
export interface SqlEditorResultCopyJsonClickedEvent {
- action: TelemetryActions.SQL_EDITOR_RESULT_COPY_JSON_CLICKED
+ action: 'sql_editor_result_copy_json_clicked'
groups: {
project: string
organization: string
@@ -609,7 +543,7 @@ export interface SqlEditorResultCopyJsonClickedEvent {
* @source studio
*/
export interface AssistantPromptSubmittedEvent {
- action: TelemetryActions.ASSISTANT_PROMPT_SUBMITTED
+ action: 'assistant_prompt_submitted'
groups: {
project: string
organization: string
@@ -623,7 +557,7 @@ export interface AssistantPromptSubmittedEvent {
* @source studio
*/
export interface AssistantDebugSubmittedEvent {
- action: TelemetryActions.ASSISTANT_DEBUG_SUBMITTED
+ action: 'assistant_debug_submitted'
groups: {
project: string
organization: string
@@ -637,7 +571,7 @@ export interface AssistantDebugSubmittedEvent {
* @source studio
*/
export interface AssistantSuggestionRunQueryClickedEvent {
- action: TelemetryActions.ASSISTANT_SUGGESTION_RUN_QUERY_CLICKED
+ action: 'assistant_suggestion_run_query_clicked'
properties: {
/**
* The type of suggestion that was run by the user. Mutate or Select query types only.
@@ -658,7 +592,7 @@ export interface AssistantSuggestionRunQueryClickedEvent {
* @page /dashboard/project/{ref}/sql
*/
export interface AssistantSqlDiffHandlerEvaluatedEvent {
- action: TelemetryActions.ASSISTANT_SQL_DIFF_HANDLER_EVALUATED
+ action: 'assistant_sql_diff_handler_evaluated'
properties: {
/**
* Whether the user accepted or rejected the changes.
@@ -678,7 +612,7 @@ export interface AssistantSqlDiffHandlerEvaluatedEvent {
* @source studio
*/
export interface AssistantEditInSqlEditorClickedEvent {
- action: TelemetryActions.ASSISTANT_EDIT_IN_SQL_EDITOR_CLICKED
+ action: 'assistant_edit_in_sql_editor_clicked'
properties: {
/**
* Whether the user is in the SQL editor page or in a new snippet.
@@ -700,7 +634,7 @@ export interface AssistantEditInSqlEditorClickedEvent {
* @page /dashboard/project/{ref}/reports/{id}
*/
export interface CustomReportAddSQLBlockClicked {
- action: TelemetryActions.CUSTOM_REPORT_ADD_SQL_BLOCK_CLICKED
+ action: 'custom_report_add_sql_block_clicked'
}
/**
@@ -711,7 +645,7 @@ export interface CustomReportAddSQLBlockClicked {
* @page /dashboard/project/{ref}/reports/{id}
*/
export interface CustomReportAssistantSQLBlockAdded {
- action: TelemetryActions.CUSTOM_REPORT_ASSISTANT_SQL_BLOCK_ADDED
+ action: 'custom_report_assistant_sql_block_added'
}
/**
@@ -721,7 +655,7 @@ export interface CustomReportAssistantSQLBlockAdded {
* @source docs
*/
export interface DocsFeedbackClickedEvent {
- action: TelemetryActions.DOCS_FEEDBACK_CLICKED
+ action: 'docs_feedback_clicked'
properties: {
/**
* 'yes' means clicking on the tick button, 'no' means clicking on the cross button.
@@ -730,17 +664,6 @@ export interface DocsFeedbackClickedEvent {
}
}
-/**
- * User clicked the "Request a Demo" button in the homepage hero section.
- *
- * @group Events
- * @source www
- * @page /
- */
-export interface HomepageHeroRequestDemoClickedEvent {
- action: TelemetryActions.HOMEPAGE_HERO_REQUEST_DEMO_CLICKED
-}
-
/**
* User clicked the framework quickstart card on the homepage, leading to the specific framework documentation.
*
@@ -749,7 +672,7 @@ export interface HomepageHeroRequestDemoClickedEvent {
* @page /
*/
export interface HomepageFrameworkQuickstartClickedEvent {
- action: TelemetryActions.HOMEPAGE_FRAMEWORK_QUICKSTART_CLICKED
+ action: 'homepage_framework_quickstart_clicked'
properties: {
/**
* The name of the framework quickstart card clicked.
@@ -766,7 +689,7 @@ export interface HomepageFrameworkQuickstartClickedEvent {
* @page /
*/
export interface HomepageProductCardClickedEvent {
- action: TelemetryActions.HOMEPAGE_PRODUCT_CARD_CLICKED
+ action: 'homepage_product_card_clicked'
properties: {
product: string
}
@@ -780,7 +703,7 @@ export interface HomepageProductCardClickedEvent {
* @page /pricing
*/
export interface WwwPricingPlanCtaClickedEvent {
- action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED
+ action: 'www_pricing_plan_cta_clicked'
properties: {
/**
* The plan type that was clicked.
@@ -808,7 +731,7 @@ export interface WwwPricingPlanCtaClickedEvent {
* @page /events/*
*/
export interface EventPageCtaClickedEvent {
- action: TelemetryActions.EVENT_PAGE_CTA_CLICKED
+ action: 'www_pricing_plan_cta_clicked'
properties: {
/**
* The title of the event clicked.
@@ -825,7 +748,7 @@ export interface EventPageCtaClickedEvent {
* @page /
*/
export interface HomepageGitHubButtonClickedEvent {
- action: TelemetryActions.HOMEPAGE_GITHUB_BUTTON_CLICKED
+ action: 'homepage_github_button_clicked'
}
/**
@@ -836,7 +759,7 @@ export interface HomepageGitHubButtonClickedEvent {
* @page /
*/
export interface HomepageGitHubDiscussionsButtonClickedEvent {
- action: TelemetryActions.HOMEPAGE_GITHUB_DISCUSSIONS_BUTTON_CLICKED
+ action: 'homepage_github_discussions_button_clicked'
}
/**
@@ -847,7 +770,7 @@ export interface HomepageGitHubDiscussionsButtonClickedEvent {
* @page /
*/
export interface HomepageDiscordButtonClickedEvent {
- action: TelemetryActions.HOMEPAGE_DISCORD_BUTTON_CLICKED
+ action: 'homepage_discord_button_clicked'
}
/**
@@ -858,7 +781,7 @@ export interface HomepageDiscordButtonClickedEvent {
* @page /
*/
export interface HomepageCustomerStoryCardClickedEvent {
- action: TelemetryActions.HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED
+ action: 'homepage_customer_story_card_clicked'
properties: {
customer?: string
/**
@@ -876,7 +799,7 @@ export interface HomepageCustomerStoryCardClickedEvent {
* @page /
*/
export interface HomepageProjectTemplateCardClickedEvent {
- action: TelemetryActions.HOMEPAGE_PROJECT_TEMPLATE_CARD_CLICKED
+ action: 'homepage_project_template_card_clicked'
properties: {
/**
* The title of the project template card clicked.
@@ -893,7 +816,7 @@ export interface HomepageProjectTemplateCardClickedEvent {
* @page /open-source
*/
export interface OpenSourceRepoCardClickedEvent {
- action: TelemetryActions.OPEN_SOURCE_REPO_CARD_CLICKED
+ action: 'open_source_repo_card_clicked'
properties: {
/**
* The name of the open source repository clicked.
@@ -909,7 +832,7 @@ export interface OpenSourceRepoCardClickedEvent {
* @source www
*/
export interface StartProjectButtonClickedEvent {
- action: TelemetryActions.START_PROJECT_BUTTON_CLICKED
+ action: 'start_project_button_clicked'
properties: {
/**
* The source of the button click, e.g. homepage hero, product page header.
@@ -925,7 +848,7 @@ export interface StartProjectButtonClickedEvent {
* @source www
*/
export interface SeeDocumentationButtonClickedEvent {
- action: TelemetryActions.SEE_DOCUMENTATION_BUTTON_CLICKED
+ action: 'see_documentation_button_clicked'
properties: {
/**
* The source of the button click, e.g. homepage hero, product page header - product name.
@@ -941,7 +864,7 @@ export interface SeeDocumentationButtonClickedEvent {
* @source www
*/
export interface RequestDemoButtonClickedEvent {
- action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED
+ action: 'request_demo_button_clicked'
properties: {
/**
* The source of the button click, e.g. homepage hero, cta banner, product page header.
@@ -958,7 +881,7 @@ export interface RequestDemoButtonClickedEvent {
* @source www
*/
export interface SignInButtonClickedEvent {
- action: TelemetryActions.SIGN_IN_BUTTON_CLICKED
+ action: 'sign_in_button_clicked'
properties: {
/**
* The source of the button click, e.g. homepage hero, cta banner, product page header.
@@ -974,7 +897,7 @@ export interface SignInButtonClickedEvent {
* @source studio
*/
export interface HelpButtonClickedEvent {
- action: TelemetryActions.HELP_BUTTON_CLICKED
+ action: 'help_button_clicked'
groups: {
project?: string
organization?: string
@@ -988,7 +911,7 @@ export interface HelpButtonClickedEvent {
* @source studio
*/
export interface SendFeedbackButtonClickedEvent {
- action: TelemetryActions.SEND_FEEDBACK_BUTTON_CLICKED
+ action: 'send_feedback_button_clicked'
groups: {
project?: string
organization?: string
@@ -1003,7 +926,7 @@ export interface SendFeedbackButtonClickedEvent {
* @page /project/{ref}
*/
export interface ExampleProjectCardClickedEvent {
- action: TelemetryActions.EXAMPLE_PROJECT_CARD_CLICKED
+ action: 'example_project_card_clicked'
properties: {
/**
* The title of the example project card clicked.
@@ -1024,7 +947,7 @@ export interface ExampleProjectCardClickedEvent {
* @page /dashboard/project/{ref}/editor
*/
export interface ImportDataButtonClickedEvent {
- action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED
+ action: 'import_data_button_clicked'
properties: {
/**
* The type of table the data is imported to.
@@ -1047,7 +970,7 @@ export interface ImportDataButtonClickedEvent {
* @page /dashboard/project/{ref}/editor
*/
export interface ImportDataAddedEvent {
- action: TelemetryActions.IMPORT_DATA_ADDED
+ action: 'import_data_added'
groups: {
project: string
organization: string
@@ -1062,7 +985,7 @@ export interface ImportDataAddedEvent {
* @page /dashboard/project/{ref}/sql/{id}
*/
export interface SqlEditorQueryRunButtonClickedEvent {
- action: TelemetryActions.SQL_EDITOR_QUERY_RUN_BUTTON_CLICKED
+ action: 'sql_editor_query_run_button_clicked'
groups: {
project: string
organization: string
@@ -1077,7 +1000,7 @@ export interface SqlEditorQueryRunButtonClickedEvent {
* @page /billing?panel=subscriptionPlan
*/
export interface StudioPricingPlanCtaClickedEvent {
- action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED
+ action: 'studio_pricing_plan_cta_clicked'
properties: {
/**
* The plan type that was clicked.
@@ -1099,7 +1022,7 @@ export interface StudioPricingPlanCtaClickedEvent {
* @page /billing?panel=subscriptionPlan
*/
export interface StudioPricingSidePanelOpenedEvent {
- action: TelemetryActions.STUDIO_PRICING_SIDE_PANEL_OPENED
+ action: 'studio_pricing_side_panel_opened'
properties: {
currentPlan?: string
/**
@@ -1110,6 +1033,9 @@ export interface StudioPricingSidePanelOpenedEvent {
groups: { organization: string }
}
+/**
+ * @hidden
+ */
export type TelemetryEvent =
| SignUpEvent
| SignInEvent
@@ -1147,7 +1073,6 @@ export type TelemetryEvent =
| AssistantSqlDiffHandlerEvaluatedEvent
| AssistantEditInSqlEditorClickedEvent
| DocsFeedbackClickedEvent
- | HomepageHeroRequestDemoClickedEvent
| HomepageFrameworkQuickstartClickedEvent
| HomepageProductCardClickedEvent
| WwwPricingPlanCtaClickedEvent