Skip to content
  • There are no suggestions because the search field is empty.

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

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 is 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