Release Email Archive: 2016


Hey ActionKitties!

We hope you’re about to enjoy a well-deserved holiday break! We are, and so support tickets submitted between 12/23 and 12/26 and between 12/30 and 1/2 will be answered when we reopen the following day.

This is our last release of 2016 and as usual you'll see the changes described below in your instance tomorrow. We’ve already got some exciting features ready for next year. ActionKit Instant Donate is done! After final testing, we expect to start a beta test in January. Also, we’ll be adding a new signature delivery option for pages targeting the U.S. House.

Note for clients: If you haven’t done so already, we recommend enabling the Transaction Details API in By default, when processes a recurring donation, they attempt to send that data to ActionKit once and only once. Sometimes the attempt fails and ActionKit never gets a record of the payment. If you enable the API, we’ll also run a nightly server-to-server sync to pick up any missing transactions from the preceding 30 days. No need to tell us, just turn it on! Read how here:

Visual Editor and Adding Images

The visual editor "Insert/edit image" button has a new search tool that opens your image library so you can directly insert files. Next we’ll be adding image uploads from within your page or mailing.

Other updates and bug fixes to the visual editor toolbar include:

  • The "unlink" button is back! You can now unlink a link using the visual editor toolbar. Thanks to Robin at NARAL for requesting its return.
  • Using the link or image buttons in the visual editor will no longer cause you to exit full-screen mode. Thanks to Kenton at PCCC and Adam at Ultraviolet for flagging that.

Organization-wide Notices

Staff with superuser permission can create and edit organization-wide notices that will show up at the top of your ActionKit admin. Just click on "Add an announcement" from the Announcements page linked in the gear menu, or click the "(Edit)" link in any of your organizational-specific announcements.

You can set a title, message, type (info, warning, danger), and a link. Notices will automatically be archived after 90 days.

These are the different types of notices:

And entering a URL in the URL field will display a "Read more" link as seen in the "info" notice above.

Read more about this here:

Admin UI Updates

  • Error message styling has been updated to match the info/warning/danger styles displayed by the notices. Error details within the messages are also now hidden by default; toggle the blue arrow to display them.
  • Mailing lists now have an internal "Notes" field that will appear in parentheses behind the "Name" field when targeting a mailing by mailing list. This allows you to assign a description to a list for internal reference while maintaining a user-friendly name for display on unsubscribe pages. Thanks to Jase at DFA for the suggestion.
  • From-line help text now suggests that you include an organization name. Thanks to Chris at FCNL for suggesting.
  • We added a way for you to change your two-factor authentication device (e.g., if you switched to a new phone). Go to the "Two-factor Auth" link in the gear menu, click on "Change Two-Factor Device" and follow the steps. Apologies to Bernard at Color of Change for making this so difficult before!

Bug Fixes

We fixed a problem in the UI with overlapping text (thanks David at ONE) and a problem with PUT requests with no ForeignKey in the API (thanks Scott at MoveOn), and we clarified in the documentation that emails are displayed for federal legislators because they belong to a proprietary database (thanks to Conen at Progress Now).

Hotfixed Bugs

  • A recent update to our global geo-data had the unfortunate side effect of changing the country select on pages to include oddly structured names, like the "Kingdom of Sweden". All is now back to normal. Thanks to Suzi at for noticing that!
  • The organization-wide setting for making mailings web-viewable wasn’t working but it is now. Thanks to Avi at Everytown!
  • Donation pages in the Original templateset were hotfixed because the upgrade to support Braintree had introduced a bug that erroneously complained when PayPal donations were made without filling in user fields. Thanks to Conen at Progress Now!
  • The update to the new templateset management pages included a bug where you were allowed to save invalid code, but then not allowed to edit it. Whoops. Thanks to Eric at Everytown for flagging that.
  • And we also hotfixed another bug related to the new templateset views where finding event pages to preview caused an error. Thanks to Blake at Richir for letting us know.

Hidden Feature Call-Out

Tired of scrolling over to the save button in order to move to the next screen? We support some keyboard shortcuts so that you don’t have to move your hands from the keys.

Control+Enter (or Command+Enter for Mac users) will submit the screen.

If there are multiple buttons (like the "Save" and "Next:" buttons when creating a page), then you can use Control+Shift+Enter / Command+Shift+Enter to trigger the alternate button.

In the case below, "Next: Edit content" is the primary button (Control+Enter), and "Save" is the alternate (Control+Shift+Enter).


Hey ActionKitties!

I hope everyone had a filling Thanksgiving and lots of delicious pie.

In your instances tomorrow will be an improved interface for working with templatesets, more ways to control input parameters for custom SQL queries and dashboards, and a banner across the top of the Admin announcing this release.

Templateset Admin Updates

We’ve revamped the templateset admin screens to make it easier for you to navigate, edit, preview and publish changes to your templatesets.

Improved Preview Options

Many of you have told us that it would be helpful to be able to preview a template whether or not a page is using that template.

You can now do this in a few ways.

From the overview section of the templates screen there’s a quick preview option. Just enter the first few letters of a page of any type and select preview to see the page rendered using the templateset you’re editing.

From the edit screen for any template, you can either click preview, select the green plus on the right or click "p". Doing any of those will open a list of pages you can preview. The list starts with pages of the same type (if you’re editing an action type template), then lists other action pages, and then shows recently previewed pages at the bottom. Event template preview will show a list of event campaigns, and pages related to those campaigns (signup page, attendee details page, host creation page, etc) from which you can select.

The page you’re previewing will open in a new tab. The edit screen for the template will display a new button for reloading the page you last previewed. This makes it easier to view changes to your thanks template. Pick an action page and submit to go to the thanks page. Then any edit you save to your thanks template can be viewed on your thanks page without submitting another action by hitting reload.

You can also switch templatesets while you are previewing a specific page. Just select the templateset you want to preview and then hit "Switch" in the preview toolbar at the bottom of the screen.

Save Draft/Publish Terminology

We’ve changed the terminology to more accurately reflect the status of your edits. When you make changes to a specific template, you’ll see a "Save Draft" button, as shown in the screenshot below. Use this to save changes you want to preview but not apply to your live pages yet. You’ll stay on the same screen where you can continue to edit without fear of losing the work you’ve already done.

A template with saved but unpublished changes has a Draft status. Once you’ve finalized your changes, use the Publish button to apply your changes to all live pages using this template type and set. Or, publish all your draft templates in a given set at once, using the "Publish Changes" button in the overview section on the templates screen.

If you want to throw out changes you’ve made to a draft, use the "Revert" button to return the template back to the last published version.

Re-organized Template Screens

The templateset screen is now laid out into three sections: general overview, local editing options, and the list of templates.

In the overview, you’ll see a list of pages using this templateset, a list of templates with changes and the button to publish these, as well as the quick preview option.

Under "Edit Locally", you’ll find the download and upload options as well as a previously hidden feature! You can link local files. Then you can edit and save changes locally, and any changes you make on your computer will be automatically uploaded into ActionKit and displayed if you’re previewing a page.

Upload has a new option to create custom templates if these are included in your file.

The last section is the list of templates, which are now organized in a sortable table. By default they are ordered alphabetically, but you could also sort by category (eg action types, events, shared, accounts and login), last modified, or status. Or use the search to filter the list of templates by name, category or content.

Finally, the template editing screen has a pull out on the left with a list of templates so that you can quickly navigate from one template to another. Click on the "+" button or use the keyboard shortcut "t" to expand the template list.

Please let us know your thoughts on these changes!

Report parameters

Many clients have requested a way to better control the order and requirements of input parameters for reports and dashboards.

We’ve updated the {% required_parameter %} tag so that it can now be used by both query reports and dashboard reports with a set of attribute-value pairs to control parameter features.

For example, your report may include this:

{% required_parameter "source" label "Source Code" default "website"
order 2 hint "Leave blank to match all actions" %}

{% required_parameter "days" label "Number of days" order 1 hint
"This integer input shows up first" type "number" %}

That will show up like this:

The supported attributes are:

  • default: Provide an initial value to be shown on the parameter form. Users can edit this value or accept it as-is.
  • hint: Display instructions for the parameter below the parameter input field.
  • label: Set the display name for the parameter. If no label is provided, the parameter name is used.
  • order: Specify where in the list of parameters this item should appear. Parameters numbered 1, 2, 3, and so on will appear at the top of the list, followed by parameters without an order value. If multiple parameters have the same order number, they will appear in the order they are encountered in the report.
  • type: Set the type of input field for the parameter. Defaults to "text" but you can also choose "number".

Read more about the new parameter options here:

Notification Banner

Tomorrow, all staff users will see a banner across the top of the Admin announcing this release. These banners will announce releases and important updates.

Notifications are dismissable on a per-staff user basis, and once dismissed, can still be viewed by going to the gear menu and clicking on "Announcements".

Miscellaneous and Bug Fixes

  • Pages now use the "Save" and "Next" buttons recently added for mailings. The functionality has not changed, however, so "Next" still saves changes before going to the next step.
  • The transaction ID options in the Donations query builder now return the external transaction IDs from your payment processor (falling back to our internal ID of the transaction if needed) so that you can correlate the donations with your external reporting. Thanks to FCNL for requesting.

  • Tag-related options in the User query builder have been grouped under a new "Tags" section. Thanks to Robin at NARAL for pointing out that these were hard to find.


  • Viewing the HTML version of sent mailings should be a bit faster. Thanks to Jase at DFA for reporting this.
  • We hotfixed a bug related to the GitHub connection for templatesets so that a push that includes changes made in multiple templatesets will only apply the changes to the files in their respective templatesets. Thanks to David and Rich at ONE for finding this.

Hidden feature

ActionKit has a lot of features. It’s hard to keep track! So over the next few releases we’re going to be highlighting some hidden features that we hope will assist you in your work.

Today’s hidden feature is: Using "OR" in the query builder.

By default, filters are ANDed together so that the results must match all of the criteria. But sometimes you need to see results that match any of your criteria.

For example, you may want to show results for users whose email address domain is "" OR users who live in France, not just those with "" domains AND who live in France.

By adding a filter for "Any Of These Filters" under "SQL Expressions", and then moving your criteria into that field (drag the ≡ icon), you can tell the query builder to look for users who fit either of the criteria.

You can read more about using ORs and ANDs in the filter here:


Hey ActionKitties,

The election of Trump and the failure to take back the Senate has left us dismayed and angry.

We’re going to keep fighting. And we know you will too.

