Skip to content
Back to field notes

How I designed ownership rules for a WhatsApp → PMT sync

How do you sync two systems without one wiping out the other’s data?

Context

At AHA Smart Homes, support requests arrive on WhatsApp through Periskope, raised by staff or by Periskope’s AI. The support team then had to retype each one into the internal project tool.

What I tried

  • The first requirement was simple: fill the project tool from Periskope.

What failed

  • A sync that copies everything every time would overwrite the project, project manager, device and assignee the team had already set in the project tool.

What changed

  • Periskope owns the ticket’s status (open or solved). The project tool owns every field the team edits.
  • Tickets are matched on Periskope’s ticket ID before anything is created, so a ticket is never imported twice.
  • Where each ticket came from is stored separately and filtered on the server.

Evidence

  • Re-running the sync updates status and leaves the team’s edits alone.
  • Staff tickets and AI-generated tickets go through the same path.

What I learned

  • Synchronising two systems wasn’t mainly an API problem. It was deciding which system owns which field, and writing that down before writing code.
The full projectWhatsApp Support Ticket Sync