Jul 29, 2024 02:38 PM
My team has several hundred user profiles with personal information stored in a database with no API. We keep the personal info there, but we have an SFTP to upload CSVs for information regarding statuses and due dates on various per-profile tasks. Those CSVs land in Airtable, where I'm working to create interfaces that are a lot more user friendly than the database.
The really unfortunate thing is, I need a way to track any status or date changes we make in Airtable in order for teammates to manually update that data in the database. At any one time, there will be three "truths": what the old upload previously said, what the teammate has changed it to, and what the new upload says. (I should note, the new upload will probably overwrite the old upload? I'm not sure, I haven't set it up yet as I'm designing the base with fake data.)
I can't wrap my head around the best way to do this. I could:
1. Have user status/date changes change the last uploaded data, but then compare to the new uploaded data before overwriting and spit out a list of conflicts? It gets complicated when I think about overwriting after that, though. In the case of conflicts (assuming that list is saved somewhere now) I would ideally have Airtable prefer user changed data, then new CSV data, then old CSV data. But after the overwrite, will I lose the fact that some of it is user changed?
2. I could have separate fields for the database data and the Airtable data, and then I could filter for any records where they don't match and use that as an update list. But at some point, I'd want the new database data to still be a source of truth as records get added or deleted, for example. So that seperate airtable field would need to be refreshed or something every now and then?
I feel like I'm just thinking about it wrong and overcomplicating it. Any ideas how to manage this?
Solved! Go to Solution.
Jul 30, 2024 09:37 AM
Without seeing your base overall structure you could try this.
User Profiles Table: to store personal information and a unique identifier for each profile.
Task Status Table: Store task statuses and due dates with fields for:
Task Status Table Fields
Upload New CSV Data
Update User-Changed Data
Overwriting Data
Formulas To Use
If you have any questions feel free to ask.
Jul 30, 2024 09:37 AM
Without seeing your base overall structure you could try this.
User Profiles Table: to store personal information and a unique identifier for each profile.
Task Status Table: Store task statuses and due dates with fields for:
Task Status Table Fields
Upload New CSV Data
Update User-Changed Data
Overwriting Data
Formulas To Use
If you have any questions feel free to ask.
Jul 31, 2024 06:18 PM
Thanks! Just copying the pervious round of uploads to seperate fields is smart, and I think it's simple enough to be easy to automate.