@@ -353,6 +353,31 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
353353
354354 logger . info ( `[${ requestId } ] Workflow deployed successfully: ${ id } ` )
355355
356+ // Track workflow deployment
357+ try {
358+ const { trackPlatformEvent } = await import ( '@/lib/telemetry/tracer' )
359+
360+ // Aggregate block types to understand which blocks are being used
361+ const blockTypeCounts : Record < string , number > = { }
362+ for ( const block of Object . values ( currentState . blocks ) ) {
363+ const blockType = ( block as any ) . type || 'unknown'
364+ blockTypeCounts [ blockType ] = ( blockTypeCounts [ blockType ] || 0 ) + 1
365+ }
366+
367+ trackPlatformEvent ( 'platform.workflow.deployed' , {
368+ 'workflow.id' : id ,
369+ 'workflow.name' : workflowData ! . name ,
370+ 'workflow.blocks_count' : Object . keys ( currentState . blocks ) . length ,
371+ 'workflow.edges_count' : currentState . edges . length ,
372+ 'workflow.has_loops' : Object . keys ( currentState . loops ) . length > 0 ,
373+ 'workflow.has_parallels' : Object . keys ( currentState . parallels ) . length > 0 ,
374+ 'workflow.api_key_type' : keyInfo ?. type || 'default' ,
375+ 'workflow.block_types' : JSON . stringify ( blockTypeCounts ) ,
376+ } )
377+ } catch ( _e ) {
378+ // Silently fail
379+ }
380+
356381 const responseApiKeyInfo = keyInfo ? `${ keyInfo . name } (${ keyInfo . type } )` : 'Default key'
357382
358383 return createSuccessResponse ( {
@@ -400,6 +425,17 @@ export async function DELETE(
400425 } )
401426
402427 logger . info ( `[${ requestId } ] Workflow undeployed successfully: ${ id } ` )
428+
429+ // Track workflow undeployment
430+ try {
431+ const { trackPlatformEvent } = await import ( '@/lib/telemetry/tracer' )
432+ trackPlatformEvent ( 'platform.workflow.undeployed' , {
433+ 'workflow.id' : id ,
434+ } )
435+ } catch ( _e ) {
436+ // Silently fail
437+ }
438+
403439 return createSuccessResponse ( {
404440 isDeployed : false ,
405441 deployedAt : null ,
0 commit comments