Share Via
Tracking MyInsights Dashboard Usage in Veeva CRM: Challenges and Custom Solutions
- Pharmatune
- May 13, 2025
- No Comments
Discover how to track real-time user engagement in MyInsights dashboards when native analytics aren’t yet available. This guide explores a practical workaround using both Custom CDE elements and React-based implementations, helping organisations measure rep interactions and dashboard adoption.
The Problem: Lack of Native Usage Tracking in MyInsights
A recurring question among Veeva CRM teams is:
“Can we track how often reps access specific MyInsights pages and which HCPs are viewed?”
Currently, MyInsights Studio does not provide out-of-the-box (OOB) support to monitor:
- Page views or dashboard clicks
- HCP-level interactions
- Time spent on dashboards
This presents a challenge for leadership teams seeking to measure dashboard effectiveness, rep adoption, and pull-through effort.
Custom CDE-Based Tracking: A Practical Workaround
In the absence of OOB tracking features, teams have successfully implemented tracking by using a custom CDE (Custom Display Element) and a custom Salesforce object.
Here’s how it works:
- Add a Hidden CDE: A hidden element is placed on the MyInsights page that fires on page load or user interaction.
- Create a Custom Object in Salesforce: This object is used to store click-tracking data such as Rep ID, HCP ID, dashboard name, and timestamp.
- Capture the Event: When the CDE is triggered, it writes a record to the object, creating an audit trail of usage.
React-Based Implementation for MyInsights Studio
If you’re building MyInsights dashboards using React.js — especially with MyInsights Studio 2.0 — the same tracking logic can be applied within the React framework:
React Implementation Strategy:
- Use the useEffect or event handler hooks to detect page views or clicks.
- Call a DataService method or invoke a backend Apex service to log the interaction.
useEffect(() => {
const trackingPayload = {
repId: props.repId,
hcpId: props.hcpId,
dashboardName: ‘Market Access Dashboard’,
timestamp: new Date().toISOString()
};
window.ds.createRecord(‘MyInsights_Tracking__c’, trackingPayload); // DataService method
}, []);This approach allows:
- More flexibility with event handling
- Clean integration with modern component structures
- Easier maintenance across multiple dashboards
Whether using Custom CDEs or React components, both solutions ultimately write to a custom Salesforce object, enabling the same level of data visibility.
Key Benefits of These Approaches
- Enables Usage Insights: Understand which dashboards are used and how frequently.
- Improves Adoption Visibility: Monitor rep behavior at the individual and account level.
- Supports Leadership Decisions: Use real engagement data to refine strategy and messaging.
Best Practices for Custom Tracking
- Minimise Front-End Impact: Keep logic light and performance-friendly.
- Avoid Redundant Events: Ensure events are triggered only once per relevant action.
- Secure Data Flow: Use trusted DataService or Apex APIs.
- Structure Data Effectively: Capture consistent fields for accurate reporting.
- Monitor Volumes: Implement batching or limits as needed.
Conclusion
Tracking MyInsights usage is critical for understanding field behavior and dashboard effectiveness. While OOB tools are still in development, teams can implement reliable tracking using Custom CDE elements or React-based logic. Both methods feed usage data into a custom Salesforce object, unlocking the ability to monitor, analyse, and improve MyInsights adoption.
