Subscription types can't be created or deleted through the API: a POST /communication-preferences/v4/definitions answers 405. They are created one at a time in Settings > Marketing > Email > Subscription Types; reading them works.
Documented and measured
More facts from this area
- "Manage communication subscriptions" is workflow action
0-43347357(v8). Its fields are plain strings:targetContact,channel(EMAIL),optState(OPT_OUTorOPT_IN),subscriptionId,legalBasisandlegalBasisExplanation.Measured GET /communication-preferences/v4/statuses/{email}?channel=EMAILreturnsOBJECT_NOT_FOUNDfor a contact that has no subscription record yet (treat it as never set); after a change it returns one row per type withSUBSCRIBED,UNSUBSCRIBEDorNOT_SPECIFIED.Measured- A per-type status change is
POST /communication-preferences/v4/statuses/{email}with{channel: "EMAIL", subscriptionId, statusState: "UNSUBSCRIBED" | "SUBSCRIBED", legalBasis, legalBasisExplanation}.Measured - Each subscription type has a contact property
hs_email_optout_<id>(the type'sid): a HubSpot-defined, read-only single checkbox labelled "Opted out of email: <name>". The globalhs_email_optoutsits beside them, and workflow filters can use both.Measured - In the "Manage communication subscriptions" workflow action the subscription type is a fixed choice, not a token, so a workflow that must act on different types per record needs one branch and one action per type.Measured
Spriggit uses these facts when it plans changes. See something out of date? Email [email protected]