Crimson by CMDI is a political CRM for Republican campaigns, committees, PACs, and organizations of all sizes. Anedot's integration with Crimson sends data collected from Action Pages to the Crimson system.
Connect Anedot to Crimson
To connect Anedot to Crimson, follow the steps below:
Before connecting Anedot to Crimson, be sure to complete Onboarding for the fundraising account. Onboarding can be completed from the fundraising accounts's Dashboard. This step ensures that the first Donation Page for the account is created along with all required Presets. Bypassing Onboarding may cause the Anedot connection to Crimson to fail.
Once Onboarding has been completed, access the Settings>Integrations>Directory tab within your fundraising account.
Click the blue + New Connection button in the upper right corner of the Directory.
Select Crimson from the Directory list.
Select the Action Pages you would like synced with Crimson. The default is All Pages.
To exclude pages, enter a comma-separated list of the Action Page IDs
Optionally, you can scope the integration to only send team-specific data to Crimson.
Apply your CMDI API Token.
Click the blue Save button to complete!
Once the integration has been connected successfully, the CMDI Data Entry Page will automatically be created.
Data Relays
Anedot only relays data from Donation Pages (balance impacting transactions). Lead Page data cannot be relayed at this time.
The following Custom Fields are supported:
batchno
batchdate
pid
campgncode
chapcode
comment
refno
source_code
trackno
Field Mapping
Donation Relays
The Anedot Fields match the Submission's Raw Data (unless specified otherwise in parenthesis), and the Crimson Fields match the Request Body relay.
Anedot Field | Crimson/Julep Field |
"donation_created" | event |
created_at (in UTC) | date |
"firstName lastName" | name |
phone | phone |
donations {origin} | origin |
prefix | prefix |
(Donation) status | status |
suffix | suffix |
paymentMethod {type} | payment |
(Donation) id | donation {id} |
anedotFeeAmount (net amt in Donations -> Entries) | donation {fees {anedot_fees {amount} }} |
vendorFeeAmount (net amt in Donations -> Entries) | donation {fees {vendor_fees {amount} }} |
*billing agreement {name} or account {displayName} | donation {fees {vendor_fees {account} }} |
"Donation from" firstName lastName | donation {fees {vendor_fees {description}}} |
actionPagesFund {id} | donation {fund {id} } |
actionPagesFund {name} | donation {fund {name} } |
actionPagesFund {identifier} | donation {fund {identifier} } |
Product Name (Product) | donation {product {name} } |
Internal SKU (Product) | donation {product {identifier} } |
paymentMethod {cardType} | donation {card_type} |
paymentMethod {lastDigits} | donation {card_last_digits} |
donation_project (hidden custom field) otherwise blank | donation {donation_project} |
"paymentMethod {cardMonth} / paymentMethod {cardYear}" | donation {credit_card_expiration} |
referrer | referrer |
(Commitment) frequency | frequency |
lastName | last_name |
"true" or "false" | recurring |
firstName | first_name |
netAmount (x100) | net_amount |
occupation | occupation |
updatedAt (right above utmCodes in Submission Raw Data) | updated_at |
account {id} | account_uid |
middleName | middle_name |
source_code | source_code |
account {name} | account_name |
address {city} | address_city |
donations {checkNumber} | check_number |
netAmount (under Donation - Entries) | event_amount |
employerName | employer_name |
(Action Page) id | action_page_id |
address {line1} | address_line_1 |
address {line2} | address_line_2 |
address {region} | address_region |
(Commitment) id | commitment_uid |
created_at (in UTC) | processed_date |
address {country} | address_country |
actionPage {name} | action_page_name |
referrer_to_form | |
donations {amount} (x100) | amount_in_dollars |
address {postalCode} | address_postal_code |
Transactions Side-drawer Payment Method | payment_description |
customFieldResponses {multiple fields} | customfield_responses {_multiple fields} |
(Commitment) schedule_until | commitment_recurring_until |
Tip: The fund name in the relay is the Billing Agreement name. If the Billing Agreement name is left blank, the Anedot Account Name will be displayed.
Example Payloads
Request Headers
{
"User-Agent": "Anedot-Hookshot/ae49a5d",
"X-Request-Id": "3f99e54b-03d5-44f2-8062-c2561fff4af1",
"X-Integration-Id": "97a64ea7-ee1a-4389-8db6-5e35e7106421",
"X-Integration-Event": "donation_completed",
"X-Request-Signature": "f9c15a4bfda0f5662b0281bc3059885ed9c69ced91f55229d3c50fb39c1b64b7"
}
Request Body
{
"event": "donation_completed",
"payload": {
"date": "2023-01-05 16:58:04 UTC",
"name": "Anna Dote",
"email": "[email protected]",
"phone": "2252501301",
"origin": "hosted",
"prefix": "",
"status": "completed",
"suffix": "",
"payment": "credit_card",
"donation": {
"id": "d3fc8b4dd68300ed3bb4e",
"fees": {
"anedot_fees": {
"amount": "1.22"
},
"vendor_fees": [{
"amount": "1.25",
"account": "Vendor Account Name",
"description": "Donation from Anna Dote"
}]
},
"fund": {
"id": "ec082bf5-b1ed-48e5-b2ba-1c322c308b75",
"name": "General Fund",
"identifier": "141252"
},
"products": [{
"name": "Sticker",
"internal_identifier": "001"
}],
"card_type": "visa",
"card_last_digits": "4242",
"donation_project": "",
"credit_card_expiration": "02/2023"
},
"referrer": "https://anedot-sandbox.com/accounts/ab4ca5ac57b628c89d080/transactions/new",
"frequency": "once",
"last_name": "Dote",
"recurring": "false",
"first_name": "Anna",
"net_amount": "21.78",
"occupation": "",
"updated_at": "2023-01-05 16:58:04 UTC",
"account_uid": "ab4ca5ac57b628c89d080",
"middle_name": "",
"source_code": "",
"account_name": "Anedot",
"address_city": "New Orleans",
"check_number": "",
"event_amount": "23.00",
"employer_name": "",
"action_page_id": "fd6f6939-57a2-458f-a238-603624cc98be",
"address_line_1": "123 Anedot Way",
"address_line_2": "",
"address_region": "LA",
"commitment_uid": "",
"processed_date": "2023-01-05 16:58:04 UTC",
"address_country": "US",
"action_page_name": "Donation Page 1",
"referrer_to_form": "",
"amount_in_dollars": "23.0",
"address_postal_code": "99999",
"payment_description": "Visa •••• 4242",
"custom_field_responses": {},
"commitment_recurring_until": ""
}
}
Request Body (Success)
"request catcher <h1>request catcher</h1> No requests have been received yet :( <span class=\"code\"> curl -X POST -d 'Hello World!' https://<span>requestcatcher.com</span>/test </span> <a href=\"https://m.do.co/c/fd00053f4fc6\ " target=\"_blank\">Hosted on DigitalOcean. Get a $200 credit and support Request Catcher.</a> !function(e,a,t,n,g,c,o){e.GoogleAnalyticsObject=g,e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=1*new Date,c=a.createElement(t),o=a.getElementsByTagName(t)[0],c.async=1,c.src=\"//www.google-analytics.com/analytics.js\",o.parentNode.insertBefore(c,o)} .(window,document,\"script\",0\"ga\"),ga(\"create\",\"UA-55875288-1\",\"auto\"),ga(\"send\",\"pageview\")); "