Have ideas on how we can better support the fight, whether it’s an ActionKit feature or something brand new? Please get in touch.

Finally, supporting the amazing work that you all do has been one of the bright spots in an otherwise dismal week. Thank you.

Patrick, Tanya, Randall, Sam, Simon, Linda, Aaron, Perrin, Tim, Ben, Jin and Gareth

We’ve made a bunch of little changes in this release, including upgrading to a new version of TinyMCE, the WYSIWYG editor we use. Don’t be alarmed by the simpler, cleaner-looking toolbar – all the old choices are still available, but some of them are tucked away in the menus you’ll see if you click any icon with a down arrow.


ActionKit now supports Braintree’s integration method. is Braintree’s latest integration method and offers numerous benefits, including reducing PCI compliance scope and allowing new payment methods, such as Apple Pay and Bitcoin, to be more easily integrated in the future.

We are looking for a few early adopters to help put through its paces with Walker assistance. Let us know if you’re interested.

With the release of, we will be deprecating support for Braintree’s client-side encryption method in Q1 2017.

Mailing UI Changes

Mailings now have a "Save" button! You can save your changes and remain on the Compose or Target screen. If you want to move onto the next step, click the "Next: Target" or "Next: Proof and Send" button.

And "Send Proofs" has its own section.

Overwrite Protection Improvement

We added overwrite protection to the mailer in the last release. Now, if there is a midair collision while editing your mailing, you’ll see the version that you tried to save so that you have a chance to copy your unsaved changes. You cannot just immediately hit "Save" again though and overwrite the other person’s changes – click the link in the notification in order to reload the mailing with the new changes.

Support Tab and User Guide Changes

We’ve updated the layout for the Support tab . The table of contents of the campaigner’s and developer’s guides are displayed, so that you can jump to a section directly from the Admin.

We’ve also done a bit of reorganization of the user guide . You’ll see new sections for Fundraising , Imports , and Reports Reference that gather together related information. We’ve also broken out the Site Config as its own section and added an Admin Shared Features section for features like Bulk Editing, Custom Fields, and the WYSIWYG editor that crop up across multiple parts of the Admin.

Finally, we added a few more tutorials on using merge files and merge queries , targeting mailings with auto-excludes , testing using mailing test groups , recurring mailings , setting up your re-engagement program , creating reports with query builder , and creating dashboard reports .

Admin Updates

We’ve smoothed a bunch of rough edges in the Admin and upgraded a few components.

  • We upgraded the WYSIWYG editor. With this new version, in a future release we’ll be able to integrate the image library so you can search for and insert images directly. We’ve kept the most commonly used tags in the main toolbar. You can access other formatting options by clicking the icon to expand the drop-down menus.
  • On the user record, the Donation History link has been moved from the Actions section to the Donations section, and we also now display the user’s state legislators on the profile page.
  • There’s a new "List Hygiene" section on the Mailings Tab for the Re-engagement and Blackhole features. Also, wrappers are now under "Content".
  • We added a link back to the event campaign dashboard from the admin screens for event host and event attendees page creation.
  • And a hidden feature that we just extended to Pages is that you can click on a tag, like "fire" below, to create a search for objects with that tag.

Miscellaneous & Bug Fixes

  • We hotfixed a bug, found by MoveOn, related to the new date options for {% withevents %} that was killing mailings if there were too many failed deliveries in a row.
  • Pages that required users to login, such as recurring donation update or cancellation pages, were sometimes using the wrong templateset for the /login/ page due to improper handling of hyphens in the page name. This has been hotfixed. Thanks to Chris at FCNL for pointing this out.
  • We re-enabled visual editors on the letter page delivery form. Thanks to James at 350 for pointing that out.
  • We fixed a bug where groups with lots of custom user fields could only use some of the fields. Thanks to Mendel at J Street for the report.
  • The query builder for mailings will now return the full includes targeting for a mailing, even when using the additional includes group for targeting. Thanks to Shannon at UltraViolet for letting us know.
  • The query builder now treats dates for imported donations in the same way as native ActionKit donations, which fixes a bug where imported recurring donations were not being reported properly. Thanks to Sara at FCNL for inquiring.
  • We fixed a few places where the times shown in the Admin were not using the timezone set for the staff user. Thanks to Brandon at Mercy Corps and Gil at Zazim for letting us know.
  • We added a tooltip to the "Page Intro" option on the A/B test "Fields to change" section to clarify which section of the page it applies to. Thanks to Jase at DFA for inquiring.
  • We made improvements in performance for mailings using event snippets. Thanks to MoveOn.
  • We’ve updated donate.html in the Original template to use onKeyup instead of onKeypress as that was causing donors on Android devices issues when choosing a custom amount. If your template is based on the new Original donate.html then those should also be patched with this update. Thanks to John at the Syria Campaign for the report.
  • All draft mailings now appear in the dropdown for includes/excludes targeting by mailing. Previously we had to limit the draft mailings available to the last 60 days or those created within the last 250 mailings for performance reasons, but we’ve now removed that limit. Thanks to, SumOfUs, and Mercy Corps for requesting this.
  • And we updated the built-in event snippets (Attendee Recruitment, Host Reminder, and Attendee Reminder) to use {{ event.starts_at_full }}, which displays both date and time of the event for all events, instead of {{ event.starts_at }}, which returns just the time if the campaign has a date that hosts can’t change. Thanks to Aaron at DFA for the suggestion.


Hey ActionKitties!

This will be the last full release prior to Election Day. Aside from hotfixing any minor issues you all find, there will be no changes to ActionKit until after November 8th. You'll see the new features below, and the documentation linked will be available, late tonight.

Blackholing Email

You can now permanently block certain users or domains from receiving email using our blackhole functionality.

Users or domains on the blackhole list will never receive bulk or transactional mailings from your ActionKit account. Add specific email addresses or domains by going to Mailings > Data > Blackholed Emails or Blackholed Domains.

Note that users matching these blackhole rules are removed at the time of send, so targeting counts include blackholed users. You can view the log of blackholed emails in the core_blackholedhistory table.

Read more here:

Thanks to many groups, including CREDO, DFA, MoveOn and PCCC, for suggesting this and to CREDO for sponsoring the development.

Overwrite Protection for Mailing Content

We’ve added overwrite protection for the Mailing Compose screen to avoid situations where multiple people are editing the same mailing and the first person's changes are overwritten by the second, with no notification.

Now, if you and a colleague are both editing the mailing content at the same time, the first version to be saved is the one that gets kept. The second person to try to save will see a warning:

The Compose screen will be reloaded with the currently saved version.

Note: This protection is already present for Targeting -- the second person to save the targeting will see the alert and be prevented from overwriting the recently saved targeting.

Thanks to Jase at DFA and many others at ClientCon for requesting this.

Staff Users

  • You will now see a warning if "is staff" is not checked for newly created staff users. This setting is required if you want your new user to be able to log into the admin, but you can ignore the warning if you are simply creating non-login accounts.
  • The two factor authentication button that is used to manage the logged in user’s 2FA setup has been moved from the Staff dashboard to the gear menu where the other account management options reside.
  • And searching by full name on the Staff dashboard now returns results.

Query Builder

  • We now support "tipjar" amounts in the Query Builder so that you can access separate donation values for product and non-product amounts given in one donation. The Donations > Orders > "Amount in US Dollars" and "Amount in Original Currency" items both now offer additional choices of "As Donation", "For Products", and "For Candidates". Thanks to Sara at FCNL for the suggestion!
  • The Query Builders for Users and Mailings both include options for displaying and filtering on state and federal legislative districts, but this was missing in the Query Builder for Actions, an oversight which has now been corrected. Thanks to Nikki at One for flagging the omission.


  • We’ve edited recurring_update.html in the Original templateset to allow users to change the amount of the recurring charge without reentering all of their credit card information.
  • We’ve added an option to the CONFIG to control whether new Import pages are set to subscribe by default or not. This is found at CONFIG > Page Settings > Uploader. Thanks to Kenton at PCCC for the suggestion.
  • We’ve sped up the loading of the AB test page by preloading only a subset of pages. Thanks to Ethan at PCCC for inquiring!
  • We’ve also sped up the loading of custom field definitions for all custom field types. Moar ZOOM!
  • The custom field list pages will now keep the "name" column wider even if a long description is present. Thanks to Jase at DFA for requesting this.
  • You will now see line numbers when using the code editor while editing templates, page content or mailing content.

API Bug Fixes

  • You can now filter event fields by event. Thanks to MoveOn for flagging this.
  • We fixed a bug where user zips couldn't be updated through the User endpoint. Thanks to Sam at Revolution Messaging for the report.

Other Bug Fixes

  • Hotfixed: Some transactions were showing out of order on the user donation history screen. This has now been fixed.
  • The default mailing list is no longer an option when selecting your Re-engagement list. This prevents the unfortunate situation where you run a migration and users who have been on your main list get unsubscribed. Thanks to NARAL.
  • Paypal donations were being marked core_order.status = ‘complete’ when the donation is initiated, even for donations that never completed. We now set core_order.status = ‘pending’ until the profile is fully set up. Thanks to Brookes and Ezra at Everytown.
  • When including "[something]donations" in your mailing content, the mailer will no longer think that this is a donation snippet and ask you to add a landing page. Thanks to for letting us know about this.
  • We fixed a typo reported by Chris at Demand Progress that was saying "1 user were merged" when you merge just 2 users together.
  • We will now treat empty strings as missing values for user recognition – so if a user has a blank entry for their phone number, and user recognition is turned on for the page, the user will see the user form. Thanks to Nate at MomsRising for flagging!


New Original Templateset

In your instances tomorrow will be a new Original templateset!

The previous Original will now be called "Original (before Fall 2016)". The old version is still supported, but all future development will happen in the new Original.

In addition to having a more modern and attractive look, the new Original templateset includes new features like multi-step donations.

If you’d prefer to use a one-page donation form, you still can; just switch the Donation Page Steps custom templateset field to be "All Fields On One Screen" instead.

We’ve also incorporated more mobile-friendly design elements, including a "Read More" tab that displays for pages with long introductory text so that the user form and button are higher up on the screen.

And your members can now update their billing address for recurring donations and we will submit that updated information to the vendor. This has the same limitations as when you update billing address for a member through the Admin interface -- only Braintree, and PayFlowPro accounts are supported. Members cannot update their billing address for Paypal recurring donations through this form.

