Multi-System Data Normalization: From 150 Fields to 2 Decisions

The Challenge

A B2B service provider had customer records scattered across five different systems:

  • Salesforce (CRM - customer contact info, deal status)
  • Zendesk (support tickets and customer service history)
  • Stripe (billing, subscriptions, payment methods)
  • NetSuite (fulfillment, inventory, shipping)
  • Custom internal tools (specialized workflow management)

Every new deal required someone to manually:

  1. Create the customer record in Salesforce
  2. Copy data to Zendesk for support setup
  3. Set up billing in Stripe
  4. Enter fulfillment details in NetSuite
  5. Configure workflows in custom tools

The problem:

  • 150+ fields to fill across all systems
  • 4+ hours per deal just on data entry
  • Constant mistakes (typos, copy-paste errors, missed fields)
  • No single source of truth (data out of sync within hours)

When deals closed on Friday, they wouldn’t be fully processed until the following Tuesday.

Our Solution

We built an automation system that:

1. Normalizes Data Across All Five Systems

  • Pulls existing data from each system via APIs
  • Maps fields to a unified schema
  • Identifies which data is authoritative for each field
    • Email/contact: Salesforce is source of truth
    • Billing: Stripe is source of truth
    • Support history: Zendesk is source of truth
    • Fulfillment status: NetSuite is source of truth

2. Pre-Fills 95% of Fields Automatically When a deal is marked “Closed Won” in Salesforce, the automation:

  • Extracts all customer data from the deal
  • Checks if customer already exists in other systems
  • Pulls any existing data from Zendesk, Stripe, NetSuite
  • Reconciles conflicts using predefined rules
  • Pre-fills all fields it can determine with certainty

3. Flags Only Ambiguous Cases for Human Review Instead of “fill 150 fields,” the human gets:

  • Field 1: “Customer has two email addresses on file. Which should be primary?”
  • Field 2: “Billing address doesn’t match shipping address. Confirm shipping address for this order.”

The human makes 2-3 judgment calls. The automation handles the rest.

4. Syncs Changes Across All Systems Once the human confirms the ambiguous fields:

  • Creates/updates records in all five systems
  • Ensures data consistency
  • Links related records (Salesforce deal → Stripe subscription → NetSuite order)
  • Triggers downstream workflows automatically

5. Maintains Ongoing Sync After initial setup:

  • Address change in Salesforce? Automatically updates Stripe and NetSuite
  • Support ticket in Zendesk references billing issue? Automatically links to Stripe transaction
  • Subscription cancelled in Stripe? Updates Salesforce deal stage and NetSuite fulfillment

Real Example: Deal Processing Before & After

Before Automation

Sales rep closes deal Friday at 4 PM:

  1. Friday 4:30 PM: Sales rep fills out Salesforce deal (30 min)
  2. Monday 9 AM: Operations team gets notification
  3. Monday 9-11 AM: Ops manually creates records in Zendesk, Stripe, NetSuite, custom tools (2 hours)
  4. Monday 11 AM: Discovers customer email in Salesforce doesn’t match email in old Zendesk tickets
  5. Monday 11:30 AM: After back-and-forth, confirms correct email
  6. Monday 11:30 AM-1 PM: Re-enters data with corrected email (1.5 hours)
  7. Monday 2 PM: Discovers billing address missing a suite number
  8. Monday 2:30 PM: After more back-and-forth, gets correct address
  9. Monday 3-4 PM: Corrects address across all systems (1 hour)
  10. Tuesday morning: Fulfillment can finally start

Total time: 4+ hours of manual work, 3-4 business days to complete

After Automation

Sales rep closes deal Friday at 4 PM:

  1. Friday 4:01 PM: Automation detects “Closed Won” status
  2. Friday 4:02 PM: Automation pulls data from all systems, normalizes, identifies conflicts
  3. Friday 4:03 PM: Ops team gets Slack notification with 2 questions:
    • “Customer has two emails on file. Primary email?”
    • “Billing address missing suite number. Confirm suite number?”
  4. Friday 4:10 PM: Ops team answers two questions (2 minutes of work)
  5. Friday 4:11 PM: Automation updates all five systems
  6. Friday 4:12 PM: Fulfillment workflow automatically triggered

Total time: 2 minutes of human work, 12 minutes end-to-end, same day completion

Technical Implementation

Integration Layer:

  • APIs for Salesforce, Zendesk, Stripe, NetSuite
  • Webhook listeners for real-time events
  • Custom connectors for internal tools

Data Normalization Engine:

  • Schema mapping (each system’s fields → unified model)
  • Conflict detection rules
  • Data quality scoring
  • Intelligent field population

Human-in-the-Loop Interface:

  • Slack integration for quick decisions
  • Web dashboard for bulk review
  • Mobile-friendly for on-the-go approvals

Deployment:

  • Runs on client’s AWS infrastructure
  • All code versioned in client’s GitHub
  • Full documentation and runbooks
  • Monitoring and alerting built-in

Results

Before Automation:

  • 4+ hours per deal on data entry
  • 80+ data entry errors per month
  • 3-4 day delay from deal close to fulfillment start
  • Constant firefighting (wrong addresses, duplicate records, data conflicts)

After Automation:

  • 15 minutes per deal (mostly automation runtime, ~2 min human input)
  • Error rate dropped 80% (only human-confirmed fields have errors, and those are rare)
  • Same-day processing (deal closes, fulfillment starts within hours)
  • Proactive conflict detection (issues flagged before they cause problems)

Team Impact:

  • Operations team went from 30+ hours/week on data entry to <5 hours/week
  • Freed up time for high-value work (process improvement, customer success)
  • Employee satisfaction up (nobody likes copying data between systems)

Business Impact:

  • Faster time-to-revenue (fulfillment starts same day instead of 3-4 days later)
  • Better customer experience (fewer errors, faster onboarding)
  • Scalability unlocked (can handle 10x deal volume without adding ops headcount)

Key Takeaway

Most teams don’t drown in rows; they drown in columns.

You’re not managing millions of records. You’re managing 200 records with 150 fields each, scattered across five systems that don’t talk to each other.

The solution isn’t hiring more people to copy-paste data. It’s automation that:

  1. Normalizes schemas across systems
  2. Pre-fills everything it can determine with certainty
  3. Only asks humans to confirm genuinely ambiguous cases
  4. Maintains sync going forward

It’s the difference between “fill these 150 fields” and “confirm these 2 details so the automation can finish.”

Let’s automate your data workflows