Airtable performance can degrade as record counts, formulas, and linked data grow. Softr Databases are designed to manage data and power apps at scale—so systems stay fast and reliable as operations expand.
Scale without API limits
Softr Databases are native to the platform, so there are no external API rate limits throttling your app as your data and traffic grow. Record and storage limits scale with your plan.
Real business apps—not just data views
Airtable works well for internal data views. But when you need logins, user roles, granular permissions, workflows, and flexible design, Softr gives you everything you need to turn your data into custom business apps.
No per-seat pricing or hidden costs
Airtable charges per-seat pricing and has strict record limits, even on its high-tier plans. Softr offers generous user and record limits without per-seat costs—making it easy to share apps across teams and clients.
Smarter AI Agents
Database AI Agents can trigger on record creation, on specific field updates, and on custom conditions. This is a level of control that isn’t available with external sources.
Import 3rd party data
Airtable keeps you in its ecosystem. Softr connects to 100+ data sources—including Airtable, Notion, SQL, HubSpot, and Google Sheets—plus third-party tools like Slack, QuickBooks, and DocuSign, letting you combine multiple data sources in one app.
Moving your data into Softr Databases keeps your database and your app on one platform with no external API rate limits and native features like inline editing, Ask AI, and Database AI Agents. The built-in Import data tool makes the copy itself straightforward. It’s non-destructive and leaves your original Airtable base untouched, but a smooth migration still takes a little planning.This page walks you through the full move like what to prepare, how to import your Airtable base step by step, and how to reconnect your app to the new database without breaking anything.
Importing copies your data into a new Softr database. Your Airtable base is never modified or deleted, so you can migrate at your own pace and keep Airtable running until you’re confident everything works.
A few minutes of prep here saves a lot of rework later.
1
Work on copies, not your live setup
Duplicate the app you want to migrate (or plan to create a version snapshot before you switch anything. See below). If you’d rather rehearse the whole thing first, test the import on a duplicate Airtable base with a small amount of data before doing it for real.
2
Take stock of computed and linked fields
Note where you rely on Lookups, Rollups, formulas, and linked records. Softr Databases supports all of these, but they’re the fields most worth verifying after the import. If you have many of them, grouping them into a dedicated Airtable view first makes them easy to spot-check afterward.
3
Know what needs a second look
Most fields (including linked records, attachments, and formulas) come across automatically. A handful of Airtable’s system and computed fields behave differently in Softr and are worth reviewing once imported. See What transfers, and what to double-check.
Migrating also future-proofs your app: because the data lives natively in Softr, you’re no longer dependent on a third-party API or subject to its rate limits and per-collaborator pricing.
Base Flows, the Softr agency that moved Child’s Play Charity off Airtable, migrated 4,000+ records in three weeks. These are the lessons from that project, and most of them are decisions you make before you import anything.
Consolidate redundant tables first. Merging separate tables that hold the same entity into one is usually the single biggest fix for duplicate records.
Dedupe before the migration, not after. Match suspected duplicates against a unique identifier — a tax ID, a registration or account number — before anyone touches the new database. Names alone are misleading.
Fix field types on the way in. Numbers stored as text in Airtable will break rollups, sorting, and formulas once they’re live.
Freeze, don’t sync. A short data freeze with a manual catch-up list is simpler and safer than running a temporary Airtable-to-Softr sync.
If your app already exists, consider rebuilding rather than remapping. Building a new app on the new database and cutting over to it can be faster than remapping an existing app block by block, and it keeps the old app as a fallback until you’re ready to cancel Airtable. See Reconnect your app for the block-by-block route.
This creates a new Softr database populated with a copy of your Airtable data.
1
Open the database creator
In Softr Studio, go to Databases in the left sidebar and start a new database (or choose Database from the Home screen). The Create new database dialog opens.
The Create new database dialog, with AI, Import data, Copy template, and Start blank options.
2
Choose Import data
Select Import data. Softr asks where your data is stored and offers CSV file, Airtable, and Google Sheets.
Choosing a data source to import from: CSV file, Airtable, or Google Sheets.
3
Select Airtable
Choose Airtable and click Continue.
Select Airtable and click Continue
4
Pick your Airtable account and base
Under Account, select an already-connected Airtable account, or choose Add another data source to connect one. Then, under Base, search for and select the base you want to import. The whole base will be imported.
Selecting the Airtable account and the base to import.
Don’t see your base? Make sure the base is shared with the connected Airtable token. When connecting a new account, authorizing all current and future bases avoids having to reconnect later.
5
Start the import
Click Start import. Softr copies your tables, records, linked records, and attachments into a new Softr database. Larger bases take longer, so give it a moment to finish.
Since Softr must use Airtable’s API to import the records, please note that the speed and effectiveness of the import will depend upon your Airtable plan’s API allowances.
6
Review the imported database
Open the new database from Databases and check your tables. Confirm record counts look right, spot-check linked records and attachments, and review any formula, Lookup, or Rollup fields (see the next section).
The import handles the vast majority of your data automatically. Use this as a post-import checklist for the fields worth a closer look.
Transfers automatically
Records and standard fields — text, numbers, dates, single/multi-select, checkboxes, and so on.
System fields — Airtable’s Created time, Last modified time and Autonumber.
Linked records — relationships between tables are preserved.
Attachments and files — copied into the Softr database.
Formulas — Softr Databases use Airtable-compatible formula syntax, so most formulas come across with little or no change. See the Formula glossary for supported functions.
Review or re-create after importing
System fields — Airtable’s Created by andLast modified by are computed by the source. Softr Databases has equivalent field types and Softr will attempt to retain the original system field values; confirm they read the way you expect and re-create any your app depends on.
Rich text — long text with formatting comes in as Markdown.
Complex or unsupported formula functions — most formulas migrate cleanly, but double-check any that use functions tied to Airtable’s internal system info. Update those to their Softr equivalents where needed.
Lookups and Rollups — supported in Softr (Lookup & Rollup fields); verify they resolve against the right linked table after import.
Before you re-point a live app at the new database, read Reconnect your app, block by block — switching a block’s data source resets some settings, so you’ll want a rollback point in place first.
Once your data is in Softr Databases, point your app’s blocks at it. The safest approach is to create a rollback point first using App History, then switch one block at a time, testing as you go.
1
Create a version snapshot for rollback
Before changing any data sources, save a restore point from App History. If a swap doesn’t go as planned, you can roll the whole app back in one step.
2
Open a block's data source
Select a block connected to Airtable and open the Source tab in the block’s settings panel. It shows the Account, Base, and Table the block reads from.
A block's Source tab, showing the Airtable account, base, and table it reads from.
3
Switch the account to Softr Databases
In the Account dropdown, change the source from your Airtable account to Softr Databases. Then choose the imported Database and the matching Table.
Switching a block's Account from Airtable to Softr Databases, then selecting the database and table.
Because the import keeps your original field names, the block usually re-maps its fields with little manual work. Still, review the mapping — Softr can’t always match every field automatically.
4
Re-check the block's settings
After swapping the source, review anything that references specific fields:
Tag / label colors, if set to “as defined in data source.”
Action buttons — these stay connected, but their field references can reset, so open and confirm each one.
5
Test, then move to the next block
Preview the block, confirm it shows the right data and that create/edit actions still work, then repeat for the next block. Working block-by-block keeps any issue small and easy to trace.
If you sync app users from a data source, re-point the user sync table to the corresponding Softr Databases table.
Toggle off “Send user notification email” while you set up or re-point the sync, so existing users aren’t emailed a new login prompt during the migration.
When Softr Databases is the source, the user table supports 2-way sync — changes flow in both directions. To keep users matched correctly, don’t edit a user’s email directly in the source table.
Re-map the conditional logic on your user groups so the conditions point at the new fields. User groups may not fully sync until you publish the app, so publish before you judge whether they’re working.
Global data restrictions are tied to a specific table in a specific data source, so they don’t carry over automatically. Re-create them from scratch against the new Softr Databases tables.
If you re-mapped your user groups correctly, your page and block visibility permissions should stay intact — but test them anyway. Sign in as a test user in each relevant group and confirm they see exactly what they should, and nothing they shouldn’t, before you consider the migration done.
Compare Softr Databases with Airtable and other sources.
Field types
Every field type available in Softr Databases.
App History
Restore your app to an earlier version.
Child's Play Charity case study
How Base Flows migrated 4,000+ records off Airtable in three weeks.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Softr Documentation","colors":{"primary":"#386AF5","light":"#fff","dark":"#030712"},"logo":{"light":"https://mintcdn.com/softr-2b8a27e1/HXG2UYaIUrK-BV-R/logo/dark.svg?fit=max\u0026auto=format\u0026n=HXG2UYaIUrK-BV-R\u0026q=85\u0026s=5c6f3b3fe9daa5c70059c7eb3389cd06","dark":"https://mintcdn.com/softr-2b8a27e1/HXG2UYaIUrK-BV-R/logo/light.svg?fit=max\u0026auto=format\u0026n=HXG2UYaIUrK-BV-R\u0026q=85\u0026s=43609f734df1691b8a6e227776643a0f"},"favicon":"https://mintcdn.com/softr-2b8a27e1/HXG2UYaIUrK-BV-R/logo-light.svg?fit=max\u0026auto=format\u0026n=HXG2UYaIUrK-BV-R\u0026q=85\u0026s=21111872c2f4d5c53e6924606a78a163","appearance":{"default":"light"},"background":{"color":{"dark":"#111827"}},"navbar":{"links":[{"href":"https://community.softr.io/","label":"Community"},{"href":"https://www.softr.io/partners?from=docs","label":"Hire an Expert"}],"primary":{"type":"button","label":"Sign Up","href":"https://studio.softr.io/auth/signin"}},"footer":{"links":[{"header":" ","items":[{"label":"Sign Up","href":"https://studio.softr.io/auth/signin"},{"label":"Hire an Expert","href":"https://www.softr.io/partners?from=docs"},{"label":"Blog","href":"https://www.softr.io/blog"},{"label":"Follow Us","href":"https://www.linkedin.com/company/softr"},{"label":"Contact Us","href":"mailto:support@softr.io"}]}]},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Inter"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"softr-2b8a27e1","hasAudioNarration":false,"actualSubdomain":"softr-2b8a27e1","customDomains":["docs.softr.io"],"gitSource":{"type":"github","owner":"softr-io","repo":"softr-public-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0c70ad03bec028f0aba71","collectionId":"5cc246d9-5856-415b-8a4a-abcd04217213","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0c70ad03bec028f0aba71"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae0c70ad03bec028f0aba71","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Integrations","count":85},{"language":"default","tag":"Softr Workflows","count":62},{"language":"default","tag":"Building Blocks","count":50},{"language":"default","tag":"Softr API","count":27},{"language":"default","tag":"Softr Database API","count":24},{"language":"default","tag":"Add and Manage Users","count":20},{"language":"default","tag":"Data Sources","count":16},{"language":"default","tag":"How to Guides","count":14},{"language":"default","tag":"Actions","count":13},{"language":"default","tag":"Publishing","count":12}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"ol ol{list-style-type:decimal!important}.dark .prose span :where(a):not(:where([class~=\"not-prose\"], [class~=\"not-prose\"] *)){border-bottom:1px solid #f9a619}.dark .prose span :where(a:hover):not(:where([class~=\"not-prose\"], [class~=\"not-prose\"] *)){border-bottom-width:2px}"}],"page":{"pagePath":"migration-tips/migrating-from-airtable-to-softr-databases","slug":"/migration-tips/migrating-from-airtable-to-softr-databases","pageMetadata":{"title":"Migrate data from Airtable to Softr Databases","permalink":"5F61VQ3Tr2syEd91hRt5W4","description":"Learn best practices for migrating your Airtable database to Softr DB","og:title":"Database Migration Tips – Softr Help Docs","og:description":"Learn best practices for migrating your database to Softr DB","og:image":"https://res.cloudinary.com/helpkit/image/upload/c_scale,w_700,q_auto/v1674219840/softrdocs_meta_OG_Image_Url_258f31c013.png","twitter:title":"Database Migration Tips – Softr Help Docs","twitter:description":"Learn best practices for migrating your database to Softr DB","sidebarTitle":"Migrate data from Airtable","href":"/migration-tips/migrating-from-airtable-to-softr-databases"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn best practices for migrating your Airtable database to Softr DB\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Frame,Heading,Note,OptimizedFrame,OptimizedImage,Step,Steps,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`why-switch-to-softr-databases`,children:`Why switch to Softr Databases`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Built to run operations at scale`,icon:`screwdriver-wrench`,children:_jsx(_components.p,{children:`Airtable performance can degrade as record counts, formulas, and linked data grow. Softr Databases are designed to manage data and power apps at scale—so systems stay fast and reliable as operations expand.`})}),_jsx(Card,{title:`Scale without API limits`,icon:`gauge-high`,children:_jsx(_components.p,{children:`Softr Databases are native to the platform, so there are no external API rate limits throttling your app as your data and traffic grow. Record and storage limits scale with your plan.`})}),_jsx(Card,{title:`Real business apps—not just data views`,icon:`key`,children:_jsx(_components.p,{children:`Airtable works well for internal data views. But when you need logins, user roles, granular permissions, workflows, and flexible design, Softr gives you everything you need to turn your data into custom business apps.`})}),_jsx(Card,{title:`No per-seat pricing or hidden costs`,icon:`dollar-sign`,children:_jsx(_components.p,{children:`Airtable charges per-seat pricing and has strict record limits, even on its high-tier plans. Softr offers generous user and record limits without per-seat costs—making it easy to share apps across teams and clients.`})}),_jsx(Card,{title:`Smarter AI Agents`,icon:`robot`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/softr-databases/ai-agents`,children:`Database AI Agents`}),` can trigger on record creation, on specific field updates, and on custom conditions. This is a level of control that isn’t available with external sources.`]})}),_jsx(Card,{title:`Import 3rd party data`,icon:`plug`,children:_jsx(_components.p,{children:`Airtable keeps you in its ecosystem. Softr connects to 100+ data sources—including Airtable, Notion, SQL, HubSpot, and Google Sheets—plus third-party tools like Slack, QuickBooks, and DocuSign, letting you combine multiple data sources in one app.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`video`,children:`Video`}),`\n`,_jsx(OptimizedFrame,{src:`https://www.youtube.com/embed/GTdgZzQvb8c?rel=0`,width:`100%`,height:`500px`,title:`YouTube video`}),`\n`,_jsxs(_components.p,{children:[`Moving your data into Softr Databases keeps your database and your app on one platform with no external API rate limits and native features like inline editing, Ask AI, and Database AI Agents. The built-in `,_jsx(_components.strong,{children:`Import data`}),` tool makes the copy itself straightforward. It’s non-destructive and leaves your original Airtable base untouched, but a smooth migration still takes a little planning.`]}),`\n`,_jsx(_components.p,{children:`This page walks you through the full move like what to prepare, how to import your Airtable base step by step, and how to reconnect your app to the new database without breaking anything.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Importing `,_jsx(_components.strong,{children:`copies`}),` your data into a new Softr database. Your Airtable base is never modified or deleted, so you can migrate at your own pace and keep Airtable running until you’re confident everything works.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsx(_components.p,{children:`A few minutes of prep here saves a lot of rework later.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Work on copies, not your live setup`,children:_jsxs(_components.p,{children:[`Duplicate the app you want to migrate (or plan to create a version snapshot before you switch anything.\\xA0 See `,_jsx(_components.a,{href:`#reconnect-your-app`,children:`below`}),`). If you’d rather rehearse the whole thing first, test the import on a duplicate Airtable base with a small amount of data before doing it for real.`]})}),_jsx(Step,{title:`Take stock of computed and linked fields`,children:_jsx(_components.p,{children:`Note where you rely on Lookups, Rollups, formulas, and linked records. Softr Databases supports all of these, but they’re the fields most worth verifying after the import. If you have many of them, grouping them into a dedicated Airtable view first makes them easy to spot-check afterward.`})}),_jsx(Step,{title:`Know what needs a second look`,children:_jsxs(_components.p,{children:[`Most fields (including linked records, attachments, and formulas) come across automatically. A handful of Airtable’s system and computed fields behave differently in Softr and are worth reviewing once imported. See `,_jsx(_components.a,{href:`#what-transfers-and-what-to-double-check`,children:`What transfers, and what to double-check`}),`.`]})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Migrating also future-proofs your app: because the data lives natively in Softr, you’re no longer dependent on a third-party API or subject to its rate limits and per-collaborator pricing.`})}),`\n`,_jsx(Heading,{level:`2`,id:`lessons-from-a-real-migration`,children:`Lessons from a real migration`}),`\n`,_jsxs(_components.p,{children:[`Base Flows, the Softr agency that moved `,_jsx(_components.a,{href:`https://www.softr.io/customer-stories/childs-play-charity`,children:`Child’s Play Charity`}),` off Airtable, migrated 4,000+ records in three weeks. These are the lessons from that project, and most of them are decisions you make before you import anything.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Consolidate redundant tables first.`}),` Merging separate tables that hold the same entity into one is usually the single biggest fix for duplicate records.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dedupe before the migration, not after.`}),` Match suspected duplicates against a unique identifier — a tax ID, a registration or account number — before anyone touches the new database. Names alone are misleading.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Fix field types on the way in.`}),` Numbers stored as text in Airtable will break rollups, sorting, and formulas once they’re live.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Freeze, don’t sync.`}),` A short data freeze with a manual catch-up list is simpler and safer than running a temporary Airtable-to-Softr sync.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`If your app already exists, consider rebuilding rather than remapping.`}),` Building a new app on the new database and cutting over to it can be faster than remapping an existing app block by block, and it keeps the old app as a fallback until you’re ready to cancel Airtable. See `,_jsx(_components.a,{href:`#reconnect-your-app`,children:`Reconnect your app`}),` for the block-by-block route.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-by-step-import-your-airtable-base`,children:`Step-by-step: import your Airtable base`}),`\n`,_jsx(_components.p,{children:`This creates a new Softr database populated with a copy of your Airtable data.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open the database creator`,children:[_jsxs(_components.p,{children:[`In Softr Studio, go to `,_jsx(_components.strong,{children:`Databases`}),` in the left sidebar and start a new database (or choose `,_jsx(_components.strong,{children:`Database`}),` from the Home screen). The `,_jsx(_components.strong,{children:`Create new database`}),` dialog opens.`]}),_jsxs(Frame,{caption:`The Create new database dialog, with AI, Import data, Copy template, and Start blank options.`,children:[_jsx(OptimizedImage,{alt:`Screenshot 2026 08 20 At 4 32 05 PM`,title:`Screenshot 2026 08 20 At 4 32 05 PM`,lightAlt:`Screenshot 2026 08 20 At 4 32 05 PM`,darkAlt:`Screenshot 2026 08 20 At 4 32 05 PM`,src:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=4899cb4e1fb05168979be54d8d252747`,className:`dark:mint-hidden`,\"data-og-width\":`1454`,width:`1454`,\"data-og-height\":`882`,height:`882`,\"data-path\":`images/Screenshot-2026-08-20-at-4.33.05-PM.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?w=280\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=9107cd3e3870d3401c3fc96e31d34df5 280w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?w=560\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=54abfa200e5edefa15bc243dc696d4a5 560w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?w=840\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=b57c90e6352776adbb4bf9f3a319fd71 840w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=bcd2dee9447d86debbc4d5cec388e1db 1100w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=c4d7af96ad4b62c7ffcbe98317a396f9 1650w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.33.05-PM.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=345e1346ff91a2b605971f1602ff2918 2500w`}),_jsx(OptimizedImage,{alt:`Screenshot 2026 08 20 At 4 32 05 PM`,title:`Screenshot 2026 08 20 At 4 32 05 PM`,lightAlt:`Screenshot 2026 08 20 At 4 32 05 PM`,darkAlt:`Screenshot 2026 08 20 At 4 32 05 PM`,src:`https://mintlify.s3.us-west-1.amazonaws.com/softr-2b8a27e1/migration-tips/images/Screenshot-2026-08-20-at-4.33.05-PM.png`,className:`mint-hidden dark:mint-block`})]})]}),_jsxs(Step,{title:`Choose Import data`,children:[_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Import data`}),`. Softr asks where your data is stored and offers `,_jsx(_components.strong,{children:`CSV file`}),`, `,_jsx(_components.strong,{children:`Airtable`}),`, and `,_jsx(_components.strong,{children:`Google Sheets`}),`.`]}),_jsx(Frame,{caption:`Choosing a data source to import from: CSV file, Airtable, or Google Sheets.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=1e41ddfcfc0cbf7058989cc9e1a7e0d0`,alt:`Screenshot 2026 08 20 At 4 34 07 PM`,\"data-og-width\":`879`,width:`879`,\"data-og-height\":`663`,height:`663`,\"data-path\":`images/Screenshot-2026-08-20-at-4.34.07-PM.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?w=280\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=2068c091c088818b68b284c868557f0f 280w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?w=560\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=e0e769fc03700c990288350a8fb36fa3 560w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?w=840\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=43e7b0f3292c14e3513d1f6d361f7635 840w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=111c663696267e2c60eef2f533dcb7d7 1100w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=bbcca98dcd76182490b3752921622d70 1650w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.07-PM.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=315986ffffda9941bbeef1ca5342ec65 2500w`})})]}),_jsxs(Step,{title:`Select Airtable`,children:[_jsxs(_components.p,{children:[`Choose `,_jsx(_components.strong,{children:`Airtable`}),` and click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),_jsx(Frame,{caption:`Select Airtable and click Continue`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=5c8aec5d43bbea277e1688bb84d3db5d`,alt:`Screenshot 2026 08 20 At 4 34 56 PM`,\"data-og-width\":`1387`,width:`1387`,\"data-og-height\":`725`,height:`725`,\"data-path\":`images/Screenshot-2026-08-20-at-4.34.56-PM.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?w=280\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=197b5a1e140179a74fa51fc751cd6312 280w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?w=560\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=d77de762d58bf5e21d780670588f24f4 560w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?w=840\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=eeb34d573a067cd4c70326759b79923d 840w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=56f27bedb0f1f6fc853f1f98ec8af1b1 1100w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=861c99dffad17c1499a54591df7db193 1650w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.34.56-PM.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=3300ce902e8d1234b50d09b1fe32581c 2500w`})})]}),_jsxs(Step,{title:`Pick your Airtable account and base`,children:[_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Account`}),`, select an already-connected Airtable account, or choose `,_jsx(_components.strong,{children:`Add another data source`}),` to connect one. Then, under `,_jsx(_components.strong,{children:`Base`}),`, search for and select the base you want to import. The whole base will be imported.`]}),_jsx(Frame,{caption:`Selecting the Airtable account and the base to import.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=75fa585f9eadc533c9c7579fba44cae8`,alt:`Screenshot 2026 08 20 At 4 36 59 PM`,\"data-og-width\":`1123`,width:`1123`,\"data-og-height\":`706`,height:`706`,\"data-path\":`images/Screenshot-2026-08-20-at-4.36.59-PM.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?w=280\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=cf577d71ec5cad15d32a9120cf5a56ed 280w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?w=560\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=90751ee070d8b5e5513390db46ab25e3 560w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?w=840\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=f85f97d01238da7ebe335657d1646956 840w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=4d28e798cd7df045953103f720dd50f5 1100w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=1404233b76a1bb2722f14b10101aaebe 1650w, https://mintcdn.com/softr-2b8a27e1/zM8DVKPKSm-O3X8B/images/Screenshot-2026-08-20-at-4.36.59-PM.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zM8DVKPKSm-O3X8B\u0026q=85\u0026s=43b5c36be2fc37d7f612b65cbec9acd4 2500w`})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Don’t see your base? Make sure the base is shared with the connected Airtable token. When connecting a new account, authorizing `,_jsx(_components.strong,{children:`all current and future bases`}),` avoids having to reconnect later.`]})})]}),_jsxs(Step,{title:`Start the import`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Start import`}),`. Softr copies your tables, records, linked records, and attachments into a new Softr database. Larger bases take longer, so give it a moment to finish.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`Since Softr must use Airtable’s API to import the records, please note that the speed and effectiveness of the import will depend upon your Airtable plan’s API allowances.`})})]}),_jsx(Step,{title:`Review the imported database`,children:_jsxs(_components.p,{children:[`Open the new database from `,_jsx(_components.strong,{children:`Databases`}),` and check your tables. Confirm record counts look right, spot-check linked records and attachments, and review any formula, Lookup, or Rollup fields (see the next section).`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-transfers-and-what-to-double-check`,children:`What transfers, and what to double-check`}),`\n`,_jsx(_components.p,{children:`The import handles the vast majority of your data automatically. Use this as a post-import checklist for the fields worth a closer look.`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Transfers automatically`,id:`transfers-automatically`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Records and standard fields`}),` — text, numbers, dates, single/multi-select, checkboxes, and so on.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`System fields`}),` — Airtable’s `,_jsx(_components.em,{children:`Created time`}),`, `,_jsx(_components.em,{children:`Last modified time`}),`\\xA0and `,_jsx(_components.em,{children:`Autonumber`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Linked records`}),` — relationships between tables are preserved.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Attachments and files`}),` — copied into the Softr database.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Formulas`}),` — Softr Databases use Airtable-compatible formula syntax, so most formulas come across with little or no change. See the `,_jsx(_components.a,{href:`/softr-databases/formula-glossary`,children:`Formula glossary`}),` for supported functions.`]}),`\n`]})}),_jsx(Accordion,{title:`Review or re-create after importing`,id:`review-or-re-create-after-importing`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`System fields`}),` — Airtable’s `,_jsx(_components.em,{children:`Created by and`}),`\\xA0`,_jsx(_components.em,{children:`Last modified by`}),`\\xA0are computed by the source. Softr Databases has equivalent `,_jsx(_components.a,{href:`/softr-databases/field-types`,children:`field types`}),`\\xA0and Softr will attempt to retain the original system field values; confirm they read the way you expect and re-create any your app depends on.\\xA0`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rich text`}),` — long text with formatting comes in as Markdown.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Complex or unsupported formula functions`}),` — most formulas migrate cleanly, but double-check any that use functions tied to Airtable’s internal system info. Update those to their Softr equivalents where needed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Lookups and Rollups`}),` — supported in Softr (`,_jsx(_components.a,{href:`/softr-databases/related-record-lookup-and-rollup-fields`,children:`Lookup \u0026 Rollup fields`}),`); verify they resolve against the right linked table after import.`]}),`\n`]})})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Before you re-point a live app at the new database, read `,_jsx(_components.a,{href:`#reconnect-your-app`,children:`Reconnect your app, block by block`}),` — switching a block’s data source resets some settings, so you’ll want a rollback point in place first.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`reconnect-your-app`,children:`Reconnect your app`}),`\n`,_jsxs(_components.p,{children:[`Once your data is in Softr Databases, point your app’s blocks at it. The safest approach is to create a rollback point first using `,_jsx(_components.a,{href:`https://docs.softr.io/application-settings/app-history#app-history`,children:`App History`}),`, then switch `,_jsx(_components.strong,{children:`one block at a time`}),`, testing as you go.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Create a version snapshot for rollback`,children:_jsxs(_components.p,{children:[`Before changing any data sources, save a restore point from `,_jsx(_components.a,{href:`/application-settings/app-history`,children:`App History`}),`. If a swap doesn’t go as planned, you can roll the whole app back in one step.`]})}),_jsxs(Step,{title:`Open a block's data source`,children:[_jsxs(_components.p,{children:[`Select a block connected to Airtable and open the `,_jsx(_components.strong,{children:`Source`}),` tab in the block’s settings panel. It shows the `,_jsx(_components.strong,{children:`Account`}),`, `,_jsx(_components.strong,{children:`Base`}),`, and `,_jsx(_components.strong,{children:`Table`}),` the block reads from.`]}),_jsx(Frame,{caption:`A block's Source tab, showing the Airtable account, base, and table it reads from.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=4793480e62b69179df9e3d100f709d2f`,alt:`The Source tab of a block's settings panel, with the Account, Base and Table dropdowns filled in from Airtable`,\"data-og-width\":`656`,width:`656`,\"data-og-height\":`630`,height:`630`,\"data-path\":`images/database-migration-tips/block-source-tab.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?w=280\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=433ae03d1fa53669c53f39c9b7162d3b 280w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?w=560\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=d21ee8e070f0ce949b616c589bd3b359 560w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?w=840\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=9c265865b48b7d05627eec52b2e23889 840w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?w=1100\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=7ac94a6969367be0628151d647568cb5 1100w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?w=1650\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=cab7ba1d48f94e0f71fba037c48a56fc 1650w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/block-source-tab.png?w=2500\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=35f894a187165e62f6aa326e113917a4 2500w`})})]}),_jsxs(Step,{title:`Switch the account to Softr Databases`,children:[_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Account`}),` dropdown, change the source from your Airtable account to `,_jsx(_components.strong,{children:`Softr Databases`}),`. Then choose the imported `,_jsx(_components.strong,{children:`Database`}),` and the matching `,_jsx(_components.strong,{children:`Table`}),`.`]}),_jsx(Frame,{caption:`Switching a block's Account from Airtable to Softr Databases, then selecting the database and table.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=454af4a8e6c6e756c6a4435662895360`,alt:`The open Account dropdown, listing Softr Databases above the connected Airtable account`,\"data-og-width\":`656`,width:`656`,\"data-og-height\":`798`,height:`798`,\"data-path\":`images/database-migration-tips/swap-account.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?w=280\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=4e8d611ed29ff2fd7c9edf4c4349d306 280w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?w=560\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=d4138281ca4ae68b1b88229c7dd8d60d 560w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?w=840\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=fa4cfe6f0475a4eec74bbef3a102dd99 840w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?w=1100\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=186864ca2168c60d6673d15ee68c9e9b 1100w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?w=1650\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=6c46924025bd118d724fe8c9e3fa45ac 1650w, https://mintcdn.com/softr-2b8a27e1/qWzUwV2E3-uCAS6G/images/database-migration-tips/swap-account.png?w=2500\u0026fit=max\u0026auto=format\u0026n=qWzUwV2E3-uCAS6G\u0026q=85\u0026s=3169d3e04a54db9b17be8fa258d0dba6 2500w`})}),_jsx(Tip,{children:_jsx(_components.p,{children:`Because the import keeps your original field names, the block usually re-maps its fields with little manual work. Still, review the mapping — Softr can’t always match every field automatically.`})})]}),_jsxs(Step,{title:`Re-check the block's settings`,children:[_jsx(_components.p,{children:`After swapping the source, review anything that references specific fields:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Conditional filters`}),` and `,_jsx(_components.a,{href:`/user-groups-and-permissions/record-filters`,children:`record filters`}),` on the block.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Search and inline filter`}),` settings.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tag / label colors`}),`, if set to “as defined in data source.”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Action buttons`}),` — these stay connected, but their field references can reset, so open and confirm each one.`]}),`\n`]})]}),_jsx(Step,{title:`Test, then move to the next block`,children:_jsx(_components.p,{children:`Preview the block, confirm it shows the right data and that create/edit actions still work, then repeat for the next block. Working block-by-block keeps any issue small and easy to trace.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`update-users-and-permissions`,children:`Update users and permissions`}),`\n`,_jsx(_components.p,{children:`User-related settings reference the data source directly, so they need attention after the switch.`}),`\n`,_jsx(Heading,{level:`3`,id:`user-sync-table`,children:`User sync table`}),`\n`,_jsxs(_components.p,{children:[`If you sync app users from a data source, re-point the `,_jsx(_components.a,{href:`/add-and-manage-users/syncing-users-with-a-data-source`,children:`user sync`}),` table to the corresponding Softr Databases table.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Toggle `,_jsx(_components.strong,{children:`off “Send user notification email”`}),` while you set up or re-point the sync, so existing users aren’t emailed a new login prompt during the migration.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`When Softr Databases is the source, the user table supports `,_jsx(_components.strong,{children:`2-way sync`}),` — changes flow in both directions. To keep users matched correctly, don’t edit a user’s `,_jsx(_components.strong,{children:`email`}),` directly in the source table.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`user-groups`,children:`User groups`}),`\n`,_jsxs(_components.p,{children:[`Re-map the conditional logic on your `,_jsx(_components.a,{href:`/user-groups-and-permissions/user-groups`,children:`user groups`}),` so the conditions point at the new fields. User groups may not fully sync until you `,_jsx(_components.strong,{children:`publish`}),` the app, so publish before you judge whether they’re working.`]}),`\n`,_jsx(Heading,{level:`3`,id:`global-data-restrictions`,children:`Global data restrictions`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/user-groups-and-permissions/global-data-restrictions`,children:`Global data restrictions`}),` are tied to a specific table in a specific data source, so they don’t carry over automatically. Re-create them from scratch against the new Softr Databases tables.`]}),`\n`,_jsx(Heading,{level:`2`,id:`verify-visibility-and-permissions`,children:`Verify visibility and permissions`}),`\n`,_jsxs(_components.p,{children:[`If you re-mapped your user groups correctly, your page and block `,_jsx(_components.a,{href:`/core-concepts-overview/user-groups--permissions`,children:`visibility permissions`}),` should stay intact — but test them anyway. Sign in as a test user in each relevant group and confirm they see exactly what they should, and nothing they shouldn’t, before you consider the migration done.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Softr Databases overview`,icon:`database`,href:`/softr-databases/softr-databases-overview`,children:_jsx(_components.p,{children:`Store your application data natively in Softr.`})}),_jsx(Card,{title:`Choosing a data source`,icon:`scale-balanced`,href:`/data-sources/choosing-a-data-source`,children:_jsx(_components.p,{children:`Compare Softr Databases with Airtable and other sources.`})}),_jsx(Card,{title:`Field types`,icon:`table-columns`,href:`/softr-databases/field-types`,children:_jsx(_components.p,{children:`Every field type available in Softr Databases.`})}),_jsx(Card,{title:`App History`,icon:`clock-rotate-left`,href:`/application-settings/app-history`,children:_jsx(_components.p,{children:`Restore your app to an earlier version.`})}),_jsx(Card,{title:`Child's Play Charity case study`,icon:`book-open`,href:`https://www.softr.io/customer-stories/childs-play-charity`,children:_jsx(_components.p,{children:`How Base Flows migrated 4,000+ records off Airtable in three weeks.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Migrate data from Airtable to Softr Databases","permalink":"5F61VQ3Tr2syEd91hRt5W4","description":"Learn best practices for migrating your Airtable database to Softr DB","og:title":"Database Migration Tips – Softr Help Docs","og:description":"Learn best practices for migrating your database to Softr DB","og:image":"https://res.cloudinary.com/helpkit/image/upload/c_scale,w_700,q_auto/v1674219840/softrdocs_meta_OG_Image_Url_258f31c013.png","twitter:title":"Database Migration Tips – Softr Help Docs","twitter:description":"Learn best practices for migrating your database to Softr DB","sidebarTitle":"Migrate data from Airtable","href":"/migration-tips/migrating-from-airtable-to-softr-databases"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why switch to Softr Databases","slug":"why-switch-to-softr-databases","depth":2,"children":[]},{"title":"Video","slug":"video","depth":2,"children":[]},{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"Lessons from a real migration","slug":"lessons-from-a-real-migration","depth":2,"children":[]},{"title":"Step-by-step: import your Airtable base","slug":"step-by-step-import-your-airtable-base","depth":2,"children":[]},{"title":"What transfers, and what to double-check","slug":"what-transfers-and-what-to-double-check","depth":2,"children":[]},{"title":"Reconnect your app","slug":"reconnect-your-app","depth":2,"children":[]},{"title":"Update users and permissions","slug":"update-users-and-permissions","depth":2,"children":[{"title":"User sync table","slug":"user-sync-table","depth":3,"children":[]},{"title":"User groups","slug":"user-groups","depth":3,"children":[]},{"title":"Global data restrictions","slug":"global-data-restrictions","depth":3,"children":[]}]},{"title":"Verify visibility and permissions","slug":"verify-visibility-and-permissions","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/softr-2b8a27e1/79624fe90c178f4c/lookio-widget.js"],"dynamicCss":".mint-hidden {\n display: none\n}\n.dark\\:mint-block:is(.dark *) {\n display: block\n}\n.dark\\:mint-hidden:is(.dark *) {\n display: none\n}","subdomain":"softr-2b8a27e1","siteName":"Softr Documentation","title":"Database Migration Tips – Softr Help Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T12:28:04.789Z","originalFileLocation":"migration-tips/migrating-from-airtable-to-softr-databases.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn best practices for migrating your Airtable database to Softr DB\">\u003cmeta data-mint-head name=\"application-name\" content=\"Softr Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Database Migration Tips – Softr Help Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn best practices for migrating your database to Softr DB\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Softr Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://res.cloudinary.com/helpkit/image/upload/c_scale,w_700,q_auto/v1674219840/softrdocs_meta_OG_Image_Url_258f31c013.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Database Migration Tips – Softr Help Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn best practices for migrating your database to Softr DB\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://res.cloudinary.com/helpkit/image/upload/c_scale,w_700,q_auto/v1674219840/softrdocs_meta_OG_Image_Url_258f31c013.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/softr-2b8a27e1/x0xRzOMr-z1w0GWo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Softr Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#386AF5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/migration-tips/migrating-from-airtable-to-softr-databases.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.softr.io/#organization\",\"name\":\"Softr Documentation\",\"url\":\"https://docs.softr.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/softr-2b8a27e1/HXG2UYaIUrK-BV-R/logo/dark.svg?fit=max\u0026auto=format\u0026n=HXG2UYaIUrK-BV-R\u0026q=85\u0026s=5c6f3b3fe9daa5c70059c7eb3389cd06\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.softr.io#website\",\"name\":\"Softr Documentation\",\"url\":\"https://docs.softr.io\",\"publisher\":{\"@id\":\"https://docs.softr.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases#webpage\",\"url\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases\",\"name\":\"Migrate data from Airtable to Softr Databases\",\"description\":\"Learn best practices for migrating your Airtable database to Softr DB\",\"dateModified\":\"2026-10-22T12:28:04.789Z\",\"isPartOf\":{\"@id\":\"https://docs.softr.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\" \",\"item\":\"https://docs.softr.io/start-here/welcome\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrate data from Airtable to Softr Databases\",\"item\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases#article\",\"headline\":\"Migrate data from Airtable to Softr Databases\",\"name\":\"Migrate data from Airtable to Softr Databases\",\"description\":\"Learn best practices for migrating your Airtable database to Softr DB\",\"url\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases\",\"mainEntityOfPage\":{\"@id\":\"https://docs.softr.io/migration-tips/migrating-from-airtable-to-softr-databases#webpage\"},\"image\":\"https://res.cloudinary.com/helpkit/image/upload/c_scale,w_700,q_auto/v1674219840/softrdocs_meta_OG_Image_Url_258f31c013.png\",\"dateModified\":\"2026-10-22T12:28:04.789Z\",\"publisher\":{\"@id\":\"https://docs.softr.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.softr.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Softr Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Softr Documentation","nav":{"global":null,"groups":[{"group":" ","pages":[{"group":"Start Here","icon":"hand-wave","pages":[{"title":"Welcome!","href":"/start-here/welcome"},{"title":"AI Co-Builder","href":"/start-here/ai-co-builder"},{"title":"Create an App From a Template","href":"/start-here/create-an-app-from-a-template"}]},{"group":"Core Concepts Overview","icon":"lightbulb","pages":[{"title":"Pages and Navigation","href":"/core-concepts-overview/pages-and-navigation"},{"title":"Create a Database","href":"/core-concepts-overview/create-a-database"},{"title":"Connect your data source","href":"/core-concepts-overview/connect-your-data-source"},{"title":"Visualize data with building blocks","href":"/core-concepts-overview/visualize-data-with-building-blocks"},{"title":"Actions: Adding and editing data","href":"/core-concepts-overview/actions-adding-and-editing-data-"},{"title":"User Authentication","href":"/core-concepts-overview/user-authentication"},{"title":"User groups \u0026 permissions","href":"/core-concepts-overview/user-groups--permissions"},{"title":"Style your app","href":"/core-concepts-overview/style-your-app"},{"title":"Publish your application","href":"/core-concepts-overview/publish-your-application"}]},{"group":"Softr Databases","icon":"database","pages":[{"title":"Softr Databases Overview","href":"/softr-databases/softr-databases-overview"},{"title":"Field Types","href":"/softr-databases/field-types"},{"title":"Formula Glossary","href":"/softr-databases/formula-glossary"},{"title":"Related Record, Lookup, and Rollup Fields","href":"/softr-databases/related-record-lookup-and-rollup-fields"},{"title":"Database AI Agents","href":"/softr-databases/ai-agents"},{"title":"Datetime Formatting","href":"/softr-databases/datetime-formatting"},{"title":"Database Snapshots","href":"/softr-databases/database-snapshots"},{"title":"Expanded Record View","href":"/softr-databases/expanded-record-view"}]},{"group":"Softr Workflows","icon":"random","pages":[{"title":"Workflows","sidebarTitle":"Overview","href":"/workflows/workflows"},{"title":"Trigger Types","href":"/workflows/trigger-types"},{"title":"Advanced Concepts","sidebarTitle":"Advanced Concepts","href":"/workflows/advanced-concepts"},{"group":"Actions","icon":"bolt","pages":[{"title":"Run Custom Code","sidebarTitle":"Run Custom Code","href":"/workflows/actions/run-custom-code"},{"title":"Send Notification","sidebarTitle":"Send Notification","href":"/workflows/actions/send-notification"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Integrations","sidebarTitle":"Integrations","href":"/workflows/integrations/overview"},{"title":null,"href":"/workflows/integrations/activecampaign"},{"title":null,"href":"/workflows/integrations/airtable"},{"title":null,"href":"/workflows/integrations/anthropic"},{"title":null,"href":"/workflows/integrations/apify"},{"title":null,"href":"/workflows/integrations/apollo"},{"title":null,"href":"/workflows/integrations/attio"},{"title":null,"href":"/workflows/integrations/bitly"},{"title":null,"href":"/workflows/integrations/brevo"},{"title":null,"href":"/workflows/integrations/cal-com"},{"title":null,"href":"/workflows/integrations/calendly"},{"title":null,"href":"/workflows/integrations/clickup"},{"title":null,"href":"/workflows/integrations/coda"},{"title":null,"href":"/workflows/integrations/docs-automator"},{"title":null,"href":"/workflows/integrations/documint"},{"title":null,"href":"/workflows/integrations/docusign"},{"title":null,"href":"/workflows/integrations/asana"},{"title":null,"href":"/workflows/integrations/fathom"},{"title":null,"href":"/workflows/integrations/fillout"},{"title":null,"href":"/workflows/integrations/gemini"},{"title":null,"href":"/workflows/integrations/gmail"},{"title":null,"href":"/workflows/integrations/google-calendar"},{"title":null,"href":"/workflows/integrations/google-sheets"},{"title":null,"href":"/workflows/integrations/granola"},{"title":null,"href":"/workflows/integrations/hubspot"},{"title":null,"href":"/workflows/integrations/jira"},{"title":null,"href":"/workflows/integrations/jotform"},{"title":null,"href":"/workflows/integrations/linear"},{"title":null,"href":"/workflows/integrations/linkup"},{"title":null,"href":"/workflows/integrations/firecrawl"},{"title":null,"href":"/workflows/integrations/microsoft-excel"},{"title":null,"href":"/workflows/integrations/mistral"},{"title":null,"href":"/workflows/integrations/monday"},{"title":null,"href":"/workflows/integrations/notion"},{"title":null,"href":"/workflows/integrations/openai"},{"title":null,"href":"/workflows/integrations/outlook"},{"title":null,"href":"/workflows/integrations/pinecone"},{"title":null,"href":"/workflows/integrations/postmark"},{"title":null,"href":"/workflows/integrations/quickbooks"},{"title":null,"href":"/workflows/integrations/replicate"},{"title":null,"href":"/workflows/integrations/resend"},{"title":null,"href":"/workflows/integrations/salesforce"},{"title":null,"href":"/workflows/integrations/sharepoint"},{"title":null,"href":"/workflows/integrations/slack"},{"title":null,"href":"/workflows/integrations/stripe"},{"title":null,"href":"/workflows/integrations/supabase"},{"title":null,"href":"/workflows/integrations/tally"},{"title":null,"href":"/workflows/integrations/telegram"},{"title":null,"href":"/workflows/integrations/tinyurl"},{"title":null,"href":"/workflows/integrations/trello"},{"title":null,"href":"/workflows/integrations/twilio"},{"title":null,"href":"/workflows/integrations/typeform"},{"title":null,"href":"/workflows/integrations/xano"},{"title":null,"href":"/workflows/integrations/xero"},{"title":null,"href":"/workflows/integrations/zendesk"},{"title":"Zoho CRM","sidebarTitle":"Zoho CRM","href":"/workflows/integrations/zoho-crm"},{"title":null,"href":"/workflows/integrations/zoom"}]}]},{"group":"Softr Agents","icon":"robot","pages":[{"title":"Softr Agents","sidebarTitle":"Overview","href":"/agents/overview"}]},{"title":"Softr Forms","icon":"file-signature","href":"/softr-forms"},{"group":"Data Sources","icon":"hard-drive","pages":[{"title":"Airtable","href":"/data-sources/airtable"},{"title":"HubSpot","href":"/data-sources/hubspot"},{"title":"Salesforce","href":"/data-sources/salesforce"},{"title":"Notion","href":"/data-sources/notion"},{"title":"Coda","href":"/data-sources/coda"},{"title":"Google Sheets","href":"/data-sources/google-sheets"},{"title":"monday.com","href":"/data-sources/mondaycom"},{"title":"SmartSuite","href":"/data-sources/smartsuite-"},{"title":"ClickUp","href":"/data-sources/clickup"},{"title":"Xano","href":"/data-sources/xano"},{"title":"Supabase","href":"/data-sources/supabase"},{"title":"BigQuery","href":"/data-sources/bigquery"},{"title":"SQL Database","href":"/data-sources/sql-database"},{"title":"Rest API","href":"/data-sources/rest-api"},{"title":"Snowflake","href":"/data-sources/snowflake"},{"title":"Choosing a Data Source","description":"Compare and contrast data sources","href":"/data-sources/choosing-a-data-source"}]},{"group":"Import Data","icon":"arrow-down-from-bracket","pages":[{"title":"Migrate data from Airtable to Softr Databases","sidebarTitle":"Migrate data from Airtable","href":"/migration-tips/migrating-from-airtable-to-softr-databases"},{"title":"Migrate a Softr app from Airtable to Softr Databases","sidebarTitle":"Migrate a Softr app from Airtable","description":"Migrate a Softr app from Airtable to Softr Databases, and fix the issues that stop a migration.","href":"/migration-tips/airtable-app-migration"}]}]},{"group":"Building Blocks","icon":"cube","pages":[{"group":"List","icon":"list","pages":[{"title":"List Block","href":"/building-blocks/list-block"},{"title":"Grid Block","href":"/building-blocks/grid-block"},{"title":"Layout: List with small cards","href":"/building-blocks/layout-list-with-small-cards"},{"title":"Layout: List with timeline","href":"/building-blocks/layout-list-with-timeline"},{"title":"Layout: Inbox","href":"/building-blocks/layout-inbox"}]},{"group":"Item Details","icon":"circle-info","pages":[{"title":"Item Details Block","href":"/building-blocks/item-details-block-"},{"title":"Linked List","href":"/building-blocks/linked-list"},{"title":"Comments block","href":"/building-blocks/comments-block"},{"title":"Use Case: Creating a User Profile with Item Details","href":"/building-blocks/use-case-creating-a-user-profile-with-item-details"},{"title":"Use Case: Embedding Calendly in List Details","href":"/building-blocks/use-case-embedding-calendly-in-list-details"},{"title":"Use Case: Filtering other lists by a list detail block’s data","href":"/building-blocks/use-case-filtering-other-lists-by-a-list-detail-block-data"},{"title":"Use Case: Hiding blocks based on current record data","href":"/building-blocks/use-case-hiding-blocks-based-on-current-record-data"}]},{"group":"Table","icon":"table","pages":[{"title":"Table Block","href":"/building-blocks/table-block-"}]},{"group":"Conditional Forms","icon":"pen-to-square","pages":[{"title":"Conditional Forms","href":"/building-blocks/conditional-forms"},{"title":"Advanced Form Features","href":"/building-blocks/advanced-form-features"},{"title":"Use Case: Job Submission with Hidden Fields","href":"/building-blocks/use-case-job-submission-with-hidden-fields"},{"title":"Tutorial: Sending Form Data to a Data Source","href":"/building-blocks/tutorial-sending-form-data-to-a-data-source"}]},{"group":"Charts","icon":"chart-column","pages":[{"title":"Chart Block Overview","href":"/building-blocks/chart-block-overview"},{"title":"Type: Bar Chart","href":"/building-blocks/type-bar-chart"},{"title":"Type: Stacked Bar Chart","href":"/building-blocks/type-stacked-bar-chart"},{"title":"Type: Line Chart","href":"/building-blocks/type-line-chart"},{"title":"Type: Area Chart","href":"/building-blocks/type-area-chart"},{"title":"Type: Scatter Chart","href":"/building-blocks/type-scatter-chart"},{"title":"Type: Pie Chart","href":"/building-blocks/type-pie-chart"},{"title":"Type: Donut Chart","href":"/building-blocks/type-donut-chart"},{"title":"Type: Rose Chart","href":"/building-blocks/type-rose-chart"},{"title":"Summary Cards","href":"/building-blocks/summary-cards"}]},{"group":"Block Containers","icon":"cube","pages":[{"title":"Column Container","href":"/building-blocks/column-container"},{"title":"Tabs","href":"/building-blocks/tabs"}]},{"group":"Utility Page Blocks","icon":"sliders","pages":[{"title":"Account Settings","href":"/building-blocks/account-settings"},{"title":"Signup","href":"/building-blocks/signup"},{"title":"Onboarding Flow","href":"/building-blocks/onboarding-flow"},{"title":"Link Expired","href":"/building-blocks/link-expired"},{"title":"Permission Denied (401)","href":"/building-blocks/permission-denied-401"},{"title":"Page Not Found (404)","href":"/building-blocks/page-not-found-404"}]},{"group":"Other Dynamic Blocks","icon":"bolt","pages":[{"title":"Calendar","href":"/building-blocks/calendar"},{"title":"Kanban","href":"/building-blocks/kanban"},{"title":"Organizational Chart","href":"/building-blocks/organizational-chart"},{"title":"Map","href":"/building-blocks/map"}]},{"group":"Static Blocks","icon":"image","pages":[{"title":"Header","href":"/building-blocks/header"},{"title":"Hero","href":"/building-blocks/hero"},{"title":"CTA","href":"/building-blocks/cta"},{"title":"Feature","href":"/building-blocks/feature"},{"title":"Feature Grid","href":"/building-blocks/feature-grid"},{"title":"Partner","href":"/building-blocks/partner"},{"title":"X (Twitter) Grid","href":"/building-blocks/x-twitter-grid"},{"title":"Quick Links","href":"/building-blocks/quick-links"},{"title":"Pricing","href":"/building-blocks/pricing"}]},{"group":"Vibe Coding","icon":"wand-magic-sparkles","pages":[{"title":"Vibe Coding","icon":"wand-magic-sparkles","href":"/vibe-coding"},{"title":"Vibe Coding — Developer Guide","icon":"code","href":"/vibe-coding-developer-guide"}]}]},{"group":" ","pages":[{"group":"Actions","icon":"pen-to-square","pages":[{"title":"Action Buttons Overview","href":"/actions/action-buttons-overview"},{"title":"Add Record","href":"/actions/add-record"},{"title":"Edit Record","href":"/actions/edit-record"},{"title":"One-click update","href":"/actions/one-click-update"},{"title":"Delete Record","href":"/actions/delete-record"},{"title":"Call API","href":"/actions/call-api"},{"title":"Download File","href":"/actions/download-file"},{"title":"Mapping Fields for Actions","href":"/actions/mapping-fields-for-actions"},{"title":"Item on Click Actions","href":"/actions/item-on-click-actions"},{"title":"Export","href":"/actions/export"},{"title":"Ask AI","href":"/actions/ask-ai"}]}]},{"group":"Add and Manage Users","icon":"user","pages":[{"group":"App Users Basics","icon":"user-plus","pages":[{"title":"Add users to a Softr app","href":"/add-and-manage-users/add-users-to-a-softr-app"},{"title":"Users Menu","href":"/add-and-manage-users/users-menu"},{"title":"Syncing users with a data source","href":"/add-and-manage-users/syncing-users-with-a-data-source"},{"title":"Add or import users manually","href":"/add-and-manage-users/add-or-import-users-manually"},{"title":"Internal vs. External Users","href":"/add-and-manage-users/internal-vs-external-users"},{"title":"User Email Notifications","href":"/add-and-manage-users/user-email-notifications"},{"title":"Automated user invitations","href":"/add-and-manage-users/automated-user-invitations"},{"title":"Notification Center","sidebarTitle":"Notification center","href":"/add-and-manage-users/notification-center"}]},{"group":"User-related Blocks","icon":"user-check","pages":[{"title":"Signup Form","href":"/add-and-manage-users/signup-form"},{"title":"Signin Form","href":"/add-and-manage-users/signin-form"},{"title":"Signin with Email Code","href":"/add-and-manage-users/signin-with-email-code"},{"title":"Sign in with SMS Code (deprecated)","href":"/add-and-manage-users/sign-in-with-sms-code-deprecated"},{"title":"User Profile","href":"/add-and-manage-users/user-profile"},{"title":"Forgot Password Form","href":"/add-and-manage-users/forgot-password-form"},{"title":"Reset Password Form","href":"/add-and-manage-users/reset-password-form"}]},{"group":"Advanced Sign-in Options","icon":"lock","pages":[{"title":"Single Sign-on Overview","href":"/add-and-manage-users/single-sign-on-overview"},{"title":"SAML Single Sign-on","href":"/add-and-manage-users/saml-single-sign-on"},{"title":"OpenId Single Sign-on","href":"/add-and-manage-users/openid-single-sign-on"},{"title":"SCIM User Provisioning","href":"/add-and-manage-users/scim-provisioning"},{"title":"Microsoft Azure SAML Single Sign-on","href":"/add-and-manage-users/microsoft-azure-saml-single-sign-on"}]}]},{"group":" ","pages":[{"group":"User Groups and Permissions","icon":"users","pages":[{"title":"User Groups","href":"/user-groups-and-permissions/user-groups"},{"title":"Conditional Filters","href":"/user-groups-and-permissions/conditional-filters"},{"title":"Record Filters","href":"/user-groups-and-permissions/record-filters"},{"title":"Action Button Visibility","href":"/user-groups-and-permissions/action-button-visibility"},{"title":"Block Visibility","href":"/user-groups-and-permissions/block-visibility"},{"title":"Page Visibility","href":"/user-groups-and-permissions/page-visibility"},{"title":"Page Rules","href":"/user-groups-and-permissions/page-rules"},{"title":"Global data restrictions","href":"/user-groups-and-permissions/global-data-restrictions"},{"title":"Options Filters","href":"/user-groups-and-permissions/options-filters"}]}]},{"group":" ","pages":[{"group":"Styling","icon":"palette","pages":[{"title":"Application Theme","href":"/styling/application-theme"},{"title":"Block Styles and Formatting","href":"/styling/block-styles-and-formatting"}]}]},{"group":"Publishing","icon":"globe","pages":[{"group":"Publishing","icon":"upload","pages":[{"title":"Publishing Your Softr App","href":"/publishing/publishing-your-softr-app"},{"title":"Unpublishing Your App","href":"/publishing/unpublishing-your-app"}]},{"group":"Custom Domain","icon":"link","pages":[{"title":"Add a Custom Domain to Your App","href":"/publishing/add-a-custom-domain-to-your-app"},{"title":"Tutorial: How to set up a custom domain for Namecheap","href":"/publishing/tutorial-how-to-set-up-a-custom-domain-for-namecheap"},{"title":"Tutorial: How to set up a custom subdomain for Namecheap","href":"/publishing/tutorial-how-to-set-up-a-custom-subdomain-for-namecheap"},{"title":"Add an Extra Custom Domain to Your Workspace","href":"/publishing/add-an-extra-custom-domain-to-your-workspace"}]},{"group":"SEO","icon":"magnifying-glass","pages":[{"title":"Softr SEO Checklist","href":"/publishing/softr-seo-checklist"},{"title":"Site SEO","href":"/publishing/site-seo"},{"title":"Page SEO","href":"/publishing/page-seo"},{"title":"Item Details SEO","href":"/publishing/item-details-seo"}]}]},{"group":"Application Settings","icon":"gear","pages":[{"group":"Page and Block Settings","icon":"table-layout","pages":[{"title":"Footer Settings","href":"/application-settings/footer-settings"},{"title":"Page Settings","href":"/application-settings/page-settings"},{"title":"Utility Pages","href":"/application-settings/utility-pages"},{"title":"Navigation settings","href":"/application-settings/navigation-settings"},{"title":"Page and Block Embed","href":"/application-settings/page-and-block-embed"},{"title":"Block Actions","href":"/application-settings/block-actions"},{"title":"Block Version Update","href":"/application-settings/block-version-update"}]},{"group":"App Settings","icon":"sliders","pages":[{"title":"General Settings","href":"/application-settings/general-settings"},{"title":"App History","href":"/application-settings/app-history"},{"title":"Advanced Settings","href":"/application-settings/advanced-settings"},{"title":"Dynamic App Logo","href":"/dynamic-app-logo"}]}]},{"group":" ","pages":[{"group":"Custom Code","icon":"code","pages":[{"title":"Custom Code Block Overview","href":"/custom-code/custom-code-block-overview"},{"title":"Custom Code Snippets","href":"/custom-code/custom-code-snippets"},{"title":"Custom Code Events and Style Selectors","href":"/custom-code/custom-code-events-and-style-selectors"},{"title":"SPA Custom Code Guidelines","href":"/custom-code/spa-custom-code-guidelines"}]}]},{"group":"Integrations","icon":"plug","pages":[{"group":"AI","icon":"brain","pages":[{"title":"Open AI","href":"/integrations/open-ai"}]},{"group":"Authentication","icon":"key","pages":[{"title":"Google Sign-in","href":"/integrations/google-sign-in"}]},{"group":"Automation","icon":"robot","pages":[{"title":"Make","href":"/integrations/make"},{"title":"Zapier","href":"/integrations/zapier"}]},{"group":"Cookies","icon":"cookie","pages":[{"title":"Iubenda Cookie Solution","href":"/integrations/iubenda-cookie-solution"}]},{"group":"Document Management","icon":"file-pdf","pages":[{"title":"Documint","href":"/integrations/documint"}]},{"group":"Email","icon":"envelope","pages":[{"title":"Mailchimp","href":"/integrations/mailchimp"},{"title":"Mailerlite","href":"/integrations/mailerlite"}]},{"group":"Forms","icon":"pen-to-square","pages":[{"title":"Typeform","href":"/integrations/typeform"}]},{"group":"Live Chat","icon":"comments","pages":[{"title":"Crisp","href":"/integrations/crisp"},{"title":"Drift Chat","href":"/integrations/drift-chat"},{"title":"HubSpot Chat","href":"/integrations/hubspot-chat"},{"title":"Intercom","href":"/integrations/intercom"}]},{"group":"Maps","icon":"map","pages":[{"title":"Google Maps","href":"/integrations/google-maps"}]},{"group":"Peer-to-Peer Chat","icon":"message","pages":[{"title":"AtomChat","href":"/integrations/atomchat"}]},{"group":"Payments","icon":"credit-card","pages":[{"title":"Stripe Checkout","href":"/integrations/stripe-checkout"},{"title":"Buy me a Coffee","href":"/integrations/buy-me-a-coffee"},{"title":"Gumroad","href":"/integrations/gumroad"},{"title":"PayPal","href":"/integrations/paypal"},{"title":"Layout: Pricing in card view with details","href":"/integrations/layout-pricing-in-card-view-with-details"},{"title":"Stripe Customer Portal","href":"/integrations/stripe-customer-portal"},{"title":"Simple Billing Block","href":"/integrations/simple-billing-block"},{"title":"Simple Checkout Form","href":"/integrations/simple-checkout-form"}]},{"group":"User Analytics","icon":"chart-line","pages":[{"title":"Facebook Pixel","href":"/integrations/facebook-pixel"},{"title":"Google Analytics","href":"/integrations/google-analytics"},{"title":"Google Tag Manager","href":"/integrations/google-tag-manager"},{"title":"Microsoft Clarity","href":"/integrations/microsoft-clarity"}]},{"group":"Translating","icon":"language","pages":[{"title":"Weglot","href":"/integrations/weglot"}]}]},{"group":" ","pages":[{"group":"Softr API","icon":"code-branch","pages":[{"title":"API Setup and Endpoints","href":"/softr-api/api-setup-and-endpoints"},{"title":"Use Case: Adding Users through Zapier","href":"/softr-api/use-case-adding-users-through-zapier"},{"title":"Use Case: Adding Users through Make (formerly Integromat","href":"/softr-api/use-case-adding-users-through-make-formerly-integromat"},{"group":"Softr Database API","pages":[{"title":"Softr Database API","sidebarTitle":"Overview","href":"/softr-api/softr-database-api/index"},{"title":"Authorisation","sidebarTitle":"Authorisation","href":"/softr-api/softr-database-api/authorisation/index"},{"title":"Rate Limiting","sidebarTitle":"Rate Limiting","href":"/softr-api/softr-database-api/rate-limiting/index"},{"group":"Databases","pages":[{"title":"Get Databases","sidebarTitle":"Get Databases","openapi":"openapi.yaml GET /databases","href":"/softr-api/softr-database-api/databases/get-databases"},{"title":"Get Single Database","sidebarTitle":"Get Single Database","openapi":"openapi.yaml GET /databases/{databaseId}","href":"/softr-api/softr-database-api/databases/get-single-database"},{"title":"Create a Database","sidebarTitle":"Create a Database","openapi":"openapi.yaml POST /databases","href":"/softr-api/softr-database-api/databases/create-a-database"},{"title":"Update Database","sidebarTitle":"Update Database","openapi":"openapi.yaml PUT /databases/{databaseId}","href":"/softr-api/softr-database-api/databases/update-database"},{"title":"Delete Database","sidebarTitle":"Delete Database","openapi":"openapi.yaml DELETE /databases/{databaseId}","href":"/softr-api/softr-database-api/databases/delete-database"}]},{"group":"Tables","pages":[{"title":"Get Tables","sidebarTitle":"Get Tables","openapi":"openapi.yaml GET /databases/{databaseId}/tables","href":"/softr-api/softr-database-api/tables/get-tables"},{"title":"Get Single Table","sidebarTitle":"Get Single Table","openapi":"openapi.yaml GET /databases/{databaseId}/tables/{tableId}","href":"/softr-api/softr-database-api/tables/get-single-table"},{"title":"Get Table Views","sidebarTitle":"Get Table Views","openapi":"openapi.yaml GET /databases/{databaseId}/tables/{tableId}/views","href":"/softr-api/softr-database-api/tables/get-table-views"},{"title":"Create Table","sidebarTitle":"Create Table","openapi":"openapi.yaml POST /databases/{databaseId}/tables","href":"/softr-api/softr-database-api/tables/create-table"},{"title":"Update Table","sidebarTitle":"Update Table","openapi":"openapi.yaml PUT /databases/{databaseId}/tables/{tableId}","href":"/softr-api/softr-database-api/tables/update-table"},{"title":"Delete Table","sidebarTitle":"Delete Table","openapi":"openapi.yaml DELETE /databases/{databaseId}/tables/{tableId}","href":"/softr-api/softr-database-api/tables/delete-table"}]},{"group":"Table Fields","pages":[{"title":"Get Table Field","sidebarTitle":"Get Table Field","openapi":"openapi.yaml GET /databases/{databaseId}/tables/{tableId}/fields/{fieldId}","href":"/softr-api/softr-database-api/table-fields/get-table-field"},{"title":"Add Table Field","sidebarTitle":"Add Table Field","openapi":"openapi.yaml POST /databases/{databaseId}/tables/{tableId}/fields","href":"/softr-api/softr-database-api/table-fields/add-table-field"},{"title":"Update Table Field","sidebarTitle":"Update Table Field","openapi":"openapi.yaml PUT /databases/{databaseId}/tables/{tableId}/fields/{fieldId}","href":"/softr-api/softr-database-api/table-fields/update-table-field"},{"title":"Delete Table Field","sidebarTitle":"Delete Table Field","openapi":"openapi.yaml DELETE /databases/{databaseId}/tables/{tableId}/fields/{fieldId}","href":"/softr-api/softr-database-api/table-fields/delete-table-field"}]},{"group":"Records","pages":[{"title":"Get Records","sidebarTitle":"Get Records","openapi":"openapi.yaml GET /databases/{databaseId}/tables/{tableId}/records","href":"/softr-api/softr-database-api/records/get-records"},{"title":"Search Records","sidebarTitle":"Search Records","openapi":"openapi.yaml POST /databases/{databaseId}/tables/{tableId}/records/search","href":"/softr-api/softr-database-api/records/search-records"},{"title":"Get Single Record","sidebarTitle":"Get Single Record","openapi":"openapi.yaml GET /databases/{databaseId}/tables/{tableId}/records/{recordId}","href":"/softr-api/softr-database-api/records/get-single-record"},{"title":"Create Record","sidebarTitle":"Create Record","openapi":"openapi.yaml POST /databases/{databaseId}/tables/{tableId}/records","href":"/softr-api/softr-database-api/records/create-record"},{"title":"Update Record","sidebarTitle":"Update Record","openapi":"openapi.yaml PATCH /databases/{databaseId}/tables/{tableId}/records/{recordId}","href":"/softr-api/softr-database-api/records/update-record"},{"title":"Delete Record","sidebarTitle":"Delete Record","openapi":"openapi.yaml DELETE /databases/{databaseId}/tables/{tableId}/records/{recordId}","href":"/softr-api/softr-database-api/records/delete-record"}]}]}]},{"group":"Softr MCP server","icon":"plug","pages":[{"title":"Softr MCP Server","sidebarTitle":"Overview","icon":"plug","href":"/mcp/overview"},{"title":"Connect your AI assistant","sidebarTitle":"Connect","icon":"link","href":"/mcp/connect"},{"title":"Databases","sidebarTitle":"Databases","icon":"database","href":"/mcp/databases"},{"title":"Applications","sidebarTitle":"Applications","icon":"window","href":"/mcp/apps"},{"title":"Vibe coding blocks","sidebarTitle":"Vibe coding blocks","icon":"wand-magic-sparkles","href":"/mcp/vibe-coding"},{"title":"Integrations","sidebarTitle":"Integrations","icon":"plug","href":"/mcp/integrations"},{"title":"Workflows","sidebarTitle":"Workflows","icon":"random","href":"/mcp/workflows"}]},{"title":"App MCP Server","sidebarTitle":"App MCP server","icon":"plug","href":"/app-mcp-server"},{"title":"Softr CLI","sidebarTitle":"Softr CLI","icon":"terminal","href":"/softr-cli"},{"group":"Security","icon":"lock","pages":[{"title":"SSO for Softr Studio","href":"/security/sso-for-softr-studio"},{"title":"Softr App Security","href":"/security/softr-app-security"},{"title":"Phishing","href":"/security/phishing"},{"title":"HIPAA Compliance","hidden":true,"href":"/security/hipaa-compliance"},{"title":"FedRamp Compliance","hidden":true,"href":"/security/fed-ramp-compliance"},{"title":"FERPA Compliance","hidden":true,"href":"/security/ferpa-compliance"}]},{"group":"How to Guides","icon":"book-open","pages":[{"title":"How to Enable Peer-to-Peer Chat?","href":"/how-to-guides/how-to-enable-peer-to-peer-chat"},{"title":"How to Create Your Own Template?","href":"/how-to-guides/how-to-create-your-own-template"},{"title":"How to Create a Blog?","href":"/how-to-guides/how-to-create-a-blog"},{"title":"How to Create a Blog from a Data Source?","href":"/how-to-guides/how-to-create-a-blog-from-a-data-source"},{"title":"Personalize Your App by Adding Welcome Message","href":"/how-to-guides/personalize-your-app-by-adding-welcome-message"},{"title":"What Internal Tools Can You Build with Softr?","href":"/how-to-guides/what-internal-tools-can-you-build-with-softr"},{"title":"How to Create a Client Portal?","href":"/how-to-guides/how-to-create-a-client-portal"},{"title":"How to Create a Membership Site?","href":"/how-to-guides/how-to-create-a-membership-site"},{"title":"How to Share Access With Support?","href":"/how-to-guides/how-to-share-access-with-support"},{"title":"Add Users to User Groups Based on Stripe Attributes","href":"/how-to-guides/add-users-to-user-groups-based-on-stripe-attributes"},{"title":"How to Make Pages/Blocks Accessible Only to Company Users?","href":"/how-to-guides/how-to-make-pagesblocks-accessible-only-to-company-users"},{"title":"How to Create a Mobile App from a Softr App?","href":"/how-to-guides/how-to-create-a-mobile-app-from-a-softr-app"},{"title":"How to filter list data from the URL?","href":"/how-to-guides/how-to-filter-list-data-from-the-url"},{"title":"How to filter list by Page URL parameters?","href":"/how-to-guides/how-to-filter-list-by-page-url-parameters"}]},{"group":"Troubleshooting","icon":"wrench","pages":[{"title":"Troubleshooting Airtable errors","href":"/troubleshooting/troubleshooting-airtable-errors"},{"title":"Troubleshooting Airtable API call limit exceeded","href":"/troubleshooting/troubleshooting-airtable-api-call-limit-exceeded"},{"title":"Troubleshooting Google Sheets errors","href":"/troubleshooting/troubleshooting-google-sheets-errors"},{"title":"Troubleshooting HubSpot errors","href":"/troubleshooting/troubleshooting-hubspot-errors"}]},{"group":"FAQ","icon":"circle-question","pages":[{"title":"Domain Setup","href":"/faq/domain-setup"},{"title":"Pages, Theme, General Settings","href":"/faq/pages-theme-general-settings"},{"title":"Memberships","href":"/faq/memberships"},{"title":"Softr Subscription Plans and Account Settings","href":"/faq/softr-subscription-plans-and-account-settings"},{"title":"Translations","href":"/faq/translations"},{"title":"Blocks","href":"/faq/blocks"},{"title":"Integrations","href":"/faq/integrations"},{"title":"App Settings","href":"/faq/app-settings"},{"title":"Other","href":"/faq/other"}]},{"group":"Migration Tips","icon":"arrow-down-left-and-arrow-up-right-to-center","pages":[{"title":"Migrating App Versions","href":"/application-settings/migrating-app-versions"}]},{"group":"Workspace and Billing","icon":"credit-card","pages":[{"title":"Accessing My Account","href":"/workspace-and-billing/accessing-my-account"},{"title":"My Profile","href":"/workspace-and-billing/my-profile"},{"title":"Billing","href":"/workspace-and-billing/billing"},{"title":"Pricing and Plans","href":"/workspace-and-billing/pricing-and-plans"},{"title":"Transfer Workspace Ownership","href":"/workspace-and-billing/transfer-workspace-ownership"},{"title":"Workspaces and Applications","href":"/workspace-and-billing/workspaces-and-applications"},{"title":"AI Credits","href":"/workspace-and-billing/ai-credits"}]},{"group":"Affiliate and Referral Programs","icon":"handshake","pages":[{"title":"Partner with Softr","href":"/affiliate-and-referral-programs/partner-with-softr"},{"title":"Softr’s Affiliate Program","href":"/affiliate-and-referral-programs/softrs-affiliate-program"},{"title":"Softr’s Referral Program","href":"/affiliate-and-referral-programs/softrs-referral-program"},{"title":"Softr Universe","href":"/affiliate-and-referral-programs/softr-universe"}]}]}]},"title":"Database Migration Tips – Softr Help Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BbYRHtLl.js","DynamicMarkdown-DN96a4Ur.js","zoom-image-lightbox-D7yRe3On.js","lightbox-handle-r17bVUz3.js"]}