Group Membership Data Import¶
Group membership subscription import uses the existing contact data import flow in two passes.
First, import the parent group member as a normal row, usually with Type=Company, and include the plan fields needed to create the parent subscription, such as PlanName or PlanId, PlanFee, PlanInverval (the legacy import field name), SubscriptionStartDate, and SubscriptionEndDate.
Second, import each child row with Type=SubMember and AssociatedContactMemberNo set to the parent member number. This links the child contact to the parent contact through OrganisationMembership.ParentOrganisationMembershipId.
Normal membership subscription import remains supported for Type=SubMember rows. Parent subscription linking is applied only when the import row explicitly provides the ParentMembershipId column; that GUID becomes the child subscription's CustomMembership.ParentMembershipId after it is validated against the imported plan.
SubMember rows use the following parent resolution rules:
| Case | Contact import | Contact parent link | Subscription import |
|---|---|---|---|
ParentMembershipId column is not provided |
Imported as SubMember |
Set when the parent contact is found | Created as a normal subscription |
ParentMembershipId references an active, past-due, or scheduled top-level subscription with the same membership fee interval and renewal interval |
Imported as SubMember |
Set when the parent contact is found | Created with CustomMembership.ParentMembershipId |
ParentMembershipId is empty, Guid.Empty, invalid, not found, deleted, a child subscription, in another status, or on a different interval |
Not imported | Not imported | Not imported |
| Parent member number is missing or cannot be found | Imported as SubMember with a warning |
Not set | Normal subscription import continues unless ParentMembershipId is provided |
Non-SubMember rows keep the existing import behavior.