Datana × GPJ · Analytics project

From a working POC to answers in Slack

Where the analytics build stands today, what it enables next inside Slack, and the long-term data platform that lets it scale.

1 · Current state

The proof of concept

Finance data from Deltek and salary data from ADP flow into Salesforce Data 360, where they are governed, and then appear in a Tableau dashboard for leadership.

DeltekFinance, revenue & jobsDatabase backupUNBLOCKEDADPEmployee ID + salaryStructured exportACCESS PENDINGData 360 · stagingIngestFlow into stagingBUILTMask salariesSecurity layer 1BUILTModelData model objectsIN PROGRESSTableau CloudLeadership dashboardSecurity layer 2NEXT UPLeadershipCost vs revenueby clienthistory once+ monthlydummy filefor nowmasked,modelled datatotals only
How data moves in the POC today. Deltek history loads once and then refreshes monthly. ADP salary data is masked as soon as it lands in Data 360, before it is modelled. Tableau shows leadership totals only.
UnblockedNext upBlockedFuture

Layer 1: masked in Data 360

Salary values are masked as they come in from ADP, before they reach any report or user.

Layer 2: row-level security in Tableau

Dashboard viewers see totals such as cost by client, never an individual's salary.

No new people see real salaries

Datana builds with dummy data. A trusted GPJ person uploads the real export in the same format.

2 · Near-term future state

AI capabilities inside Slack

GPJ already works in Slack, so the answers can live there too. Slackbot, Slack's built-in AI assistant, can now connect to Salesforce products through official connectors (MCP servers). Once connected, people can ask plain-English questions in Slack and get answers from the same governed data the POC is built on.

What we can offer GPJ

Two ways to connect the POC to Slack, both from Salesforce and both respecting each user's existing permissions: Slackbot + Tableau for visual answers from the dashboard's data, and Slackbot + Data 360 for direct questions against the unified data. They can run side by side. The main differences are licensing and the kind of answer you get.

SlackA leader asks a questionin a channel or DMSlackbotPicks the right connectorand runs as that userFUTURETableau Cloud + PulseDashboard data and Pulse metricsRow-level security appliesIN PLACEData 360Unified, masked POC dataSalesforce permissions applyPOC BUILDquestionanswer + chartTableauconnectorData 360connectorPulse digests post to Slack · available today
Slackbot sends each question to Tableau Cloud or Data 360 as the person asking, so they only see what they already have access to. Pulse digests can already post to Slack today, since GPJ has Tableau Cloud with Pulse.
# leadership Slackbot + Tableau
L
Leader 9:02 AM
@Slackbot which clients had the lowest margin last quarter?
AI
Slackbot 9:02 AM
Client C came in below the 30% target, mainly because of overtime on two jobs. Want the job-level breakdown?
L
Leader 9:04 AM
Yes, and list the jobs on Client C over budget.
AI
Slackbot 9:04 AM
Two jobs are over budget: #40218 (+18% labour) and #40251 (+11%). Both sit in the Chicago office.
Example only. Clients, jobs and figures are made up. The chart comes through Tableau; the job lookup could come from either Tableau or Data 360.

What it adds

  • Answers in the tool people already use every day
  • Plain-English questions, no dashboard training needed
  • Proactive alerts and digests, e.g. when a client's margin drops below target

Next steps to scope it

  • Review GPJ's current Slack plan
  • Confirm who holds Tableau Cloud licences, and whether GPJ is on Tableau+
  • Confirm the Salesforce edition and the Slack connection
  • Agree who can ask about cost and salary-related data

Licensing: what each option needs

Based on Salesforce and Slack documentation as of September 2026. Final pricing to be confirmed with GPJ's Salesforce account team.

Slackbot + TableauSlackbot + Data 360
Best forCharts and KPIs from the dashboard's data model, e.g. margin by clientDirect questions and lookups across the unified data, e.g. a specific job or employee group
Slack planA paid plan with Slackbot. On Business+ each person gets 15 Slackbot messages a week. Enterprise+, or Enterprise Grid / Select with the Slack AI add-on, has no weekly cap. Extra usage can be bought with Salesforce Flex Credits.
SalesforceA Salesforce org on Enterprise Edition or above, connected to Slack. Each person's Slack account is mapped to their Salesforce login.
Product licenceGPJ's Tableau Cloud works with the hosted Tableau connector on any edition. Each person signs in with their own Tableau licence. Pulse metrics are included. AI insight briefs and Tableau Knowledge need Tableau+.Data 360 licence, which GPJ already has for the POC. Each person needs the View Data 360 permission.
Running costCovered by Tableau and Slack licences, plus any Flex Credits used for extra Slackbot messagesData 360 is usage-based, so queries use Data 360 credits. The POC's production data also needs to be ingested (see section 3 on avoiding this)
SecurityRuns as the signed-in user. Tableau row-level security applies.Runs as the signed-in user. Salesforce permissions and Data 360 masking apply.
3 · Long-term future state

One trusted data platform

As more sources are added, such as Salesforce CRM, a central data warehouse becomes the foundation. Data 360 then reads from it without copying the data, so there are no ingestion charges for those sources. The exception is ADP: salary data goes straight into Data 360 through its native connector.

DeltekFinance & jobsSalesforce CRMClients & pipelineOther sourcesAdded over timeADPPayrollDatabricks or SnowflakeData warehouseIngestScheduled pipelinesTransformClean and joinGovernAccess and qualitypipelinesData 360Reads the warehousein place (zero-copy)Masks ADP salariesTableau CloudDashboards + PulseLeadershipSlack answers anddashboards, drilledto job numberzero-copynative ADP connector · salary data skips the warehousegoverned dataSlack AIreports
Business data flows through a single warehouse that Data 360 reads without copying. Salary data takes its own route: straight from ADP into Data 360, where it is masked.

Choosing the warehouse

Both platforms fill the same role, and both connect to Data 360 and Tableau. The choice comes down to how GPJ wants to run it.

DatabricksSnowflake
Both doIngestion and transformation, central governance and masking, zero-copy with Data 360 in both directions, native Tableau connection, built-in AI functions
StrengthFlexibility: heavy data transformation, machine learning and custom AI on open file formatsSimplicity: SQL-first and fully managed, with fast dashboard queries
Best ifGPJ plans significant AI and ML work and has, or will have, data engineering capacityGPJ mainly needs a governed store behind Tableau and Data 360, run by a lean team
Effort to runMore engineering skill neededLittle tuning needed
Cost modelCompute units on top of GPJ's own cloud account. Often cheaper for large pipelinesCompute billed per second. Often cheaper for small, steady workloads

Why a warehouse

AI is only as good as the data behind it. Without one clean, unified source, the same question can get different answers. Every new source adds work, so it pays to put the foundation in early.

Why not just Data 360

Data 360 works best on top of a warehouse. As the main store, it charges to ingest every record. With a warehouse underneath, it reads the data where it sits.

Why ADP goes straight to Data 360

Data 360 has a native ADP connector, so salary data flows in on a schedule with no manual exports. It also stays in one place, where the masking rules already built for the POC apply. It never has to be copied into the warehouse, which keeps the number of places holding salary data to a minimum.

Where it fits

This is a later step. The current POC doesn't need it, and everything built now carries forward.