---
title: Campaign Solutions
description: Connect Anedot with Campaign Solutions to automatically send donation data—including custom fields, source codes, and UTM tags—via secure webhook relays for optimized fundraising and advertising.
---

[Skip to content](https://help.anedot.com/knowledge/campaign-solutions#main-content)

[![anedot-logo](https://help.anedot.com/hubfs/anedot-logo.svg)](https://help.anedot.com/knowledge?hsLang=en)

Open main navigation

Close main navigation

- [Get Support ⤴](https://www.anedot.com/getsupport)

[Get Support ⤴](https://www.anedot.com/getsupport)

 Here to help 👋

- There are no suggestions because the search field is empty.

1. [Public Help Center](https://help.anedot.com/knowledge?hsLang=en)
2. [Integrations](https://help.anedot.com/knowledge/integrations?hsLang=en)
3. [Political Campaign Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#political-campaign-tools)

# Campaign Solutions

## Connect Anedot with Campaign Solutions to automatically send donation data—including custom fields, source codes, and UTM tags—via secure webhook relays for optimized fundraising and advertising.

**Campaign Solutions** is a full-service consulting firm specializing in fundraising and advertising strategies for political and nonprofit organizations.

---

### **Table of Contents**

- [Connecting Anedot to Campaign Solutions](https://help.anedot.com/knowledge/campaign-solutions#connect)
- [Data Relay](https://help.anedot.com/knowledge/campaign-solutions#data)
- [Field Mapping](https://help.anedot.com/knowledge/campaign-solutions#field)
- [Payload Data](https://help.anedot.com/knowledge/campaign-solutions#payload)

---

### Connecting Anedot to Campaign Solutions

To integrate your Anedot account with Campaign Solutions, follow these steps:

1. In your Anedot fundraising account, navigate to **Settings \> Integrations \> Directory**.
2. Click the blue **+ New Connection** button in the upper right corner.
3. Choose **Campaign Solutions** from the available directory options.
4. Choose **Action Page(s)**
   
     - All Action Pages are selected by default.
     - To exclude specific pages, enter a comma-separated list of Action Page IDs.
5. (Optional) Restrict integration access to specific **Teams** if needed.
6. Enter the token provided by **Campaign Solutions**.
7. Click **Save** to complete the connection.

> **Integration Endpoint:**  
> `https://csanedotintegration.azurewebsites.net/v1/donation/{account UID}`

*You can edit connected Action Pages, Teams, and credentials at any time after setup.*

---

### Data Relay

Anedot relays **financial page data** to Campaign Solutions using `donation_completed` webhook events. These relays include:

- **Custom Field data**
- **Source Codes**
- **UTM Parameters** included in the URL
- **Request Token**: Sent in the header as required by Campaign Solutions

*Non-financial page data and conduit transactions are not supported at this time.*

Additional features:

- **Push Unsent Donations:** Failed donations or historical data (via date range) can be pushed for all Action Pages, regardless of page type.

---

### Field Mapping

#### **Relay Fields**

The **Anedot fields** correspond to the **Submission's Raw Data**, while the **Campaign Solutions fields** reflect the values included in the **Request Body** of the relay.

| **Anedot Field** | **Campaign Solutions Field** |
| --- | --- |
| “donation\_completed” | event |
| createdAt | date |
| \[firstName\] \[lastName\] | name |
| email | email |
| phone | phone |
| title | title |
| origin *(Donation)* | origin |
| source *(Donation)* | source |
| status *(Donation)* | status |
| suffix | suffix |
| donation \[\*Object includes: {id} fees {anedot} fees {vendor} fund {id} fund {name} fund {identifier} products {name} products {internal identifier} card {type} card {last digits} donation\_project credit\_card\_expiration\] | donation \[object, multiple values\] |
| referrer | referrer |
| utmCodes {term} | utm\_term |
| frequency | frequency |
| lastName | last\_name |
| firstName | first\_name |
| ipAddress | ip\_address |
| amount *(x100)* | net\_amount |
| occupation | occupation |
| updatedAt | updated\_at |
| utmCodes {medium} | utm\_medium |
| utmCodes {source} | utm\_source |
| accountId | account\_uid |
| middleName | middle\_name |
| sourceCode | source\_code |
| utmCodes {content} | utm\_content |
| accountName | account\_name |
| address city | address\_city |
| checkNumber *(Donation)* | check\_number |
| createdAt | date\_iso8601 |
| amount *(x100)* | event\_amount |
| utmCodes {campaign} | utm\_campaign |
| employerName | employer\_name |
| (Submission) id | submission\_id |
| actionPageId | action\_page\_id |
| address {line1} | address\_line\_1 |
| address {line2} | address\_line\_2 |
| address {region} | address\_region |
| (Commitment) id | commitment\_uid |
| address {country} | address\_country |
| actionPageName | action\_page\_name |
| donorProfileId | donor\_profile\_id |
| referrerToForm | referrer\_to\_form |
| amount *(x100)* | amount\_in\_dollars |
| paymentMethodId | payment\_method\_id |
| createdAt | created\_at\_iso8601 |
| currenlyEmployed *(TRUE/FALSE)* | currently\_employed |
| updatedAt | updated\_at\_iso8601 |
| address {postalCode} | address\_postal\_code |
| Payment Method *(donation side-drawer)* | payment\_description |
| custom\_field\_responses \[\*Object includes: {Custom field name} {Custom field response value}\] | custom\_field\_responses \[object, multiple values\] |
| is\_recurring\_commitment *(TRUE/FALSE)* | is\_recurring\_commitment |
| schedule\_until *(Commitment)* | commitment\_recurring\_until |
| communicationsConsentEmail *(TRUE/FALSE)* | communications\_consent\_email |
| communicationsConsentPhone *(TRUE/FALSE)* | communications\_consent\_phone |

*\*\*UTM fields can be **added to the Page URL.***

---

### Payload Data

#### Request Headers

*Campaign Solutions needs the "X-Request-Token" header available on all relays (cannot consume them otherwise).*

```
{  "User-Agent": "Anedot-Hookshot/de1398d",  "X-Request-Id": "f64bec6a-eabc-488c-8389-038888062ac9",  "X-Request-Token": "NUQxNDE5QTUtMjM1OS00MjlDLTlGMUItMjZCMjM0RUI3REQ0",  "X-Integration-Id": "8c35985f-b93b-4ebd-8386-53d517ef9082",  "X-Integration-Event": "donation_completed",  "X-Request-Signature": "65e28531c016f8cbe5cc42b3c4cd6c9476f895a11e3df7084e23f2951c922c7f"}
```

#### Request Body

```
{  "event": "donation_completed",  "payload": {    "date": "2023-04-10 17:28:17 UTC",    "name": "Annie Dot",    "email": "admin@anedot.com",    "phone": "",    "title": "",    "origin": "hosted",    "source": "credit_card",    "status": "completed",    "suffix": "",    "donation": {      "id": "d7caaa29e25a58a2fbc8f",      "fees": {        "anedot_fees": {          "amount": "8.30"        },        "vendor_fees": []      },      "fund": {        "id": "2a07f830-da46-42a9-94e8-52f3e6e3dc79",        "name": "General Fund",        "identifier": "1001"      },      "products": [],      "card_type": "visa",      "card_last_digits": "1111",      "donation_project": "",      "credit_card_expiration": "02/2034"    },    "referrer": "https://secure.anedot-sandbox.com/campaign-solutions-internal-integration-testing/5e20b630-1359-40f8-bcef-5b2d21d7a839?utm_campaign=1&utm_content=2&utm_medium=3&utm_source=4&utm_term=5&source_code=code",    "utm_term": "5",    "frequency": "monthly",    "last_name": "Dot",    "recurring": "true",    "created_at": "2023-04-10 17:28:17 UTC",    "first_name": "Annie",    "ip_address": "2600:1700:6323:c820:20e9:550d:2152:318d",    "net_amount": "191.70",    "occupation": "",    "updated_at": "2023-04-10 17:28:18 UTC",    "utm_medium": "3",    "utm_source": "4",    "account_uid": "ae43230d83536f70ef3b6",    "middle_name": "",    "source_code": "code",    "utm_content": "2",    "account_name": "Campaign Solutions - Anedot-Team Test Acct",    "address_city": "Pembroke Pines",    "check_number": "",    "date_iso8601": "2023-04-10T17:28:17Z",    "event_amount": "200.00",    "utm_campaign": "1",    "employer_name": "",    "submission_id": "26658ba4-8277-40f8-b139-7fe0cc38f7c9",    "action_page_id": "aeda58d4-2f45-4029-b9e6-bccba098d62b",    "address_line_1": "12323 Southwest 12th Street",    "address_line_2": "304",    "address_region": "FL",    "commitment_uid": "ea29d29f-5af7-45e2-b4ba-e8b81a0e3500",    "address_country": "US",    "action_page_name": "Page",    "donor_profile_id": "90f5a9bf-6c36-4326-9c5f-bdfda5e14f36",    "referrer_to_form": "https://anedot-sandbox.com/",    "amount_in_dollars": "200.0",    "payment_method_id": "3412c2bc-a1db-44da-89ef-2908809a8596",    "created_at_iso8601": "2023-04-10T17:28:17Z",    "currently_employed": "true",    "updated_at_iso8601": "2023-04-10T17:28:18Z",    "address_postal_code": "33025",    "payment_description": "Visa •••• 1111",    "custom_field_responses": {},    "is_recurring_commitment": "true",    "commitment_recurring_until": "",    "communications_consent_email": "false",    "communications_consent_phone": "false"  }}
```

#### Response Body (Success)

```
{  "contextId": "b100be5b-f2a1-4c33-900e-0fd5a4ca0dd5",  "messageId": "d7caaa29e25a58a2fbc8f|completed|2023-04-10T17:28:18.0000000+00:00"}
```

#### Response Body (Failure)

```
{  "contextId": "49868250-9f61-416a-a682-bab3831e90d7",  "errorMessage": "No Token Supplied or has an incorrect format"}
```

#### Response Status (Success)

```
200
```

#### Response Status (Failure)

```
400
```

- [Get Started](https://help.anedot.com/knowledge/get-started?hsLang=en#main-content)

    - [Anedot 101](https://help.anedot.com/knowledge/get-started?hsLang=en#anedot-101)
    - [Apply for an Account](https://help.anedot.com/knowledge/get-started?hsLang=en#apply-for-an-account)
    - [Security](https://help.anedot.com/knowledge/get-started?hsLang=en#security)
- [Action Pages](https://help.anedot.com/knowledge/action-pages?hsLang=en#main-content)

    - [Action Page Basics](https://help.anedot.com/knowledge/action-pages?hsLang=en#action-page-basics)
    - [Page Builder](https://help.anedot.com/knowledge/action-pages?hsLang=en#page-builder)
    - [Advanced Features](https://help.anedot.com/knowledge/action-pages?hsLang=en#advanced-features)
    - [State Specific Pages](https://help.anedot.com/knowledge/action-pages?hsLang=en#state-specific-pages)
- [Finance](https://help.anedot.com/knowledge/finance?hsLang=en#main-content)

    - [Management & Reporting](https://help.anedot.com/knowledge/finance?hsLang=en#management-reporting)
    - [Internal Processing](https://help.anedot.com/knowledge/finance?hsLang=en#internal-processing)
- [Integrations](https://help.anedot.com/knowledge/integrations?hsLang=en#main-content)

    - [CRM & Donor Management Systems](https://help.anedot.com/knowledge/integrations?hsLang=en#crm-donor-management-systems)
    - [Email Marketing & Communication Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#email-marketing-communication-tools)
    - [Integration & Automation Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#integration-automation-tools)
    - [Political Campaign Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#political-campaign-tools)
    - [E-commerce, Financial, and Membership Tools](https://help.anedot.com/knowledge/integrations?hsLang=en#e-commerce-financial-and-membership-tools)
    - [Relay Data & Troubleshooting](https://help.anedot.com/knowledge/integrations?hsLang=en#relay-data-troubleshooting)
- [Settings](https://help.anedot.com/knowledge/settings?hsLang=en#main-content)

    - [Access](https://help.anedot.com/knowledge/settings?hsLang=en#access)
    - [Configuration](https://help.anedot.com/knowledge/settings?hsLang=en#configuration)
    - [Finance](https://help.anedot.com/knowledge/settings?hsLang=en#finance)
    - [Setup](https://help.anedot.com/knowledge/settings?hsLang=en#setup)
    - [Other Actions](https://help.anedot.com/knowledge/settings?hsLang=en#other-actions)
- [Donor Support](https://help.anedot.com/knowledge/donor-support?hsLang=en#main-content)

    - [Getting Started with Your Donor Account](https://help.anedot.com/knowledge/donor-support?hsLang=en#getting-started-with-your-donor-account)
    - [Manage Your Giving](https://help.anedot.com/knowledge/donor-support?hsLang=en#manage-your-giving)
    - [Donor FAQ](https://help.anedot.com/knowledge/donor-support?hsLang=en#donor-faq)

[![Chill listening crop-3](https://help.anedot.com/hubfs/623c96e00d0d93f7d3a66f2e_Anedot_Typemark_Blue.svg "Chill listening crop-3")](https://www.anedot.com/)

<https://facebook.com/anedot> <https://x.com/anedot> <https://instagram.com/anedot> <https://www.youtube.com/@Anedot> <https://open.spotify.com/show/7fK8maOMuj87AeAotVDZRF> [mailto:help@anedot.com](mailto:help@anedot.com)

Copyright © 2025, Anedot, Inc.