Creating a signup form


You can create advanced web signup forms with just a few clicks of a mouse, generating HTML code that you can copy and add to a page of your website.

This will enable new contacts to sign up, enter their data, opt into public preferences and/or address books, and will allow you to collect consent information.

You can also enable an unsubscribe option on the form, allowing existing contacts to unsubscribe from your entire communications (an account-wide unsubscribe).

Our signup forms run over HTTPS and thus are secure.

Steps to configure a signup form

To create a signup form:

  1. Go to Contacts > Signup forms

    Subscribe options

  2. Click on Select data fields to choose any public contact data fields you want to show and collect information for. By default, the system collects the email address. Any data entered by the contact into these fields will get stored against them.

    Tick 'Require all fields to be filled in?' to enforce mandatory completion of all contact data fields you include on the form. It won't be possible for the contact to submit the form if they're not all filled in.
  3. Public preferences are enabled by default. If you don't want preferences to be shown, click No. Contacts will be able to select the marketing preferences they'd like to opt into (opt out of if they're existing contacts).
  4. Click on Select address books to choose any public address books you want to show. Contacts will be able to choose which ones to subscribe to.

    Display settings

  5. Consent text is enabled by default. If you don't want to include consent text on your form, click No.
  6. Add the consent text you'd like to use. Including consent text allows you to describe the content you'll be sending to the contacts that sign up and the frequency with which you'll be sending it. When doing this, also try to include a brief summary of how you'll use their data. 

    The length of the consent text may be limited to 255 characters if you've previously created an Insight data collection, otherwise it's 1000 characters.  

    When consent is given by a contact, this information will then be stored alongside them as ConsentInsight and is useful for demonstrating consent under the EU's GDPR. It's also useful if you wish to be CASL compliant.

    The following consent data will be stored:

    • consent text
    • the date and time of consent (in UTC)
    • the form's URL
    • the IP address of the signup
    • the full user agent
    • the date and time the record was created (in UTC)
    • any marketing preferences they've opted into

    Tick 'Only allow signups when consent is given' to enforce mandatory consent. If consent isn't given, it won't be possible for the contact to submit the form.

  7. Include an unsubscribe option for existing contacts by clicking Yes. This will unsubscribe contacts from your account and entire communications. Please note that this doesn't allow contacts to unsubscribe themselves from specific address books (this can be done with a preference centre, however).

    On completion

  8. Click on Select address books to choose one or more address books to sign a contact up to once they've completed the form
  9. Click on Select programs to choose one or more programs to enrol a contact into once they've completed the form
  10. Click on the 'Redirect to' dropdown to choose to redirect the contact, upon completion, to either a URL of your own choice or one of your landing pages. These can be previewed.

When happy with everything, click Generate code. A panel will slide in from the right with the your signup form's HTML. This HTML will inherit your site's styles, and you can modify it if you need to. Click Copy to clipboard and paste it to your site.

You could also use this function in conjunction with a triggered campaign. When a contact joins a particular address book using this web form, you can trigger a campaign to be sent to them automatically. This is done by changing the settings of the address book.

Have more questions? Submit a request


  • Avatar

    Can you use these sign up forms to automatically add the subscribers into Dynamics CRM?

    I.E. if not, the subscribers just sit in the dotMailer API so that would mean there is no visibility from a Dynamics CRM viewpoint.

  • Avatar

    Hi Ryan,

    If you have a dotMailer-Dynamics CRM connector installed, then by adding contacts to dotMailer they should automatically be added to your CRM. If not then your web developer should be able to edit the generated signup code to submit the details to both systems separately.

    Hope that helps?



  • Avatar

    Are you able to create drop down menus for people to highlight info? e.g. Career Area or Region > drop down menu with a choice of options

  • Avatar

    Hi Andrei,

    We don't, currently, generate this out-the-box for you; but with a little bit of HTML you can create a drop down menu.

    You can either get your web developer to do it, or if you feel like getting your hands dirty with some HTML there's an explanation of how to do it at:

  • Avatar

    Thanks Stoo, found a work around by using the Survey tool and mapping the data to address books, will take a look at the HTML though. Cheers

  • Avatar

    Do you have to go to another page?Can you have a Thank you message on the same page ?

  • Avatar

    Can I direct people to different address books based on the custom fields they fill in? E.g - I want signups to go into a particular list, unless they tick a box, in which case they're segmented to a different one. 

  • Avatar


    My organisation's website CRM doesn't like the code and gives an error message when users submit. Our web people tell me there isn't a way around it. Are there any other options apart from Facebook, e.g. could Dotmailer provide a data collection page? 

  • Avatar

    (I meant "website CMS" of course!)

  • Avatar

    Hi Pete,

    I think this sounds like an issue for our support team, so I'd recommend contacting them. This can be done in a number of ways; click on Help in the top right of the application to access options to phone, chat, or submit a support ticket. Alternatively, you can email

  • Avatar

    Hi - our website has a https address - when we gather email addresses using the form a message pops up about it not being secure - is there a secure version of the form we can use?

  • Avatar

    Hi Peter,

    Thanks for your question - it's a good point. Yes, there is a secure version. The signup form code that's originally generated just requires a little tweak from you. For the line of code that reads:

    <form name="signup" id="signup" action="" method="post" onsubmit="return validate\_signup(this)">

    ...change the 'action' parameter to the following:


    This should solve your issue.

  • Avatar


    I'm trying to submit data through a contact form. The generated contact form works like a charm, but I want to post the data using ajax. I wrote a function, but it results in "XMLHttpRequest cannot load <action link I'm using> No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin <myURL> is therefore not allowed access." The fields get submitted alright, but because of the error I can't display my "Success" page.

     Is there any way around it?

  • Avatar

    Hi Martin,

    The web doesn’t allow making an AJAX request to another domain name than the origin. However, some people work around this by creating a form in the DOM, and posting it to an invisible iframe to get around this issue. There are several examples of this on StackOverflow, though we can’t know exactly what’s going to work on your site. Hope that helps.

  • Avatar

    Hi all,

    Currently our customers when opting out, opt out of everything. I am keen therefor to implement the solution here where customers can opt in to specific address books.

    The issue i have is that we have multiple sources of email address data that changes on a daily basis. We have to manually import different datasets to create our address books. My concern is that if we impliment a peice of code for the website or even as part of the unsubscribe process at the bottom of an email campaign, (if that is possible) anyone opting in through this process would be overwritten when I re-import email addresses from the different datasets. Is this likely to be the case?




  • Avatar

    Instead of going to another page, we'd like it to display a message on that same page.  Is this possible?

  • Avatar

    @Paul W,

    Yep; there's a risk that a manual sign-up form data can be overwritten by data from your imports. The setting you need to look out for is the merge settings in the advanced settings on contact data field mapping (you can read more about it here: Here you can choose whether or not data gets overwritten, and what should happen with "blank" cells in your import.



    It is possible to show a display message; however it's not an 'out-of-the-box' solution and something you'd need to work with your web developers to do. What you would need to do is change the code to not redirect the user; however I would not recommend it may break the resubscribe process.

    Extra geek information: When someone uses this signup code they are sent via the dotmailer application to your redirect URL. When this redirection occurs we do a number of checks, such as if the contact has previously unsubscribed, and if they have then we interrupt the process and they enter a resubscribe process (see here If you circumvent the redirect process, then this resubscribe process will break and you may miss potential resubscribers.

    A more robust option might be to use the survey and forms tool. You can use this to create a signup form and either embed it as an iFrame or make it appear as a popover; and then show a message when the survey is completed. You will still not kickstart the resubscribe process; but you will, at least, get reporting on which contacts have/have not been added to your address book.



  • Avatar


    how do I add a sign up button / link to the campaign template?

    Unsubscribe is available under links but no sign up.

    Thanks, Puk

  • Avatar

    Perfect - thanks Stoo

  • Avatar

    Hi there, I've just implemented the slightly different coding for the form as it was part of a secure page. This has worked a treat except for one thing:

    On the secure pages that the form appears, the ReturnURL does not load. The way we have it set up is that an iframe is holding the secure page that the form appears on, this iframe then loads the ReturnURL when the email address is submitted to the form. This doesn't' seem to affect the data capture as the email address is taken when the signup button is clicked, it just doesn't load the ReturnURL. On the flip side, when using the form on a non-secure page, there's no problem at all. Here's my form coding:

    <form name="signup" id="signup" action="" method="post" onsubmit="return validate\_signup(this)">

    <input type="hidden" name="addressbookid" value="219234">

    <!-- UserID - required field, do not remove -->

    <input type="hidden" name="userid" value="22954">

    <!-- ReturnURL - when the user hits submit, they'll get sent here -->

    <input type="hidden" name="ReturnURL" value="\_thanks.html">

    Please help!

  • Avatar

    Please ignore my comment - I've sorted it all out... Thanks anyway! :)

  • Avatar

    Hi this is working very well and easy to edit with dropdown boxes and radio buttons etc.

    However I'd like to know if there is anyway to disable email address as a required field, I deal with a wide range of customers and use Dotmailer to store details of all our customers as I find it so user friendly. Some customers however don't yet have email addresses. Alternatively if the email address is left blank can I set a default ( etc?

  • Avatar

    Hi If someone wanted to take themselves off a particular list by going back to the form and excluding a particular list from their choices it seems they do not come off the list from this form. Example: I am on list 1 and 3 and decide I want to be on list 1 only so I try the form and only click list one. It does not seem to take me off the other list. Is there a workaround for this?


  • Avatar

    Hi. I've selected 'yes' against 'include unsubscribe option' on the form builder. The form is set to operate against four public address books. However, when testing the form, using the unsubscribe option does not fire the unsubscribe action triggered campaigns set in the four public address books. Is this expected behaviour? Many thanks.

    Kind regards, Nigel

  • Avatar

    Hi Nigel. Thanks for your question. I can confirm that this is expected behaviour, yes - the reason being that the unsubscribe function on the signup form is an account-wide unsubscribe. It won't allow contacts to unsubscribe from specified address books. In order to allow contacts to unsubscribe from specified address books, they'll need access to a preference centre to change their preferences -

    However, I appreciate that this article was incorrectly indicating that contacts could unsubscribe from individual address books. Apologies for any confusion as this is not the case, and the article has been updated to reflect this.

  • Avatar

    Hi Neal. Many thanks for the info. That all makes perfect sense. I should probably have worked out for myself that the unsubscribe action was account wide, rather than individual address books. But thanks for clarifying in the article. Kind regards, Nigel

  • Avatar

    We will be asking people to enter a loyalty card number on sign up.

    - is there an option to ask them to double enter the card number to minimise typing errors?
    - OR can a prompt be displayed on screen to ask them to double check their card number before a final submission of the form?