Bug Report: add_smart_list_rule fails for Marketo system boolean fields
What I tested
We were using the MCP to bulk-update smart lists across 59 nested programs in an engagement program. The goal was to add two filters to each smart campaign's smart list: an Email Address filter and a Marketing Suspended filter, then switch the filter logic to ANY.
What worked
Adding string-type filters works great. We successfully added Email Address (not contains, [".edu", ".org"]) across all 59 smart lists using add_smart_list_rule followed by update_smart_list_rule. Filter logic updates via update_smart_list_filter_logic also worked perfectly. This was a huge time saver.
The bug
add_smart_list_rule returns error 709 "Smart List Rule Type Unsupported" for any Marketo system boolean field. We tested:
- Marketing Suspended (id: 85)
- Email Suspended (id: 123)
- Unsubscribed (id: 79)
- Black Listed (id: 87)
- Do Not Call (id: 82)
- Email Invalid (id: 77)
- Email Invalid Cause (id: 78, string type but system-managed)
All return the same 709 error regardless of what we pass for ruleType, index, or isTrigger.
Key finding
Custom boolean fields work fine with the same parameters. We tested CF_First_Gen_Flag (id: 843) and CF_Athletic_Recruit_Flag (id: 808) — both added successfully. So the restriction is specific to Marketo's built-in system fields, not boolean data types in general.
Additional note
Since delete_smart_list_rule is disabled in the beta, there's no API cleanup path when an add fails or leaves a stray rule — it requires manual removal in the Marketo UI. Worth considering alongside this bug since the two issues compound each other.
Expected result: Filter added, same as custom boolean fields
Actual result: 709 "Smart List Rule Type Unsupported"
Workaround: System boolean filters must be added manually in the Marketo UI. We ended up with a hybrid approach — MCP for everything it supports, manual UI work for the blocked fields.