Skip to main content
NationBuilder
Updated over 6 months ago

NationBuilder is a CRM and CMS system used by nonprofits and political organizations.

Connect Anedot to NationBuilder

To connect Anedot to NationBuilder, access the Settings>Integrations>Directory tab within your Anedot fundraising account. Follow the steps below to complete the connection:

  1. Select the Action Pages you would like synced with NationBuilder.

    1. To exclude pages, apply the page IDs separated by commas.

    2. You can also scope the integration to send Team-specific data only.

  2. Apply your Nation Name.

  3. Optionally, you can choose to relay custom field data for funds by selecting the Send Fund Data checkbox. Additional setup is required to relay Fund data; see below.

  4. Optionally, you can choose to relay custom field data for commitment by selecting the Send Commitment Data checkbox. Additional setup is required to relay Fund data; see below.

  5. Click Save.

  6. You will be redirected to NationBuilder to log in and confirm access.

  7. Once confirmed, your connection is complete!

Actions Pages, Teams, and credentials can be modified at any time post-setup.


Setup Custom Hidden Fields in Anedot

NationBuilder specific fields will need to be added a Custom Hidden Fields within the Anedot Action Page Builder in order to be relayed properly.

Below is a list of all Custom Hidden Fields that are supported at this time:

  • note

  • election_cycle

  • election_period

  • election_period_ngp_code

  • is_private

  • membership_name

  • tracking_code_slug

  • actblue_order_number

  • recruiter_name_or_email

Create Custom Hidden Fields in Anedot

To create a Custom Hidden Field within the Anedot Action Page Builder, follow the steps below:

  1. Access the Action Pages>Pages tab within your fundraising account.

  2. Hover over an Action Page, then click Actions>Edit. This will redirect you to the Builder.

  3. Next, access the Form tab within the Builder.

  4. Under Custom Fields, select the field type: Hidden.

  5. You will then be able to enter the field Key (Example: note).

    1. Optionally, enter a Global Value. When a Global Value is added to a Custom Hidden Field, the value will be passed for each submission whenever the hidden field is in use (non-page-specific).

    2. Optionally, enter a Page Specific Value under the Settings>Sharing>Page Specific Values tab in the Builder. When a Page Specific Value is applied, the hidden field value will only be relayed for submissions processed through the specific Action Page.

  6. Click Save.

  7. Next, be sure to click Publish before exiting the Builder.

You may also use URL Parameters to capture data for each of these fields with each submission. Click here to learn more about URL Parameters!


Setup Custom Fields in NationBuilder

In order to relay Fund and/or Commitment custom field data to NationBuilder, custom fields must be set up within NationBuilder.

Donations (Send Fund Data)

Field Name

Slug

Field Type

fund_id

fund_id

Text

fund_internal_identifier

fund_internal_identifier

Text

People (Send Commitment Data)

Field Name

Slug

Field Type

cancelled_on

cancelled_on

Text

created_on

created_on

Text

frequency

frequency

Text

action_page_name

action_page_name

Text

amount

amount

Number

status

status

Text

birthdate

birthdate

Text

Create Custom Fields in NationBuilder

To create custom fields within NationBuilder, follow the steps below:

  1. Access the Settings tab in NationBuilder.

  2. Under Nation defaults, select the Custom Fields tab.

  3. Select the object you would like to add custom fields to.

    1. Donations to Send Fund Data.

    2. People to Send Commitment Data.

  4. Click the New Custom Field button in the top right corner.

  5. Enter the Name, Slug, and Field Type (use the charts above).

  6. Click Create Field to complete the setup.

    If you do not have access to create Custom Fields within NationBuilder, please contact NationBuilder Support directly.


Data Relays

For Financial Pages (Donation Pages), Anedot relays all donation details and custom field information. We also send a "Person" event that creates a new contact in NationBuilder for new donors, or updates an existing contact in for existing donors.