Additionally, the billing address will be prefilled by the billing address stored in the core_order_user_detail table, and upon saving, will update that address in the table.

Your developers should find that this templateset is a bit easier to work with if you are making more complex changes – we’ve prepended ".ak-" to most of the ActionKit-specific classes that are used, and moved the CSS from the individual templates into actionkit.css.

Click through to see screenshots of some other example pages. We were inspired by the great designs of the ActionKit community, so groups may find that some pages look a bit familiar :)

Click through to read more about the changes to the Original templateset.

Big thanks to our beta testers for your feedback!

Built-in Customization Options

You can edit the templates to create your own custom appearance with the new Original templateset, just as you could previously, but you don’t have to. We used custom templateset fields to allow you to change the defaults for a few key settings like color and font without editing the HTML. These are already incorporated in the Original set. The most common customizations are available on the Settings screen:

There are additional, more fine-grained customizations that you can add from the pull-down menu. These are listed here:

We also added a featured image custom page field to your instance. This works automatically with the new Original templateset; to use it with another templateset you need to incorporate the page field into your templates. In the new Original templateset, images will automatically get resized to fit the image width specified for the page so that it will display nicely. To display an image, just add the "Featured Image" custom page field with the URL of the image you want on the page.

Event Snippet Changes for Mailings

We’ve added new date options for the {% withevents %} tag so that you can specify specific dates or a range of dates to be included in your mailing. Dates should be in the format ‘YYYY-MM-DD’, for example ‘2016-09-27’.

  • on_date: returns events only on this date
  • before: find events starting before this date
  • on_or_after find events starting on or after this date
  • days_from_today: return events exactly X days from today
  • min_days_from_today: return events at least X days from today
  • max_days_from_today: return events at most X days from today


{% withevents with user as nearby_user 'CAMPAIGNNAME' as campaign 30 as radius 1 as limit '2016-11-01' as on_date %}

They use the events’ local times to calculate the start dates. And for the "from_today" set, those are calculated relative to the "today" used by autoexcludes, which is set in the CONFIG.

We’ve also added an event_id parameter where you can specify a specific event, for example with use with a merge query. When this parameter is used, no other filters (like user, radius or date) are applied.


{% withevents with user as nearby_user 'CAMPAIGNNAME' as campaign merge.event_id as event_id %}

Miscellaneous and Bug Fixes

  • In addition to the changes last release that allow you to update users’ recurring billing information, changes to that address will now overwrite the billing address in the core_order_user_detail table for that order.
  • When targets change on a page that has a delivery mailing set up, the target set for the delivery mailing will automatically rebuild. The delivery files are not automatically regenerated; you may want to do this manually so your targets don’t experience a delay when they follow the link to download signatures.
  • We’ve added "District of Columbia" to state_select.html as a state option (in addition to the "Washington, DC" already present). Thanks to Chris at FCNL for the recommendation!
  • We’ve added counts of total signatures and shares/signature to the built-in Shares by Page and Shares by Date dashboards. Thanks to Hilary at Alaska Wilderness League for the suggestion!
  • The docs are now updated to use the same "{% withevents with user as nearby_user %}" construction as we use in the mailing event snippets (as opposed to {% withevents with as zip %})". Thanks to Sandra at Moveon for pointing that out!
  • You can now bulk edit reports if you have full Reports permissions. This was previously limited to just superuser staff. Thanks to Nikki at ONE!


We had a couple Django upgrade-related bugs that were hotfixed.

  • Setting up 2FA with a phone number was erroring as well as not displaying a phone number on the buttons. This has been hotfixed and in this release we have also put in a more permanent fix. Thanks to MoveOn, Everytown and SumOfUs for reporting it!
  • For mailings where there was both a limit and a random sort set, the de-duping of users from the mailing set occurred too early in the process and thus the resultant sample size was smaller than the limit set on the mailing (but targeted users were still random). This has been fixed. Thanks to Kurt at Demand Progress for flagging this!


Rapid-fire releases again!

This round has a lot of behind-the-scenes work as we’ve upgraded from Django 1.6 to 1.8. We’ve done extensive testing, but if something doesn’t look quite right or isn’t working, please let us know.

We’ve also updated our documentation design to make it easier to use with a persistent nav bar on the left. And it should be easier on the eyes too!


Bug Fixes

  • You can now update billing addresses for recurring donations for Braintree, and PayflowPro accounts from the admin on a user’s recurring profile page. The new billing address will be passed to the merchant vendor. This option isn't available for PayPal donations. Thanks to Elisa at StoryOfStuff for inquiring.
  • You will now only see immediate/batch delivery snippets on the immediate/batch delivery page. Some of the snippets that were shown previously didn’t actually work for delivery mailings. Thanks to James at The Syria Campaign and Robin at NARAL!
  • We made a few changes to the Staff Users tab. There is a new view for Active Staff, and when you search for a staff user, the search will now look through all staff accounts, whether or not they’re marked active, staff or superuser. Thanks to Jordan at CREDO for requesting!
  • PCCC found a problem where A/B tests on confirmation emails were causing intermittent timeout errors. We had hotfixed a patch, but with this release, are putting in the real solution for the problem. Thanks to Ethan and Kenton for reporting this!


  • Remember how way back when in January we said we’d stop updating the rand_id column in core_user? That finally happened. No more updates!


Hey ActionKitties! For this release we’ve been working on a bunch of bug fixes, updates to the shared user recognition beta, and we’re getting close to having a new Original templateset. More to come soon!

And as always, if you want to get in on the Remember Me beta and haven’t yet done so, just reply and let us know.

Mailing Bug Fixes

  • We fixed a sneaky bug where the mailings listed in the autoexcludes could in certain situations either show up twice or not at all. Thanks to Ultraviolet for reporting!
  • We made an adjustment to address a situation where a mailing send had the wrong status and blocked other mailings from sending. Thanks to Katherine at SumOfUs for flagging!

Documentation Updates

  • We updated the DonationPush API documentation to reflect that currency is the correct field to pass when pushing over donations made in a different currency. donation_currency is deprecated.
  • We clarified that for the default re-engagement activity queries only mailing-related actions count as signs of engagement and that new-to-list users are not protected from the re-engagement process. Thanks to Kenton at PCCC for inquiring.
  • The user source documentation has been corrected to note that the only way to change user source is via the API. Thanks to Nikki at ONE for asking about this.
  • And we’ve now made the docs searchable even when not logged into the admin. Thanks to Rivkah at MoveOn for the suggestion!

Miscellaneous Bug Fixes

  • We fixed a bug where custom page fields with just whitespace for the value would error upon saving, but the error would show up for a different field instead. Thanks to Kara at ONE for reporting!
  • The page_confirmation_mailing_stats query report now includes a start date for each confirmation mailing variation to help distinguish between the variations. Thanks to Eoin at SumOfUs for requesting!
  • We now ensure that when a legislative seat is set to "Vacant", the official_full field will also be set to "Vacant". Thanks to Kenton at PCCC for the report!
  • Setting skip_confirmation to 0 for a page will now send the confirmation email. Thanks to Benjy at Zazim for reporting!
  • And we also fixed a bug where GitHub OAuth ran into trouble if you were not using your canonical client domain when setting up the GitHub connection. This now works whether you use something like "" or "". Thanks to David at ONE for both finding the bug and figuring out a workaround.


  • For cases where there were multiple events in the same zip code, we had a bug where the closest event selected for users would always be the same event in that zip. Those events will now be shuffled. Thanks to MoveOn for asking about this!
  • You can now get a set of lists by ID via the API using this format:,2,3 Thanks to Ben at Alternet for inquiring!
  • And we’ve increased the timeout for reengagement queries to 2 hours. Thanks to SumOfUs for requesting.


Hey ActionKitties! We're making progress on the updated version of the Original templateset with initial feedback from several of you. And we expect to get Shared User Recognition to our first beta testers this week. A bunch of bug fixes and small improvements coming to your instance tonight, as described below:


We’ve made a couple improvements to the Original templateset.

  • We’ve updated the Google Analytics snippet to use Universal Analytics. You can update your own templatesets by copying lines 56-65 in wrapper.html of the Original templateset.

  • The country list for foreign language pages now includes a translation for "United States". Previously, all pages would show the untranslated "United States" as the initial default option in the country select. To fix your own country_select.html, replace:

    <option selected value="United States">United States</option>
    {% for std_name,name in page.lang_or_en.country_names %}


    {% for std_name,name in page.lang_or_en.country_names_us_first %}


We made a few improvements to the mailer targeting:

  • We will no longer rebuild the targeting if the only change on the targeting page has been to set or alter the mailing rate.
  • Adding or removing saved queries from the targeting will no longer take effect immediately, but upon saving (just like everything else).
  • You will now see a more helpful error message if a cached query that you are using for targeting has an error. Thanks to Jordan at CREDO!


  • You will now see a warning if you try to create a new custom field with the same name as a hidden custom field.
  • If you had an error in a user address when editing through the user profile, it used to be hard to track down because the address fields wouldn’t be displayed, or the address section may have been toggled closed. But now we make sure to expand the address block anytime there is an error in those fields.
  • When hiding a mailing or report from the relevant Browse All screen, you will now remain on the same page with the same search and ordering options after hiding. Thanks Jase at DFA for flagging.

Bug fixes

  • We fixed the "Allow Multiple Responses" setting (under the Advanced Options section of Action Basics) for new Petition and Letter pages - it’s disabled by default. You can change this if you have a page where multiple responses from one user are helpful. The default, which had accidentally been changed, reflects the common use case where you only want to deliver one signature per user. This only affects pages created through your admin, not through the API.
  • And we added back the link to "upload another" after saving a file to your media library. Thanks to Kenton at PCCC for flagging!
  • We added documentation on how to access the event starts_at datetime directly using {{ event.obj.starts_at }}. Thanks to Scott at Moveon for inquiring.

We also hotfixed several bugs so these changes are already live in your instance:

  • We’ve expanded the width of the date field in the Query Builder so that the whole year shows. Thanks to Hilary at Alaska Wild for flagging!
  • We fixed a bug where the link to add a tag while editing a mailing (using the ‘+’) was broken. Thanks to NARAL, Ultraviolet and Sumofus for reporting!
  • On the list page for custom page fields, the description column used to squish all the other columns if you had custom page fields with very long descriptions. So we’ve now implemented a max-width for the description column, and because with very long descriptions that could then make the rows very tall, we’ve also truncated descriptions in the list view to 255 characters. You can still see the full description when you edit a page field or when you’re adding a page field during page setup. Thanks to David at ONE!
  • We fixed a bug where reordering custom page fields would not affect the order of page fields when creating a new page. Thanks to Keith at Color of Change for reporting!


