It’s been a few years now, but there was a time in my career when I worked as a freelancer. Sometimes I built websites for companies that required me to use their own SMTP servers to send messages from contact forms. And you know what? Those servers often failed. One time emails wouldn’t go through due to bad configuration, another time the server was flagged as spam—or it was simply down.
That experience taught me a valuable lesson: email delivery isn’t always reliable. But even if you have a rock-solid SMTP setup that works flawlessly, there are still good reasons to use MsgGO.
Why? Because MsgGO doesn’t just send emails. It expands your notification strategy. You can add an SMS to the client, a Slack notification to your team, or a webhook to trigger automations in other systems—all without touching your form’s code. MsgGO gives you flexibility and control over how, where, and to whom your messages are delivered, without the overhead of managing backend logic.
Traditional Approach vs. MsgGO
Traditional Method
A typical approach to handling contact forms includes:
- Setting up a backend (e.g., in Node.js, PHP, or Python).
- Integrating with external email services (e.g., SendGrid, Mailgun).
- Creating and maintaining an API to handle submissions.
- Managing permissions, API keys, and monitoring message delivery.
- Changing code when adding new notification methods or recipients.
MsgGO Approach
MsgGO eliminates the need for complex integrations, allowing you to send contact form submissions using just a few lines of code. With MsgGO:
- You don't need to integrate with multiple platforms—one MsgGO API is enough.
- You can dynamically manage message recipients without changing your code.
- You can easily add new delivery methods, such as Slack or SMS, without modifying your application.
- And most importantly, you don’t need any server-side code.
Lets Configure MsgGO
Alright, enough talking—let’s get to work. I’ll show you how to deliver a message from a contact form straight to your email in 4 simple steps. And as a bonus at the end, we’ll configure Slack delivery so your team can respond to your clients quickly and efficiently!
Step 1: Defining an Event in MsgGO
- Log in to the MsgGO dashboard.
- Go to the Events section.
-
Click Add Event and name it, e.g.,
Contact Form Submission
. - Save the event.
Step 2: Configuring Email Delivery with a Message Template
- Open the created event.
- Go to the Event deliveries section.
- Click Add Delivery.
- Choose Email as the delivery target.
- Select a verified team member who should receive the message.
- In the Message Template dropdown, click New message template.
- Enter a name for your template (eg. “Default”).
- In the message editor, configure the message content using dynamic variables:
New contact form submission:
Name: {{ data.name }}
Email: {{ data.email }}
Message: {{ data.message }}
- Click Save to apply the configuration.
Step 3: Generating a Public API Key and Adding a Trusted Domain
To send events from the frontend (e.g. directly from a form), you must use a public API key. This allows the key to be safely exposed in client-side code.
- Go to the API Keys page in the MsgGO platform.
- Create a new public key.
-
Add your domain (e.g.,
yourwebsite.com
) to the trusted domains list. Only requests from these domains will be accepted. -
Best practice: Use separate keys for different websites or systems, and add a clear description (e.g.,
Marketing site - contact form
) to identify where each key is used.
⚠️ Note: Public API keys can only be used from trusted domains. For server-side requests, use a private API key instead.
Step 4: Sending a Request Directly from the Frontend
With MsgGO, you can send form submissions without needing a backend. A simple HTTP request to the MsgGO API is all it takes.
Sample HTML Form and JavaScript Handling
<form id="contactForm">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<label for="message">Message:</label>
<textarea id="message" name="message" required></textarea>
<button type="submit">Send</button>
</form>
<script>
document.getElementById('contactForm').addEventListener('submit', function(event) {
event.preventDefault();
const formData = {
name: document.getElementById('name').value,
email: document.getElementById('email').value,
message: document.getElementById('message').value
};
fetch('https://msggo.io/inbox', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-MsgGO-Key': 'YOUR_API_KEY'
},
body: JSON.stringify({
event_name: 'contact-form-submission',
,data: { ...formData, },
})
}).then(response => {
if (response.ok) {
alert('Message sent!');
} else {
alert('An error occurred, please try again.');
}
});
});
</script>
Now, form submissions will go directly to MsgGO, and recipients can be managed dynamically in the dashboard without modifying the code.
Additional Delivery Methods
MsgGO allows you to send notifications not only via email but also to other platforms like Slack or SMS. This makes it easy to tailor message delivery to your team's needs.
How to Add Slack or SMS to notification?
- Go to Events in MsgGO.
-
Find your event (e.g.,
Contact Form Submission
) and hover on it. -
Click Add Delivery and choose Slack or SMS.
- For Slack, select the channel where messages should be sent.
- For SMS, choose recipient from verified users.
- Save the changes.
And Even More
If you want to do more than just send notifications via Email, Slack, or SMS, webhooks open up new possibilities—from automatically saving data in a database to advanced workflow automation and AI integrations.
How to Add a Webhook to Submissions
- Go to Events in MsgGO.
- Find your event (e.g., Contact Form Submission) and hover on it.
- Click Add Delivery and choose Webhook (URL).
- Enter the URL where MsgGO should send the submissions.
- Save the changes.
Now, each new submission will automatically be sent to the specified URL, allowing for further processing in your systems.
With webhooks, you can:
- Store submissions in a database,
- Automatically create tasks in project management systems,
- Notify teams via additional communication channels.
Integration with Automation Platforms
If you want to further automate submission processing, you can use platforms like Make or Zapier. These allow you to:
- Automatically add submissions to Airtable, Google Sheets, or CRM databases,
- Create tasks in Asana, Trello, or ClickUp,
- Forward submissions to AI systems for content analysis.
How to Set Up MsgGO with Make
- In Make, create a new scenario and select Webhook as a trigger.
- Copy the generated URL
- In MsgGO, add a new Webhook (URL) delivery and paste the copied URL from Make.
- Save the changes in MsgGO and activate the scenario in Make.
- Now, every submission will trigger automated actions in your system.
With this setup, you can process submissions without writing additional code and integrate MsgGO with any tool.
You’re all set!
As you can see, setting up a contact form with MsgGO is quick and easy — the whole thing takes just about 5 minutes.
If you have any questions or need help setting it up, feel free to reach out to us at support@msggo.io