Who Owns a Record Created from a Custom Frontend
Learn who Knack sets as the owner of a record when it's created by import, by the Knack MCP Server, or from a custom frontend, and why it matters for data access control.
What You'll Learn
Record ownership in Knack is set by the Owned By field, and who ends up as the owner depends on how the record was created. This article shows the owner you'll get from each method and when it affects what your users can see.
Who Owns a Record, by How It Was Created
| How the record was created | Owned By |
|---|---|
| CSV import in the Knack Builder | App Builder |
| Knack MCP Server, for example an AI builder migrating data | App Builder |
| Custom frontend using the signed-in user's Knack session | The signed-in user |
App Builder is one of Knack's system users. It stands in for records that no signed-in user created.
Why Ownership Matters
Data access control can give a role different access to records it owns versus all other records. If a role can only see its own records, ownership decides what each user sees.
A record owned by App Builder isn't owned by any user. So if your users can only see records they own, they won't see migrated or imported records, even ones that belong to them.
If every role in your app has the same access to all records, ownership doesn't change what anyone sees.
Ownership isn't the same as a connectionA credential can be connected to a provider without being owned by that provider's user account. Access rules based on ownership look at Owned By, not at your connection fields.
Fixing Ownership on Migrated Records
If your access rules depend on ownership, update Owned By on migrated records after the move so each record belongs to the right user. You can do this with a batch update in the Knack Builder.
Plan this before you migrate. It's easier to decide who should own each record while you still have the source data in front of you.
How to Check Who Owns a Record
Open the table in the Knack Builder and scroll to the Owned By column. Knack adds it to every table automatically, along with Created By and Updated By.
To test your frontend, add a record from your app while signed in, then find it in the Builder. Owned By should show the user you signed in as.
Check ownership before you rely on "own records" accessIf Owned By shows App Builder on records your users should see, those users will get empty screens. An empty screen can look like there's simply no data, so check the Owned By column directly.
Next Steps
- Understanding the Owned By Field explains the field itself and how Knack sets it.
- Data Access Control covers setting access for owned records and all other records.
- Migrating an Existing Base44 App to Knack shows where ownership fits in a full migration.
Updated about 3 hours ago