For Non-Financial Pages (Lead Pages), Anedot only relays a "Person" event.

Within NationBuilder, donor information will appear on the NationBuilder Dashboard and in the People tab. Donors with recurring commitments will have a "recurring" tag that is automatically added by NationBuilder on the creation of a new recurring commitment.

Locate Data in NationBuilder

The Dashboard shows a summary of recent donations

The People tab shows a list of donors.

The Membership area (within the People tab) shows a list of memberships (which can be used with the membership_name hidden field).

The Tags area (in the People tab) has a 'recurring' tag used for donors with active recurring commitments.

Custom Field responses in a People record.

Custom Field responses in a Donation record.


Field Mapping

The Anedot Fields match the Submission's Raw Data, and the NationBuilder Fields match the Request Body relay.

Person Fields

Anedot Field

NationBuilder Field

"recurring" or null

tags

email

email

lastName

last_name

firstName

first_name

address {
postalCode
city
region
line1
line2
country }

mailing_address {
zip
city
state
address1
address2
country_code }

birthdate (birthday custom field)

birthdate (birthday custom field response), appears under Demographics

cancelled_on*

cancelled_on (timestamp of when the commitment was cancelled (e.g. 2024-03-29T12:38:38Z))

created_at*

created_on (timestamp of when the commitment was created (e.g. 2024-03-29T12:34:11Z))

frequency*

freuqency (commitment frequency (e.g. monthly))

action_page_name*

