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_completed
webhook. - 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