New Hubspot Module version: Compact vs Display All behavior difference - a bug?

Hello, anyone else using Hubspot modules?

I upgraded from the Legacy modules (v1) to the updated version (v2) and found something odd - writing multi-select options using the Join() function worked in v1 isn’t in v2 when using the “Display All” module view option - why? This seems like an unintended bug.

When updating a record, for example Updating a Deal Object… there is now an option to select the module’s “View Method.” This toggle either shows “All Fields” or a “Compact” view of selected Hubspot Deal object’s data properties.

This is all well and good, but depending on which I select, I am seeing different API behaviors. THIS IS VERY UNEXPECTED

Case in point: when writing multiple-select options from a form (Cognito Forms) to a specific Deal record, I use the Join() function to combine the selected options into a semi-colon separated text string, e.g. “A;B;C”.

This works fine in the old version of the modules, and in the “Compact” view mode, but when I configure the “Display All” mode, the module reports a Bundle Validation error:

“Prohibited value in parameter ‘learning differences_detail’ in position 1.”

This suggests that the text ; is recognized but as an illegal value/syntax error…?

I usually use a “Set Variable” Tool module to parse the values from the form, but in troubleshooting this behavior, I directly typed the options into the property within the module, and when doing so, I see a warning message in red once I introduce a semi-colon (see pic)

Anyone know why this is happening? It seems like a bug.

Thank you!

bumping for attention, plz! :slight_smile:

How does this field look like if you disable the Map function?

Perhaps you can try using an Array Aggregator module with this field?

Every result (item/record) from a iterator module will output a bundle. To “combine” them into a single structure, you’ll need to use an aggregator of some sort.

Aggregators are modules that accumulate multiple bundles into one single bundle. An example of a commonly-used aggregator module is the Array aggregator module.

The Array Aggregator module allows you to build a complex array of collections for a later module’s field to map multiple items (collections) to it.

Here is an example of using the “Target structure type” of an Array Aggregator module:

As you can see, the “Map” toggle on fields are used when you have an array. You can easily build an array variable to map to a field, by using an Array Aggregator module and select the “Target Structure Type” as the future field you want to map the array into.

2 Likes

Thanks @samliew

The target Hubspot property is a multiple-select field. When the Map option is disabled the static selection options are surfaced.

Screenshot 2024-02-15 at 9.55.38 AM

This is an upsert pattern, an aggregator would not address the appending of more than one value. It would overwrite one on top of the other, no?

An array aggregator creates an array, which is what you’ll need if you want to select multiple values dynamically.

2 Likes

@samliew that may be true, but this does not address the question that is specific to the v2 Hubspot modules - why the difference in behavior between dsplay all and compact view modes?

I am not looking for alternative workflow suggestions and am quite familiar with Make’s tools.

I have a workaround - I use a second update module and configure it to NOT use the module’s “Display All” view option. When using the module’s “Compact” view option, the join() function works fine as Make supports semi-colon separated text input, e.g. “a;b;c;d” for an array of values (note: this is just a text semi-colon, not Make’s functional semi-colon: {{;}}).

Thanks, though. Best.