Getting started

Here is where you will find out how to create your account, set up sending domains and docklets to organize every transactional email sent. Plus many other useful information to get started with Maildocker. Are you ready?

What is Maildocker?

Maildocker is a smart behavioral and transactional email platform designed for developers to send personalized messages, such as welcome emails, password resets, order confirmations, purchase receipts, monthly invoices and any other kind of non-spam emails. We manage all of the technical details, from the whole infrastructure to deliver your transactional emails to real time analytics in order to keep an eye on your reputation.

Create a Maildocker account

To get onboard with us, create your Maildocker account here:

As soon as you've created your Maildocker account, you will be at the entrance of the ship. Check your inbox and then follow the instructions to get your ticket before you come aboard. Once you enter, you will have three small tasks to do in order to get ready to go.

First Task: Set Up Sending Domains

When your account is ready and you've signed up, your first task as a sailor at Maildocker begins with your sending domain. You must set it up to start sending your transactional emails. All you need to do is add SPF and DKIM records to your domain to show that Maildocker has permission to send emails on its behalf. Go to Settings and click on Domains. Then look for the plus sign at the top right of the page to add a new domain.

Setting up the DNS

There are two ways to set up the DNS to send your transactional emails through Maildocker. One option is known as SPF and the other as DKIM.

SPF is an authorization that allows us to send emails on your behalf. It also allows the domain holder to set a server that will be permitted to send email messages. We guide you (and your IT team) on how to publish this TXT entry and help with the SPF settings. In cases where the SPF is not yet configured: "v=spf1 a mx ~all". In cases where the SenderID is already configured and you want to add the Maildocker IPs:

DKIM stands for Domain Keys Identified Mail, which refers to an antispam authentication system that increases the email's integrity when delivered in your destination with a public key in this email and in the DNS source server. We recommend you to open a request with your IT team to publish a TXT entry under the name "", with the following content (no line-breaks):

Validating the DNS

To finish this task, go once again to Settings and Domains. Pick the registered domain and click on it. After this, you will see an option to revalidate. All you have to do is click on it and you are ready for the next task!

Second Task: Create Docklets to go

After a technical task, it’s time for something lighter to cheer you up. So let’s create your first docklet. Do you know what this means? Docklet is where you can organize every transactional email you sent through Maildocker. To complete this task, click on Docklets on the menu and then the plus sign. Choose a name and its ready! The next screen shows the API Key and the API Secret, both are credentials to make the API integration.


The API Key is the Docklet login, used to identify from where an email is being sent. It’s also used to authenticate your application for many purposes.

API Secret

The API Secret is the equivalent of the password.

Third Task: Send email from Maildocker

Now you are ready to send your first transactional email and you can do it through our RESTful API integration.

RESTful API Integration

It’s time for the best part, huh? The Maildocker API is designed to be fast, intuitive and REST compliant, which means you have the freedom to create, read, update and delete resources. You can use it with any language that supports HTTP(s) requests such as POST, GET, PUT and DELETE.

GET /$resource gives you a list of resources of type $resource
GET /$resource/$id gives you a single resource of type $resource, identified by the id $id
POST /$resource allows you to create a resource of type $resource
PUT /$resource/$id allows you to update an existing resource of type $resource, identified by the id $id
DELETE /$resource/$id allows you to delete a single resource of type $resource, identified by the id $id

Libraries in any language

Through our libraries you will be able to do a fast integration between Maildocker and your project with a variety of languages and frameworks. We keep the following official libraries for you to send your transactional emails:

maildocker-nodejs - Official NodeJS library
maildocker-php - Official PHP library
maildocker-python - Official Python library
maildocker-ruby - Official Ruby library

Fourth Task: How to create and use an automation flow

What if your system could react automatically depending on your user's behavior? Now it’s possible and really simple! After creating an automation flow, it can be triggered when one of your transactional emails is sent. From this moment on, by tracking your user’s actions, the system can automatically send another email, add or remove the user on a list, and many other options. It makes your life easier and, your system smarter! Follow this guide to learn how simple it is to create and use Maildocker's automation.

Creating a New Automation Flow

To start an automation flow, click on the icon Flow icon. Choose a name and it’s done! Your automation is created and you are ready to go.

Now let’s configure it before we can start sending emails! First of all, the most important thing is to define a trigger. Trigger is the name of the event, which you will send together with your email. It’s important because this is the way for Maildocker to get to know which flow it should follow from the email sent through your system. For this guide our trigger will be called flow_test.

After setting the trigger, there are two checkboxes. One is to make sure the user will go through that flow once, and only once. The other is to enable the user to be part of the same flow, even if he is already taking part of it. By checking the first option, we can send, for example, a transactional email to welcome the new user in your system. This email may trigger a flow to add the new user in a list. This should be done only once, at the moment the user signs up. Got it? A good reason to check the second option is when you need to send a transactional email with an invoice to your user. The flow should keep reminding the user to pay the bill. In case the user gets another invoice, for any reason, he will be part of the same flow once again, to keep reminding him of both bills.

