The primary key in airtable does not match the primary key of the same data sync in noloco.
There doesn’t appear to be an option to manually configure in noloco what field should be the primary field. From what I read, noloco should assume the primary field of the base that airtable has set. In my case, it’s not.
I believe I’ve identified a bug related to how Noloco handles Airtable primary fields during sync.
Noloco appears unable to recognize an Airtable primary field when that field’s type is Date. When this happens, Noloco arbitrarily assigns a different field as the primary field in the Noloco table, which causes mismatches and unexpected behavior.
Observed behavior
Noloco assumes the primary field based on Airtable’s primary field.
If the primary field is changed in Airtable after the table has already been synced, Noloco does not pick up the change.
The only way to force Noloco to recognize the new primary field is to delete the table in Noloco and re-import/sync.
If the Airtable primary field is:
a Date field, or
a Formula field that still returns a Date
Noloco does not recognize it as the primary field and instead defaults to another field.
Steps to repro:
Create a new Airtable table
Make the primary field type = Date
Sync/import into Noloco
Result: Noloco does not use the Date field as primary
I also tested:
A table with only one Date field → same issue
A formula that equals another date → same issue
Workaround
I was able to work around this by creating a formula field: DATETIME_FORMAT({Date}, ‘YYYY-MM-DD’)
Since this returns a string, Noloco correctly recognizes it as the primary field during sync.
Expected behavior
Respect Airtable’s designated primary field regardless of field type, OR
Allow manual selection of the primary field inside Noloco
Actual behavior:
Date-type primary fields are ignored and replaced automatically.
For context, I’m new to Noloco (day 3), so if this is intended behavior or there’s a setting I’m missing, please let me know. Otherwise, this seems like a sync bug.
Happy to provide a sample base or screen recording if helpful.
Hi @yeung5307 Sorry for the delay in providing you with an answer to this. After discussing with our team, Date type Fields are currently not supported as a Primary field, and need to be a String to be used, just like what you did as a workaround. We’ve added this to our guides as well to avoid any confusion moving forward. Let us know if you have any other questions.
Is my understanding correct that there is no way to manually select the primary field of a data table if i’ts synced from airtable, and the only way to change the primary field is to change it on airtable, delete the table in noloco, and resync it?
That’s correct, you will only be able to change the primary field if you do it from Airtable’s side. No need to delete any field, as Noloco also periodically syncs the schema (structure) of your external data sources. This ensures that any changes to the tables or fields in those tables are accurately reflected in your Noloco application. But if you do not see the changes immediately, try queuing a Schema sync: Syncing | Noloco