Hey ActionKitties! Rapid fire releases! We've got another release hitting your instances tonight, which includes the content type validation for custom fields mentioned previously. (Color wheels and type to search your image library -- W00T!).

Custom Field Content Types

You can now assign content types to custom fields: text, select, select with other, integer, URL, image, HTML and color. These are available for custom page, mailing, user and templateset fields.

These content types will provide different interfaces for campaigners using the fields.

  • Select and Select With Other allow campaigners to choose from a drop down menu of options.
  • Integer validates that only numerals are entered in the input, and also provides up/down arrows to increase/decrease the value.
  • URL validates that HTTP or HTTPS exist in the URL.
  • Image is a type-to-select field that searches for matches in your image library. You can also enter a valid URL.
  • HTML makes the WYSIWYG and code editor available.
  • And color provides a color wheel and slider bars to make it easier to pick a color. You can also enter a 3- or 6-digit Hex code.

You select the field type from a drop down when creating your custom field.


And here you can see the color wheel for a field designated with the color type.


Any existing field that uses "Field Choices" in order to create a select menu will be converted to a "Select" type of field in order to preserve the same behavior. All other custom fields will now be of type "Text", but you can update them to other field types if you choose.

Read more about the custom field content types here.


We’ve added relational information between query reports and dashboards to the reports list and edit screens.

Query reports used in dashboards will now show links to those dashboards.

And dashboards that use query reports will show links to those query reports. Some dashboards include many query reports, so we’ve hidden the full list. To see the entire list of query reports used in a dashboard, click on the "and X others" phrase which will then expand the entry to show the full list.


And on the change report screen, you will see this information at the bottom, just above the "Schedule and emailing" section.


We hope this makes it easier to tell when you’re working with a query report that is being used in a dashboard, or to get links to all of the query reports used in a given dashboard at once.


We’re happy when you’re happy, so we made the mailer even faster. More improvements to come!


  • Templates are now listed alphabetically (instead of reverse-alphabetically) by section within your Templateset.
  • Starting a recurring mailing will now start a background rebuild job so that you no longer have to sit and wait while it rebuilds before you can get your daily haiku fix and confirm the start.

Bug Fixes

  • We updated the LTE media database and fixed a bug so that we will automatically hide papers that no longer exist. Thanks to Jo at MoveOn for reporting!
  • We fixed a bug where a slow merge query could hang the mailing save. Thanks to Joe at Allout!
  • You can now use trailing comments in your SQL report – though with a limitation. Reports that end with a semi-colon AND have a comment starting with "--" or "#" will still error. But if the report does not end with a semi-colon, OR if you use /* */ style comments, then it will now be able to run. Thanks to Jase at DFA and Sky at MoveOn for the report!
  • We fixed a bug in the Query Builder where the SQL for getting first time recurring donor totals was missing a join. Thanks to Matt at 350 for reporting!


Hey ActionKitties! We’ve got an exciting release for you tonight with a couple new features we think you power users out there will like -- basic bulk editing and custom templateset fields.

But first, a reminder that we are looking for beta testers for our new shared Remember Me feature! Randall emailed on Monday, but in case you missed it, this is a feature to allow your users to be recognized, even if they aren't coming from an email (think Facebook, Twitter, etc!). This works ActionKit-wide: users can be recognized on your site if they've stored their info on any other participating AK site. Participation is 100% opt-in: nothing changes without your OK, you get a chance to preview before making anything live, and you can use it only on certain templatesets and page types if you want.

If you’ve signed up to beta, thanks! We’ll get you info on getting started soon. If you haven’t signed up, but would like to beta test this feature, let us know. Otherwise, we’ll be rolling this out after the beta period to everyone’s instance and you’ll be to turn it on at will.

And now for our regularly scheduled broadcast:

Bulk Editing for Pages, Mailings and Reports

With this release, we’ve added basic bulk editing functionality for pages, mailings, and reports. You can show/hide and add/remove tags from multiple items at once. Thanks to many of you for use cases!

This feature is available on the "Browse all" screen. Click on the "Bulk Edit" link in the top right next to "Show Hidden".


Select the action you’d like to apply. Click the link for all pages visible on the screen or click to select specific pages then hit Save. Confirm the count of objects to be changed in the pop up and hit Yes.

You’ll see a confirmation message with the number of changes actually made. This may differ from the preliminary count if, for example, a page you try to apply a tag to already has that tag.

A few things to note:

  • Hiding a page disables it. If a user goes to the URL for a hidden page, they’ll see a "Sorry, the URL you tried to load doesn't exist" error. This is true for all hidden pages, whether they’re hidden individually or in bulk.
  • Be careful hiding unsubscribe pages. If the unsubscribe page is used in one of your mailing wrappers, your mailing may fail and in any case, the page won’t be reachable, leading to irritated users marking your mailing as spam and quite possibly cats and dogs living together.
  • Currently you can "show" mailings that are hidden in bulk, but you can’t bulk hide mailings. We’ll be adding this, with some safeguards to protect mailings that are in use, in the future.
  • You can hide minidash reports, but since those reports display on your primary tabs, we use them whether or not they’re hidden.

And a more general note. There is no undo button so take care!

We’ll be adding more bulk editing options in future releases. If you’ve got a request let us know! We’ll also be improving the UI so it’s easier to tell which pages, mailings or reports you’ve selected.

Custom Templateset Fields

Also in this release, we’ve added a new custom field type for templatesets. They work much like custom fields for pages and mailings. You can use them to define templateset-wide values for things like your header logo, header background color, homepage URL, button color, disclaimer text -- pretty much anything you want to customize on a templateset-by-templateset basis and easily modify without needing to alter your code.

These are part of some exciting changes you’ll see in the coming months. As many of you know, we’re rolling out a new Original templateset with a modernized and prettified design. Later we’ll expose variables used in the templateset through custom templateset fields. If you like the new design, you’ll be able to customize elements like colors and fonts without editing the HTML. Of course you will still have total access to the templates so you can also modify anything you don’t like, or that doesn’t fit your feel, by editing the HTML.

You don’t need to wait on this however to start making use of custom templateset fields! To add custom templateset fields, expand the "Appearance" section in the Pages tab sidebar and click on the "Templateset Fields" button. This takes you to the list of existing templateset fields where you can add a new one by following the link.


To set the values of the fields for your templateset, go to your templateset Settings screen.


You use the templateset fields by including them in your templates as {{ templateset.custom_fields.FIELDNAME }}.

And you can also view, add, update or delete templateset fields through the API.

Read more about using custom templateset fields here.

Manual Improvements

  • We’ve added screenshots for most of our built-in dashboards so that you can better understand what the report will return before you try running it. Note that these have fake data so the totals might not always add up properly :)
  • We’ve added a section on translating account tools.

Miscellaneous and Bug Fixes

  • We fixed a bug in our From Line validation and have updated it to be compliant with the industry standard1. This means that you can now use parentheses in the sender name -- thanks to Ben from JStreet for reporting!

    With this change we now recommend that you put quotes around the "Name" section of a From Line.

    Ex: "Tanya A, We Also Walk Dogs" <>

    Most From Lines should not be affected by this change, but there are some very old Custom From Lines that will no longer be accepted, so if you copy one of these old mailings you’ll get an error when you save the copy.

  • We fixed a bug where copies of the "page_minidash" or "mailing_minidash" reports were not able to be hidden. Thanks to Nikki at ONE for the report!

  • And we fixed a bug where mailings could (mistakenly) use hidden reports in targeting, and the hidden report would not actually run. So if you copy an old mailing or model that has a now-hidden report in its targeting, you’ll see a warning telling you that hidden reports are not available for targeting use, and the hidden report will be removed from the targeting.

  • Finally, we made some improvements to bulk signature delivery, fixing a bug that caused some delivery job previews to fail. Thanks to Demand Progress!


Hey ActionKitties! The release hitting your instance tonight has a bunch of small changes. In the next couple releases expect to see an updated Original Templateset, including multi-step donations. If you're going to be at Netroots, let me know -- I'd love to say hi and give you a sneak peek.


  • We’ve added a section showing the status of your GitHub hookup so that you can see if a push was successful.
  • Highlighted diffs show changes in your template history. Scroll to the bottom of the history page or click on "View diff".
  • You can enter Preview mode for a templateset even if there were no changes to preview. Note that this has not been updated for the uploader, so you won’t see the Preview option if you drag and drop an unchanged templateset file into AK.
  • We now check for syntax errors prior to saving a template. If you have an error, you will be redirected back to the template edit screen and changes you had made will be preserved. Thanks to Ethan at PCCC for suggesting!


  • You can use commas to separate your list of counties in mailing targeting (in addition to semi-colons and new lines).
  • Batch delivery proofs and notifications will no longer be sent to inactive admins. Thanks to Tara from SumOfUs for reporting!

Other UI Updates

  • You can now rename files in the Library after you’ve already uploaded them. We’ve added an "Edit" link to the list of files. You can update the filename or directory. Note that you may break links to the old URL so you’ll see a warning before you save.
  • We’ve also added click-to-select links to the ten most common directory names previously used for both the file upload and file edit screens in the Library.
  • We’ve fixed a bug where wide report result tables were getting cut off. Now you can scroll to see the overflow. Thanks to Alex at and Shannon from UV for reporting!
  • We have increased the allowed length of parameters for custom query reports. Thanks to David Cole of for spotting.

Miscellaneous and Bug Fixes

  • We’ve fixed a bug where a bad snippet was included in the event TAF templates. We’ve updated all templatesets in your instance to use the correct snippet instead. Thanks to MPower for reporting!
  • We escape </script> tags in confirmation messages so that they no longer cause an error. Thanks to Conen at ProgressNow!
  • We no longer record a send for transactional mailings that hit an error during sending.
  • We’ve updated the congressional target database such that PA-02 is vacant and OH-08 is occupied by Warren Davidson. Thanks to Sandra at MoveOn for noticing!
  • We now display a prettier error message if you’ve entered invalid parameters when using the Advanced User Search.


Hey ActionKitties! Starting late tonight, you'll be able to use git with your ActionKit templatesets. Thanks to many a person for suggesting.

