Troubleshooting Destinations
Destinations send modeled Vendo data to tools such as analytics platforms, ad platforms, messaging tools, and warehouses. Most destination issues come from one of five areas: credentials, identity fields, mappings, schema drift, or sync execution.
Use this guide when a destination sync fails, delivers fewer records than expected, or sends data that does not appear correctly in the downstream tool.
Destination Workflow
A destination sync usually follows this flow:
Source data -> Model or segment -> Identity resolution -> Destination mapping -> Sync job -> Downstream toolIf the output is wrong, work left to right. Confirm the data exists in Vendo before debugging the downstream platform.
Quick Triage
| Symptom | First check |
|---|---|
| Sync does not start | Destination app connection and schedule |
| Sync fails immediately | Credentials, required config, or API permissions |
| Sync succeeds with zero records | Source/model output, filters, segment membership, or identity requirements |
| Records are rejected downstream | Required fields, hashed PII, schema, or consent rules |
| Records appear with wrong properties | Field mapping or source column choice |
| Counts differ from Vendo | Downstream deduplication, identity merge behavior, or platform attribution windows |
Step 1: Check Destination App Health
Open the destination app or integration detail and confirm:
- The app is connected and active
- Credentials have not expired or been revoked
- The destination role is enabled
- The account or project ID is correct
- Required API permissions are granted
If credentials changed in the external tool, reconnect the app before rerunning the sync.
Step 2: Check the Source Output
Confirm the model, segment, or source table contains the rows you expect.
For model-based syncs:
- Open the model output
- Confirm the latest run succeeded
- Check row count and sample rows
- Confirm expected columns exist
For segment-based syncs:
- Open the segment
- Confirm the segment has members
- Check filters and refresh schedule
- Confirm identity fields are populated
For event-based syncs:
- Confirm source syncs are fresh
- Check event name filters
- Confirm timestamp filters do not exclude the expected period
Step 3: Check Identity Fields
Most destinations require at least one stable identifier.
| Destination type | Common required identity |
|---|---|
| Product analytics | user ID, anonymous ID, email, or distinct ID |
| Messaging | email, phone, platform user ID, or subscription ID |
| Ad platforms | hashed email, hashed phone, mobile ad ID, click ID, or conversion ID |
| Warehouses | primary key or event ID |
If records are missing identifiers:
- Check Identity Resolution.
- Confirm the source that provides the identifier is active.
- Confirm the destination mapping points to the resolved identifier.
- Rerun Identity Resolution.
- Rerun the destination sync.
Step 4: Check Field Mapping
Open the destination mapping and verify:
- Required destination fields are mapped
- Source columns are the correct type
- Timestamp fields use the expected timezone
- Numeric fields are not mapped from strings
- Event names match downstream naming conventions
- PII hashing is enabled when required
- Consent or subscription fields are mapped for messaging destinations
If a destination accepts custom properties, start with a small set of high-confidence fields before sending the full model output.
Step 5: Check Schema Drift
Schema drift happens when a source/model output changes after the destination mapping was configured.
Common causes:
- A model column was renamed
- A source table was refreshed with a new schema
- A destination property type changed
- A required field was removed from the model output
- A nested object or array is no longer supported by the destination
What to do:
- Reopen the mapping.
- Look for missing or invalid fields.
- Refresh the source/model schema if available.
- Remap affected fields.
- Validate or run a small test sync.
Step 6: Check Job Logs
Use the job logs to identify where the sync failed:
- Queued: waiting for the orchestrator or schedule
- Running: sync is in progress
- Completed: delivery finished from Vendo’s side
- Failed: configuration, credential, API, schema, or execution error
- Paused: sync is intentionally disabled or blocked after repeated failures
If the job failed, read the first error and the final error. The first error usually points to the root cause; the final error may only show the retry state.
Platform-Specific Notes
Analytics Destinations
Examples: Mixpanel, Amplitude, Segment.
Check:
- Event names are valid
- Distinct/user ID mapping is correct
- Insert ID or event ID is present for deduplication
- Timestamps are not too old for the destination API
- Properties are not nested beyond the destination’s limits
Messaging Destinations
Examples: Klaviyo, OneSignal, Customer.io, Braze.
Check:
- Email, phone, or platform subscription ID is present
- Consent status is respected
- User properties are mapped to supported field names
- Lists, channels, or workspaces are configured correctly
- Suppressed/unsubscribed users are expected to be excluded
Ad Platform Destinations
Examples: Google Ads, Meta Ads, TikTok Ads, Snap Ads.
Check:
- PII is hashed as required
- Click IDs or conversion IDs are mapped when used
- Conversion action or event name exists in the ad platform
- Event timestamps are within platform upload windows
- Consent and regional restrictions are handled correctly
Warehouse Destinations
Examples: BigQuery, S3, warehouse exports.
Check:
- Dataset, bucket, or table permissions
- Service account access
- Partition and write mode
- Table schema compatibility
- File naming and export path
When Counts Do Not Match
Small count differences are normal when downstream tools deduplicate, reject invalid identifiers, apply attribution windows, or delay processing.
Investigate if:
- Vendo completed records are much higher than downstream accepted records
- Rejection counts are increasing over time
- One source or segment suddenly drops to zero
- A schema or mapping changed before the drop
Recovery Checklist
- Confirm destination credentials are active.
- Confirm source/model output has rows.
- Confirm required identity fields exist.
- Confirm destination mappings are valid.
- Rerun Identity Resolution if resolved IDs are required.
- Run a small test sync if possible.
- Rerun the full sync.
- Monitor the next scheduled job.