Creating a signup form


You can create advanced web signup and unsubscribe forms at the click of a mouse. This will enable your contacts to opt in to or unsubscribe from single or multiple address books and to collect/append valuable additional data fields.

How to create a signup form

To create a web signup form, select Contacts from the navigation menu and then select Signup forms from the dropdown displayed.


This screen is split into three separate steps:

  1. Form mode - you have a choice of a form that can subscribe or unsubscribe to/from either one or multiple address books. Use the radio buttons to make the appropriate choice.
  2. Address books - select the address book(s) that are being subscribed to or unsubscribed from. If you selected a single address book in the first step then you will only be able to select one address book. Use the radio buttons to make the appropriate choice.
  3. Custom fields - by default, the system will collect the email address. Use the checkboxes to select the other contact data fields you wish to have displayed on the web form. Any data entered by the contact into these fields will automatically be added to the address book.

In the example below, we've selected a single address subscribe to the address book called 'Monthly newsletter'. You can also see the custom fields that have been selected:


If you want to, you can add a short description of what signing up will mean to the contact (for example, the kind of email that you'll send them). This is good for best practice, and is particularly useful if you wish to be CASL compliant.


If you want all the the fields to be filled in by your new signup, and not just their email address, then simply check the Validation box.


At the bottom of the screen, you can enter a URL for a web page to send your contacts to after they have completed the signup form. In the example below, we have entered the 'newsletter sign-up thank you' page.


When you are ready, click the Create form button.

A window will now appear underneath the 'Create form' button with the generated HTML for the web form. Use your scroll bar to move down the screen.


You can now pass this code to your web developer for inclusion on your website.

An easy way to do this is to highlight the code, right click and select Copy. Now open a basic editor, such as Notepad, and simply paste the code in.


Want a secure version of the signup form?

Simply make the following tweak to the signup form code that's originally generated. 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:


Please note

  • 'rX' will depend upon the region your account belongs to - so either r1 (Europe), r2 (North America), or r3 (Asia Pacific)
  • You can't currently use HTTPS with a custom domain

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?