Conditional Deal updates based on multiple objects, including A-to-B-to-A changes

I’m trying to confirm whether HubSpot supports this write guarantee:

Seven Deal output properties are calculated from the Deal, a linked Task, their associations, owner eligibility, policy state and time-dependent conditions. The outputs should be committed only while that evaluated source state remains valid.

If any relevant source changes before the commit, including A-to-B-to-A changes that restore the original value, the operation must reject the stale calculation before changing even the first output property. Failed attempts and retries must preserve the same guarantee.

The Deal update reference describes a properties map, but I haven’t found a documented operation covering this full condition. Is there a supported API or native workflow operation that does?

If so, could you identify:

  • The operation and input precondition or version token.
  • Which objects, associations, eligibility/policy changes and time-validity conditions it covers.
  • Whether the seven outputs are committed together, with stale-input rejection before any output changes.

If this guarantee isn’t available, which native alternative is supported, and what consistency limits should an implementation expect?

Official reference:
Deal update API

In general, no. There is no guarantee that the data hasn’t changed from the enrollment to action. You would need to add in checks in your workflow to validate the data if such scenarios would happen but if you had delay actions or if HubSpot is having slowness issues, the data could still change. I’ve found that in general, built-in actions do run pretty quickly (vs custom coded actions).

You will notice that actions like Edit Record have an option to clear or replace so previous data is ignored. There is an exception wherein if the data in the field is the same as the data that it wants to set to, the action won’t be executed and will just give a message in the Action Logs that data is already set to X.

Before CRM cards became a thing (especially before the Workflow Card), what my company did was have a property that you could update which would trigger the workflow. A quick flip back and forth on the dropdown was enough to trigger the enrollment and allowed a more “on-demand” system for us.

There isn’t any locking mechanism available in HubSpot although I do wonder if the SQL system would eventually give way to updates via SQL and let you lock properties during the transactions/updates like normal databases.

I was actually curious whether or not Custom Coded Actions pulled updated data or not. The answer is yes. It will pull the updated data.

I created a simple workflow

  1. Enroll
  2. Custom Coded Action that outputs the First Name
  3. Delay 1 minute (during this time, I manually changed the First Name to Michaelz)
  4. Custom Coded Action that outputs the First Name
  5. Delay 1 minute
  6. Update Record to Michaela
  7. Custom Coded Action that outputs the First Name
  8. Delay 1 minute (during this time, I manually changed the First Name to Michaely)
  9. Custom Coded Action that outputs the First Name

In 2, it outputted the original value (Michael)

In 4, it outputted the manually modified value (Michaelz)

In 7, it outputted the updated value (Michaela)

In 9, it outputted the manually modified value (Michaely)