What this scenario does
When the broker workflow creates a deal, it writes 7 complex values (dropdowns, a date, two multi-checkboxes) into single-line-text "Broker WF Helper" staging properties — the only type the workflow can set. This Make scenario reads those staging fields and back-fills the real typed properties, so the deal ends up fully structured for reporting and pricing.
Why there's no AI: the bot now sends valid HubSpot option internal values in the helper fields. So Make just parses the date and passes everything else straight through. Three modules, no AI credits.
Graceful by design: the staging text always stays on the deal. If a value is wrong or Make fails, the typed property blanks out but the raw value is still visible as a fallback — nothing is lost, and the reply email already went out independently.
New broker deal created (with 7 helper text fields populated)
Read the staging values off the new deal
- Connection scopes: deals read + write (read-only 403s on the Update step)
- Watch: Created deals · Limit 2 while testing · Parse Custom Fields: Yes
- Output the 7
__broker_wf_helperfields + the deal Record ID - Polling trigger — only catches deals created after it starts; re-fire to test
Convert the move-in date text into a real date
move_in_date=parseDate(1.move_in_date__broker_wf_helper; "YYYY-MM-DD")- The only transform in the whole scenario
- Confirm the helper actually holds ISO
YYYY-MM-DD— the format string must match
Write all 7 typed properties back onto the same deal
- Deal ID =
{{1.hs_object_id}} - 4 dropdowns + the date variable → mapped straight in
- 2 multi-checkboxes → the
;-separated string drops straight into the property (HubSpot's native storage format — no Iterator needed) - Add a Resume / Ignore error handler so one bad value can't fail the run
Dropdowns, date & multi-checkboxes set · staging text retained as audit trail
Field mapping — 7 helper fields → typed properties
| Helper field (Module 1 reads) | Typed property (Module 3 writes) | Type | Transform |
|---|---|---|---|
move_in_date__broker_wf_helper | move_date | Date | parseDate |
rwe_location_interested_in__broker_wf_helper | location | Dropdown | direct |
product_type__broker_wf_helper | type_of_membership | Dropdown | direct |
current_office__product_type__broker_wf_helper | current_office___product_type__dropdown_ | Dropdown | direct |
current_office__notice__broker_wf_helper | current_office___notice_served_to_provider | Dropdown | direct |
current_office__provider__broker_wf_helper | current_office___provider | Multi-checkbox | passthrough ; |
competitors_for_tours__broker_wf_helper | competitors_for_tours | Multi-checkbox | passthrough ; |
Out of Make scope: nature_of_business (Multi-line text) and all Text / Number / Phone / Rich-text fields populate natively in the HubSpot workflow.
⚠ type_of_membership — internal value ≠ label on 3 options
HubSpot writes dropdowns by internal value, not the display label. The bot's helper field must carry the internal value, or these three blank out silently:
| Deal Product Type (label) | Internal value the bot must send |
|---|---|
| Private Office | Private Office |
| Dedicated Desk | Dedicated Desk |
| Hotdesk | Unlimited Hotdesk |
| Hotdesk - 10 Day | 10 day Hotdesk |
| Virtual Office | Virtual Office |
| Timeshare Private Office | Time Share |
| Day Pass Private Office | Day Pass Private Office |
| Self Contained Office | Self Contained Office |
Allowed option values (copy exact from HubSpot — never retype)
Note: Mindspace IS a valid option on the real account — the demo dropped it, the production filter must keep it.
Silent-fail traps — any mismatch blanks the write with no error
Uncommon (Uncommon)has a double space before the parenthesis.Don't knowapostrophe is curly in some options, straight in others — copy the exact character, never type it.type_of_membershipwrites the internal value (Unlimited Hotdesk / 10 day Hotdesk / Time Share), not the label.- The current-office option is
Hotdesk / All Access Product, not bareHotdesk. - Every dropdown & checkbox is written by internal value, not display label.
Confirm bot-side before go-live
- Bot emits
type_of_membershipinternal values (not labels) - Sample payload sends
current_office__product_type = "Flex / Serviced office"— not a valid option; should beOther Flex - Move-date helper holds ISO
YYYY-MM-DD(drives the parseDate format) location[HIDDEN]entries — internal value may differ from the label