Skip to main content

Constituent Mapping

WeGive donors map to Bloomerang’s Constituent object — individual donors become Type: "Individual", company donors become Type: "Organization".

Push (WeGive → Bloomerang)

Individual donor

PrimaryEmail/PrimaryPhone/PrimaryAddress are only included at all if the donor has that field set — there’s no attempt to send an empty value.

Company donor

Company donors don’t send an email or phone — only FullName and address.
Only one email and one phone sync, each — there’s no secondary email/phone field on either side of this integration. middle_name is the only name field beyond first/last that’s sent.

Address

Only a mailing address syncs — there’s no separate billing-address handling for Bloomerang. The State field is validated against the donor’s country before sending: an invalid state code for that country (e.g. a US state code on a non-US address) is sent as an empty string rather than the actual value, since Bloomerang rejects the whole request with a 400 if it receives one.

Pull (Bloomerang → WeGive)

Constituents are pulled via GET constituents (50 per page, filtered by lastModified) and imported as Donors, matched on bloomerang_id: The mailing address is created or updated from PrimaryAddress the same way on both sides — Country defaults to US if Bloomerang doesn’t supply one.

Matching

Matching is by bloomerang_id only — there’s no email, name, or address-based matching anywhere in this integration. A donor with no bloomerang_id is always created as new on the next push, even if a Constituent with the same email already exists in Bloomerang.

Getting Help