Campaign Solutions is a full-service consulting firm specializing in fundraising and advertising.
Anedot will send financial page data to Campaign Solutions directly via donation_completed
events. Relays will include Custom Field data, Source Codes, and UTM Codes in the URL.
Disclaimer: Non-financial page data is not supported at this time.
Connect Anedot to Campaign Solutions
To connect your Anedot account with Campaign Solutions, follow the steps below:
Access the Settings>Integrations>Directory tab within your Anedot fundraising account.
Click the blue + New Connection button in the upper right corner.
Select Campaign Solutions from the directory.
Next, select the Action Page(s) you would like to connect.
All pages are selected by default.
To exclude Action Pages, use a comma to separate a list of the Action Page IDs.
If needed, you can also scope the integration to Team access.
Apply the Campaign Solutions Token
Scroll down to the bottom right corner to Save your connection!
The integration endpoint will be:
https://csanedotintegration.azurewebsites.net/v1/donation/{{account UID}}
.
Action Pages, Teams, and credentials can be modified anytime post-setup.
Data Relays
We send relays for financial pages (only send
donation_completed
webhook events).We support custom field data, source code, and UTM Codes in the URL.
We send the account’s request token in the header per Campaign Solutions’ request (PR).
Push Unsent (failed donations, all donations) + date range for relays works for all Action Pages, regardless of financial page type.
Field Mapping
Relay Fields
The Anedot Fields match the Submission's Raw Data and the Campaign Solutions Fields match the Request Body relay.
Anedot Field | Campaign Solutions Field |
“donation_completed” | event |
createdAt | date |
“[firstName] [lastName]” | name |
phone | phone |
title | title |
origin (Donation) | origin |
source (Donation) | source |
status (Donation) | status |
suffix | suffix |
donation [
] | 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” or “false”) | currently_employed |
updatedAt | updated_at_iso8601 |
address {postalCode} | address_postal_code |
Payment Method (donation side-drawer) | payment_description |
custom_field_responses [
] | custom_field_responses [object, multiple values] |
is_recurring_commitment (“true” or “false”) | is_recurring_commitment |
schedule_until (Commitment) | commitment_recurring_until |
communicationsConsentEmail (“true” or “false”) | communications_consent_email |
communicationsConsentPhone (“true” or “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.
{
"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": "Anna Dote",
"email": "[email protected]",
"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": "Dote",
"recurring": "true",
"created_at": "2023-04-10 17:28:17 UTC",
"first_name": "Anna",
"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 Test",
"address_city": "New Orleans",
"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": "123 Washington Ave.",
"address_line_2": "456",
"address_region": "LA",
"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": "99999",
"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