MiN8T All Insights

On This Page

  1. What are Data Storages?
  2. Creating a Data Storage
  3. The Submission Endpoint
  4. Connecting an AMP Form
  5. Viewing Responses
  6. Exporting Data
  7. Webhook Forwarding
  8. Next Steps
Guide 10 min read

What are Data Storages? How to Collect Form Responses

M
MiN8T Team
Email Engineering
April 12, 2026

1 What are Data Storages?

A Data Storage is the server-side endpoint that receives and stores form submissions from AMP emails. When a recipient fills out a feedback form, RSVP, survey, or order form inside your AMP email, the form data is sent to your Data Storage endpoint and saved securely.

Think of it as a lightweight database for email form responses, no backend coding required. You create a Data Storage in the dashboard, point your AMP form's action URL at it, and MiN8T handles the rest: receiving the POST request, sanitizing the data, storing it, and optionally forwarding it to a webhook.

Common use cases:

  • NPS / CSAT surveys, collect star ratings and feedback comments
  • Event RSVPs, gather attendee names and email addresses
  • Order confirmations, let recipients confirm or modify orders directly in email
  • Lead generation, capture interest and contact details without leaving the inbox
  • Quick polls, single-question surveys with instant results
i

Data Storages are the receiving side of AMP forms. Data Sources are the sending side, they serve data into emails. Both use the same endpoint infrastructure with AMP CORS headers, but they flow in opposite directions.

2 Creating a Data Storage

Step 1: Open Data Storages Dashboard

In the MiN8T sidebar, click "Data Storages". This opens the Data Storages dashboard at /data-storages.

Step 2: Click "New Storage"

Click the "+ New Storage" button. A creation modal opens.

Step 3: Fill in Details

  1. Name (required), e.g., "Q2 NPS Survey", "Webinar RSVPs"
  2. Description (optional), a note for your team about what this storage collects
  3. Webhook URL (optional), a URL to forward submissions to (Zapier, Make, or your own API)
  4. Enable Webhook, toggle on to activate forwarding

Step 4: Save

Click "Create". MiN8T generates a unique endpoint URL with a 64-character cryptographic hash. The storage appears in your dashboard card list showing:

  • Storage name and description
  • Active/Inactive status badge
  • Response count
  • Full endpoint URL with copy button
  • Last response timestamp
✓

Data Storages are managed at the account level, not per template. One storage can receive submissions from multiple emails and templates.

3 The Submission Endpoint

Every Data Storage gets a unique public endpoint:

POST https://api.min8t.com/emailformdata/v1/storage/{hash}/{name}

In development:

POST http://localhost:3001/emailformdata/v1/storage/{hash}/{name}

The {hash} is a 64-character hex string (256 bits of entropy) that acts as the authentication. The {name} is a URL-safe slug of your storage name.

Request Format

The endpoint accepts both application/json and application/x-www-form-urlencoded (the default for AMP form submissions):

POST /emailformdata/v1/storage/a1b2c3...f0/q2-nps-survey
Content-Type: application/x-www-form-urlencoded

rating=5&comment=Great+product&email=user@example.com

Response

{ "success": true }

AMP CORS Headers

The endpoint automatically handles AMP CORS requirements:

  • Access-Control-Allow-Origin, echoes the requesting email client origin
  • AMP-Access-Control-Allow-Source-Origin, echoes the sender email address
  • Access-Control-Expose-Headers, exposes the AMP source origin header

Allowed origins: Gmail, Yahoo, Mail.ru, AOL, and FairEmail. A CORS preflight (OPTIONS) handler is also provided.

Security & Limits

  • Maximum 50 fields per submission
  • Maximum 10KB per field value
  • HTML tags, <script>, and event handlers are automatically stripped (XSS protection)
  • Metadata is recorded with each submission: origin, user agent, IP address, and timestamp
  • Inactive storages return 404, deactivate a storage to stop accepting submissions without deleting it

4 Connecting an AMP Form

To collect responses from an AMP email, set your <amp-form> block's action URL to the Data Storage endpoint.

In the MiN8T Editor

  1. Drag an AMP Form block from the block palette into your template.
  2. Add input fields: text, email, tel, select dropdown, textarea, or hidden fields.
  3. In the form's property panel, set the Action URL to your Data Storage endpoint URL (copy it from the dashboard).
  4. Configure the success and error response templates, these are shown to the recipient after submission.
  5. Style the submit button using the button properties panel.

Available Input Types

  • Text, single-line text input
  • Email, email address with browser validation
  • Tel, phone number input
  • Select, dropdown with predefined options
  • Textarea, multi-line text
  • Hidden, invisible fields for tracking data (campaign ID, template version, etc.)

Each field's name attribute becomes the key in the stored response. For example, an input with name="rating" stores as {"rating": "5"}.

The Generated AMP HTML

