Skip to main content
Version: Next

NetFile

NetFile is a political compliance software company that assists with campaign disclosures.


Connect Anedot to NetFile

  1. Go to Settings > Integrations . Click + New Connection and select "NetFile."
  2. Select which Action Pages you would like to sync with NetFile (default: all Action Pages).
  3. Optionally, you can enter a comma separated list of Action Page IDs that you would like excluded from NetFile.
  4. Optionally, you can also scope the integration to only send team-specific data to NetFile (if no team is selected it will sync all Action Pages specified in the fields above).
  5. Enter your NetFile Username .
  6. Enter your NetFile Password .
  7. Enter your NetFIle Account Name .
  8. Optionally, Enter your Bank Account ID .
  9. Once you save the credentials, you are all set!

The Action Pages, Team, and credentials can be modified at any time post-setup.


Data Relays

  • We send relays for financial and non-financial pages.

    • Because NetFile requires that all relays occur within a “session” (similar to web browsing session) we send multiple relays for each submission.

      • The first relay opens the session and returns a sessionID to use for the next 2 or 3 relays depending if a donation is included or not.
      • The second relay sends the donor information using the session ID.
      • (For donations) The third relay sends the donation information using the sessionID.
      • The final relay then closes the session (invalidating that sessionID).
  • Push Unsent (failed donations, all donations) + date range for relays works for all Action Pages, regardless of page type.

  • If there are 5 failed relay attempts in a row, the integration is marked “inactive” and no longer attempts relays.

Please note: we don’t use/record any unique identifier on donors pertaining to Netfile.

  • The request we make is called an “upsert”. That is normally the equivalent of “find and update or create”.

  • We depend on NetFile’s upsert to find or create contributor records. If Netfile cannot “find” a record that does exist (e.g. some data out of sync), Netfile may create duplicate records.

    • The “Merge Entities” data management function on NetFile may need to be used to eliminate duplicate contributor entries.

Data in NetFile

  • Find a gift by searching for contributions.

    • Search fields:

    • Search results:

        • Monetary record (financial transaction (donation)):

          • Non-monetary record (non-financial transaction (submission):


Field Mapping

Donor Fields

Note: The Anedot Fields match the Submission’s Raw Data and the NetFile Fields match the Request Body relay.

Anedot FieldNetFile Field
(Submission) idId
emailEmail
suffixSuffix
“1”Category
employerNameEmployer
“1”IdSource
lastNameLastName
firstNameFirstName
phonePhoneHome
address postalCodeAddressZip
occupationOccupation
address cityAddressCity
address {line1}AddressLine1
address {line2}AddressLine2
address regionAddressState
sessionId (from Relay 1 Response Body )SessionId

Donation Fields

Note: The Anedot Fields match the Submission’s Raw Data and the NetFile Fields match the Request Body relay.

Anedot FieldNetFile Field
(Donation) idId
amount (x100)Amount
(Submission) idEntityId
“1”IdSource
“YYYYMMDD” (Formatted date of relay)BatchNumber
(NetFile field saved in the integration drawer)ElectionYear
(NetFile field saved in the integration drawer)ElectionCycle
createdAtDateDisclosure
“1”EntityIdSource
“1”TransactionType
(NetFile field saved in the integration drawer)BankAccountReference
sessionId (from Relay 1 Response Body )SessionId

Payload Data

Request Headers

`{``}`

Request Body 1 (Opens session)

`{``}`

Request Body 2 (Donor relay)

`{`  
"Items": [`{`
"Id": "de5a291d4d67e4136b879",
"Email": "[[email protected]](/cdn-cgi/l/email-protection)",
"Suffix": null,
"Category": "1",
"Employer": null,
"IdSource": "1",
"LastName": "Dot",
"FirstName": "Annie",
"PhoneHome": "1231231234",
"AddressZip": null,
"Occupation": null,
"AddressCity": null,
"AddressLine1": null,
"AddressLine2": null,
"AddressState": null
`}`],
"SessionId": "aa7e376112be468b9daeb00300bd267b"
`}`

Request Body 3 (Donation relay)

`{`  
"Items": [`{`
"Id": "d915925476d75c84e5e3a",
"Amount": 100.0,
"EntityId": "de5a291d4d67e4136b879",
"IdSource": "1",
"BatchNumber": "20230515",
"ElectionYear": null,
"ElectionCycle": null,
"DateDisclosure": "2023-05-15T14:32:01-04:00",
"EntityIdSource": "1",
"TransactionType": "1",
"BankAccountReference": ""
`}`],
"SessionId": "aad91731fbd64058b338b00300be189e"
`}`

Request Body 4 (Ends session)

`{`  
"SessionId": "aa7e376112be468b9daeb00300bd267b"
`}`

Response Body 1 (Opens session)

`{`  
"account": "ANEDOT",
"lockDate": null,
"userName": "PDIETZEL",
"sessionId": "aa7e376112be468b9daeb00300bd267b",
"futureDate": null,
"responseStatus": null
`}`

Response Body 2 (Donor relay)

`{`  
"items": [`{`
"index": 0,
"action": "Update",
"netFileId": "366",
"submittedId": "de5a291d4d67e4136b879",
"errorMessage": null
`}`],
"failureCount": 0,
"successCount": 1,
"responseStatus": null
`}`

Response Body 3 (Donation relay)

`{`  
"items": [`{`
"index": 0,
"action": "Insert",
"netFileId": "1586",
"submittedId": "d915925476d75c84e5e3a",
"errorMessage": null
`}`],
"failureCount": 0,
"successCount": 1,
"responseStatus": null
`}`

Response Body 4 (Ends session)

`{`  
"responseStatus": null
`}`

Response Status (Success)

200

Response Status (Failure)

500

Related Articles

Blackbaud Raiser's Edge DonorPerfect Iterable Klaviyo MemberPress