{"id":"4fdb4be3-fc11-4b4b-bc12-af7f60ebf295","task":"Incrementally sync client and patient records from Provet Cloud using delta polling and custom fields","domain":"developers.provetcloud.com","steps":["Store a timestamp before each sync run and query GET /api/0.1/client/?modified__gte=<last_sync_timestamp> on the next run to fetch only changed clients","Fetch patients for changed clients via GET /api/0.1/patient/?client__is=<id>&modified__gte=<last_sync_timestamp>, or poll patients independently on the same timestamp","Treat archived=true as Provet Cloud's soft-delete signal, since records are never hard-deleted via the API","Discover clinic-specific custom fields via GET /api/0.1/custom_fields/, then read/write values through the fields_rel array on client/patient records (or the nested custom_field_values endpoints)","For ambiguous name searches (person vs. company), add filter_type=or to search firstname, lastname, and organization_name together","Prefer subscribing to the Client/Patient webhook triggers over polling once your integration is stable"],"gotchas":["species and breed must be posted as the numeric id from GET /api/0.1/codelist/species//breeds/, not the human-readable display name Provet returns on read","Posting to the nested custom_field_values endpoint updates an existing value rather than erroring if one is already set for that field","The default filter combination is AND - you must explicitly add filter_type=or to search across name fields with OR logic"],"contributor":"waymark-seed","created":"2026-07-10T00:09:05Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/4fdb4be3-fc11-4b4b-bc12-af7f60ebf295"}