ActionKit support will be closed next Monday for July 4th. We hope you all get to celebrate a day of independence from your computer!

GitHub Connection for Templatesets

GitHub for Templatesets is here!

You can now connect your templatesets to GitHub so that you can use GitHub for version control and then push the changes over to ActionKit when you’re ready.

We support two branches per templateset – a live branch and a preview branch.

If you push a change to the preview branch, the altered templates show up as unsaved changes in ActionKit and you can use the Preview button to see the changes on your pages.


Then when you’re ready to make the changes live, push them to the live branch and those changes will be saved to your templateset.

Note that this is a one-way connection – changes made directly in ActionKit do not propagate to GitHub.

To set up your connection, go to the Settings screen of your templateset and toggle open the GitHub Connection section.

We need to know the repository owner, path and the names of the live and preview branches.

You can then choose to set up the connection manually by adding a webhook and a read-only deploy key, or you can choose to set it up via OAuth which will automatically connect your templateset, but it requires granting ActionKit read AND write access to your repositories.

Read more about it here:

We hope that this helps you better manage your templatesets. It also make it easier to compare new templatesets to the original to identify changes made in an update so you can apply them to your template (for example, the credit card expiration changes noted below). Let us know how this goes for you.

User Merge API

You can now merge users via the API using a new usermerge endpoint.

You need to specify the primary user, the user with the address information that you want to keep, and the other users who will be merged into the primary. Just as with merging users manually through the admin, the non-primary users will be unsubscribed.

Optionally you can also choose what lists the primary user will be subscribed to after the merge.

Read more here:

Miscellaneous and Bug Fixes

  • We’ve continued working on improvements to speed up the loading of the Mailings tab. And now it too has pretty pulsing dots while it loads!
  • We added a new Payment Total to the Users Query Builder. We also updated the Address field to note that city/state and other geographical information is grouped under Address.
  • We’ve updated the donate.html template in the Original templateset to have a dynamic expiration year list, starting with the current year and extending 20 years into the future. To use this in your own templates, copy the code for the expiration year select box and replace the hard-coded year values in your own donate.html template:
<select id="exp_date_year" type="text" name="exp_date_year">
  <option value=""></option>
           {% for year in exp_years %}
  <option value="{{ year.two }}">{{ year.four }}</option>
           {% endfor %}
  • We’ve also updated the event_create and event_attend templates in the Original templateset due to a bug where a few checkboxes on the event_create and event_attend templates were missing value attributes and prefills were failing. Now they prefill with the correct value when editing an event. We’ll patch this to your custom templatesets where possible. Thanks to Shannon at UltraViolet for reporting!
  • We now require email addresses for all staff users.
  • We’ve fixed a bug in the mailer targeting UI where you weren’t able to search for old mailings via the notes field. Thanks to Jordan at CREDO for the initial report.
  • End users will no longer see an error if the confirmation email has a syntax error. (But if you’re an admin and sign with your admin email, you will still get an error so that you can debug.) Thanks to Avi at Everytown for the report!


Hey ActionKitties. Custom snippets aren't going to win the fights for LGBTQ rights (starting with the right not to be brutally murdered), gun control and against anti-muslim insanity, but we hope the new features in this release will help you all to be a little more effective and a little more successful in your work. Our world certainly needs it.

As usual, you'll see these changes late tonight/early tomorrow morning.


  • You can now define your own custom snippets for use in pages, mailings and confirmation mailings from the CONFIG screen, if you have superuser permissions. You might use these to set a default of "Dear Member" instead of "Dear Friend" for use in mailings when the user’s first name isn’t saved to the database or to define a standard signature line. Read more under customizing snippets. Thanks to a chorus of requests at ClientCon!
  • We sped up loading of your Users and Mailings Tabs. Plus you get some pretty pulsing dots when loading your Users Tab now.
  • Tags in Page, Mailing and Report lists can be clicked to create a search for items with that tag.

Signature Delivery

  • We’ve simplified and clarified the automated email options on the Delivery screen for Petition and Letter pages. You’ll now select from "Immediate Then Batch", "Batch Only", "Immediate Only". The fields required for your selection will display once you’ve chosen. The core functionality is still the same, except that immediate delivery is always limited to 30/day (unless you override the limit) where previously you could limit to fewer per day before switching to batch.
  • We now check for syntax errors in delivery templates at the time of saving so you won’t have to wait for an email to tell you that you have a template error.


  • Customize the stats displayed on the Users Tab (just as page_minidash and mailing_minidash control the stats displayed for Pages and Mailings). You need to create a dashboard report named "user_minidash" (unlike for Pages and Mailings, this report does not already exist). Read more in the reports section.
  • Share counts for Facebook, Twitter and TAF are now included on the user profile screen.


  • Add a "Dashboard" section to your Proof and Send and Mailing Report screens. These pull from dashboard reports named "draft_dash" and "mailing_dash", respectively. Use for things like running a set of pre-flight checks on mailings before sending, or analyzing mailing performance in a customized way on the individual mailing report.
  • Proof and Send and Mailing Report screens now have collapsible sections. Thanks to MercyCorps for requesting.
  • We’ve added help text below the subject line field on the Mailing Compose screen so that the hidden feature of pasting multiple subject lines won’t be so hidden.
  • We fixed a tricky bug where tags, target groups, or users associated with an "Also Include" targeting set would not show up in the new copy. Thanks to Jay from DFA for reporting.
  • And we fixed a couple bugs related to the sizing of the mailing HTML preview section. Thanks to Alex at Represent.Us for reporting.
  • Behind the scenes, we made some updates due to new improvements in SendGrid’s ability to distinguish between true spam clicks and clicks on the header unsubscribe link in Gmail.

Clicks on that Unsubscribe link will no longer be recorded as spam unsubs.

Reports UI

  • Display Definitions on your query reports and dashboards using a new Notes field. Notes display below your results when run in the browser and when sent by email, except for results requested as CSV/TSV.
  • Reference a list of tables and fields from a SQL query report. We’ve added a new Tables browser in the toolbar of the SQL editor. You can search for table names, see the field names in each table, and click to insert the table name or the field name into your custom SQL query. Enter multiple words separated by spaces to search for tables that contain all of them; for example, searching for "name email" will show tables that contain name and email columns, in any order. You can also reference this in the SQL box using the query builder, but clicking doesn’t do anything.
  • The Reports Tab now offers alternative displays for recently run and recently updated.
  • On the report list, identify report type by looking for "Dashboard" next to the short name.

New Dashboards and Query Reports

  • Action Takers by Jurisdiction report: You can now select Senate, House, State Senate or State House and see a report of action takers for a page, broken down by target within the relevant body.

  • Daily Overview Dashboard: This dashboard provides a top-level look at the actions, donations and mailings of the past 24 hours. You can also copy this dashboard and change one line if you want to have a weekly overview dashboard as well:

    From this: {% with now|date_add:"days=-1" as yesterday %}

    To this: {% with now|date_add:"days=-7" as yesterday %}

  • 24 Hour Mailing Response Dashboard: View basic mailing stats at 1 and 24 hours after send per mailing. You choose how many days worth of mailings you’d like to see (so enter 7 for mailings sent in the past 7 days). Charts are included for mailing open rates and action rates by default, but you can turn these off for speedier results. And you can set your timezone (defaults to ‘US/Eastern’). Recurring mailings are excluded from this report.

Bug Fixes and Miscellaneous

  • Facebook share cache is now automatically cleared after any changes to your page’s sharing options. Hopefully you’ll have fewer trips to the Facebook Debugger!
  • Fixed a bug on the Page Drilldown Dashboard where unsubs from mailings weren’t showing up in the overall stats. Thanks to Kurt at DemandProgress for the report!
  • Fixed the Rolling 12 Month Email Performance Rates Dashboard that had started returning zeroes for rates. Thanks to UltraViolet and MomsRising for reporting!
  • Fixed transactional mailing reports that were overcounting new subscribers.
  • Big news! We’ve laid to rest "ActionKit Information v2.0", and say hello to "ActionKit Manual". Perhaps more importantly, we’ve updated report descriptions, added which action is linked to from the transactional mailing tables (h/t Tara from SumOfUs), and added documentation for the force_list filter which causes any value to be treated as a list.
  • We fixed the campaign title snippet in both event taf templates. Thanks for MPower for reporting.
  • We got rid of the velocity check under spam check options to reduce false positives.
  • We updated state target information with new data from our vendor.


Hey ActionKitties! We're rolling out some more features that were previewed at ClientCon and some other improvements you all identified there. You'll see these in your instance later tonight.

If you're going to be in New York for the Personal Democracy Forum on June 9th and 10th, let me know so I can say hi!

User Merge

As previewed at ClientCon, you can now merge users in the ActionKit admin from the new "Merge Users" button on the Users Tab.


A user merge moves actions, donations, events and subscriptions from one or more users to a primary user you designate, and also copies custom user fields, phones, and an address of your choice. By default, the primary user is subscribed to all the mailing lists any of users are on, but it’s also possible to choose specific lists.

You may find this useful for cases where you have multiple email addresses for a single person. For example:
  • If a donor informs you of a recent email address change and now has multiple users, you can merge the old user into the new user.
  • If a user mistyped their email address when taking action, you can merge the action from the bounced user to the correct user.
  • If a supporter informs you that they’re receiving duplicate email across multiple email addresses, you can combine the records from all the users into just one user.

Once you’ve identified the users that you want to merge, click "Merge Users", enter the IDs for the users to be combined and submit. You'll see a table of the users where you can select the user you want to keep and designate the mailing address to keep. Optionally, you can customize the mailing lists to which the user will be subscribed.


Once this page is configured, you can choose to get a preview of the merge results or start the merge. This step will take a few seconds.

Only one user will remain subscribed. Mailing history and user names are not merged.

We expect to add user merge to the API and/or the importer in the future.

New Page Drilldown and Amounts Raised by Source Reports Added

The Page Drilldown dashboard provides a one-stop overview of everything related to a specific page or campaign, including action counts, new to list counts, related mailing rates, sources of actions on the page, and after action stats. The report includes definitions of key terms.


The Amounts Raised By Source dashboard shows several stats that are helpful if you want to get a sense of the Return On Investment for users. The report shows the total raised, total by user and total by user month, all broken down by user source (which is the source of the first action the user took in ActionKit). A sample of the first couple rows is shown below. Thanks to Hillary at Alaska Wild for suggesting.


