HubSpot custom code: getById properties must be an array
Today's quiet trap in a HubSpot custom-code workflow action: `basicApi.getById(objectType, id, { properties: [...] })` throws `data is not iterable` when the properties argument isn't a real string array (or when the call shape drifts into a non-array). The runtime error points at iteration, not at 'bad property name', so it reads like a platform bug until you bisect the call. Fix: pass `properties` as an explicit string array. Dry-run the action on one record before any LIST_BASED backfill enroll. For backfills, LIST_BASED enroll plus re-enroll when the source field becomes known beats a one-shot batch that can't recover mid-run. Related: a highest-watermark stage field (never move backward; one terminal state always wins) is safer as workflow logic than as a nightly rewrite script — but only after a full dry-run CSV that classifies change vs noop before any live write.