How to Automate Offline Conversion Uploads
Stop manually uploading CSV files. Learn how to automate offline conversion uploads across Google Ads, Meta, Microsoft Ads, and TikTok using The Upload Offline Conversions App's relay pipeline.
Manual CSV uploads worked to prove the concept. Now it’s time to automate. This guide explains how to transition from manual offline conversion uploads to fully automated pipelines using TUOCA’s relay system.
The Problem with Manual Uploads
| Factor | Manual | Automated |
|---|---|---|
| Time per upload | 30-60 min | 0 min |
| Error rate | High (formatting, duplicates) | Near zero |
| Frequency | Weekly/monthly | Hourly/daily |
| Scalability | Breaks at 5+ clients | 200+ clients |
| Multi-platform | Repeat for each platform | One config per platform |
| Consistency | Depends on person | Always runs on schedule |
| Data freshness | Days/weeks old | Hours old |
The Math
20 clients × 2 platforms × 30 min/upload × 4 uploads/month
= 4,800 minutes = 80 hours/month = 1/2 full-time employee
With TUOCA: 0 hours/month after initial setup.
Setting Up Automated Uploads
Step 1: Connect Your Data Sources
In TUOCA, connect each data source you use:
| Data Source | Auth Method | Data Available |
|---|---|---|
| CallRail | API key | Calls, GCLIDs, phone, tags |
| CallTrackingMetrics | API key | Calls, GCLIDs, phone, scores |
| ServiceTitan | API key + tenant | Jobs, invoices, revenue |
| Jobber | OAuth | Jobs, invoices, revenue |
| HubSpot | OAuth | Deals, contacts, lifecycle |
| Webhooks | URL endpoint | Any custom data |
Step 2: Connect Your Destinations
Connect each ad platform:
| Destination | Auth Method | Upload Type |
|---|---|---|
| Google Ads | OAuth | Data Manager API for offline and enhanced conversions |
| Meta | OAuth | Conversions API (CAPI) |
| Microsoft Ads | OAuth | Bing Ads API |
| TikTok | Access token | Events API |
Step 3: Create Relay Pipelines
For each source → destination combination, create a relay:
Relay 1: CallRail → Google Ads (phone call conversions)
Relay 2: CallRail → Meta (phone call conversions)
Relay 3: CallRail + ServiceTitan → Google Ads (Fusion: calls + revenue)
Relay 4: HubSpot → Microsoft Ads (deal conversions)
Step 4: Configure Filters
Use the Filter Builder to control which records upload:
- Call duration > 60 seconds
- Call tag = “Qualified Lead”
- Job status = “Completed”
- Deal stage = “Closed Won”
- Conversion value > $0
Step 5: Set Schedules
| Frequency | Best For |
|---|---|
| Hourly | Emergency services, high-volume |
| Every 6 hours | Standard service businesses |
| Daily | Most businesses (recommended start) |
| Weekly | Low-volume, long sales cycles |
Step 6: Activate and Monitor
- Turn on each relay
- Check Activity Logs after the first run
- Verify conversions appear in ad platform reports
- Set up alerts for failures
Monitoring Automated Uploads
Daily Checks (First Week)
- ✅ Are relays running on schedule?
- ✅ Which rows failed, and can you correct them? There is no published success-rate target. A click-not-found on a lead that never clicked a Google ad is expected.
- ✅ Are conversions appearing in platform reports?
- ✅ Any recurring errors?
Weekly Checks (Ongoing)
- ✅ Upload volume trending correctly?
- ✅ Match rates stable? (For Enhanced Conversions)
- ✅ Any new error patterns?
- ✅ Conversion lag within expectations?
Monthly Review
- ✅ Compare uploaded conversions vs. CRM records
- ✅ Review ROAS trends
- ✅ Optimize filters based on data quality
- ✅ Adjust schedules if needed
From Manual to Automated: Migration Checklist
- ✅ Stop manual uploads (after activating automation)
- ✅ Don’t run both — duplicates will occur
- ✅ Verify the first automated batch matches what you’d have uploaded manually
- ✅ Set up alerts for relay failures
- ✅ Document the configuration for team members
- ✅ Monitor for 2 weeks before trusting fully
Next Steps
- ✅ Connect your data sources in TUOCA
- ✅ Connect your ad platform destinations
- ✅ Create relays with appropriate filters
- ✅ Set daily schedules
- ✅ Activate and monitor the first week
- ✅ Read about Automated Relays and Activity Logs