Query Builder Additions and Improvements

  • Actions You Want To Count: Last month we added a checkbox that you can use to designate pages you want to include in your action counts. This is still located in the "Advanced Options" section on the "Action Basics" screen, but we renamed it "Include In Reports Of Member Actions". Checking this box still adds a "1" in the "real_actions" field for the page in the core_page table.

    There are now "member action" options in the query builder that allow you to limit your action counts to just the pages you designate in this way. For example, from the user query builder, you can limit to "Member Actions" when you select "Number of Actions".


Similarly, you might filter an Action query type using the new "Member Action" option in the Page section to limit to only actions on pages with this box checked.

  • More Custom SQL Options For Advanced Users: The Custom SQL choice option also includes a few Preface options which may be useful in some specialized cases. Choose Explain to have the database return a query plan showing which tables it will examine to perform the query, and which indexes will be used; this can be useful when trying to understand why a query is running slowly.

    Choose Big Selects to set the sql_big_selects option which instructs the database to ignore the default MAX_JOIN_SIZE limit; you may need to include this if you are querying a large table such as core_usermailing. Be careful though! Max join size errors can also come from leaving out the join condition to connect to tables (like "core_user join core_action" without " = core_action.user_id"). Check that you haven't made a mistake like that before continuing, especially if you aren't querying a large table.

  • Additions: We updated "Number Of Subscription Status Changes Of These Types: Subscribed" in the User query builder to include all the change types corresponding to a new subscription or new unsubscribe. Thanks to Kurt at Rootstrikers!

    We added the ability to search by event ID to the User query builder. Previously, you could only generate a list of attendees for a particular event by starting from the Events query builder. Select "Number of Signups" in the Events section to see these choices. Thanks to Allyse at for requesting!


Advanced A/B Testing For Pages Options

  • We've exposed A/B test data to page templates. Information about any A/B tests the user is currently enrolled in is now exposed to the Django templates. This allows for custom tests of page layout or other behaviors that aren't covered by the built in A/B testing functionality. There's a new "Accessing Test Information Via Templates" section in the documentation that explains which variables are available. Thanks to Aaron at DFA for requesting this feature and describing a good use case for it!
  • We also made some improvements to the way that tests work with externally-hosted pages and more clearly described that functionality in a new "Running Tests on Pages Hosted Outside of ActionKit" section of the documentation.

Mailer Improvements and Bug Fixes

Lots of stuff here!

  • The copy button shows on the proof and send screen regardless of mailing status (e.g. it shows while the target set is still building). Thanks to Kenton from PCCC for requesting!
  • The list of Mailings on the Target screen in the mailer is now sorted consistently by date and then by ID, both in descending order. We had changed this inadvertently while releasing another feature. Thanks to Mark at CREDO for noticing!
  • The list of Mailings is now broken down by date for sent and scheduled mailings, whether or not you have auto-excludes enabled.
  • We made several improvements to merge queries:
    • You can now include a mailing using a merge query in a test group. Thanks for Jay at DFA for reporting you couldn't previously.
    • We made merge queries and the query builder play more nicely together. Queries that use UNION still don't work as merge queries however.
    • Merge query snippets will display. Previously these would sometimes fail to display when the query job was still running. We change the code that finds the column names for the snippets so it will keep trying instead of failing if the job hasn't completed.

