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

Crimson and Julep by CMDI

Anedot integrates with Crimson and Julep by CMDI to automatically send donation data from Action Pages into their CRM systems for streamlined donor management.

Crimson and Julep, developed by CMDI, are CRM platforms used by political campaigns and nonprofit organizations to manage donor data and fundraising efforts. Anedot integrates directly with CMDI to send donation data collected from Action Pages into their systems.


Table of Contents


Connecting Anedot to Crimson or Julep

To set up the integration:

  1. Create a Donation Page

    • Make sure your fundraising account has at least one donation page before connecting.

    • Without this, the integration may fail.

  2. Go to Settings > Integrations > Directory in your Anedot account.

  3. Click + New Connection in the top-right corner.

  4. Select Crimson or Julep from the list.

  5. Choose the Action Pages to sync:

    • All pages are selected by default.

    • To exclude any, enter their Action Page IDs (comma-separated).

  6. (Optional) Limit the integration to a specific Team.

  7. Paste your CMDI API Token.

  8. Click Save to complete the setup.

Once connected, a CMDI Data Entry Page will be created automatically. 

Example Entry Form URL:

https://secure.anedot.com/crimson/donations/new?account_uid=[accountId]&batchno=[batchno]&batchdate=[batchdate "yyyy-mm-dd"]&token=[token]

You can update your page selections, Team scope, or credentials anytime.


Data Relay

Anedot sends data only from Donation Pages (i.e. balance-impacting transactions).

Lead Page data is not supported at this time.

Supported Custom Fields

The following fields can be passed via URL parameters or set on the Action Page:

  • batchno

  • batchdate

  • PID

  • campgncode

  • chapcode

  • comment

  • refno

  • source_code

  • trackno

These fields are used primarily to pre-fill the CMDI Data Entry Page.
Fields like batchno, batchdate, source_code, and PID can be used to pre-populate form values.

PID Lookup Behavior

If a PID is included in the URL, the page makes a call to CMDI’s internal People API to retrieve matching contact data and auto-fill the donation form.

Relay Field Mapping

  • All fields except source_code are included in custom_field_responses.

  • source_code is sent as a top-level field in the webhook relay.

  • batchdate maps to the actual donation date.


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
email email
phone phone
donations {origin} origin
prefix prefix
(Donation) status status
suffix suffix
paymentMethod {type} payment
(Donation) id donation id
anedotFeeAmount (net amount in Entries) donation
{fees
{anedot_fees {amount}}
vendorFeeAmount (net amount in 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 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
" https://anedot.com/ " referrer_to_form
donations {amount} (x100) amount_in_dollars
address {postalCode} address_postal_code
Payment Method payment_description
customFieldResponses {multiple fields} custom field_responses {multiple fields}
(Commitment) schedule_until commitment_recurring_until

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.


Payload Data

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": "Annie Dot",
    "email": "admin@anedot.com",
    "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 Annie Dot"
        }]
      },
      "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": "Dot",
    "recurring": "false",
    "first_name": "Annie",
    "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": "1340 Poydras St",
    "address_line_2": "",
    "address_region": "LA",
    "commitment_uid": "",
    "processed_date": "2023-01-05 16:58:04 UTC",
    "address_country": "US",
    "action_page_name": "Single fund Blackbaud RE",
    "referrer_to_form": "",
    "amount_in_dollars": "23.0",
    "address_postal_code": "98382",
    "payment_description": "Visa •••• 4242",
    "custom_field_responses": {},
    "commitment_recurring_until": ""
  }
}

Response Status (Success)

200