Cross-System Sync Audit

skill

Read two SaaS systems, diff records, and report out-of-sync fields to a file for reconciliation.

Download .md

Cross-System Sync Audit

Read matching records from two SaaS systems, diff their fields, and write a reconciliation report listing every out-of-sync value to a file.

When to use

  • A human asks whether records in two systems (e.g. CRM and billing platform) still match.
  • Before a scheduled reconciliation or after a bulk import, to catch drift.
  • A downstream workflow is failing and stale data in one system is suspected.
  • Recurring hygiene check on customer, contact, or subscription records shared across tools.

Tools

  • http-get — reads records from each SaaS system's REST API.
  • shell-execute — runs a small script to diff the two record sets field by field.
  • write-file — writes the reconciliation report of out-of-sync fields to a file.

Playbook

  1. Confirm with the requester (or the task description) which two systems, which record type, and which fields are in scope for the audit.
  2. Call the first SaaS REST API with http-get (e.g. GET https://api.hubapi.com/crm/v3/objects/contacts). Authentication is injected by the org's Integration row for this host — never ask for, echo, or hardcode credentials. If the call returns 401/403 or no Integration row exists, stop and message a human via send-message asking them to create the Integration, naming the service and required scopes.
  3. Call the second SaaS REST API with http-get in the same way, authenticating via its own Integration row.
  4. If either response is empty or missing expected fields, do not proceed to diffing — treat this as a failure mode and verify the endpoint and parameters first.
  5. Save both raw record sets to intermediate files using write-file so the diff step has stable inputs to work from.
  6. Use shell-execute to run a script that matches records by a shared key (email, external ID, etc.) and compares the in-scope fields, producing a list of mismatches with old/new values per field.
  7. Review the diff output for obvious noise (formatting differences, timezone offsets) and treat only genuine value mismatches as out-of-sync.
  8. Write the final reconciliation report with write-file, listing each mismatched record, the field, and the value in each system, ready for human review.
  9. If the audit reveals records that need correction, do not attempt to fix them directly — no PATCH/PUT/DELETE tool exists. Compile the change list into the same report file and hand off via send-message to a human who can apply the updates.

Failure modes

  • 401/403 response from either system -> missing Integration, escalate via send-message naming the service and required scopes.
  • Empty result from either http-get call -> verify the endpoint and parameters before assuming systems are in sync.
  • Rate limit hit while paging through records -> back off and note the interruption in memory so the audit can resume later.
  • Expected fields missing or the API response shape has changed -> stop and fall back to browser-search to confirm current API documentation.

Done when

  • A reconciliation report file exists via write-file listing every out-of-sync field between the two systems, or explicitly stating none were found.
  • Any corrections needed have been compiled into that report and handed off to a human, not applied directly.
  • The requester has a clear, file-backed answer to "are these two systems in sync."