action_page_name (name of the commitment's AP (e.g. Page 6))

amount*

amount (commitment amount (e.g. 25))

status*

status (commitment status (e.g. active or inactive))

*Fields associated with the Send Commitment Data functionality.

Donation Fields

Note: The Anedot Fields match the Submission's Raw Data (or the *custom hidden fields) and the NationBuilder Fields match the Request Body relay.

Anedot Field

NationBuilder Field

note*

note

email

email

person {id} (from the NB Person Relay Response Body)

donor_id

election_cycle*

election_cycle

election_period*

election_period

election_period_ngp_code*

election_period_ngp_code

employerName

employer

lastName

last_name

firstName

first_name

is_private*

is_private

membership_name*

membership_name

occupation

occupation

utm_campaign**

mailing_slug

paymentRequests {responseTime}

succeeded_at

donations {
employerAddressPostalCode
employerAddressCity
employerAddressRegion
employerAddressLine1
employerAddressLine2 }

work_address {
zip
city
state
address1
address2 }

amount

amount_in_cents

paymentMethod {
postalCode
city
region
line1
line2
country }

billing_address {
zip
city
state
address1
address2
country_code }

tracking_code_slug*

tracking_code_slug

actblue_order_number*

actblue_order_number

depends on the payment method:
bank_account: "E"
cash: "C"
check: "K"
credit_card: "D"
in_kind: "I"
offline_card or paypal: "O"

payment_type_ngp_code

recruiter_name_or_email*

recruiter_name_or_email

fund_id***

fund_id (fund UID (system generated) (e.g. 52681d6f-a6dd-4103-b84b-ddc0ae2be0a8))

fund_internal_identifier***

fund_internal_identifier (fund internal identifier (set up in Fund Settings, e.g. 1001))

*Custom Hidden Fields must be added to the Anedot Action Page in order to be relayed.

** UTM Campaign can be added to the Page URL in the Action Page Builder.

***Fields associated with the Send Fund Data functionality.


Donation Payload

Request Headers

{
"User-Agent": "Anedot/b17216ad",
"Content-Type": "application/json",
"X-Integration-Id": "n6d219f500afcc547b61c"
}

Request Body

  • Includes Send Fund Data fields (fundID and fundInternalIdentifier). If Send Fund Data is not enabled, the fields are set to null.

{
"donation": {
"note": "Received via Anedot Hosted.",
"email": "[email protected]",
"fundId": "52681d6f-a6dd-4103-b84b-ddc0ae2be0a8",
"donorId": 14579,
"election": {
"cycle": null,
"period": null,
"periodNgpCode": null
},
"employer": null,
"lastName": "Dot",
"firstName": "Annie",
"isPrivate": null,
"membership": {
"name": null
},
"occupation": null,
"mailingSlug": null,
"succeededAt": "2024-03-29T13:18:42.559Z",
"workAddress": {
"zip": null,
"city": null,
"state": null,
"address1": null
},
"amountInCents": 2500,
"billingAddress": {
"zip": "70112",
"city": "New Orleans",
"state": "LA",
"address1": "1340 Poydras St",
"address2": null,
"countryCode": "US"
},
"trackingCodeSlug": "Anedot",
"actblueOrderNumber": null,
"paymentTypeNgpCode": "O",
"recruiterNameOrEmail": null,
"fundInternalIdentifier": "1001"
}
}

Response Body (Success)

  • Includes Send Fund Data fields (fundId and fundInternalIdentifier). If Send Fund Data is not enabled, the fields are set to null.

  • Includes Send Commitment Data fields (cancelledOn, createdAt, frequency, actionPageName, amount, status). Since this payload is for a Donation object, the responses are set to null.

{
"donation": {
"id": 2933,
"note": "Received via Anedot Hosted.",
"donor": {
"id": 14579,
"sex": null,
"note": null,
"tags": [],
"ward": null,
"dwId": null,
"email": "[email protected]",
"party": null,
"phone": "12015550123",
"amount": null,
"mobile": null,
"ngpId": null,
"rncId": null,
"status": null,
"vanId": null,
"employer": null,
"birthdate": "2024-03-29",
"frequency": null,
"lastName": "Dot",
"nbecGuid": null,
"rncRegid": null,
"civicrmId": null,
"createdAt": "2024-03-29T09:18:44-04:00",
"createdOn": null,
"firstName": "Annie",
"occupation": null,
"twitterId": null,
"updatedAt": "2024-03-29T09:18:45-04:00",
"doNotCall": false,
"externalId": null,
"linkedinId": null,
"middleName": "",
"pfStratId": null,
"precinctId": null,
"signupType": 0,
"cancelledOn": null,
"datatrustId": null,
"emailOptIn": true,
"hasFacebook": false,
"isVolunteer": false,
"recruiterId": null,
"twitterName": null,
"cityDistrict": null,
"fireDistrict": null,
"labourRegion": null,
"mobileOptIn": null,
"salesforceId": null,
"stateFileId": null,
"supportLevel": null,
"countyFileId": null,
"doNotContact": false,
"countyDistrict": null,
"primaryAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": "70112",
"city": "New Orleans",
"fips": null,
"zip4": null,
"zip5": "70112",
"state": "LA",
"county": null,
"address1": "1340 Poydras St",
"address2": null,
"address3": null,
"streetName": "Poydras",
"streetType": "St",
"unitNumber": null,
"countryCode": "US",
"carrierRoute": null,
"sortSequence": null,
"streetNumber": "1340",
"streetPrefix": "",
"streetSuffix": null,
"deliveryPoint": null
},
"schoolDistrict": null,
"actionPageName": null,
"federalDistrict": null,
"villageDistrict": null,
"judicialDistrict": null,
"workPhoneNumber": null,
"isTwitterFollower": false,
"schoolSubDistrict": null,
"stateLowerDistrict": null,
"stateUpperDistrict": null,
"profileImageUrlSsl": "https://assets.nationbuilder.com/assets/notifier/profile-avatar.png",
"supranationalDistrict": null
},
"email": "[email protected]",
"amount": "$25.00",
"ngpId": null,
"fundId": "52681d6f-a6dd-4103-b84b-ddc0ae2be0a8",
"donorId": 14579,
"election": null,
"employer": null,
"fecType": "Contribution",
"authorId": null,
"failedAt": null,
"importId": null,
"lastName": "Dot",
"pageSlug": null,
"pledgeId": null,
"createdAt": "2024-03-29T09:18:45-04:00",
"firstName": "Annie",
"isPrivate": null,
"membership": null,
"occupation": null,
"updatedAt": "2024-03-29T09:18:45-04:00",
"canceledAt": null,
"middleName": null,
"checkNumber": null,
"mailingSlug": null,
"succeededAt": "2024-03-29T09:18:42-04:00",
"workAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": null,
"city": null,
"fips": null,
"zip4": null,
"zip5": null,
"state": null,
"county": null,
"address1": null,
"address2": null,
"address3": null,
"streetName": null,
"streetType": null,
"unitNumber": null,
"countryCode": null,
"carrierRoute": null,
"sortSequence": null,
"streetNumber": null,
"streetPrefix": null,
"streetSuffix": null,
"deliveryPoint": null
},
"authorization": null,
"amountInCents": 2500,
"billingAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": "70112",
"city": "New Orleans",
"fips": null,
"zip4": null,
"zip5": "70112",
"state": "LA",
"county": null,
"address1": "1340 Poydras St",
"address2": null,
"address3": null,
"streetName": "Poydras",
"streetType": "St",
"unitNumber": null,
"countryCode": "US",
"carrierRoute": null,
"sortSequence": null,
"streetNumber": "1340",
"streetPrefix": "",
"streetSuffix": null,
"deliveryPoint": null
},
"fecTypeNgpCode": "C",
"paymentTypeName": "Other",
"trackingCodeSlug": "anedot",
"merchantAccountId": null,
"actblueOrderNumber": null,
"paymentTypeNgpCode": "O",
"recurringDonationId": null,
"corporateContribution": false,
"recruiterNameOrEmail": "Annie Dot",
"fundInternalIdentifier": "1001"
}
}

