What Is a Relay Pipeline? TUOCA's Automated Conversion Data Pipeline Explained
A relay pipeline is the core automation unit in The Upload Offline Conversions App (TUOCA). It’s an automated data flow that connects a source (where your conversion data lives) to a destination (where your ad platform needs it), with transformation, filtering, and validation steps in between.
Think of a relay pipeline as a bridge between two systems that don’t natively talk to each other — your CRM and Google Ads, your call tracking tool and Meta, your field service software and Microsoft Ads.
The 6-Stage Pipeline
Every relay pipeline in TUOCA follows the same six-stage process:
Stage 1: Fetch
TUOCA connects to your data source API and pulls new records since the last run.
Sources include: CallRail, CallTrackingMetrics, ServiceTitan, Jobber, HubSpot, custom webhooks
Stage 2: Filter
The Filter Builder applies your rules to determine which records qualify for upload.
Example filters:
- Only include calls tagged as “Qualified Lead”
- Exclude records with conversion value < $100
- Only include jobs with status “Completed”
- Exclude test/internal records
Stage 3: Deduplicate
TUOCA checks each record against previously uploaded conversions to prevent double-counting.
Deduplication methods:
- GCLID + conversion action (same click, same action = duplicate)
- Order ID matching
- Phone number + timestamp proximity
Stage 4: Transform
Data is transformed to match the destination platform’s requirements:
- Timestamps converted to platform-specific format
- Phone numbers normalized to E.164
- Email addresses lowercased and trimmed
- PII hashed with SHA-256
- Conversion values mapped to the correct field
Stage 5: Upload
The processed, validated data is sent to the ad platform’s API:
- Google requires the Data Manager API for a new offline or enhanced-conversion upload
- Meta Conversions API
- Microsoft Ads Offline Conversions API
- TikTok Events API
Stage 6: Log
Every record’s outcome is logged in the Activity Logs:
- ✅ Successfully uploaded
- ❌ Rejected (with error code and details)
- ⏭️ Skipped (filtered out or duplicate)
- 🔄 Queued for retry
Pipeline Architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ SOURCE │───▶│ TUOCA │───▶│ DESTINATION │
│ │ │ RELAY │ │ │
│ CallRail │ │ ┌─────────┐ │ │ Google Ads │
│ ServiceTitan│ │ │ Filter │ │ │ Meta │
│ Webhooks │ │ │ Dedup │ │ │ Microsoft │
│ CRM │ │ │Transform│ │ │ TikTok │
│ │ │ │Validate │ │ │ │
└─────────────┘ │ │ Upload │ │ └─────────────┘
│ │ Log │ │
│ └─────────┘ │
└─────────────┘
Relay Types
TUOCA offers two types of relay pipelines:
Standard Relay (1 Source → 1 Destination)
Connects a single data source to a single ad platform:
CallRail → TUOCA → Google Ads
Use case: Phone call conversions from CallRail uploaded to Google Ads with the GCLID captured at call time.
Fusion Relay (2 Sources → 1 Destination)
Combines data from two sources, matches them on a shared identifier, and uploads the merged result:
CallRail (has GCLID + phone) ──┐
├──▶ TUOCA ──▶ Google Ads
ServiceTitan (has phone + $$$) ─┘
Use case: CallRail provides the GCLID (which click generated the call), ServiceTitan provides the revenue (how much the resulting job was worth). TUOCA matches on phone number and uploads GCLID + revenue.
See What Is a Fusion Relay? for details.
Scheduling
Relay pipelines run on configurable schedules:
| Frequency | Best For | Rationale |
|---|---|---|
| Hourly | Emergency services (plumbing, locksmith) | Fast conversion cycles, maximize Smart Bidding freshness |
| Every 6 hours | Home services (HVAC, electrical) | Balances data freshness with API efficiency |
| Daily | Most service businesses | Standard schedule, fresh daily data |
| Weekly | Long sales cycle businesses (B2B) | Sufficient for slow conversion cycles |
Schedule Considerations
- Google Ads: Wait 6 hours after the click before you upload it: a click at 9:00 a.m. is too recent at noon and is ready at 3:00 p.m., and if you upload sooner the error asks you to try again in 12 hours. An hourly relay can still run. It should hold any click that is not yet 6 hours old.
- Meta: Meta rejects a Conversions API request when the event happened more than 7 days before you send it, so a booking from Monday has to be uploaded by the next Monday, unless it is a physical-store sale, which Meta asks you to send within 62 days. Upload at least daily.
Relay Configuration
When creating a relay in TUOCA, you configure:
| Setting | Description |
|---|---|
| Source | Which data source to pull from |
| Destination | Which ad platform to upload to |
| Conversion action | Which conversion action to credit |
| Value field | Which source field maps to conversion value |
| Schedule | How often the relay runs |
| Filters | Which records to include/exclude |
| PII fields | Which fields contain email, phone, name for Enhanced Conversions |
Error Handling
Relay pipelines handle errors at multiple levels:
| Error Level | Handling |
|---|---|
| Source unavailable | Retry with backoff; alert after 3 failures |
| Individual record rejected | Log the error; continue processing remaining records |
| Rate limit hit | Pause and resume after cooldown period |
| Authentication expired | Alert user to re-authenticate (OAuth token refresh) |
| All records failed | Pause relay; alert user; queue for next run |
How Relay Pipelines Differ from Manual Uploads
| Factor | Manual CSV Upload | Relay Pipeline |
|---|---|---|
| Frequency | When you remember | Automatic schedule |
| Data freshness | Days/weeks old | Hours old |
| Error handling | Manual review | Automatic retry |
| PII hashing | Manual or scripted | Automatic |
| Deduplication | Manual checking | Automatic |
| Multi-platform | Upload to each separately | One relay per destination |
| Time per cycle | 30-60 min per client | 0 minutes (automated) |
| Scalability | Breaks at 5-10 clients | Handles 200+ clients |
Getting Started
- Connect a data source — Authenticate your CallRail, CRM, or webhook endpoint
- Connect a destination — Authenticate your Google Ads, Meta, or Microsoft account
- Configure the relay — Map fields, set filters, choose schedule
- Test with dry run — Validate the pipeline without actually uploading
- Activate — The relay runs automatically from here
See Automated Relays for the full product walkthrough.