Inspiration
Clinical trials are an $80+ billion industry, but the currency that matters most isn't money—it's human trust. Currently, safety data is siloed across Electronic Data Capture (EDC) systems, site logs, and spreadsheets. When a safety signal (like a spike in Adverse Events) is missed or delayed, patients get hurt, and life-saving therapies are stalled. We realized that safety teams don't need more reports; they need a Command Center.
We asked: "What if we could detect a safety threat the moment it happens and trigger a compliance action in one click?" That question built VigiLens.
What it does
VigiLens is a closed-loop safety monitoring system that transforms scattered clinical data into immediate action.
Ingests & Harmonizes: It pulls raw data (Adverse Events, Protocol Deviations, Site Training Logs) into Salesforce Data Cloud.
Detects Risk: Using a custom Semantic Model, it calculates a live Risk Signal Score for every trial site.
Visualizes Urgency: The Tableau Next dashboard ranks sites by risk. A dynamic threshold line (CAPA ≥ 15) visually separates normal sites from critical threats (highlighted in red).
Triggers Action: Users click a "Create Risk Action" deep link directly on the dashboard.
Executes Workflow: This launches a Salesforce Flow with context passed automatically (Site Name, Risk Score, AE Counts), creating an audit-ready CAPA (Corrective and Preventive Action) record in the CRM.
How we built it
The architecture relies on the synergy between Salesforce Data Cloud and Tableau Next:
Data Layer: We ingested CSV datasets representing Sites, Patients, and Adverse Events into Data Cloud. We built a Snowflake Schema in the Semantic Model Builder to map relationships (e.g., Adverse_Event →→ Patient →→ Site) while strictly avoiding cyclic conflicts.
Analytics Layer: We used Tableau Next to build the visualizations. We utilized Level of Detail (LOD) calculations or aggregate measures to derive the Risk Signal Score (Sum of Severity Grades).
Integration Layer: The "Magic Button" was built using a URL Action in Tableau. We constructed a dynamic URL that passes dashboard parameters (&riskScore={{value}}) directly into Salesforce Flow variables.
Action Layer: We built a Screen Flow in Salesforce that accepts these input variables, allows for human review ("Human-in-the-Loop"), and commits a Risk_Action__c record to the database for auditability.
Challenges we ran into
Semantic Model Cyclic Conflicts: Early in the build, linking all objects created "Cyclic Dependency" errors. We resolved this by restructuring our graph into a clear hierarchy (Parent-Child) and ensuring all joins flowed upstream to the Site object.
Data Type Mismatches in URL Actions: Salesforce Flow is strict about data types. Tableau was sending "12.0" (decimal) which caused the Flow to crash because it expected an Integer. We solved this by creating a calculated field in Tableau: STR(INT(COUNT([Adverse_Event]))) to sanitize the data before transmission.
Visualizing "Invisible" Risks: Initially, we just listed sites. We realized this wasn't actionable. We added the Reference Line (Threshold = 15) and conditional coloring to create a visual "Call to Action" that judges and users could understand instantly.
Accomplishments that we're proud of
The "One-Click" Integration: We successfully passed data from a Tableau visualization into a Salesforce Flow without any code—just parameter mapping.
The UI Design: Moving away from a cluttered map to a clean, sorted Leaderboard that tells a clear story: "Red means Danger."
Real-World Applicability: This isn't just a toy; the "Insight →→ Action →→ Audit" loop is exactly what FDA/EMA regulators require for clinical oversight.
What we learned
Tableau Next significantly speeds up the modeling phase compared to traditional desktop modeling.
Data Governance: The importance of defining field categories (like Latitude / Longitude) at the Data Lake Object level to ensure downstream tools recognize them correctly.
The Power of Narrative: Tech matters, but connecting the tech to patient safety is what makes the solution valuable.
What's next for VigiLens: Clinical Safety Command Center
Einstein AI: Integrating predictive modeling to flag sites before they breach the threshold based on historical trends.
Slack Integration: Pushing "High Risk" alerts directly to safety monitors' mobile devices via Salesforce Flow.
Geospatial Drill-downs: Re-enabling the global map view with drill-down capabilities for regional monitoring.
Built With
- csv
- data-cloud
- salesforce
- salesforce-flow
- sql
- tableau
Log in or sign up for Devpost to join the conversation.