Response Body (Failure)

{
"code": "unauthorized",
"message": "You are not authorized to access this content. Your access token may be missing. The resource owner also may not have a permission level sufficient to grant access."
}

Response Body (Error)

{
"code": "unauthorized",
"message": "You are not authorized to access this content. Your access token may be missing. The resource owner also may not have a permission level sufficient to grant access."
}


Person Payload

Request Headers

{
"User-Agent": "Anedot/b17216ad",
"Content-Type": "application/json",
"X-Integration-Id": "n6d219f500afcc547b61c"
}


Request Body

{
"person": {
"tags": [],
"email": "[email protected]",
"phone": null,
"birthdate": "1995-03-29",
"lastName": "Annie",
"firstName": "Dot",
"mailingAddress": {
"zip": null,
"city": null,
"state": null,
"address1": null,
"address2": null,
"countryCode": null
}
}
}

Response Body (Success)

  • Includes Send Commitment Data fields (cancelledOn, createdAt, frequency, actionPageName, amount, status). If Send Commitment Data is not enabled, the fields are set to null.

{
"person": {
"id": 14579,
"bio": null,
"sex": null,
"demo": null,
"note": null,
"tags": [],
"ward": null,
"dwId": null,
"email": "[email protected]",
"party": null,
"phone": null,
"amount": null,
"author": null,
"church": null,
"email1": "[email protected]",
"email2": null,
"email3": null,
"email4": null,
"emails": [{
"isBad": false,
"isPrimary": true,
"emailNumber": 1,
"emailAddress": "[email protected]"
}],
"locale": null,
"mobile": null,
"ngpId": null,
"parent": null,
"prefix": null,
"rncId": null,
"status": null,
"suffix": null,
"vanId": null,
"ballots": [],
"website": null,
"employer": null,
"isDonor": true,
"language": null,
"religion": null,
"township": null,
"username": null,
"authorId": null,
"bannedAt": null,
"birthdate": "1995-03-29",
"ethnicity": null,
"frequency": null,
"fullName": "Annie Dot",
"importId": null,
"lastName": "Dot",
"meetupId": null,
"nbecGuid": null,
"pageSlug": null,
"parentId": null,
"recruiter": null,
"rncRegid": null,
"civicrmId": null,
"createdAt": "2024-03-29T09:18:44-04:00",
"createdOn": null,
"faxNumber": null,
"firstName": "Annie",
"legalName": null,
"occupation": null,
"phoneTime": null,
"subnations": [],
"twitterId": null,
"updatedAt": "2024-03-29T09:23:20-04:00",
"doNotCall": false,
"externalId": null,
"isDeceased": false,
"isProspect": false,
"linkedinId": null,
"middleName": "",
"pfStratId": null,
"precinctId": null,
"signupType": 0,
"availability": null,
"cancelledOn": null,
"datatrustId": null,
"emailOptIn": true,
"hasFacebook": false,
"homeAddress": null,
"isSupporter": true,
"isVolunteer": false,
"lastCallId": null,
"partyMember": null,
"recruiterId": null,
"twitterName": null,
"workAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": null,
"city": null,
"fips": null,
"zip4": null,
"zip5": null,
"state": null,
"county": null,
"address1": null,
"address2": null,
"address3": null,
"streetName": null,
"streetType": null,
"unitNumber": null,
"countryCode": null,
"carrierRoute": null,
"sortSequence": null,
"streetNumber": null,
"streetPrefix": null,
"streetSuffix": null,
"deliveryPoint": null
},
"cityDistrict": null,
"email1IsBad": false,
"email2IsBad": false,
"email3IsBad": false,
"email4IsBad": false,
"fireDistrict": null,
"isFundraiser": false,
"isMobileBad": false,
"labourRegion": null,
"mobileOptIn": null,
"nbecPrecinct": null,
"precinctCode": null,
"precinctName": null,
"registeredAt": null,
"salesforceId": null,
"stateFileId": null,
"supportLevel": null,
"twitterLogin": null,
"autoImportId": null,
"callStatusId": null,
"childrenCount": 0,
"countyFileId": null,
"doNotContact": false,
"inferredParty": null,
"invoicesCount": null,
"isEarlyVoter": null,
"maritalStatus": null,
"meetupAddress": null,
"previousParty": null,
"priorityLevel": null,
"recruitsCount": 0,
"signupSources": [],
"warningsCount": 0,
"billingAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": "70112",
"city": "New Orleans",
"fips": null,
"zip4": null,
"zip5": "70112",
"state": "LA",
"county": null,
"address1": "1340 Poydras St",
"address2": null,
"address3": null,
"streetName": "Poydras",
"streetType": "St",
"unitNumber": null,
"countryCode": "US",
"carrierRoute": null,
"sortSequence": null,
"streetNumber": "1340",
"streetPrefix": "",
"streetSuffix": null,
"deliveryPoint": null
},
"countyDistrict": null,
"donationsCount": 1,
"isActiveVoter": null,
"lastDonatedAt": "2024-03-29T09:18:42-04:00",
"lastInvoiceAt": null,
"mailingAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": "70112",
"city": null,
"fips": null,
"zip4": null,
"zip5": "70112",
"state": null,
"county": null,
"address1": null,
"address2": null,
"address3": null,
"streetName": null,
"streetType": null,
"unitNumber": null,
"countryCode": null,
"carrierRoute": null,
"sortSequence": null,
"streetNumber": null,
"streetPrefix": null,
"streetSuffix": null,
"deliveryPoint": null
},
"noteUpdatedAt": null,
"primaryAddress": {
"lat": null,
"lng": null,
"lot": null,
"zip": "70112",
"city": null,
"fips": null,
"zip4": null,
"zip5": "70112",
"state": null,
"county": null,
"address1": null,
"address2": null,
"address3": null,
"streetName": null,
"streetType": null,
"unitNumber": null,
"countryCode": null,
"carrierRoute": null,
"sortSequence": null,
"streetNumber": null,
"streetPrefix": null,
"streetSuffix": null,
"deliveryPoint": null
},
"profileContent": null,
"schoolDistrict": null,
"twitterAddress": null,
"twitterWebsite": null,
"unsubscribedAt": null,
"actionPageName": null,
"callStatusName": null,
"facebookAddress": null,
"federalDistrict": null,
"firstDonatedAt": "2024-03-29T09:18:42-04:00",
"firstInvoiceAt": null,
"phoneNormalized": null,
"primaryEmailId": 1,
"profileHeadline": null,
"twitterLocation": null,
"villageDistrict": null,
"voterUpdatedAt": null,
"citySubDistrict": null,
"contactStatusId": null,
"couldVoteStatus": false,
"facebookUsername": null,
"federalDonotcall": false,
"firstProspectAt": null,
"isAbsenteeVoter": null,
"judicialDistrict": null,
"lastContactedAt": null,
"lastContactedBy": null,
"mediaMarketName": null,
"mobileNormalized": null,
"submittedAddress": null,
"workPhoneNumber": null,
"firstRecruitedAt": null,
"firstSupporterAt": "2024-03-29T09:18:44-04:00",
"firstVolunteerAt": null,
"isLeaderboardable": true,
"isProfilePrivate": false,
"lastFundraisedAt": "2024-03-29T09:18:42-04:00",
"nbecPrecinctCode": null,
"registeredAddress": null,
"twitterUpdatedAt": null,
"contactStatusName": null,
"facebookUpdatedAt": null,
"firstFundraisedAt": "2024-03-29T09:18:42-04:00",
"isTwitterFollower": false,
"schoolSubDistrict": null,
"twitterDescription": null,
"facebookProfileUrl": null,
"isDroppedFromFile": null,
"profileContentHtml": null,
"stateLowerDistrict": null,
"stateUpperDistrict": null,
"closedInvoicesCount": null,
"isPossibleDuplicate": false,
"isProfileSearchable": true,
"profileImageUrlSsl": "https://assets.nationbuilder.com/assets/notifier/profile-avatar.png",
"ruleViolationsCount": 0,
"twitterFriendsCount": null,
"donationsRaisedCount": 1,
"inferredSupportLevel": null,
"lastRuleViolationAt": null,
"overdueInvoicesCount": 0,
"supranationalDistrict": null,
"userSubmittedAddress": null,
"capitalAmountInCents": 1500,
"twitterFollowersCount": null,
"invoicesAmountInCents": 0,
"supportLevelChangedAt": null,
"donationsAmountInCents": 2500,
"isIgnoreDonationLimits": false,
"priorityLevelChangedAt": null,
"supportProbabilityScore": null,
"turnoutProbabilityScore": null,
"activeCustomerExpiresAt": null,
"activeCustomerStartedAt": null,
"donationsCountThisCycle": 0,
"isSurveyQuestionPrivate": false,
"outstandingInvoicesCount": null,
"isPermanentAbsenteeVoter": null,
"spentCapitalAmountInCents": 0,
"closedInvoicesAmountInCents": 0,
"donationsRaisedAmountInCents": 2500,
"invoicePaymentsAmountInCents": 0,
"receivedCapitalAmountInCents": 1500,
"donationsPledgedAmountInCents": 0,
"donationsRaisedCountThisCycle": 0,
"donationsToRaiseAmountInCents": 0,
"donationsAmountThisCycleInCents": 0,
"outstandingInvoicesAmountInCents": 0,
"invoicePaymentsReferredAmountInCents": 0,
"donationsRaisedAmountThisCycleInCents": 0
},
"precinct": null
}

Response Body (Failure)

{
"code": "unauthorized",
"message": "You are not authorized to access this content. Your access token may be missing. The resource owner also may not have a permission level sufficient to grant access."
}

Did this answer your question?