Re-engagement Improvements

  • If an engagement query fails, the mySQL error message will now appear on the re-engagement overview screen to facilitate debugging.
  • This screen now also includes the run time of counts and migrations in h:mm:ss format, which helps to understand the query performance and scheduling.
  • We changed one of the default engagement queries. The Recent Mail Actions (engagement_actions) query finds users who took action from a mailing in the last N days. We realized that we were counting actions from forwarded mailings. It's possible for a user to receive a mailing, NOT take action and then forward that mailing to a friend, who does take action, but doesn't click the "Not Tanya Africa" link and enter their own information. In this case, an action is recorded for the user who originally received the mailing not the friend who actually submitted. With this release, if the action has a referring_user_id, we won't count it as an engagement action. This isn't likely to significantly change your counts but it corrects for a corner case by keeping non-action-takers on your re-engagement list.


  • Where's My Data has been updated with the core_transactionalmailingunsub and core_mailingadditionaltargeting tables.
  • Click to open in a new window is back! Thanks to several people for requesting at CC16. With this change, if you hold down the command key (Mac) or control key (Win) while clicking the Copy link on a tab or list page, after you confirm the copy in the Sweet Alert, you should get the edit form for the new in a new window / new tab (depending on your browser's settings).
  • The admin should now consistently respect the staff user's local time setting. Thanks to MercyCorps and Zazim for flagging where this wasn't the case!
  • If you change the "Redirect URL" for a page to send users to a custom thank you or another action page and then copy that page, the "Redirect URL" will also be copied to the new page. Thanks to Courage for requesting!
  • We won't create the initial sale when a new recurring order is pushed using the REST API against an import stub account. Thanks to SumofUs for requesting!
  • More better UI. In this release we fixed problems with form labels lining up with the form field in the admin, improved the alert styling, and made other minor improvements.


Hey ActionKitties! It was wonderful seeing so many of you last week at ClientCon.

A couple of the features we previewed are coming to your instance late tonight. In the next release, we'll be adding tools for merging two or more user records into one (and transferring action and donation history to the primary record). Intern farm access to follow soon after.

New User Donation History View

Like the action and mail history, you can access the new donation history from an individual user record. The history offers a complete record of a user's donations and attempted donations, including each payment toward a recurring profile.


Make Your Own Templates

With this release you'll be able to add your own named templates, so you can reuse bits of template code. This does not allow you to create a new page type, but you can use the template code in any of your pages, within the same or another templateset.

As you can see below, on the Templates screen for a given templateset, there's a new button to Add Template. Templates you've added show in a Custom section below the built-in templates. The example below shows how you might use this new functionality to quickly insert cat videos on some or all of your pages. We added a template called video. This could then be displayed on any page by inserting the following in the relevant template: {% include './video.html' %}.


You can add templates from within a templateset, by dragging them onto the Drag and Drop implementation, or by including them in an uploaded zip.

Record External Recurring Profiles And Payments Using The REST API

You can post recurring payments and even failed attempts to a stub account. Read more about this here:

Miscellaneous and Bug Fixes

  • Easier query library targeting in the mailer. Just select your query. You'll no longer need to select your query and then click "Add query", unless the query report you select uses a parameter, in which case you must enter the value (e.g. the page_id for the "new users from page" query) then click "Add query".
  • We made the Compare Mailings report great again! (Cell-padding is back as well as some additional UI prettiness).
  • Orders can be sent to the REST API without import_id.


Hey ActionKitties! We're looking forward to seeing many of you at ClientCon next week. In the meantime, we've got a feature-packed release coming to your instances late tonight.

Easy OR Targeting For Mailings

You can now join targeting selections using OR without writing a SQL query or using a query report. This significantly increases the power of the built in targeting options.

This was tricky! We hope you're going to like the approach we've taken. It required an overhaul of the targeting screen layout -- includes and excludes are no longer side-by-side, but instead are displayed vertically and we've moved the limit and ordering settings down to the bottom.

We changed the wording about 10 times and still didn't come up with something that everyone here thought was clear, so, please take a look at the screenshots and detailed description at the bottom of this message to make sure you understand how this new option works (and for the bonus targeting set up shortcut). Questions and feedback welcome!

New Recurring Donation Reports

We've added two new dashboards (and related query reports), titled "Recurring Donations Summary Dashboard" and "Recurring Donations Summary Charts".

The Summary Dashboard shows counts and sums for your recurring profiles in several categories (e.g. all with a payment, new, failed, cancelled) for the year to date, the month and the previous month, plus projected numbers for next month. It also shows your top sources, pages and mailings for generating recurring commitments. Be sure to review the definitions at the bottom.

The charts provide a year-over-year look at recurring donation payments, active new and cancelled profiles, and failed payments

Thanks to Hilary at Alaska Wild for initial review!

New Query Templates For Reports

The new recurring donation reports also show examples of three new templates we've added:

  • Condensed + allow links: Uses smaller font and more condensed spacing than the default template. Also allows links.
  • Google Table: Uses the condensed template but displays the data in a Google Table to allow for sorting via the column headers. Links are still supported.
  • Google LineChart: Displays the query results as a Google LineChart. You can change the table class to use a different Google Chart type.

You can use these with your own reports.

Other Report Improvements

We added a new Django template filter function which generates links in your reports. Read about how to use this filter in the Custom Filters and Tags section of the Developer's Guide.

We updated the built-in Sharing reports to use transactional mailing tables for TAF.

Transactional Mailing Tracking Finished

With the addition of tracking unsubs, spam and bounces back to confirmation mailing sends.

SSL Everywhere

We can now configure your instance so all links to your action pages use SSL. If you want to do this, let us know through support.

More Control Over How ActionKit Treats Your Sub-domains

If you're happy with how your links are working ignore this section! You don't need to do anything, ActionKit will keep working exactly as it did before.

Previously we've treated all the sub-domains of your ActionKit domain as client domains. This mainly affects how links in mailings are handled - links to URLs in your client domains will arrive with their special ActionKit tracking parameters intact - "akid" for example. In special cases you may not want those parameters sent to all your domains. You can now suppress this behavior. You'll find a new entry in your Client Domain list which you can delete.

Miscellaneous and Bug Fixes

  • We improved the load time for user action history screens and added pagination.
  • We added an example to the REST Mailer API docs showing how to add preview_text.
  • We made it easier to drag and drop criteria into the "OR" box in the query builder. Thanks to ONE.
  • We removed caching for recent_actions. This was causing sporadic failures. Thanks to PCCC for reporting.
  • We made a change to allow PayPal cancellations/errors to bounce users back to the referring URL like non-PayPal donations do. Thanks to MercyCorps for the use case.
  • We fixed a bug that caused custom field values not to display for the host of an event when the host was updating an existing event. Thanks to Everytown.
  • We'll return an error message if your links don't start with http(s) in your mailings. If you include a link like <a href="">, some email clients including gmail will show this as a link, but others won't. This can lead to a situation where you tested your links and they worked but they don't work for many users.
  • We've added code that tries to confirm that your link has the full URL. Thanks to Climate Truth for reporting.

Detailed Description Of "OR" Targeting

Here's what your targeting screen looks like with the change to the Includes and Excludes ordering:


And here's how it works. First select "Add Criteria To This Set" to access a pull down showing all the targeting categories (e.g. "Lists", "Tags", etc.). Make your first selection and enter your criteria (e.g. select "Main email list" under "Lists"). To add a 2nd criteria and join it to your first selection using "AND" click "Add criteria", select another category and enter your criteria. This works exactly as selections under Includes work now.


This is your first inclusion set.

To join other criteria using "OR" you create a second inclusion set. Click the grey "Also Include Another Set of Users". This adds a whole new section where you can select from all the same choices.


Anything after "Also Include" is an additional inclusion set.


The selections shown above will target everyone on your main email list who has taken action on a page tagged "climate", regardless of where they live, and everyone on your main email who lives in CA, regardless of what actions they've taken.

This new option is only available under "Includes". Categories under "Excludes" are already joined using "OR".

Some things to note:

  • If you have a Mailing List or Language selected under Mailer Targeting Defaults, these will show in each new inclusion set that you add.
  • Query reports are currently only available for "Includes" in your first inclusion set. (E.g. you can't join a query report using "OR".)

Bonus: For you speed demons out there, you can click "Add criteria" then enter the first letter of the first targeting category you want (e.g. A for Actions), hit return, tab and hit the first letter for a 2nd category (e.g. M for mailings) in the same inclusion set. Then go back and make your selections in all the relevant categories.


Hey ActionKitties! We've got a few fun things coming to your instance late tonight/early tomorrow.

In the works, hopefully for a release before we see many of you at ClientCon, we're adding an option to post payments toward a recurring profile using an import stub account, an easier option for combining targeting criteria using "OR" in the mailer and some awesome new recurring donation reports.

Designate pages you don't want to include in action count reports

Many of you use import pages for multiple purposes, including recording actions taken elsewhere (e.g. petitions) and updating user records. Currently, an action is recorded for the relevant user every time you use the importer for either of these purposes. Initially our built in reports tried to exclude actions taken on import pages, but many of you have asked for a way to indicate which actions should be counted on a page by page basis.

In this release, we've added that option. You'll see a new checkbox for "Include This Page In Action Counts In Reports" on the Action Basics screen for every page type. By default this is checked for all pages except Unsubscribe, Recurring Cancel and Import pages.

We have not updated any reports to consider this new setting. We'll be updating built-in, action-related reports to use this in a future release, although we will leave any reports tagged "mailer" as is so we don't change anything you're using in mailing targeting. We'll also add this to the query builder.

In the meantime, you can customize your own reports to use this setting by editing your SQL. The checkbox corresponds to the new "real_actions" field in the core_page table. Pages where you check the box will have real_actions=1.

More jurisdiction options for custom targets

You can now assign the following additional jurisdictions to custom targets: city, state; city, country; or county, state. Custom target groups with the jurisdiction work like legislative target – where the target only receives actions from their constituents. You can read more about how this works under Custom Targets in the manual.

Please note: we currently assign users to a county based only on their five digit ZIP Code, even if we have complete address information. This is similar to the approach that we use for federal legislative districts (where we don't require address, but we will use full address data if we have it). County designations correspond even more closely to ZIP Codes, but there will be a small number of counties that are assigned incorrectly using only ZIP Code. We are looking at options for using the full address to assign County for a future release.

Preview text can now be set using the mailings API.

Clicks and Actions Tracking Added For Transactional Mailings

And the built-in reports have been updated to include this information.

We're using a better geocoding system for US zips.

Let us know if you see anything weird.

Bug Fixes And Miscellaneous

  • Canceled recurring orders are excluded from the from 'expires this month' and 'expired last month' built in mailer targeting query. Thanks to Hilary at Alaska Wild.
  • We fixed a bug that MoveOn encountered with events mailings that was triggered if a user near an event changed their zip code while the mailing was sending.
  • Staff users with view only reports permission can search for Reports on the reports tab. Thanks to Jase at DFA for reporting that this wasn't working.
  • CREDO's Page mini-dash report was failing due to unicode in the page name. This has been fixed.
  • Share tracking accepts share IDs as starting points thanks to Alex at


Hey ActionKitties! We've got a bunch of new stuff coming to your instance tomorrow, described below.

Also, please welcome new Walker, Jin Ding. Many of you know Jin from her years at CREDO Action. When we learned that she was moving on and looking for a new challenge, we snatched her up! She's taking some support shifts so you're likely to hear from her in future.

Merge files are deleted if they aren't used for 30 days.

As mentioned previously, this applies to merge files that were last used in a mailing that was sent 30 days ago or a draft that was last updated 30 days ago. If a merge file is not connected to a mailing it will be deleted 30 days after upload.

Integrated Preview Text/ Preview Text Testing

Many of you are already setting preview text for your mailings using a custom field. In this release we add preview text as a field, right below subject, so you can enter it directly on the Compose screen.

Preview text is the text that most email clients will display after the subject. In Gmail, for example, preview text is displayed after the subject with a dash between subject and preview text.

For preview text to work, your email wrapper must support it. We've added the necessary code to your existing wrappers, but be sure to view proofs of your first mailing.

We've also added testing. You can easily run a test to see which of two or more subject line and preview text combinations performs better with your list and send the winner to everyone who didn't receive the test.

To run a test, just enter a subject/preview combination. Click the plus sign (+) to add more subject line fields. When you add another subject, the preview text from the previous subject line is copied. You can edit it or just leave it and use the same preview text for both.

The preview text is included in the mailing stats table where you can select your winner.

More Transactional Email Tracking

We added open and click tracking for confirmation, TAF and notification emails and added some reports to help you use this new data. The Transactional Mailing Performance report shows sent/open/click for a Page or Campaign that you specify for any transactional mailings you've associated with the Page or Campaign. Action tracking and more reports coming soon!

Turn Off The Visual Editor Option For Your Instance

For all you WYSIWYG haters out there! This option is now available on the CONFIG screen. If you click to turn off the visual editor globally, it will not be available for any staff members anywhere in your instance.

Add A Default CC To Your Support Tickets

Available on the CONFIG screen.

Mailings Dashboard Improvements

On the drafts view of the Mailings Tab, scheduled mailings show above undated drafts (but under any auto-exclude dated mailings).

New blank drafts that are created as part of a Mailing Test Group are all added at the top of the drafts list now.

Reports Support Full-Page Mode

The dashboard report form's HTML field now uses a standard code editor, adding HTML/CSS/JS/Django syntax coloring and a full-page mode. The query report form's SQL now field now uses a code editor, adding a "plain" mode and a full-page mode.


  • We added a "subscribed" field to the core_subscriptionchangetype table. If the change type (e.g. "Subscribed by Import", "Subscribed by API") recorded in the core_subscriptionhistory table indicates that the user was subscribed to one of your mailing lists, there's a 1 in this column. You can use this in your own reports to avoid updating your SQL when we add a new subscribe or unsubscribe type.
  • The ISO code for languages is now required.
  • There's a link back to all templatesets from the template picker for any individual set.
  • Event host and attendee reminder snippets now include a {% requires_value events %}. These mailings will skip users in your target set who don't have a current sign up to a future event.
  • "Rev." for Reverend is now recognized as a standard prefix.
  • You can't hide a report that's used for targeting for a recurring mailing or one-time draft.
  • We're using a faster approach for bulk unsubscribes resulting from the re-engagement system.
  • More sidebar help, updated table directory and other manual updates.


Hey ActionKitties! Ongoing UI improvements and lots of other smaller items in this week's release, which you'll see in your instance tomorrow morning.

First, a heads up about a change coming in a future release. We'll be deleting merge files that have not been used in the last 30 days. (This means merge files that were last used in a mailing that was sent 30 days ago or a draft that was last updated_at 30 days ago. If a merge file is not connected to a mailing it will be deleted 30 days after upload.)

Braintree Transparent Redirect code has been removed: Transparent Redirect support has been deprecated for over a year. In this release it is removed altogether. All Braintree accounts are now CSE accounts, and have CSE keys. Don't expose old donation pages or re-use old templatesets for new donation pages without testing them to make sure they have the latest CSE code.

New data source for federal legislators: So let us know if you see anything strange. This is for federal legislators only, not their Legislative Directors.

New Tutorials Content: The Tutorials and Videos link in the user's guide index will takes you to a new WordPress directory where we've added several new tutorials with screenshots and expanded on existing ones.

WYSIWYG and code editor available for making email wrappers and query templates, respectively.

Unsub counts have been added to the page and action query builders.

Confirmation required when you change the default for objects like templatesets and email wrappers. It's very easy to change your default using the pretty new default checkbox on these lists so we've added a pop up for confirmation.

Order.reverse now available through the REST API.

SQL_BIG_SELECTS is on for reengagement queries. Re-engagement queries were sometimes timing out for larger groups. This should fix the problem.

Custom mailing field descriptions support line breaks and some help text has been clarified.


Hey ActionKitties! Tomorrow morning in your instance you'll see the first phase of our new transactional email tracking, more UI improvements, new documentation sidebars for Reports and more. In the coming weeks expect to see more on transactional emails, preview text integrated into mailing creation, and "or" targeting in the mailer.

Transactional Email Tracking

We're now tracking after action emails. This includes the confirmation email sent to the user after they submit, tell-a-friend emails sent by the user to their friends from the TAF widget, and any notification emails the action prompts.

The mailing is saved to the new core_transactionmailing table and the record of which mailing was sent to which user prompted by which action is saved to core_transactionalmailingsent.

You can also see a list of the transactional emails prompted by any action from the action history screen for any user. Just click the arrow to open up the details under the action.

Open and click tracking for these mailings coming soon!

UI Improvements

  • The name of the page, mailing, report or other object you're viewing in the admin is now displayed in the title for the tab in your browser. Thanks Jase at DFA for suggesting.
  • We added a sort handle for screens where you can drag and drop a list of data objects into a different order (e.g. tags).


  • Paste multiple subject lines - If you copy multiple lines of text from a document and paste it into a mailing subject field, extra subject lines are created to hold them all. H/t Jordan @ CREDO for suggesting.
  • Hold down the shift key while you invoke the command/control-return/enter keyboard shortcut to save and continue editing.

Bug Fixes and Miscellaneous

  • We fixed a bug with dragging mailings into the autoexclude priority box on the targeting screen thanks to Michael @ Faithful America.
  • We fixed a bug related to adding custom SQL expressions in the query builder thanks to Conen @ ProgressNow.
  • There's a new FEC ID field for candidates. Thanks to MoveOn for requesting most recently.
  • We've added contextual documentation to most screens in the admin now. Just click the Orange question mark to see information about the options available on the screen.
  • We're also turning more of your questions through support into FAQs for things like using emoji in your mailings.


Hey ActionKitties! In your instance tomorrow you'll see a bunch more UI work, media library improvements and some bug fixes. You won't see (but it's there!) a bunch of behind the scenes progress we've been making on two exciting features: Open, click and action tracking for transactional emails (e.g. confirmation, TAF and notification emails). Quickpay and one-click donations through Stripe. More on both of these soon.

Lots more UI work in this release!

  • Standardized and responsive object lists in the admin, some with search. View your tag list on your phone. Search for a specific tag. Search has been added for multilingual campaigns, short links, page, mailing and user custom fields, templatesets and delivery jobs.
  • Account tools list includes the name of the template defining the appearance for each.
  • Address info is in it's own collapsible section on the user record. Click in the address box to access individual address fields.

Media library improvements. We're still looking at adding a way to upload an image and search and select an existing image while working on a page or mailing.

  • The list view starts off just showing the folder/file name without the full bucket path, then you can click the filename to copy the full URL.
  • The pixel dimensions of images are shown in the list view.
  • There is a standard Delete link.
  • When uploading a file you can choose a different filename to use for it.
  • After uploading a file, you return to the listing page with the newly-uploaded URL in a message box at the top, rather than to a separate "success" screen.

Mailing set rebuilds. We made one more change to speed these up. And we've added a notification that you'll receive if ActionKit needs to kill one of your mailing count jobs.

Bug fixes

  • We fixed a bug that caused users created while a re-engagement query was running to be considered unengaged and a bug with the prefix field in user form fields customization. Thanks to MoveOn for reporting both!
  • We fixed a bug that CREDO found that caused very long links to overflow their table cells.
  • And we fixed some problems with merge queries aliases. Thanks DFA!


Hey ActionKitties! In this release (in your instance tomorrow morning), you'll see an improved autofill widget, a return to the old mailing preview in-line behavior and a few other things.

Descriptions below, but first a big thank you to everybody who helped us shake out bugs in the prettified admin UI, including Jon and Paul @ SumofUs, Matthew @ 350, Ethan @ PCCC, Jay & Eden @ DFA, Mark @ CREDO and probably someone else I forgot. Fixes were hotfixed to your instances last week.

Autofill widget improvement: In many places in the Actionkit admin, the select box allows you to type in some letters and displays the matching objects. We switched to a new plug-in to power these widgets. We think you'll appreciate the change — I certainly am. Even if I type quickly, there’s no visual jumpiness and the box doesn't eat any of the letters I typed! Also it seems to consistently offer actual matches. To see it in action, when you log in tomorrow, type in part of a page name on the Download Actions report (accessed from the Reports Tab) and bask in the speed and smooth rendering.

Mailing preview inline and preloaded: In response to popular demand, the mailing preview loaded from the Proof and Send screen again displays on the same screen instead of opening a new tab. We've also returned to pre-loading these unless the mailing uses an uncached mail query. If you're seeing long wait times for a mailing, we recommend using the refresh setting on your query report.

Model mailings no longer require subject or from line selection.

Kill Jobs faster: From the Manage Jobs button on the Mailings and Reports Tabs you can stop a mailings target set from building or a report from running. Stopping these more quickly helps protect against any pile-ups caused by bad or slow-running queries.

Lab test variations are now included in the "Pages - Edit, View, Create" permission group.

Table directory updated.

New date_add template filter: This filter adds a given offset to a datetime value. Read about it here (tomorrow when the release is out).


Hey ActionKitties! Tomorrow when you log in you'll see a number of changes to the UI designed to simplify your workflow and smooth out some rough edges. Let us know what you think!

NOTE: We're deprecating rand_id. Our code doesn't use it for anything. If you're using it for something please let us know. We will stop updating the value as of 2/1 and delete the columns on 3/1.

UI Improvements: We've standardized and improved the layout for many elements in the admin, specifically:

Based on input from ClientCon, the design sessions we held at Netroots and ongoing input from many of you, we've cleaned up the interface and re-ordered the settings for the Page creation screens.

  • Less frequently used page settings are now in the "Advanced Options" section on the Action basics screen.
  • We added a "show multilingual" option to your CONFIG. This starts out enabled, but if you never use other languages you can uncheck it, and we will hide the Multilingual Options section from your page admin screens.
  • We moved the user form field section to the bottom of the "Edit Content" screen, below the text boxes.
  • We added "tooltips" for many settings. If the label for a setting is underlined you can hover over or click on the name to see some help text. We'll be moving most of the grey text visible on admin screens now to these tooltips.

We added "from Model" buttons to the Pages and Mailings Tabs. These open a list of your models. Selecting one makes a copy of the model for you to use as the basis for your new mailing or page. You won't see this button if you haven't created any models yet.

There's a new link to Add a Page of the relevant type on the "Browse by Type" results screen.

We moved Staff to a new tab, separate from Users. The Users Tab displays a list of your end users with some key information for each. You can toggle between views sorted by "Recently Active" or "Newest Members". The Staff Tab also has a list of staff users and views for "Recent Logins" and "Newest Staff".

The individual user record is now mostly in a single column format with improved formatting. We're considering future changes to this screen, including breaking out donations into a separate section. Input welcome.

The "Browse All" view now matches the primary view on the relevant tab.

We also added support for submitting on any page in the admin with a keyboard shortcut. Pressing command/control or return/enter submits whichever form you're focused on, or tries to figure out the "main" form on the page. If there's a "main" button (like "save and go to next step") it clicks that, or falls back to any other submit buttons on the page.

Set Required Fields For Donation Pages Using PayPal: By default, PayPal donations only require the user to select an amount before donating. With this release, you can set additional requirements for your page. On the Action Basics screen you'll see a new "PayPal User Requirements" setting. You can leave this at the default or select "Require email" or "Require name, email and address." Read more about our PayPal integration at, including what we need to hook up your account if you don't have this set up.

New snippet for including the "tip" users leave in addition to a product order or candidate contribution. You can use {{ order.other_amount }} on thanks pages and in confirmation emails to show users the portion of their order which is not for a product or candidate.

Petition download links expire in 90 days. Currently PDFs created for a signature delivery expire after 14 days in order to conserve disk space. We've extended that to 90 days.

More event email improvements in the Original Templateset. Event hosts can now set a subject for emails to co-hosts and attendees.

To get this change and other recent improvements, update your templatesets by replacing the event_contact template with Original's event_contact template and confirming that the event_email_from_host template (updated in the 2.2.14 release on January 6th, 2016) also matches Original.

A few mailer related changes:

  • Proof format changed for easier identification. Previously we prefixed proofs with square brackets (e.g. [Proof Mailing ... ] which gmail and other clients group with other messages with the same subject. We changed to {Proof Mailing ... } so these aren't included in the same thread. This actually went in last release (thanks to Jase for suggesting and flagging the oversight in the release notes).
  • Faster sends. We've tuned up some mailer code to speed delivery of your mailings to the relevant ISPs for transfer to your users inboxes.
  • Mailing Preview on the "Proof and Send" screen now opens in a new window. We also changed things so clicking preview for a mailing using merge queries doesn't re-run the queries.
  • Mailer API now includes MergeQueries and a preview method.
  • Mergefiles can be deleted.


Happy New Year ActionKitties! Hope your year end was filled with joy and generous contributions! We've got a big release coming to your instances tomorrow morning, including a couple particularly juicy mailings and event changes (do scroll down if you run events using AK).


  • User form field customization supports multiple phone types: Under "Customize Fields" on the Edit Content screen when you're creating a page (if your page uses a modern templateset), there's now an option for "separate phone fields". Check this box to convert the regular "phone" field to "home phone" and add choices for "mobile phone" and "work phone" to your field drop down. Unchecking the box converts any home/mobile/work phone fields back to a single "phone" field.


  • Faster mailing set builds: We’ve made some changes to speed up mailing set builds and to stop duplicate builds.
  • Landing page snippet: There is a new "Pages" section in the snippets in the mailer with options for adding the URL for the page you select under "Landing Page". Currently only donation pages and pages with a target are available.
  • Set a send delay for all mailings: There's a new option on the CONFIG screen that you can use to add a delay between when the final proof is sent and the mailing begins sending. You can set the delay to up to 300 seconds. It is applied to all mailings.


  • Improved process for sending scheduled reports: If you've been experiencing a Monday morning scheduled report delivery delay you should see some relief with this release. We've changed things so one client's slow report won't delay others (although your own slow-running reports will still run slowly).
  • Share stats added to actions & users query builders.
  • SQL tab-completion schema updated to include additions in recent releases: custom field defaults, choices, and regexes; mailing merge queries; and page A/B test tables.
  • Faster after action sharing reports, which should be noticeable for clients with lots of shares.


  • Copy an event campaign: You can! From your Event Campaign list (reached by clicking "Browse All" then "Events"), click "Copy". The Campaign and event pages are copied. If more than one language is present on the copied pages, then a multilingual campaign is created for the new event campaign.
  • Subject for messages from host to attendees: Hosts (and admins acting as hosts) can now set a subject when emailing attendees from the host tools, but only with changes to Original templateset going out in this release. Check out Original in your own instance to see the code. We'll call out the changes in the manual for next release.
  • From line and wrapper for messages from admin to attendees: ActionKit will pull these from the confirmation email from line and wrapper for the attendee sign up page.
  • Help text added for Custom Field HTML in event creation: You can add custom fields to event pages through the user form field customization section or by using the Custom Field HTML text box. If you use the Custom Field HTML box the field is grouped in the event info box on the display. If you use the user form field section the field is grouped in the user info box.

Admin UI

  • Improved dashboards and browse all screens for Pages, Mailings and Reports: The Browse All screen now looks like the dashboard on the tab. We added the created date for Pages. We changed "All" to "Summary" to eliminate confusion over the difference with "Browse All" on the Mailings Tab.
  • Validation errors are prettier and below the field like on the rest of the internet. There are a couples sections where we still need to apply this new rule (e.g. mailings).
  • TAF and Sharing options are gone for Recurring Donation update/cancel pages.

A/B Page Testing

  • Donation stats have been added to the built-in reports.
  • Tests must have unique names.

Bug fixes

  • Custom fields are not closed if there is a validation error in one of them.
  • We fixed some problems with staff permissions.