Partyline
Set up the Anedot and Partyline CRM integration to automatically sync financial donation data. Step-by-step guide to connecting Action Pages, configuring API credentials, and using data relays.
Partyline is a CRM platform widely used by political organizations to manage supporter and donor data.
Anedot supports direct integration with Partyline by sending financial page data through donation_completed webhook events. Please note that non-financial page data and custom field data are not supported at this time.
Table of Contents
Connecting Anedot to Partyline
-
Go to Settings > Integrations > Directory in your Anedot account.
-
Click + New Connection in the top right.
-
Choose Partyline from the Directory.
-
Select the Action Pages to sync (default is all pages).
-
To exclude pages, enter their IDs (comma-separated).
-
Optionally, limit the sync to a specific Team
-
- Enter your Partyline API Key and Client Secret.
-
Click Save to complete the setup.
You can update pages, Teams, or credentials anytime.
Data Relays
-
Supported Relays:
Only financial Action Pages are supported, and data is sent via thedonation_completedwebhook. - Data:
The integration delivers data to Partyline’s Anedot API endpoint:https://platform.gulfpartyline.com/api/anedot -
Limitations:
-
Custom field data is not relayed.
-
Non-financial pages are not supported.
-
-
Relay Tools:
Use the Push Unsent feature to resend failed or unsent donations by specifying a date range. This applies to all financial Action Pages.
Field Mapping
Relay Fields
The Anedot Fields match the Submission's Raw Data and the Partyline Fields match the Request Body relay.
| Anedot Field | Partyline Field |
|---|---|
| “donation_completed” | event |
| (Donation) id | uid |
| createdAt | date |
| (Donation object: includes anedot & vendor fee amounts) | fees (multiple fields) |
| “[firstName] [lastName]” | name |
| phone | phone |
| title | title |
| amount (x100) | amount |
| origin (Donation) | origin |
| status (Donation) | status |
| suffix | suffix |
| address {postalCode} {city} {region} {line1} {country} {line2} |
address {zip} {city} {state} {street} {country} {street_2} |
| comments (Donation) | comments |
| employerName | employer |
| lastName | last_name |
| “true” or “false” | recurring |
| createdAt | created_at |
| “individual” or “organization” | donor_type |
| firstName | first_name |
| occupation | occupation |
| * (optional field) | referred_by |
| actionPageId | campaign_uid |
| totalAmount (x100) | event_amount |
| phone | mobile_phone |
| organization | organization |
| actionPageName | campaign_name |
| middleName (first letter only) | middle_initial |
| id of the first (originating) donation on the commitment (if recurring) |
originating_uid |
| actionPageName | campaign_identifier |
| “di” | api_method |
*referred_by is a numeric value that maps as follows:
| Numeric value | Partyline referred_by Value |
|---|---|
| 0 | "Magazine" |
| 1 | "TV" |
| 2 | "Newspaper" |
| 3 | "Radio" |
| 4 | "Facebook" |
| 5 | "Twitter" |
| 6 | "Online Ad" |
| 7 | "Word of mouth" |
| 8 | "Other" |
Payload Data
Request Headers
{ }
Request Body
{
"event": "donation_completed",
"payload": {
"uid": "dbd0ce1bb5544cd767ddd",
"date": "2023-05-11T14:37:13.580Z",
"fees": {
"anedot_fees": {
"amount": "2.30"
},
"vendor_fees": []
},
"name": "Annie Dot",
"email": "admin@anedot.com",
"phone": "2255011234",
"title": null,
"amount": "$50.00",
"origin": "hosted",
"status": "completed",
"suffix": null,
"address": {
"zip": "70503",
"city": "Lafayette",
"state": "LA",
"street": "123 Test Road",
"country": "US",
"street_2": null
},
"comments": null,
"employer": null,
"last_name": "Dot",
"recurring": false,
"created_at": "2023-05-11T14:37:13.548Z",
"donor_type": "individual",
"first_name": "Annie",
"occupation": null,
"referred_by": null,
"campaign_uid": "00c7b970-c269-4062-979e-b7aa939995fe",
"event_amount": "$50.00",
"mobile_phone": null,
"organization": null,
"campaign_name": "Feed the Children - March Gala",
"middle_initial": null,
"originating_uid": null,
"campaign_identifier": "Feed the Children - March Gala"
},
"api_method": "di"
}
Response Body (Success)
"Anedot Transaction Imported Successfully"
Response Body (Failure)
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> \n<html xmlns=\"http://www.w3.org/1999/xhtml\"> \n<head> \n<title>IIS 10.0 Detailed Error - 404.0 - Not Found</title> \n<style type=\"text/css\"> \n<!-- \nbody{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;} \ncode{margin:0;color:#006600;font-size:1.1em;font-weight:bold;} \n.config_source code{font-size:.8em;color:#000000;} \npre{margin:0;font-size:1.4em;word-wrap:break-word;} \nul,ol{margin:10px 0 10px 5px;} \nul.first,ol.first{margin-top:5px;} \nfieldset{padding:0 15px 10px 15px;word-break:break-all;} \n.summary-container fieldset{padding-bottom:5px;margin-top:4px;} \nlegend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;} \nlegend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px; \nfont-weight:bold;font-size:1em;} \na:link,a:visited{color:#007EFF;font-weight:bold;} \na:hover{text-decoration:none;} \nh1{font-size:2.4em;margin:0;color:#FFF;} \nh2{font-size:1.7em;margin:0;color:#CC0000;} \nh3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;} \nh4{font-size:1.2em;margin:10px 0 5px 0; \n}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:\"trebuchet MS\",Verdana,sans-serif; \n color:#FFF;background-color:#5C87B2; \n}#content{margin:0 0 0 2%;position:relative;} \n.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;} \n.content-container p{margin:0 0 10px 0; \n}#details-left{width:35%;float:left;margin-right:2%; \n}#details-right{width:63%;float:left;overflow:hidden; \n}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF; \n background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal; \n font-size:1em;color:#FFF;text-align:right; \n}#server_version p{margin:5px 0;} \ntable{margin:4px 0 4px 0;width:100%;border:none;} \ntd,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:normal;border:none;} \nth{width:30%;text-align:right;padding-right:2%;font-weight:bold;} \nthead th{background-color:#ebebeb;width:25%; \n}#details-right th{width:20%;} \ntable tr.alt td,table tr.alt th{} \n.highlight-code{color:#CC0000;font-weight:bold;font-style:italic;} \n.clear{clear:both;} \n.preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;} \n--> \n</style> \n \n</head> \n<body> \n<div id=\"content\"> \n<div class=\"content-container\"> \n <h3>HTTP Error 404.0 - Not Found</h3> \n <h4>The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.</h4> \n</div> \n<div class=\"content-container\"> \n <fieldset><h4>Most likely causes:</h4> \n <ul> \t<li>The directory or file specified does not exist on the Web server.</li> \t<li>The URL contains a typographical error.</li> \t<li>A custom filter or module, such as URLScan, restricts access to the file.</li> </ul> \n </fieldset> \n</div> \n<div class=\"content-container\"> \n <fieldset><h4>Things you can try:</h4> \n <ul> \t<li>Create the content on the Web server.</li> \t<li>Review the browser URL.</li> \t<li>Create a tracing rule to track failed requests for this HTTP status code and see which module is calling SetStatus. For more information about creating a tracing rule for failed requests, click <a href=\"http://go.microsoft.com/fwlink/?LinkID=66439\">here</a>. </li> </ul> \n </fieldset> \n</div> \n \n<div class=\"content-container\"> \n <fieldset><h4>Detailed Error Information:</h4> \n <div id=\"details-left\"> \n <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> \n <tr class=\"alt\"><th>Module</th><td> IIS Web Core</td></tr> \n <tr><th>Notification</th><td> MapRequestHandler</td></tr> \n <tr class=\"alt\"><th>Handler</th><td> ASPClassic</td></tr> \n <tr><th>Error Code</th><td> 0x80070002</td></tr> \n \n </table> \n </div> \n <div id=\"details-right\"> \n <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> \n <tr class=\"alt\"><th>Requested URL</th><td> https://platform.gulfpartyline.com:443/core/webhooks/api/anedot/adf/sdf.asp</td></tr> \n <tr><th>Physical Path</th><td> D:\\PLATFORM\\core\\webhooks\\api\\anedot\\adf\\sdf.asp</td></tr> \n <tr class=\"alt\"><th>Logon Method</th><td> Anonymous</td></tr> \n <tr><th>Logon User</th><td> Anonymous</td></tr> \n \n </table> \n <div class=\"clear\"></div> \n </div> \n </fieldset> \n</div> \n \n<div class=\"content-container\"> \n <fieldset><h4>More Information:</h4> \n This error means that the file or directory does not exist on the server. Create the file or directory and try the request again. \n <p><a href=\"https://go.microsoft.com/fwlink/?LinkID=62293&IIS70Error=404,0,0x80070002,17763\">View more information »</a></p> \n \n </fieldset> \n</div> \n</div> \n</body> \n</html> \n"
Response Status (Success)
200
Response Status (Failure)
404