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:
Select the Action Pages you would like synced with NationBuilder.
To exclude pages, apply the page IDs separated by commas.
You can also scope the integration to send Team-specific data only.
Apply your Nation Name.
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.
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.
Click Save.
You will be redirected to NationBuilder to log in and confirm access.
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:
Access the Action Pages>Pages tab within your fundraising account.
Hover over an Action Page, then click Actions>Edit. This will redirect you to the Builder.
Next, access the Form tab within the Builder.
Under Custom Fields, select the field type: Hidden.
You will then be able to enter the field Key (Example: note).
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).
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.
Click Save.
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:
Access the Settings tab in NationBuilder.
Under Nation defaults, select the Custom Fields tab.
Select the object you would like to add custom fields to.
Donations to Send Fund Data.
People to Send Commitment Data.
Click the New Custom Field button in the top right corner.
Enter the Name, Slug, and Field Type (use the charts above).
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 |
lastName | last_name |
firstName | first_name |
address { | mailing_address { |
birthdate (birthday custom field) | birthdate (birthday custom field response), appears under |
cancelled_on* | cancelled_on (timestamp of when the commitment was cancelled (e.g. |
created_at* | created_on (timestamp of when the commitment was created (e.g. |
frequency* | freuqency (commitment frequency (e.g. |
action_page_name* | action_page_name (name of the commitment's AP (e.g. |
amount* | amount (commitment amount (e.g. |
status* | status (commitment status (e.g. |
*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 |
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 { | work_address { |
amount | amount_in_cents |
paymentMethod { | billing_address { |
tracking_code_slug* | tracking_code_slug |
actblue_order_number* | actblue_order_number |
depends on the payment method: | payment_type_ngp_code |
recruiter_name_or_email* | recruiter_name_or_email |
fund_id*** | fund_id (fund UID (system generated) (e.g. |
fund_internal_identifier*** | fund_internal_identifier (fund internal identifier (set up in Fund Settings, e.g. |
*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
andfundInternalIdentifier
). IfSend Fund Data
is not enabled, the fields are set tonull
.
{
"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
andfundInternalIdentifier
). IfSend Fund Data
is not enabled, the fields are set tonull
.Includes
Send Commitment Data
fields (cancelledOn
,createdAt
,frequency
,actionPageName
,amount
,status
). Since this payload is for a Donation object, the responses are set tonull
.
{
"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
). IfSend Commitment Data
is not enabled, the fields are set tonull
.
{
"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."
}