Your shop has one built-in sign-up form, so you do not need to paste any embed code from your email provider. It asks for a first name, an email address and a tick-box to agree to your privacy policy, then sends the person straight to your email list. Because there is no provider script to load, your pages stay fast.
All you supply is an API key and a list ID from your email provider. This guide explains where the form appears, how to connect your provider and how to set up a waitlist.
Before you start (self-hosted shops)
Your email provider API key is saved encrypted, using the ENCRYPTION_KEY in your .env file. If the key is missing, saving the API key shows a red error and nothing is saved. Generate the key once and keep a copy somewhere safe. The full explanation is in The Encryption Key: Why It's Critical and How to Avoid Losing It.
Step 1: Connect your email provider
Go to Site Settings, then Email Settings, then Email Marketing Integration. Choose your provider and enter two things:
- API key: generated in your provider's account.
- List ID: the number that identifies the list or group new people join.
Djangify works with MailerLite, Kit (ConvertKit), Brevo, Mailchimp and AWeber. The list ID is the number people most often get wrong, because each provider calls it something different:
- MailerLite: the Group ID. Open Subscribers, then Groups, then open the group and copy the long number from the web address. Do not use the number from the Forms page: that is a form ID and MailerLite will refuse it with "The selected groups.0 is invalid".
- Kit (ConvertKit): the Form ID.
- Brevo: the List ID, a plain number shown next to the list name.
- Mailchimp: the Audience ID, found under Audience settings.
- AWeber: the account ID and list ID separated by a slash, for example 12345/678910.
Providers move their menus around, so check their current help pages for where to find the API key and the ID. Your API key is stored encrypted and is never shown again after you save it.
Where the form appears
The same form is used in several places. Each place can have its own title, wording, list and tag.
- Under a Coming Soon product: a waitlist box. Set the wording in Site Settings, Email Settings, Waitlist sign-up.
- Waitlist block: a waitlist on any page that is not tied to a product. Add a Waitlist block through the page's content container.
- Newsletter block: add a Newsletter block to a page and leave the embed code box empty to get the built-in form.
- The end of every blog post: Site Settings, Email Settings, Newsletter sign-up on blog posts.
- LinkHub pages: Site Settings, Email Settings, Newsletter sign-up on LinkHub pages.
- Under a free tool: Site Settings, Email Settings, Newsletter sign-up on free tools. The person is also emailed their results. The list and tag are set on each tool.
- Under a Topic Cluster download button: appears automatically once a provider is connected.
- Hero banner: when the banner's newsletter block has no embed code, the built-in first name and email form is shown on the banner.
If you would rather use your provider's own form, for example because you want extra fields, paste its embed code into the Newsletter block and that block uses it instead.
Lists and tags
- List ID per place (optional): leave it blank and people join your default list. Enter a different ID and that place keeps its own list.
- Tag per place (optional): use it to see where people came from, for example blogsu or toolssu. A tag does not replace the list ID. They work together.
- MailerLite has no tags, so a tag becomes a group. The group is created automatically the first time the tag is used, and the person is added to it in addition to your main list. In Kit, Brevo and Mailchimp it is a normal tag.
Privacy policy link and tick-box
Under Site Settings, Email Settings, Built-in sign-up form, set the link to your privacy policy. It defaults to /policies/privacy-policy/. A setting controls whether the tick-box starts ticked. In the UK and the EU a pre-ticked box is not accepted as consent on its own, so leave the confirmation email switched on at your provider (see below) and take advice if you are unsure.
Spam protection is built in: a hidden field that bots fill in and people never see, plus a limit on how many sign-ups one connection can make in ten minutes.
Confirmation emails (double opt-in)
The form asks your provider to confirm each new subscriber by email. Whether that email is sent depends on a setting inside the provider:
- MailerLite: go to Account settings, then Subscribe settings, and switch on Double opt-in for API and integrations. If it is off, MailerLite never sends the email and people are added straight away as Active.
- Kit: the form chosen by the form ID must have its confirmation email switched on.
- Brevo: Brevo does not send a confirmation email for people added this way. The tick-box is their consent.
- Mailchimp: Djangify asks for pending status. Check that a confirmation email arrives when you test.
- AWeber: your list's own confirmed opt-in setting decides. It is on by default.
Setting up a waitlist
- For a product that is not ready: set the product's status to Coming Soon. A sign-up box appears under the Coming Soon notice.
- Wording: change the title, message and button text under Site Settings, Email Settings, Waitlist sign-up, for example "Join the waitlist".
- Who is waiting for what: everyone who joins from a product is also tagged waitlist-product-name. In MailerLite that is a group of its own, so you can email exactly those people when the product goes live.
- A waitlist not tied to a product, such as your next course: add a Waitlist block to any page and give it its own title, tag and, if you want, its own list.
Testing it
Sign up with a brand-new email address, for example a Gmail address with a tag such as name+test1@gmail.com. An address that is already an active subscriber is never sent a confirmation email again, which makes a test look broken when it is not. A new subscriber should show as Unconfirmed at your provider until they click the link in the email.
If someone says they signed up and nothing arrived
- Look in the right place. In MailerLite, a form's own subscriber count only counts people who joined through MailerLite's own form. People from your shop's form appear under Subscribers, then Groups, then your group.
- Check the ID. A form ID in a MailerLite shop is the most common mistake. It needs the group ID.
- Check the API key is saved. It shows as dots after saving. If it is blank, or you saw a red error about ENCRYPTION_KEY, the shop is missing its encryption key.
- Is the person already subscribed? If so they are not sent another confirmation email.
- Is double opt-in switched on at your provider? See the list above.
See also: Managing Email Optins for the opt-in tick-box on customer registration and the dashboard subscribe button.