Voyager usually refers to a specific technical breakdown where data appears to exist in one system but is “invisible” or inaccessible to the other due to synchronization, permission, or schema mismatches. While “Ghost” isn’t an official Yardi product name, the term is frequently used by integration consultants and developers to describe orphaned records or asynchronous failures where the API returns a success code, but the data never actually populates the Yardi UI.
In Yardi integrations, these failures typically stem from three specific architectural bottlenecks:
If you are currently experiencing an API failure where data is missing despite “Successful” logs, follow this hierarchy:
| Step | Action | Objective |
|---|---|---|
| 1 | Check Taskrunner Logs | Verify if the Yardi Taskrunner actually processed the XML/CSV. Often the API “receives” the file, but the Taskrunner fails to “import” it. |
| 2 | Validate Schema Version | Ensure you are using the correct schema (e.g., v4.0 for ILS). Using an outdated schema often causes fields to be dropped silently. |
| 3 | Check Web User Privileges | Ensure the API Web User has “Interface User” checked in the Privileges tab and belongs to a group with specific Read/Write permissions for that module. |
| 4 | Verify Idempotency Keys | If using a modern REST wrapper, check if duplicate headers are causing the Yardi side to ignore the “Ghost” request as a perceived duplicate. |
Case History: An integration pushes 100 residents. The API returns 200 OK. However, because the Property ID in the (Third party Application) didn’t perfectly match the Property_Code in Voyager, the records are stored in a temporary interface table but never “promoted” to the live Resident table. They are “Ghosts”—present in the database but invisible to the property manager.
Issue Fixed: Direct Database Query: checked the Web_Service_Log table to see if the data is stuck there.
Reprocess via Interface: Navigated to Interfaces > Communications > Review within Yardi to manually push “pending” or “failed” records that the API didn’t fully commit.
Recommendations for 100% Quality check
The “Triple-Check” Reconciliation Strategy
To ensure zero data loss, your integration architecture should follow a three-tier validation process.
| Tier | Name | Method | Objective |
|---|---|---|---|
| Tier 1 | Payload Validation | Client-side Schema Enforcement | Ensure data types and formats are perfect before sending. |
| Tier 2 | Interface Verification | Query Yardi Interface Tables | Confirm the data landed in the staging area without “silent” logic errors. |
| Tier 3 | Production Audit | Cross-reference with Live Voyager Tables | 100% confirmation that the record is visible in the UI and reports. |
The “Ghost Integration” phenomenon with Yardi is a masterclass in why API response codes are not the same as database integrity. Achieving a 100% Quality Check requires moving from a “fire and forget” mindset to a “verify and reconcile” architecture.
We practiced these three pillars to prevent future “Ghost” incidents:
Share practical knowledge, emerging trends, and best practices to help you get more value from your real estate technology.