Release Email Archive: 2012


Hey ActionKitties! Hope you're enjoying the holiday season! ActionKit support will be closed Monday and Tuesday of the next two weeks (12/24, 12/25, 12/31 and 1/1). Support requests submitted on those days will be answered our first day back.

Here's what you'll see in your instance tomorrow morning:

  • Donation Fraud Filtering options: This release adds support for optional fraud score screening of donations.

    Fraudsters will sometimes use donation pages to test whether stolen credit cards are functional or not.

    Clients who use PayFlow Pro, or Braintree CSE (client-side encryption) as their payment gateway can set global- and per-page fraud limits.

    The fraud scores are generated using the MaxMind minFraud service. We incur a small charge for each fraud score calculated, but do not pass that charge along to you.

    If you want to use this service, you have to turn it on at Pages > Related Tools > Donations > Edit Fraud Filters.

  • New template for social media sharing: The new "original" template set (which you should check out if you haven't already) had Facebook "like" functionality built in to the thanks template.

    In this release, we've added a new template called social plugins, moved the Facebook code there and also added sharing by Twitter. In the original set, these are displayed on the thanks page. You can add them to any other template that has a {{ page }} in the context as well using {% include './social_plugins.html' %}. See the thanks template in the original set for an example.

  • REST API: We added a max limit of 100 objects for any single call through the REST API. The API has a default limit of 20 which you can override but only up to 100. This protects you against accidentally requesting something like all of your action history data, which could affect the speed of other work you're doing.

    Also, we exposed Multilingual campaigns.

  • Reports: We added a new report template called "scrollable", which will add a horizontal scroll bar to the bottom of your screen of results.

  • Other:
    • Improvements to the mailer to improve handling of mailings with very complicated targeting (like multiple layers of excludes)
    • New section created for snippets in the mailer called "links" and the snippets related to suppressing parts of our standard link writing were moved here
    • Changed naming of tags and templates on the reports tab consistent
    • Changed TemplateSet.description to a longtext field
    • Added a page called "admin_update_recurring", which has the confirmation email unselected. Any changes you make to a recurring donor's profile through the admin UI will be processed through this page. If you want users to receive an email after staff make changes to their recurring profile, you can edit this page and select the confirmation email.


A few things coming to you tomorrow morning:

  • One-off events: We added a shortcut that allows you to create an event campaign and at the same time create one central event.

    Currently, if you want to use the AK event module, you need to create an event campaign and then create a host sign up page, where your host will enter the event details -- even if you only want to create one staff-driven event.

    After this release, you can set up the event campaign and create one event in the same step. When you add an event campaign, just unselect the box under event creation settings to allow "Public Creation". You'll see a pop up message asking you whether you'd like to create a central event. If you select "yes", you'll see fields for the event location and description. Enter the location and submit. The event is automatically confirmed (no need to follow an email to confirm your email address or mark the event as approved).

    You'll see the event on your campaign dashboard. You'll need to set up your "Event signup" page as usual before you can invite anyone to sign up.

  • Manual updates, including a write up on how we used the REST API to build the Whipcount CMS forms and pages.

    Whipcount pages use the same action processing as the rest of ActionKit. However the code that publishes the Whipcount pages, the ActionKit "CMS", uses the REST API to access targets and results.

    Remember that Whipcount pages let you target groups of key legislators and decision makers. Unlike Call pages, Whipcount pages allow non-constituents to make and report phone calls to legislative targets.

    The Whipcount pages load information about targets for callers, as well as the results of previous calls. This document describes how we used the RESTful API to load the details of the page, the list of targets, created a form for reporting calls, and the results of calls made by users.


Hey ActionKitties! This week we've got two big new features (and lots of other cool new stuff outlined further down):

  • User guide: We're improving the manual! Check out the new layout and approach in the mailings section ( Hopefully it's easier to follow and to find what you're looking for. In any case, there's a lot of new content here.

    Also, we've added an overview of contents with links to most sections, a link to the full table of contents for mailings, and links to each question in the FAQ.

    The links in the admin interface and the user guide index go to the new mailings documentation, but we left the old version up so any bookmarks you have will still work.

    Let us know what you think! Next up is the pages section -- also with more content and pretty boxes.

  • New original template set: This release includes a new Original templateset -- the old set has been renamed "Original (before Fall 2012)". We've brought in some features that you all have asked for or were implementing in your own forms, as well as other improvements.

    Your existing templates and pages haven't changed. To get these new features applied to your pages, you can incorporate the changes into your existing templatesets and/or copy the "Original" templateset as your basis when you create new sets. You decide which features you'd like to use. Read more detail about the changes, including information on how you apply each here:

    We encourage you to use the new templates as a starting point for any new designs you create, even if you don't apply the changes to your existing sets. Future improvements will be built on the new templates. Old templates won't break, but building on the old templateset may mean you have more work to do later to get new features.

    The new features in this release include:

  • Updated user form: More attractive layout and fewer fields shown by default. Required fields are always shown and marked with a red asterisk, including fields you didn't select but that are required for the page to work -- for example, when a page is asking users to call their Representative and needs a ZIP code. We've also documented an approach that allows you to use one template set but still vary the fields displayed by page type.

  • Facebook like: Thanks pages have a Facebook 'like' button by default. The description is automatically pulled from the page content you enter when you create the page (although you can change this). You can add a share image using a page field.

  • Mobile-friendly code: On phone screens, two-column layouts collapse down to one column. You can see screenshots of the older and newer layouts attached.

  • Improved label and error messaging options: Forms now default to using inline labels on most form fields (where 'E-mail address' shows in the email field itself). There are also classes for other common ways to position labels. Validation can now usually show errors next to a field right after you tab away from it, instead of showing the error at the top of the page after an attempted submit. Finally, we've made it easier to add custom or complicated validation (like if you want to return a message that says "You can only select three options").

  • Easier multilingual and international set up: If you translate the field names, the user form labels will show in the page's language automatically, which makes it possible to use one templateset for multiple languages. Another feature that will allow easier use of one set -- we've added an option that allows you to translate other pieces of text (like your privacy policy) and include them in your page. Also, we've applied the approach used for donation pages to other page types, so you can automatically show state and ZIP fields to U.S. users but postal and region fields when the user picks another country. Finally, Hebrew/Arabic pages get HTML and CSS tweaks applied to improve right-to-left script.

  • Code cleanup: The default markup is now a bit more convenient to restyle with CSS: fewer inline styles, more classes and IDs. It also displays in standards mode in IE8 and newer, to reduce browser-specific headaches. The page's type (e.g., page-type-petition or page-type-thanks) is in the body tag's class attribute by default.

Also in this release: There's some good stuff here too!

  • New call dashboard report: This report shows the number of actions submitted on a call page by advocacy target. Call pages include a box the user can check to indicate who they called, so we've also included the count of actions where the box was checked. Plus some cool maps and charts! See This report uses the autofill function so you can enter part of the page_id or name, then select one or more pages to include in the results.

  • Clearer results if the page or mailing you request a report on doesn't exist. Previously, if you ran a report with a parameter and entered an invalid page or mailing id, the report would fail. Now results will be shown for the valid objects and you'll see an error in the report for any ids that fail.

  • Hard code a zip value for zip radius in reports: Recently we added a report tag, {{ users_near_location }} , that allows you to find users in a certain radius from a zip code. The person running the report had to enter the zip(s) to use. Now you can use this tag plus parameters of place (required) and radius (optional) in the format: {{ users_near_location:place=90210,radius=50 }} to retrieve the IDs of the users within a specified radius of a zip without prompting the user for place and radius. For example:

    select first_name, last_name, city, type, phone

    from core_user

    join core_phone on( = core_phone.user_id)

    where{{ users_near_location:place=60625,radius=20 }}

  • Date and average gift added to Compare Mailings report. Reach this report from your "Reports" tab.

  • Scheduled mailings allow you to send to targets who meet your criteria when you create the mailing or at send time: When you check the box on the proof and send screen to schedule a mailing, you'll see a new checkbox for "Rebuild mailing set at send." Currently, when you create a mailing, ActionKit finds all the users who match your targeting criteria and saves them as a set. Scheduled mailings are sent to this set of users (unless you force a rebuild and save again before send time). Now, by checking the box , you can tell ActionKit to look for all the users who match right before your mailing is sent. For example, if you schedule a mailing for a week from now to everyone who signed a petition, check the box if you'd like to include users who sign the petition in the week between when you schedule the mailing and when it sends.

  • Use "event.starts_at_full" to show the date and time in a mailing for events where you set the date, not the host. If you set the date, and don't allow hosts to set their own date, when you create the event campaign, the click-to-insert snippet includes "event.starts_at", which only shows the time. Replace this with event.starts_at_full to show date and time.

  • Adjustments to the query library dropdown on the mailer targeting screen: So hopefully this is a bit more intuitive to use.

  • Clean up of naming inconsistencies: Some things had multiple names in the admin interface. We've made some of these consistent. For example, "template tags" and "snippets" are now referred to as "snippets."

  • "Failed" mailing count shows on the mailings dashboard if relevant: If ActionKit skips sending to a targeted user because a required value is missing, you'll see a count in the "Sent Mailings" section that links to the individual mailing report detailing the cause. Read more about failed mailings here (

  • You'll see an error if you use the {{ suggested_ask }} snippet but don't select a donation page under "Pull targets".

  • If you save changes to the settings for a template set, you'll land on the screen showing all the individual templates, not the list of template sets.


Hey ActionKitties! You'll see these changes in your instance tomorrow. There's a lot here, so if the permissions section isn't relevant for you, keep reading -- there's more!

First, you may notice that there's a new "original" template set. We've got some cool changes that will be documented and stable in this template set after the next release. Until then the template set "Original (before Fall 2012)" has everything you need if you'd like to start from our basic template set or look up some code. Watch for details next week!

Permissions: We cleaned up the permission system so any of your staff users, who aren't super users, should see the same options (like "edit" or "copy") as a super user for any object they can view.

Superusers have access to everything. If someone is a super user, none of the specific permission groups you select will change anything for that user, except for the "Receive All Mailings" permission.

Note: Receive All Mailings is not really a permission. Select this if the staff user should receive a final copy of every mailing that is sent to users from the mailer.

In general, there's one permission that gives you access to the core function on any tab. For example, on the Pages tab, "Pages -Edit, View, Create" allows you to view the tab, create new pages, edit existing ones, plus use any of the related tools that don't have a specific permission. You can edit products or tags as long as you have the basic pages permission. However, you can't edit template sets or delivery jobs because they have their own permissions ("Pages - Plus Template Sets" and "Pages - Plus Petition PDFs" respectively).

The other permissions in the same category include the basic permission. "Pages - Plus Template Sets" gives you the ability to create and edit pages and also to create and edit template sets.

There are a couple exceptions, like languages, where we've separated out a very specific bit of access. The permissions are as follows:

Languages: The user can view the pages tab, where the "Languages" button is, but cannot access anything else from this tab. The user can add or edit languages including translating the system messages shown on the language screen.

Mailings - Edit Email (not send): The user can view the mailings tab, add a draft, edit existing drafts and view any of the related tools that aren't specifically mentioned in the other mailings related permissions below. The user cannot send mailings with this permission.

Mailings - Edit plus Client Domains: All the permissions included in "Mailings - Edit Email", plus adding and editing client domains. Mailings - Edit plus Email Wrappers: All the permissions included in "Mailings - Edit Email", plus adding and editing email wrappers.

Mailings - Edit plus Mailing Lists: All the permissions included in "Mailings - Edit Email", plus adding and editing mailing lists.

Mailings - Edit and Send: All the permissions included in "Mailings - Edit Email", plus the ability to send the mailing.

Mailings - Receive All Mailings: See above. Pages - Edit, View, Create: The user can view the pages tab, add new pages, edit existing pages, plus edit any of the related tools that aren't mentioned below.

Pages - Plus Petition PDFs: All the permissions included in "Pages - Edit, View, Create", plus adding and editing delivery jobs.

Pages - Plus Template Sets: All the permissions included in "Pages - Edit, View, Create", plus adding and editing template sets.

Reports: The user can view the reports tab, edit existing and add new reports, plus create and edit any of the related tools.

Reports - View Only: The user can view the reports tab and run reports but cannot add new reports or edit existing ones.

REST API - View, Edit and Delete: The user can use all the functionality available through the REST API. REST API - View Only: The user can view data using the API but not edit or delete it.

Users: The user can view the Users tab, search for users, view and edit user records (except manage donations), plus add custom user fields and reset passwords.

Users - plus Donation Management: All the permissions included in "Users" plus refunding and managing donations.

Users - plus Imports: All the permissions included in "Users" plus importing users and data. Users - plus Staff: All the permissions included in "Users" plus adding staff and managing their permissions.

Custom Mailing Fields (beta): We've added a new type of custom field, equivalent to custom page fields but for mailings. Use these fields to add a section of content or HTML to a specific mailing.

As with page fields, you need to create the mailing field first (either from the green plus next to the custom fields row on the "Step 1: Compose Email" screen or from the link on the mailings tab).

Add the field to the body of your email using this syntax: {{ custom_fields.FIELD_NAME }}. Then in the custom field row toward the bottom of the screen, select the field name on the left and enter the value on the right.

Be sure to proof several mailings when you use the custom fields -- we've tested some basic uses but we know you'll think of more!

Bulk Uploader: We made a few improvements to the importer. After this release, you'll see: * 0 prepended to 4-digit US zips. Excel often removes the leading 0 in a number, which means a valid zip like 02905 is changed to the invalid zip 2905. ActionKit will prepend the 0 if you've got a zip column, and the zip has 4 digits, and your country is "United States" or no country is provided in your CSV.

  • Headers are accepted in upper or lower case.
  • The page title displayed on the step 2 screen and the results screen.
  • Validation accepts spelled out US States. These are converted to two letter postal abbreviations in the user record.

Suggested Ask: We added timespans so the formula can be based on gifts in past 6, 12, 18 or 24 months. The default is still all gifts. Just select the option from the "timespan" drop down when you create or edit a Suggested Ask Rule from pages tab.

Reports: New months_past template tag for use in reports that takes a parameter indicating the number of months to include.

For example, in the List Growth report, several monthly reports are collated into a single annual report by using the months_pastyr tag. Starting with this release, the tag months_pastyr is the same as months_past:12. To change this report so it looks at the last 24 months, you'd change the relevant section as in the example below:

{% for month in now|months_past:24 %}

      <td>{% report "progress_list" with month as month %}</td>
{% endfor %}

Reports: The breakdown by page/mailing feature is available for CSV downloads. (Read about this option in the Breakdown by page or mailing section under Reports in the user guide).

Subject line testing: The subject line picker will exclude only the users that were sent the test email, not all the users who were targeted. If you stop a test mailing before the entire test audience has been emailed, so some users targeted to receive the test mailings don't, they'll now receive the winning copy.

Templates: The Django request object is available for use in templates using {{ request }}.


Hey ActionKitties! This week's release is coming out a bit early -- you'll see these changes in your instance tomorrow morning.

Search for users on a partial email address: Enter either the full address or a partial address in the email field on the advanced user form to see a list of all matching users. Searching on a partial address may be slow depending on your list size and other search criteria. Let us know if you have problems.

Use the donor's most recent contribution as the basis for the Suggested Ask: You can already use the donor's highest or 2nd highest previous gift or average as the basis for calculating the suggested ask for use on pages and in mailings. Now you can also use the most recent gift. You'll see it's been added to the drop down for "Which amount" when you edit or add a Suggested Ask Rule.

The user's IP address is captured in the core_action table: For every action, we'll save the IP address of the user's computer to the new ip_address field in the core_action table.

Reports with parameters accept a list like CA_04; CA_03 -- if the values are separated by ; or a new line: Several of you have asked to be able to build reports that ask the person running the report to enter a list of values that include numbers and letters (like a congressional district) instead of just numbers (like a zip code). That is possible but not using a comma-separated list.

Improved selection box in the query library section of the mailer: Like the other new multi-select boxes, this new format allows you to select from a drop down of available queries or type part of the query name and then select. You can also click the x in the corner to remove a query from the targeting for this mailing. The queries selected with any relevant values still show in the query library section.

Coming soon: Options for setting organization-wide defaults for things like minimum donation (so every new donation page will have your organizational default selected unless you change it).


This week we've got some exciting additions to reports and user search and a lot of smaller improvements and bug fixes. As usual, you'll see these changes in your instance tomorrow morning.

Charts: We've added functionality that allows you to includes charts and graphs in your reports using Google's Chart API. We've detailed how to create a chart and outlined formatting options in the user guide here:

We added a new dashboard report, called "Visualizing Your Base" (, that includes a pie chart of users by source, and maps of mailable users and recent actions by US State and your top US cities by membership.

Finally, we added charts to a number of existing reports to provide examples of using charts and of how to create charts. The reports with charts include the Event Report, List Growth, Action Rates, and Fundraising Campaigns reports.

Please note that charts will not display in emailed reports -- only in reports viewed in a browser.

Query Report schedule and emailing: You'll see a new option in this section, for query reports only, that you can uncheck if you don't want to receive a report that returns 0 rows at the scheduled run time. This is checked by default to conform to current behavior.

Advanced user search: Previously you had the option to use the simple search box on the Users tab to search for users with a specific value in a custom user field. This release we added a section to the advanced search titled "Custom Fields" so you can combine searches by custom user field with other search criteria and also search on multiple user fields.

To search by custom user field, enter the user field name in the text box on the left and the value you'd like to match on the right. If you want to search on more than one value for the same field, add a second row and enter the field name on the left again and the second value to match on the right. For example, if you want to find anyone with "doctor" or "student" in a field called "occupation", you'd have two rows with "occupation" on the left.

Searches on more than one user field name are joined with "OR", so if you include "doctor" for "occupation" and "43" for another custom user field called "age", you'll find everyone who is either 43 or a doctor.

If you don't see the results you expect, be sure the custom user field name is entered exactly as shown when you select "Edit Custom User Fields" on the Users tab.

Custom tag and filter documentation: We added a section to the user guide detailing most of the custom tags and filter we've created for use in pages and reports so you can use them as well. It's available here:

ActionKit is built on a system called Django which has its own filters and tags (many of which you can also use -- learn more about these here: This document provides a description of those we added or cases where we've overridden built-in filters to add more functionality.

Recurring donation management page links: We added links to add or browse by the page type for canceling and updating recurring donations.

Email wrappers sorted alphabetically: Any wrappers that have been chosen as the default will come first, then your other wrappers are listed alphabetically. If you're using multiple languages, you may have more than one default as you can select one for each language.

Individual user mail history summary: You can see a list of all the mailings a user has received and information about which they opened, clicked, took action from, or told friends about. Reach that list from the individual user record. There has been a summary of the user's stats at the very bottom of the list which we've now moved to the top.

Bug fixes: Once again, many of you helped us find bugs that we fixed in this release. * We fixed a display problem in the Compare Mailings report -- thanks to MomsRising. * If you accidentally leave punctuation at the end of the URL in a mailing, we'll still create a working link -- Sum of Us. * We're using zip instead of gzip to attach CSVs to reports that are emailed -- thanks to Doctors for America for noticing that gzip didn't work with some systems. * If you try to change the name or title of an existing report to a name or title that's already in use you'll get an error instead of a failure -- Bold Progressives. * In the case where a user follows a link from a mailing and then submits on a page type that allows more than one action per user, the referring user id and the action taker's user id matched. No referring user id will be saved in future. -- ONE.


This week's release includes an oft-requested feature -- making a zip radius function available in reports. Lots of other cool stuff too! Look for awesomer chart and graph capabilities in the next release thanks to a newer plug in to google charts than what we currently use.

Zip radius available in reports: A new tag is available for use in query reports that returns the ids of users in the specified radius around a zip or U.S. city: {{ users_near_location }}. It can be used like:

select first_name, last_name from core_user where{ users_near_location }.

The person running the report is prompted for a place and a radius. The place can be entered as a single zip code or a city, state or a list of either separated by commas or semi-colons. The radius is in miles and defaults to 20 miles if no value is entered.

We added a sample report that uses this tag called phone_by_zip_radius so you can see how it works.

New built in reports for product order summary, product fulfillment, and LTE download.

Basic Product Report: Returns product price, quantity ordered, total dollar amount, and number of users who ordered for a specified product or products over a specified time period.

Product Fulfillment Report: Returns a list of orders with the order date, quantity ordered, user information and shipping address for a specified product or products over a specified time period. If multiple products are included, users will have one row for each product they ordered showing the quantity for that product.

LTE Downloads: Returns a list of all letters for a specified campaign, ordered by newspaper. Includes the paper name and city, state, zip, the letter subject and body, and the user's address information. Letters are separated by a horizontal line.

View SQL option available for survey downloads. Click download a survey and you'll see a new "show SQL" option at the bottom of the screen. Choose a survey from the dropdown and submit using this button instead of "download" to see the SQL used to generate a download.

Scheduling a report that uses parameters will result in an error. Currently these reports silently fail to run because the query requires information at run-time. With this release, when you try to schedule a report that asks the person running it for information (like a page_id or event campaign), you'll see this error: Reports with parameters may not run automatically. If this report should be recurring, remove parameters. This does not apply to the {{ last_run }} and {{ now }} tags.

Mailing comparison report includes mailings with status stopped or died. These mailings sometimes have sent to a set of people before they died or were stopped so it can still be useful to see the results in a comparison.


Donation snippet calculations standardized to match donation stats on the individual user record. Donations are complicated and they've changed over to time to account for various scenarios. Some time ago we updated our donation calculations on the individual user record to include only completed donations, include imported donations, exclude donations of $0 (like free product orders), and exclude any payments (first or later) toward a recurring donation profile for the one-time donation calculation and include them for recurring. Now donation snippets use all the same logic.

You can see the SQL used for the user stats here:

We also added a snippet for "previous year," which shows the total donated (recurring and one-time) by the user in the last calendar year. We added (total) to the name of this snippet and Year to Date and (single) to the snippets that relate only to one-time gifts. For example, average (single) returns the average of all one-time gifts made by the user, excluding all recurring donations.

Finally, we added rows for highest and 2nd highest one-time gifts to the user stats. These can be useful for confirming that a suggested ask formula that uses these in the calculation is returning the number you expect for a given donor.

Inline styling removed from local phone snippet: We added spans around the text elements in actionkit.css. You can hide the fax number by editing the CSS: (.office_fax { display: none; }). Be sure to test your page when you use the local numbers snippet in case you've made any template changes that alter or override the ActionKit CSS.

Redistricting info available for use on pages using this format: {{ user.geofield.us_district_redistrict }}. Also available: us_state_district_redistrict and us_state_senate_redistrict.

Action Page URL: There's a new "Page Info" section in the after action email snippets and under "Thank you text" in the snippets for pages. There are snippets for the Full Page URL and the Page Path (no domain). Both display the URL for the action page. Whipcount page

Set response selections manually for one or all targets: We've added a new step for this page type called "Whipcount Responses" where you can set a source for the response on the results screen that your users see. The new options are "Admin configured" or "User submitted, with Admin overrides." If you select one of these you'll also see a response overrides box where you can select one of the page's targets and set their response. The response choices are still Supported, Opposed or Uncommitted.

When you use the admin configured option, you should set a response for every target. User calls will not change the response for the target no matter how many calls are made. You might use this option in combination with the new snippets described below to create a thank/spank type page.

The user submitted with admin overrides option allows you to accept and display responses based on user calls until you manually enter an override. You might do this if you're using user calls to start collecting responses but supplementing and correcting based on meetings with the actual targets.

Use snippets to display a different call script based on the target response setting: There are snippets for conditional for "Thanks", conditional for "Spanks" and conditional for "Uncommitted". When an end user selects a target to call (or follows a link that includes the target information), the correct script will display.

There are also new snippets for displaying the target group name, individual target names and responses.


Count of users marked by hosts as having attended events available on the event campaign dashboard. Just above the total sign up count for the campaign.

Events use the time zone for the event location, where that can be determined. Hosts will see the checkboxes to mark attendance at the event start time in their time zone (or, if we can't identify their time zone, it defaults to UTC which was the previous setting for all events).


Multi select widget will match multiple words. For example, you can enter "full base" instead of just "full" to narrow down the list of results returned.

Available delivery types are displayed after the target name when you create an advocacy page. The codes are:

  • PDF -- You can generate a PDF to hand delivery to any target.
  • Email -- Immediate email delivery. Available for state-level legislators with public email addresses or custom targets for whom you entered an email.
  • LD -- Bulk e-delivery system where you create a delivery job and then prompt an email to the Legislative Director (where we have an email address -- the majority of federal legislators).
  • [Fax] -- Available if you have an account set up with Greenfax and if the target has a fax number in the database.


Hey ActionKitties! Here's what you'll see tomorrow morning:

Mark and track attendance for events: Your hosts will see a column for "Attendance" after their event has ended. They can mark who attended and when you view the details of any event you'll see a count of attendees along with the count of sign ups. The new "attended" field is in the events_eventsignup table.

More recurring donation management options through the admin: You can reach a user's recurring donation profile by searching for the user from the "Users" tab, clicking on the user name to reach the individual user record, then scrolling down to the recurring profile(s) info below the donation box. Click the new "Manage this profile" link.

In addition to the previous options to cancel the profile or refund specific payments, you can now change the user's credit card number and the amount of their recurring gift from this screen. It's always a good idea to make these changes through the ActionKit admin, instead of through the merchant vendor's tools, so the changes are captured in the ActionKit database.

Donation template improvements: Users with javascript disabled will see a radio button next to "Other" so they cannot submit a donation that has both an amount selected and an amount entered. If this did somehow get submitted anyway, the user will see an error message. These changes have been applied to the "Original" template set but you may need to patch them to your Donation templates if you've made significant changes.

Also, in the "Original" template set, if you set a donation page to accept international donations the "Country" selection box comes after all the address information so a user could enter their state and zip (under region and postal) only to have those entries disappear when they select "United States" as the country. Most of you have worked around this in your customized templates.

Now the original template set defaults to US as the country so the state and zip fields are shown instead of region/postal. If you'd like to default to US on your pages, in the country select template:

Replace: <option selected value="">---</option> With: <option selected value="United States">United States</option>

Search for users based on specific mailings: From the advanced user search you can search for a list of users to whom a specific mailing was sent or a list of users for whom a specific mailing failed to send.

We've also made some improvements to search fields where you have a long list of options to choose from. Start typing your selection and we'll show a list of the items that match. We'll use this in some other locations in future as well (like the list of mailings and actions used for mailer targeting).

Snippets for a page name: You can use the following snippets to include the URL for an action page in an after action email or on a thank you page. They aren't available through the mailer.

{{ page.canonical_url }} returns the full address of the page, including the http://act... prefix

{{ page.canonical_path }} returns the path without the domain name

Targeting by tag in the mailer excludes incomplete actions: An action usually has a status of "complete" in the core_action table. This is not the case for a failed donation, or on a call page if the user submits their contact info to get a target's number but doesn't submit on the call screen. On the individual user record we exclude failed actions when displaying which tags a user is associated with. We applied the same rule to selection in the mailer. This affects very few actions but is something to keep in mind in your reports and analyses based on tags.

Using template tags to include target information in mailings for whipcount pages: As mentioned in the last release notes, you can use the congress info snippets for mailings related to whipcount pages.

To use these snippets in mailings that target constituents and non-constituents, you have to do two things:

  1. remove the {% requires_value targets.count %}
  2. use conditional logic to show non-constituents something useful:

{% if targets.count %}<div> Call: <ul>{% for target in targets.targets %} <li>{{ target.title_last }} - {{ }} {% endfor %}</li> </ul> </div> {% else %} <div>Not a constituent? Call anyway!</div> {% endif %} <p> LINK TO YOUR WHIPCOUNT PAGE</p>

Note that all the targets (whether or not the user lives in-district) show on the whip count page.


Hey ActionKitties! Here's what you'll see tomorrow morning in your instance. Happy usage!

Advanced user search: In addition to the simple search box on the user's tab, we've added a new Advanced Search.

Search options available on this screen include: * user id and contact info including state, zip, country and region * user settings like user source, language, subscription status, mailing list membership and tags * US legislative districts at the federal and state levels

Comma separated lists or multiple selections from the multi-select boxes are supported. For example, you can search for "1,2,3" for id.

The search criteria combine in the same way they do in the "includes" column in the mailer: * Categories are combined using "AND". If you enter "NY" under state and "taf" under source, you'll get a list of users who live in NY whose first action in ActionKit was from a tell-a-friend message. * Entries in a category are combined using "OR". If you enter "NY, CA" under state, you'll get a list of any user who lives in NY or who lives in CA.

Here's how it works: 1. Click "advanced search" on the Users tab. 2. Select or enter your search criteria. To be clear, quotes aren't needed around the search criteria you enter in the boxes. 3. Select your sort ordering under "Order By" at the bottom of the screen. 4. Click "Advanced Search". 5. Your results are returned as a list of users. * View a user's full record by clicking "edit" or selecting the user's email. Click "Next User" to move in sort order through the individual records for each user in your result set. * Select "Edit this Search" to return to the search screen with the choices you just submitted shown. * Select "New Search" to return to a blank search screen and start over. * Change the "Order by" option and click "Search" to change your sort order.

The simple search box still supports search by a single entry for name, email, zip, user id, or custom user field.

"Sticky" tag list sorting: By default, tags are displayed in order from most to least frequently used. Now you can change this order to the one that makes the most sense for your organization and save it, so whenever you want to add a tag to a page or a mailing, the tag list will display in the order you've chosen. Please note, the order will apply universally throughout your instance for all staff users.

To set or change your tag list order, select the "Tags" link from the Mailings or Pages tab. Then either sort by column header or by dragging the rows into your preferred order. Then hit "Save Tag Order".

Local number snippet available in the mailer for use with call pages: Last release we added an option to display local office numbers for federal legislators on call pages. This release we've added a "Local office numbers" template tag under "Congress Info". This snippet should still only be used when all of your targets are federal legislators (since state legislators will not show a phone number if you're using this snippet).

Congress Info snippets in the mailer will work with whipcount pages but only for constituents: Last release we also added a new whipcount page type. Whipcount pages are a type of call page where all users see the same advocacy targets.

We enabled the Congress Info snippets so they'll work just like they do with call pages for whipcount pages. This means that they'll show the end user the number to call for that user's legislator. If a user's legislator isn't on the whipcount page target list or if we don't know what district a user lives in, ActionKit will skip sending the mailing to that user, even if they meet the criteria you entered for selecting recipients.

In a future release, we'll enable these snippets for all whipcount targets (so the snippets in the mailer will work just like the page targets -- all targets shown to all users).


Hey ActionKitties! Boy do we have a lot of stuff for you this week! We're officially closed tomorrow so you probably won't see these changes in your instance until Thursday morning.

One thing you won't see yet is the advanced user search functionality I mentioned in the last email. We expect to include this in the next release, but it's a pretty big new feature so we're subjecting it to some extra testing.

Also a couple notes related to last week's release:

  • Emails from you, the staff admin, to event hosts, now include a link to the host's page automatically.
  • With the new multi-select widget, used for things like selecting tags to associate with a page, you can keep the window open to speed up selecting more than one option by hitting hold cmd/ctrl while the window is open. Thanks to Bold Progressives for helping us find this option!

Use district info for new 2012 district lines

We've added redistricting information for the new 2012 district lines. This data is available for use in query library and SQL targeting.

We currently have new federal district lines for all 50 states. We have the state-level district lines for 41 states (AK, AL, AR, AZ, CA, CO, CT, DC, DE, FL, GA, HI, IA, ID, IL, IN, KY, LA, MA, MD, ME, MI, MN, MS, NC, NE, NJ, NM, NV, OH, OK, OR, PA, SC, TN, TX, UT, VA, WA, WI, WV).

This data is fresh from the states in question, so it may have errors. if you find problems or inconsistencies, please let us know so we can feed that back to our data suppliers.

We will add additional state-level lines as they become available from our vendors.

The redistrict information is available in a table called core_usergeofield. Here are a few example queries on how to target off these tables:

federal house district

select user_id from core_usergeofield where name = 'us_district_redistrict' and value = 'CA_04'

state house district

select user_id from core_usergeofield where name = 'us_state_district_redistrict' and value = 'CA_001'

state senate district

select user_id from core_usergeofield where name = 'us_state_district_redistrict' and value = 'CA_001'

core_usergeofield will initially be empty, while we run jobs to populate data for existing users. We expect to have these tables fully populated for all clients by Friday, July 6th. If you need this data more urgently, please open a ticket and we will see what we can do.

We will switch the main district information stored for users once the changes take effect.

New "whipcount" page type added

Whipcount pages are a version of call pages that allow you to track the positions of a set of targets. A typical whipcount would target a small set of legislators who are either undecided on an issue, or hold key positions in the legislative process. Unlike call pages, whipcount pages do not rely on a user's address to determine targets. The user sees the full list of targets, selects one to call, then sees a form with the target's phone number, instructions, and a contact form (unless the user is recognized). The user calls the target and records his/her position on your issue. Once enough users have confirmed a target's response (based on your settings), that target shows as confirmed so the next user can call a different target.

Read more about this page type here:

View a proof option added for LTEs and LTE signature template exposed for your edits

When you set up a new LTE page, you'll be able to see what a newspaper editor will see when an end user sends a letter. Just submit a letter using the email you log into the ActionKit admin with and instead of sending a letter to the paper you'll select, we'll send you a copy at that email address. Of course the body of the LTE sent to the newspaper will include the content entered by the end user (just as the sample sent to you will include whatever you enter for the LTE body). This works the same way as the immediate delivery preview for letter or petition page types.

The preview allows you to see what the user signature looks like. This is particularly useful if you customize the signature, which you'll be able to do starting with this release.

On the "Step 1: Action basics" screen you'll see a new section where you can select a user signature template. As usual, you can add a new template with the green plus. Or, you can manage existing templates from the "Other" section under "Related tools" on the Pages tab. The default template displays the user name, full address and phone number. Phone numbers of 10 digits are displayed in the (xxx) xxx-xxxx format. You can also pass a format string if you want to change the phone number display (such as "%s%s%s-%s%s%s-%s%s%s%s).

Template tags are available to the new signature template. Use this do things like include a custom user field in the signature. For example, you might add a custom user field for "occupation" to the user form in the LTE template (and make it required or not), then add {{ user.custom_fields.occupation }} at the bottom of the signature template.

Run reports through the API

The RESTful API allows you to create, edit and run reports. In addition to Query and Dashboard reports, you can run ad-hoc queries against the production database. Read how here:

Display local office numbers on call pages

You'll see a new option on the "Step 1: Action basics" screen when you create a call page. Select this if you want your end users to see numbers for both the DC office and a link they can click to display the local office(s). This is only available for federal legislators.