Features

Send surveys embedded in your emails

Easily send surveys via email without the need for any third-party survey tools. Understand your customers and gain valuable insights to help improve your product and customer experience.

Tailor surveys with 7 question types

Craft your survey for maximum engagement by choosing from several templates including NPS score, multiple choice, open question, matrix style and more. Add up to 5 questions to your survey.

Examples of email surveys.

Why survey emails are great tools for businesses

More efficient than traditional data collection methods. Easily and quickly collect feedback from your customers.

Increase engagement—recipients are more likely to click when prompted by a survey.

Understand your users and customers in a more profound way and apply this to your business strategy.

Discover and resolve pain points with your product or service and increase customer satisfaction.

Use customer feedback to segment recipients and personalize further communication.

Build trust and strengthen relationships by showing customers that you value their opinion.

The MailerSend drag and drop builder with survey options.

Use rules for a dynamic experience

Add survey rules for dynamic questionnaires that adapt based on the recipient’s answers. Skip questions and make the survey more relevant for the user.

MailerSend

Maximize survey completions

Encourage respondents to finish surveys and maximize completions by showing their progress. Plus, allow people to adjust their answers by moving freely through the survey.

Integrations

Easily connect other web apps with MailerSend so they seamlessly work together to share information, automate workflows and enhance your customer experience.

User-friendly API with 7 SDKs

Work with your programming language of choice with SDKs for PHP, Java, Python, NodeJS, Laravel, Go, and Ruby, complemented by comprehensive API documentation.
Read our API docs
curl -X POST \
https://api.mailersend.com/v1/email \
    -H 'Content-Type: application/json' \
    -H 'X-Requested-With: XMLHttpRequest' \
    -H 'Authorization: Bearer {place your token here without brackets}' \
    -d '{
        "from": {
            "email": "your@email.com"
        },
            "to": [
        {
            "email": "your@client.com"
        }
        ],
        "subject": "Hello from MailerSend!",
        "text": "Greetings from the team, you got this message through MailerSend.",
        "html": "Greetings from the team, you got this message through MailerSend."
    }'
$recipients = [
new Recipient('your@client.com', 'Your Client'),
];

$emailParams = (new EmailParams())
->setFrom('your@email.com')
->setFromName('Your Name')
->setRecipients($recipients)
->setSubject('Subject')
->setHtml('Greetings from the team, you got this message through MailerSend.')
->setText('Greetings from the team, you got this message through MailerSend.');

$mailersend->email->send($emailParams);
php artisan make:mail ExampleEmail

Mail::to('you@client.com')->send(new ExampleEmail());
const Recipient = require("mailersend").Recipient;
const EmailParams = require("mailersend").EmailParams;
const MailerSend = require("mailersend");

const mailersend = new MailerSend({
    api_key: "key",
});

const recipients = [new Recipient("your@client.com", "Your Client")];

const emailParams = new EmailParams()
    .setFrom("your@email.com")
    .setFromName("Your Name")
    .setRecipients(recipients)
    .setSubject("Subject")
    .setHtml("Greetings from the team, you got this message through MailerSend.")
    .setText("Greetings from the team, you got this message through MailerSend.");

mailersend.send(emailParams);
package main

import (
    "context"
    "fmt"
    "time"

    "github.com/mailersend/mailersend-go"
)

var APIKey string = "Api Key Here"

func main() {
    ms := mailersend.NewMailersend(APIKey)

    ctx := context.Background()
    ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
    defer cancel()

    subject := "Subject"
    text := "Greetings from the team, you got this message through MailerSend."
    html := "Greetings from the team, you got this message through MailerSend."

    from := mailersend.From{
        Name:  "Your Name",
        Email: "your@email.com",
    }

    recipients := []mailersend.Recipient{
        {
            Name:  "Your Client",
            Email: "your@client.com",
        },
    }

    variables := []mailersend.Variables{
        {
            Email: "your@client.com",
            Substitutions: []mailersend.Substitution{
                {
                    Var:   "foo",
                    Value: "bar",
                },
            },
        },
    }

    tags := []string{"foo", "bar"}

    message := ms.NewMessage()

    message.SetFrom(from)
    message.SetRecipients(recipients)
    message.SetSubject(subject)
    message.SetHTML(html)
    message.SetText(text)
    message.SetSubstitutions(variables)

    message.SetTags(tags)

    res, _ := ms.Send(ctx, message)

    fmt.Printf(res.Header.Get("X-Message-Id"))

}
from mailersend import emails