Managing Steps

After setting the trigger and choosing the options of your automation, it’s time to manage the steps of the flow.

Flow start

A circle will be visible which represents the trigger of your automation flow. By passing the mouse over it, you can see an engine to change the configuration of your trigger. Click on the plus sign and drag it to the position where you want to add the next action. The options you can choose from are as follows:

Api Call

Add to list: it adds the contact in a list. By choosing this action, a pop up will appear to choose the list;

Api Call

API call: it makes an API call to any API you define by specifying the method you want, URL, payload (depending on the method), your user, password and finally an object name for future interactions;


Condition: it filters the flow according to events such as email opened, email clicked, email bounced, etc. There are two conditions, true or false, that can be set on the arrows exiting the condition. You can change its value by clicking on it;

End flow

End flow: it finishes the flow;

Jump to flow

Jump to flow: it moves the user to another flow and finishes the current one;

Remove from all flows

Remove from all flows: it removes the contact from all flows in which he is included;

Remove from flow

Remove from flow: it removes the contact from a specific flow which you should define. It’s not necessarily the one the user is included in at the moment;

Remove from list

Remove from list: it removes the user from a list that will be specified by you;

Send email

Send email: it sends an email with a template chosen by you to a contact that is part of the flow.

The arrows connecting the actions can set the time the flow needs to wait before triggering the next action in sequence. By not setting a time, the default mechanism will set the change of state as "immediately", but you can pick a value and define the time unit which it will represent. In addition, adding more than one arrow from one action to two or more actions will make all the consecutive actions run in parallel, by the time set for each of them.

Select time

Select time

Select time

The arrows from a condition, besides the value of time, have the value of true or false to filter the condition itself. In the case bellow, if the email was opened it goes to "send email", otherwise it goes to "add to list".

True and false arrows

When you finish everything, just click on save to store the changes in the flow. If you don’t want to keep the changes, simply click on cancel and then it will return to the way it was before you started managing the steps.

Let’s create a simple case as an example for you, shall we?

Drag and drop a line from the trigger to a position.

Tutorial Automation

Tutorial Automation

Choose send email.

Tutorial Automation

Select the template.

Tutorial Automation

Tutorial Automation

Set the time for 1 minute.

Tutorial Automation

Then drag and drop a line from the action ‘send email’ to another position and choose end flow.

Tutorial Automation

It’s done! A very simple flow that will send an email 1 minute after the flow is triggered. Be creative to design and improve your own flow.

Testing the Automation

As soon as you have an automation created and configured, you are able to test it! So all you need to do is set your email to be sent, defining an event with the name of the trigger from your flow. Making an API call would look like this:

    "from": {
                "email": "[email protected]",
                "name": "Maildocker"
    "to": {
                "name": "Test",
                "email": "[email protected]"
    "subject": "Testing the Flow",
    "text": "This is a message to trigger the flow!",
    "event": {
                "name": "flow_test",
                "data": {"extra_information": "Add here all your flow might use..."}

The most important part is to define the event name exactly the same as your automation trigger. Making this API call will send an email, trigger the flow and, after 1 minute, the flow will automatically send a welcome email.

Dashboard Overview

If you came this far, you are ready to take the rudder and become the captain at Maildocker. So let’s surf all the options that are at your disposal in our harbor in order to make you feel comfortable here

After setting up your domain and creating your first docklet, you have the whole harbor to explore. On the left side of your dashboard, you can view a menu that works like a compass to guide you through the sea. Let’s follow the route!


If you want to check information about your account, such as users, profile or even change your password or email, the path is the orange circle above your avatar image. Here you can also set the time zone and the language.


This is the place to add your contacts. Here you can check all their data, such as profile, interaction with the transactional emails you sent, lists, devices, lifecycle, events within the system and location.


With this option you can follow all the lists added to the Maildocker platform, the number of contacts in each one and also information about them.


Here you can set templates in HTML or in text versions to add to your transactional emails before you send them through Maildocker.


This is one of the most important places inside the system. Docklets work as containers to organize every transactional email you sent. You can check important information such as reputation and deliverability rates. You can also enable tracking options, webhooks, tags and other cool stuff.


If you want to follow some global historic data within the system, you should keep an eye on this option. Everything inside the system is registered here.


If you want to follow some particular historic data within the system, you should keep an eye at this option. Single interactions are listed here.


Do you know where the magic happens? Here, you will have at your fingertips, important data to aid your decision making process, in order to improve all transactional emails you send with us.


Find a space to create filters to refine your lists and interactions with the Suppression Rules. Group IPs in Pools. Set your domains to start sending your transactional emails through Maildocker.

Are you looking for extra help? We have some quick links to our Support, Documentation, and FAQ, just in case you have any questions that we might already have the answers for you.