I've been building Shopify apps for a while, and one problem kept coming up: merchants lose their data when they switch apps.
They'd use a form app for months, collect hundreds of customer enquiries or leads, then switch to a different tool - and all that data was locked in the old app's external database. Some apps make it hard to export. Some charge you to get your own data out. Some just shut down.
So when I built EverForms, I made one architectural decision that changed everything: store every form submission as a Shopify metaobject.
What are metaobjects?
Metaobjects are Shopify's flexible, structured data storage layer. Think of them like custom database tables that live inside your Shopify store. You define a schema (fields, types), and Shopify stores and manages the data for you.
json
{
"type": "form_submission",
"fields": [
{ "key": "name", "value": "Jane Smith", "type": "single_line_text_field" },
{ "key": "email", "value": "jane@example.com", "type": "single_line_text_field" },
{ "key": "message", "value": "I'd like to order 50 units...", "type": "multi_line_text_field" },
{ "key": "submitted_at", "value": "2026-03-23T05:00:00Z", "type": "date_time" }
]
}
Every time someone submits a form in EverForms, we create a metaobject entry like this inside the merchant's own Shopify store.
Why this matters
1. Data ownership is absolute
The data lives in Shopify's infrastructure, not on our servers. If the merchant uninstalls EverForms tomorrow, every submission is still there. They can access it via the Admin API, view it in the Shopify admin, or export it as CSV anytime.
2. The Admin GraphQL API just works
Merchants or their developers can query submissions directly:
graphql
{
metaobjects(type: "form_submission", first: 50) {
edges {
node {
id
fields {
key
value
}
}
}
}
}
No custom API to learn. No separate authentication. Just standard Shopify Admin API.
3. Integrations become trivial
Because the data is in Shopify's standard format, it plays nicely with the existing ecosystem. Shopify Flow can trigger automations when a new submission metaobject is created. Klaviyo can pick up the data. Any tool that reads Shopify metaobjects works automatically.
4. Shopify manages scale, backups, and reliability
We don't have to worry about database scaling, backups, or uptime for submission storage. Shopify handles all of that. Our app just writes metaobjects and reads them - Shopify does the heavy lifting.
The tradeoffs
It's not all perfect. There are real constraints:
- Metaobject field types are limited. File uploads, for example, need a different approach - we store file references that point to Shopify's CDN.
- Querying is less flexible than SQL. You can filter by metaobject type but complex queries require fetching and filtering client-side.
- Rate limits apply. The Admin API has rate limits, so high-volume form submissions need batching or queuing.
- Schema changes are painful. If you add a new field type to your forms, you need to update the metaobject definition carefully to avoid breaking existing entries.
Despite these tradeoffs, the data ownership benefit is so significant that I think it's the right call for a Shopify-native app.
The AI form generation twist
One thing I added that's been popular: an AI assistant that generates form fields from a plain English description.
"Create a custom furniture order form with name, email, wood type selection, dimensions, and a budget range"
The AI generates the field schema, we create the metaobject definition in Shopify, and the merchant has a working form in seconds. It's a natural fit because metaobjects are schema-driven - generating a schema from a description is exactly what LLMs are good at.
What's next
I'm exploring using Shopify metaobject references to link submissions to specific customers, orders, or products - which would unlock some powerful workflows. Imagine a warranty claim form that's automatically linked to the original order.
If you're building Shopify apps and dealing with user-generated or merchant-generated data, I'd strongly recommend looking at metaobjects before spinning up your own database. The data ownership story alone is worth it.
EverForms is live on the Shopify App Store. Free plan available. Built by ShopliftCommerce from New Zealand ????
Top comments (0)