mailer = emails.NewEmail()

mail_body = {}

mail_from = {
    "name": "Your Name",
    "email": "your@domain.com",
}

recipients = [
    {
        "name": "Your Client",
        "email": "your@client.com",
    }
]

mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)
mailer.set_html_content("Greetings from the team, you got this message through MailerSend.", mail_body)
mailer.set_plaintext_content("Greetings from the team, you got this message through MailerSend.", mail_body)

mailer.send(mail_body)
require "mailersend-ruby"

# Intialize the email class
ms_email = Mailersend::Email.new

# Add parameters
ms_email.add_recipients("email" => "your@client.com", "name" => "Your Client")
ms_email.add_recipients("email" => "your@client.com", "name" => "Your Client")
ms_email.add_from("email" => "your@domain.com", "name" => "Your Name")
ms_email.add_subject("Hello!")
ms_email.add_text("Greetings from the team, you got this message through MailerSend.")
ms_email.add_html("Greetings from the team, you got this message through MailerSend.")

# Send the email
ms_email.send
The drag and drop editor brand settings.

Customize surveys with your branding

Easily edit the design settings of the survey block in the drag and drop builder so it seamlessly fits in with your brand colors and design.

The MailerSend split testing feature.

Split test survey email templates

Create multiple versions of your survey email templates to see which subject lines and email content perform best with split testing.

MailerSend email activity events.

Track responses in real-time

Keep track of your survey progress in MailerSend’s Activity page. Filter email activity by survey opened and submitted to see how responsive your recipients are.

The Add a webhook modal in MailerSend.

Enhance your surveys with webhooks

Get instant updates on survey feedback and activity. Use webhooks to collect survey data or trigger additional workflow automations based on recipients’ answers.

Learn more about your customers today!

Start sending surveys with MailerSend—learn how to create a survey email with our help guide.

Frequently asked questions

Are email surveys effective?

Surveys via email are one of the most effective ways to gather insights about your users and customer base. You can send surveys to your most valuable audience — your existing customers — meaning that their feedback will be more relevant. What’s more, surveys sent via email result in higher survey response rates than those sent by traditional methods, as they are easier for recipients to complete at their leisure.

Are survey emails subject to the CAN-SPAM Act?

According to the FTC, “Emails containing true opinion and research surveys may fall outside the scope of the Act, but to the extent that any such message seeks to advertise or promote a brand, a company, or a product or service to the recipient, it also may be primarily commercial in purpose, and therefore subject to the Act’s requirements and prohibitions.” You can learn more about how to send survey emails and best practices in our guide.

Do I need to enable any specific settings to use the survey block?

You must enable content tracking on your domain, and add the activity.survey_submitted and activity.survey_opened events to your webhook. 

Are surveys considered transactional emails?

Yes, when you send a survey about a product or service, it is triggered by an action the recipient has taken and is therefore transactional. You can learn more about transactional emails in our guide.

How are survey responses collected?

To receive the answers from your survey, you‘ll need to use a webhook with the survey activities on the domain of the API token you’ll send it with. 

You can view the results of a survey response by clicking on the event on the webhook page. For better readability of the results, you can parse the answers to your app or use an automation platform like Make or Zapier to send the webhook’s payload to any other 3rd party tool like Airtable or Google Sheets. 

Can I integrate survey data with my CRM system?

Yep! You can use Zapier or Make to send the data to another app or create your own custom integration with the API to parse the answers to your CRM.

More features to explore

MailerSend is packed full of features that help you save time and grow your business.