Skip to main content
Version: 0.4.1

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.
  3. Click Save .
  4. 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 NameSlugField Type
fund_idfund_idText
fund_internal_identifierfund_internal_identifierText

People (Send Commitment Data)

Field NameSlugField Type
cancelled_oncancelled_onText
created_oncreated_onText
frequencyfrequencyText
action_page_nameaction_page_nameText
amountamountNumber
statusstatusText
birthdatebirthdateText

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 FieldNationBuilder Field
"recurring" or nulltags
emailemail
lastNamelast_name
firstNamefirst_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 FieldNationBuilder Field
note*note
emailemail
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
employerNameemployer
lastNamelast_name
firstNamefirst_name
is_private*is_private
membership_name*membership_name
occupationoccupation
utm_campaign**mailing_slug
paymentRequests responseTimesucceeded_at
donations { employerAddressPostalCode employerAddressCity employerAddressRegion employerAddressLine1 employerAddressLine2 }work_address { zip city state address1 address2 }
amountamount_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]](/cdn-cgi/l/email-protection)",
"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]](/cdn-cgi/l/email-protection)",
"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]](/cdn-cgi/l/email-protection)",
"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]](/cdn-cgi/l/email-protection)",
"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]](/cdn-cgi/l/email-protection)",
"party": null,
"phone": null,
"amount": null,
"author": null,
"church": null,
"email1": "[[email protected]](/cdn-cgi/l/email-protection)",
"email2": null,
"email3": null,
"email4": null,
"emails": [`{`
"isBad": false,
"isPrimary": true,
"emailNumber": 1,
"emailAddress": "[[email protected]](/cdn-cgi/l/email-protection)"
`}`],
"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."
`}`

Related Articles

Aegis DonorPerfect Order Desk Trail Blazer Virtuous