> For the complete documentation index, see [llms.txt](https://docs.anedot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anedot.com/integrations/political-campaign-tools/crimson-julep.md).

# 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.

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.

## 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 direct transactions on Donation Pages.

> *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                               | donation fees anedot\_fees amount      |
| vendorFeeAmount                               | 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                                  | donation product name                  |
| Internal SKU                                  | donation product identifier            |
| paymentMethod cardType                        | donation card\_type                    |
| paymentMethod lastDigits                      | donation card\_last\_digits            |
| donation\_project                             | donation donation\_project             |
| paymentMethod cardMonth 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                                     | 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                          | custom\_field\_responses               |
| 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

```json
{"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

```json
{"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
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.anedot.com/integrations/political-campaign-tools/crimson-julep.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
