diff --git a/src/components/app/details/triggerView/ciMaterial.tsx b/src/components/app/details/triggerView/ciMaterial.tsx
index fada04cd1d..54b9730f05 100644
--- a/src/components/app/details/triggerView/ciMaterial.tsx
+++ b/src/components/app/details/triggerView/ciMaterial.tsx
@@ -393,6 +393,10 @@ class CIMaterial extends Component<CIMaterialProps, CIMaterialState> {
             const response = await savePipeline(payload, true)
             if (response) {
                 await this.props.getWorkflows()
+
+                if (this.props.fromAppGrouping) {
+                    this.context.onClickCIMaterial(this.props.pipelineId.toString(), this.props.pipelineName)
+                }
             }
         } catch (error) {
             showError(error)
diff --git a/src/components/v2/appDetails/appDetails.type.ts b/src/components/v2/appDetails/appDetails.type.ts
index 89753cd650..003cf9b7df 100644
--- a/src/components/v2/appDetails/appDetails.type.ts
+++ b/src/components/v2/appDetails/appDetails.type.ts
@@ -405,7 +405,7 @@ export interface NodeTreeTabListProps extends LogSearchTermType {
     isReloadResourceTreeInProgress: boolean
     handleReloadResourceTree: () => void
     tabRef?: MutableRefObject<HTMLDivElement>
-    appType?: string
+    appType?: AppType
     isExternalApp?: boolean
 }
 
diff --git a/src/components/v2/appDetails/constants.ts b/src/components/v2/appDetails/constants.ts
new file mode 100644
index 0000000000..7f7849744f
--- /dev/null
+++ b/src/components/v2/appDetails/constants.ts
@@ -0,0 +1,6 @@
+export enum ApplicationsGAEvents {
+    REFRESH_DEVTRON_APP_RESOURCE_TREE = 'REFRESH_DEVTRON_APP_RESOURCE_TREE',
+    REFRESH_HELM_APP_RESOURCE_TREE = 'REFRESH_HELM_APP_RESOURCE_TREE',
+    REFRESH_ARGO_APP_RESOURCE_TREE = 'REFRESH_ARGO_APP_RESOURCE_TREE',
+    REFRESH_FLUX_APP_RESOURCE_TREE = 'REFRESH_FLUX_APP_RESOURCE_TREE',
+}
diff --git a/src/components/v2/appDetails/k8Resource/NodeTreeTabList.tsx b/src/components/v2/appDetails/k8Resource/NodeTreeTabList.tsx
index b8fe89cb1b..676d1cb5e3 100644
--- a/src/components/v2/appDetails/k8Resource/NodeTreeTabList.tsx
+++ b/src/components/v2/appDetails/k8Resource/NodeTreeTabList.tsx
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 
-import React from 'react'
 import { NavLink, useHistory, useParams } from 'react-router-dom'
 import ReactGA from 'react-ga4'
 import { useSharedState } from '../../utils/useSharedState'
@@ -36,6 +35,7 @@ import {
     ButtonComponentType
 } from '@devtron-labs/devtron-fe-common-lib'
 import './NodeTreeTabList.scss'
+import { getApplicationsGAEvent } from './utils'
 
 export default function NodeTreeTabList({
     logSearchTerms,
@@ -43,6 +43,7 @@ export default function NodeTreeTabList({
     tabRef,
     handleReloadResourceTree,
     isReloadResourceTreeInProgress,
+    appType
 }: NodeTreeTabListProps) {
     const { nodeType } = useParams<{ nodeType: string }>()
     const { push } = useHistory()
@@ -132,6 +133,15 @@ export default function NodeTreeTabList({
         handleCloseTab(e, e.currentTarget.dataset.title)
     }
 
+
+    const onClickReloadResourceTree = () => {
+        handleReloadResourceTree()
+        ReactGA.event({
+            category: getApplicationsGAEvent(appType),
+            action: getApplicationsGAEvent(appType),
+        })
+    }
+
     return (
         <div
             data-testid="resource-tree-wrapper"
@@ -201,7 +211,7 @@ export default function NodeTreeTabList({
                 <Button
                     dataTestId="reload-resource-tree-button"
                     icon={<ICArrowClockwise className="scn-6" />}
-                    onClick={handleReloadResourceTree}
+                    onClick={onClickReloadResourceTree}
                     variant={ButtonVariantType.borderLess}
                     size={ComponentSizeType.small}
                     style={ButtonStyleType.neutral}
diff --git a/src/components/v2/appDetails/k8Resource/nodeDetail/EphemeralContainerDrawer.tsx b/src/components/v2/appDetails/k8Resource/nodeDetail/EphemeralContainerDrawer.tsx
index d974451cc4..9e789e3730 100644
--- a/src/components/v2/appDetails/k8Resource/nodeDetail/EphemeralContainerDrawer.tsx
+++ b/src/components/v2/appDetails/k8Resource/nodeDetail/EphemeralContainerDrawer.tsx
@@ -501,7 +501,9 @@ const EphemeralContainerDrawer = ({
                 setResourceContainers(_containers)
                 setShowEphemeralContainerDrawer(false)
                 switchSelectedContainer(containerName)
-                handleSuccess()
+                if (typeof handleSuccess === 'function') {
+                    handleSuccess()
+                }
             })
             .catch((err) => {
                 showError(err)
diff --git a/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetail.component.tsx b/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetail.component.tsx
index 4f6b67f5d9..a4473ba5f2 100644
--- a/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetail.component.tsx
+++ b/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetail.component.tsx
@@ -254,7 +254,7 @@ const NodeDetailComponent = ({
                 }
             }
 
-            if (result?.manifestResponse.ephemeralContainers) {
+            if (result?.manifestResponse?.ephemeralContainers) {
                 _resourceContainers.push(
                     ...result.manifestResponse.ephemeralContainers.map((_container) => ({
                         name: _container.name,
@@ -646,7 +646,7 @@ const NodeDetailComponent = ({
                     setContainers={setContainers}
                     switchSelectedContainer={switchSelectedContainer}
                     selectedNamespaceByClickingPod={selectedResource?.namespace}
-                    handleSuccess={getContainersFromManifest}
+                     {...isResourceBrowserView ? {handleSuccess: getContainersFromManifest} : {}}
                 />
             )}
             {isResourceBrowserView && showDeleteDialog && (
diff --git a/src/components/v2/appDetails/k8Resource/nodeDetail/nodeDetail.type.ts b/src/components/v2/appDetails/k8Resource/nodeDetail/nodeDetail.type.ts
index 7c173d83be..bcd31f8ff4 100644
--- a/src/components/v2/appDetails/k8Resource/nodeDetail/nodeDetail.type.ts
+++ b/src/components/v2/appDetails/k8Resource/nodeDetail/nodeDetail.type.ts
@@ -75,7 +75,7 @@ export interface EphemeralContainerDrawerType {
     switchSelectedContainer: (string) => void
     onClickShowLaunchEphemeral: () => void
     selectedNamespaceByClickingPod?: string
-    handleSuccess: () => void
+    handleSuccess?: () => void
 }
 
 export interface ResponsePayload {
diff --git a/src/components/v2/appDetails/k8Resource/utils.tsx b/src/components/v2/appDetails/k8Resource/utils.tsx
index 5c8fefa9a5..8017bc1706 100644
--- a/src/components/v2/appDetails/k8Resource/utils.tsx
+++ b/src/components/v2/appDetails/k8Resource/utils.tsx
@@ -1,4 +1,18 @@
-import { Node, NodeFilters } from '@devtron-labs/devtron-fe-common-lib'
+import { AppType, Node, NodeFilters } from '@devtron-labs/devtron-fe-common-lib'
+import { ApplicationsGAEvents } from '../constants'
 
 export const doesNodeSatisfiesFilter = (node: Node, filter: string) =>
     node.health?.status.toLowerCase() === filter || (filter === NodeFilters.drifted && node.hasDrift)
+
+export const getApplicationsGAEvent = (appType: AppType) => {
+    switch (appType) {
+        case AppType.DEVTRON_HELM_CHART:
+            return ApplicationsGAEvents.REFRESH_HELM_APP_RESOURCE_TREE
+        case AppType.EXTERNAL_ARGO_APP:
+            return ApplicationsGAEvents.REFRESH_ARGO_APP_RESOURCE_TREE
+        case AppType.EXTERNAL_FLUX_APP:
+            return ApplicationsGAEvents.REFRESH_FLUX_APP_RESOURCE_TREE
+        default:
+            return ApplicationsGAEvents.REFRESH_DEVTRON_APP_RESOURCE_TREE
+    }
+}