Wes Baker

3rd Party (Commercial)

EE Version Support

  • ExpressionEngine 2
  • ExpressionEngine 3
  • ExpressionEngine 4
  • ExpressionEngine 5
  • ExpressionEngine 6


If an item is crossed out, it might be untested, not applicable or incompatible. Contact the developer to be sure.

  • Updater
  • Multi Site Manager
  • Stand Alone Entry Form
  • Low Variables
  • Content Elements
  • Better Workflow
  • Matrix
  • Grid
  • Webservice
  • Publisher


  • jQuery for the Control Panel

Add-On Type(s)

Extension, Module


Add new subscribers to multiple Campaign Monitor and/or MailChimp subscriber lists directly from CartThrob, Contact Forms, Channel Form, Comments, FormGrab, Member Registration (including Zeal Smart Members), Solspace Freeform, Solspace Freeform Next, or Solspace User. You can either add everyone who submits a form, or conditionally add subscribers based on a checkbox or any other field.

Please purchase Subscriber from the ExpressionEngine site.

Recently Added

  • Support for ExpressionEngine 3.0
  • Unsubscribe Support
  • Solspace User Support


Gather your API key and List ID before you begin:

Then, to set it all up:

  1. Install Subscriber
  3. Go to Subscriber’s settings page
  5. Create a new form
  7. Add the form tag (e.g. {exp:subscriber:form form_id=“1”}) to your template


  collection="Contact Us"
    {exp:subscriber:form form_id="1"}
    <input type="text" name="name" />
    <input type="email" name="email" />
    <textarea name="message"></textarea>
        Switch field: subscribe_to_newsletter
        Switch value: yes
    <input type="checkbox" name="subscribe_to_newsletter" value="yes" />

Subscriber Form Tag

In addition to using just one subscriber form tag, you can use multiple tags or you can put several form_ids into one tag:

{exp:subscriber:form form_id="1|2|3"}

{exp:subscriber:form form_id="1"}
{exp:subscriber:form form_id="2"}
{exp:subscriber:form form_id="3"}

list_id override

You can provide a list_id parameter to the form tag to override whatever list_id you’ve set:

{exp:subscriber:form form_id="1" list_id="..."}

Freeform Next

When using Freeform Next, you’ll need to use the {exp:freeform_next:form} tag instead of the {exp:freeform:form} tag.

Custom Fields

For Campaign Monitor: Create the custom field in your Campaign Monitor Subscriber List. Once you’ve done that, copy the Personalization Tag for that field. For example, if the field was “My Custom Field’, your Personalization Tag will probably look like [MyCustomField, fallback=]. All you need from that is the MyCustomField.

Also, if you have any multiple option custom fields in your Campaign Monitor list, you’ll need to check the checkbox in the custom fields table and make sure that your form field’s name has brackets after the name. For example:

<select name="options[]" multiple>

For MailChimp: Create the custom fields by going to your list’s settings and then List Fields and *|MERGE|* Tags. Once you’ve created the custom fields you want, copy the tag under the Stick this tag in your content: column.

Armed with that information, go configure the extension and add both the name of the field and the corresponding Tag to the extension’s settings.

  • Custom Field: The custom field’s input name.
  • Custom Field Tag: The custom field’s tag in Campaign Monitor or MERGE tag from MailChimp.
  • Multiple Options?: (Campaign Monitor Only) If your list has a custom field that has multiple options, check this checkbox.

Debugging Subscriber

First things first, make sure extensions are enabled. This is more of an issue for ExpressionEngine 2.0, but it's a good first step all the same.

Next, make sure you've added the tag ({exp:subscriber:form form_id="1"}) to the form and also make sure that you see the hidden input in the rendered form. While you're here, verify that the form_id is correct, there's nothing more frustrating than realizing you had your subscribers going to the wrong list.

Next, you should check the logs. When there's an issue with the MailChimp and Campaign Monitor APIs, they're logged here. Sometimes the fix is as simple as correcting the API key or list ID.

If everything looks good so far, you should check with MailChimp and Campaign Monitor's status pages, because they may be having issues at the moment. Typically in these cases the email addresses are added to the list, but there may be a delay. Also, if you're using double opt-in, check the subscribing email address for confirmation emails.

If your issue isn't fixed, feel free to ask a question in the support forum. If you're having some serious issues, be prepared to email me your CP and FTP credentials, and possibly your MailChimp or Campaign Monitor credentials.

Hooks Used

If the add-on is an extension, and ties into ExpressionEngine's core files, it will use ExpressionEngine hooks. We are listing any hooks the add-on uses for developers to have an easier time locating other add-ons that they can reference for their own work.

  1. email_module_send_email_end
  2. channel_form_submit_entry_end
  3. insert_comment_end
  4. member_member_register

This entry was created May 26, 2010, 11:40 am.
This entry was last updated January 19, 2021, 3:05 pm.

Disclaimer: Information about ExpressionEngine add-ons is provided as a service to you, the user, and every member of the ExpressionEngine community. devot:ee is not responsible if you hose, mangle, wreck, or otherwise destroy your EE website by installing an add-on that you found out about at this site, regardless of its rating, Favorites status, commercial or free status, or general popularity. Caveat EEmptor!

Returns: devot:ee has a 30-day return policy on all commercial add-ons sold through If you need to return an add-on, do not go to the developer or the developer's site, but rather visit our returns page at to initiate your return. If you have questions, email