When working with a synced Record Type in Appian, I understand that data sync keeps the record data up to date in Appian's cache. However, two things are unclear to me:
- Which smart services automatically trigger a sync when data is written, and which ones require manual intervention?
- If a developer configures a scheduled sync (full or incremental) when setting up the Record Type, does that eliminate the need to worry about which smart services auto-sync or not?
According to Appian's documentation, what is the correct understanding of how these sync mechanisms work together?
When working with a synced Record Type in Appian, I understand that data sync keeps the record data up to date in Appian's cache. However, two things are unclear to me:
- Which smart services automatically trigger a sync when data is written, and which ones require manual intervention?
- If a developer configures a scheduled sync (full or incremental) when setting up the Record Type, does that eliminate the need to worry about which smart services auto-sync or not?
According to Appian's documentation, what is the correct understanding of how these sync mechanisms work together?
Answer
A scheduled sync does not cover every data change. There are three mechanisms and they work independently.
1. Smart services that sync automatically
Only Write Records and Write to Data Store Entity do. When either runs in a process model, Appian detects the change and syncs the affected rows in the record type with no extra configuration.
2. Smart services that do not sync
Appian does not sync updates made through other smart services, plug-ins or external systems. That includes Query Database, Execute Stored Procedure, Call Integration against any web service other than Salesforce, and manual edits in tools like phpMyAdmin or MySQL Workbench. After any of these the record data is stale until something triggers a sync.
3. Scheduled sync (full or incremental)
The scheduled sync exists to pick up changes made by external systems or directly in the source. It does not replace the smart-service sync. If a process runs Execute Stored Procedure and the record type has a daily full sync, the data stays stale from the moment the procedure runs until the sync fires at midnight. That can be hours of outdated data.
The documentation says to schedule full or incremental syncs or use the Sync Records smart service. The scheduled sync is a safety net for external and infrequent changes.
The fix when your smart service does not sync
Put a Sync Records smart service node right after the node that changed the data. It syncs the affected records by their identifiers as soon as the change happens, so the record type stays current without waiting for the schedule.
Summary:
- Write Records: syncs immediately
- Write to Data Store Entity: syncs immediately
- Execute Stored Procedure: no sync. Add a Sync Records node after it
- Call Integration (non-Salesforce): no sync. Add a Sync Records node after it
- Direct database edit (phpMyAdmin and similar): no sync. Rely on the scheduled full or incremental sync
- Scheduled sync: eventual, not immediate. Use Sync Records for writes made inside Appian
Official documentation
Configure Sync Options: https://docs.appian.com/suite/help/26.3/records-data-sync.html
Write Records Smart Service: https://docs.appian.com/suite/help/25.4/Write_Records_Smart_Service.html
Sync Records Smart Service: https://docs.appian.com/suite/help/26.1/Sync_Records_Smart_Service.html