Share Via

Tracking MyInsights Dashboard Usage in Veeva CRM: Challenges and Custom Solutions

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:

  1. Add a Hidden CDE: A hidden element is placed on the MyInsights page that fires on page load or user interaction.
  2. 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.
  3. 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

  1. Enables Usage Insights: Understand which dashboards are used and how frequently.
  2. Improves Adoption Visibility: Monitor rep behavior at the individual and account level.
  3. Supports Leadership Decisions: Use real engagement data to refine strategy and messaging.

Best Practices for Custom Tracking

  1. Minimise Front-End Impact: Keep logic light and performance-friendly.
  2. Avoid Redundant Events: Ensure events are triggered only once per relevant action.
  3. Secure Data Flow: Use trusted DataService or Apex APIs.
  4. Structure Data Effectively: Capture consistent fields for accurate reporting.
  5. 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.

Learned something new? Contact us to gain deeper insights and implement these strategies in your company!

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x