Turn Tableau Insihts Into Salesforce Action.
We build automated pipelines that take the data your team surfaces in Tableau and write it directly back into Salesforce — triggering flows, updating records, and adding leads to campaigns without a single manual step.
Salesforce Flows
Campaign Automation
Lead Management
Write-Back Pipelines
Bi-Directional Sync
From Tableau click to Salesforce record — automatically.
Tableau’s External Actions API lets users trigger Salesforce operations directly from a dashboard. We design, build, and deploy the full pipeline — the Tableau action, the API bridge, and the Salesforce Flow logic.
Add Leads to Campaign
From Tableau Data Collection
A production Salesforce Flow we built that receives Lead IDs and Campaign IDs from Tableau, loops through both collections, validates the records, and creates CampaignMember records — without duplicating any existing memberships.
An analyst selects leads in Tableau and clicks the action. Tableau packages two parallel collections — LeadIDsCollection and CampaignIDsCollection — and sends them to the Salesforce Flow as input variables.
LeadIDsCollection → [“00Q1a00001xyz”, “00Q1a00001abc”, …]
CampaignIDsCollection → [“7011a000001xyz”, “7011a000001abc”, …]
// Index 0 of each collection = one Lead→Campaign pair
The flow iterates through each Lead ID in the collection. On each iteration, it assigns the current Lead ID to LeadIdCurrentIndex and resets the Campaign ID counter before starting the inner loop.
Nested loop over Campaign IDs. A Check Index decision ensures only the matching index pair is processed — so Lead[0] is paired with Campaign[0], Lead[1] with Campaign[1], and so on. Mismatched indices are skipped.
Three separate Get Record elements query Salesforce to retrieve: (1) the Lead record, (2) the Campaign record, and (3) any existing CampaignMember record for this Lead+Campaign combination. All three lookups run before any decisions are made.
Checks that both the Lead and Campaign records were successfully found in Salesforce. If either doesn’t exist, the iteration is skipped safely — preventing flow failures on stale or invalid IDs passed from Tableau.
✓ Both exist → continue
✕ Missing → skip iteration
Checks whether the CampaignMember lookup (from Step 4) returned an existing record. If the Lead is already a member of this Campaign, the flow skips creation — preventing duplicate CampaignMember errors.
✓ Not a member → create
✕ Already a member → skip
Creates the new CampaignMember record in Salesforce, associating the Lead with the Campaign. The record is created with the LeadId and CampaignId from the current loop iteration. The loop then advances to the next pair.
CampaignMember {
LeadId = LeadIdCurrentIndex // from loop
CampaignId = CampaignIdCurrentIndex // matched index
Status = “Sent” // default status
}
Tableau → Salesforce automation
for every use case.
Whether you’re adding leads to campaigns, updating opportunity stages from analytics, or syncing scores back into CRM fields — we build the full pipeline.
Campaign & Lead Automation
Push leads from Tableau dashboards directly into Salesforce campaigns with a single click — exactly like the implementation above. Works with any Salesforce object that supports campaign membership.
- Add leads or contacts to campaigns from dashboard selections
- Duplicate-safe with built-in CampaignMember checks
- Handles bulk collections — hundreds of records per action
Score & Field Write-Back
Surface propensity scores, health scores, or any model output from your Snowflake/Tableau stack back into Salesforce fields — making analytical insights actionable for reps without leaving Salesforce.
- Write any calculated score or field value back to Salesforce
- Scheduled batch write-back or trigger-based real-time sync
- Supports Accounts, Contacts, Opportunities, custom objects
Dashboard-Triggered Flows
Configure Tableau External Actions to fire any Salesforce Flow — creating tasks, sending alerts, updating pipeline stages, or triggering any automation your Salesforce org already supports.
- Any Salesforce Flow can be triggered from a Tableau action
- Pass any data from Tableau as Flow input variables
- Works with existing Flow automations — no rebuild required
Tableau Pulse & DataCloud Integration
Connect Tableau Pulse metrics to your Salesforce DataCloud unified profile — ensuring your AI-powered insights are grounded in governed, consistent data that flows bidirectionally between both platforms.
- Salesforce DataCloud as the single source of truth for Pulse metrics
- Metric definition governance spanning Salesforce and Tableau
- Agentforce-ready data pipeline architecture
Metadata Governance for the Full Stack
Before you write data back into Salesforce, you need to know exactly what you’re writing to and what downstream effects to expect. We establish the metadata documentation and governance that makes write-back safe.
- Salesforce field documentation aligned with Tableau metrics
- Change impact mapping — know what breaks before you change it
- Data dictionary that spans both platforms
Custom Flow Design & Build
Have a specific Tableau→Salesforce automation in mind that doesn’t fit a standard pattern? We design and build entirely custom Salesforce Flows for your use case — from requirements through production deployment.
- Requirements discovery and Flow architecture design
- Build, test, and deploy in sandbox before production
- Full documentation and team handoff
The analytics loop — finally closed.
Built for teams at the intersection
of analytics and CRM.
If your analytics team works in Tableau and your revenue teams work in Salesforce — and those two worlds don’t talk to each other — this is for you.
Ready to close the loop between Tableau and Salesforce?
Tell us what you want to automate — we’ll design the Tableau action, the Flow logic, and the full pipeline from start to finish.