Jourier's Data Hub sits between My Hours and Tableau. My Hours data flows into the layer continuously (real-time CDC where supported, webhooks and polling otherwise), gets modeled to your business, and surfaces in Tableau as a clean dataset your team can build utilization reporting, project-margin analytics, and capacity dashboards on top of.

For teams that want more than a packaged BI experience, the same Data Hub feeds a bespoke data application coded in React and TypeScript, owned by your team. Tableau runs alongside the bespoke application or in front of it, depending on what each part of the business needs.

Approvals, corrections, and re-approvals in My Hours mean the official number changes after the fact. Jourier's pipeline tracks the version history so reports use approved numbers without losing the raw entry trail for audit.

Extract refresh strategy for My Hours in Tableau matters as data volume grows. Jourier picks the refresh cadence and incremental-extract pattern aligned with how often My Hours data actually changes and how fresh dashboards need to be, rather than defaulting to nightly full refresh that dominates the schedule.

Result: Tableau reports on My Hours read from a layer engineered for utilization reporting, with definitions consistent across reports and across the rest of the operational stack.

Tableau is a per-seat licence model that becomes punishing as your business grows. My Hours reporting locked behind Tableau means every business stakeholder needs a seat, and every change goes through Salesforce's pace. Jourier's bespoke data application, coded in React and TypeScript and owned by your team, replaces Tableau for My Hours on your timeline. The same Data Hub feeding Tableau today feeds the new application tomorrow.

Can I connect My Hours to Tableau through Jourier?

Yes. Jourier builds a bespoke My Hours → Tableau integration through the Data Hub layer. My Hours data is modeled, kept current, and exposed to Tableau as a clean dataset your team can build utilization reporting on top of. The same modeled tables can feed coded React applications and AI assistants alongside Tableau, so the numbers stay consistent regardless of which surface a stakeholder uses. No connector licence fees if you self-host the data layer.

Is the My Hours → Tableau sync real-time?

Where My Hours supports change-data-capture, yes — updates surface in Tableau within seconds. Where it doesn't, scheduled polling and webhooks keep the layer current at the cadence the business actually needs (5 minutes for operational dashboards, hourly for finance, daily for archival). Time to first sync is typically instant to one day. The Data Hub holds the canonical state, so reports and dashboards never read directly from My Hours's API.

What does a My Hours → Tableau engagement cost?

Bespoke project, scoped to the My Hours workflows that matter and the Tableau reports your team actually uses. Pricing is project-based, not subscription-based — a fixed-fee build for the data layer + the Tableau dataset, then optional managed-services if you want Jourier to run it. No per-seat licences from Jourier, no platform fees if you self-host. Tableau licences are paid directly to Salesforce; we never mark them up.

Who owns the My Hours → Tableau integration code?

You do. Pipelines, data model, semantic layer config, Tableau dataset definitions, documentation: all yours. Self-host or have us host. Hand it to another vendor whenever you want, or take it over with your own team. Jourier delivers everything as code in a repository you own, with runbooks for how to operate it. No lock-in, no per-engagement licence.

Can I move off Tableau later but keep the My Hours integration?

Yes. The Data Hub feeds Tableau today, and the same layer feeds open-source dashboards (Apache Superset, Metabase, Grafana), a bespoke React application, or a different vendor BI tool tomorrow. The My Hours side of the integration — the pipeline, the modeling, the access controls — is unchanged when you switch front-ends. Most of our customers keep multiple consumers running in parallel during a transition window.

How long does a My Hours → Tableau engagement take?

First sync of My Hours data is typically instant to one day. A scoped engagement covering My Hours plus the Tableau reports that matter usually runs four to eight weeks. Bigger transformations are split into phases, each shipping value before the next begins. Jourier handles the My Hours pipeline, the modeling, the Tableau dataset, and the access controls. Your team validates the reports and trains the analysts.

Can existing Tableau reports built on My Hours be migrated to the new model?

Usually yes. Most existing Tableau reports become thin wrappers over the new modeled tables — the report logic stays, the data source switches from a direct My Hours connector to the Data Hub. Jourier audits the existing Tableau workspace, identifies what's worth keeping, and rebuilds report-by-report against the new model. Reports that were workarounds for My Hours's data shape get simplified or retired.

How do permissions work for Tableau pulling My Hours data?

Permissions live in the Data Hub, not in Tableau. Each Tableau user authenticates against your identity provider; the dataset that Tableau reads is filtered server-side based on the user's role, region, or department. Tableau's own row-level security still works on top of this. Result: a sales rep in Helsinki and one in New York hitting the same Tableau dashboard see different rows automatically, with the rule defined once in the layer.

Get started

Let’s discuss connecting My Hours to Tableau.

Book a meeting
Aleksi Stenberg Founder & CEO