When exported, MiN8T generates proper <amp-form> markup:

<form method="post"
      action-xhr="https://api.min8t.com/emailformdata/v1/storage/{hash}/{name}">
  <input type="email" name="email" placeholder="Your email" required />
  <input type="text" name="feedback" placeholder="Your feedback" />
  <button type="submit">Submit</button>

  <div submit-success>
    <template type="amp-mustache">
      Thank you for your feedback!
    </template>
  </div>
  <div submit-error>
    <template type="amp-mustache">
      Something went wrong. Please try again.
    </template>
  </div>
</form>
!

AMP forms use action-xhr (not action). The form submission is handled via XHR within the email client, the recipient never leaves their inbox. MiN8T sets this automatically when you export.

5 Viewing Responses

All form submissions are stored and accessible in the Data Storages dashboard.

Response Table

Click on any Data Storage card to expand the responses viewer. Each response row shows:

  • Response ID, unique identifier
  • Field values, all submitted fields displayed as key-value pairs
  • Timestamp, when the submission was received

Responses are paginated (20 per page) and sorted by most recent first. The card header shows the total response count and the time of the last submission.

Deleting Responses

Individual responses can be deleted from the response table. The storage's response count automatically decrements.

i

Submission metadata (origin email client, IP address, user agent, timestamp) is stored alongside the form fields. This helps with spam detection and analytics.

6 Exporting Data

Export all responses from a Data Storage in two formats:

JSON Export

Downloads a JSON file with all responses, each containing the response ID, fields object, and timestamp. Useful for programmatic processing or importing into other tools.

[
  {
    "id": "clx7abc...",
    "fields": {
      "rating": "5",
      "comment": "Great product",
      "email": "user@example.com"
    },
    "createdAt": "2026-04-12T14:30:00.000Z"
  }
]

CSV Export

Downloads a CSV file with columns for ID, timestamp, and all unique field names across all responses. The export automatically discovers all field names used across submissions (since different form versions may have different fields) and creates a column for each.

CSV values containing commas, quotes, or newlines are properly escaped. The file is ready to import into Excel, Google Sheets, or any data tool.

✓

Export is unlimited, all responses are included regardless of how many there are. The export request has a 30-second timeout to handle large datasets.

7 Webhook Forwarding

For real-time processing, configure a webhook URL on your Data Storage. Every time a form submission is received, MiN8T forwards it to your webhook as a POST request.

Webhook Payload

POST https://hooks.zapier.com/hooks/catch/123/abc/
Content-Type: application/json

{
  "storage_id": "clx7abc...",
  "storage_name": "Q2 NPS Survey",
  "timestamp": "2026-04-12T14:30:00.000Z",
  "fields": {
    "rating": "5",
    "comment": "Great product",
    "email": "user@example.com"
  }
}

Integration Examples

  • Zapier, trigger a Zap to create a CRM contact, add a row to Google Sheets, or send a Slack notification
  • Make (Integromat), build multi-step automations triggered by form submissions
  • Custom API, forward to your own backend for processing, validation, or database storage
  • Slack, post submissions directly to a Slack channel via an incoming webhook

Webhook Behavior

  • Webhooks are fire-and-forget, failures don't block the form submission response
  • If the webhook URL is unreachable or returns an error, the submission is still stored in MiN8T
  • Webhook failures are logged but not retried automatically
  • You can enable or disable the webhook at any time without losing stored data
!

Webhook URLs must be HTTPS in production. The webhook receives the raw form fields, if you need to validate or transform the data, do it in your receiving endpoint.

8 Next Steps

Now that you understand Data Storages, explore these related features:

  • What are Data Sources?, serve data into AMP emails (the reverse of Data Storages)
  • What are Smart Elements?, auto-populate email blocks with external data
  • How to Test and Export AMP Emails, test your AMP forms in Gmail before sending
  • AMP Email Whitelisting Guide, get approved to send AMP emails with forms

Last updated: April 2026. All details verified against MiN8T's actual codebase implementation.

Ready to start?

Stay up to date - the latest on email design and deliverability.

Let's get you building. Start your free account today.

MiN8T

108+ ESP integrations. Built-in deliverability. AI-powered design. Try MiN8T free today.

MiN8T

The email marketing operations platform.
Replace Stripo, ZeroBounce, BeeFree, Litmus,
and 4 more tools.
Inbox guaranteed across 108+ ESPs.

Product

  • API
  • Pricing
  • Integrations
  • How it works
  • Testimonials

Resources

  • Blog
  • Insights & Guides
  • Documentation
  • API Reference
  • DeliverIQ Docs
  • Deliverability Guide

Company

  • Contact
  • Support
  • Talk to Sales

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DPA
© 2026 MiN8T. All rights reserved. Powered by ABLA.
Trusted by 1,000+ teams 108+ ESP Integrations SOC 2 Compliant GDPR Ready