Constituent date_modified returning more records than we updated

Is there a process running on the back end updating the datemodified record? We only updated one record on the given day, but API returns 100+ records where the datemodified date shows updated to with that same date that we never updated from the database view. We are trying to run an integration process to pick up and record changed using the date_modified field, unless there is another field we should be using instead?

Comments

  • The date_modified field that SKY API uses is different than the one you see in database view, and it can be updated by a variety of things you may not expect. For instance, I believe running certain types of queries on records will cause their date_modified field to update in the API.

  • Is the last date change on the database view available in the SKY API to use? If so, do you know the name of the field? Thanks.

  • As far as I know, the database last modified field is not represented in SKY API.

  • Hi Ben, thanks for the input and quick response. Is there any other method or best practice to isolate when a record has been modified via the API? Especially with the pull thresholds limited by the SKY APIs, it doesn't seem very efficient or cost effective to pull all data on the API.

  • It depends a lot on what you're trying to do. If you're trying to keep a synchronized copy of your data somewhere else, and are doing some sort of nightly sync process, there are endpoints that allow you to return all constituents modified after a certain date. This gives you up to 5000 records per call, so it doesn't use much of your allotment. There are similar endpoints that can return multiple relationships, gifts, etc.

    If you want to take an action every time a constituent is modified, you might look into the webhooks instead.

    We do a little of both, and we haven't had any issues with hitting our API daily limits. Of course if you have a larger/busier database than we do, your mileage may vary.

  • We are trying to move records (Constituent, Gifts… etc.) from RE into another system via API. We were told by Blackbaud that a SQL connection would not be feasible to use to get the data. Identifying when the RE record last updated by the actual users in RE is what we are looking to use for a daily data integration run.

  • Take a look at the Constituent list endpoint. You can fetch up to 5000 changes in one call and use sort tokens when you make your next call to ensure you haven't missed any changes. This will save you a lot of API calls, even if the API reports more records having changed than Database does.

    There are similar “list” endpoints available for Gifts, Relationships, etc..