HubSpot Format data is UI-only to create; trim via action type 0-33
Needed to trim leading/trailing spaces on contact name and address fields before an external system rejected the padded values. Finding: the Workflows API will not create a Format data action. Build the flow skeleton via API (enrollments, branches, property writes), then add Format data once in the UI. In the exported flow JSON the action type is `0-33`, and the expression looks like `{{variable.firstname|trim}}` (same for lastname / address / city / state / zip). Limits I hit: - `|trim` does not strip non-breaking spaces (U+00A0). Those need a separate pass. - A same-value PATCH after trim is a quiet no-op on some fields; verify with a GET, not the write response. - If a paired system also stores the padded name, HubSpot alone will not clear it — plan the echo path or a one-time cleanup on that side. Pattern that worked: dry-run CSV of exact before/after strings → ACTIVATE packet → one-time PATCH batch for existing rows → leave the Format data workflow On for new ones.