Bulk edits: DateModified and job.updated each miss different changes

Posts about the simPRO API. Help/support/how-to etc.
Forum rules
  • Check the documentation first. Before posting questions, please check the documentation to ensure it doesn't already cover what you need.
  • No spam. All automated messages, advertisements, and links to competitor websites will be deleted immediately.
  • Post in relevant sub-forums only. Messages posted in the wrong topic area will be removed and placed in the correct sub-forum by moderators.
  • Respect other users. No flaming or abusing fellow forum members. Users who continue to post inflammatory, abusive comments will be deleted from the forum after two warnings are issued by moderators.
  • Harassment. No threats or harassment of other users will be tolerated. Any instance of threatening or harassing behavior is grounds for deletion from the forums.
  • Adult content. No profanity or pornography is allowed. Posts containing adult material will be deleted.
  • Bandwidth. All images and signatures must be 500 x 500 pixels or smaller. Posts containing over-sized images and signatures will be removed.
  • Illegal content. No re-posting of copyrighted materials or other illegal content is allowed. Any posts containing illegal content or copyrighted materials will be deleted.
Post Reply
nemanja-elogii
Posts: 15
Joined: Thu Apr 03, 2025 1:34 pm

Bulk edits: DateModified and job.updated each miss different changes

Post by nemanja-elogii » Tue Aug 25, 2026 1:48 pm

We sync jobs into our platform and need to know which jobs changed since our last poll. We use GET /jobs/ with If-Modified-Since. It silently misses changes made via bulk actions in the Jobs list, and the job.updated webhook misses a different set.

Each case below was reproduced on more than one job.
  • Individual job edit - If-Modified-Since catches it, the job log records it, the webhook fires.
  • Bulk add tag - If-Modified-Since misses it. The job log records it and the webhook fires.
  • Bulk change due date - If-Modified-Since catches it and the job log records it, but the webhook does not fire.
  • Bulk change stage - If-Modified-Since catches it and the job log records it, but the webhook does not fire.
Bulk tagging does not update Job.DateModified. After the tag was added, the job still carried the timestamp of an earlier, unrelated edit. The job log recorded the tag change correctly. A request with If-Modified-Since set between those two points returns an empty list, so the job stays invisible to an incremental sync until something else happens to touch it.

Bulk due-date and stage changes do not fire job.updated. Both update DateModified correctly, but no delivery ever arrived, while a bulk tag change on the same build reached the same endpoint almost immediately.

So the two mechanisms fail in opposite directions and neither is a superset of the other. The only thing that caught all of them was polling /logs/jobs/ and pattern-matching the free-text Message field, which means inferring "the due date changed" from English prose. The range of message wordings on a live build is wide, so any change on your side would silently break a customer's sync.

What would help, in order of preference:
  1. Update DateModified on every write path, including the bulk actions, so If-Modified-Since is a reliable change feed. This is the one that matters most to us.
  2. Time granularity on DateLogged filters (currently date-only, a value with a time component is rejected) plus a documented set of log message types.
  3. Change feed endpoint, e.g. GET /jobs/changes?since=<cursor> returning job IDs and changed fields.
Happy to share build, job IDs and exact timestamps with support.

Is there a supported approach we have missed?
SimproAPITeam
Posts: 831
Joined: Wed May 01, 2024 2:31 am

Re: Bulk edits: DateModified and job.updated each miss different changes

Post by SimproAPITeam » Fri Sep 11, 2026 3:55 am

Hi,

Thanks for the detailed report. We have verified the behaviour and can confirm:
  • Bulk add tag not updating DateModified is a defect.
  • Bulk due date change not firing job.updated is a defect. The webhook is currently only sent when the new due date is today or earlier.
  • Bulk stage change not firing job.updated is working as designed. Stage changes emit their own webhook events: job.stage.pending, job.stage.progress, job.stage.complete, job.stage.invoiced and job.stage.archived. Subscribing to those will catch bulk stage changes today.
We have raised a ticket to address the two defects and will update you once a fix is scheduled.
Simpro API Team | Simpro Software Group
Post Reply