I am trying to use the Get Lead Changes API to get all the leads that have changed since the last time I checked for changes. The process seems to work when a date a week in the past is given into the GetActivitiesPagingToken function, but when I pass in a datetime that is just an hour before the current time the GetLeadChanges function sends me back lead change activities that were created up to 16 hours before the passed-in datetime cutoff.
I passed in 4pm UTC Time into the GetActivitiesPagingToken function. For reference my timezone is Eastern Standard Time, so my local time was 3pm and the UTC at the time was 7pm. The results sent back from the GetLeadChanges function included all the events that happened after the given date but also sent back events that had their activityDate set to 3:45am, which was 10 hours before the passed-in datetime cutoff. I looked up the leads with the 3:45am activities and found that the times for the events are logged in marketo as being created at 11:45pm the previous day, which I guess mean that marketo was using my local time to display the date. I then tried to put a cutoff date which was in the future, as 10pm UTC time, and I got the same events from 3:45am. But once I put in a DateTime that was passed 11:59pm UTC that same day, so the next day after 12am UTC, those same activities did not show up in the response anymore.
So my question is why are there activities being sent back that have an activityDate before the cutoff DateTime that I provided. Is this some sort of bug or does the GetLeadChanges function always return all lead changes event from the previous day regardless of which cutoff date you pass into the GetActivitiesPagingToken. That might explain why if I provided a date in the future passed the current day, the activities are no longer sent back.
Does anyone have any idea whats going on?