Learn how to connect fragmented data sources, automate reporting, and eliminate copy-paste work after your ERP or CRM go-live.
Andrew Grosser
May 19, 2026 • 11 min read
Your company just spent six months implementing a new ERP system. Go-live happened three weeks ago. Now your sales team needs a dashboard showing revenue by region, but the data lives in three places: the new ERP, the old CRM you're still using, and a marketing automation tool that nobody thought to integrate. You're spending 12 hours a week copying data from one system into Excel, manually matching customer IDs, and praying nothing breaks when you refresh the formulas.
This is the post-implementation integration crisis that hits 73% of organizations within the first quarter after ERP go-live. The system works, but the data doesn't flow. Teams revert to spreadsheets. Analysts become human data pipelines. This guide shows you how to fix it—first manually, then with automated workflows that eliminate the copy-paste cycle entirely.
Sourcetable's AI data analyst is free to try. Sign up here.
ERP implementations focus on core financial and operational processes—order management, inventory, accounting. But real business decisions require data from systems outside the ERP scope. Marketing automation tools track lead sources. CRM systems store customer interaction history. E-commerce platforms capture online behavior. Legacy systems hold historical data that didn't migrate.
The integration problem emerges when you need to answer questions like: What's our customer acquisition cost by channel? Which products have the highest lifetime value? How does sales pipeline correlate with actual revenue? These questions require joining data across systems that weren't designed to talk to each other.
| Data Source | What It Contains | Why It's Isolated |
|---|---|---|
| New ERP | Orders, inventory, invoices, GL transactions | Designed for internal operations, not external data |
| CRM (Salesforce, HubSpot) | Leads, opportunities, customer interactions | Sales team owns it, IT doesn't control access |
| Marketing automation | Campaign performance, email metrics, lead scores | Marketing department budget, separate vendor |
| E-commerce platform | Online orders, cart abandonment, product views | Third-party SaaS, limited API access |
| Legacy system | Historical customer data, old product codes | Partial migration, data quality issues |
The manual workaround: export CSV files from each system, open them in Excel, use VLOOKUP or INDEX-MATCH to join customer IDs, copy-paste into a master spreadsheet, create pivot tables for analysis. This takes 8-15 hours per week for a typical analyst. It breaks every time a data structure changes. It introduces errors when IDs don't match perfectly.
Before automation, here's the step-by-step process analysts use to create a unified revenue dashboard. Understanding this workflow reveals where the pain points are—and where automation delivers the biggest time savings.
Log into your ERP and export order data for the current quarter. Typical export: Order ID, Customer ID, Order Date, Product SKU, Quantity, Revenue. This generates a CSV with 5,000-50,000 rows depending on business volume.
Log into your CRM and export customer records. Fields needed: Customer ID, Account Name, Industry, Region, Sales Rep, Customer Since Date. Export size: 2,000-20,000 rows.
Log into marketing automation and export campaign data. Fields: Customer ID (or email), Campaign Name, Channel, Acquisition Cost, First Touch Date. Export size: 10,000-100,000 rows if you track individual interactions.
Time investment: 20-30 minutes per system, including login, filter setup, export wait time, and file download. Total: 60-90 minutes for three systems.
Open each CSV in Excel. The ERP uses customer ID format 'CUST-00123'. The CRM uses 'C123'. Marketing automation uses email addresses. You need a mapping table to join them.
Create a new sheet called 'ID_Mapping'. Manually build a table with three columns: ERP_Customer_ID, CRM_Account_ID, Email. This requires cross-referencing account names between systems or exporting an ID mapping report if your systems support it.
Use VLOOKUP to add standardized IDs to each dataset. In your ERP data sheet, add a column: =VLOOKUP(A2,ID_Mapping!A:B,2,FALSE). Copy this formula down 5,000 rows. Repeat for CRM and marketing data.
Time investment: 45-90 minutes, depending on how many ID mismatches you need to resolve manually. Expect 5-10% of records to have no match and require manual investigation.
Create a master sheet called 'Revenue_Analysis'. Start with your ERP order data. Use INDEX-MATCH to bring in customer attributes from the CRM: =INDEX(CRM_Data!$D:$D,MATCH(B2,CRM_Data!$B:$B,0)). This pulls the Industry field from your CRM data based on matching customer IDs.
Repeat for Region, Sales Rep, and any other CRM fields you need. Each lookup formula adds processing time—5,000 rows with 5 lookup columns means 25,000 formula calculations. On a standard laptop, this takes 2-3 minutes to calculate.
Add marketing attribution data. Use SUMIF to calculate total acquisition cost per customer: =SUMIF(Marketing_Data!$B:$B,B2,Marketing_Data!$E:$E). This sums all campaign costs associated with each customer ID.
Time investment: 60-90 minutes to write formulas, troubleshoot #N/A errors, and verify that lookups return correct data.
Select your master data range. Insert a pivot table. Drag Region to Rows, Revenue to Values, Order Date to Columns (grouped by month). This shows revenue by region over time—the core metric your sales team requested.
Create a second pivot table for customer acquisition cost analysis. Rows: Marketing Channel. Values: Sum of Acquisition Cost, Count of Customers, Sum of Revenue. Add a calculated field for CAC Ratio: =Acquisition Cost / Revenue.
Insert charts: a stacked column chart for revenue by region, a bar chart for CAC by channel. Format axis labels, add data labels, adjust colors to match company branding.
Time investment: 30-45 minutes for pivot table creation and chart formatting.
Next Monday, your sales director asks for updated numbers. You repeat steps 1-4. But this time, the CRM export includes 15 new customers who aren't in your ID mapping table. Your VLOOKUP formulas return #N/A errors. You spend 30 minutes adding the new mappings manually.
The marketing team changed their campaign naming convention. Your SUMIF formulas now miss 20% of the data because campaign names don't match. You spend another 45 minutes investigating and updating formulas.
Total time for manual dashboard refresh: 3-4 hours. Multiply by 4 weeks per month: 12-16 hours of analyst time spent on data plumbing instead of analysis.
The manual process works, but it doesn't scale. When you need to refresh weekly, add new data sources, or serve multiple stakeholders with different reporting needs, automation becomes essential. Here's how to build reusable data pipelines that eliminate the copy-paste cycle.
Instead of exporting CSVs, connect to your data sources through APIs or database connections. Most modern ERP systems (NetSuite, SAP, Oracle) provide ODBC/JDBC database access or REST APIs. CRM platforms like Salesforce and HubSpot have well-documented APIs. Marketing automation tools (Marketo, Pardot, Mailchimp) offer API access on most paid plans.
For database connections, you need: host address, port number, database name, username, and password. Your IT team or system administrator can provide these credentials. Store them securely—never hard-code passwords in scripts or spreadsheets.
Sourcetable connects to 10,700+ data sources including all major ERP, CRM, and marketing platforms. Instead of manually exporting CSVs, you connect once and the platform pulls fresh data automatically. Type 'Connect to Salesforce' or 'Connect to NetSuite' and authenticate through OAuth—your credentials are encrypted and stored securely.
Once connected, use SQL to join data across systems. Here's a query that combines ERP orders with CRM customer data:
SELECT
o.order_id,
o.order_date,
o.revenue,
c.customer_name,
c.industry,
c.region,
c.sales_rep
FROM erp_orders o
LEFT JOIN crm_accounts c
ON o.customer_id = c.account_id
WHERE o.order_date >= '2026-01-01'
ORDER BY o.order_date DESC;
This query returns a unified dataset with order details and customer attributes. The LEFT JOIN ensures you keep all orders even if some customers aren't in the CRM (they'll show NULL values for CRM fields). The WHERE clause filters to current year data.
Add marketing attribution with a second join:
SELECT
o.order_id,
o.revenue,
c.customer_name,
c.region,
m.campaign_name,
m.channel,
m.acquisition_cost
FROM erp_orders o
LEFT JOIN crm_accounts c
ON o.customer_id = c.account_id
LEFT JOIN marketing_campaigns m
ON c.email = m.customer_email;
This query joins three systems in one statement. In Excel, this required three separate sheets with multiple VLOOKUP columns. In SQL, it's a single query that executes in 2-5 seconds for datasets with 100,000+ rows.
Sourcetable's AI writes these SQL queries for you. Instead of learning SQL syntax, you type: 'Show me orders from this year with customer region and marketing channel.' The AI generates the query, executes it across your connected data sources, and returns results directly in the spreadsheet grid.
The real power comes from saving your data integration process as a reusable workflow. Once you've connected your systems and written (or had AI write) the queries that join your data, save that sequence as an automated pipeline.
A typical analyst workflow includes: (1) Connect to data sources, (2) Run queries to join data, (3) Clean and transform results, (4) Create pivot tables and charts, (5) Export or share the final report. Each step takes time when done manually. Workflows automate the entire sequence.
In Sourcetable, workflows turn any AI conversation into a reusable automation. Build your dashboard once by chatting with the AI: 'Connect to my ERP and CRM. Join orders with customer data. Show revenue by region for Q1 2026. Create a pivot table and bar chart.' The platform captures every step—data connections, SQL queries, transformations, visualizations—as a workflow.
Next week, click 'Run workflow' and the entire process executes automatically. Fresh data pulls from your ERP and CRM. The same joins and transformations apply. The pivot table and chart update with current numbers. What took 4 hours manually now takes 30 seconds.
Workflows can run on a schedule. Set your revenue dashboard to refresh every Monday at 8 AM. Your sales team opens the report and sees current data—no manual intervention required.
Schedule options: hourly, daily, weekly, monthly, or custom cron expressions for complex timing. Hourly refreshes work for operational dashboards (inventory levels, order status). Daily refreshes suit most business reporting (sales, marketing, finance). Weekly refreshes handle executive summaries and board reports.
Real-world example: A mid-market SaaS company automated their customer health dashboard. Previously, an analyst spent 6 hours every Friday pulling data from Salesforce, Stripe (billing), and Zendesk (support tickets) to calculate churn risk scores. They built a workflow in Sourcetable that connects all three systems, joins data on customer ID, calculates health scores using Python, and generates a color-coded dashboard. Now it runs automatically every Friday morning. Time saved: 6 hours per week, 24 hours per month, 288 hours per year.
Let's build a complete example: a revenue dashboard that combines ERP order data, CRM customer attributes, and marketing campaign performance. This is the most common post-implementation integration challenge.
Your VP of Sales wants to answer: Which marketing channels drive the highest revenue per customer in the enterprise segment? This requires joining three data sources: ERP (revenue), CRM (customer segment), and marketing automation (channel attribution).
Export orders from ERP (30 min). Export accounts from CRM (20 min). Export campaigns from marketing automation (20 min). Build ID mapping table (45 min). Write VLOOKUP formulas to join data (60 min). Filter to enterprise segment (10 min). Create pivot table by channel (15 min). Calculate revenue per customer (10 min). Build chart and format (20 min). Total: 3 hours 50 minutes.
Connect to your three data sources once (one-time setup). Then describe what you need: 'Show me revenue by marketing channel for enterprise customers in 2026. Include customer count and revenue per customer. Create a bar chart ranked by revenue per customer.'
The AI executes this workflow: (1) Query ERP for orders in 2026, (2) Query CRM for customer segments, (3) Query marketing automation for channel attribution, (4) Join all three datasets on customer ID, (5) Filter to segment = 'Enterprise', (6) Group by marketing channel, (7) Calculate SUM(revenue), COUNT(DISTINCT customer_id), and revenue/customer_count, (8) Generate bar chart sorted by revenue per customer.
Results appear in the spreadsheet in 30 seconds. Save this as a workflow called 'Enterprise Revenue by Channel.' Schedule it to run weekly. Your VP now has a self-updating dashboard that answers their question without analyst involvement.
| Marketing Channel | Total Revenue | Customer Count | Revenue per Customer |
|---|---|---|---|
| Direct Sales | $2,450,000 | 18 | $136,111 |
| Partner Referral | $1,890,000 | 22 | $85,909 |
| Paid Search | $980,000 | 14 | $70,000 |
| Content Marketing | $720,000 | 12 | $60,000 |
| Trade Shows | $540,000 | 9 | $60,000 |
This table reveals that direct sales and partner referrals drive the highest revenue per enterprise customer—$136K and $86K respectively. Paid search delivers lower per-customer value ($70K) but with reasonable volume (14 customers). This insight guides budget allocation: invest more in partner programs, maintain paid search for volume, evaluate whether trade shows justify their cost given lower per-customer returns.
Even with automation, data integration presents recurring challenges. Here's how to solve the most common issues.
Problem: Your ERP uses numeric customer IDs (12345), your CRM uses alphanumeric codes (CUST-12345), and your marketing automation uses email addresses. Joining data requires matching these different identifiers.
Solution: Create a master customer table with all ID formats. Most organizations maintain this in their CRM or data warehouse. Export it once and use it as a lookup table. In SQL, join through this mapping table: FROM erp_orders o JOIN id_mapping m ON o.customer_id = m.erp_id JOIN crm_accounts c ON m.crm_id = c.account_id.
Sourcetable's AI can fuzzy-match records when IDs don't align perfectly. If your systems share customer names or email addresses, the AI can join on those fields and handle minor variations (e.g., 'John Smith' vs 'Smith, John').
Problem: Your ERP updates in real-time, your CRM syncs hourly, and your marketing automation batch-processes overnight. A customer who placed an order this morning appears in the ERP but not in your CRM or marketing data yet.
Solution: Use LEFT JOIN instead of INNER JOIN to keep all ERP records even when CRM/marketing data is missing. Add a 'last_updated' timestamp to track data freshness. In your reports, include a note: 'CRM data current as of [timestamp]' so stakeholders understand the lag.
For critical real-time dashboards, configure your CRM and marketing tools to sync more frequently. Most modern platforms support webhook-based real-time updates instead of batch processing.
Problem: Your CRM contains duplicate customer records—'ABC Corp' and 'ABC Corporation' are the same company but appear as separate entries. When you join with ERP data, some orders match one record and some match the other, splitting revenue across duplicates.
Solution: De-duplicate your CRM data before integration. Most CRM platforms have built-in deduplication tools. In Salesforce, use duplicate rules and matching rules. In HubSpot, use the duplicate management feature. Run deduplication weekly to catch new duplicates.
If you can't clean the source system, handle duplicates in your query: Use GROUP BY to aggregate duplicate records, or write a CASE statement to standardize company names before joining.
Problem: Your marketing team adds a new field to their campaign tracking (e.g., 'sub_channel'). Your automated workflow breaks because it expects the old field structure.
Solution: Write queries that handle schema changes gracefully. Use SELECT * sparingly—specify only the columns you need. Use COALESCE to provide default values when fields are missing: COALESCE(sub_channel, 'Unknown'). Test workflows in a staging environment before deploying to production.
Sourcetable's AI adapts to schema changes automatically. If a field is renamed or a new field is added, the AI detects the change and updates queries accordingly. You can also set up alerts to notify you when data structure changes.
The business case for automation comes down to time savings. Here's a realistic comparison based on a mid-market company (500 employees, $50M revenue) that implemented an ERP three months ago.
| Task | Manual Time (Weekly) | Automated Time (Weekly) | Time Saved |
|---|---|---|---|
| Export data from 3 systems | 90 min | 0 min | 90 min |
| Clean and map customer IDs | 60 min | 0 min | 60 min |
| Write/update join formulas | 75 min | 0 min | 75 min |
| Create pivot tables and charts | 45 min | 30 sec | 44.5 min |
| Troubleshoot errors and mismatches | 50 min | 5 min | 45 min |
| Total per week | 5 hours 20 min | 5.5 min | 5 hours 14.5 min |
| Total per month | 21 hours 20 min | 22 min | 21 hours |
| Total per year | 256 hours | 4.4 hours | 251.6 hours |
251 hours per year equals 6.3 weeks of full-time work. If your analyst earns $75,000 annually (approximately $36/hour), that's $9,058 in annual labor cost saved on a single recurring report. Most organizations have 5-10 critical reports that require multi-source integration. Total savings: $45,000-$90,000 per year in analyst time—time that can be redirected to actual analysis instead of data plumbing.
Automation isn't always the answer. Here's when manual integration makes sense and when you should automate.
One-time analysis: You need to answer a single question that requires joining two datasets. The analysis will never be repeated. Manual export and VLOOKUP takes 30 minutes; setting up automation takes 2 hours. Manual wins.
Data sources change frequently: You're in the middle of a system migration and data structures change weekly. Automated workflows would break constantly. Manual integration gives you flexibility to adapt on the fly.
Small data volumes: You're joining two tables with 50 rows each. VLOOKUP works fine. The overhead of setting up database connections and writing SQL isn't justified.
No API access: Your legacy system doesn't provide database access or API endpoints. The only export option is CSV. Manual integration is your only choice (though you should advocate for system upgrades).
Recurring reports: Any report that needs to be refreshed weekly or more frequently. If you're doing the same integration process more than twice a month, automate it.
Multiple stakeholders: Three different teams need variations of the same integrated dataset. Build one automated pipeline that serves all three use cases instead of three manual processes.
Large data volumes: You're joining tables with 10,000+ rows. Excel formulas slow to a crawl. SQL queries execute in seconds. Automation handles scale better.
Complex transformations: Your integration requires multiple join steps, data cleaning, calculated fields, and aggregations. Manual processes become error-prone. Automated workflows ensure consistency.
Real-time or near-real-time needs: Your operations team needs a dashboard that updates every hour. Manual integration can't keep up. Automation is required.
Here's a step-by-step guide to automating your first post-implementation integration workflow. Start with your most painful recurring report—the one that takes the most time and causes the most frustration.
Before automating, write down every step of your current manual workflow. Which systems do you log into? What filters do you apply during export? Which fields do you need from each system? How do you join the data (which IDs or fields)? What calculations do you perform? What's the final output format?
This documentation serves two purposes: it helps you understand the logic you're automating, and it becomes your testing checklist to verify the automated workflow produces the same results as the manual process.
Contact your IT team or system administrators to get database connection details or API keys for each data source. You'll need: database host/port/name, username/password, or API endpoint URL and authentication token.
For cloud platforms (Salesforce, NetSuite, HubSpot), you typically authenticate via OAuth—no need to share passwords. For on-premise databases, you'll need read-only credentials. Never use admin credentials for reporting connections.
In Sourcetable, connecting to data sources is conversational. Type 'Connect to my Salesforce account' and authenticate through the OAuth popup. Type 'Connect to my NetSuite database' and provide the connection details. The platform stores credentials securely using encrypted escrow—even the server can't access your passwords except during active queries.
Test each connection by pulling a small sample: 'Show me 10 rows from the orders table in NetSuite.' Verify the data looks correct and the fields you need are present.
Describe the join you need: 'Join NetSuite orders with Salesforce accounts on customer ID. Include order date, revenue, account name, and industry. Filter to orders from 2026.' The AI generates the SQL query and executes it.
Review the results. Do the row counts look right? Are customer names matching correctly? Check a few records manually to verify the join is working as expected. If you see mismatches, refine your join condition: 'Join on email address instead of customer ID' or 'Use a fuzzy match on company name.'
Apply the same calculations you used in your manual process: 'Add a column for revenue per customer. Group by industry and calculate total revenue and customer count. Sort by total revenue descending.'
The AI handles aggregations, calculated fields, and sorting. Results appear in the spreadsheet grid where you can review them like any Excel table.
Generate charts to match your manual report: 'Create a bar chart showing revenue by industry. Add a line chart showing monthly revenue trend.' Charts appear directly in the spreadsheet with full interactivity.
Once your report looks correct, save the entire conversation as a workflow. Name it something descriptive: 'Weekly Revenue by Industry Report.' Set it to run every Monday at 8 AM. The workflow will execute automatically, pulling fresh data and updating all calculations and charts.
Share the workbook with your team. They can view the results without needing access to the underlying data sources or understanding SQL. You've transformed a 4-hour manual process into a 30-second automated refresh.
A $200M manufacturing company implemented SAP S/4HANA in January 2026. Go-live was successful for core operations—order processing, inventory management, and financial close all worked as designed. But the business intelligence team hit a wall.
Their executive dashboard required data from five sources: SAP (orders and inventory), Salesforce (customer data), Marketo (marketing attribution), Shopify (e-commerce orders), and a legacy AS/400 system (historical customer data that didn't migrate). Pre-ERP, they had a fragile ETL pipeline built in SSIS that took 18 months to develop and broke every time SAP released a patch.
The BI analyst was spending 15 hours per week manually exporting data, reconciling customer IDs across systems, and updating Excel dashboards. The executive team was making decisions on data that was 3-5 days old because refreshing the dashboard was so time-intensive.
They rebuilt the entire integration workflow in Sourcetable over two days. Connected all five data sources through native integrations and database connections. Built workflows for each executive dashboard: revenue by product line, customer acquisition cost by channel, inventory turnover by warehouse, and sales pipeline by region.
Results: 15 hours per week reduced to 20 minutes (just reviewing automated outputs for anomalies). Dashboards refresh daily instead of weekly. Executives now have current data for Monday morning leadership meetings. The BI analyst redirected saved time to building predictive models for demand forecasting—actual analysis instead of data plumbing.
ROI calculation: 15 hours per week × 50 weeks per year = 750 hours saved. At $65/hour fully loaded cost = $48,750 annual savings. Sourcetable subscription cost: $2,400 per year for their team. Net savings: $46,350 in year one, plus the value of better decision-making from current data.
Research and data sources referenced in this article: