> For the complete documentation index, see [llms.txt](https://docs.anedot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anedot.com/integrations/political-campaign-tools/isp.md).

# ISPolitical

Connect Anedot to ISPolitical to relay donation data for political compliance and campaign reporting from Settings → Integrations → Directory.

> For the complete documentation index, see [llms.txt](https://anedot.gitbook.io/anedot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anedot.gitbook.io/anedot-docs/integrations/political-campaign-tools/isp.md).

## ISPolitical

Connect Anedot to ISPolitical to automatically send donation data, manage pending imports, use URL-based entry forms, and ensure proper configuration for accurate fundraising and compliance reporting.

**ISPolitical** is a web-based fundraising and compliance platform designed for political campaigns and event-based fundraising, offering tools for donation tracking, compliance reporting, and donor management.

### Connecting Anedot to ISPolitical

To connect your Anedot account to ISP:

1. Go to **Settings -> Integrations -> Directory** in your Anedot account.
2. Click **+ New Connection** in the top-right corner.
3. Select **ISPolitical** from the directory.
4. Choose the **Action Pages** you want to sync *(default is all)*.
   * To exclude pages, enter their IDs *(comma-separated)*.
5. *(Optional)* Limit the integration to a specific **Team**.
6. Enter your **ISPolitical Account Name** *(found in the ISP portal)*.
   * Do **not** include "ISP" in the name.
7. Click **Save** to complete the setup.

*You can edit synced pages, Team access, and credentials any time after setup.*

### Data Relays

* Anedot sends data only from direct transactions on **Donation Pages**.
* Fields included:
  * Name
  * Email
  * Address
  * Phone
  * Employer
  * Occupation
* After **5 failed relay attempts**, the integration is marked **Inactive** and stops sending data.

### ISP Data Entry Workflow

#### When you create an ISP integration, Anedot automatically creates a hidden campaign called **"ISP Data Entry"** with a direct entry form at:

```
<env>.com/isp/donations/new?account_uid=<account-uid>
```

#### Form Behavior:

* Accepts manual entries regardless of page setup
* Requires **email or phone** to submit
  * If no phone is provided, Anedot bypasses relaying a placeholder number *(e.g. 000-000-0000)*
* Donations up to **$30,000** are allowed *(verified limit auto-enabled)*

#### Supported URL Parameters:

* `email`, `phone`, `title`, `first_name`, `middle_name`, `last_name`, `suffix`
* `address` or `line_1`, `unit` or `apt` or `line_2`, `city`, `state` *(2-letter code)*, `zip`, `country` *(2-letter code)*
* `amount`, `employer_name`, `occupation`

#### Entering Donations in ISP

1. In ISP, find your desired contact using **Search**.
2. On the contact's details page, click the **Add** menu at the bottom.
3. Choose **"Enter Credit Card (Anedot)"** (label may vary).
   * This redirects you to the pre-filled **ISP Data Entry page** using URL parameters from the selected contact.

#### Where to Find Submissions in ISP:

* Submissions appear in ISP under **Pending Imports**.
* If imports are available, you'll see an **Import block** on the ISP dashboard.
* Click **Click to Process** to review pending data and potential record matches in **Pending Imports Matches**.

> If no Import block is shown, there are no new records. You can also search via **Reports -> Fundraising/Analysis**, filtering by date.

### Field Mapping

#### Relays Fields

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

| Anedot Field                | ISPolitical Field            |
| --------------------------- | ---------------------------- |
| address {city}              | City                         |
| address {line1}             | Line1                        |
| Received via Anedot origin  | Notes                        |
| address {region}            | State                        |
| email                       | Emails EmailAddress          |
| Phone Mobile phoneNumber    | Phones PhoneType PhoneNumber |
| actionPageName              | Source                       |
| employerName                | Company                      |
| address postalCode          | ZipCode                      |
| employerName                | Employer                     |
| lastName                    | LastName                     |
| firstName                   | FirstName                    |
| middleName                  | MiddleName                   |
| prefix                      | NamePrefix                   |
| suffix                      | NameSuffix                   |
| occupation                  | Occupation                   |
| Work                        | AddressType                  |
| donation transaction fields | Transactions                 |
| sourceCode                  | BudgetCategory               |

*URL Parameters listed in the ISP Data Entry Workflow can be added as well.*

### Payload Data

#### Request Headers

```
{}
```

#### Request Body

```json
{"City": "", "Line1": "", "Notes": "Received via Anedot Hosted", "State": "", "Emails": [{"EmailAddress": "admin@anedot.com"}], "Phones": [{"PhoneType": "Mobile", "PhoneNumber": "8559554595"}], "Source": "Feed the Children - March Gala", "Company": "", "ZipCode": "", "Employer": "", "LastName": "Dot", "FirstName": "Annie", "MiddleName": "", "NamePrefix": "", "NameSuffix": "", "Occupation": "", "AddressType": "Work", "Transactions": [{"City": "New Orleans", "Date": "2023-05-11", "Line1": "1340 Poydras St", "Line2": null, "State": "LA", "Amount": 50.0, "ZipCode": "70112", "AddressType": "Home", "NoteForInternal": "FundId:5181b4d8-6075-4c69-8fe7-64d921a86639,FundName:General Fund,InternalIdentifier:1001", "UniqueIdentifier": "731732b4-fa3f-4fd6-bbef-3dfe69ed1442"}], "BudgetCategory": ""}
```

#### Response Body (Success, Donation)

```json
{"id": 123456, "result": true, "success": true, "responseText": null}
```

#### Response Body (Failure, Donation)

```json
{"id": 0, "result": false, "success": false, "responseText": "You have provided invalid credentials or do not have access to this account. Please contact technical support."}
```

#### Response Body (Lead)

```
{}
```

#### Response Status (Success, Donation)

```
201
```

#### Response Status (Failure, Donation)

```
201
```

#### Response Status (Lead)

```
null
```

***

## Agent Instructions

This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

### Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://anedot.gitbook.io/anedot-docs/integrations/political-campaign-tools/isp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language. `goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.anedot.com/integrations/political-campaign-tools/isp.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
